From bce46f28de392862d5c6c3b185d844ee7c623be3 Mon Sep 17 00:00:00 2001 From: shadchin Date: Tue, 3 Feb 2026 21:59:07 +0300 Subject: Import Python 3.13.11 commit_hash:bbb53cefb159aa3e7afaa475fd19d5a03b66945f --- contrib/tools/python3/Python/Python-ast.c | 6723 +- contrib/tools/python3/Python/Python-tokenize.c | 124 +- contrib/tools/python3/Python/_warnings.c | 184 +- contrib/tools/python3/Python/asm_trampoline.S | 15 +- contrib/tools/python3/Python/assemble.c | 232 +- contrib/tools/python3/Python/ast.c | 17 +- contrib/tools/python3/Python/ast_opt.c | 53 +- contrib/tools/python3/Python/ast_unparse.c | 29 +- contrib/tools/python3/Python/bltinmodule.c | 290 +- contrib/tools/python3/Python/bootstrap_hash.c | 14 +- contrib/tools/python3/Python/brc.c | 208 + contrib/tools/python3/Python/ceval.c | 1026 +- contrib/tools/python3/Python/ceval_gil.c | 1009 +- contrib/tools/python3/Python/ceval_macros.h | 226 +- .../python3/Python/clinic/Python-tokenize.c.h | 8 +- contrib/tools/python3/Python/clinic/_warnings.c.h | 14 +- .../tools/python3/Python/clinic/bltinmodule.c.h | 140 +- contrib/tools/python3/Python/clinic/context.c.h | 8 +- contrib/tools/python3/Python/clinic/import.c.h | 37 +- .../python3/Python/clinic/instruction_sequence.c.h | 304 + .../python3/Python/clinic/instrumentation.c.h | 30 +- contrib/tools/python3/Python/clinic/marshal.c.h | 242 +- contrib/tools/python3/Python/clinic/sysmodule.c.h | 205 +- contrib/tools/python3/Python/clinic/traceback.c.h | 18 +- contrib/tools/python3/Python/codecs.c | 186 +- contrib/tools/python3/Python/compile.c | 1513 +- contrib/tools/python3/Python/condvar.h | 26 +- contrib/tools/python3/Python/config_common.h | 36 + contrib/tools/python3/Python/context.c | 88 +- contrib/tools/python3/Python/critical_section.c | 148 + contrib/tools/python3/Python/crossinterp.c | 1922 + .../tools/python3/Python/crossinterp_data_lookup.h | 594 + .../tools/python3/Python/crossinterp_exceptions.h | 95 + contrib/tools/python3/Python/deepfreeze/README.txt | 6 - .../tools/python3/Python/deepfreeze/deepfreeze.c | 147914 ------------------ contrib/tools/python3/Python/dtoa.c | 85 +- contrib/tools/python3/Python/dynload_shlib.c | 2 +- contrib/tools/python3/Python/dynload_win.c | 23 +- .../tools/python3/Python/emscripten_trampoline.c | 92 + contrib/tools/python3/Python/errors.c | 115 +- contrib/tools/python3/Python/executor_cases.c.h | 4480 + contrib/tools/python3/Python/fileutils.c | 274 +- contrib/tools/python3/Python/flowgraph.c | 1488 +- contrib/tools/python3/Python/formatter_unicode.c | 2 +- contrib/tools/python3/Python/frame.c | 82 +- contrib/tools/python3/Python/frozen.c | 86 +- .../python3/Python/frozen_modules/__hello__.h | 96 +- .../python3/Python/frozen_modules/__phello__.h | 40 +- .../Python/frozen_modules/__phello__.ham.eggs.h | 6 +- .../python3/Python/frozen_modules/__phello__.ham.h | 6 +- .../Python/frozen_modules/__phello__.spam.h | 41 +- .../Python/frozen_modules/_collections_abc.h | 5672 +- .../python3/Python/frozen_modules/_sitebuiltins.h | 570 +- contrib/tools/python3/Python/frozen_modules/abc.h | 972 +- .../tools/python3/Python/frozen_modules/codecs.h | 4981 +- .../python3/Python/frozen_modules/frozen_only.h | 8 +- .../python3/Python/frozen_modules/genericpath.h | 879 +- .../tools/python3/Python/frozen_modules/getpath.h | 1563 +- .../Python/frozen_modules/importlib._bootstrap.h | 6875 +- .../frozen_modules/importlib._bootstrap_external.h | 7702 +- .../Python/frozen_modules/importlib.machinery.h | 130 +- .../python3/Python/frozen_modules/importlib.util.h | 1419 +- contrib/tools/python3/Python/frozen_modules/io.h | 515 +- .../tools/python3/Python/frozen_modules/ntpath.h | 3365 +- contrib/tools/python3/Python/frozen_modules/os.h | 5438 +- .../python3/Python/frozen_modules/posixpath.h | 2179 +- .../tools/python3/Python/frozen_modules/runpy.h | 1750 +- contrib/tools/python3/Python/frozen_modules/site.h | 3594 +- contrib/tools/python3/Python/frozen_modules/stat.h | 637 +- .../python3/Python/frozen_modules/zipimport.h | 3019 +- contrib/tools/python3/Python/future.c | 12 +- contrib/tools/python3/Python/gc.c | 2005 + contrib/tools/python3/Python/gc_free_threading.c | 1908 + contrib/tools/python3/Python/gc_gil.c | 17 + contrib/tools/python3/Python/generated_cases.c.h | 9576 +- contrib/tools/python3/Python/getargs.c | 374 +- contrib/tools/python3/Python/getcopyright.c | 2 +- contrib/tools/python3/Python/getopt.c | 9 - contrib/tools/python3/Python/getversion.c | 9 +- contrib/tools/python3/Python/hamt.c | 13 +- contrib/tools/python3/Python/hashtable.c | 4 +- contrib/tools/python3/Python/import.c | 1967 +- contrib/tools/python3/Python/importdl.c | 482 +- contrib/tools/python3/Python/importdl.h | 35 - contrib/tools/python3/Python/initconfig.c | 979 +- .../tools/python3/Python/instruction_sequence.c | 453 + contrib/tools/python3/Python/instrumentation.c | 1101 +- contrib/tools/python3/Python/interpconfig.c | 268 + contrib/tools/python3/Python/intrinsics.c | 105 +- contrib/tools/python3/Python/legacy_tracing.c | 489 +- contrib/tools/python3/Python/lock.c | 594 + contrib/tools/python3/Python/marshal.c | 142 +- contrib/tools/python3/Python/modsupport.c | 190 +- contrib/tools/python3/Python/mystrtoul.c | 14 +- contrib/tools/python3/Python/object_stack.c | 108 + contrib/tools/python3/Python/opcode_metadata.h | 1003 - contrib/tools/python3/Python/opcode_targets.h | 360 +- contrib/tools/python3/Python/optimizer.c | 1711 + contrib/tools/python3/Python/optimizer_analysis.c | 608 + contrib/tools/python3/Python/optimizer_cases.c.h | 2192 + contrib/tools/python3/Python/optimizer_symbols.c | 514 + contrib/tools/python3/Python/parking_lot.c | 401 + contrib/tools/python3/Python/pathconfig.c | 44 +- contrib/tools/python3/Python/perf_jit_trampoline.c | 1360 + contrib/tools/python3/Python/perf_trampoline.c | 149 +- contrib/tools/python3/Python/preconfig.c | 1 + contrib/tools/python3/Python/pyhash.c | 37 +- contrib/tools/python3/Python/pylifecycle.c | 976 +- contrib/tools/python3/Python/pystate.c | 1997 +- contrib/tools/python3/Python/pystrcmp.c | 8 +- contrib/tools/python3/Python/pystrhex.c | 7 +- contrib/tools/python3/Python/pystrtod.c | 3 +- contrib/tools/python3/Python/pythonrun.c | 1127 +- contrib/tools/python3/Python/pytime.c | 705 +- contrib/tools/python3/Python/qsbr.c | 282 + contrib/tools/python3/Python/specialize.c | 855 +- contrib/tools/python3/Python/stdlib_module_names.h | 33 +- contrib/tools/python3/Python/structmember.c | 125 +- contrib/tools/python3/Python/suggestions.c | 234 +- contrib/tools/python3/Python/symtable.c | 308 +- contrib/tools/python3/Python/sysmodule.c | 497 +- contrib/tools/python3/Python/thread.c | 108 +- contrib/tools/python3/Python/thread_nt.h | 105 +- contrib/tools/python3/Python/thread_pthread.h | 143 +- .../tools/python3/Python/thread_pthread_stubs.h | 11 +- contrib/tools/python3/Python/traceback.c | 492 +- contrib/tools/python3/Python/tracemalloc.c | 24 +- 127 files changed, 70869 insertions(+), 188277 deletions(-) create mode 100644 contrib/tools/python3/Python/brc.c create mode 100644 contrib/tools/python3/Python/clinic/instruction_sequence.c.h create mode 100644 contrib/tools/python3/Python/config_common.h create mode 100644 contrib/tools/python3/Python/critical_section.c create mode 100644 contrib/tools/python3/Python/crossinterp.c create mode 100644 contrib/tools/python3/Python/crossinterp_data_lookup.h create mode 100644 contrib/tools/python3/Python/crossinterp_exceptions.h delete mode 100644 contrib/tools/python3/Python/deepfreeze/README.txt delete mode 100644 contrib/tools/python3/Python/deepfreeze/deepfreeze.c create mode 100644 contrib/tools/python3/Python/emscripten_trampoline.c create mode 100644 contrib/tools/python3/Python/executor_cases.c.h create mode 100644 contrib/tools/python3/Python/gc.c create mode 100644 contrib/tools/python3/Python/gc_free_threading.c create mode 100644 contrib/tools/python3/Python/gc_gil.c delete mode 100644 contrib/tools/python3/Python/importdl.h create mode 100644 contrib/tools/python3/Python/instruction_sequence.c create mode 100644 contrib/tools/python3/Python/interpconfig.c create mode 100644 contrib/tools/python3/Python/lock.c create mode 100644 contrib/tools/python3/Python/object_stack.c delete mode 100644 contrib/tools/python3/Python/opcode_metadata.h create mode 100644 contrib/tools/python3/Python/optimizer.c create mode 100644 contrib/tools/python3/Python/optimizer_analysis.c create mode 100644 contrib/tools/python3/Python/optimizer_cases.c.h create mode 100644 contrib/tools/python3/Python/optimizer_symbols.c create mode 100644 contrib/tools/python3/Python/parking_lot.c create mode 100644 contrib/tools/python3/Python/perf_jit_trampoline.c create mode 100644 contrib/tools/python3/Python/qsbr.c (limited to 'contrib/tools/python3/Python') diff --git a/contrib/tools/python3/Python/Python-ast.c b/contrib/tools/python3/Python/Python-ast.c index 3d5aeff8379..a71262c7f84 100644 --- a/contrib/tools/python3/Python/Python-ast.c +++ b/contrib/tools/python3/Python/Python-ast.c @@ -4,8 +4,10 @@ #include "pycore_ast.h" #include "pycore_ast_state.h" // struct ast_state #include "pycore_ceval.h" // _Py_EnterRecursiveCall +#include "pycore_lock.h" // _PyOnceFlag #include "pycore_interp.h" // _PyInterpreterState.ast #include "pycore_pystate.h" // _PyInterpreterState_GET() +#include "pycore_unionobject.h" // _Py_union_type_or #include "structmember.h" #include @@ -22,7 +24,8 @@ get_ast_state(void) { PyInterpreterState *interp = _PyInterpreterState_GET(); struct ast_state *state = &interp->ast; - if (!init_types(state)) { + assert(!state->finalized); + if (_PyOnceFlag_CallOnce(&state->once, (_Py_once_fn_t *)&init_types, state) < 0) { return NULL; } return state; @@ -200,6 +203,7 @@ void _PyAST_Fini(PyInterpreterState *interp) Py_CLEAR(state->conversion); Py_CLEAR(state->ctx); Py_CLEAR(state->decorator_list); + Py_CLEAR(state->default_value); Py_CLEAR(state->defaults); Py_CLEAR(state->elt); Py_CLEAR(state->elts); @@ -275,104 +279,100 @@ void _PyAST_Fini(PyInterpreterState *interp) Py_CLEAR(state->vararg); Py_CLEAR(state->withitem_type); - Py_CLEAR(_Py_INTERP_CACHED_OBJECT(interp, str_replace_inf)); - -#if !defined(NDEBUG) - state->initialized = -1; -#else - state->initialized = 0; -#endif + state->finalized = 1; + state->once = (_PyOnceFlag){0}; } static int init_identifiers(struct ast_state *state) { - if ((state->__dict__ = PyUnicode_InternFromString("__dict__")) == NULL) return 0; - if ((state->__doc__ = PyUnicode_InternFromString("__doc__")) == NULL) return 0; - if ((state->__match_args__ = PyUnicode_InternFromString("__match_args__")) == NULL) return 0; - if ((state->__module__ = PyUnicode_InternFromString("__module__")) == NULL) return 0; - if ((state->_attributes = PyUnicode_InternFromString("_attributes")) == NULL) return 0; - if ((state->_fields = PyUnicode_InternFromString("_fields")) == NULL) return 0; - if ((state->annotation = PyUnicode_InternFromString("annotation")) == NULL) return 0; - if ((state->arg = PyUnicode_InternFromString("arg")) == NULL) return 0; - if ((state->args = PyUnicode_InternFromString("args")) == NULL) return 0; - if ((state->argtypes = PyUnicode_InternFromString("argtypes")) == NULL) return 0; - if ((state->asname = PyUnicode_InternFromString("asname")) == NULL) return 0; - if ((state->ast = PyUnicode_InternFromString("ast")) == NULL) return 0; - if ((state->attr = PyUnicode_InternFromString("attr")) == NULL) return 0; - if ((state->bases = PyUnicode_InternFromString("bases")) == NULL) return 0; - if ((state->body = PyUnicode_InternFromString("body")) == NULL) return 0; - if ((state->bound = PyUnicode_InternFromString("bound")) == NULL) return 0; - if ((state->cases = PyUnicode_InternFromString("cases")) == NULL) return 0; - if ((state->cause = PyUnicode_InternFromString("cause")) == NULL) return 0; - if ((state->cls = PyUnicode_InternFromString("cls")) == NULL) return 0; - if ((state->col_offset = PyUnicode_InternFromString("col_offset")) == NULL) return 0; - if ((state->comparators = PyUnicode_InternFromString("comparators")) == NULL) return 0; - if ((state->context_expr = PyUnicode_InternFromString("context_expr")) == NULL) return 0; - if ((state->conversion = PyUnicode_InternFromString("conversion")) == NULL) return 0; - if ((state->ctx = PyUnicode_InternFromString("ctx")) == NULL) return 0; - if ((state->decorator_list = PyUnicode_InternFromString("decorator_list")) == NULL) return 0; - if ((state->defaults = PyUnicode_InternFromString("defaults")) == NULL) return 0; - if ((state->elt = PyUnicode_InternFromString("elt")) == NULL) return 0; - if ((state->elts = PyUnicode_InternFromString("elts")) == NULL) return 0; - if ((state->end_col_offset = PyUnicode_InternFromString("end_col_offset")) == NULL) return 0; - if ((state->end_lineno = PyUnicode_InternFromString("end_lineno")) == NULL) return 0; - if ((state->exc = PyUnicode_InternFromString("exc")) == NULL) return 0; - if ((state->finalbody = PyUnicode_InternFromString("finalbody")) == NULL) return 0; - if ((state->format_spec = PyUnicode_InternFromString("format_spec")) == NULL) return 0; - if ((state->func = PyUnicode_InternFromString("func")) == NULL) return 0; - if ((state->generators = PyUnicode_InternFromString("generators")) == NULL) return 0; - if ((state->guard = PyUnicode_InternFromString("guard")) == NULL) return 0; - if ((state->handlers = PyUnicode_InternFromString("handlers")) == NULL) return 0; - if ((state->id = PyUnicode_InternFromString("id")) == NULL) return 0; - if ((state->ifs = PyUnicode_InternFromString("ifs")) == NULL) return 0; - if ((state->is_async = PyUnicode_InternFromString("is_async")) == NULL) return 0; - if ((state->items = PyUnicode_InternFromString("items")) == NULL) return 0; - if ((state->iter = PyUnicode_InternFromString("iter")) == NULL) return 0; - if ((state->key = PyUnicode_InternFromString("key")) == NULL) return 0; - if ((state->keys = PyUnicode_InternFromString("keys")) == NULL) return 0; - if ((state->keywords = PyUnicode_InternFromString("keywords")) == NULL) return 0; - if ((state->kind = PyUnicode_InternFromString("kind")) == NULL) return 0; - if ((state->kw_defaults = PyUnicode_InternFromString("kw_defaults")) == NULL) return 0; - if ((state->kwarg = PyUnicode_InternFromString("kwarg")) == NULL) return 0; - if ((state->kwd_attrs = PyUnicode_InternFromString("kwd_attrs")) == NULL) return 0; - if ((state->kwd_patterns = PyUnicode_InternFromString("kwd_patterns")) == NULL) return 0; - if ((state->kwonlyargs = PyUnicode_InternFromString("kwonlyargs")) == NULL) return 0; - if ((state->left = PyUnicode_InternFromString("left")) == NULL) return 0; - if ((state->level = PyUnicode_InternFromString("level")) == NULL) return 0; - if ((state->lineno = PyUnicode_InternFromString("lineno")) == NULL) return 0; - if ((state->lower = PyUnicode_InternFromString("lower")) == NULL) return 0; - if ((state->module = PyUnicode_InternFromString("module")) == NULL) return 0; - if ((state->msg = PyUnicode_InternFromString("msg")) == NULL) return 0; - if ((state->name = PyUnicode_InternFromString("name")) == NULL) return 0; - if ((state->names = PyUnicode_InternFromString("names")) == NULL) return 0; - if ((state->op = PyUnicode_InternFromString("op")) == NULL) return 0; - if ((state->operand = PyUnicode_InternFromString("operand")) == NULL) return 0; - if ((state->ops = PyUnicode_InternFromString("ops")) == NULL) return 0; - if ((state->optional_vars = PyUnicode_InternFromString("optional_vars")) == NULL) return 0; - if ((state->orelse = PyUnicode_InternFromString("orelse")) == NULL) return 0; - if ((state->pattern = PyUnicode_InternFromString("pattern")) == NULL) return 0; - if ((state->patterns = PyUnicode_InternFromString("patterns")) == NULL) return 0; - if ((state->posonlyargs = PyUnicode_InternFromString("posonlyargs")) == NULL) return 0; - if ((state->rest = PyUnicode_InternFromString("rest")) == NULL) return 0; - if ((state->returns = PyUnicode_InternFromString("returns")) == NULL) return 0; - if ((state->right = PyUnicode_InternFromString("right")) == NULL) return 0; - if ((state->simple = PyUnicode_InternFromString("simple")) == NULL) return 0; - if ((state->slice = PyUnicode_InternFromString("slice")) == NULL) return 0; - if ((state->step = PyUnicode_InternFromString("step")) == NULL) return 0; - if ((state->subject = PyUnicode_InternFromString("subject")) == NULL) return 0; - if ((state->tag = PyUnicode_InternFromString("tag")) == NULL) return 0; - if ((state->target = PyUnicode_InternFromString("target")) == NULL) return 0; - if ((state->targets = PyUnicode_InternFromString("targets")) == NULL) return 0; - if ((state->test = PyUnicode_InternFromString("test")) == NULL) return 0; - if ((state->type = PyUnicode_InternFromString("type")) == NULL) return 0; - if ((state->type_comment = PyUnicode_InternFromString("type_comment")) == NULL) return 0; - if ((state->type_ignores = PyUnicode_InternFromString("type_ignores")) == NULL) return 0; - if ((state->type_params = PyUnicode_InternFromString("type_params")) == NULL) return 0; - if ((state->upper = PyUnicode_InternFromString("upper")) == NULL) return 0; - if ((state->value = PyUnicode_InternFromString("value")) == NULL) return 0; - if ((state->values = PyUnicode_InternFromString("values")) == NULL) return 0; - if ((state->vararg = PyUnicode_InternFromString("vararg")) == NULL) return 0; - return 1; + if ((state->__dict__ = PyUnicode_InternFromString("__dict__")) == NULL) return -1; + if ((state->__doc__ = PyUnicode_InternFromString("__doc__")) == NULL) return -1; + if ((state->__match_args__ = PyUnicode_InternFromString("__match_args__")) == NULL) return -1; + if ((state->__module__ = PyUnicode_InternFromString("__module__")) == NULL) return -1; + if ((state->_attributes = PyUnicode_InternFromString("_attributes")) == NULL) return -1; + if ((state->_fields = PyUnicode_InternFromString("_fields")) == NULL) return -1; + if ((state->annotation = PyUnicode_InternFromString("annotation")) == NULL) return -1; + if ((state->arg = PyUnicode_InternFromString("arg")) == NULL) return -1; + if ((state->args = PyUnicode_InternFromString("args")) == NULL) return -1; + if ((state->argtypes = PyUnicode_InternFromString("argtypes")) == NULL) return -1; + if ((state->asname = PyUnicode_InternFromString("asname")) == NULL) return -1; + if ((state->ast = PyUnicode_InternFromString("ast")) == NULL) return -1; + if ((state->attr = PyUnicode_InternFromString("attr")) == NULL) return -1; + if ((state->bases = PyUnicode_InternFromString("bases")) == NULL) return -1; + if ((state->body = PyUnicode_InternFromString("body")) == NULL) return -1; + if ((state->bound = PyUnicode_InternFromString("bound")) == NULL) return -1; + if ((state->cases = PyUnicode_InternFromString("cases")) == NULL) return -1; + if ((state->cause = PyUnicode_InternFromString("cause")) == NULL) return -1; + if ((state->cls = PyUnicode_InternFromString("cls")) == NULL) return -1; + if ((state->col_offset = PyUnicode_InternFromString("col_offset")) == NULL) return -1; + if ((state->comparators = PyUnicode_InternFromString("comparators")) == NULL) return -1; + if ((state->context_expr = PyUnicode_InternFromString("context_expr")) == NULL) return -1; + if ((state->conversion = PyUnicode_InternFromString("conversion")) == NULL) return -1; + if ((state->ctx = PyUnicode_InternFromString("ctx")) == NULL) return -1; + if ((state->decorator_list = PyUnicode_InternFromString("decorator_list")) == NULL) return -1; + if ((state->default_value = PyUnicode_InternFromString("default_value")) == NULL) return -1; + if ((state->defaults = PyUnicode_InternFromString("defaults")) == NULL) return -1; + if ((state->elt = PyUnicode_InternFromString("elt")) == NULL) return -1; + if ((state->elts = PyUnicode_InternFromString("elts")) == NULL) return -1; + if ((state->end_col_offset = PyUnicode_InternFromString("end_col_offset")) == NULL) return -1; + if ((state->end_lineno = PyUnicode_InternFromString("end_lineno")) == NULL) return -1; + if ((state->exc = PyUnicode_InternFromString("exc")) == NULL) return -1; + if ((state->finalbody = PyUnicode_InternFromString("finalbody")) == NULL) return -1; + if ((state->format_spec = PyUnicode_InternFromString("format_spec")) == NULL) return -1; + if ((state->func = PyUnicode_InternFromString("func")) == NULL) return -1; + if ((state->generators = PyUnicode_InternFromString("generators")) == NULL) return -1; + if ((state->guard = PyUnicode_InternFromString("guard")) == NULL) return -1; + if ((state->handlers = PyUnicode_InternFromString("handlers")) == NULL) return -1; + if ((state->id = PyUnicode_InternFromString("id")) == NULL) return -1; + if ((state->ifs = PyUnicode_InternFromString("ifs")) == NULL) return -1; + if ((state->is_async = PyUnicode_InternFromString("is_async")) == NULL) return -1; + if ((state->items = PyUnicode_InternFromString("items")) == NULL) return -1; + if ((state->iter = PyUnicode_InternFromString("iter")) == NULL) return -1; + if ((state->key = PyUnicode_InternFromString("key")) == NULL) return -1; + if ((state->keys = PyUnicode_InternFromString("keys")) == NULL) return -1; + if ((state->keywords = PyUnicode_InternFromString("keywords")) == NULL) return -1; + if ((state->kind = PyUnicode_InternFromString("kind")) == NULL) return -1; + if ((state->kw_defaults = PyUnicode_InternFromString("kw_defaults")) == NULL) return -1; + if ((state->kwarg = PyUnicode_InternFromString("kwarg")) == NULL) return -1; + if ((state->kwd_attrs = PyUnicode_InternFromString("kwd_attrs")) == NULL) return -1; + if ((state->kwd_patterns = PyUnicode_InternFromString("kwd_patterns")) == NULL) return -1; + if ((state->kwonlyargs = PyUnicode_InternFromString("kwonlyargs")) == NULL) return -1; + if ((state->left = PyUnicode_InternFromString("left")) == NULL) return -1; + if ((state->level = PyUnicode_InternFromString("level")) == NULL) return -1; + if ((state->lineno = PyUnicode_InternFromString("lineno")) == NULL) return -1; + if ((state->lower = PyUnicode_InternFromString("lower")) == NULL) return -1; + if ((state->module = PyUnicode_InternFromString("module")) == NULL) return -1; + if ((state->msg = PyUnicode_InternFromString("msg")) == NULL) return -1; + if ((state->name = PyUnicode_InternFromString("name")) == NULL) return -1; + if ((state->names = PyUnicode_InternFromString("names")) == NULL) return -1; + if ((state->op = PyUnicode_InternFromString("op")) == NULL) return -1; + if ((state->operand = PyUnicode_InternFromString("operand")) == NULL) return -1; + if ((state->ops = PyUnicode_InternFromString("ops")) == NULL) return -1; + if ((state->optional_vars = PyUnicode_InternFromString("optional_vars")) == NULL) return -1; + if ((state->orelse = PyUnicode_InternFromString("orelse")) == NULL) return -1; + if ((state->pattern = PyUnicode_InternFromString("pattern")) == NULL) return -1; + if ((state->patterns = PyUnicode_InternFromString("patterns")) == NULL) return -1; + if ((state->posonlyargs = PyUnicode_InternFromString("posonlyargs")) == NULL) return -1; + if ((state->rest = PyUnicode_InternFromString("rest")) == NULL) return -1; + if ((state->returns = PyUnicode_InternFromString("returns")) == NULL) return -1; + if ((state->right = PyUnicode_InternFromString("right")) == NULL) return -1; + if ((state->simple = PyUnicode_InternFromString("simple")) == NULL) return -1; + if ((state->slice = PyUnicode_InternFromString("slice")) == NULL) return -1; + if ((state->step = PyUnicode_InternFromString("step")) == NULL) return -1; + if ((state->subject = PyUnicode_InternFromString("subject")) == NULL) return -1; + if ((state->tag = PyUnicode_InternFromString("tag")) == NULL) return -1; + if ((state->target = PyUnicode_InternFromString("target")) == NULL) return -1; + if ((state->targets = PyUnicode_InternFromString("targets")) == NULL) return -1; + if ((state->test = PyUnicode_InternFromString("test")) == NULL) return -1; + if ((state->type = PyUnicode_InternFromString("type")) == NULL) return -1; + if ((state->type_comment = PyUnicode_InternFromString("type_comment")) == NULL) return -1; + if ((state->type_ignores = PyUnicode_InternFromString("type_ignores")) == NULL) return -1; + if ((state->type_params = PyUnicode_InternFromString("type_params")) == NULL) return -1; + if ((state->upper = PyUnicode_InternFromString("upper")) == NULL) return -1; + if ((state->value = PyUnicode_InternFromString("value")) == NULL) return -1; + if ((state->values = PyUnicode_InternFromString("values")) == NULL) return -1; + if ((state->vararg = PyUnicode_InternFromString("vararg")) == NULL) return -1; + return 0; }; GENERATE_ASDL_SEQ_CONSTRUCTOR(mod, mod_ty) @@ -809,15 +809,4230 @@ static PyObject* ast2obj_type_param(struct ast_state *state, struct validator static const char * const TypeVar_fields[]={ "name", "bound", + "default_value", }; static const char * const ParamSpec_fields[]={ "name", + "default_value", }; static const char * const TypeVarTuple_fields[]={ "name", + "default_value", }; +static int +add_ast_annotations(struct ast_state *state) +{ + bool cond; + PyObject *Module_annotations = PyDict_New(); + if (!Module_annotations) return 0; + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Module_annotations); + return 0; + } + cond = PyDict_SetItemString(Module_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Module_annotations); + return 0; + } + } + { + PyObject *type = state->type_ignore_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Module_annotations); + return 0; + } + cond = PyDict_SetItemString(Module_annotations, "type_ignores", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Module_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Module_type, "_field_types", + Module_annotations) == 0; + if (!cond) { + Py_DECREF(Module_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Module_type, "__annotations__", + Module_annotations) == 0; + if (!cond) { + Py_DECREF(Module_annotations); + return 0; + } + Py_DECREF(Module_annotations); + PyObject *Interactive_annotations = PyDict_New(); + if (!Interactive_annotations) return 0; + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Interactive_annotations); + return 0; + } + cond = PyDict_SetItemString(Interactive_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Interactive_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Interactive_type, "_field_types", + Interactive_annotations) == 0; + if (!cond) { + Py_DECREF(Interactive_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Interactive_type, "__annotations__", + Interactive_annotations) == 0; + if (!cond) { + Py_DECREF(Interactive_annotations); + return 0; + } + Py_DECREF(Interactive_annotations); + PyObject *Expression_annotations = PyDict_New(); + if (!Expression_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Expression_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Expression_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Expression_type, "_field_types", + Expression_annotations) == 0; + if (!cond) { + Py_DECREF(Expression_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Expression_type, "__annotations__", + Expression_annotations) == 0; + if (!cond) { + Py_DECREF(Expression_annotations); + return 0; + } + Py_DECREF(Expression_annotations); + PyObject *FunctionType_annotations = PyDict_New(); + if (!FunctionType_annotations) return 0; + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(FunctionType_annotations); + return 0; + } + cond = PyDict_SetItemString(FunctionType_annotations, "argtypes", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(FunctionType_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(FunctionType_annotations, "returns", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(FunctionType_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->FunctionType_type, "_field_types", + FunctionType_annotations) == 0; + if (!cond) { + Py_DECREF(FunctionType_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->FunctionType_type, "__annotations__", + FunctionType_annotations) == 0; + if (!cond) { + Py_DECREF(FunctionType_annotations); + return 0; + } + Py_DECREF(FunctionType_annotations); + PyObject *FunctionDef_annotations = PyDict_New(); + if (!FunctionDef_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(FunctionDef_annotations, "name", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + } + { + PyObject *type = state->arguments_type; + Py_INCREF(type); + cond = PyDict_SetItemString(FunctionDef_annotations, "args", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + cond = PyDict_SetItemString(FunctionDef_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + cond = PyDict_SetItemString(FunctionDef_annotations, "decorator_list", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + cond = PyDict_SetItemString(FunctionDef_annotations, "returns", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + cond = PyDict_SetItemString(FunctionDef_annotations, "type_comment", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + } + { + PyObject *type = state->type_param_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + cond = PyDict_SetItemString(FunctionDef_annotations, "type_params", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->FunctionDef_type, "_field_types", + FunctionDef_annotations) == 0; + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->FunctionDef_type, "__annotations__", + FunctionDef_annotations) == 0; + if (!cond) { + Py_DECREF(FunctionDef_annotations); + return 0; + } + Py_DECREF(FunctionDef_annotations); + PyObject *AsyncFunctionDef_annotations = PyDict_New(); + if (!AsyncFunctionDef_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(AsyncFunctionDef_annotations, "name", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + } + { + PyObject *type = state->arguments_type; + Py_INCREF(type); + cond = PyDict_SetItemString(AsyncFunctionDef_annotations, "args", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + cond = PyDict_SetItemString(AsyncFunctionDef_annotations, "body", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + cond = PyDict_SetItemString(AsyncFunctionDef_annotations, + "decorator_list", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + cond = PyDict_SetItemString(AsyncFunctionDef_annotations, "returns", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + cond = PyDict_SetItemString(AsyncFunctionDef_annotations, + "type_comment", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + } + { + PyObject *type = state->type_param_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + cond = PyDict_SetItemString(AsyncFunctionDef_annotations, + "type_params", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->AsyncFunctionDef_type, "_field_types", + AsyncFunctionDef_annotations) == 0; + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->AsyncFunctionDef_type, + "__annotations__", + AsyncFunctionDef_annotations) == 0; + if (!cond) { + Py_DECREF(AsyncFunctionDef_annotations); + return 0; + } + Py_DECREF(AsyncFunctionDef_annotations); + PyObject *ClassDef_annotations = PyDict_New(); + if (!ClassDef_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(ClassDef_annotations, "name", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + cond = PyDict_SetItemString(ClassDef_annotations, "bases", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + } + { + PyObject *type = state->keyword_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + cond = PyDict_SetItemString(ClassDef_annotations, "keywords", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + cond = PyDict_SetItemString(ClassDef_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + cond = PyDict_SetItemString(ClassDef_annotations, "decorator_list", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + } + { + PyObject *type = state->type_param_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + cond = PyDict_SetItemString(ClassDef_annotations, "type_params", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->ClassDef_type, "_field_types", + ClassDef_annotations) == 0; + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->ClassDef_type, "__annotations__", + ClassDef_annotations) == 0; + if (!cond) { + Py_DECREF(ClassDef_annotations); + return 0; + } + Py_DECREF(ClassDef_annotations); + PyObject *Return_annotations = PyDict_New(); + if (!Return_annotations) return 0; + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(Return_annotations); + return 0; + } + cond = PyDict_SetItemString(Return_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Return_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Return_type, "_field_types", + Return_annotations) == 0; + if (!cond) { + Py_DECREF(Return_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Return_type, "__annotations__", + Return_annotations) == 0; + if (!cond) { + Py_DECREF(Return_annotations); + return 0; + } + Py_DECREF(Return_annotations); + PyObject *Delete_annotations = PyDict_New(); + if (!Delete_annotations) return 0; + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Delete_annotations); + return 0; + } + cond = PyDict_SetItemString(Delete_annotations, "targets", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Delete_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Delete_type, "_field_types", + Delete_annotations) == 0; + if (!cond) { + Py_DECREF(Delete_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Delete_type, "__annotations__", + Delete_annotations) == 0; + if (!cond) { + Py_DECREF(Delete_annotations); + return 0; + } + Py_DECREF(Delete_annotations); + PyObject *Assign_annotations = PyDict_New(); + if (!Assign_annotations) return 0; + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Assign_annotations); + return 0; + } + cond = PyDict_SetItemString(Assign_annotations, "targets", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Assign_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Assign_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Assign_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(Assign_annotations); + return 0; + } + cond = PyDict_SetItemString(Assign_annotations, "type_comment", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Assign_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Assign_type, "_field_types", + Assign_annotations) == 0; + if (!cond) { + Py_DECREF(Assign_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Assign_type, "__annotations__", + Assign_annotations) == 0; + if (!cond) { + Py_DECREF(Assign_annotations); + return 0; + } + Py_DECREF(Assign_annotations); + PyObject *TypeAlias_annotations = PyDict_New(); + if (!TypeAlias_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(TypeAlias_annotations, "name", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TypeAlias_annotations); + return 0; + } + } + { + PyObject *type = state->type_param_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(TypeAlias_annotations); + return 0; + } + cond = PyDict_SetItemString(TypeAlias_annotations, "type_params", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TypeAlias_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(TypeAlias_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TypeAlias_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->TypeAlias_type, "_field_types", + TypeAlias_annotations) == 0; + if (!cond) { + Py_DECREF(TypeAlias_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->TypeAlias_type, "__annotations__", + TypeAlias_annotations) == 0; + if (!cond) { + Py_DECREF(TypeAlias_annotations); + return 0; + } + Py_DECREF(TypeAlias_annotations); + PyObject *AugAssign_annotations = PyDict_New(); + if (!AugAssign_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(AugAssign_annotations, "target", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AugAssign_annotations); + return 0; + } + } + { + PyObject *type = state->operator_type; + Py_INCREF(type); + cond = PyDict_SetItemString(AugAssign_annotations, "op", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AugAssign_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(AugAssign_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AugAssign_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->AugAssign_type, "_field_types", + AugAssign_annotations) == 0; + if (!cond) { + Py_DECREF(AugAssign_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->AugAssign_type, "__annotations__", + AugAssign_annotations) == 0; + if (!cond) { + Py_DECREF(AugAssign_annotations); + return 0; + } + Py_DECREF(AugAssign_annotations); + PyObject *AnnAssign_annotations = PyDict_New(); + if (!AnnAssign_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(AnnAssign_annotations, "target", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AnnAssign_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(AnnAssign_annotations, "annotation", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AnnAssign_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(AnnAssign_annotations); + return 0; + } + cond = PyDict_SetItemString(AnnAssign_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AnnAssign_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyLong_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(AnnAssign_annotations, "simple", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AnnAssign_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->AnnAssign_type, "_field_types", + AnnAssign_annotations) == 0; + if (!cond) { + Py_DECREF(AnnAssign_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->AnnAssign_type, "__annotations__", + AnnAssign_annotations) == 0; + if (!cond) { + Py_DECREF(AnnAssign_annotations); + return 0; + } + Py_DECREF(AnnAssign_annotations); + PyObject *For_annotations = PyDict_New(); + if (!For_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(For_annotations, "target", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(For_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(For_annotations, "iter", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(For_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(For_annotations); + return 0; + } + cond = PyDict_SetItemString(For_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(For_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(For_annotations); + return 0; + } + cond = PyDict_SetItemString(For_annotations, "orelse", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(For_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(For_annotations); + return 0; + } + cond = PyDict_SetItemString(For_annotations, "type_comment", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(For_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->For_type, "_field_types", + For_annotations) == 0; + if (!cond) { + Py_DECREF(For_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->For_type, "__annotations__", + For_annotations) == 0; + if (!cond) { + Py_DECREF(For_annotations); + return 0; + } + Py_DECREF(For_annotations); + PyObject *AsyncFor_annotations = PyDict_New(); + if (!AsyncFor_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(AsyncFor_annotations, "target", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncFor_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(AsyncFor_annotations, "iter", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncFor_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(AsyncFor_annotations); + return 0; + } + cond = PyDict_SetItemString(AsyncFor_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncFor_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(AsyncFor_annotations); + return 0; + } + cond = PyDict_SetItemString(AsyncFor_annotations, "orelse", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncFor_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(AsyncFor_annotations); + return 0; + } + cond = PyDict_SetItemString(AsyncFor_annotations, "type_comment", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncFor_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->AsyncFor_type, "_field_types", + AsyncFor_annotations) == 0; + if (!cond) { + Py_DECREF(AsyncFor_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->AsyncFor_type, "__annotations__", + AsyncFor_annotations) == 0; + if (!cond) { + Py_DECREF(AsyncFor_annotations); + return 0; + } + Py_DECREF(AsyncFor_annotations); + PyObject *While_annotations = PyDict_New(); + if (!While_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(While_annotations, "test", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(While_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(While_annotations); + return 0; + } + cond = PyDict_SetItemString(While_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(While_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(While_annotations); + return 0; + } + cond = PyDict_SetItemString(While_annotations, "orelse", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(While_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->While_type, "_field_types", + While_annotations) == 0; + if (!cond) { + Py_DECREF(While_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->While_type, "__annotations__", + While_annotations) == 0; + if (!cond) { + Py_DECREF(While_annotations); + return 0; + } + Py_DECREF(While_annotations); + PyObject *If_annotations = PyDict_New(); + if (!If_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(If_annotations, "test", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(If_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(If_annotations); + return 0; + } + cond = PyDict_SetItemString(If_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(If_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(If_annotations); + return 0; + } + cond = PyDict_SetItemString(If_annotations, "orelse", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(If_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->If_type, "_field_types", + If_annotations) == 0; + if (!cond) { + Py_DECREF(If_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->If_type, "__annotations__", + If_annotations) == 0; + if (!cond) { + Py_DECREF(If_annotations); + return 0; + } + Py_DECREF(If_annotations); + PyObject *With_annotations = PyDict_New(); + if (!With_annotations) return 0; + { + PyObject *type = state->withitem_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(With_annotations); + return 0; + } + cond = PyDict_SetItemString(With_annotations, "items", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(With_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(With_annotations); + return 0; + } + cond = PyDict_SetItemString(With_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(With_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(With_annotations); + return 0; + } + cond = PyDict_SetItemString(With_annotations, "type_comment", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(With_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->With_type, "_field_types", + With_annotations) == 0; + if (!cond) { + Py_DECREF(With_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->With_type, "__annotations__", + With_annotations) == 0; + if (!cond) { + Py_DECREF(With_annotations); + return 0; + } + Py_DECREF(With_annotations); + PyObject *AsyncWith_annotations = PyDict_New(); + if (!AsyncWith_annotations) return 0; + { + PyObject *type = state->withitem_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(AsyncWith_annotations); + return 0; + } + cond = PyDict_SetItemString(AsyncWith_annotations, "items", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncWith_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(AsyncWith_annotations); + return 0; + } + cond = PyDict_SetItemString(AsyncWith_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncWith_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(AsyncWith_annotations); + return 0; + } + cond = PyDict_SetItemString(AsyncWith_annotations, "type_comment", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(AsyncWith_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->AsyncWith_type, "_field_types", + AsyncWith_annotations) == 0; + if (!cond) { + Py_DECREF(AsyncWith_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->AsyncWith_type, "__annotations__", + AsyncWith_annotations) == 0; + if (!cond) { + Py_DECREF(AsyncWith_annotations); + return 0; + } + Py_DECREF(AsyncWith_annotations); + PyObject *Match_annotations = PyDict_New(); + if (!Match_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Match_annotations, "subject", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Match_annotations); + return 0; + } + } + { + PyObject *type = state->match_case_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Match_annotations); + return 0; + } + cond = PyDict_SetItemString(Match_annotations, "cases", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Match_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Match_type, "_field_types", + Match_annotations) == 0; + if (!cond) { + Py_DECREF(Match_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Match_type, "__annotations__", + Match_annotations) == 0; + if (!cond) { + Py_DECREF(Match_annotations); + return 0; + } + Py_DECREF(Match_annotations); + PyObject *Raise_annotations = PyDict_New(); + if (!Raise_annotations) return 0; + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(Raise_annotations); + return 0; + } + cond = PyDict_SetItemString(Raise_annotations, "exc", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Raise_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(Raise_annotations); + return 0; + } + cond = PyDict_SetItemString(Raise_annotations, "cause", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Raise_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Raise_type, "_field_types", + Raise_annotations) == 0; + if (!cond) { + Py_DECREF(Raise_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Raise_type, "__annotations__", + Raise_annotations) == 0; + if (!cond) { + Py_DECREF(Raise_annotations); + return 0; + } + Py_DECREF(Raise_annotations); + PyObject *Try_annotations = PyDict_New(); + if (!Try_annotations) return 0; + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Try_annotations); + return 0; + } + cond = PyDict_SetItemString(Try_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Try_annotations); + return 0; + } + } + { + PyObject *type = state->excepthandler_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Try_annotations); + return 0; + } + cond = PyDict_SetItemString(Try_annotations, "handlers", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Try_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Try_annotations); + return 0; + } + cond = PyDict_SetItemString(Try_annotations, "orelse", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Try_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Try_annotations); + return 0; + } + cond = PyDict_SetItemString(Try_annotations, "finalbody", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Try_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Try_type, "_field_types", + Try_annotations) == 0; + if (!cond) { + Py_DECREF(Try_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Try_type, "__annotations__", + Try_annotations) == 0; + if (!cond) { + Py_DECREF(Try_annotations); + return 0; + } + Py_DECREF(Try_annotations); + PyObject *TryStar_annotations = PyDict_New(); + if (!TryStar_annotations) return 0; + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(TryStar_annotations); + return 0; + } + cond = PyDict_SetItemString(TryStar_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TryStar_annotations); + return 0; + } + } + { + PyObject *type = state->excepthandler_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(TryStar_annotations); + return 0; + } + cond = PyDict_SetItemString(TryStar_annotations, "handlers", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TryStar_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(TryStar_annotations); + return 0; + } + cond = PyDict_SetItemString(TryStar_annotations, "orelse", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TryStar_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(TryStar_annotations); + return 0; + } + cond = PyDict_SetItemString(TryStar_annotations, "finalbody", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TryStar_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->TryStar_type, "_field_types", + TryStar_annotations) == 0; + if (!cond) { + Py_DECREF(TryStar_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->TryStar_type, "__annotations__", + TryStar_annotations) == 0; + if (!cond) { + Py_DECREF(TryStar_annotations); + return 0; + } + Py_DECREF(TryStar_annotations); + PyObject *Assert_annotations = PyDict_New(); + if (!Assert_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Assert_annotations, "test", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Assert_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(Assert_annotations); + return 0; + } + cond = PyDict_SetItemString(Assert_annotations, "msg", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Assert_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Assert_type, "_field_types", + Assert_annotations) == 0; + if (!cond) { + Py_DECREF(Assert_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Assert_type, "__annotations__", + Assert_annotations) == 0; + if (!cond) { + Py_DECREF(Assert_annotations); + return 0; + } + Py_DECREF(Assert_annotations); + PyObject *Import_annotations = PyDict_New(); + if (!Import_annotations) return 0; + { + PyObject *type = state->alias_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Import_annotations); + return 0; + } + cond = PyDict_SetItemString(Import_annotations, "names", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Import_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Import_type, "_field_types", + Import_annotations) == 0; + if (!cond) { + Py_DECREF(Import_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Import_type, "__annotations__", + Import_annotations) == 0; + if (!cond) { + Py_DECREF(Import_annotations); + return 0; + } + Py_DECREF(Import_annotations); + PyObject *ImportFrom_annotations = PyDict_New(); + if (!ImportFrom_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(ImportFrom_annotations); + return 0; + } + cond = PyDict_SetItemString(ImportFrom_annotations, "module", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ImportFrom_annotations); + return 0; + } + } + { + PyObject *type = state->alias_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(ImportFrom_annotations); + return 0; + } + cond = PyDict_SetItemString(ImportFrom_annotations, "names", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ImportFrom_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyLong_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(ImportFrom_annotations); + return 0; + } + cond = PyDict_SetItemString(ImportFrom_annotations, "level", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ImportFrom_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->ImportFrom_type, "_field_types", + ImportFrom_annotations) == 0; + if (!cond) { + Py_DECREF(ImportFrom_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->ImportFrom_type, "__annotations__", + ImportFrom_annotations) == 0; + if (!cond) { + Py_DECREF(ImportFrom_annotations); + return 0; + } + Py_DECREF(ImportFrom_annotations); + PyObject *Global_annotations = PyDict_New(); + if (!Global_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Global_annotations); + return 0; + } + cond = PyDict_SetItemString(Global_annotations, "names", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Global_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Global_type, "_field_types", + Global_annotations) == 0; + if (!cond) { + Py_DECREF(Global_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Global_type, "__annotations__", + Global_annotations) == 0; + if (!cond) { + Py_DECREF(Global_annotations); + return 0; + } + Py_DECREF(Global_annotations); + PyObject *Nonlocal_annotations = PyDict_New(); + if (!Nonlocal_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Nonlocal_annotations); + return 0; + } + cond = PyDict_SetItemString(Nonlocal_annotations, "names", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Nonlocal_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Nonlocal_type, "_field_types", + Nonlocal_annotations) == 0; + if (!cond) { + Py_DECREF(Nonlocal_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Nonlocal_type, "__annotations__", + Nonlocal_annotations) == 0; + if (!cond) { + Py_DECREF(Nonlocal_annotations); + return 0; + } + Py_DECREF(Nonlocal_annotations); + PyObject *Expr_annotations = PyDict_New(); + if (!Expr_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Expr_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Expr_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Expr_type, "_field_types", + Expr_annotations) == 0; + if (!cond) { + Py_DECREF(Expr_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Expr_type, "__annotations__", + Expr_annotations) == 0; + if (!cond) { + Py_DECREF(Expr_annotations); + return 0; + } + Py_DECREF(Expr_annotations); + PyObject *Pass_annotations = PyDict_New(); + if (!Pass_annotations) return 0; + cond = PyObject_SetAttrString(state->Pass_type, "_field_types", + Pass_annotations) == 0; + if (!cond) { + Py_DECREF(Pass_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Pass_type, "__annotations__", + Pass_annotations) == 0; + if (!cond) { + Py_DECREF(Pass_annotations); + return 0; + } + Py_DECREF(Pass_annotations); + PyObject *Break_annotations = PyDict_New(); + if (!Break_annotations) return 0; + cond = PyObject_SetAttrString(state->Break_type, "_field_types", + Break_annotations) == 0; + if (!cond) { + Py_DECREF(Break_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Break_type, "__annotations__", + Break_annotations) == 0; + if (!cond) { + Py_DECREF(Break_annotations); + return 0; + } + Py_DECREF(Break_annotations); + PyObject *Continue_annotations = PyDict_New(); + if (!Continue_annotations) return 0; + cond = PyObject_SetAttrString(state->Continue_type, "_field_types", + Continue_annotations) == 0; + if (!cond) { + Py_DECREF(Continue_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Continue_type, "__annotations__", + Continue_annotations) == 0; + if (!cond) { + Py_DECREF(Continue_annotations); + return 0; + } + Py_DECREF(Continue_annotations); + PyObject *BoolOp_annotations = PyDict_New(); + if (!BoolOp_annotations) return 0; + { + PyObject *type = state->boolop_type; + Py_INCREF(type); + cond = PyDict_SetItemString(BoolOp_annotations, "op", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(BoolOp_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(BoolOp_annotations); + return 0; + } + cond = PyDict_SetItemString(BoolOp_annotations, "values", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(BoolOp_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->BoolOp_type, "_field_types", + BoolOp_annotations) == 0; + if (!cond) { + Py_DECREF(BoolOp_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->BoolOp_type, "__annotations__", + BoolOp_annotations) == 0; + if (!cond) { + Py_DECREF(BoolOp_annotations); + return 0; + } + Py_DECREF(BoolOp_annotations); + PyObject *NamedExpr_annotations = PyDict_New(); + if (!NamedExpr_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(NamedExpr_annotations, "target", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(NamedExpr_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(NamedExpr_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(NamedExpr_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->NamedExpr_type, "_field_types", + NamedExpr_annotations) == 0; + if (!cond) { + Py_DECREF(NamedExpr_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->NamedExpr_type, "__annotations__", + NamedExpr_annotations) == 0; + if (!cond) { + Py_DECREF(NamedExpr_annotations); + return 0; + } + Py_DECREF(NamedExpr_annotations); + PyObject *BinOp_annotations = PyDict_New(); + if (!BinOp_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(BinOp_annotations, "left", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(BinOp_annotations); + return 0; + } + } + { + PyObject *type = state->operator_type; + Py_INCREF(type); + cond = PyDict_SetItemString(BinOp_annotations, "op", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(BinOp_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(BinOp_annotations, "right", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(BinOp_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->BinOp_type, "_field_types", + BinOp_annotations) == 0; + if (!cond) { + Py_DECREF(BinOp_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->BinOp_type, "__annotations__", + BinOp_annotations) == 0; + if (!cond) { + Py_DECREF(BinOp_annotations); + return 0; + } + Py_DECREF(BinOp_annotations); + PyObject *UnaryOp_annotations = PyDict_New(); + if (!UnaryOp_annotations) return 0; + { + PyObject *type = state->unaryop_type; + Py_INCREF(type); + cond = PyDict_SetItemString(UnaryOp_annotations, "op", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(UnaryOp_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(UnaryOp_annotations, "operand", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(UnaryOp_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->UnaryOp_type, "_field_types", + UnaryOp_annotations) == 0; + if (!cond) { + Py_DECREF(UnaryOp_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->UnaryOp_type, "__annotations__", + UnaryOp_annotations) == 0; + if (!cond) { + Py_DECREF(UnaryOp_annotations); + return 0; + } + Py_DECREF(UnaryOp_annotations); + PyObject *Lambda_annotations = PyDict_New(); + if (!Lambda_annotations) return 0; + { + PyObject *type = state->arguments_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Lambda_annotations, "args", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Lambda_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Lambda_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Lambda_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Lambda_type, "_field_types", + Lambda_annotations) == 0; + if (!cond) { + Py_DECREF(Lambda_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Lambda_type, "__annotations__", + Lambda_annotations) == 0; + if (!cond) { + Py_DECREF(Lambda_annotations); + return 0; + } + Py_DECREF(Lambda_annotations); + PyObject *IfExp_annotations = PyDict_New(); + if (!IfExp_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(IfExp_annotations, "test", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(IfExp_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(IfExp_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(IfExp_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(IfExp_annotations, "orelse", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(IfExp_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->IfExp_type, "_field_types", + IfExp_annotations) == 0; + if (!cond) { + Py_DECREF(IfExp_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->IfExp_type, "__annotations__", + IfExp_annotations) == 0; + if (!cond) { + Py_DECREF(IfExp_annotations); + return 0; + } + Py_DECREF(IfExp_annotations); + PyObject *Dict_annotations = PyDict_New(); + if (!Dict_annotations) return 0; + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Dict_annotations); + return 0; + } + cond = PyDict_SetItemString(Dict_annotations, "keys", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Dict_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Dict_annotations); + return 0; + } + cond = PyDict_SetItemString(Dict_annotations, "values", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Dict_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Dict_type, "_field_types", + Dict_annotations) == 0; + if (!cond) { + Py_DECREF(Dict_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Dict_type, "__annotations__", + Dict_annotations) == 0; + if (!cond) { + Py_DECREF(Dict_annotations); + return 0; + } + Py_DECREF(Dict_annotations); + PyObject *Set_annotations = PyDict_New(); + if (!Set_annotations) return 0; + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Set_annotations); + return 0; + } + cond = PyDict_SetItemString(Set_annotations, "elts", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Set_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Set_type, "_field_types", + Set_annotations) == 0; + if (!cond) { + Py_DECREF(Set_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Set_type, "__annotations__", + Set_annotations) == 0; + if (!cond) { + Py_DECREF(Set_annotations); + return 0; + } + Py_DECREF(Set_annotations); + PyObject *ListComp_annotations = PyDict_New(); + if (!ListComp_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(ListComp_annotations, "elt", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ListComp_annotations); + return 0; + } + } + { + PyObject *type = state->comprehension_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(ListComp_annotations); + return 0; + } + cond = PyDict_SetItemString(ListComp_annotations, "generators", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ListComp_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->ListComp_type, "_field_types", + ListComp_annotations) == 0; + if (!cond) { + Py_DECREF(ListComp_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->ListComp_type, "__annotations__", + ListComp_annotations) == 0; + if (!cond) { + Py_DECREF(ListComp_annotations); + return 0; + } + Py_DECREF(ListComp_annotations); + PyObject *SetComp_annotations = PyDict_New(); + if (!SetComp_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(SetComp_annotations, "elt", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(SetComp_annotations); + return 0; + } + } + { + PyObject *type = state->comprehension_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(SetComp_annotations); + return 0; + } + cond = PyDict_SetItemString(SetComp_annotations, "generators", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(SetComp_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->SetComp_type, "_field_types", + SetComp_annotations) == 0; + if (!cond) { + Py_DECREF(SetComp_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->SetComp_type, "__annotations__", + SetComp_annotations) == 0; + if (!cond) { + Py_DECREF(SetComp_annotations); + return 0; + } + Py_DECREF(SetComp_annotations); + PyObject *DictComp_annotations = PyDict_New(); + if (!DictComp_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(DictComp_annotations, "key", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(DictComp_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(DictComp_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(DictComp_annotations); + return 0; + } + } + { + PyObject *type = state->comprehension_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(DictComp_annotations); + return 0; + } + cond = PyDict_SetItemString(DictComp_annotations, "generators", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(DictComp_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->DictComp_type, "_field_types", + DictComp_annotations) == 0; + if (!cond) { + Py_DECREF(DictComp_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->DictComp_type, "__annotations__", + DictComp_annotations) == 0; + if (!cond) { + Py_DECREF(DictComp_annotations); + return 0; + } + Py_DECREF(DictComp_annotations); + PyObject *GeneratorExp_annotations = PyDict_New(); + if (!GeneratorExp_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(GeneratorExp_annotations, "elt", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(GeneratorExp_annotations); + return 0; + } + } + { + PyObject *type = state->comprehension_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(GeneratorExp_annotations); + return 0; + } + cond = PyDict_SetItemString(GeneratorExp_annotations, "generators", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(GeneratorExp_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->GeneratorExp_type, "_field_types", + GeneratorExp_annotations) == 0; + if (!cond) { + Py_DECREF(GeneratorExp_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->GeneratorExp_type, "__annotations__", + GeneratorExp_annotations) == 0; + if (!cond) { + Py_DECREF(GeneratorExp_annotations); + return 0; + } + Py_DECREF(GeneratorExp_annotations); + PyObject *Await_annotations = PyDict_New(); + if (!Await_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Await_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Await_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Await_type, "_field_types", + Await_annotations) == 0; + if (!cond) { + Py_DECREF(Await_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Await_type, "__annotations__", + Await_annotations) == 0; + if (!cond) { + Py_DECREF(Await_annotations); + return 0; + } + Py_DECREF(Await_annotations); + PyObject *Yield_annotations = PyDict_New(); + if (!Yield_annotations) return 0; + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(Yield_annotations); + return 0; + } + cond = PyDict_SetItemString(Yield_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Yield_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Yield_type, "_field_types", + Yield_annotations) == 0; + if (!cond) { + Py_DECREF(Yield_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Yield_type, "__annotations__", + Yield_annotations) == 0; + if (!cond) { + Py_DECREF(Yield_annotations); + return 0; + } + Py_DECREF(Yield_annotations); + PyObject *YieldFrom_annotations = PyDict_New(); + if (!YieldFrom_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(YieldFrom_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(YieldFrom_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->YieldFrom_type, "_field_types", + YieldFrom_annotations) == 0; + if (!cond) { + Py_DECREF(YieldFrom_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->YieldFrom_type, "__annotations__", + YieldFrom_annotations) == 0; + if (!cond) { + Py_DECREF(YieldFrom_annotations); + return 0; + } + Py_DECREF(YieldFrom_annotations); + PyObject *Compare_annotations = PyDict_New(); + if (!Compare_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Compare_annotations, "left", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Compare_annotations); + return 0; + } + } + { + PyObject *type = state->cmpop_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Compare_annotations); + return 0; + } + cond = PyDict_SetItemString(Compare_annotations, "ops", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Compare_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Compare_annotations); + return 0; + } + cond = PyDict_SetItemString(Compare_annotations, "comparators", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Compare_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Compare_type, "_field_types", + Compare_annotations) == 0; + if (!cond) { + Py_DECREF(Compare_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Compare_type, "__annotations__", + Compare_annotations) == 0; + if (!cond) { + Py_DECREF(Compare_annotations); + return 0; + } + Py_DECREF(Compare_annotations); + PyObject *Call_annotations = PyDict_New(); + if (!Call_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Call_annotations, "func", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Call_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Call_annotations); + return 0; + } + cond = PyDict_SetItemString(Call_annotations, "args", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Call_annotations); + return 0; + } + } + { + PyObject *type = state->keyword_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Call_annotations); + return 0; + } + cond = PyDict_SetItemString(Call_annotations, "keywords", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Call_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Call_type, "_field_types", + Call_annotations) == 0; + if (!cond) { + Py_DECREF(Call_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Call_type, "__annotations__", + Call_annotations) == 0; + if (!cond) { + Py_DECREF(Call_annotations); + return 0; + } + Py_DECREF(Call_annotations); + PyObject *FormattedValue_annotations = PyDict_New(); + if (!FormattedValue_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(FormattedValue_annotations, "value", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(FormattedValue_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyLong_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(FormattedValue_annotations, "conversion", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(FormattedValue_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(FormattedValue_annotations); + return 0; + } + cond = PyDict_SetItemString(FormattedValue_annotations, "format_spec", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(FormattedValue_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->FormattedValue_type, "_field_types", + FormattedValue_annotations) == 0; + if (!cond) { + Py_DECREF(FormattedValue_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->FormattedValue_type, + "__annotations__", + FormattedValue_annotations) == 0; + if (!cond) { + Py_DECREF(FormattedValue_annotations); + return 0; + } + Py_DECREF(FormattedValue_annotations); + PyObject *JoinedStr_annotations = PyDict_New(); + if (!JoinedStr_annotations) return 0; + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(JoinedStr_annotations); + return 0; + } + cond = PyDict_SetItemString(JoinedStr_annotations, "values", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(JoinedStr_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->JoinedStr_type, "_field_types", + JoinedStr_annotations) == 0; + if (!cond) { + Py_DECREF(JoinedStr_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->JoinedStr_type, "__annotations__", + JoinedStr_annotations) == 0; + if (!cond) { + Py_DECREF(JoinedStr_annotations); + return 0; + } + Py_DECREF(JoinedStr_annotations); + PyObject *Constant_annotations = PyDict_New(); + if (!Constant_annotations) return 0; + { + PyObject *type = (PyObject *)&PyBaseObject_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(Constant_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Constant_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(Constant_annotations); + return 0; + } + cond = PyDict_SetItemString(Constant_annotations, "kind", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Constant_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Constant_type, "_field_types", + Constant_annotations) == 0; + if (!cond) { + Py_DECREF(Constant_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Constant_type, "__annotations__", + Constant_annotations) == 0; + if (!cond) { + Py_DECREF(Constant_annotations); + return 0; + } + Py_DECREF(Constant_annotations); + PyObject *Attribute_annotations = PyDict_New(); + if (!Attribute_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Attribute_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Attribute_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(Attribute_annotations, "attr", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Attribute_annotations); + return 0; + } + } + { + PyObject *type = state->expr_context_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Attribute_annotations, "ctx", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Attribute_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Attribute_type, "_field_types", + Attribute_annotations) == 0; + if (!cond) { + Py_DECREF(Attribute_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Attribute_type, "__annotations__", + Attribute_annotations) == 0; + if (!cond) { + Py_DECREF(Attribute_annotations); + return 0; + } + Py_DECREF(Attribute_annotations); + PyObject *Subscript_annotations = PyDict_New(); + if (!Subscript_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Subscript_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Subscript_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Subscript_annotations, "slice", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Subscript_annotations); + return 0; + } + } + { + PyObject *type = state->expr_context_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Subscript_annotations, "ctx", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Subscript_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Subscript_type, "_field_types", + Subscript_annotations) == 0; + if (!cond) { + Py_DECREF(Subscript_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Subscript_type, "__annotations__", + Subscript_annotations) == 0; + if (!cond) { + Py_DECREF(Subscript_annotations); + return 0; + } + Py_DECREF(Subscript_annotations); + PyObject *Starred_annotations = PyDict_New(); + if (!Starred_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Starred_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Starred_annotations); + return 0; + } + } + { + PyObject *type = state->expr_context_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Starred_annotations, "ctx", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Starred_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Starred_type, "_field_types", + Starred_annotations) == 0; + if (!cond) { + Py_DECREF(Starred_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Starred_type, "__annotations__", + Starred_annotations) == 0; + if (!cond) { + Py_DECREF(Starred_annotations); + return 0; + } + Py_DECREF(Starred_annotations); + PyObject *Name_annotations = PyDict_New(); + if (!Name_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(Name_annotations, "id", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Name_annotations); + return 0; + } + } + { + PyObject *type = state->expr_context_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Name_annotations, "ctx", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Name_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Name_type, "_field_types", + Name_annotations) == 0; + if (!cond) { + Py_DECREF(Name_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Name_type, "__annotations__", + Name_annotations) == 0; + if (!cond) { + Py_DECREF(Name_annotations); + return 0; + } + Py_DECREF(Name_annotations); + PyObject *List_annotations = PyDict_New(); + if (!List_annotations) return 0; + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(List_annotations); + return 0; + } + cond = PyDict_SetItemString(List_annotations, "elts", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(List_annotations); + return 0; + } + } + { + PyObject *type = state->expr_context_type; + Py_INCREF(type); + cond = PyDict_SetItemString(List_annotations, "ctx", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(List_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->List_type, "_field_types", + List_annotations) == 0; + if (!cond) { + Py_DECREF(List_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->List_type, "__annotations__", + List_annotations) == 0; + if (!cond) { + Py_DECREF(List_annotations); + return 0; + } + Py_DECREF(List_annotations); + PyObject *Tuple_annotations = PyDict_New(); + if (!Tuple_annotations) return 0; + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(Tuple_annotations); + return 0; + } + cond = PyDict_SetItemString(Tuple_annotations, "elts", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Tuple_annotations); + return 0; + } + } + { + PyObject *type = state->expr_context_type; + Py_INCREF(type); + cond = PyDict_SetItemString(Tuple_annotations, "ctx", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Tuple_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Tuple_type, "_field_types", + Tuple_annotations) == 0; + if (!cond) { + Py_DECREF(Tuple_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Tuple_type, "__annotations__", + Tuple_annotations) == 0; + if (!cond) { + Py_DECREF(Tuple_annotations); + return 0; + } + Py_DECREF(Tuple_annotations); + PyObject *Slice_annotations = PyDict_New(); + if (!Slice_annotations) return 0; + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(Slice_annotations); + return 0; + } + cond = PyDict_SetItemString(Slice_annotations, "lower", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Slice_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(Slice_annotations); + return 0; + } + cond = PyDict_SetItemString(Slice_annotations, "upper", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Slice_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(Slice_annotations); + return 0; + } + cond = PyDict_SetItemString(Slice_annotations, "step", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(Slice_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->Slice_type, "_field_types", + Slice_annotations) == 0; + if (!cond) { + Py_DECREF(Slice_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Slice_type, "__annotations__", + Slice_annotations) == 0; + if (!cond) { + Py_DECREF(Slice_annotations); + return 0; + } + Py_DECREF(Slice_annotations); + PyObject *Load_annotations = PyDict_New(); + if (!Load_annotations) return 0; + cond = PyObject_SetAttrString(state->Load_type, "_field_types", + Load_annotations) == 0; + if (!cond) { + Py_DECREF(Load_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Load_type, "__annotations__", + Load_annotations) == 0; + if (!cond) { + Py_DECREF(Load_annotations); + return 0; + } + Py_DECREF(Load_annotations); + PyObject *Store_annotations = PyDict_New(); + if (!Store_annotations) return 0; + cond = PyObject_SetAttrString(state->Store_type, "_field_types", + Store_annotations) == 0; + if (!cond) { + Py_DECREF(Store_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Store_type, "__annotations__", + Store_annotations) == 0; + if (!cond) { + Py_DECREF(Store_annotations); + return 0; + } + Py_DECREF(Store_annotations); + PyObject *Del_annotations = PyDict_New(); + if (!Del_annotations) return 0; + cond = PyObject_SetAttrString(state->Del_type, "_field_types", + Del_annotations) == 0; + if (!cond) { + Py_DECREF(Del_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Del_type, "__annotations__", + Del_annotations) == 0; + if (!cond) { + Py_DECREF(Del_annotations); + return 0; + } + Py_DECREF(Del_annotations); + PyObject *And_annotations = PyDict_New(); + if (!And_annotations) return 0; + cond = PyObject_SetAttrString(state->And_type, "_field_types", + And_annotations) == 0; + if (!cond) { + Py_DECREF(And_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->And_type, "__annotations__", + And_annotations) == 0; + if (!cond) { + Py_DECREF(And_annotations); + return 0; + } + Py_DECREF(And_annotations); + PyObject *Or_annotations = PyDict_New(); + if (!Or_annotations) return 0; + cond = PyObject_SetAttrString(state->Or_type, "_field_types", + Or_annotations) == 0; + if (!cond) { + Py_DECREF(Or_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Or_type, "__annotations__", + Or_annotations) == 0; + if (!cond) { + Py_DECREF(Or_annotations); + return 0; + } + Py_DECREF(Or_annotations); + PyObject *Add_annotations = PyDict_New(); + if (!Add_annotations) return 0; + cond = PyObject_SetAttrString(state->Add_type, "_field_types", + Add_annotations) == 0; + if (!cond) { + Py_DECREF(Add_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Add_type, "__annotations__", + Add_annotations) == 0; + if (!cond) { + Py_DECREF(Add_annotations); + return 0; + } + Py_DECREF(Add_annotations); + PyObject *Sub_annotations = PyDict_New(); + if (!Sub_annotations) return 0; + cond = PyObject_SetAttrString(state->Sub_type, "_field_types", + Sub_annotations) == 0; + if (!cond) { + Py_DECREF(Sub_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Sub_type, "__annotations__", + Sub_annotations) == 0; + if (!cond) { + Py_DECREF(Sub_annotations); + return 0; + } + Py_DECREF(Sub_annotations); + PyObject *Mult_annotations = PyDict_New(); + if (!Mult_annotations) return 0; + cond = PyObject_SetAttrString(state->Mult_type, "_field_types", + Mult_annotations) == 0; + if (!cond) { + Py_DECREF(Mult_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Mult_type, "__annotations__", + Mult_annotations) == 0; + if (!cond) { + Py_DECREF(Mult_annotations); + return 0; + } + Py_DECREF(Mult_annotations); + PyObject *MatMult_annotations = PyDict_New(); + if (!MatMult_annotations) return 0; + cond = PyObject_SetAttrString(state->MatMult_type, "_field_types", + MatMult_annotations) == 0; + if (!cond) { + Py_DECREF(MatMult_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->MatMult_type, "__annotations__", + MatMult_annotations) == 0; + if (!cond) { + Py_DECREF(MatMult_annotations); + return 0; + } + Py_DECREF(MatMult_annotations); + PyObject *Div_annotations = PyDict_New(); + if (!Div_annotations) return 0; + cond = PyObject_SetAttrString(state->Div_type, "_field_types", + Div_annotations) == 0; + if (!cond) { + Py_DECREF(Div_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Div_type, "__annotations__", + Div_annotations) == 0; + if (!cond) { + Py_DECREF(Div_annotations); + return 0; + } + Py_DECREF(Div_annotations); + PyObject *Mod_annotations = PyDict_New(); + if (!Mod_annotations) return 0; + cond = PyObject_SetAttrString(state->Mod_type, "_field_types", + Mod_annotations) == 0; + if (!cond) { + Py_DECREF(Mod_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Mod_type, "__annotations__", + Mod_annotations) == 0; + if (!cond) { + Py_DECREF(Mod_annotations); + return 0; + } + Py_DECREF(Mod_annotations); + PyObject *Pow_annotations = PyDict_New(); + if (!Pow_annotations) return 0; + cond = PyObject_SetAttrString(state->Pow_type, "_field_types", + Pow_annotations) == 0; + if (!cond) { + Py_DECREF(Pow_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Pow_type, "__annotations__", + Pow_annotations) == 0; + if (!cond) { + Py_DECREF(Pow_annotations); + return 0; + } + Py_DECREF(Pow_annotations); + PyObject *LShift_annotations = PyDict_New(); + if (!LShift_annotations) return 0; + cond = PyObject_SetAttrString(state->LShift_type, "_field_types", + LShift_annotations) == 0; + if (!cond) { + Py_DECREF(LShift_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->LShift_type, "__annotations__", + LShift_annotations) == 0; + if (!cond) { + Py_DECREF(LShift_annotations); + return 0; + } + Py_DECREF(LShift_annotations); + PyObject *RShift_annotations = PyDict_New(); + if (!RShift_annotations) return 0; + cond = PyObject_SetAttrString(state->RShift_type, "_field_types", + RShift_annotations) == 0; + if (!cond) { + Py_DECREF(RShift_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->RShift_type, "__annotations__", + RShift_annotations) == 0; + if (!cond) { + Py_DECREF(RShift_annotations); + return 0; + } + Py_DECREF(RShift_annotations); + PyObject *BitOr_annotations = PyDict_New(); + if (!BitOr_annotations) return 0; + cond = PyObject_SetAttrString(state->BitOr_type, "_field_types", + BitOr_annotations) == 0; + if (!cond) { + Py_DECREF(BitOr_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->BitOr_type, "__annotations__", + BitOr_annotations) == 0; + if (!cond) { + Py_DECREF(BitOr_annotations); + return 0; + } + Py_DECREF(BitOr_annotations); + PyObject *BitXor_annotations = PyDict_New(); + if (!BitXor_annotations) return 0; + cond = PyObject_SetAttrString(state->BitXor_type, "_field_types", + BitXor_annotations) == 0; + if (!cond) { + Py_DECREF(BitXor_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->BitXor_type, "__annotations__", + BitXor_annotations) == 0; + if (!cond) { + Py_DECREF(BitXor_annotations); + return 0; + } + Py_DECREF(BitXor_annotations); + PyObject *BitAnd_annotations = PyDict_New(); + if (!BitAnd_annotations) return 0; + cond = PyObject_SetAttrString(state->BitAnd_type, "_field_types", + BitAnd_annotations) == 0; + if (!cond) { + Py_DECREF(BitAnd_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->BitAnd_type, "__annotations__", + BitAnd_annotations) == 0; + if (!cond) { + Py_DECREF(BitAnd_annotations); + return 0; + } + Py_DECREF(BitAnd_annotations); + PyObject *FloorDiv_annotations = PyDict_New(); + if (!FloorDiv_annotations) return 0; + cond = PyObject_SetAttrString(state->FloorDiv_type, "_field_types", + FloorDiv_annotations) == 0; + if (!cond) { + Py_DECREF(FloorDiv_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->FloorDiv_type, "__annotations__", + FloorDiv_annotations) == 0; + if (!cond) { + Py_DECREF(FloorDiv_annotations); + return 0; + } + Py_DECREF(FloorDiv_annotations); + PyObject *Invert_annotations = PyDict_New(); + if (!Invert_annotations) return 0; + cond = PyObject_SetAttrString(state->Invert_type, "_field_types", + Invert_annotations) == 0; + if (!cond) { + Py_DECREF(Invert_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Invert_type, "__annotations__", + Invert_annotations) == 0; + if (!cond) { + Py_DECREF(Invert_annotations); + return 0; + } + Py_DECREF(Invert_annotations); + PyObject *Not_annotations = PyDict_New(); + if (!Not_annotations) return 0; + cond = PyObject_SetAttrString(state->Not_type, "_field_types", + Not_annotations) == 0; + if (!cond) { + Py_DECREF(Not_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Not_type, "__annotations__", + Not_annotations) == 0; + if (!cond) { + Py_DECREF(Not_annotations); + return 0; + } + Py_DECREF(Not_annotations); + PyObject *UAdd_annotations = PyDict_New(); + if (!UAdd_annotations) return 0; + cond = PyObject_SetAttrString(state->UAdd_type, "_field_types", + UAdd_annotations) == 0; + if (!cond) { + Py_DECREF(UAdd_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->UAdd_type, "__annotations__", + UAdd_annotations) == 0; + if (!cond) { + Py_DECREF(UAdd_annotations); + return 0; + } + Py_DECREF(UAdd_annotations); + PyObject *USub_annotations = PyDict_New(); + if (!USub_annotations) return 0; + cond = PyObject_SetAttrString(state->USub_type, "_field_types", + USub_annotations) == 0; + if (!cond) { + Py_DECREF(USub_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->USub_type, "__annotations__", + USub_annotations) == 0; + if (!cond) { + Py_DECREF(USub_annotations); + return 0; + } + Py_DECREF(USub_annotations); + PyObject *Eq_annotations = PyDict_New(); + if (!Eq_annotations) return 0; + cond = PyObject_SetAttrString(state->Eq_type, "_field_types", + Eq_annotations) == 0; + if (!cond) { + Py_DECREF(Eq_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Eq_type, "__annotations__", + Eq_annotations) == 0; + if (!cond) { + Py_DECREF(Eq_annotations); + return 0; + } + Py_DECREF(Eq_annotations); + PyObject *NotEq_annotations = PyDict_New(); + if (!NotEq_annotations) return 0; + cond = PyObject_SetAttrString(state->NotEq_type, "_field_types", + NotEq_annotations) == 0; + if (!cond) { + Py_DECREF(NotEq_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->NotEq_type, "__annotations__", + NotEq_annotations) == 0; + if (!cond) { + Py_DECREF(NotEq_annotations); + return 0; + } + Py_DECREF(NotEq_annotations); + PyObject *Lt_annotations = PyDict_New(); + if (!Lt_annotations) return 0; + cond = PyObject_SetAttrString(state->Lt_type, "_field_types", + Lt_annotations) == 0; + if (!cond) { + Py_DECREF(Lt_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Lt_type, "__annotations__", + Lt_annotations) == 0; + if (!cond) { + Py_DECREF(Lt_annotations); + return 0; + } + Py_DECREF(Lt_annotations); + PyObject *LtE_annotations = PyDict_New(); + if (!LtE_annotations) return 0; + cond = PyObject_SetAttrString(state->LtE_type, "_field_types", + LtE_annotations) == 0; + if (!cond) { + Py_DECREF(LtE_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->LtE_type, "__annotations__", + LtE_annotations) == 0; + if (!cond) { + Py_DECREF(LtE_annotations); + return 0; + } + Py_DECREF(LtE_annotations); + PyObject *Gt_annotations = PyDict_New(); + if (!Gt_annotations) return 0; + cond = PyObject_SetAttrString(state->Gt_type, "_field_types", + Gt_annotations) == 0; + if (!cond) { + Py_DECREF(Gt_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Gt_type, "__annotations__", + Gt_annotations) == 0; + if (!cond) { + Py_DECREF(Gt_annotations); + return 0; + } + Py_DECREF(Gt_annotations); + PyObject *GtE_annotations = PyDict_New(); + if (!GtE_annotations) return 0; + cond = PyObject_SetAttrString(state->GtE_type, "_field_types", + GtE_annotations) == 0; + if (!cond) { + Py_DECREF(GtE_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->GtE_type, "__annotations__", + GtE_annotations) == 0; + if (!cond) { + Py_DECREF(GtE_annotations); + return 0; + } + Py_DECREF(GtE_annotations); + PyObject *Is_annotations = PyDict_New(); + if (!Is_annotations) return 0; + cond = PyObject_SetAttrString(state->Is_type, "_field_types", + Is_annotations) == 0; + if (!cond) { + Py_DECREF(Is_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->Is_type, "__annotations__", + Is_annotations) == 0; + if (!cond) { + Py_DECREF(Is_annotations); + return 0; + } + Py_DECREF(Is_annotations); + PyObject *IsNot_annotations = PyDict_New(); + if (!IsNot_annotations) return 0; + cond = PyObject_SetAttrString(state->IsNot_type, "_field_types", + IsNot_annotations) == 0; + if (!cond) { + Py_DECREF(IsNot_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->IsNot_type, "__annotations__", + IsNot_annotations) == 0; + if (!cond) { + Py_DECREF(IsNot_annotations); + return 0; + } + Py_DECREF(IsNot_annotations); + PyObject *In_annotations = PyDict_New(); + if (!In_annotations) return 0; + cond = PyObject_SetAttrString(state->In_type, "_field_types", + In_annotations) == 0; + if (!cond) { + Py_DECREF(In_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->In_type, "__annotations__", + In_annotations) == 0; + if (!cond) { + Py_DECREF(In_annotations); + return 0; + } + Py_DECREF(In_annotations); + PyObject *NotIn_annotations = PyDict_New(); + if (!NotIn_annotations) return 0; + cond = PyObject_SetAttrString(state->NotIn_type, "_field_types", + NotIn_annotations) == 0; + if (!cond) { + Py_DECREF(NotIn_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->NotIn_type, "__annotations__", + NotIn_annotations) == 0; + if (!cond) { + Py_DECREF(NotIn_annotations); + return 0; + } + Py_DECREF(NotIn_annotations); + PyObject *comprehension_annotations = PyDict_New(); + if (!comprehension_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(comprehension_annotations, "target", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(comprehension_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(comprehension_annotations, "iter", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(comprehension_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(comprehension_annotations); + return 0; + } + cond = PyDict_SetItemString(comprehension_annotations, "ifs", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(comprehension_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyLong_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(comprehension_annotations, "is_async", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(comprehension_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->comprehension_type, "_field_types", + comprehension_annotations) == 0; + if (!cond) { + Py_DECREF(comprehension_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->comprehension_type, "__annotations__", + comprehension_annotations) == 0; + if (!cond) { + Py_DECREF(comprehension_annotations); + return 0; + } + Py_DECREF(comprehension_annotations); + PyObject *ExceptHandler_annotations = PyDict_New(); + if (!ExceptHandler_annotations) return 0; + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(ExceptHandler_annotations); + return 0; + } + cond = PyDict_SetItemString(ExceptHandler_annotations, "type", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ExceptHandler_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(ExceptHandler_annotations); + return 0; + } + cond = PyDict_SetItemString(ExceptHandler_annotations, "name", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ExceptHandler_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(ExceptHandler_annotations); + return 0; + } + cond = PyDict_SetItemString(ExceptHandler_annotations, "body", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ExceptHandler_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->ExceptHandler_type, "_field_types", + ExceptHandler_annotations) == 0; + if (!cond) { + Py_DECREF(ExceptHandler_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->ExceptHandler_type, "__annotations__", + ExceptHandler_annotations) == 0; + if (!cond) { + Py_DECREF(ExceptHandler_annotations); + return 0; + } + Py_DECREF(ExceptHandler_annotations); + PyObject *arguments_annotations = PyDict_New(); + if (!arguments_annotations) return 0; + { + PyObject *type = state->arg_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + cond = PyDict_SetItemString(arguments_annotations, "posonlyargs", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + } + { + PyObject *type = state->arg_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + cond = PyDict_SetItemString(arguments_annotations, "args", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + } + { + PyObject *type = state->arg_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + cond = PyDict_SetItemString(arguments_annotations, "vararg", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + } + { + PyObject *type = state->arg_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + cond = PyDict_SetItemString(arguments_annotations, "kwonlyargs", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + cond = PyDict_SetItemString(arguments_annotations, "kw_defaults", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + } + { + PyObject *type = state->arg_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + cond = PyDict_SetItemString(arguments_annotations, "kwarg", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + cond = PyDict_SetItemString(arguments_annotations, "defaults", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->arguments_type, "_field_types", + arguments_annotations) == 0; + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->arguments_type, "__annotations__", + arguments_annotations) == 0; + if (!cond) { + Py_DECREF(arguments_annotations); + return 0; + } + Py_DECREF(arguments_annotations); + PyObject *arg_annotations = PyDict_New(); + if (!arg_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(arg_annotations, "arg", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(arg_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(arg_annotations); + return 0; + } + cond = PyDict_SetItemString(arg_annotations, "annotation", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(arg_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(arg_annotations); + return 0; + } + cond = PyDict_SetItemString(arg_annotations, "type_comment", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(arg_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->arg_type, "_field_types", + arg_annotations) == 0; + if (!cond) { + Py_DECREF(arg_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->arg_type, "__annotations__", + arg_annotations) == 0; + if (!cond) { + Py_DECREF(arg_annotations); + return 0; + } + Py_DECREF(arg_annotations); + PyObject *keyword_annotations = PyDict_New(); + if (!keyword_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(keyword_annotations); + return 0; + } + cond = PyDict_SetItemString(keyword_annotations, "arg", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(keyword_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(keyword_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(keyword_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->keyword_type, "_field_types", + keyword_annotations) == 0; + if (!cond) { + Py_DECREF(keyword_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->keyword_type, "__annotations__", + keyword_annotations) == 0; + if (!cond) { + Py_DECREF(keyword_annotations); + return 0; + } + Py_DECREF(keyword_annotations); + PyObject *alias_annotations = PyDict_New(); + if (!alias_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(alias_annotations, "name", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(alias_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(alias_annotations); + return 0; + } + cond = PyDict_SetItemString(alias_annotations, "asname", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(alias_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->alias_type, "_field_types", + alias_annotations) == 0; + if (!cond) { + Py_DECREF(alias_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->alias_type, "__annotations__", + alias_annotations) == 0; + if (!cond) { + Py_DECREF(alias_annotations); + return 0; + } + Py_DECREF(alias_annotations); + PyObject *withitem_annotations = PyDict_New(); + if (!withitem_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(withitem_annotations, "context_expr", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(withitem_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(withitem_annotations); + return 0; + } + cond = PyDict_SetItemString(withitem_annotations, "optional_vars", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(withitem_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->withitem_type, "_field_types", + withitem_annotations) == 0; + if (!cond) { + Py_DECREF(withitem_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->withitem_type, "__annotations__", + withitem_annotations) == 0; + if (!cond) { + Py_DECREF(withitem_annotations); + return 0; + } + Py_DECREF(withitem_annotations); + PyObject *match_case_annotations = PyDict_New(); + if (!match_case_annotations) return 0; + { + PyObject *type = state->pattern_type; + Py_INCREF(type); + cond = PyDict_SetItemString(match_case_annotations, "pattern", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(match_case_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(match_case_annotations); + return 0; + } + cond = PyDict_SetItemString(match_case_annotations, "guard", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(match_case_annotations); + return 0; + } + } + { + PyObject *type = state->stmt_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(match_case_annotations); + return 0; + } + cond = PyDict_SetItemString(match_case_annotations, "body", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(match_case_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->match_case_type, "_field_types", + match_case_annotations) == 0; + if (!cond) { + Py_DECREF(match_case_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->match_case_type, "__annotations__", + match_case_annotations) == 0; + if (!cond) { + Py_DECREF(match_case_annotations); + return 0; + } + Py_DECREF(match_case_annotations); + PyObject *MatchValue_annotations = PyDict_New(); + if (!MatchValue_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(MatchValue_annotations, "value", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchValue_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->MatchValue_type, "_field_types", + MatchValue_annotations) == 0; + if (!cond) { + Py_DECREF(MatchValue_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->MatchValue_type, "__annotations__", + MatchValue_annotations) == 0; + if (!cond) { + Py_DECREF(MatchValue_annotations); + return 0; + } + Py_DECREF(MatchValue_annotations); + PyObject *MatchSingleton_annotations = PyDict_New(); + if (!MatchSingleton_annotations) return 0; + { + PyObject *type = (PyObject *)&PyBaseObject_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(MatchSingleton_annotations, "value", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchSingleton_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->MatchSingleton_type, "_field_types", + MatchSingleton_annotations) == 0; + if (!cond) { + Py_DECREF(MatchSingleton_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->MatchSingleton_type, + "__annotations__", + MatchSingleton_annotations) == 0; + if (!cond) { + Py_DECREF(MatchSingleton_annotations); + return 0; + } + Py_DECREF(MatchSingleton_annotations); + PyObject *MatchSequence_annotations = PyDict_New(); + if (!MatchSequence_annotations) return 0; + { + PyObject *type = state->pattern_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(MatchSequence_annotations); + return 0; + } + cond = PyDict_SetItemString(MatchSequence_annotations, "patterns", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchSequence_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->MatchSequence_type, "_field_types", + MatchSequence_annotations) == 0; + if (!cond) { + Py_DECREF(MatchSequence_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->MatchSequence_type, "__annotations__", + MatchSequence_annotations) == 0; + if (!cond) { + Py_DECREF(MatchSequence_annotations); + return 0; + } + Py_DECREF(MatchSequence_annotations); + PyObject *MatchMapping_annotations = PyDict_New(); + if (!MatchMapping_annotations) return 0; + { + PyObject *type = state->expr_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(MatchMapping_annotations); + return 0; + } + cond = PyDict_SetItemString(MatchMapping_annotations, "keys", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchMapping_annotations); + return 0; + } + } + { + PyObject *type = state->pattern_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(MatchMapping_annotations); + return 0; + } + cond = PyDict_SetItemString(MatchMapping_annotations, "patterns", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchMapping_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(MatchMapping_annotations); + return 0; + } + cond = PyDict_SetItemString(MatchMapping_annotations, "rest", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchMapping_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->MatchMapping_type, "_field_types", + MatchMapping_annotations) == 0; + if (!cond) { + Py_DECREF(MatchMapping_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->MatchMapping_type, "__annotations__", + MatchMapping_annotations) == 0; + if (!cond) { + Py_DECREF(MatchMapping_annotations); + return 0; + } + Py_DECREF(MatchMapping_annotations); + PyObject *MatchClass_annotations = PyDict_New(); + if (!MatchClass_annotations) return 0; + { + PyObject *type = state->expr_type; + Py_INCREF(type); + cond = PyDict_SetItemString(MatchClass_annotations, "cls", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchClass_annotations); + return 0; + } + } + { + PyObject *type = state->pattern_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(MatchClass_annotations); + return 0; + } + cond = PyDict_SetItemString(MatchClass_annotations, "patterns", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchClass_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(MatchClass_annotations); + return 0; + } + cond = PyDict_SetItemString(MatchClass_annotations, "kwd_attrs", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchClass_annotations); + return 0; + } + } + { + PyObject *type = state->pattern_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(MatchClass_annotations); + return 0; + } + cond = PyDict_SetItemString(MatchClass_annotations, "kwd_patterns", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchClass_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->MatchClass_type, "_field_types", + MatchClass_annotations) == 0; + if (!cond) { + Py_DECREF(MatchClass_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->MatchClass_type, "__annotations__", + MatchClass_annotations) == 0; + if (!cond) { + Py_DECREF(MatchClass_annotations); + return 0; + } + Py_DECREF(MatchClass_annotations); + PyObject *MatchStar_annotations = PyDict_New(); + if (!MatchStar_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(MatchStar_annotations); + return 0; + } + cond = PyDict_SetItemString(MatchStar_annotations, "name", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchStar_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->MatchStar_type, "_field_types", + MatchStar_annotations) == 0; + if (!cond) { + Py_DECREF(MatchStar_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->MatchStar_type, "__annotations__", + MatchStar_annotations) == 0; + if (!cond) { + Py_DECREF(MatchStar_annotations); + return 0; + } + Py_DECREF(MatchStar_annotations); + PyObject *MatchAs_annotations = PyDict_New(); + if (!MatchAs_annotations) return 0; + { + PyObject *type = state->pattern_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(MatchAs_annotations); + return 0; + } + cond = PyDict_SetItemString(MatchAs_annotations, "pattern", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchAs_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(MatchAs_annotations); + return 0; + } + cond = PyDict_SetItemString(MatchAs_annotations, "name", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchAs_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->MatchAs_type, "_field_types", + MatchAs_annotations) == 0; + if (!cond) { + Py_DECREF(MatchAs_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->MatchAs_type, "__annotations__", + MatchAs_annotations) == 0; + if (!cond) { + Py_DECREF(MatchAs_annotations); + return 0; + } + Py_DECREF(MatchAs_annotations); + PyObject *MatchOr_annotations = PyDict_New(); + if (!MatchOr_annotations) return 0; + { + PyObject *type = state->pattern_type; + type = Py_GenericAlias((PyObject *)&PyList_Type, type); + cond = type != NULL; + if (!cond) { + Py_DECREF(MatchOr_annotations); + return 0; + } + cond = PyDict_SetItemString(MatchOr_annotations, "patterns", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(MatchOr_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->MatchOr_type, "_field_types", + MatchOr_annotations) == 0; + if (!cond) { + Py_DECREF(MatchOr_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->MatchOr_type, "__annotations__", + MatchOr_annotations) == 0; + if (!cond) { + Py_DECREF(MatchOr_annotations); + return 0; + } + Py_DECREF(MatchOr_annotations); + PyObject *TypeIgnore_annotations = PyDict_New(); + if (!TypeIgnore_annotations) return 0; + { + PyObject *type = (PyObject *)&PyLong_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(TypeIgnore_annotations, "lineno", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TypeIgnore_annotations); + return 0; + } + } + { + PyObject *type = (PyObject *)&PyUnicode_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(TypeIgnore_annotations, "tag", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TypeIgnore_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->TypeIgnore_type, "_field_types", + TypeIgnore_annotations) == 0; + if (!cond) { + Py_DECREF(TypeIgnore_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->TypeIgnore_type, "__annotations__", + TypeIgnore_annotations) == 0; + if (!cond) { + Py_DECREF(TypeIgnore_annotations); + return 0; + } + Py_DECREF(TypeIgnore_annotations); + PyObject *TypeVar_annotations = PyDict_New(); + if (!TypeVar_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(TypeVar_annotations, "name", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TypeVar_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(TypeVar_annotations); + return 0; + } + cond = PyDict_SetItemString(TypeVar_annotations, "bound", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TypeVar_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(TypeVar_annotations); + return 0; + } + cond = PyDict_SetItemString(TypeVar_annotations, "default_value", type) + == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TypeVar_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->TypeVar_type, "_field_types", + TypeVar_annotations) == 0; + if (!cond) { + Py_DECREF(TypeVar_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->TypeVar_type, "__annotations__", + TypeVar_annotations) == 0; + if (!cond) { + Py_DECREF(TypeVar_annotations); + return 0; + } + Py_DECREF(TypeVar_annotations); + PyObject *ParamSpec_annotations = PyDict_New(); + if (!ParamSpec_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(ParamSpec_annotations, "name", type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ParamSpec_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(ParamSpec_annotations); + return 0; + } + cond = PyDict_SetItemString(ParamSpec_annotations, "default_value", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(ParamSpec_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->ParamSpec_type, "_field_types", + ParamSpec_annotations) == 0; + if (!cond) { + Py_DECREF(ParamSpec_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->ParamSpec_type, "__annotations__", + ParamSpec_annotations) == 0; + if (!cond) { + Py_DECREF(ParamSpec_annotations); + return 0; + } + Py_DECREF(ParamSpec_annotations); + PyObject *TypeVarTuple_annotations = PyDict_New(); + if (!TypeVarTuple_annotations) return 0; + { + PyObject *type = (PyObject *)&PyUnicode_Type; + Py_INCREF(type); + cond = PyDict_SetItemString(TypeVarTuple_annotations, "name", type) == + 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TypeVarTuple_annotations); + return 0; + } + } + { + PyObject *type = state->expr_type; + type = _Py_union_type_or(type, Py_None); + cond = type != NULL; + if (!cond) { + Py_DECREF(TypeVarTuple_annotations); + return 0; + } + cond = PyDict_SetItemString(TypeVarTuple_annotations, "default_value", + type) == 0; + Py_DECREF(type); + if (!cond) { + Py_DECREF(TypeVarTuple_annotations); + return 0; + } + } + cond = PyObject_SetAttrString(state->TypeVarTuple_type, "_field_types", + TypeVarTuple_annotations) == 0; + if (!cond) { + Py_DECREF(TypeVarTuple_annotations); + return 0; + } + cond = PyObject_SetAttrString(state->TypeVarTuple_type, "__annotations__", + TypeVarTuple_annotations) == 0; + if (!cond) { + Py_DECREF(TypeVarTuple_annotations); + return 0; + } + Py_DECREF(TypeVarTuple_annotations); + + return 1; +} + + typedef struct { PyObject_HEAD @@ -862,7 +5077,7 @@ ast_type_init(PyObject *self, PyObject *args, PyObject *kw) Py_ssize_t i, numfields = 0; int res = -1; - PyObject *key, *value, *fields; + PyObject *key, *value, *fields, *attributes = NULL, *remaining_fields = NULL; fields = PyObject_GetAttr((PyObject*)Py_TYPE(self), state->_fields); if (fields == NULL) { @@ -873,6 +5088,10 @@ ast_type_init(PyObject *self, PyObject *args, PyObject *kw) if (numfields == -1) { goto cleanup; } + remaining_fields = PySet_New(fields); + if (remaining_fields == NULL) { + goto cleanup; + } res = 0; /* if no error occurs, this stays 0 to the end */ if (numfields < PyTuple_GET_SIZE(args)) { @@ -891,6 +5110,11 @@ ast_type_init(PyObject *self, PyObject *args, PyObject *kw) goto cleanup; } res = PyObject_SetAttr(self, name, PyTuple_GET_ITEM(args, i)); + if (PySet_Discard(remaining_fields, name) < 0) { + res = -1; + Py_DECREF(name); + goto cleanup; + } Py_DECREF(name); if (res < 0) { goto cleanup; @@ -903,13 +5127,14 @@ ast_type_init(PyObject *self, PyObject *args, PyObject *kw) if (contains == -1) { res = -1; goto cleanup; - } else if (contains == 1) { - Py_ssize_t p = PySequence_Index(fields, key); + } + else if (contains == 1) { + int p = PySet_Discard(remaining_fields, key); if (p == -1) { res = -1; goto cleanup; } - if (p < PyTuple_GET_SIZE(args)) { + if (p == 0) { PyErr_Format(PyExc_TypeError, "%.400s got multiple values for argument '%U'", Py_TYPE(self)->tp_name, key); @@ -917,15 +5142,123 @@ ast_type_init(PyObject *self, PyObject *args, PyObject *kw) goto cleanup; } } + else { + // Lazily initialize "attributes" + if (attributes == NULL) { + attributes = PyObject_GetAttr((PyObject*)Py_TYPE(self), state->_attributes); + if (attributes == NULL) { + res = -1; + goto cleanup; + } + } + int contains = PySequence_Contains(attributes, key); + if (contains == -1) { + res = -1; + goto cleanup; + } + else if (contains == 0) { + if (PyErr_WarnFormat( + PyExc_DeprecationWarning, 1, + "%.400s.__init__ got an unexpected keyword argument '%U'. " + "Support for arbitrary keyword arguments is deprecated " + "and will be removed in Python 3.15.", + Py_TYPE(self)->tp_name, key + ) < 0) { + res = -1; + goto cleanup; + } + } + } res = PyObject_SetAttr(self, key, value); if (res < 0) { goto cleanup; } } } + Py_ssize_t size = PySet_Size(remaining_fields); + PyObject *field_types = NULL, *remaining_list = NULL; + if (size > 0) { + if (PyObject_GetOptionalAttr((PyObject*)Py_TYPE(self), &_Py_ID(_field_types), + &field_types) < 0) { + res = -1; + goto cleanup; + } + if (field_types == NULL) { + // Probably a user-defined subclass of AST that lacks _field_types. + // This will continue to work as it did before 3.13; i.e., attributes + // that are not passed in simply do not exist on the instance. + goto cleanup; + } + remaining_list = PySequence_List(remaining_fields); + if (!remaining_list) { + goto set_remaining_cleanup; + } + for (Py_ssize_t i = 0; i < size; i++) { + PyObject *name = PyList_GET_ITEM(remaining_list, i); + PyObject *type = PyDict_GetItemWithError(field_types, name); + if (!type) { + if (PyErr_Occurred()) { + goto set_remaining_cleanup; + } + else { + if (PyErr_WarnFormat( + PyExc_DeprecationWarning, 1, + "Field %R is missing from %.400s._field_types. " + "This will become an error in Python 3.15.", + name, Py_TYPE(self)->tp_name + ) < 0) { + goto set_remaining_cleanup; + } + } + } + else if (_PyUnion_Check(type)) { + // optional field + // do nothing, we'll have set a None default on the class + } + else if (Py_IS_TYPE(type, &Py_GenericAliasType)) { + // list field + PyObject *empty = PyList_New(0); + if (!empty) { + goto set_remaining_cleanup; + } + res = PyObject_SetAttr(self, name, empty); + Py_DECREF(empty); + if (res < 0) { + goto set_remaining_cleanup; + } + } + else if (type == state->expr_context_type) { + // special case for expr_context: default to Load() + res = PyObject_SetAttr(self, name, state->Load_singleton); + if (res < 0) { + goto set_remaining_cleanup; + } + } + else { + // simple field (e.g., identifier) + if (PyErr_WarnFormat( + PyExc_DeprecationWarning, 1, + "%.400s.__init__ missing 1 required positional argument: %R. " + "This will become an error in Python 3.15.", + Py_TYPE(self)->tp_name, name + ) < 0) { + goto set_remaining_cleanup; + } + } + } + Py_DECREF(remaining_list); + Py_DECREF(field_types); + } cleanup: + Py_XDECREF(attributes); Py_XDECREF(fields); + Py_XDECREF(remaining_fields); return res; + set_remaining_cleanup: + Py_XDECREF(remaining_list); + Py_XDECREF(field_types); + res = -1; + goto cleanup; } /* Pickling support */ @@ -937,18 +5270,76 @@ ast_type_reduce(PyObject *self, PyObject *unused) return NULL; } - PyObject *dict; - if (_PyObject_LookupAttr(self, state->__dict__, &dict) < 0) { + PyObject *dict = NULL, *fields = NULL, *positional_args = NULL; + if (PyObject_GetOptionalAttr(self, state->__dict__, &dict) < 0) { return NULL; } + PyObject *result = NULL; if (dict) { - return Py_BuildValue("O()N", Py_TYPE(self), dict); + // Unpickling (or copying) works as follows: + // - Construct the object with only positional arguments + // - Set the fields from the dict + // We have two constraints: + // - We must set all the required fields in the initial constructor call, + // or the unpickling or deepcopying of the object will trigger DeprecationWarnings. + // - We must not include child nodes in the positional args, because + // that may trigger runaway recursion during copying (gh-120108). + // To satisfy both constraints, we set all the fields to None in the + // initial list of positional args, and then set the fields from the dict. + if (PyObject_GetOptionalAttr((PyObject*)Py_TYPE(self), state->_fields, &fields) < 0) { + goto cleanup; + } + if (fields) { + Py_ssize_t numfields = PySequence_Size(fields); + if (numfields == -1) { + Py_DECREF(dict); + goto cleanup; + } + positional_args = PyList_New(0); + if (!positional_args) { + goto cleanup; + } + for (Py_ssize_t i = 0; i < numfields; i++) { + PyObject *name = PySequence_GetItem(fields, i); + if (!name) { + goto cleanup; + } + PyObject *value; + int rc = PyDict_GetItemRef(dict, name, &value); + Py_DECREF(name); + if (rc < 0) { + goto cleanup; + } + if (!value) { + break; + } + rc = PyList_Append(positional_args, Py_None); + Py_DECREF(value); + if (rc < 0) { + goto cleanup; + } + } + PyObject *args_tuple = PyList_AsTuple(positional_args); + if (!args_tuple) { + goto cleanup; + } + result = Py_BuildValue("ONN", Py_TYPE(self), args_tuple, dict); + } + else { + result = Py_BuildValue("O()N", Py_TYPE(self), dict); + } } - return Py_BuildValue("O()", Py_TYPE(self)); + else { + result = Py_BuildValue("O()", Py_TYPE(self)); + } +cleanup: + Py_XDECREF(fields); + Py_XDECREF(positional_args); + return result; } static PyMemberDef ast_type_members[] = { - {"__dictoffset__", T_PYSSIZET, offsetof(AST_object, dict), READONLY}, + {"__dictoffset__", Py_T_PYSSIZET, offsetof(AST_object, dict), Py_READONLY}, {NULL} /* Sentinel */ }; @@ -1019,16 +5410,16 @@ add_attributes(struct ast_state *state, PyObject *type, const char * const *attr int i, result; PyObject *s, *l = PyTuple_New(num_fields); if (!l) - return 0; + return -1; for (i = 0; i < num_fields; i++) { s = PyUnicode_InternFromString(attrs[i]); if (!s) { Py_DECREF(l); - return 0; + return -1; } PyTuple_SET_ITEM(l, i, s); } - result = PyObject_SetAttr(type, state->_attributes, l) >= 0; + result = PyObject_SetAttr(type, state->_attributes, l); Py_DECREF(l); return result; } @@ -1104,7 +5495,7 @@ static int obj2ast_identifier(struct ast_state *state, PyObject* obj, PyObject** { if (!PyUnicode_CheckExact(obj) && obj != Py_None) { PyErr_SetString(PyExc_TypeError, "AST identifier must be of type str"); - return 1; + return -1; } return obj2ast_object(state, obj, out, arena); } @@ -1113,7 +5504,7 @@ static int obj2ast_string(struct ast_state *state, PyObject* obj, PyObject** out { if (!PyUnicode_CheckExact(obj) && !PyBytes_CheckExact(obj)) { PyErr_SetString(PyExc_TypeError, "AST string must be of type str"); - return 1; + return -1; } return obj2ast_object(state, obj, out, arena); } @@ -1123,12 +5514,12 @@ static int obj2ast_int(struct ast_state* Py_UNUSED(state), PyObject* obj, int* o int i; if (!PyLong_Check(obj)) { PyErr_Format(PyExc_ValueError, "invalid integer value: %R", obj); - return 1; + return -1; } - i = _PyLong_AsInt(obj); + i = PyLong_AsInt(obj); if (i == -1 && PyErr_Occurred()) - return 1; + return -1; *out = i; return 0; } @@ -1153,47 +5544,40 @@ static int add_ast_fields(struct ast_state *state) static int init_types(struct ast_state *state) { - // init_types() must not be called after _PyAST_Fini() - // has been called - assert(state->initialized >= 0); - - if (state->initialized) { - return 1; - } if (init_identifiers(state) < 0) { - return 0; + return -1; } state->AST_type = PyType_FromSpec(&AST_type_spec); if (!state->AST_type) { - return 0; + return -1; } if (add_ast_fields(state) < 0) { - return 0; + return -1; } state->mod_type = make_type(state, "mod", state->AST_type, NULL, 0, "mod = Module(stmt* body, type_ignore* type_ignores)\n" " | Interactive(stmt* body)\n" " | Expression(expr body)\n" " | FunctionType(expr* argtypes, expr returns)"); - if (!state->mod_type) return 0; - if (!add_attributes(state, state->mod_type, NULL, 0)) return 0; + if (!state->mod_type) return -1; + if (add_attributes(state, state->mod_type, NULL, 0) < 0) return -1; state->Module_type = make_type(state, "Module", state->mod_type, Module_fields, 2, "Module(stmt* body, type_ignore* type_ignores)"); - if (!state->Module_type) return 0; + if (!state->Module_type) return -1; state->Interactive_type = make_type(state, "Interactive", state->mod_type, Interactive_fields, 1, "Interactive(stmt* body)"); - if (!state->Interactive_type) return 0; + if (!state->Interactive_type) return -1; state->Expression_type = make_type(state, "Expression", state->mod_type, Expression_fields, 1, "Expression(expr body)"); - if (!state->Expression_type) return 0; + if (!state->Expression_type) return -1; state->FunctionType_type = make_type(state, "FunctionType", state->mod_type, FunctionType_fields, 2, "FunctionType(expr* argtypes, expr returns)"); - if (!state->FunctionType_type) return 0; + if (!state->FunctionType_type) return -1; state->stmt_type = make_type(state, "stmt", state->AST_type, NULL, 0, "stmt = FunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list, expr? returns, string? type_comment, type_param* type_params)\n" " | AsyncFunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list, expr? returns, string? type_comment, type_param* type_params)\n" @@ -1223,160 +5607,161 @@ init_types(struct ast_state *state) " | Pass\n" " | Break\n" " | Continue"); - if (!state->stmt_type) return 0; - if (!add_attributes(state, state->stmt_type, stmt_attributes, 4)) return 0; + if (!state->stmt_type) return -1; + if (add_attributes(state, state->stmt_type, stmt_attributes, 4) < 0) return + -1; if (PyObject_SetAttr(state->stmt_type, state->end_lineno, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->stmt_type, state->end_col_offset, Py_None) == -1) - return 0; + return -1; state->FunctionDef_type = make_type(state, "FunctionDef", state->stmt_type, FunctionDef_fields, 7, "FunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list, expr? returns, string? type_comment, type_param* type_params)"); - if (!state->FunctionDef_type) return 0; + if (!state->FunctionDef_type) return -1; if (PyObject_SetAttr(state->FunctionDef_type, state->returns, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->FunctionDef_type, state->type_comment, Py_None) == -1) - return 0; + return -1; state->AsyncFunctionDef_type = make_type(state, "AsyncFunctionDef", state->stmt_type, AsyncFunctionDef_fields, 7, "AsyncFunctionDef(identifier name, arguments args, stmt* body, expr* decorator_list, expr? returns, string? type_comment, type_param* type_params)"); - if (!state->AsyncFunctionDef_type) return 0; + if (!state->AsyncFunctionDef_type) return -1; if (PyObject_SetAttr(state->AsyncFunctionDef_type, state->returns, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->AsyncFunctionDef_type, state->type_comment, Py_None) == -1) - return 0; + return -1; state->ClassDef_type = make_type(state, "ClassDef", state->stmt_type, ClassDef_fields, 6, "ClassDef(identifier name, expr* bases, keyword* keywords, stmt* body, expr* decorator_list, type_param* type_params)"); - if (!state->ClassDef_type) return 0; + if (!state->ClassDef_type) return -1; state->Return_type = make_type(state, "Return", state->stmt_type, Return_fields, 1, "Return(expr? value)"); - if (!state->Return_type) return 0; + if (!state->Return_type) return -1; if (PyObject_SetAttr(state->Return_type, state->value, Py_None) == -1) - return 0; + return -1; state->Delete_type = make_type(state, "Delete", state->stmt_type, Delete_fields, 1, "Delete(expr* targets)"); - if (!state->Delete_type) return 0; + if (!state->Delete_type) return -1; state->Assign_type = make_type(state, "Assign", state->stmt_type, Assign_fields, 3, "Assign(expr* targets, expr value, string? type_comment)"); - if (!state->Assign_type) return 0; + if (!state->Assign_type) return -1; if (PyObject_SetAttr(state->Assign_type, state->type_comment, Py_None) == -1) - return 0; + return -1; state->TypeAlias_type = make_type(state, "TypeAlias", state->stmt_type, TypeAlias_fields, 3, "TypeAlias(expr name, type_param* type_params, expr value)"); - if (!state->TypeAlias_type) return 0; + if (!state->TypeAlias_type) return -1; state->AugAssign_type = make_type(state, "AugAssign", state->stmt_type, AugAssign_fields, 3, "AugAssign(expr target, operator op, expr value)"); - if (!state->AugAssign_type) return 0; + if (!state->AugAssign_type) return -1; state->AnnAssign_type = make_type(state, "AnnAssign", state->stmt_type, AnnAssign_fields, 4, "AnnAssign(expr target, expr annotation, expr? value, int simple)"); - if (!state->AnnAssign_type) return 0; + if (!state->AnnAssign_type) return -1; if (PyObject_SetAttr(state->AnnAssign_type, state->value, Py_None) == -1) - return 0; + return -1; state->For_type = make_type(state, "For", state->stmt_type, For_fields, 5, "For(expr target, expr iter, stmt* body, stmt* orelse, string? type_comment)"); - if (!state->For_type) return 0; + if (!state->For_type) return -1; if (PyObject_SetAttr(state->For_type, state->type_comment, Py_None) == -1) - return 0; + return -1; state->AsyncFor_type = make_type(state, "AsyncFor", state->stmt_type, AsyncFor_fields, 5, "AsyncFor(expr target, expr iter, stmt* body, stmt* orelse, string? type_comment)"); - if (!state->AsyncFor_type) return 0; + if (!state->AsyncFor_type) return -1; if (PyObject_SetAttr(state->AsyncFor_type, state->type_comment, Py_None) == -1) - return 0; + return -1; state->While_type = make_type(state, "While", state->stmt_type, While_fields, 3, "While(expr test, stmt* body, stmt* orelse)"); - if (!state->While_type) return 0; + if (!state->While_type) return -1; state->If_type = make_type(state, "If", state->stmt_type, If_fields, 3, "If(expr test, stmt* body, stmt* orelse)"); - if (!state->If_type) return 0; + if (!state->If_type) return -1; state->With_type = make_type(state, "With", state->stmt_type, With_fields, 3, "With(withitem* items, stmt* body, string? type_comment)"); - if (!state->With_type) return 0; + if (!state->With_type) return -1; if (PyObject_SetAttr(state->With_type, state->type_comment, Py_None) == -1) - return 0; + return -1; state->AsyncWith_type = make_type(state, "AsyncWith", state->stmt_type, AsyncWith_fields, 3, "AsyncWith(withitem* items, stmt* body, string? type_comment)"); - if (!state->AsyncWith_type) return 0; + if (!state->AsyncWith_type) return -1; if (PyObject_SetAttr(state->AsyncWith_type, state->type_comment, Py_None) == -1) - return 0; + return -1; state->Match_type = make_type(state, "Match", state->stmt_type, Match_fields, 2, "Match(expr subject, match_case* cases)"); - if (!state->Match_type) return 0; + if (!state->Match_type) return -1; state->Raise_type = make_type(state, "Raise", state->stmt_type, Raise_fields, 2, "Raise(expr? exc, expr? cause)"); - if (!state->Raise_type) return 0; + if (!state->Raise_type) return -1; if (PyObject_SetAttr(state->Raise_type, state->exc, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->Raise_type, state->cause, Py_None) == -1) - return 0; + return -1; state->Try_type = make_type(state, "Try", state->stmt_type, Try_fields, 4, "Try(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)"); - if (!state->Try_type) return 0; + if (!state->Try_type) return -1; state->TryStar_type = make_type(state, "TryStar", state->stmt_type, TryStar_fields, 4, "TryStar(stmt* body, excepthandler* handlers, stmt* orelse, stmt* finalbody)"); - if (!state->TryStar_type) return 0; + if (!state->TryStar_type) return -1; state->Assert_type = make_type(state, "Assert", state->stmt_type, Assert_fields, 2, "Assert(expr test, expr? msg)"); - if (!state->Assert_type) return 0; + if (!state->Assert_type) return -1; if (PyObject_SetAttr(state->Assert_type, state->msg, Py_None) == -1) - return 0; + return -1; state->Import_type = make_type(state, "Import", state->stmt_type, Import_fields, 1, "Import(alias* names)"); - if (!state->Import_type) return 0; + if (!state->Import_type) return -1; state->ImportFrom_type = make_type(state, "ImportFrom", state->stmt_type, ImportFrom_fields, 3, "ImportFrom(identifier? module, alias* names, int? level)"); - if (!state->ImportFrom_type) return 0; + if (!state->ImportFrom_type) return -1; if (PyObject_SetAttr(state->ImportFrom_type, state->module, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->ImportFrom_type, state->level, Py_None) == -1) - return 0; + return -1; state->Global_type = make_type(state, "Global", state->stmt_type, Global_fields, 1, "Global(identifier* names)"); - if (!state->Global_type) return 0; + if (!state->Global_type) return -1; state->Nonlocal_type = make_type(state, "Nonlocal", state->stmt_type, Nonlocal_fields, 1, "Nonlocal(identifier* names)"); - if (!state->Nonlocal_type) return 0; + if (!state->Nonlocal_type) return -1; state->Expr_type = make_type(state, "Expr", state->stmt_type, Expr_fields, 1, "Expr(expr value)"); - if (!state->Expr_type) return 0; + if (!state->Expr_type) return -1; state->Pass_type = make_type(state, "Pass", state->stmt_type, NULL, 0, "Pass"); - if (!state->Pass_type) return 0; + if (!state->Pass_type) return -1; state->Break_type = make_type(state, "Break", state->stmt_type, NULL, 0, "Break"); - if (!state->Break_type) return 0; + if (!state->Break_type) return -1; state->Continue_type = make_type(state, "Continue", state->stmt_type, NULL, 0, "Continue"); - if (!state->Continue_type) return 0; + if (!state->Continue_type) return -1; state->expr_type = make_type(state, "expr", state->AST_type, NULL, 0, "expr = BoolOp(boolop op, expr* values)\n" " | NamedExpr(expr target, expr value)\n" @@ -1405,454 +5790,457 @@ init_types(struct ast_state *state) " | List(expr* elts, expr_context ctx)\n" " | Tuple(expr* elts, expr_context ctx)\n" " | Slice(expr? lower, expr? upper, expr? step)"); - if (!state->expr_type) return 0; - if (!add_attributes(state, state->expr_type, expr_attributes, 4)) return 0; + if (!state->expr_type) return -1; + if (add_attributes(state, state->expr_type, expr_attributes, 4) < 0) return + -1; if (PyObject_SetAttr(state->expr_type, state->end_lineno, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->expr_type, state->end_col_offset, Py_None) == -1) - return 0; + return -1; state->BoolOp_type = make_type(state, "BoolOp", state->expr_type, BoolOp_fields, 2, "BoolOp(boolop op, expr* values)"); - if (!state->BoolOp_type) return 0; + if (!state->BoolOp_type) return -1; state->NamedExpr_type = make_type(state, "NamedExpr", state->expr_type, NamedExpr_fields, 2, "NamedExpr(expr target, expr value)"); - if (!state->NamedExpr_type) return 0; + if (!state->NamedExpr_type) return -1; state->BinOp_type = make_type(state, "BinOp", state->expr_type, BinOp_fields, 3, "BinOp(expr left, operator op, expr right)"); - if (!state->BinOp_type) return 0; + if (!state->BinOp_type) return -1; state->UnaryOp_type = make_type(state, "UnaryOp", state->expr_type, UnaryOp_fields, 2, "UnaryOp(unaryop op, expr operand)"); - if (!state->UnaryOp_type) return 0; + if (!state->UnaryOp_type) return -1; state->Lambda_type = make_type(state, "Lambda", state->expr_type, Lambda_fields, 2, "Lambda(arguments args, expr body)"); - if (!state->Lambda_type) return 0; + if (!state->Lambda_type) return -1; state->IfExp_type = make_type(state, "IfExp", state->expr_type, IfExp_fields, 3, "IfExp(expr test, expr body, expr orelse)"); - if (!state->IfExp_type) return 0; + if (!state->IfExp_type) return -1; state->Dict_type = make_type(state, "Dict", state->expr_type, Dict_fields, 2, "Dict(expr* keys, expr* values)"); - if (!state->Dict_type) return 0; + if (!state->Dict_type) return -1; state->Set_type = make_type(state, "Set", state->expr_type, Set_fields, 1, "Set(expr* elts)"); - if (!state->Set_type) return 0; + if (!state->Set_type) return -1; state->ListComp_type = make_type(state, "ListComp", state->expr_type, ListComp_fields, 2, "ListComp(expr elt, comprehension* generators)"); - if (!state->ListComp_type) return 0; + if (!state->ListComp_type) return -1; state->SetComp_type = make_type(state, "SetComp", state->expr_type, SetComp_fields, 2, "SetComp(expr elt, comprehension* generators)"); - if (!state->SetComp_type) return 0; + if (!state->SetComp_type) return -1; state->DictComp_type = make_type(state, "DictComp", state->expr_type, DictComp_fields, 3, "DictComp(expr key, expr value, comprehension* generators)"); - if (!state->DictComp_type) return 0; + if (!state->DictComp_type) return -1; state->GeneratorExp_type = make_type(state, "GeneratorExp", state->expr_type, GeneratorExp_fields, 2, "GeneratorExp(expr elt, comprehension* generators)"); - if (!state->GeneratorExp_type) return 0; + if (!state->GeneratorExp_type) return -1; state->Await_type = make_type(state, "Await", state->expr_type, Await_fields, 1, "Await(expr value)"); - if (!state->Await_type) return 0; + if (!state->Await_type) return -1; state->Yield_type = make_type(state, "Yield", state->expr_type, Yield_fields, 1, "Yield(expr? value)"); - if (!state->Yield_type) return 0; + if (!state->Yield_type) return -1; if (PyObject_SetAttr(state->Yield_type, state->value, Py_None) == -1) - return 0; + return -1; state->YieldFrom_type = make_type(state, "YieldFrom", state->expr_type, YieldFrom_fields, 1, "YieldFrom(expr value)"); - if (!state->YieldFrom_type) return 0; + if (!state->YieldFrom_type) return -1; state->Compare_type = make_type(state, "Compare", state->expr_type, Compare_fields, 3, "Compare(expr left, cmpop* ops, expr* comparators)"); - if (!state->Compare_type) return 0; + if (!state->Compare_type) return -1; state->Call_type = make_type(state, "Call", state->expr_type, Call_fields, 3, "Call(expr func, expr* args, keyword* keywords)"); - if (!state->Call_type) return 0; + if (!state->Call_type) return -1; state->FormattedValue_type = make_type(state, "FormattedValue", state->expr_type, FormattedValue_fields, 3, "FormattedValue(expr value, int conversion, expr? format_spec)"); - if (!state->FormattedValue_type) return 0; + if (!state->FormattedValue_type) return -1; if (PyObject_SetAttr(state->FormattedValue_type, state->format_spec, Py_None) == -1) - return 0; + return -1; state->JoinedStr_type = make_type(state, "JoinedStr", state->expr_type, JoinedStr_fields, 1, "JoinedStr(expr* values)"); - if (!state->JoinedStr_type) return 0; + if (!state->JoinedStr_type) return -1; state->Constant_type = make_type(state, "Constant", state->expr_type, Constant_fields, 2, "Constant(constant value, string? kind)"); - if (!state->Constant_type) return 0; + if (!state->Constant_type) return -1; if (PyObject_SetAttr(state->Constant_type, state->kind, Py_None) == -1) - return 0; + return -1; state->Attribute_type = make_type(state, "Attribute", state->expr_type, Attribute_fields, 3, "Attribute(expr value, identifier attr, expr_context ctx)"); - if (!state->Attribute_type) return 0; + if (!state->Attribute_type) return -1; state->Subscript_type = make_type(state, "Subscript", state->expr_type, Subscript_fields, 3, "Subscript(expr value, expr slice, expr_context ctx)"); - if (!state->Subscript_type) return 0; + if (!state->Subscript_type) return -1; state->Starred_type = make_type(state, "Starred", state->expr_type, Starred_fields, 2, "Starred(expr value, expr_context ctx)"); - if (!state->Starred_type) return 0; + if (!state->Starred_type) return -1; state->Name_type = make_type(state, "Name", state->expr_type, Name_fields, 2, "Name(identifier id, expr_context ctx)"); - if (!state->Name_type) return 0; + if (!state->Name_type) return -1; state->List_type = make_type(state, "List", state->expr_type, List_fields, 2, "List(expr* elts, expr_context ctx)"); - if (!state->List_type) return 0; + if (!state->List_type) return -1; state->Tuple_type = make_type(state, "Tuple", state->expr_type, Tuple_fields, 2, "Tuple(expr* elts, expr_context ctx)"); - if (!state->Tuple_type) return 0; + if (!state->Tuple_type) return -1; state->Slice_type = make_type(state, "Slice", state->expr_type, Slice_fields, 3, "Slice(expr? lower, expr? upper, expr? step)"); - if (!state->Slice_type) return 0; + if (!state->Slice_type) return -1; if (PyObject_SetAttr(state->Slice_type, state->lower, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->Slice_type, state->upper, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->Slice_type, state->step, Py_None) == -1) - return 0; + return -1; state->expr_context_type = make_type(state, "expr_context", state->AST_type, NULL, 0, "expr_context = Load | Store | Del"); - if (!state->expr_context_type) return 0; - if (!add_attributes(state, state->expr_context_type, NULL, 0)) return 0; + if (!state->expr_context_type) return -1; + if (add_attributes(state, state->expr_context_type, NULL, 0) < 0) return -1; state->Load_type = make_type(state, "Load", state->expr_context_type, NULL, 0, "Load"); - if (!state->Load_type) return 0; + if (!state->Load_type) return -1; state->Load_singleton = PyType_GenericNew((PyTypeObject *)state->Load_type, NULL, NULL); - if (!state->Load_singleton) return 0; + if (!state->Load_singleton) return -1; state->Store_type = make_type(state, "Store", state->expr_context_type, NULL, 0, "Store"); - if (!state->Store_type) return 0; + if (!state->Store_type) return -1; state->Store_singleton = PyType_GenericNew((PyTypeObject *)state->Store_type, NULL, NULL); - if (!state->Store_singleton) return 0; + if (!state->Store_singleton) return -1; state->Del_type = make_type(state, "Del", state->expr_context_type, NULL, 0, "Del"); - if (!state->Del_type) return 0; + if (!state->Del_type) return -1; state->Del_singleton = PyType_GenericNew((PyTypeObject *)state->Del_type, NULL, NULL); - if (!state->Del_singleton) return 0; + if (!state->Del_singleton) return -1; state->boolop_type = make_type(state, "boolop", state->AST_type, NULL, 0, "boolop = And | Or"); - if (!state->boolop_type) return 0; - if (!add_attributes(state, state->boolop_type, NULL, 0)) return 0; + if (!state->boolop_type) return -1; + if (add_attributes(state, state->boolop_type, NULL, 0) < 0) return -1; state->And_type = make_type(state, "And", state->boolop_type, NULL, 0, "And"); - if (!state->And_type) return 0; + if (!state->And_type) return -1; state->And_singleton = PyType_GenericNew((PyTypeObject *)state->And_type, NULL, NULL); - if (!state->And_singleton) return 0; + if (!state->And_singleton) return -1; state->Or_type = make_type(state, "Or", state->boolop_type, NULL, 0, "Or"); - if (!state->Or_type) return 0; + if (!state->Or_type) return -1; state->Or_singleton = PyType_GenericNew((PyTypeObject *)state->Or_type, NULL, NULL); - if (!state->Or_singleton) return 0; + if (!state->Or_singleton) return -1; state->operator_type = make_type(state, "operator", state->AST_type, NULL, 0, "operator = Add | Sub | Mult | MatMult | Div | Mod | Pow | LShift | RShift | BitOr | BitXor | BitAnd | FloorDiv"); - if (!state->operator_type) return 0; - if (!add_attributes(state, state->operator_type, NULL, 0)) return 0; + if (!state->operator_type) return -1; + if (add_attributes(state, state->operator_type, NULL, 0) < 0) return -1; state->Add_type = make_type(state, "Add", state->operator_type, NULL, 0, "Add"); - if (!state->Add_type) return 0; + if (!state->Add_type) return -1; state->Add_singleton = PyType_GenericNew((PyTypeObject *)state->Add_type, NULL, NULL); - if (!state->Add_singleton) return 0; + if (!state->Add_singleton) return -1; state->Sub_type = make_type(state, "Sub", state->operator_type, NULL, 0, "Sub"); - if (!state->Sub_type) return 0; + if (!state->Sub_type) return -1; state->Sub_singleton = PyType_GenericNew((PyTypeObject *)state->Sub_type, NULL, NULL); - if (!state->Sub_singleton) return 0; + if (!state->Sub_singleton) return -1; state->Mult_type = make_type(state, "Mult", state->operator_type, NULL, 0, "Mult"); - if (!state->Mult_type) return 0; + if (!state->Mult_type) return -1; state->Mult_singleton = PyType_GenericNew((PyTypeObject *)state->Mult_type, NULL, NULL); - if (!state->Mult_singleton) return 0; + if (!state->Mult_singleton) return -1; state->MatMult_type = make_type(state, "MatMult", state->operator_type, NULL, 0, "MatMult"); - if (!state->MatMult_type) return 0; + if (!state->MatMult_type) return -1; state->MatMult_singleton = PyType_GenericNew((PyTypeObject *)state->MatMult_type, NULL, NULL); - if (!state->MatMult_singleton) return 0; + if (!state->MatMult_singleton) return -1; state->Div_type = make_type(state, "Div", state->operator_type, NULL, 0, "Div"); - if (!state->Div_type) return 0; + if (!state->Div_type) return -1; state->Div_singleton = PyType_GenericNew((PyTypeObject *)state->Div_type, NULL, NULL); - if (!state->Div_singleton) return 0; + if (!state->Div_singleton) return -1; state->Mod_type = make_type(state, "Mod", state->operator_type, NULL, 0, "Mod"); - if (!state->Mod_type) return 0; + if (!state->Mod_type) return -1; state->Mod_singleton = PyType_GenericNew((PyTypeObject *)state->Mod_type, NULL, NULL); - if (!state->Mod_singleton) return 0; + if (!state->Mod_singleton) return -1; state->Pow_type = make_type(state, "Pow", state->operator_type, NULL, 0, "Pow"); - if (!state->Pow_type) return 0; + if (!state->Pow_type) return -1; state->Pow_singleton = PyType_GenericNew((PyTypeObject *)state->Pow_type, NULL, NULL); - if (!state->Pow_singleton) return 0; + if (!state->Pow_singleton) return -1; state->LShift_type = make_type(state, "LShift", state->operator_type, NULL, 0, "LShift"); - if (!state->LShift_type) return 0; + if (!state->LShift_type) return -1; state->LShift_singleton = PyType_GenericNew((PyTypeObject *)state->LShift_type, NULL, NULL); - if (!state->LShift_singleton) return 0; + if (!state->LShift_singleton) return -1; state->RShift_type = make_type(state, "RShift", state->operator_type, NULL, 0, "RShift"); - if (!state->RShift_type) return 0; + if (!state->RShift_type) return -1; state->RShift_singleton = PyType_GenericNew((PyTypeObject *)state->RShift_type, NULL, NULL); - if (!state->RShift_singleton) return 0; + if (!state->RShift_singleton) return -1; state->BitOr_type = make_type(state, "BitOr", state->operator_type, NULL, 0, "BitOr"); - if (!state->BitOr_type) return 0; + if (!state->BitOr_type) return -1; state->BitOr_singleton = PyType_GenericNew((PyTypeObject *)state->BitOr_type, NULL, NULL); - if (!state->BitOr_singleton) return 0; + if (!state->BitOr_singleton) return -1; state->BitXor_type = make_type(state, "BitXor", state->operator_type, NULL, 0, "BitXor"); - if (!state->BitXor_type) return 0; + if (!state->BitXor_type) return -1; state->BitXor_singleton = PyType_GenericNew((PyTypeObject *)state->BitXor_type, NULL, NULL); - if (!state->BitXor_singleton) return 0; + if (!state->BitXor_singleton) return -1; state->BitAnd_type = make_type(state, "BitAnd", state->operator_type, NULL, 0, "BitAnd"); - if (!state->BitAnd_type) return 0; + if (!state->BitAnd_type) return -1; state->BitAnd_singleton = PyType_GenericNew((PyTypeObject *)state->BitAnd_type, NULL, NULL); - if (!state->BitAnd_singleton) return 0; + if (!state->BitAnd_singleton) return -1; state->FloorDiv_type = make_type(state, "FloorDiv", state->operator_type, NULL, 0, "FloorDiv"); - if (!state->FloorDiv_type) return 0; + if (!state->FloorDiv_type) return -1; state->FloorDiv_singleton = PyType_GenericNew((PyTypeObject *)state->FloorDiv_type, NULL, NULL); - if (!state->FloorDiv_singleton) return 0; + if (!state->FloorDiv_singleton) return -1; state->unaryop_type = make_type(state, "unaryop", state->AST_type, NULL, 0, "unaryop = Invert | Not | UAdd | USub"); - if (!state->unaryop_type) return 0; - if (!add_attributes(state, state->unaryop_type, NULL, 0)) return 0; + if (!state->unaryop_type) return -1; + if (add_attributes(state, state->unaryop_type, NULL, 0) < 0) return -1; state->Invert_type = make_type(state, "Invert", state->unaryop_type, NULL, 0, "Invert"); - if (!state->Invert_type) return 0; + if (!state->Invert_type) return -1; state->Invert_singleton = PyType_GenericNew((PyTypeObject *)state->Invert_type, NULL, NULL); - if (!state->Invert_singleton) return 0; + if (!state->Invert_singleton) return -1; state->Not_type = make_type(state, "Not", state->unaryop_type, NULL, 0, "Not"); - if (!state->Not_type) return 0; + if (!state->Not_type) return -1; state->Not_singleton = PyType_GenericNew((PyTypeObject *)state->Not_type, NULL, NULL); - if (!state->Not_singleton) return 0; + if (!state->Not_singleton) return -1; state->UAdd_type = make_type(state, "UAdd", state->unaryop_type, NULL, 0, "UAdd"); - if (!state->UAdd_type) return 0; + if (!state->UAdd_type) return -1; state->UAdd_singleton = PyType_GenericNew((PyTypeObject *)state->UAdd_type, NULL, NULL); - if (!state->UAdd_singleton) return 0; + if (!state->UAdd_singleton) return -1; state->USub_type = make_type(state, "USub", state->unaryop_type, NULL, 0, "USub"); - if (!state->USub_type) return 0; + if (!state->USub_type) return -1; state->USub_singleton = PyType_GenericNew((PyTypeObject *)state->USub_type, NULL, NULL); - if (!state->USub_singleton) return 0; + if (!state->USub_singleton) return -1; state->cmpop_type = make_type(state, "cmpop", state->AST_type, NULL, 0, "cmpop = Eq | NotEq | Lt | LtE | Gt | GtE | Is | IsNot | In | NotIn"); - if (!state->cmpop_type) return 0; - if (!add_attributes(state, state->cmpop_type, NULL, 0)) return 0; + if (!state->cmpop_type) return -1; + if (add_attributes(state, state->cmpop_type, NULL, 0) < 0) return -1; state->Eq_type = make_type(state, "Eq", state->cmpop_type, NULL, 0, "Eq"); - if (!state->Eq_type) return 0; + if (!state->Eq_type) return -1; state->Eq_singleton = PyType_GenericNew((PyTypeObject *)state->Eq_type, NULL, NULL); - if (!state->Eq_singleton) return 0; + if (!state->Eq_singleton) return -1; state->NotEq_type = make_type(state, "NotEq", state->cmpop_type, NULL, 0, "NotEq"); - if (!state->NotEq_type) return 0; + if (!state->NotEq_type) return -1; state->NotEq_singleton = PyType_GenericNew((PyTypeObject *)state->NotEq_type, NULL, NULL); - if (!state->NotEq_singleton) return 0; + if (!state->NotEq_singleton) return -1; state->Lt_type = make_type(state, "Lt", state->cmpop_type, NULL, 0, "Lt"); - if (!state->Lt_type) return 0; + if (!state->Lt_type) return -1; state->Lt_singleton = PyType_GenericNew((PyTypeObject *)state->Lt_type, NULL, NULL); - if (!state->Lt_singleton) return 0; + if (!state->Lt_singleton) return -1; state->LtE_type = make_type(state, "LtE", state->cmpop_type, NULL, 0, "LtE"); - if (!state->LtE_type) return 0; + if (!state->LtE_type) return -1; state->LtE_singleton = PyType_GenericNew((PyTypeObject *)state->LtE_type, NULL, NULL); - if (!state->LtE_singleton) return 0; + if (!state->LtE_singleton) return -1; state->Gt_type = make_type(state, "Gt", state->cmpop_type, NULL, 0, "Gt"); - if (!state->Gt_type) return 0; + if (!state->Gt_type) return -1; state->Gt_singleton = PyType_GenericNew((PyTypeObject *)state->Gt_type, NULL, NULL); - if (!state->Gt_singleton) return 0; + if (!state->Gt_singleton) return -1; state->GtE_type = make_type(state, "GtE", state->cmpop_type, NULL, 0, "GtE"); - if (!state->GtE_type) return 0; + if (!state->GtE_type) return -1; state->GtE_singleton = PyType_GenericNew((PyTypeObject *)state->GtE_type, NULL, NULL); - if (!state->GtE_singleton) return 0; + if (!state->GtE_singleton) return -1; state->Is_type = make_type(state, "Is", state->cmpop_type, NULL, 0, "Is"); - if (!state->Is_type) return 0; + if (!state->Is_type) return -1; state->Is_singleton = PyType_GenericNew((PyTypeObject *)state->Is_type, NULL, NULL); - if (!state->Is_singleton) return 0; + if (!state->Is_singleton) return -1; state->IsNot_type = make_type(state, "IsNot", state->cmpop_type, NULL, 0, "IsNot"); - if (!state->IsNot_type) return 0; + if (!state->IsNot_type) return -1; state->IsNot_singleton = PyType_GenericNew((PyTypeObject *)state->IsNot_type, NULL, NULL); - if (!state->IsNot_singleton) return 0; + if (!state->IsNot_singleton) return -1; state->In_type = make_type(state, "In", state->cmpop_type, NULL, 0, "In"); - if (!state->In_type) return 0; + if (!state->In_type) return -1; state->In_singleton = PyType_GenericNew((PyTypeObject *)state->In_type, NULL, NULL); - if (!state->In_singleton) return 0; + if (!state->In_singleton) return -1; state->NotIn_type = make_type(state, "NotIn", state->cmpop_type, NULL, 0, "NotIn"); - if (!state->NotIn_type) return 0; + if (!state->NotIn_type) return -1; state->NotIn_singleton = PyType_GenericNew((PyTypeObject *)state->NotIn_type, NULL, NULL); - if (!state->NotIn_singleton) return 0; + if (!state->NotIn_singleton) return -1; state->comprehension_type = make_type(state, "comprehension", state->AST_type, comprehension_fields, 4, "comprehension(expr target, expr iter, expr* ifs, int is_async)"); - if (!state->comprehension_type) return 0; - if (!add_attributes(state, state->comprehension_type, NULL, 0)) return 0; + if (!state->comprehension_type) return -1; + if (add_attributes(state, state->comprehension_type, NULL, 0) < 0) return + -1; state->excepthandler_type = make_type(state, "excepthandler", state->AST_type, NULL, 0, "excepthandler = ExceptHandler(expr? type, identifier? name, stmt* body)"); - if (!state->excepthandler_type) return 0; - if (!add_attributes(state, state->excepthandler_type, - excepthandler_attributes, 4)) return 0; + if (!state->excepthandler_type) return -1; + if (add_attributes(state, state->excepthandler_type, + excepthandler_attributes, 4) < 0) return -1; if (PyObject_SetAttr(state->excepthandler_type, state->end_lineno, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->excepthandler_type, state->end_col_offset, Py_None) == -1) - return 0; + return -1; state->ExceptHandler_type = make_type(state, "ExceptHandler", state->excepthandler_type, ExceptHandler_fields, 3, "ExceptHandler(expr? type, identifier? name, stmt* body)"); - if (!state->ExceptHandler_type) return 0; + if (!state->ExceptHandler_type) return -1; if (PyObject_SetAttr(state->ExceptHandler_type, state->type, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->ExceptHandler_type, state->name, Py_None) == -1) - return 0; + return -1; state->arguments_type = make_type(state, "arguments", state->AST_type, arguments_fields, 7, "arguments(arg* posonlyargs, arg* args, arg? vararg, arg* kwonlyargs, expr* kw_defaults, arg? kwarg, expr* defaults)"); - if (!state->arguments_type) return 0; - if (!add_attributes(state, state->arguments_type, NULL, 0)) return 0; + if (!state->arguments_type) return -1; + if (add_attributes(state, state->arguments_type, NULL, 0) < 0) return -1; if (PyObject_SetAttr(state->arguments_type, state->vararg, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->arguments_type, state->kwarg, Py_None) == -1) - return 0; + return -1; state->arg_type = make_type(state, "arg", state->AST_type, arg_fields, 3, "arg(identifier arg, expr? annotation, string? type_comment)"); - if (!state->arg_type) return 0; - if (!add_attributes(state, state->arg_type, arg_attributes, 4)) return 0; + if (!state->arg_type) return -1; + if (add_attributes(state, state->arg_type, arg_attributes, 4) < 0) return + -1; if (PyObject_SetAttr(state->arg_type, state->annotation, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->arg_type, state->type_comment, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->arg_type, state->end_lineno, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->arg_type, state->end_col_offset, Py_None) == -1) - return 0; + return -1; state->keyword_type = make_type(state, "keyword", state->AST_type, keyword_fields, 2, "keyword(identifier? arg, expr value)"); - if (!state->keyword_type) return 0; - if (!add_attributes(state, state->keyword_type, keyword_attributes, 4)) - return 0; + if (!state->keyword_type) return -1; + if (add_attributes(state, state->keyword_type, keyword_attributes, 4) < 0) + return -1; if (PyObject_SetAttr(state->keyword_type, state->arg, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->keyword_type, state->end_lineno, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->keyword_type, state->end_col_offset, Py_None) == -1) - return 0; + return -1; state->alias_type = make_type(state, "alias", state->AST_type, alias_fields, 2, "alias(identifier name, identifier? asname)"); - if (!state->alias_type) return 0; - if (!add_attributes(state, state->alias_type, alias_attributes, 4)) return - 0; + if (!state->alias_type) return -1; + if (add_attributes(state, state->alias_type, alias_attributes, 4) < 0) + return -1; if (PyObject_SetAttr(state->alias_type, state->asname, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->alias_type, state->end_lineno, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->alias_type, state->end_col_offset, Py_None) == -1) - return 0; + return -1; state->withitem_type = make_type(state, "withitem", state->AST_type, withitem_fields, 2, "withitem(expr context_expr, expr? optional_vars)"); - if (!state->withitem_type) return 0; - if (!add_attributes(state, state->withitem_type, NULL, 0)) return 0; + if (!state->withitem_type) return -1; + if (add_attributes(state, state->withitem_type, NULL, 0) < 0) return -1; if (PyObject_SetAttr(state->withitem_type, state->optional_vars, Py_None) == -1) - return 0; + return -1; state->match_case_type = make_type(state, "match_case", state->AST_type, match_case_fields, 3, "match_case(pattern pattern, expr? guard, stmt* body)"); - if (!state->match_case_type) return 0; - if (!add_attributes(state, state->match_case_type, NULL, 0)) return 0; + if (!state->match_case_type) return -1; + if (add_attributes(state, state->match_case_type, NULL, 0) < 0) return -1; if (PyObject_SetAttr(state->match_case_type, state->guard, Py_None) == -1) - return 0; + return -1; state->pattern_type = make_type(state, "pattern", state->AST_type, NULL, 0, "pattern = MatchValue(expr value)\n" " | MatchSingleton(constant value)\n" @@ -1862,91 +6250,102 @@ init_types(struct ast_state *state) " | MatchStar(identifier? name)\n" " | MatchAs(pattern? pattern, identifier? name)\n" " | MatchOr(pattern* patterns)"); - if (!state->pattern_type) return 0; - if (!add_attributes(state, state->pattern_type, pattern_attributes, 4)) - return 0; + if (!state->pattern_type) return -1; + if (add_attributes(state, state->pattern_type, pattern_attributes, 4) < 0) + return -1; state->MatchValue_type = make_type(state, "MatchValue", state->pattern_type, MatchValue_fields, 1, "MatchValue(expr value)"); - if (!state->MatchValue_type) return 0; + if (!state->MatchValue_type) return -1; state->MatchSingleton_type = make_type(state, "MatchSingleton", state->pattern_type, MatchSingleton_fields, 1, "MatchSingleton(constant value)"); - if (!state->MatchSingleton_type) return 0; + if (!state->MatchSingleton_type) return -1; state->MatchSequence_type = make_type(state, "MatchSequence", state->pattern_type, MatchSequence_fields, 1, "MatchSequence(pattern* patterns)"); - if (!state->MatchSequence_type) return 0; + if (!state->MatchSequence_type) return -1; state->MatchMapping_type = make_type(state, "MatchMapping", state->pattern_type, MatchMapping_fields, 3, "MatchMapping(expr* keys, pattern* patterns, identifier? rest)"); - if (!state->MatchMapping_type) return 0; + if (!state->MatchMapping_type) return -1; if (PyObject_SetAttr(state->MatchMapping_type, state->rest, Py_None) == -1) - return 0; + return -1; state->MatchClass_type = make_type(state, "MatchClass", state->pattern_type, MatchClass_fields, 4, "MatchClass(expr cls, pattern* patterns, identifier* kwd_attrs, pattern* kwd_patterns)"); - if (!state->MatchClass_type) return 0; + if (!state->MatchClass_type) return -1; state->MatchStar_type = make_type(state, "MatchStar", state->pattern_type, MatchStar_fields, 1, "MatchStar(identifier? name)"); - if (!state->MatchStar_type) return 0; + if (!state->MatchStar_type) return -1; if (PyObject_SetAttr(state->MatchStar_type, state->name, Py_None) == -1) - return 0; + return -1; state->MatchAs_type = make_type(state, "MatchAs", state->pattern_type, MatchAs_fields, 2, "MatchAs(pattern? pattern, identifier? name)"); - if (!state->MatchAs_type) return 0; + if (!state->MatchAs_type) return -1; if (PyObject_SetAttr(state->MatchAs_type, state->pattern, Py_None) == -1) - return 0; + return -1; if (PyObject_SetAttr(state->MatchAs_type, state->name, Py_None) == -1) - return 0; + return -1; state->MatchOr_type = make_type(state, "MatchOr", state->pattern_type, MatchOr_fields, 1, "MatchOr(pattern* patterns)"); - if (!state->MatchOr_type) return 0; + if (!state->MatchOr_type) return -1; state->type_ignore_type = make_type(state, "type_ignore", state->AST_type, NULL, 0, "type_ignore = TypeIgnore(int lineno, string tag)"); - if (!state->type_ignore_type) return 0; - if (!add_attributes(state, state->type_ignore_type, NULL, 0)) return 0; + if (!state->type_ignore_type) return -1; + if (add_attributes(state, state->type_ignore_type, NULL, 0) < 0) return -1; state->TypeIgnore_type = make_type(state, "TypeIgnore", state->type_ignore_type, TypeIgnore_fields, 2, "TypeIgnore(int lineno, string tag)"); - if (!state->TypeIgnore_type) return 0; + if (!state->TypeIgnore_type) return -1; state->type_param_type = make_type(state, "type_param", state->AST_type, NULL, 0, - "type_param = TypeVar(identifier name, expr? bound)\n" - " | ParamSpec(identifier name)\n" - " | TypeVarTuple(identifier name)"); - if (!state->type_param_type) return 0; - if (!add_attributes(state, state->type_param_type, type_param_attributes, - 4)) return 0; + "type_param = TypeVar(identifier name, expr? bound, expr? default_value)\n" + " | ParamSpec(identifier name, expr? default_value)\n" + " | TypeVarTuple(identifier name, expr? default_value)"); + if (!state->type_param_type) return -1; + if (add_attributes(state, state->type_param_type, type_param_attributes, 4) + < 0) return -1; state->TypeVar_type = make_type(state, "TypeVar", state->type_param_type, - TypeVar_fields, 2, - "TypeVar(identifier name, expr? bound)"); - if (!state->TypeVar_type) return 0; + TypeVar_fields, 3, + "TypeVar(identifier name, expr? bound, expr? default_value)"); + if (!state->TypeVar_type) return -1; if (PyObject_SetAttr(state->TypeVar_type, state->bound, Py_None) == -1) - return 0; + return -1; + if (PyObject_SetAttr(state->TypeVar_type, state->default_value, Py_None) == + -1) + return -1; state->ParamSpec_type = make_type(state, "ParamSpec", state->type_param_type, ParamSpec_fields, - 1, - "ParamSpec(identifier name)"); - if (!state->ParamSpec_type) return 0; + 2, + "ParamSpec(identifier name, expr? default_value)"); + if (!state->ParamSpec_type) return -1; + if (PyObject_SetAttr(state->ParamSpec_type, state->default_value, Py_None) + == -1) + return -1; state->TypeVarTuple_type = make_type(state, "TypeVarTuple", state->type_param_type, - TypeVarTuple_fields, 1, - "TypeVarTuple(identifier name)"); - if (!state->TypeVarTuple_type) return 0; + TypeVarTuple_fields, 2, + "TypeVarTuple(identifier name, expr? default_value)"); + if (!state->TypeVarTuple_type) return -1; + if (PyObject_SetAttr(state->TypeVarTuple_type, state->default_value, + Py_None) == -1) + return -1; - state->initialized = 1; - return 1; + if (!add_ast_annotations(state)) { + return -1; + } + return 0; } static int obj2ast_mod(struct ast_state *state, PyObject* obj, mod_ty* out, @@ -3732,8 +8131,9 @@ _PyAST_TypeIgnore(int lineno, string tag, PyArena *arena) } type_param_ty -_PyAST_TypeVar(identifier name, expr_ty bound, int lineno, int col_offset, int - end_lineno, int end_col_offset, PyArena *arena) +_PyAST_TypeVar(identifier name, expr_ty bound, expr_ty default_value, int + lineno, int col_offset, int end_lineno, int end_col_offset, + PyArena *arena) { type_param_ty p; if (!name) { @@ -3747,6 +8147,7 @@ _PyAST_TypeVar(identifier name, expr_ty bound, int lineno, int col_offset, int p->kind = TypeVar_kind; p->v.TypeVar.name = name; p->v.TypeVar.bound = bound; + p->v.TypeVar.default_value = default_value; p->lineno = lineno; p->col_offset = col_offset; p->end_lineno = end_lineno; @@ -3755,8 +8156,8 @@ _PyAST_TypeVar(identifier name, expr_ty bound, int lineno, int col_offset, int } type_param_ty -_PyAST_ParamSpec(identifier name, int lineno, int col_offset, int end_lineno, - int end_col_offset, PyArena *arena) +_PyAST_ParamSpec(identifier name, expr_ty default_value, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena *arena) { type_param_ty p; if (!name) { @@ -3769,6 +8170,7 @@ _PyAST_ParamSpec(identifier name, int lineno, int col_offset, int end_lineno, return NULL; p->kind = ParamSpec_kind; p->v.ParamSpec.name = name; + p->v.ParamSpec.default_value = default_value; p->lineno = lineno; p->col_offset = col_offset; p->end_lineno = end_lineno; @@ -3777,8 +8179,9 @@ _PyAST_ParamSpec(identifier name, int lineno, int col_offset, int end_lineno, } type_param_ty -_PyAST_TypeVarTuple(identifier name, int lineno, int col_offset, int - end_lineno, int end_col_offset, PyArena *arena) +_PyAST_TypeVarTuple(identifier name, expr_ty default_value, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena) { type_param_ty p; if (!name) { @@ -3791,6 +8194,7 @@ _PyAST_TypeVarTuple(identifier name, int lineno, int col_offset, int return NULL; p->kind = TypeVarTuple_kind; p->v.TypeVarTuple.name = name; + p->v.TypeVarTuple.default_value = default_value; p->lineno = lineno; p->col_offset = col_offset; p->end_lineno = end_lineno; @@ -3811,7 +8215,7 @@ ast2obj_mod(struct ast_state *state, struct validator *vstate, void* _o) if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } switch (o->kind) { case Module_kind: @@ -3892,7 +8296,7 @@ ast2obj_stmt(struct ast_state *state, struct validator *vstate, void* _o) if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } switch (o->kind) { case FunctionDef_kind: @@ -4514,7 +8918,7 @@ ast2obj_expr(struct ast_state *state, struct validator *vstate, void* _o) if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } switch (o->kind) { case BoolOp_kind: @@ -5107,7 +9511,7 @@ ast2obj_comprehension(struct ast_state *state, struct validator *vstate, void* if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } tp = (PyTypeObject *)state->comprehension_type; result = PyType_GenericNew(tp, NULL, NULL); @@ -5154,7 +9558,7 @@ ast2obj_excepthandler(struct ast_state *state, struct validator *vstate, void* if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } switch (o->kind) { case ExceptHandler_kind: @@ -5220,7 +9624,7 @@ ast2obj_arguments(struct ast_state *state, struct validator *vstate, void* _o) if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } tp = (PyTypeObject *)state->arguments_type; result = PyType_GenericNew(tp, NULL, NULL); @@ -5282,7 +9686,7 @@ ast2obj_arg(struct ast_state *state, struct validator *vstate, void* _o) if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } tp = (PyTypeObject *)state->arg_type; result = PyType_GenericNew(tp, NULL, NULL); @@ -5343,7 +9747,7 @@ ast2obj_keyword(struct ast_state *state, struct validator *vstate, void* _o) if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } tp = (PyTypeObject *)state->keyword_type; result = PyType_GenericNew(tp, NULL, NULL); @@ -5399,7 +9803,7 @@ ast2obj_alias(struct ast_state *state, struct validator *vstate, void* _o) if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } tp = (PyTypeObject *)state->alias_type; result = PyType_GenericNew(tp, NULL, NULL); @@ -5455,7 +9859,7 @@ ast2obj_withitem(struct ast_state *state, struct validator *vstate, void* _o) if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } tp = (PyTypeObject *)state->withitem_type; result = PyType_GenericNew(tp, NULL, NULL); @@ -5491,7 +9895,7 @@ ast2obj_match_case(struct ast_state *state, struct validator *vstate, void* _o) if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } tp = (PyTypeObject *)state->match_case_type; result = PyType_GenericNew(tp, NULL, NULL); @@ -5532,7 +9936,7 @@ ast2obj_pattern(struct ast_state *state, struct validator *vstate, void* _o) if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } switch (o->kind) { case MatchValue_kind: @@ -5699,7 +10103,7 @@ ast2obj_type_ignore(struct ast_state *state, struct validator *vstate, void* _o) if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } switch (o->kind) { case TypeIgnore_kind: @@ -5739,7 +10143,7 @@ ast2obj_type_param(struct ast_state *state, struct validator *vstate, void* _o) if (++vstate->recursion_depth > vstate->recursion_limit) { PyErr_SetString(PyExc_RecursionError, "maximum recursion depth exceeded during ast construction"); - return 0; + return NULL; } switch (o->kind) { case TypeVar_kind: @@ -5756,6 +10160,11 @@ ast2obj_type_param(struct ast_state *state, struct validator *vstate, void* _o) if (PyObject_SetAttr(result, state->bound, value) == -1) goto failed; Py_DECREF(value); + value = ast2obj_expr(state, vstate, o->v.TypeVar.default_value); + if (!value) goto failed; + if (PyObject_SetAttr(result, state->default_value, value) == -1) + goto failed; + Py_DECREF(value); break; case ParamSpec_kind: tp = (PyTypeObject *)state->ParamSpec_type; @@ -5766,6 +10175,11 @@ ast2obj_type_param(struct ast_state *state, struct validator *vstate, void* _o) if (PyObject_SetAttr(result, state->name, value) == -1) goto failed; Py_DECREF(value); + value = ast2obj_expr(state, vstate, o->v.ParamSpec.default_value); + if (!value) goto failed; + if (PyObject_SetAttr(result, state->default_value, value) == -1) + goto failed; + Py_DECREF(value); break; case TypeVarTuple_kind: tp = (PyTypeObject *)state->TypeVarTuple_type; @@ -5776,6 +10190,11 @@ ast2obj_type_param(struct ast_state *state, struct validator *vstate, void* _o) if (PyObject_SetAttr(result, state->name, value) == -1) goto failed; Py_DECREF(value); + value = ast2obj_expr(state, vstate, o->v.TypeVarTuple.default_value); + if (!value) goto failed; + if (PyObject_SetAttr(result, state->default_value, value) == -1) + goto failed; + Py_DECREF(value); break; } value = ast2obj_int(state, vstate, o->lineno); @@ -5823,19 +10242,19 @@ obj2ast_mod(struct ast_state *state, PyObject* obj, mod_ty* out, PyArena* arena) tp = state->Module_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_stmt_seq* body; asdl_type_ignore_seq* type_ignores; - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -5867,13 +10286,13 @@ obj2ast_mod(struct ast_state *state, PyObject* obj, mod_ty* out, PyArena* arena) } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_ignores, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_ignores, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -5912,18 +10331,18 @@ obj2ast_mod(struct ast_state *state, PyObject* obj, mod_ty* out, PyArena* arena) tp = state->Interactive_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_stmt_seq* body; - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -5962,17 +10381,17 @@ obj2ast_mod(struct ast_state *state, PyObject* obj, mod_ty* out, PyArena* arena) tp = state->Expression_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty body; - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from Expression"); - return 1; + return -1; } else { int res; @@ -5991,19 +10410,19 @@ obj2ast_mod(struct ast_state *state, PyObject* obj, mod_ty* out, PyArena* arena) tp = state->FunctionType_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_expr_seq* argtypes; expr_ty returns; - if (_PyObject_LookupAttr(obj, state->argtypes, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->argtypes, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6035,12 +10454,12 @@ obj2ast_mod(struct ast_state *state, PyObject* obj, mod_ty* out, PyArena* arena) } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->returns, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->returns, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"returns\" missing from FunctionType"); - return 1; + return -1; } else { int res; @@ -6060,7 +10479,7 @@ obj2ast_mod(struct ast_state *state, PyObject* obj, mod_ty* out, PyArena* arena) PyErr_Format(PyExc_TypeError, "expected some sort of mod, but got %R", obj); failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -6080,12 +10499,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* *out = NULL; return 0; } - if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->lineno, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from stmt"); - return 1; + return -1; } else { int res; @@ -6097,12 +10516,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from stmt"); - return 1; + return -1; } else { int res; @@ -6114,8 +10533,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_lineno, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -6131,8 +10550,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -6151,7 +10570,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->FunctionDef_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { identifier name; @@ -6162,12 +10581,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* string type_comment; asdl_type_param_seq* type_params; - if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->name, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"name\" missing from FunctionDef"); - return 1; + return -1; } else { int res; @@ -6179,12 +10598,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->args, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"args\" missing from FunctionDef"); - return 1; + return -1; } else { int res; @@ -6196,13 +10615,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6234,13 +10653,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->decorator_list, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->decorator_list, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6272,8 +10691,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->returns, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->returns, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -6289,8 +10708,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_comment, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -6306,13 +10725,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_params, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_params, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6354,7 +10773,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->AsyncFunctionDef_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { identifier name; @@ -6365,12 +10784,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* string type_comment; asdl_type_param_seq* type_params; - if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->name, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"name\" missing from AsyncFunctionDef"); - return 1; + return -1; } else { int res; @@ -6382,12 +10801,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->args, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"args\" missing from AsyncFunctionDef"); - return 1; + return -1; } else { int res; @@ -6399,13 +10818,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6437,13 +10856,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->decorator_list, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->decorator_list, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6475,8 +10894,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->returns, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->returns, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -6492,8 +10911,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_comment, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -6509,13 +10928,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_params, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_params, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6557,7 +10976,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->ClassDef_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { identifier name; @@ -6567,12 +10986,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* asdl_expr_seq* decorator_list; asdl_type_param_seq* type_params; - if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->name, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"name\" missing from ClassDef"); - return 1; + return -1; } else { int res; @@ -6584,13 +11003,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->bases, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->bases, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6622,13 +11041,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->keywords, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->keywords, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6660,13 +11079,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6698,13 +11117,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->decorator_list, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->decorator_list, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6736,13 +11155,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_params, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_params, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6783,13 +11202,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Return_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty value; - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -6813,18 +11232,18 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Delete_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_expr_seq* targets; - if (_PyObject_LookupAttr(obj, state->targets, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->targets, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6864,20 +11283,20 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Assign_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_expr_seq* targets; expr_ty value; string type_comment; - if (_PyObject_LookupAttr(obj, state->targets, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->targets, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -6909,12 +11328,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from Assign"); - return 1; + return -1; } else { int res; @@ -6926,8 +11345,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_comment, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -6951,19 +11370,19 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->TypeAlias_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty name; asdl_type_param_seq* type_params; expr_ty value; - if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->name, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"name\" missing from TypeAlias"); - return 1; + return -1; } else { int res; @@ -6975,13 +11394,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_params, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_params, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7013,12 +11432,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from TypeAlias"); - return 1; + return -1; } else { int res; @@ -7038,19 +11457,19 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->AugAssign_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty target; operator_ty op; expr_ty value; - if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->target, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"target\" missing from AugAssign"); - return 1; + return -1; } else { int res; @@ -7062,12 +11481,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->op, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->op, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"op\" missing from AugAssign"); - return 1; + return -1; } else { int res; @@ -7079,12 +11498,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from AugAssign"); - return 1; + return -1; } else { int res; @@ -7104,7 +11523,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->AnnAssign_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty target; @@ -7112,12 +11531,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* expr_ty value; int simple; - if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->target, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"target\" missing from AnnAssign"); - return 1; + return -1; } else { int res; @@ -7129,12 +11548,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->annotation, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->annotation, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"annotation\" missing from AnnAssign"); - return 1; + return -1; } else { int res; @@ -7146,8 +11565,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -7163,12 +11582,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->simple, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->simple, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"simple\" missing from AnnAssign"); - return 1; + return -1; } else { int res; @@ -7188,7 +11607,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->For_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty target; @@ -7197,12 +11616,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* asdl_stmt_seq* orelse; string type_comment; - if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->target, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"target\" missing from For"); - return 1; + return -1; } else { int res; @@ -7214,12 +11633,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->iter, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->iter, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"iter\" missing from For"); - return 1; + return -1; } else { int res; @@ -7231,13 +11650,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7269,13 +11688,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->orelse, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7307,8 +11726,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_comment, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -7332,7 +11751,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->AsyncFor_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty target; @@ -7341,12 +11760,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* asdl_stmt_seq* orelse; string type_comment; - if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->target, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"target\" missing from AsyncFor"); - return 1; + return -1; } else { int res; @@ -7358,12 +11777,12 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->iter, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->iter, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"iter\" missing from AsyncFor"); - return 1; + return -1; } else { int res; @@ -7375,13 +11794,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7413,13 +11832,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->orelse, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7451,8 +11870,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_comment, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -7477,19 +11896,19 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->While_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty test; asdl_stmt_seq* body; asdl_stmt_seq* orelse; - if (_PyObject_LookupAttr(obj, state->test, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->test, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"test\" missing from While"); - return 1; + return -1; } else { int res; @@ -7501,13 +11920,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7539,13 +11958,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->orelse, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7585,19 +12004,19 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->If_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty test; asdl_stmt_seq* body; asdl_stmt_seq* orelse; - if (_PyObject_LookupAttr(obj, state->test, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->test, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"test\" missing from If"); - return 1; + return -1; } else { int res; @@ -7609,13 +12028,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7647,13 +12066,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->orelse, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7693,20 +12112,20 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->With_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_withitem_seq* items; asdl_stmt_seq* body; string type_comment; - if (_PyObject_LookupAttr(obj, state->items, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->items, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7738,13 +12157,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7776,8 +12195,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_comment, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -7801,20 +12220,20 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->AsyncWith_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_withitem_seq* items; asdl_stmt_seq* body; string type_comment; - if (_PyObject_LookupAttr(obj, state->items, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->items, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7846,13 +12265,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7884,8 +12303,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_comment, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -7909,18 +12328,18 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Match_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty subject; asdl_match_case_seq* cases; - if (_PyObject_LookupAttr(obj, state->subject, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->subject, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"subject\" missing from Match"); - return 1; + return -1; } else { int res; @@ -7932,13 +12351,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->cases, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->cases, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -7978,14 +12397,14 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Raise_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty exc; expr_ty cause; - if (_PyObject_LookupAttr(obj, state->exc, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->exc, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -8001,8 +12420,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->cause, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->cause, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -8026,7 +12445,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Try_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_stmt_seq* body; @@ -8034,13 +12453,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* asdl_stmt_seq* orelse; asdl_stmt_seq* finalbody; - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8072,13 +12491,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->handlers, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->handlers, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8110,13 +12529,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->orelse, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8148,13 +12567,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->finalbody, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->finalbody, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8194,7 +12613,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->TryStar_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_stmt_seq* body; @@ -8202,13 +12621,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* asdl_stmt_seq* orelse; asdl_stmt_seq* finalbody; - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8240,13 +12659,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->handlers, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->handlers, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8278,13 +12697,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->orelse, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8316,13 +12735,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->finalbody, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->finalbody, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8362,18 +12781,18 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Assert_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty test; expr_ty msg; - if (_PyObject_LookupAttr(obj, state->test, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->test, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"test\" missing from Assert"); - return 1; + return -1; } else { int res; @@ -8385,8 +12804,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->msg, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->msg, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -8410,18 +12829,18 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Import_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_alias_seq* names; - if (_PyObject_LookupAttr(obj, state->names, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->names, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8461,15 +12880,15 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->ImportFrom_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { identifier module; asdl_alias_seq* names; int level; - if (_PyObject_LookupAttr(obj, state->module, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->module, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -8485,13 +12904,13 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->names, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->names, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8523,8 +12942,8 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->level, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->level, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -8548,18 +12967,18 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Global_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_identifier_seq* names; - if (_PyObject_LookupAttr(obj, state->names, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->names, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8599,18 +13018,18 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Nonlocal_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_identifier_seq* names; - if (_PyObject_LookupAttr(obj, state->names, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->names, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8650,17 +13069,17 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Expr_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty value; - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from Expr"); - return 1; + return -1; } else { int res; @@ -8680,7 +13099,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Pass_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { @@ -8692,7 +13111,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Break_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { @@ -8704,7 +13123,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* tp = state->Continue_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { @@ -8717,7 +13136,7 @@ obj2ast_stmt(struct ast_state *state, PyObject* obj, stmt_ty* out, PyArena* PyErr_Format(PyExc_TypeError, "expected some sort of stmt, but got %R", obj); failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -8737,12 +13156,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* *out = NULL; return 0; } - if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->lineno, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from expr"); - return 1; + return -1; } else { int res; @@ -8754,12 +13173,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from expr"); - return 1; + return -1; } else { int res; @@ -8771,8 +13190,8 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_lineno, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -8788,8 +13207,8 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -8808,18 +13227,18 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->BoolOp_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { boolop_ty op; asdl_expr_seq* values; - if (_PyObject_LookupAttr(obj, state->op, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->op, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"op\" missing from BoolOp"); - return 1; + return -1; } else { int res; @@ -8831,13 +13250,13 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->values, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->values, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -8877,18 +13296,18 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->NamedExpr_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty target; expr_ty value; - if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->target, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"target\" missing from NamedExpr"); - return 1; + return -1; } else { int res; @@ -8900,12 +13319,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from NamedExpr"); - return 1; + return -1; } else { int res; @@ -8925,19 +13344,19 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->BinOp_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty left; operator_ty op; expr_ty right; - if (_PyObject_LookupAttr(obj, state->left, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->left, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"left\" missing from BinOp"); - return 1; + return -1; } else { int res; @@ -8949,12 +13368,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->op, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->op, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"op\" missing from BinOp"); - return 1; + return -1; } else { int res; @@ -8966,12 +13385,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->right, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->right, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"right\" missing from BinOp"); - return 1; + return -1; } else { int res; @@ -8991,18 +13410,18 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->UnaryOp_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { unaryop_ty op; expr_ty operand; - if (_PyObject_LookupAttr(obj, state->op, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->op, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"op\" missing from UnaryOp"); - return 1; + return -1; } else { int res; @@ -9014,12 +13433,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->operand, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->operand, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"operand\" missing from UnaryOp"); - return 1; + return -1; } else { int res; @@ -9039,18 +13458,18 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Lambda_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { arguments_ty args; expr_ty body; - if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->args, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"args\" missing from Lambda"); - return 1; + return -1; } else { int res; @@ -9062,12 +13481,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from Lambda"); - return 1; + return -1; } else { int res; @@ -9087,19 +13506,19 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->IfExp_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty test; expr_ty body; expr_ty orelse; - if (_PyObject_LookupAttr(obj, state->test, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->test, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"test\" missing from IfExp"); - return 1; + return -1; } else { int res; @@ -9111,12 +13530,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from IfExp"); - return 1; + return -1; } else { int res; @@ -9128,12 +13547,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->orelse, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->orelse, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"orelse\" missing from IfExp"); - return 1; + return -1; } else { int res; @@ -9153,19 +13572,19 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Dict_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_expr_seq* keys; asdl_expr_seq* values; - if (_PyObject_LookupAttr(obj, state->keys, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->keys, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -9197,13 +13616,13 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->values, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->values, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -9243,18 +13662,18 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Set_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_expr_seq* elts; - if (_PyObject_LookupAttr(obj, state->elts, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->elts, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -9294,18 +13713,18 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->ListComp_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty elt; asdl_comprehension_seq* generators; - if (_PyObject_LookupAttr(obj, state->elt, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->elt, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"elt\" missing from ListComp"); - return 1; + return -1; } else { int res; @@ -9317,13 +13736,13 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->generators, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->generators, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -9363,18 +13782,18 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->SetComp_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty elt; asdl_comprehension_seq* generators; - if (_PyObject_LookupAttr(obj, state->elt, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->elt, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"elt\" missing from SetComp"); - return 1; + return -1; } else { int res; @@ -9386,13 +13805,13 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->generators, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->generators, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -9432,19 +13851,19 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->DictComp_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty key; expr_ty value; asdl_comprehension_seq* generators; - if (_PyObject_LookupAttr(obj, state->key, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->key, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"key\" missing from DictComp"); - return 1; + return -1; } else { int res; @@ -9456,12 +13875,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from DictComp"); - return 1; + return -1; } else { int res; @@ -9473,13 +13892,13 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->generators, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->generators, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -9519,18 +13938,18 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->GeneratorExp_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty elt; asdl_comprehension_seq* generators; - if (_PyObject_LookupAttr(obj, state->elt, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->elt, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"elt\" missing from GeneratorExp"); - return 1; + return -1; } else { int res; @@ -9542,13 +13961,13 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->generators, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->generators, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -9588,17 +14007,17 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Await_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty value; - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from Await"); - return 1; + return -1; } else { int res; @@ -9618,13 +14037,13 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Yield_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty value; - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -9648,17 +14067,17 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->YieldFrom_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty value; - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from YieldFrom"); - return 1; + return -1; } else { int res; @@ -9678,19 +14097,19 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Compare_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty left; asdl_int_seq* ops; asdl_expr_seq* comparators; - if (_PyObject_LookupAttr(obj, state->left, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->left, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"left\" missing from Compare"); - return 1; + return -1; } else { int res; @@ -9702,13 +14121,13 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->ops, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->ops, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -9740,13 +14159,13 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->comparators, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->comparators, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -9786,19 +14205,19 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Call_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty func; asdl_expr_seq* args; asdl_keyword_seq* keywords; - if (_PyObject_LookupAttr(obj, state->func, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->func, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"func\" missing from Call"); - return 1; + return -1; } else { int res; @@ -9810,13 +14229,13 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->args, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -9848,13 +14267,13 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->keywords, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->keywords, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -9894,19 +14313,19 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->FormattedValue_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty value; int conversion; expr_ty format_spec; - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from FormattedValue"); - return 1; + return -1; } else { int res; @@ -9918,12 +14337,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->conversion, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->conversion, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"conversion\" missing from FormattedValue"); - return 1; + return -1; } else { int res; @@ -9935,8 +14354,8 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->format_spec, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->format_spec, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -9961,18 +14380,18 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->JoinedStr_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_expr_seq* values; - if (_PyObject_LookupAttr(obj, state->values, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->values, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -10012,18 +14431,18 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Constant_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { constant value; string kind; - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from Constant"); - return 1; + return -1; } else { int res; @@ -10035,8 +14454,8 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->kind, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->kind, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -10060,19 +14479,19 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Attribute_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty value; identifier attr; expr_context_ty ctx; - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from Attribute"); - return 1; + return -1; } else { int res; @@ -10084,12 +14503,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->attr, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->attr, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"attr\" missing from Attribute"); - return 1; + return -1; } else { int res; @@ -10101,12 +14520,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->ctx, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"ctx\" missing from Attribute"); - return 1; + return -1; } else { int res; @@ -10126,19 +14545,19 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Subscript_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty value; expr_ty slice; expr_context_ty ctx; - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from Subscript"); - return 1; + return -1; } else { int res; @@ -10150,12 +14569,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->slice, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->slice, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"slice\" missing from Subscript"); - return 1; + return -1; } else { int res; @@ -10167,12 +14586,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->ctx, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"ctx\" missing from Subscript"); - return 1; + return -1; } else { int res; @@ -10192,18 +14611,18 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Starred_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty value; expr_context_ty ctx; - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from Starred"); - return 1; + return -1; } else { int res; @@ -10215,12 +14634,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->ctx, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"ctx\" missing from Starred"); - return 1; + return -1; } else { int res; @@ -10240,18 +14659,18 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Name_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { identifier id; expr_context_ty ctx; - if (_PyObject_LookupAttr(obj, state->id, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->id, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"id\" missing from Name"); - return 1; + return -1; } else { int res; @@ -10263,12 +14682,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->ctx, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"ctx\" missing from Name"); - return 1; + return -1; } else { int res; @@ -10288,19 +14707,19 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->List_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_expr_seq* elts; expr_context_ty ctx; - if (_PyObject_LookupAttr(obj, state->elts, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->elts, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -10332,12 +14751,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->ctx, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"ctx\" missing from List"); - return 1; + return -1; } else { int res; @@ -10357,19 +14776,19 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Tuple_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_expr_seq* elts; expr_context_ty ctx; - if (_PyObject_LookupAttr(obj, state->elts, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->elts, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -10401,12 +14820,12 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->ctx, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->ctx, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"ctx\" missing from Tuple"); - return 1; + return -1; } else { int res; @@ -10426,15 +14845,15 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* tp = state->Slice_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty lower; expr_ty upper; expr_ty step; - if (_PyObject_LookupAttr(obj, state->lower, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->lower, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -10450,8 +14869,8 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->upper, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->upper, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -10467,8 +14886,8 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->step, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->step, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -10493,7 +14912,7 @@ obj2ast_expr(struct ast_state *state, PyObject* obj, expr_ty* out, PyArena* PyErr_Format(PyExc_TypeError, "expected some sort of expr, but got %R", obj); failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -10504,7 +14923,7 @@ obj2ast_expr_context(struct ast_state *state, PyObject* obj, expr_context_ty* isinstance = PyObject_IsInstance(obj, state->Load_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Load; @@ -10512,7 +14931,7 @@ obj2ast_expr_context(struct ast_state *state, PyObject* obj, expr_context_ty* } isinstance = PyObject_IsInstance(obj, state->Store_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Store; @@ -10520,7 +14939,7 @@ obj2ast_expr_context(struct ast_state *state, PyObject* obj, expr_context_ty* } isinstance = PyObject_IsInstance(obj, state->Del_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Del; @@ -10528,7 +14947,7 @@ obj2ast_expr_context(struct ast_state *state, PyObject* obj, expr_context_ty* } PyErr_Format(PyExc_TypeError, "expected some sort of expr_context, but got %R", obj); - return 1; + return -1; } int @@ -10539,7 +14958,7 @@ obj2ast_boolop(struct ast_state *state, PyObject* obj, boolop_ty* out, PyArena* isinstance = PyObject_IsInstance(obj, state->And_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = And; @@ -10547,7 +14966,7 @@ obj2ast_boolop(struct ast_state *state, PyObject* obj, boolop_ty* out, PyArena* } isinstance = PyObject_IsInstance(obj, state->Or_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Or; @@ -10555,7 +14974,7 @@ obj2ast_boolop(struct ast_state *state, PyObject* obj, boolop_ty* out, PyArena* } PyErr_Format(PyExc_TypeError, "expected some sort of boolop, but got %R", obj); - return 1; + return -1; } int @@ -10566,7 +14985,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, isinstance = PyObject_IsInstance(obj, state->Add_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Add; @@ -10574,7 +14993,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } isinstance = PyObject_IsInstance(obj, state->Sub_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Sub; @@ -10582,7 +15001,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } isinstance = PyObject_IsInstance(obj, state->Mult_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Mult; @@ -10590,7 +15009,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } isinstance = PyObject_IsInstance(obj, state->MatMult_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = MatMult; @@ -10598,7 +15017,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } isinstance = PyObject_IsInstance(obj, state->Div_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Div; @@ -10606,7 +15025,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } isinstance = PyObject_IsInstance(obj, state->Mod_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Mod; @@ -10614,7 +15033,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } isinstance = PyObject_IsInstance(obj, state->Pow_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Pow; @@ -10622,7 +15041,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } isinstance = PyObject_IsInstance(obj, state->LShift_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = LShift; @@ -10630,7 +15049,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } isinstance = PyObject_IsInstance(obj, state->RShift_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = RShift; @@ -10638,7 +15057,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } isinstance = PyObject_IsInstance(obj, state->BitOr_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = BitOr; @@ -10646,7 +15065,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } isinstance = PyObject_IsInstance(obj, state->BitXor_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = BitXor; @@ -10654,7 +15073,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } isinstance = PyObject_IsInstance(obj, state->BitAnd_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = BitAnd; @@ -10662,7 +15081,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } isinstance = PyObject_IsInstance(obj, state->FloorDiv_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = FloorDiv; @@ -10670,7 +15089,7 @@ obj2ast_operator(struct ast_state *state, PyObject* obj, operator_ty* out, } PyErr_Format(PyExc_TypeError, "expected some sort of operator, but got %R", obj); - return 1; + return -1; } int @@ -10681,7 +15100,7 @@ obj2ast_unaryop(struct ast_state *state, PyObject* obj, unaryop_ty* out, isinstance = PyObject_IsInstance(obj, state->Invert_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Invert; @@ -10689,7 +15108,7 @@ obj2ast_unaryop(struct ast_state *state, PyObject* obj, unaryop_ty* out, } isinstance = PyObject_IsInstance(obj, state->Not_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Not; @@ -10697,7 +15116,7 @@ obj2ast_unaryop(struct ast_state *state, PyObject* obj, unaryop_ty* out, } isinstance = PyObject_IsInstance(obj, state->UAdd_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = UAdd; @@ -10705,7 +15124,7 @@ obj2ast_unaryop(struct ast_state *state, PyObject* obj, unaryop_ty* out, } isinstance = PyObject_IsInstance(obj, state->USub_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = USub; @@ -10713,7 +15132,7 @@ obj2ast_unaryop(struct ast_state *state, PyObject* obj, unaryop_ty* out, } PyErr_Format(PyExc_TypeError, "expected some sort of unaryop, but got %R", obj); - return 1; + return -1; } int @@ -10724,7 +15143,7 @@ obj2ast_cmpop(struct ast_state *state, PyObject* obj, cmpop_ty* out, PyArena* isinstance = PyObject_IsInstance(obj, state->Eq_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Eq; @@ -10732,7 +15151,7 @@ obj2ast_cmpop(struct ast_state *state, PyObject* obj, cmpop_ty* out, PyArena* } isinstance = PyObject_IsInstance(obj, state->NotEq_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = NotEq; @@ -10740,7 +15159,7 @@ obj2ast_cmpop(struct ast_state *state, PyObject* obj, cmpop_ty* out, PyArena* } isinstance = PyObject_IsInstance(obj, state->Lt_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Lt; @@ -10748,7 +15167,7 @@ obj2ast_cmpop(struct ast_state *state, PyObject* obj, cmpop_ty* out, PyArena* } isinstance = PyObject_IsInstance(obj, state->LtE_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = LtE; @@ -10756,7 +15175,7 @@ obj2ast_cmpop(struct ast_state *state, PyObject* obj, cmpop_ty* out, PyArena* } isinstance = PyObject_IsInstance(obj, state->Gt_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Gt; @@ -10764,7 +15183,7 @@ obj2ast_cmpop(struct ast_state *state, PyObject* obj, cmpop_ty* out, PyArena* } isinstance = PyObject_IsInstance(obj, state->GtE_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = GtE; @@ -10772,7 +15191,7 @@ obj2ast_cmpop(struct ast_state *state, PyObject* obj, cmpop_ty* out, PyArena* } isinstance = PyObject_IsInstance(obj, state->Is_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = Is; @@ -10780,7 +15199,7 @@ obj2ast_cmpop(struct ast_state *state, PyObject* obj, cmpop_ty* out, PyArena* } isinstance = PyObject_IsInstance(obj, state->IsNot_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = IsNot; @@ -10788,7 +15207,7 @@ obj2ast_cmpop(struct ast_state *state, PyObject* obj, cmpop_ty* out, PyArena* } isinstance = PyObject_IsInstance(obj, state->In_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = In; @@ -10796,7 +15215,7 @@ obj2ast_cmpop(struct ast_state *state, PyObject* obj, cmpop_ty* out, PyArena* } isinstance = PyObject_IsInstance(obj, state->NotIn_type); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { *out = NotIn; @@ -10804,7 +15223,7 @@ obj2ast_cmpop(struct ast_state *state, PyObject* obj, cmpop_ty* out, PyArena* } PyErr_Format(PyExc_TypeError, "expected some sort of cmpop, but got %R", obj); - return 1; + return -1; } int @@ -10817,12 +15236,12 @@ obj2ast_comprehension(struct ast_state *state, PyObject* obj, comprehension_ty* asdl_expr_seq* ifs; int is_async; - if (_PyObject_LookupAttr(obj, state->target, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->target, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"target\" missing from comprehension"); - return 1; + return -1; } else { int res; @@ -10834,12 +15253,12 @@ obj2ast_comprehension(struct ast_state *state, PyObject* obj, comprehension_ty* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->iter, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->iter, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"iter\" missing from comprehension"); - return 1; + return -1; } else { int res; @@ -10851,13 +15270,13 @@ obj2ast_comprehension(struct ast_state *state, PyObject* obj, comprehension_ty* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->ifs, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->ifs, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -10889,12 +15308,12 @@ obj2ast_comprehension(struct ast_state *state, PyObject* obj, comprehension_ty* } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->is_async, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->is_async, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"is_async\" missing from comprehension"); - return 1; + return -1; } else { int res; @@ -10911,7 +15330,7 @@ obj2ast_comprehension(struct ast_state *state, PyObject* obj, comprehension_ty* return 0; failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -10931,12 +15350,12 @@ obj2ast_excepthandler(struct ast_state *state, PyObject* obj, excepthandler_ty* *out = NULL; return 0; } - if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->lineno, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from excepthandler"); - return 1; + return -1; } else { int res; @@ -10948,12 +15367,12 @@ obj2ast_excepthandler(struct ast_state *state, PyObject* obj, excepthandler_ty* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from excepthandler"); - return 1; + return -1; } else { int res; @@ -10965,8 +15384,8 @@ obj2ast_excepthandler(struct ast_state *state, PyObject* obj, excepthandler_ty* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_lineno, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -10982,8 +15401,8 @@ obj2ast_excepthandler(struct ast_state *state, PyObject* obj, excepthandler_ty* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11002,15 +15421,15 @@ obj2ast_excepthandler(struct ast_state *state, PyObject* obj, excepthandler_ty* tp = state->ExceptHandler_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty type; identifier name; asdl_stmt_seq* body; - if (_PyObject_LookupAttr(obj, state->type, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11026,8 +15445,8 @@ obj2ast_excepthandler(struct ast_state *state, PyObject* obj, excepthandler_ty* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->name, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11043,13 +15462,13 @@ obj2ast_excepthandler(struct ast_state *state, PyObject* obj, excepthandler_ty* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -11090,7 +15509,7 @@ obj2ast_excepthandler(struct ast_state *state, PyObject* obj, excepthandler_ty* PyErr_Format(PyExc_TypeError, "expected some sort of excepthandler, but got %R", obj); failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -11106,13 +15525,13 @@ obj2ast_arguments(struct ast_state *state, PyObject* obj, arguments_ty* out, arg_ty kwarg; asdl_expr_seq* defaults; - if (_PyObject_LookupAttr(obj, state->posonlyargs, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->posonlyargs, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -11144,13 +15563,13 @@ obj2ast_arguments(struct ast_state *state, PyObject* obj, arguments_ty* out, } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->args, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->args, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -11182,8 +15601,8 @@ obj2ast_arguments(struct ast_state *state, PyObject* obj, arguments_ty* out, } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->vararg, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->vararg, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11199,13 +15618,13 @@ obj2ast_arguments(struct ast_state *state, PyObject* obj, arguments_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->kwonlyargs, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->kwonlyargs, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -11237,13 +15656,13 @@ obj2ast_arguments(struct ast_state *state, PyObject* obj, arguments_ty* out, } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->kw_defaults, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->kw_defaults, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -11275,8 +15694,8 @@ obj2ast_arguments(struct ast_state *state, PyObject* obj, arguments_ty* out, } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->kwarg, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->kwarg, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11292,13 +15711,13 @@ obj2ast_arguments(struct ast_state *state, PyObject* obj, arguments_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->defaults, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->defaults, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -11336,7 +15755,7 @@ obj2ast_arguments(struct ast_state *state, PyObject* obj, arguments_ty* out, return 0; failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -11351,12 +15770,12 @@ obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out, PyArena* arena) int end_lineno; int end_col_offset; - if (_PyObject_LookupAttr(obj, state->arg, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->arg, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"arg\" missing from arg"); - return 1; + return -1; } else { int res; @@ -11368,8 +15787,8 @@ obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out, PyArena* arena) if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->annotation, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->annotation, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11385,8 +15804,8 @@ obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out, PyArena* arena) if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->type_comment, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->type_comment, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11402,12 +15821,12 @@ obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out, PyArena* arena) if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->lineno, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from arg"); - return 1; + return -1; } else { int res; @@ -11419,12 +15838,12 @@ obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out, PyArena* arena) if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from arg"); - return 1; + return -1; } else { int res; @@ -11436,8 +15855,8 @@ obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out, PyArena* arena) if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_lineno, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11453,8 +15872,8 @@ obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out, PyArena* arena) if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11476,7 +15895,7 @@ obj2ast_arg(struct ast_state *state, PyObject* obj, arg_ty* out, PyArena* arena) return 0; failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -11491,8 +15910,8 @@ obj2ast_keyword(struct ast_state *state, PyObject* obj, keyword_ty* out, int end_lineno; int end_col_offset; - if (_PyObject_LookupAttr(obj, state->arg, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->arg, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11508,12 +15927,12 @@ obj2ast_keyword(struct ast_state *state, PyObject* obj, keyword_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from keyword"); - return 1; + return -1; } else { int res; @@ -11525,12 +15944,12 @@ obj2ast_keyword(struct ast_state *state, PyObject* obj, keyword_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->lineno, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from keyword"); - return 1; + return -1; } else { int res; @@ -11542,12 +15961,12 @@ obj2ast_keyword(struct ast_state *state, PyObject* obj, keyword_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from keyword"); - return 1; + return -1; } else { int res; @@ -11559,8 +15978,8 @@ obj2ast_keyword(struct ast_state *state, PyObject* obj, keyword_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_lineno, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11576,8 +15995,8 @@ obj2ast_keyword(struct ast_state *state, PyObject* obj, keyword_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11599,7 +16018,7 @@ obj2ast_keyword(struct ast_state *state, PyObject* obj, keyword_ty* out, return 0; failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -11614,12 +16033,12 @@ obj2ast_alias(struct ast_state *state, PyObject* obj, alias_ty* out, PyArena* int end_lineno; int end_col_offset; - if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->name, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"name\" missing from alias"); - return 1; + return -1; } else { int res; @@ -11631,8 +16050,8 @@ obj2ast_alias(struct ast_state *state, PyObject* obj, alias_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->asname, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->asname, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11648,12 +16067,12 @@ obj2ast_alias(struct ast_state *state, PyObject* obj, alias_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->lineno, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from alias"); - return 1; + return -1; } else { int res; @@ -11665,12 +16084,12 @@ obj2ast_alias(struct ast_state *state, PyObject* obj, alias_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from alias"); - return 1; + return -1; } else { int res; @@ -11682,8 +16101,8 @@ obj2ast_alias(struct ast_state *state, PyObject* obj, alias_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_lineno, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11699,8 +16118,8 @@ obj2ast_alias(struct ast_state *state, PyObject* obj, alias_ty* out, PyArena* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11722,7 +16141,7 @@ obj2ast_alias(struct ast_state *state, PyObject* obj, alias_ty* out, PyArena* return 0; failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -11733,12 +16152,12 @@ obj2ast_withitem(struct ast_state *state, PyObject* obj, withitem_ty* out, expr_ty context_expr; expr_ty optional_vars; - if (_PyObject_LookupAttr(obj, state->context_expr, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->context_expr, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"context_expr\" missing from withitem"); - return 1; + return -1; } else { int res; @@ -11750,8 +16169,8 @@ obj2ast_withitem(struct ast_state *state, PyObject* obj, withitem_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->optional_vars, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->optional_vars, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11772,7 +16191,7 @@ obj2ast_withitem(struct ast_state *state, PyObject* obj, withitem_ty* out, return 0; failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -11784,12 +16203,12 @@ obj2ast_match_case(struct ast_state *state, PyObject* obj, match_case_ty* out, expr_ty guard; asdl_stmt_seq* body; - if (_PyObject_LookupAttr(obj, state->pattern, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->pattern, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"pattern\" missing from match_case"); - return 1; + return -1; } else { int res; @@ -11801,8 +16220,8 @@ obj2ast_match_case(struct ast_state *state, PyObject* obj, match_case_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->guard, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->guard, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -11818,13 +16237,13 @@ obj2ast_match_case(struct ast_state *state, PyObject* obj, match_case_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->body, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->body, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -11861,7 +16280,7 @@ obj2ast_match_case(struct ast_state *state, PyObject* obj, match_case_ty* out, return 0; failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -11881,12 +16300,12 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, *out = NULL; return 0; } - if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->lineno, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from pattern"); - return 1; + return -1; } else { int res; @@ -11898,12 +16317,12 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from pattern"); - return 1; + return -1; } else { int res; @@ -11915,12 +16334,12 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_lineno, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"end_lineno\" missing from pattern"); - return 1; + return -1; } else { int res; @@ -11932,12 +16351,12 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"end_col_offset\" missing from pattern"); - return 1; + return -1; } else { int res; @@ -11952,17 +16371,17 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, tp = state->MatchValue_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty value; - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from MatchValue"); - return 1; + return -1; } else { int res; @@ -11982,17 +16401,17 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, tp = state->MatchSingleton_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { constant value; - if (_PyObject_LookupAttr(obj, state->value, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->value, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from MatchSingleton"); - return 1; + return -1; } else { int res; @@ -12012,18 +16431,18 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, tp = state->MatchSequence_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_pattern_seq* patterns; - if (_PyObject_LookupAttr(obj, state->patterns, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->patterns, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -12063,20 +16482,20 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, tp = state->MatchMapping_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_expr_seq* keys; asdl_pattern_seq* patterns; identifier rest; - if (_PyObject_LookupAttr(obj, state->keys, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->keys, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -12108,13 +16527,13 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->patterns, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->patterns, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -12146,8 +16565,8 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->rest, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->rest, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -12171,7 +16590,7 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, tp = state->MatchClass_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { expr_ty cls; @@ -12179,12 +16598,12 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, asdl_identifier_seq* kwd_attrs; asdl_pattern_seq* kwd_patterns; - if (_PyObject_LookupAttr(obj, state->cls, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->cls, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"cls\" missing from MatchClass"); - return 1; + return -1; } else { int res; @@ -12196,13 +16615,13 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->patterns, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->patterns, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -12234,13 +16653,13 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->kwd_attrs, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->kwd_attrs, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -12272,13 +16691,13 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, } Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->kwd_patterns, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->kwd_patterns, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -12319,13 +16738,13 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, tp = state->MatchStar_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { identifier name; - if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->name, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -12349,14 +16768,14 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, tp = state->MatchAs_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { pattern_ty pattern; identifier name; - if (_PyObject_LookupAttr(obj, state->pattern, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->pattern, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -12372,8 +16791,8 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->name, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -12397,18 +16816,18 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, tp = state->MatchOr_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { asdl_pattern_seq* patterns; - if (_PyObject_LookupAttr(obj, state->patterns, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->patterns, &tmp) < 0) { + return -1; } if (tmp == NULL) { tmp = PyList_New(0); if (tmp == NULL) { - return 1; + return -1; } } { @@ -12449,7 +16868,7 @@ obj2ast_pattern(struct ast_state *state, PyObject* obj, pattern_ty* out, PyErr_Format(PyExc_TypeError, "expected some sort of pattern, but got %R", obj); failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -12468,18 +16887,18 @@ obj2ast_type_ignore(struct ast_state *state, PyObject* obj, type_ignore_ty* tp = state->TypeIgnore_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { int lineno; string tag; - if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->lineno, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from TypeIgnore"); - return 1; + return -1; } else { int res; @@ -12491,12 +16910,12 @@ obj2ast_type_ignore(struct ast_state *state, PyObject* obj, type_ignore_ty* if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->tag, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->tag, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"tag\" missing from TypeIgnore"); - return 1; + return -1; } else { int res; @@ -12516,7 +16935,7 @@ obj2ast_type_ignore(struct ast_state *state, PyObject* obj, type_ignore_ty* PyErr_Format(PyExc_TypeError, "expected some sort of type_ignore, but got %R", obj); failed: Py_XDECREF(tmp); - return 1; + return -1; } int @@ -12536,12 +16955,12 @@ obj2ast_type_param(struct ast_state *state, PyObject* obj, type_param_ty* out, *out = NULL; return 0; } - if (_PyObject_LookupAttr(obj, state->lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->lineno, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from type_param"); - return 1; + return -1; } else { int res; @@ -12553,12 +16972,12 @@ obj2ast_type_param(struct ast_state *state, PyObject* obj, type_param_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from type_param"); - return 1; + return -1; } else { int res; @@ -12570,12 +16989,12 @@ obj2ast_type_param(struct ast_state *state, PyObject* obj, type_param_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_lineno, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_lineno, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"end_lineno\" missing from type_param"); - return 1; + return -1; } else { int res; @@ -12587,12 +17006,12 @@ obj2ast_type_param(struct ast_state *state, PyObject* obj, type_param_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->end_col_offset, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->end_col_offset, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"end_col_offset\" missing from type_param"); - return 1; + return -1; } else { int res; @@ -12607,18 +17026,19 @@ obj2ast_type_param(struct ast_state *state, PyObject* obj, type_param_ty* out, tp = state->TypeVar_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { identifier name; expr_ty bound; + expr_ty default_value; - if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->name, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"name\" missing from TypeVar"); - return 1; + return -1; } else { int res; @@ -12630,8 +17050,8 @@ obj2ast_type_param(struct ast_state *state, PyObject* obj, type_param_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - if (_PyObject_LookupAttr(obj, state->bound, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->bound, &tmp) < 0) { + return -1; } if (tmp == NULL || tmp == Py_None) { Py_CLEAR(tmp); @@ -12647,25 +17067,43 @@ obj2ast_type_param(struct ast_state *state, PyObject* obj, type_param_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - *out = _PyAST_TypeVar(name, bound, lineno, col_offset, end_lineno, - end_col_offset, arena); + if (PyObject_GetOptionalAttr(obj, state->default_value, &tmp) < 0) { + return -1; + } + if (tmp == NULL || tmp == Py_None) { + Py_CLEAR(tmp); + default_value = NULL; + } + else { + int res; + if (_Py_EnterRecursiveCall(" while traversing 'TypeVar' node")) { + goto failed; + } + res = obj2ast_expr(state, tmp, &default_value, arena); + _Py_LeaveRecursiveCall(); + if (res != 0) goto failed; + Py_CLEAR(tmp); + } + *out = _PyAST_TypeVar(name, bound, default_value, lineno, col_offset, + end_lineno, end_col_offset, arena); if (*out == NULL) goto failed; return 0; } tp = state->ParamSpec_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { identifier name; + expr_ty default_value; - if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->name, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"name\" missing from ParamSpec"); - return 1; + return -1; } else { int res; @@ -12677,25 +17115,43 @@ obj2ast_type_param(struct ast_state *state, PyObject* obj, type_param_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - *out = _PyAST_ParamSpec(name, lineno, col_offset, end_lineno, - end_col_offset, arena); + if (PyObject_GetOptionalAttr(obj, state->default_value, &tmp) < 0) { + return -1; + } + if (tmp == NULL || tmp == Py_None) { + Py_CLEAR(tmp); + default_value = NULL; + } + else { + int res; + if (_Py_EnterRecursiveCall(" while traversing 'ParamSpec' node")) { + goto failed; + } + res = obj2ast_expr(state, tmp, &default_value, arena); + _Py_LeaveRecursiveCall(); + if (res != 0) goto failed; + Py_CLEAR(tmp); + } + *out = _PyAST_ParamSpec(name, default_value, lineno, col_offset, + end_lineno, end_col_offset, arena); if (*out == NULL) goto failed; return 0; } tp = state->TypeVarTuple_type; isinstance = PyObject_IsInstance(obj, tp); if (isinstance == -1) { - return 1; + return -1; } if (isinstance) { identifier name; + expr_ty default_value; - if (_PyObject_LookupAttr(obj, state->name, &tmp) < 0) { - return 1; + if (PyObject_GetOptionalAttr(obj, state->name, &tmp) < 0) { + return -1; } if (tmp == NULL) { PyErr_SetString(PyExc_TypeError, "required field \"name\" missing from TypeVarTuple"); - return 1; + return -1; } else { int res; @@ -12707,8 +17163,25 @@ obj2ast_type_param(struct ast_state *state, PyObject* obj, type_param_ty* out, if (res != 0) goto failed; Py_CLEAR(tmp); } - *out = _PyAST_TypeVarTuple(name, lineno, col_offset, end_lineno, - end_col_offset, arena); + if (PyObject_GetOptionalAttr(obj, state->default_value, &tmp) < 0) { + return -1; + } + if (tmp == NULL || tmp == Py_None) { + Py_CLEAR(tmp); + default_value = NULL; + } + else { + int res; + if (_Py_EnterRecursiveCall(" while traversing 'TypeVarTuple' node")) { + goto failed; + } + res = obj2ast_expr(state, tmp, &default_value, arena); + _Py_LeaveRecursiveCall(); + if (res != 0) goto failed; + Py_CLEAR(tmp); + } + *out = _PyAST_TypeVarTuple(name, default_value, lineno, col_offset, + end_lineno, end_col_offset, arena); if (*out == NULL) goto failed; return 0; } @@ -12716,7 +17189,7 @@ obj2ast_type_param(struct ast_state *state, PyObject* obj, type_param_ty* out, PyErr_Format(PyExc_TypeError, "expected some sort of type_param, but got %R", obj); failed: Py_XDECREF(tmp); - return 1; + return -1; } @@ -12739,6 +17212,9 @@ astmodule_exec(PyObject *m) if (PyModule_AddIntMacro(m, PyCF_TYPE_COMMENTS) < 0) { return -1; } + if (PyModule_AddIntMacro(m, PyCF_OPTIMIZED_AST) < 0) { + return -1; + } if (PyModule_AddObjectRef(m, "mod", state->mod_type) < 0) { return -1; } @@ -13126,6 +17602,7 @@ astmodule_exec(PyObject *m) static PyModuleDef_Slot astmodule_slots[] = { {Py_mod_exec, astmodule_exec}, {Py_mod_multiple_interpreters, Py_MOD_PER_INTERPRETER_GIL_SUPPORTED}, + {Py_mod_gil, Py_MOD_GIL_NOT_USED}, {0, NULL} }; @@ -13158,8 +17635,8 @@ PyObject* PyAST_mod2obj(mod_ty t) return NULL; } struct validator vstate; - vstate.recursion_limit = C_RECURSION_LIMIT; - int recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining; + vstate.recursion_limit = Py_C_RECURSION_LIMIT; + int recursion_depth = Py_C_RECURSION_LIMIT - tstate->c_recursion_remaining; starting_recursion_depth = recursion_depth; vstate.recursion_depth = starting_recursion_depth; diff --git a/contrib/tools/python3/Python/Python-tokenize.c b/contrib/tools/python3/Python/Python-tokenize.c index baad836d7a3..34b4445be27 100644 --- a/contrib/tools/python3/Python/Python-tokenize.c +++ b/contrib/tools/python3/Python/Python-tokenize.c @@ -1,8 +1,10 @@ #include "Python.h" #include "errcode.h" -#include "../Parser/tokenizer.h" -#include "../Parser/pegen.h" // _PyPegen_byte_offset_to_character_offset() -#include "../Parser/pegen.h" // _PyPegen_byte_offset_to_character_offset() +#include "internal/pycore_critical_section.h" // Py_BEGIN_CRITICAL_SECTION +#include "../Parser/lexer/state.h" +#include "../Parser/lexer/lexer.h" +#include "../Parser/tokenizer/tokenizer.h" +#include "../Parser/pegen.h" // _PyPegen_byte_offset_to_character_offset() static struct PyModuleDef _tokenizemodule; @@ -83,14 +85,16 @@ tokenizeriter_new_impl(PyTypeObject *type, PyObject *readline, } static int -_tokenizer_error(struct tok_state *tok) +_tokenizer_error(tokenizeriterobject *it) { + _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(it); if (PyErr_Occurred()) { return -1; } const char *msg = NULL; PyObject* errtype = PyExc_SyntaxError; + struct tok_state *tok = it->tok; switch (tok->done) { case E_TOKEN: msg = "invalid token"; @@ -176,17 +180,78 @@ exit: return result; } +static PyObject * +_get_current_line(tokenizeriterobject *it, const char *line_start, Py_ssize_t size, + int *line_changed) +{ + _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(it); + PyObject *line; + if (it->tok->lineno != it->last_lineno) { + // Line has changed since last token, so we fetch the new line and cache it + // in the iter object. + Py_XDECREF(it->last_line); + line = PyUnicode_DecodeUTF8(line_start, size, "replace"); + it->last_line = line; + it->byte_col_offset_diff = 0; + } + else { + line = it->last_line; + *line_changed = 0; + } + return line; +} + +static void +_get_col_offsets(tokenizeriterobject *it, struct token token, const char *line_start, + PyObject *line, int line_changed, Py_ssize_t lineno, Py_ssize_t end_lineno, + Py_ssize_t *col_offset, Py_ssize_t *end_col_offset) +{ + _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(it); + Py_ssize_t byte_offset = -1; + if (token.start != NULL && token.start >= line_start) { + byte_offset = token.start - line_start; + if (line_changed) { + *col_offset = _PyPegen_byte_offset_to_character_offset_line(line, 0, byte_offset); + it->byte_col_offset_diff = byte_offset - *col_offset; + } + else { + *col_offset = byte_offset - it->byte_col_offset_diff; + } + } + + if (token.end != NULL && token.end >= it->tok->line_start) { + Py_ssize_t end_byte_offset = token.end - it->tok->line_start; + if (lineno == end_lineno) { + // If the whole token is at the same line, we can just use the token.start + // buffer for figuring out the new column offset, since using line is not + // performant for very long lines. + Py_ssize_t token_col_offset = _PyPegen_byte_offset_to_character_offset_line(line, byte_offset, end_byte_offset); + *end_col_offset = *col_offset + token_col_offset; + it->byte_col_offset_diff += token.end - token.start - token_col_offset; + } + else { + *end_col_offset = _PyPegen_byte_offset_to_character_offset_raw(it->tok->line_start, end_byte_offset); + it->byte_col_offset_diff += end_byte_offset - *end_col_offset; + } + } + it->last_lineno = lineno; + it->last_end_lineno = end_lineno; +} + static PyObject * tokenizeriter_next(tokenizeriterobject *it) { PyObject* result = NULL; + + Py_BEGIN_CRITICAL_SECTION(it); + struct token token; _PyToken_Init(&token); int type = _PyTokenizer_Get(it->tok, &token); if (type == ERRORTOKEN) { if(!PyErr_Occurred()) { - _tokenizer_error(it->tok); + _tokenizer_error(it); assert(PyErr_Occurred()); } goto exit; @@ -223,18 +288,7 @@ tokenizeriter_next(tokenizeriterobject *it) size -= 1; } - if (it->tok->lineno != it->last_lineno) { - // Line has changed since last token, so we fetch the new line and cache it - // in the iter object. - Py_XDECREF(it->last_line); - line = PyUnicode_DecodeUTF8(line_start, size, "replace"); - it->last_line = line; - it->byte_col_offset_diff = 0; - } else { - // Line hasn't changed so we reuse the cached one. - line = it->last_line; - line_changed = 0; - } + line = _get_current_line(it, line_start, size, &line_changed); } if (line == NULL) { Py_DECREF(str); @@ -243,36 +297,10 @@ tokenizeriter_next(tokenizeriterobject *it) Py_ssize_t lineno = ISSTRINGLIT(type) ? it->tok->first_lineno : it->tok->lineno; Py_ssize_t end_lineno = it->tok->lineno; - it->last_lineno = lineno; - it->last_end_lineno = end_lineno; - Py_ssize_t col_offset = -1; Py_ssize_t end_col_offset = -1; - Py_ssize_t byte_offset = -1; - if (token.start != NULL && token.start >= line_start) { - byte_offset = token.start - line_start; - if (line_changed) { - col_offset = _PyPegen_byte_offset_to_character_offset_line(line, 0, byte_offset); - it->byte_col_offset_diff = byte_offset - col_offset; - } - else { - col_offset = byte_offset - it->byte_col_offset_diff; - } - } - if (token.end != NULL && token.end >= it->tok->line_start) { - Py_ssize_t end_byte_offset = token.end - it->tok->line_start; - if (lineno == end_lineno) { - // If the whole token is at the same line, we can just use the token.start - // buffer for figuring out the new column offset, since using line is not - // performant for very long lines. - Py_ssize_t token_col_offset = _PyPegen_byte_offset_to_character_offset_line(line, byte_offset, end_byte_offset); - end_col_offset = col_offset + token_col_offset; - it->byte_col_offset_diff += token.end - token.start - token_col_offset; - } else { - end_col_offset = _PyPegen_byte_offset_to_character_offset_raw(it->tok->line_start, end_byte_offset); - it->byte_col_offset_diff += end_byte_offset - end_col_offset; - } - } + _get_col_offsets(it, token, line_start, line, line_changed, + lineno, end_lineno, &col_offset, &end_col_offset); if (it->tok->tok_extra_tokens) { if (is_trailing_token) { @@ -284,9 +312,6 @@ tokenizeriter_next(tokenizeriterobject *it) if (type > DEDENT && type < OP) { type = OP; } - else if (type == ASYNC || type == AWAIT) { - type = NAME; - } else if (type == NEWLINE) { Py_DECREF(str); if (!it->tok->implicit_newline) { @@ -317,6 +342,8 @@ exit: if (type == ENDMARKER) { it->done = 1; } + + Py_END_CRITICAL_SECTION(); return result; } @@ -372,6 +399,7 @@ static PyMethodDef tokenize_methods[] = { static PyModuleDef_Slot tokenizemodule_slots[] = { {Py_mod_exec, tokenizemodule_exec}, {Py_mod_multiple_interpreters, Py_MOD_PER_INTERPRETER_GIL_SUPPORTED}, + {Py_mod_gil, Py_MOD_GIL_NOT_USED}, {0, NULL} }; diff --git a/contrib/tools/python3/Python/_warnings.c b/contrib/tools/python3/Python/_warnings.c index b726c2bf127..9ed15c948f4 100644 --- a/contrib/tools/python3/Python/_warnings.c +++ b/contrib/tools/python3/Python/_warnings.c @@ -1,11 +1,14 @@ #include "Python.h" -#include "pycore_initconfig.h" +#include "pycore_critical_section.h" // Py_BEGIN_CRITICAL_SECTION_MUT() #include "pycore_interp.h" // PyInterpreterState.warnings #include "pycore_long.h" // _PyLong_GetZero() -#include "pycore_pyerrors.h" +#include "pycore_pyerrors.h" // _PyErr_Occurred() +#include "pycore_pylifecycle.h" // _Py_IsInterpreterFinalizing() #include "pycore_pystate.h" // _PyThreadState_GET() -#include "pycore_frame.h" #include "pycore_sysmodule.h" // _PySys_GetOptionalAttr() +#include "pycore_traceback.h" // _Py_DisplaySourceLine() + +#include #include "clinic/_warnings.c.h" @@ -224,7 +227,7 @@ get_warnings_attr(PyInterpreterState *interp, PyObject *attr, int try_import) return NULL; } - (void)_PyObject_LookupAttr(warnings_module, attr, &obj); + (void)PyObject_GetOptionalAttr(warnings_module, attr, &obj); Py_DECREF(warnings_module); return obj; } @@ -233,14 +236,12 @@ get_warnings_attr(PyInterpreterState *interp, PyObject *attr, int try_import) static PyObject * get_once_registry(PyInterpreterState *interp) { - PyObject *registry; - WarningsState *st = warnings_get_state(interp); - if (st == NULL) { - return NULL; - } + assert(st != NULL); + + _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED(&st->mutex); - registry = GET_WARNINGS_ATTR(interp, onceregistry, 0); + PyObject *registry = GET_WARNINGS_ATTR(interp, onceregistry, 0); if (registry == NULL) { if (PyErr_Occurred()) return NULL; @@ -263,14 +264,12 @@ get_once_registry(PyInterpreterState *interp) static PyObject * get_default_action(PyInterpreterState *interp) { - PyObject *default_action; - WarningsState *st = warnings_get_state(interp); - if (st == NULL) { - return NULL; - } + assert(st != NULL); - default_action = GET_WARNINGS_ATTR(interp, defaultaction, 0); + _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED(&st->mutex); + + PyObject *default_action = GET_WARNINGS_ATTR(interp, defaultaction, 0); if (default_action == NULL) { if (PyErr_Occurred()) { return NULL; @@ -297,15 +296,12 @@ get_filter(PyInterpreterState *interp, PyObject *category, PyObject *text, Py_ssize_t lineno, PyObject *module, PyObject **item) { - PyObject *action; - Py_ssize_t i; - PyObject *warnings_filters; WarningsState *st = warnings_get_state(interp); - if (st == NULL) { - return NULL; - } + assert(st != NULL); + + _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED(&st->mutex); - warnings_filters = GET_WARNINGS_ATTR(interp, filters, 0); + PyObject *warnings_filters = GET_WARNINGS_ATTR(interp, filters, 0); if (warnings_filters == NULL) { if (PyErr_Occurred()) return NULL; @@ -322,7 +318,7 @@ get_filter(PyInterpreterState *interp, PyObject *category, } /* WarningsState.filters could change while we are iterating over it. */ - for (i = 0; i < PyList_GET_SIZE(filters); i++) { + for (Py_ssize_t i = 0; i < PyList_GET_SIZE(filters); i++) { PyObject *tmp_item, *action, *msg, *cat, *mod, *ln_obj; Py_ssize_t ln; int is_subclass, good_msg, good_mod; @@ -382,7 +378,7 @@ get_filter(PyInterpreterState *interp, PyObject *category, Py_DECREF(tmp_item); } - action = get_default_action(interp); + PyObject *action = get_default_action(interp); if (action != NULL) { *item = Py_NewRef(Py_None); return action; @@ -396,23 +392,26 @@ static int already_warned(PyInterpreterState *interp, PyObject *registry, PyObject *key, int should_set) { - PyObject *version_obj, *already_warned; + PyObject *already_warned; if (key == NULL) return -1; WarningsState *st = warnings_get_state(interp); - if (st == NULL) { + assert(st != NULL); + _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED(&st->mutex); + + PyObject *version_obj; + if (PyDict_GetItemRef(registry, &_Py_ID(version), &version_obj) < 0) { return -1; } - version_obj = _PyDict_GetItemWithError(registry, &_Py_ID(version)); - if (version_obj == NULL + bool should_update_version = ( + version_obj == NULL || !PyLong_CheckExact(version_obj) - || PyLong_AsLong(version_obj) != st->filters_version) - { - if (PyErr_Occurred()) { - return -1; - } + || PyLong_AsLong(version_obj) != st->filters_version + ); + Py_XDECREF(version_obj); + if (should_update_version) { PyDict_Clear(registry); version_obj = PyLong_FromLong(st->filters_version); if (version_obj == NULL) @@ -424,15 +423,15 @@ already_warned(PyInterpreterState *interp, PyObject *registry, PyObject *key, Py_DECREF(version_obj); } else { - already_warned = PyDict_GetItemWithError(registry, key); + if (PyDict_GetItemRef(registry, key, &already_warned) < 0) { + return -1; + } if (already_warned != NULL) { int rc = PyObject_IsTrue(already_warned); + Py_DECREF(already_warned); if (rc != 0) return rc; } - else if (PyErr_Occurred()) { - return -1; - } } /* This warning wasn't found in the registry, set it. */ @@ -534,9 +533,6 @@ show_warning(PyThreadState *tstate, PyObject *filename, int lineno, Py_UCS4 ch; PyObject *truncated; - if (PyUnicode_READY(sourceline) < 1) - goto error; - kind = PyUnicode_KIND(sourceline); data = PyUnicode_DATA(sourceline); len = PyUnicode_GET_LENGTH(sourceline); @@ -573,10 +569,9 @@ call_show_warning(PyThreadState *tstate, PyObject *category, PyObject *show_fn, *msg, *res, *warnmsg_cls = NULL; PyInterpreterState *interp = tstate->interp; - /* If the source parameter is set, try to get the Python implementation. - The Python implementation is able to log the traceback where the source + /* The Python implementation is able to log the traceback where the source was allocated, whereas the C implementation doesn't. */ - show_fn = GET_WARNINGS_ATTR(interp, _showwarnmsg, source != NULL); + show_fn = GET_WARNINGS_ATTR(interp, _showwarnmsg, 1); if (show_fn == NULL) { if (PyErr_Occurred()) return -1; @@ -902,12 +897,12 @@ setup_context(Py_ssize_t stack_level, if (f == NULL) { globals = interp->sysdict; - *filename = PyUnicode_FromString("sys"); - *lineno = 1; + *filename = PyUnicode_FromString(""); + *lineno = 0; } else { globals = f->f_frame->f_globals; - *filename = Py_NewRef(f->f_frame->f_code->co_filename); + *filename = Py_NewRef(_PyFrame_GetCode(f->f_frame)->co_filename); *lineno = PyFrame_GetLineNumber(f); Py_DECREF(f); } @@ -917,13 +912,12 @@ setup_context(Py_ssize_t stack_level, /* Setup registry. */ assert(globals != NULL); assert(PyDict_Check(globals)); - *registry = _PyDict_GetItemWithError(globals, &_Py_ID(__warningregistry__)); + int rc = PyDict_GetItemRef(globals, &_Py_ID(__warningregistry__), + registry); + if (rc < 0) { + goto handle_error; + } if (*registry == NULL) { - int rc; - - if (_PyErr_Occurred(tstate)) { - goto handle_error; - } *registry = PyDict_New(); if (*registry == NULL) goto handle_error; @@ -932,21 +926,21 @@ setup_context(Py_ssize_t stack_level, if (rc < 0) goto handle_error; } - else - Py_INCREF(*registry); /* Setup module. */ - *module = _PyDict_GetItemWithError(globals, &_Py_ID(__name__)); - if (*module == Py_None || (*module != NULL && PyUnicode_Check(*module))) { - Py_INCREF(*module); - } - else if (_PyErr_Occurred(tstate)) { + rc = PyDict_GetItemRef(globals, &_Py_ID(__name__), module); + if (rc < 0) { goto handle_error; } - else { - *module = PyUnicode_FromString(""); - if (*module == NULL) - goto handle_error; + if (rc > 0) { + if (Py_IsNone(*module) || PyUnicode_Check(*module)) { + return 1; + } + Py_DECREF(*module); + } + *module = PyUnicode_FromString(""); + if (*module == NULL) { + goto handle_error; } return 1; @@ -1003,8 +997,15 @@ do_warn(PyObject *message, PyObject *category, Py_ssize_t stack_level, &filename, &lineno, &module, ®istry)) return NULL; +#ifdef Py_GIL_DISABLED + WarningsState *st = warnings_get_state(tstate->interp); + assert(st != NULL); +#endif + + Py_BEGIN_CRITICAL_SECTION_MUT(&st->mutex); res = warn_explicit(tstate, category, message, filename, lineno, module, registry, NULL, source); + Py_END_CRITICAL_SECTION(); Py_DECREF(filename); Py_DECREF(registry); Py_DECREF(module); @@ -1069,15 +1070,15 @@ get_source_line(PyInterpreterState *interp, PyObject *module_globals, int lineno return NULL; } - module_name = _PyDict_GetItemWithError(module_globals, &_Py_ID(__name__)); - if (!module_name) { + int rc = PyDict_GetItemRef(module_globals, &_Py_ID(__name__), + &module_name); + if (rc < 0 || rc == 0) { Py_DECREF(loader); return NULL; } - Py_INCREF(module_name); /* Make sure the loader implements the optional get_source() method. */ - (void)_PyObject_LookupAttr(loader, &_Py_ID(get_source), &get_source); + (void)PyObject_GetOptionalAttr(loader, &_Py_ID(get_source), &get_source); Py_DECREF(loader); if (!get_source) { Py_DECREF(module_name); @@ -1152,8 +1153,16 @@ warnings_warn_explicit_impl(PyObject *module, PyObject *message, return NULL; } } + +#ifdef Py_GIL_DISABLED + WarningsState *st = warnings_get_state(tstate->interp); + assert(st != NULL); +#endif + + Py_BEGIN_CRITICAL_SECTION_MUT(&st->mutex); returned = warn_explicit(tstate, category, message, filename, lineno, mod, registry, source_line, sourceobj); + Py_END_CRITICAL_SECTION(); Py_XDECREF(source_line); return returned; } @@ -1171,11 +1180,14 @@ warnings_filters_mutated_impl(PyObject *module) if (interp == NULL) { return NULL; } + WarningsState *st = warnings_get_state(interp); - if (st == NULL) { - return NULL; - } + assert(st != NULL); + + Py_BEGIN_CRITICAL_SECTION_MUT(&st->mutex); st->filters_version++; + Py_END_CRITICAL_SECTION(); + Py_RETURN_NONE; } @@ -1293,8 +1305,16 @@ PyErr_WarnExplicitObject(PyObject *category, PyObject *message, if (tstate == NULL) { return -1; } + +#ifdef Py_GIL_DISABLED + WarningsState *st = warnings_get_state(tstate->interp); + assert(st != NULL); +#endif + + Py_BEGIN_CRITICAL_SECTION_MUT(&st->mutex); res = warn_explicit(tstate, category, message, filename, lineno, module, registry, NULL, NULL); + Py_END_CRITICAL_SECTION(); if (res == NULL) return -1; Py_DECREF(res); @@ -1359,8 +1379,15 @@ PyErr_WarnExplicitFormat(PyObject *category, PyObject *res; PyThreadState *tstate = get_current_tstate(); if (tstate != NULL) { +#ifdef Py_GIL_DISABLED + WarningsState *st = warnings_get_state(tstate->interp); + assert(st != NULL); +#endif + + Py_BEGIN_CRITICAL_SECTION_MUT(&st->mutex); res = warn_explicit(tstate, category, message, filename, lineno, module, registry, NULL, NULL); + Py_END_CRITICAL_SECTION(); Py_DECREF(message); if (res != NULL) { Py_DECREF(res); @@ -1375,6 +1402,20 @@ exit: return ret; } +void +_PyErr_WarnUnawaitedAgenMethod(PyAsyncGenObject *agen, PyObject *method) +{ + PyObject *exc = PyErr_GetRaisedException(); + if (_PyErr_WarnFormat((PyObject *)agen, PyExc_RuntimeWarning, 1, + "coroutine method %R of %R was never awaited", + method, agen->ag_qualname) < 0) + { + PyErr_WriteUnraisable((PyObject *)agen); + } + PyErr_SetRaisedException(exc); +} + + void _PyErr_WarnUnawaitedCoroutine(PyObject *coro) { @@ -1460,6 +1501,7 @@ warnings_module_exec(PyObject *module) static PyModuleDef_Slot warnings_slots[] = { {Py_mod_exec, warnings_module_exec}, {Py_mod_multiple_interpreters, Py_MOD_PER_INTERPRETER_GIL_SUPPORTED}, + {Py_mod_gil, Py_MOD_GIL_NOT_USED}, {0, NULL} }; diff --git a/contrib/tools/python3/Python/asm_trampoline.S b/contrib/tools/python3/Python/asm_trampoline.S index 341d0bbe51f..a14e68c0e81 100644 --- a/contrib/tools/python3/Python/asm_trampoline.S +++ b/contrib/tools/python3/Python/asm_trampoline.S @@ -12,9 +12,10 @@ _Py_trampoline_func_start: #if defined(__CET__) && (__CET__ & 1) endbr64 #endif - sub $8, %rsp - call *%rcx - add $8, %rsp + push %rbp + mov %rsp, %rbp + call *%rcx + pop %rbp ret #endif // __x86_64__ #if defined(__aarch64__) && defined(__AARCH64EL__) && !defined(__ILP32__) @@ -25,6 +26,14 @@ _Py_trampoline_func_start: blr x3 ldp x29, x30, [sp], 16 ret +#endif +#ifdef __riscv + addi sp,sp,-16 + sd ra,8(sp) + jalr a3 + ld ra,8(sp) + addi sp,sp,16 + jr ra #endif .globl _Py_trampoline_func_end _Py_trampoline_func_end: diff --git a/contrib/tools/python3/Python/assemble.c b/contrib/tools/python3/Python/assemble.c index 6a68482c36e..35453277dd8 100644 --- a/contrib/tools/python3/Python/assemble.c +++ b/contrib/tools/python3/Python/assemble.c @@ -1,8 +1,10 @@ #include "Python.h" -#include "pycore_code.h" // write_location_entry_start() +#include "pycore_code.h" // write_location_entry_start() #include "pycore_compile.h" -#include "pycore_opcode.h" // _PyOpcode_Caches[] and opcode category macros -#include "pycore_pymem.h" // _PyMem_IsPtrFreed() +#include "pycore_instruction_sequence.h" +#include "pycore_opcode_utils.h" // IS_BACKWARDS_JUMP_OPCODE +#include "pycore_opcode_metadata.h" // is_pseudo_target, _PyOpcode_Caches +#include "pycore_symtable.h" // _Py_SourceLocation #include @@ -16,13 +18,13 @@ #define ERROR -1 #define RETURN_IF_ERROR(X) \ - if ((X) == -1) { \ + if ((X) < 0) { \ return ERROR; \ } -typedef _PyCompilerSrcLocation location; -typedef _PyCompile_Instruction instruction; -typedef _PyCompile_InstructionSequence instr_sequence; +typedef _Py_SourceLocation location; +typedef _PyInstruction instruction; +typedef _PyInstructionSequence instr_sequence; static inline bool same_location(location a, location b) @@ -33,6 +35,18 @@ same_location(location a, location b) a.end_col_offset == b.end_col_offset; } +static int +instr_size(instruction *instr) +{ + int opcode = instr->i_opcode; + int oparg = instr->i_oparg; + assert(!IS_PSEUDO_INSTR(opcode)); + assert(OPCODE_HAS_ARG(opcode) || oparg == 0); + int extended_args = (0xFFFFFF < oparg) + (0xFFFF < oparg) + (0xFF < oparg); + int caches = _PyOpcode_Caches[opcode]; + return extended_args + 1 + caches; +} + struct assembler { PyObject *a_bytecode; /* bytes containing bytecode */ int a_offset; /* offset into bytecode */ @@ -117,7 +131,8 @@ assemble_emit_exception_table_item(struct assembler *a, int value, int msb) static int assemble_emit_exception_table_entry(struct assembler *a, int start, int end, - _PyCompile_ExceptHandlerInfo *handler) + int handler_offset, + _PyExceptHandlerInfo *handler) { Py_ssize_t len = PyBytes_GET_SIZE(a->a_except_table); if (a->a_except_table_off + MAX_SIZE_OF_ENTRY >= len) { @@ -125,7 +140,7 @@ assemble_emit_exception_table_entry(struct assembler *a, int start, int end, } int size = end-start; assert(end > start); - int target = handler->h_offset; + int target = handler_offset; int depth = handler->h_startdepth - 1; if (handler->h_preserve_lasti > 0) { depth -= 1; @@ -143,24 +158,31 @@ static int assemble_exception_table(struct assembler *a, instr_sequence *instrs) { int ioffset = 0; - _PyCompile_ExceptHandlerInfo handler; - handler.h_offset = -1; + _PyExceptHandlerInfo handler; + handler.h_label = -1; + handler.h_startdepth = -1; handler.h_preserve_lasti = -1; int start = -1; for (int i = 0; i < instrs->s_used; i++) { instruction *instr = &instrs->s_instrs[i]; - if (instr->i_except_handler_info.h_offset != handler.h_offset) { - if (handler.h_offset >= 0) { + if (instr->i_except_handler_info.h_label != handler.h_label) { + if (handler.h_label >= 0) { + int handler_offset = instrs->s_instrs[handler.h_label].i_offset; RETURN_IF_ERROR( - assemble_emit_exception_table_entry(a, start, ioffset, &handler)); + assemble_emit_exception_table_entry(a, start, ioffset, + handler_offset, + &handler)); } start = ioffset; handler = instr->i_except_handler_info; } - ioffset += _PyCompile_InstrSize(instr->i_opcode, instr->i_oparg); + ioffset += instr_size(instr); } - if (handler.h_offset >= 0) { - RETURN_IF_ERROR(assemble_emit_exception_table_entry(a, start, ioffset, &handler)); + if (handler.h_label >= 0) { + int handler_offset = instrs->s_instrs[handler.h_label].i_offset; + RETURN_IF_ERROR(assemble_emit_exception_table_entry(a, start, ioffset, + handler_offset, + &handler)); } return SUCCESS; } @@ -325,7 +347,7 @@ assemble_location_info(struct assembler *a, instr_sequence *instrs, loc = instr->i_loc; size = 0; } - size += _PyCompile_InstrSize(instr->i_opcode, instr->i_oparg); + size += instr_size(instr); } RETURN_IF_ERROR(assemble_emit_location(a, loc, size)); return SUCCESS; @@ -335,9 +357,9 @@ static void write_instr(_Py_CODEUNIT *codestr, instruction *instr, int ilen) { int opcode = instr->i_opcode; - assert(!IS_PSEUDO_OPCODE(opcode)); + assert(!IS_PSEUDO_INSTR(opcode)); int oparg = instr->i_oparg; - assert(HAS_ARG(opcode) || oparg == 0); + assert(OPCODE_HAS_ARG(opcode) || oparg == 0); int caches = _PyOpcode_Caches[opcode]; switch (ilen - caches) { case 4: @@ -381,7 +403,7 @@ assemble_emit_instr(struct assembler *a, instruction *instr) Py_ssize_t len = PyBytes_GET_SIZE(a->a_bytecode); _Py_CODEUNIT *code; - int size = _PyCompile_InstrSize(instr->i_opcode, instr->i_oparg); + int size = instr_size(instr); if (a->a_offset + size >= len / (int)sizeof(_Py_CODEUNIT)) { if (len > PY_SSIZE_T_MAX / 2) { return ERROR; @@ -424,13 +446,17 @@ static PyObject * dict_keys_inorder(PyObject *dict, Py_ssize_t offset) { PyObject *tuple, *k, *v; - Py_ssize_t i, pos = 0, size = PyDict_GET_SIZE(dict); + Py_ssize_t pos = 0, size = PyDict_GET_SIZE(dict); tuple = PyTuple_New(size); if (tuple == NULL) return NULL; while (PyDict_Next(dict, &pos, &k, &v)) { - i = PyLong_AS_LONG(v); + Py_ssize_t i = PyLong_AsSsize_t(v); + if (i == -1 && PyErr_Occurred()) { + Py_DECREF(tuple); + return NULL; + } assert((i - offset) < size); assert((i - offset) >= 0); PyTuple_SET_ITEM(tuple, i - offset, Py_NewRef(k)); @@ -442,52 +468,76 @@ dict_keys_inorder(PyObject *dict, Py_ssize_t offset) extern void _Py_set_localsplus_info(int, PyObject *, unsigned char, PyObject *, PyObject *); -static void +static int compute_localsplus_info(_PyCompile_CodeUnitMetadata *umd, int nlocalsplus, PyObject *names, PyObject *kinds) { PyObject *k, *v; Py_ssize_t pos = 0; while (PyDict_Next(umd->u_varnames, &pos, &k, &v)) { - int offset = (int)PyLong_AS_LONG(v); + int offset = PyLong_AsInt(v); + if (offset == -1 && PyErr_Occurred()) { + return ERROR; + } assert(offset >= 0); assert(offset < nlocalsplus); + // For now we do not distinguish arg kinds. _PyLocals_Kind kind = CO_FAST_LOCAL; - if (PyDict_Contains(umd->u_fasthidden, k)) { + int has_key = PyDict_Contains(umd->u_fasthidden, k); + RETURN_IF_ERROR(has_key); + if (has_key) { kind |= CO_FAST_HIDDEN; } - if (PyDict_GetItem(umd->u_cellvars, k) != NULL) { + + has_key = PyDict_Contains(umd->u_cellvars, k); + RETURN_IF_ERROR(has_key); + if (has_key) { kind |= CO_FAST_CELL; } + _Py_set_localsplus_info(offset, k, kind, names, kinds); } int nlocals = (int)PyDict_GET_SIZE(umd->u_varnames); // This counter mirrors the fix done in fix_cell_offsets(). - int numdropped = 0; + int numdropped = 0, cellvar_offset = -1; pos = 0; while (PyDict_Next(umd->u_cellvars, &pos, &k, &v)) { - if (PyDict_GetItem(umd->u_varnames, k) != NULL) { + int has_name = PyDict_Contains(umd->u_varnames, k); + RETURN_IF_ERROR(has_name); + if (has_name) { // Skip cells that are already covered by locals. numdropped += 1; continue; } - int offset = (int)PyLong_AS_LONG(v); - assert(offset >= 0); - offset += nlocals - numdropped; - assert(offset < nlocalsplus); - _Py_set_localsplus_info(offset, k, CO_FAST_CELL, names, kinds); + + cellvar_offset = PyLong_AsInt(v); + if (cellvar_offset == -1 && PyErr_Occurred()) { + return ERROR; + } + assert(cellvar_offset >= 0); + cellvar_offset += nlocals - numdropped; + assert(cellvar_offset < nlocalsplus); + _Py_set_localsplus_info(cellvar_offset, k, CO_FAST_CELL, names, kinds); } pos = 0; while (PyDict_Next(umd->u_freevars, &pos, &k, &v)) { - int offset = (int)PyLong_AS_LONG(v); + int offset = PyLong_AsInt(v); + if (offset == -1 && PyErr_Occurred()) { + return ERROR; + } assert(offset >= 0); offset += nlocals - numdropped; assert(offset < nlocalsplus); + /* XXX If the assertion below fails it is most likely because a freevar + was added to u_freevars with the wrong index due to not taking into + account cellvars already present, see gh-128632. */ + assert(offset > cellvar_offset); _Py_set_localsplus_info(offset, k, CO_FAST_FREE, names, kinds); } + return SUCCESS; } static PyCodeObject * @@ -532,7 +582,10 @@ makecode(_PyCompile_CodeUnitMetadata *umd, struct assembler *a, PyObject *const_ if (localspluskinds == NULL) { goto error; } - compute_localsplus_info(umd, nlocalsplus, localsplusnames, localspluskinds); + if (compute_localsplus_info(umd, nlocalsplus, + localsplusnames, localspluskinds) == ERROR) { + goto error; + } struct _PyCodeConstructor con = { .filename = filename, @@ -581,12 +634,119 @@ error: return co; } +static int +resolve_jump_offsets(instr_sequence *instrs) +{ + /* Compute the size of each instruction and fixup jump args. + * Replace instruction index with position in bytecode. + */ + + for (int i = 0; i < instrs->s_used; i++) { + instruction *instr = &instrs->s_instrs[i]; + if (OPCODE_HAS_JUMP(instr->i_opcode)) { + instr->i_target = instr->i_oparg; + } + } + + int extended_arg_recompile; + + do { + int totsize = 0; + for (int i = 0; i < instrs->s_used; i++) { + instruction *instr = &instrs->s_instrs[i]; + instr->i_offset = totsize; + int isize = instr_size(instr); + totsize += isize; + } + extended_arg_recompile = 0; + + int offset = 0; + for (int i = 0; i < instrs->s_used; i++) { + instruction *instr = &instrs->s_instrs[i]; + int isize = instr_size(instr); + /* jump offsets are computed relative to + * the instruction pointer after fetching + * the jump instruction. + */ + offset += isize; + if (OPCODE_HAS_JUMP(instr->i_opcode)) { + instruction *target = &instrs->s_instrs[instr->i_target]; + instr->i_oparg = target->i_offset; + if (instr->i_oparg < offset) { + assert(IS_BACKWARDS_JUMP_OPCODE(instr->i_opcode)); + instr->i_oparg = offset - instr->i_oparg; + } + else { + assert(!IS_BACKWARDS_JUMP_OPCODE(instr->i_opcode)); + instr->i_oparg = instr->i_oparg - offset; + } + if (instr_size(instr) != isize) { + extended_arg_recompile = 1; + } + } + } + /* XXX: This is an awful hack that could hurt performance, but + on the bright side it should work until we come up + with a better solution. + + The issue is that in the first loop instr_size() is + called, and it requires i_oparg be set appropriately. + There is a bootstrap problem because i_oparg is + calculated in the second loop above. + + So we loop until we stop seeing new EXTENDED_ARGs. + The only EXTENDED_ARGs that could be popping up are + ones in jump instructions. So this should converge + fairly quickly. + */ + } while (extended_arg_recompile); + return SUCCESS; +} + +static int +resolve_unconditional_jumps(instr_sequence *instrs) +{ + /* Resolve directions of unconditional jumps */ + + for (int i = 0; i < instrs->s_used; i++) { + instruction *instr = &instrs->s_instrs[i]; + bool is_forward = (instr->i_oparg > i); + switch(instr->i_opcode) { + case JUMP: + assert(is_pseudo_target(JUMP, JUMP_FORWARD)); + assert(is_pseudo_target(JUMP, JUMP_BACKWARD)); + instr->i_opcode = is_forward ? JUMP_FORWARD : JUMP_BACKWARD; + break; + case JUMP_NO_INTERRUPT: + assert(is_pseudo_target(JUMP_NO_INTERRUPT, JUMP_FORWARD)); + assert(is_pseudo_target(JUMP_NO_INTERRUPT, JUMP_BACKWARD_NO_INTERRUPT)); + instr->i_opcode = is_forward ? + JUMP_FORWARD : JUMP_BACKWARD_NO_INTERRUPT; + break; + default: + if (OPCODE_HAS_JUMP(instr->i_opcode) && + IS_PSEUDO_INSTR(instr->i_opcode)) { + Py_UNREACHABLE(); + } + } + } + return SUCCESS; +} PyCodeObject * _PyAssemble_MakeCodeObject(_PyCompile_CodeUnitMetadata *umd, PyObject *const_cache, PyObject *consts, int maxdepth, instr_sequence *instrs, int nlocalsplus, int code_flags, PyObject *filename) { + if (_PyInstructionSequence_ApplyLabelMap(instrs) < 0) { + return NULL; + } + if (resolve_unconditional_jumps(instrs) < 0) { + return NULL; + } + if (resolve_jump_offsets(instrs) < 0) { + return NULL; + } PyCodeObject *co = NULL; struct assembler a; diff --git a/contrib/tools/python3/Python/ast.c b/contrib/tools/python3/Python/ast.c index 76f6556ded0..1d1a48ec885 100644 --- a/contrib/tools/python3/Python/ast.c +++ b/contrib/tools/python3/Python/ast.c @@ -1011,13 +1011,19 @@ validate_typeparam(struct validator *state, type_param_ty tp) case TypeVar_kind: ret = validate_name(tp->v.TypeVar.name) && (!tp->v.TypeVar.bound || - validate_expr(state, tp->v.TypeVar.bound, Load)); + validate_expr(state, tp->v.TypeVar.bound, Load)) && + (!tp->v.TypeVar.default_value || + validate_expr(state, tp->v.TypeVar.default_value, Load)); break; case ParamSpec_kind: - ret = validate_name(tp->v.ParamSpec.name); + ret = validate_name(tp->v.ParamSpec.name) && + (!tp->v.ParamSpec.default_value || + validate_expr(state, tp->v.ParamSpec.default_value, Load)); break; case TypeVarTuple_kind: - ret = validate_name(tp->v.TypeVarTuple.name); + ret = validate_name(tp->v.TypeVarTuple.name) && + (!tp->v.TypeVarTuple.default_value || + validate_expr(state, tp->v.TypeVarTuple.default_value, Load)); break; } return ret; @@ -1037,7 +1043,6 @@ validate_type_params(struct validator *state, asdl_type_param_seq *tps) return 1; } - int _PyAST_Validate(mod_ty mod) { @@ -1053,10 +1058,10 @@ _PyAST_Validate(mod_ty mod) return 0; } /* Be careful here to prevent overflow. */ - int recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining; + int recursion_depth = Py_C_RECURSION_LIMIT - tstate->c_recursion_remaining; starting_recursion_depth = recursion_depth; state.recursion_depth = starting_recursion_depth; - state.recursion_limit = C_RECURSION_LIMIT; + state.recursion_limit = Py_C_RECURSION_LIMIT; switch (mod->kind) { case Module_kind: diff --git a/contrib/tools/python3/Python/ast_opt.c b/contrib/tools/python3/Python/ast_opt.c index e8a53786ff4..fa6bc70d748 100644 --- a/contrib/tools/python3/Python/ast_opt.c +++ b/contrib/tools/python3/Python/ast_opt.c @@ -1,10 +1,19 @@ /* AST Optimizer */ #include "Python.h" #include "pycore_ast.h" // _PyAST_GetDocString() -#include "pycore_compile.h" // _PyASTOptimizeState -#include "pycore_long.h" // _PyLong -#include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_format.h" // F_LJUST +#include "pycore_long.h" // _PyLong +#include "pycore_pystate.h" // _PyThreadState_GET() +#include "pycore_setobject.h" // _PySet_NextEntry() + + +typedef struct { + int optimize; + int ff_features; + + int recursion_depth; /* current recursion depth */ + int recursion_limit; /* recursion limit */ +} _PyASTOptimizeState; static int @@ -133,15 +142,6 @@ check_complexity(PyObject *obj, Py_ssize_t limit) } return limit; } - else if (PyFrozenSet_Check(obj)) { - Py_ssize_t i = 0; - PyObject *item; - Py_hash_t hash; - limit -= PySet_GET_SIZE(obj); - while (limit >= 0 && _PySet_NextEntry(obj, &i, &item, &hash)) { - limit = check_complexity(item, limit); - } - } return limit; } @@ -165,9 +165,8 @@ safe_multiply(PyObject *v, PyObject *w) return NULL; } } - else if (PyLong_Check(v) && (PyTuple_Check(w) || PyFrozenSet_Check(w))) { - Py_ssize_t size = PyTuple_Check(w) ? PyTuple_GET_SIZE(w) : - PySet_GET_SIZE(w); + else if (PyLong_Check(v) && PyTuple_Check(w)) { + Py_ssize_t size = PyTuple_GET_SIZE(w); if (size) { long n = PyLong_AsLong(v); if (n < 0 || n > MAX_COLLECTION_SIZE / size) { @@ -189,8 +188,7 @@ safe_multiply(PyObject *v, PyObject *w) } } else if (PyLong_Check(w) && - (PyTuple_Check(v) || PyFrozenSet_Check(v) || - PyUnicode_Check(v) || PyBytes_Check(v))) + (PyTuple_Check(v) || PyUnicode_Check(v) || PyBytes_Check(v))) { return safe_multiply(w, v); } @@ -1088,10 +1086,13 @@ astfold_type_param(type_param_ty node_, PyArena *ctx_, _PyASTOptimizeState *stat switch (node_->kind) { case TypeVar_kind: CALL_OPT(astfold_expr, expr_ty, node_->v.TypeVar.bound); + CALL_OPT(astfold_expr, expr_ty, node_->v.TypeVar.default_value); break; case ParamSpec_kind: + CALL_OPT(astfold_expr, expr_ty, node_->v.ParamSpec.default_value); break; case TypeVarTuple_kind: + CALL_OPT(astfold_expr, expr_ty, node_->v.TypeVarTuple.default_value); break; } return 1; @@ -1102,30 +1103,34 @@ astfold_type_param(type_param_ty node_, PyArena *ctx_, _PyASTOptimizeState *stat #undef CALL_SEQ int -_PyAST_Optimize(mod_ty mod, PyArena *arena, _PyASTOptimizeState *state) +_PyAST_Optimize(mod_ty mod, PyArena *arena, int optimize, int ff_features) { PyThreadState *tstate; int starting_recursion_depth; + _PyASTOptimizeState state; + state.optimize = optimize; + state.ff_features = ff_features; + /* Setup recursion depth check counters */ tstate = _PyThreadState_GET(); if (!tstate) { return 0; } /* Be careful here to prevent overflow. */ - int recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining; + int recursion_depth = Py_C_RECURSION_LIMIT - tstate->c_recursion_remaining; starting_recursion_depth = recursion_depth; - state->recursion_depth = starting_recursion_depth; - state->recursion_limit = C_RECURSION_LIMIT; + state.recursion_depth = starting_recursion_depth; + state.recursion_limit = Py_C_RECURSION_LIMIT; - int ret = astfold_mod(mod, arena, state); + int ret = astfold_mod(mod, arena, &state); assert(ret || PyErr_Occurred()); /* Check that the recursion depth counting balanced correctly */ - if (ret && state->recursion_depth != starting_recursion_depth) { + if (ret && state.recursion_depth != starting_recursion_depth) { PyErr_Format(PyExc_SystemError, "AST optimizer recursion depth mismatch (before=%d, after=%d)", - starting_recursion_depth, state->recursion_depth); + starting_recursion_depth, state.recursion_depth); return 0; } diff --git a/contrib/tools/python3/Python/ast_unparse.c b/contrib/tools/python3/Python/ast_unparse.c index 10e9d9b7104..0d196dc482f 100644 --- a/contrib/tools/python3/Python/ast_unparse.c +++ b/contrib/tools/python3/Python/ast_unparse.c @@ -2,7 +2,6 @@ #include "pycore_ast.h" // expr_ty #include "pycore_pystate.h" // _PyInterpreterState_GET() #include "pycore_runtime.h" // _Py_ID() -#include // DBL_MAX_10_EXP #include /* This limited unparser is used to convert annotations back to strings @@ -13,10 +12,6 @@ _Py_DECLARE_STR(dbl_open_br, "{{"); _Py_DECLARE_STR(dbl_close_br, "}}"); -/* We would statically initialize this if doing so were simple enough. */ -#define _str_replace_inf(interp) \ - _Py_INTERP_CACHED_OBJECT(interp, str_replace_inf) - /* Forward declarations for recursion via helper functions. */ static PyObject * expr_as_unicode(expr_ty e, int level); @@ -78,13 +73,13 @@ append_repr(_PyUnicodeWriter *writer, PyObject *obj) } if ((PyFloat_CheckExact(obj) && Py_IS_INFINITY(PyFloat_AS_DOUBLE(obj))) || - PyComplex_CheckExact(obj)) + PyComplex_CheckExact(obj)) { - PyInterpreterState *interp = _PyInterpreterState_GET(); + _Py_DECLARE_STR(str_replace_inf, "1e309"); // evaluates to inf PyObject *new_repr = PyUnicode_Replace( repr, &_Py_ID(inf), - _str_replace_inf(interp), + &_Py_STR(str_replace_inf), -1 ); Py_DECREF(repr); @@ -918,20 +913,6 @@ append_ast_expr(_PyUnicodeWriter *writer, expr_ty e, int level) return -1; } -static int -maybe_init_static_strings(void) -{ - PyInterpreterState *interp = _PyInterpreterState_GET(); - if (_str_replace_inf(interp) == NULL) { - PyObject *tmp = PyUnicode_FromFormat("1e%d", 1 + DBL_MAX_10_EXP); - if (tmp == NULL) { - return -1; - } - _str_replace_inf(interp) = tmp; - } - return 0; -} - static PyObject * expr_as_unicode(expr_ty e, int level) { @@ -939,9 +920,7 @@ expr_as_unicode(expr_ty e, int level) _PyUnicodeWriter_Init(&writer); writer.min_length = 256; writer.overallocate = 1; - if (-1 == maybe_init_static_strings() || - -1 == append_ast_expr(&writer, e, level)) - { + if (-1 == append_ast_expr(&writer, e, level)) { _PyUnicodeWriter_Dealloc(&writer); return NULL; } diff --git a/contrib/tools/python3/Python/bltinmodule.c b/contrib/tools/python3/Python/bltinmodule.c index 2ae28693bee..5ded0bba13b 100644 --- a/contrib/tools/python3/Python/bltinmodule.c +++ b/contrib/tools/python3/Python/bltinmodule.c @@ -1,20 +1,26 @@ /* Built-in functions */ #include "Python.h" -#include #include "pycore_ast.h" // _PyAST_Validate() #include "pycore_call.h" // _PyObject_CallNoArgs() +#include "pycore_ceval.h" // _PyEval_Vector() #include "pycore_compile.h" // _PyAST_Compile() #include "pycore_long.h" // _PyLong_CompactValue +#include "pycore_modsupport.h" // _PyArg_NoKwnames() #include "pycore_object.h" // _Py_AddToAllObjects() #include "pycore_pyerrors.h" // _PyErr_NoMemory() #include "pycore_pystate.h" // _PyThreadState_GET() +#include "pycore_pythonrun.h" // _Py_SourceAsString() #include "pycore_sysmodule.h" // _PySys_GetRequiredAttr() #include "pycore_tuple.h" // _PyTuple_FromArray() -#include "pycore_ceval.h" // _PyEval_Vector() #include "clinic/bltinmodule.c.h" +#ifdef HAVE_UNISTD_H +# include // isatty() +#endif + + static PyObject* update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs) { @@ -34,7 +40,7 @@ update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs) } continue; } - if (_PyObject_LookupAttr(base, &_Py_ID(__mro_entries__), &meth) < 0) { + if (PyObject_GetOptionalAttr(base, &_Py_ID(__mro_entries__), &meth) < 0) { goto error; } if (!meth) { @@ -134,18 +140,13 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, goto error; } - meta = _PyDict_GetItemWithError(mkw, &_Py_ID(metaclass)); + if (PyDict_Pop(mkw, &_Py_ID(metaclass), &meta) < 0) { + goto error; + } if (meta != NULL) { - Py_INCREF(meta); - if (PyDict_DelItem(mkw, &_Py_ID(metaclass)) < 0) { - goto error; - } /* metaclass is explicitly given, check if it's indeed a class */ isclass = PyType_Check(meta); } - else if (PyErr_Occurred()) { - goto error; - } } if (meta == NULL) { /* if there are no bases, use type: */ @@ -175,7 +176,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, } /* else: meta is not a class, so we cannot do the metaclass calculation, so we will use the explicitly given object as it is */ - if (_PyObject_LookupAttr(meta, &_Py_ID(__prepare__), &prep) < 0) { + if (PyObject_GetOptionalAttr(meta, &_Py_ID(__prepare__), &prep) < 0) { ns = NULL; } else if (prep == NULL) { @@ -472,7 +473,8 @@ builtin_breakpoint(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb } PyDoc_STRVAR(breakpoint_doc, -"breakpoint(*args, **kws)\n\ +"breakpoint($module, /, *args, **kws)\n\ +--\n\ \n\ Call sys.breakpointhook(*args, **kws). sys.breakpointhook() must accept\n\ whatever arguments are passed.\n\ @@ -617,7 +619,8 @@ static PyMethodDef filter_methods[] = { }; PyDoc_STRVAR(filter_doc, -"filter(function or None, iterable) --> filter object\n\ +"filter(function, iterable, /)\n\ +--\n\ \n\ Return an iterator yielding those items of iterable for which function(item)\n\ is true. If function is None, return the items that are true."); @@ -695,17 +698,34 @@ builtin_format_impl(PyObject *module, PyObject *value, PyObject *format_spec) /*[clinic input] chr as builtin_chr - i: int + i: object / Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff. [clinic start generated code]*/ static PyObject * -builtin_chr_impl(PyObject *module, int i) -/*[clinic end generated code: output=c733afcd200afcb7 input=3f604ef45a70750d]*/ +builtin_chr(PyObject *module, PyObject *i) +/*[clinic end generated code: output=d34f25b8035a9b10 input=f919867f0ba2f496]*/ { - return PyUnicode_FromOrdinal(i); + int overflow; + long v = PyLong_AsLongAndOverflow(i, &overflow); + if (v == -1 && PyErr_Occurred()) { + return NULL; + } + if (overflow) { + v = overflow < 0 ? INT_MIN : INT_MAX; + /* Allow PyUnicode_FromOrdinal() to raise an exception */ + } +#if SIZEOF_INT < SIZEOF_LONG + else if (v < INT_MIN) { + v = INT_MIN; + } + else if (v > INT_MAX) { + v = INT_MAX; + } +#endif + return PyUnicode_FromOrdinal(v); } @@ -713,7 +733,7 @@ builtin_chr_impl(PyObject *module, int i) compile as builtin_compile source: object - filename: object(converter="PyUnicode_FSDecoder") + filename: unicode_fs_decoded mode: str flags: int = 0 dont_inherit: bool = False @@ -739,7 +759,7 @@ static PyObject * builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename, const char *mode, int flags, int dont_inherit, int optimize, int feature_version) -/*[clinic end generated code: output=b0c09c84f116d3d7 input=cc78e20e7c7682ba]*/ +/*[clinic end generated code: output=b0c09c84f116d3d7 input=8f0069edbdac381b]*/ { PyObject *source_copy; const char *str; @@ -801,23 +821,40 @@ builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename, if (is_ast == -1) goto error; if (is_ast) { - if (flags & PyCF_ONLY_AST) { + if ((flags & PyCF_OPTIMIZED_AST) == PyCF_ONLY_AST) { + // return an un-optimized AST result = Py_NewRef(source); } else { - PyArena *arena; - mod_ty mod; + // Return an optimized AST or code object - arena = _PyArena_New(); - if (arena == NULL) - goto error; - mod = PyAST_obj2mod(source, arena, compile_mode); - if (mod == NULL || !_PyAST_Validate(mod)) { - _PyArena_Free(arena); + PyArena *arena = _PyArena_New(); + if (arena == NULL) { goto error; } - result = (PyObject*)_PyAST_Compile(mod, filename, - &cf, optimize, arena); + + if (flags & PyCF_ONLY_AST) { + mod_ty mod = PyAST_obj2mod(source, arena, compile_mode); + if (mod == NULL || !_PyAST_Validate(mod)) { + _PyArena_Free(arena); + goto error; + } + if (_PyCompile_AstOptimize(mod, filename, &cf, optimize, + arena) < 0) { + _PyArena_Free(arena); + goto error; + } + result = PyAST_mod2obj(mod); + } + else { + mod_ty mod = PyAST_obj2mod(source, arena, compile_mode); + if (mod == NULL || !_PyAST_Validate(mod)) { + _PyArena_Free(arena); + goto error; + } + result = (PyObject*)_PyAST_Compile(mod, filename, + &cf, optimize, arena); + } _PyArena_Free(arena); } goto finally; @@ -827,15 +864,27 @@ builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename, if (str == NULL) goto error; +#ifdef Py_GIL_DISABLED + // gh-118527: Disable immortalization of code constants for explicit + // compile() calls to get consistent frozen outputs between the default + // and free-threaded builds. + // Subtract two to suppress immortalization (so that 1 -> -1) + PyInterpreterState *interp = _PyInterpreterState_GET(); + _Py_atomic_add_int(&interp->gc.immortalize, -2); +#endif + result = Py_CompileStringObject(str, filename, start[compile_mode], &cf, optimize); +#ifdef Py_GIL_DISABLED + _Py_atomic_add_int(&interp->gc.immortalize, 2); +#endif + Py_XDECREF(source_copy); goto finally; error: result = NULL; finally: - Py_DECREF(filename); return result; } @@ -886,9 +935,9 @@ builtin_divmod_impl(PyObject *module, PyObject *x, PyObject *y) eval as builtin_eval source: object + / globals: object = None locals: object = None - / Evaluate the given source in the context of globals and locals. @@ -902,7 +951,7 @@ If only globals is given, locals defaults to it. static PyObject * builtin_eval_impl(PyObject *module, PyObject *source, PyObject *globals, PyObject *locals) -/*[clinic end generated code: output=0a0824aa70093116 input=11ee718a8640e527]*/ +/*[clinic end generated code: output=0a0824aa70093116 input=7c7bce5299a89062]*/ { PyObject *result = NULL, *source_copy; const char *str; @@ -985,9 +1034,9 @@ builtin_eval_impl(PyObject *module, PyObject *source, PyObject *globals, exec as builtin_exec source: object + / globals: object = None locals: object = None - / * closure: object(c_default="NULL") = None @@ -1005,7 +1054,7 @@ when source is a code object requiring exactly that many cellvars. static PyObject * builtin_exec_impl(PyObject *module, PyObject *source, PyObject *globals, PyObject *locals, PyObject *closure) -/*[clinic end generated code: output=7579eb4e7646743d input=f13a7e2b503d1d9a]*/ +/*[clinic end generated code: output=7579eb4e7646743d input=25e989b6d87a3a21]*/ { PyObject *v; @@ -1104,6 +1153,7 @@ builtin_exec_impl(PyObject *module, PyObject *source, PyObject *globals, if (closure != NULL) { PyErr_SetString(PyExc_TypeError, "closure can only be used when source is a code object"); + goto error; } PyObject *source_copy; const char *str; @@ -1145,7 +1195,7 @@ builtin_getattr(PyObject *self, PyObject *const *args, Py_ssize_t nargs) v = args[0]; name = args[1]; if (nargs > 2) { - if (_PyObject_LookupAttr(v, name, &result) == 0) { + if (PyObject_GetOptionalAttr(v, name, &result) == 0) { PyObject *dflt = args[2]; return Py_NewRef(dflt); } @@ -1202,7 +1252,7 @@ builtin_hasattr_impl(PyObject *module, PyObject *obj, PyObject *name) { PyObject *v; - if (_PyObject_LookupAttr(obj, name, &v) < 0) { + if (PyObject_GetOptionalAttr(obj, name, &v) < 0) { return NULL; } if (v == NULL) { @@ -1423,7 +1473,8 @@ static PyMethodDef map_methods[] = { PyDoc_STRVAR(map_doc, -"map(func, *iterables) --> map object\n\ +"map(function, iterable, /, *iterables)\n\ +--\n\ \n\ Make an iterator that computes the function using arguments from\n\ each of the iterables. Stops when the shortest iterable is exhausted."); @@ -1557,8 +1608,9 @@ static PyObject * builtin_delattr_impl(PyObject *module, PyObject *obj, PyObject *name) /*[clinic end generated code: output=85134bc58dff79fa input=164865623abe7216]*/ { - if (PyObject_SetAttr(obj, name, (PyObject *)NULL) != 0) + if (PyObject_DelAttr(obj, name) < 0) { return NULL; + } Py_RETURN_NONE; } @@ -1662,16 +1714,16 @@ anext as builtin_anext default: object = NULL / -async anext(aiterator[, default]) +Return the next item from the async iterator. -Return the next item from the async iterator. If default is given and the async -iterator is exhausted, it is returned instead of raising StopAsyncIteration. +If default is given and the async iterator is exhausted, +it is returned instead of raising StopAsyncIteration. [clinic start generated code]*/ static PyObject * builtin_anext_impl(PyObject *module, PyObject *aiterator, PyObject *default_value) -/*[clinic end generated code: output=f02c060c163a81fa input=8f63f4f78590bb4c]*/ +/*[clinic end generated code: output=f02c060c163a81fa input=2900e4a370d39550]*/ { PyTypeObject *t; PyObject *awaitable; @@ -1742,35 +1794,27 @@ builtin_locals_impl(PyObject *module) static PyObject * -min_max(PyObject *args, PyObject *kwds, int op) +min_max(PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames, int op) { - PyObject *v, *it, *item, *val, *maxitem, *maxval, *keyfunc=NULL; - PyObject *emptytuple, *defaultval = NULL; - static char *kwlist[] = {"key", "default", NULL}; - const char *name = op == Py_LT ? "min" : "max"; - const int positional = PyTuple_Size(args) > 1; - int ret; + PyObject *it = NULL, *item, *val, *maxitem, *maxval, *keyfunc=NULL; + PyObject *defaultval = NULL; + static const char * const keywords[] = {"key", "default", NULL}; + static _PyArg_Parser _parser_min = {"|$OO:min", keywords, 0}; + static _PyArg_Parser _parser_max = {"|$OO:max", keywords, 0}; + const char *name = (op == Py_LT) ? "min" : "max"; + _PyArg_Parser *_parser = (op == Py_LT) ? &_parser_min : &_parser_max; - if (positional) { - v = args; - } - else if (!PyArg_UnpackTuple(args, name, 1, 1, &v)) { - if (PyExceptionClass_Check(PyExc_TypeError)) { - PyErr_Format(PyExc_TypeError, "%s expected at least 1 argument, got 0", name); - } + if (nargs == 0) { + PyErr_Format(PyExc_TypeError, "%s expected at least 1 argument, got 0", name); return NULL; } - emptytuple = PyTuple_New(0); - if (emptytuple == NULL) - return NULL; - ret = PyArg_ParseTupleAndKeywords(emptytuple, kwds, - (op == Py_LT) ? "|$OO:min" : "|$OO:max", - kwlist, &keyfunc, &defaultval); - Py_DECREF(emptytuple); - if (!ret) + if (kwnames != NULL && !_PyArg_ParseStackAndKeywords(args + nargs, 0, kwnames, _parser, + &keyfunc, &defaultval)) { return NULL; + } + const int positional = nargs > 1; // False iff nargs == 1 if (positional && defaultval != NULL) { PyErr_Format(PyExc_TypeError, "Cannot specify a default for %s() with multiple " @@ -1778,9 +1822,11 @@ min_max(PyObject *args, PyObject *kwds, int op) return NULL; } - it = PyObject_GetIter(v); - if (it == NULL) { - return NULL; + if (!positional) { + it = PyObject_GetIter(args[0]); + if (it == NULL) { + return NULL; + } } if (keyfunc == Py_None) { @@ -1789,7 +1835,24 @@ min_max(PyObject *args, PyObject *kwds, int op) maxitem = NULL; /* the result */ maxval = NULL; /* the value associated with the result */ - while (( item = PyIter_Next(it) )) { + while (1) { + if (it == NULL) { + if (nargs-- <= 0) { + break; + } + item = *args++; + Py_INCREF(item); + } + else { + item = PyIter_Next(it); + if (item == NULL) { + if (PyErr_Occurred()) { + goto Fail_it; + } + break; + } + } + /* get the value from the key function */ if (keyfunc != NULL) { val = PyObject_CallOneArg(keyfunc, item); @@ -1823,8 +1886,6 @@ min_max(PyObject *args, PyObject *kwds, int op) } } } - if (PyErr_Occurred()) - goto Fail_it; if (maxval == NULL) { assert(maxitem == NULL); if (defaultval != NULL) { @@ -1836,7 +1897,7 @@ min_max(PyObject *args, PyObject *kwds, int op) } else Py_DECREF(maxval); - Py_DECREF(it); + Py_XDECREF(it); return maxitem; Fail_it_item_and_val: @@ -1846,15 +1907,15 @@ Fail_it_item: Fail_it: Py_XDECREF(maxval); Py_XDECREF(maxitem); - Py_DECREF(it); + Py_XDECREF(it); return NULL; } /* AC: cannot convert yet, waiting for *args support */ static PyObject * -builtin_min(PyObject *self, PyObject *args, PyObject *kwds) +builtin_min(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { - return min_max(args, kwds, Py_LT); + return min_max(args, nargs, kwnames, Py_LT); } PyDoc_STRVAR(min_doc, @@ -1864,14 +1925,14 @@ min(arg1, arg2, *args, *[, key=func]) -> value\n\ With a single iterable argument, return its smallest item. The\n\ default keyword-only argument specifies an object to return if\n\ the provided iterable is empty.\n\ -With two or more arguments, return the smallest argument."); +With two or more positional arguments, return the smallest argument."); /* AC: cannot convert yet, waiting for *args support */ static PyObject * -builtin_max(PyObject *self, PyObject *args, PyObject *kwds) +builtin_max(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { - return min_max(args, kwds, Py_GT); + return min_max(args, nargs, kwnames, Py_GT); } PyDoc_STRVAR(max_doc, @@ -1881,7 +1942,7 @@ max(arg1, arg2, *args, *[, key=func]) -> value\n\ With a single iterable argument, return its biggest item. The\n\ default keyword-only argument specifies an object to return if\n\ the provided iterable is empty.\n\ -With two or more arguments, return the largest argument."); +With two or more positional arguments, return the largest argument."); /*[clinic input] @@ -1907,15 +1968,21 @@ builtin_oct(PyObject *module, PyObject *number) /*[clinic input] ord as builtin_ord - c: object + character as c: object / -Return the Unicode code point for a one-character string. +Return the ordinal value of a character. + +If the argument is a one-character string, return the Unicode code +point of that character. + +If the argument is a bytes or bytearray object of length 1, return its +single byte value. [clinic start generated code]*/ static PyObject * builtin_ord(PyObject *module, PyObject *c) -/*[clinic end generated code: output=4fa5e87a323bae71 input=3064e5d6203ad012]*/ +/*[clinic end generated code: output=4fa5e87a323bae71 input=98d38480432e1177]*/ { long ord; Py_ssize_t size; @@ -1928,8 +1995,6 @@ builtin_ord(PyObject *module, PyObject *c) } } else if (PyUnicode_Check(c)) { - if (PyUnicode_READY(c) == -1) - return NULL; size = PyUnicode_GET_LENGTH(c); if (size == 1) { ord = (long)PyUnicode_READ_CHAR(c, 0); @@ -2073,12 +2138,10 @@ builtin_print_impl(PyObject *module, PyObject *args, PyObject *sep, } if (flush) { - PyObject *tmp = PyObject_CallMethodNoArgs(file, &_Py_ID(flush)); - if (tmp == NULL) { + if (_PyFile_Flush(file) < 0) { Py_DECREF(file); return NULL; } - Py_DECREF(tmp); } Py_DECREF(file); @@ -2143,11 +2206,9 @@ builtin_input_impl(PyObject *module, PyObject *prompt) } /* First of all, flush stderr */ - tmp = PyObject_CallMethodNoArgs(ferr, &_Py_ID(flush)); - if (tmp == NULL) + if (_PyFile_Flush(ferr) < 0) { PyErr_Clear(); - else - Py_DECREF(tmp); + } /* We should only use (GNU) readline if Python's sys.stdin and sys.stdout are the same as C's stdin and stdout, because we @@ -2216,11 +2277,9 @@ builtin_input_impl(PyObject *module, PyObject *prompt) if (stdin_errors_str == NULL) { goto _readline_errors; } - tmp = PyObject_CallMethodNoArgs(fout, &_Py_ID(flush)); - if (tmp == NULL) + if (_PyFile_Flush(fout) < 0) { PyErr_Clear(); - else - Py_DECREF(tmp); + } if (prompt != NULL) { /* We have a prompt, encode it as stdout would */ const char *stdout_encoding_str, *stdout_errors_str; @@ -2261,6 +2320,11 @@ builtin_input_impl(PyObject *module, PyObject *prompt) goto _readline_errors; assert(PyBytes_Check(po)); promptstr = PyBytes_AS_STRING(po); + if ((Py_ssize_t)strlen(promptstr) != PyBytes_GET_SIZE(po)) { + PyErr_SetString(PyExc_ValueError, + "input: prompt string cannot contain null characters"); + goto _readline_errors; + } } else { po = NULL; @@ -2326,12 +2390,9 @@ builtin_input_impl(PyObject *module, PyObject *prompt) if (PyFile_WriteObject(prompt, fout, Py_PRINT_RAW) != 0) goto error; } - tmp = PyObject_CallMethodNoArgs(fout, &_Py_ID(flush)); - if (tmp == NULL) + if (_PyFile_Flush(fout) < 0) { PyErr_Clear(); - else - Py_DECREF(tmp); - + } tmp = PyFile_GetLine(fin, -1); Py_DECREF(fin); Py_DECREF(fout); @@ -2383,11 +2444,6 @@ builtin_round_impl(PyObject *module, PyObject *number, PyObject *ndigits) { PyObject *round, *result; - if (!_PyType_IsReady(Py_TYPE(number))) { - if (PyType_Ready(Py_TYPE(number)) < 0) - return NULL; - } - round = _PyObject_LookupSpecial(number, &_Py_ID(__round__)); if (round == NULL) { if (!PyErr_Occurred()) @@ -2480,7 +2536,7 @@ builtin_vars(PyObject *self, PyObject *args) d = _PyEval_GetFrameLocals(); } else { - if (_PyObject_LookupAttr(v, &_Py_ID(__dict__), &d) == 0) { + if (PyObject_GetOptionalAttr(v, &_Py_ID(__dict__), &d) == 0) { PyErr_SetString(PyExc_TypeError, "vars() argument must have __dict__ attribute"); } @@ -2973,10 +3029,8 @@ static PyMethodDef zip_methods[] = { }; PyDoc_STRVAR(zip_doc, -"zip(*iterables, strict=False) --> Yield tuples until an input is exhausted.\n\ -\n\ - >>> list(zip('abcdefg', range(3), range(4)))\n\ - [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)]\n\ +"zip(*iterables, strict=False)\n\ +--\n\ \n\ The zip object yields n-length tuples, where n is the number of iterables\n\ passed as positional arguments to zip(). The i-th element in every tuple\n\ @@ -2984,7 +3038,10 @@ comes from the i-th iterable argument to zip(). This continues until the\n\ shortest argument is exhausted.\n\ \n\ If strict is true and one of the arguments is exhausted before the others,\n\ -raise a ValueError."); +raise a ValueError.\n\ +\n\ + >>> list(zip('abcdefg', range(3), range(4)))\n\ + [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)]"); PyTypeObject PyZip_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) @@ -3063,8 +3120,8 @@ static PyMethodDef builtin_methods[] = { BUILTIN_AITER_METHODDEF BUILTIN_LEN_METHODDEF BUILTIN_LOCALS_METHODDEF - {"max", _PyCFunction_CAST(builtin_max), METH_VARARGS | METH_KEYWORDS, max_doc}, - {"min", _PyCFunction_CAST(builtin_min), METH_VARARGS | METH_KEYWORDS, min_doc}, + {"max", _PyCFunction_CAST(builtin_max), METH_FASTCALL | METH_KEYWORDS, max_doc}, + {"min", _PyCFunction_CAST(builtin_min), METH_FASTCALL | METH_KEYWORDS, min_doc}, {"next", _PyCFunction_CAST(builtin_next), METH_FASTCALL, next_doc}, BUILTIN_ANEXT_METHODDEF BUILTIN_OCT_METHODDEF @@ -3115,6 +3172,9 @@ _PyBuiltin_Init(PyInterpreterState *interp) mod = _PyModule_CreateInitialized(&builtinsmodule, PYTHON_API_VERSION); if (mod == NULL) return NULL; +#ifdef Py_GIL_DISABLED + PyUnstable_Module_SetGIL(mod, Py_MOD_GIL_NOT_USED); +#endif dict = PyModule_GetDict(mod); #ifdef Py_TRACE_REFS @@ -3124,7 +3184,7 @@ _PyBuiltin_Init(PyInterpreterState *interp) * result, programs leaking references to None and False (etc) * couldn't be diagnosed by examining sys.getobjects(0). */ -#define ADD_TO_ALL(OBJECT) _Py_AddToAllObjects((PyObject *)(OBJECT), 0) +#define ADD_TO_ALL(OBJECT) _Py_AddToAllObjects((PyObject *)(OBJECT)) #else #define ADD_TO_ALL(OBJECT) (void)0 #endif diff --git a/contrib/tools/python3/Python/bootstrap_hash.c b/contrib/tools/python3/Python/bootstrap_hash.c index 587063ef1ab..92f2301a012 100644 --- a/contrib/tools/python3/Python/bootstrap_hash.c +++ b/contrib/tools/python3/Python/bootstrap_hash.c @@ -1,24 +1,28 @@ #include "Python.h" -#include "pycore_initconfig.h" #include "pycore_fileutils.h" // _Py_fstat_noraise() +#include "pycore_initconfig.h" +#include "pycore_pylifecycle.h" // _PyOS_URandomNonblock() #include "pycore_runtime.h" // _PyRuntime +#ifdef HAVE_UNISTD_H +# include // close() +#endif #ifdef MS_WINDOWS # include # include #else -# include +# include // O_RDONLY # ifdef HAVE_SYS_STAT_H # include # endif # ifdef HAVE_LINUX_RANDOM_H -# include +# include // GRND_NONBLOCK # endif # if defined(HAVE_SYS_RANDOM_H) && (defined(HAVE_GETRANDOM) || defined(HAVE_GETENTROPY)) -# include +# include // getrandom() # endif # if !defined(HAVE_GETRANDOM) && defined(HAVE_GETRANDOM_SYSCALL) -# include +# include // SYS_getrandom # endif #endif diff --git a/contrib/tools/python3/Python/brc.c b/contrib/tools/python3/Python/brc.c new file mode 100644 index 00000000000..8f87bc33007 --- /dev/null +++ b/contrib/tools/python3/Python/brc.c @@ -0,0 +1,208 @@ +// Implementation of biased reference counting inter-thread queue. +// +// Biased reference counting maintains two refcount fields in each object: +// ob_ref_local and ob_ref_shared. The true refcount is the sum of these two +// fields. In some cases, when refcounting operations are split across threads, +// the ob_ref_shared field can be negative (although the total refcount must +// be at least zero). In this case, the thread that decremented the refcount +// requests that the owning thread give up ownership and merge the refcount +// fields. This file implements the mechanism for doing so. +// +// Each thread state maintains a queue of objects whose refcounts it should +// merge. The thread states are stored in a per-interpreter hash table by +// thread id. The hash table has a fixed size and uses a linked list to store +// thread states within each bucket. +// +// The queueing thread uses the eval breaker mechanism to notify the owning +// thread that it has objects to merge. Additionaly, all queued objects are +// merged during GC. +#include "Python.h" +#include "pycore_object.h" // _Py_ExplicitMergeRefcount +#include "pycore_brc.h" // struct _brc_thread_state +#include "pycore_ceval.h" // _Py_set_eval_breaker_bit +#include "pycore_llist.h" // struct llist_node +#include "pycore_pystate.h" // _PyThreadStateImpl + +#ifdef Py_GIL_DISABLED + +// Get the hashtable bucket for a given thread id. +static struct _brc_bucket * +get_bucket(PyInterpreterState *interp, uintptr_t tid) +{ + return &interp->brc.table[tid % _Py_BRC_NUM_BUCKETS]; +} + +// Find the thread state in a hash table bucket by thread id. +static _PyThreadStateImpl * +find_thread_state(struct _brc_bucket *bucket, uintptr_t thread_id) +{ + struct llist_node *node; + llist_for_each(node, &bucket->root) { + // Get the containing _PyThreadStateImpl from the linked-list node. + _PyThreadStateImpl *ts = llist_data(node, _PyThreadStateImpl, + brc.bucket_node); + if (ts->brc.tid == thread_id) { + return ts; + } + } + return NULL; +} + +// Enqueue an object to be merged by the owning thread. This steals a +// reference to the object. +void +_Py_brc_queue_object(PyObject *ob) +{ + PyInterpreterState *interp = _PyInterpreterState_GET(); + + uintptr_t ob_tid = _Py_atomic_load_uintptr(&ob->ob_tid); + if (ob_tid == 0) { + // The owning thread may have concurrently decided to merge the + // refcount fields. + Py_DECREF(ob); + return; + } + + struct _brc_bucket *bucket = get_bucket(interp, ob_tid); + PyMutex_Lock(&bucket->mutex); + _PyThreadStateImpl *tstate = find_thread_state(bucket, ob_tid); + if (tstate == NULL) { + // If we didn't find the owning thread then it must have already exited. + // It's safe (and necessary) to merge the refcount. Subtract one when + // merging because we've stolen a reference. + Py_ssize_t refcount = _Py_ExplicitMergeRefcount(ob, -1); + PyMutex_Unlock(&bucket->mutex); + if (refcount == 0) { + _Py_Dealloc(ob); + } + return; + } + + if (_PyObjectStack_Push(&tstate->brc.objects_to_merge, ob) < 0) { + PyMutex_Unlock(&bucket->mutex); + + // Fall back to stopping all threads and manually merging the refcount + // if we can't enqueue the object to be merged. + _PyEval_StopTheWorld(interp); + Py_ssize_t refcount = _Py_ExplicitMergeRefcount(ob, -1); + _PyEval_StartTheWorld(interp); + + if (refcount == 0) { + _Py_Dealloc(ob); + } + return; + } + + // Notify owning thread + _Py_set_eval_breaker_bit(&tstate->base, _PY_EVAL_EXPLICIT_MERGE_BIT); + + PyMutex_Unlock(&bucket->mutex); +} + +static void +merge_queued_objects(_PyObjectStack *to_merge) +{ + PyObject *ob; + while ((ob = _PyObjectStack_Pop(to_merge)) != NULL) { + // Subtract one when merging because the queue had a reference. + Py_ssize_t refcount = _Py_ExplicitMergeRefcount(ob, -1); + if (refcount == 0) { + _Py_Dealloc(ob); + } + } +} + +// Process this thread's queue of objects to merge. +void +_Py_brc_merge_refcounts(PyThreadState *tstate) +{ + struct _brc_thread_state *brc = &((_PyThreadStateImpl *)tstate)->brc; + struct _brc_bucket *bucket = get_bucket(tstate->interp, brc->tid); + + assert(brc->tid == _Py_ThreadId()); + + // Append all objects into a local stack. We don't want to hold the lock + // while calling destructors. + PyMutex_Lock(&bucket->mutex); + _PyObjectStack_Merge(&brc->local_objects_to_merge, &brc->objects_to_merge); + PyMutex_Unlock(&bucket->mutex); + + // Process the local stack until it's empty + merge_queued_objects(&brc->local_objects_to_merge); +} + +void +_Py_brc_init_state(PyInterpreterState *interp) +{ + struct _brc_state *brc = &interp->brc; + for (Py_ssize_t i = 0; i < _Py_BRC_NUM_BUCKETS; i++) { + llist_init(&brc->table[i].root); + } +} + +void +_Py_brc_init_thread(PyThreadState *tstate) +{ + struct _brc_thread_state *brc = &((_PyThreadStateImpl *)tstate)->brc; + uintptr_t tid = _Py_ThreadId(); + + // Add ourself to the hashtable + struct _brc_bucket *bucket = get_bucket(tstate->interp, tid); + PyMutex_Lock(&bucket->mutex); + brc->tid = tid; + llist_insert_tail(&bucket->root, &brc->bucket_node); + PyMutex_Unlock(&bucket->mutex); +} + +void +_Py_brc_remove_thread(PyThreadState *tstate) +{ + struct _brc_thread_state *brc = &((_PyThreadStateImpl *)tstate)->brc; + if (brc->tid == 0) { + // The thread state may have been created, but never bound to a native + // thread and therefore never added to the hashtable. + assert(tstate->_status.bound == 0); + return; + } + + struct _brc_bucket *bucket = get_bucket(tstate->interp, brc->tid); + + // We need to fully process any objects to merge before removing ourself + // from the hashtable. It is not safe to perform any refcount operations + // after we are removed. After that point, other threads treat our objects + // as abandoned and may merge the objects' refcounts directly. + bool empty = false; + while (!empty) { + // Process the local stack until it's empty + merge_queued_objects(&brc->local_objects_to_merge); + + PyMutex_Lock(&bucket->mutex); + empty = (brc->objects_to_merge.head == NULL); + if (empty) { + llist_remove(&brc->bucket_node); + } + else { + _PyObjectStack_Merge(&brc->local_objects_to_merge, + &brc->objects_to_merge); + } + PyMutex_Unlock(&bucket->mutex); + } + + assert(brc->local_objects_to_merge.head == NULL); + assert(brc->objects_to_merge.head == NULL); +} + +void +_Py_brc_after_fork(PyInterpreterState *interp) +{ + // Unlock all bucket mutexes. Some of the buckets may be locked because + // locks can be handed off to a parked thread (see lock.c). We don't have + // to worry about consistency here, becuase no thread can be actively + // modifying a bucket, but it might be paused (not yet woken up) on a + // PyMutex_Lock while holding that lock. + for (Py_ssize_t i = 0; i < _Py_BRC_NUM_BUCKETS; i++) { + _PyMutex_at_fork_reinit(&interp->brc.table[i].mutex); + } +} + +#endif /* Py_GIL_DISABLED */ diff --git a/contrib/tools/python3/Python/ceval.c b/contrib/tools/python3/Python/ceval.c index 3985b52649c..0be6c57c1cf 100644 --- a/contrib/tools/python3/Python/ceval.c +++ b/contrib/tools/python3/Python/ceval.c @@ -4,26 +4,35 @@ #include "Python.h" #include "pycore_abstract.h" // _PyIndex_Check() -#include "pycore_call.h" // _PyObject_FastCallDictTstate() -#include "pycore_ceval.h" // _PyEval_SignalAsyncExc() +#include "pycore_backoff.h" +#include "pycore_call.h" // _PyObject_CallNoArgs() +#include "pycore_cell.h" // PyCell_GetRef() +#include "pycore_ceval.h" #include "pycore_code.h" +#include "pycore_emscripten_signal.h" // _Py_CHECK_EMSCRIPTEN_SIGNALS #include "pycore_function.h" +#include "pycore_instruments.h" #include "pycore_intrinsics.h" +#include "pycore_jit.h" #include "pycore_long.h" // _PyLong_GetZero() -#include "pycore_instruments.h" -#include "pycore_object.h" // _PyObject_GC_TRACK() #include "pycore_moduleobject.h" // PyModuleObject -#include "pycore_opcode.h" // EXTRA_CASES +#include "pycore_object.h" // _PyObject_GC_TRACK() +#include "pycore_opcode_metadata.h" // EXTRA_CASES +#include "pycore_optimizer.h" // _PyUOpExecutor_Type +#include "pycore_opcode_utils.h" // MAKE_FUNCTION_* +#include "pycore_pyatomic_ft_wrappers.h" // FT_ATOMIC_* #include "pycore_pyerrors.h" // _PyErr_GetRaisedException() -#include "pycore_pymem.h" // _PyMem_IsPtrFreed() #include "pycore_pystate.h" // _PyInterpreterState_GET() #include "pycore_range.h" // _PyRangeIterObject +#include "pycore_setobject.h" // _PySet_Update() #include "pycore_sliceobject.h" // _PyBuildSlice_ConsumeRefs #include "pycore_sysmodule.h" // _PySys_Audit() #include "pycore_traceback.h" // _PyTraceBack_FromFrame #include "pycore_tuple.h" // _PyTuple_ITEMS() #include "pycore_typeobject.h" // _PySuper_Lookup() -#include "pycore_emscripten_signal.h" // _Py_CHECK_EMSCRIPTEN_SIGNALS +#include "pycore_uop_ids.h" // Uops +#include "pycore_pyerrors.h" +#include "pycore_sysmodule.h" // _PySys_GetOptionalAttrString() #include "pycore_dict.h" #include "dictobject.h" @@ -32,10 +41,8 @@ #include "opcode.h" #include "pydtrace.h" #include "setobject.h" -#include "structmember.h" // struct PyMemberDef, T_OFFSET_EX -#include -#include +#include // bool #ifdef Py_DEBUG /* For debugging the interpreter: */ @@ -46,12 +53,13 @@ # error "ceval.c must be build with Py_BUILD_CORE define for best performance" #endif -#if !defined(Py_DEBUG) && !defined(Py_TRACE_REFS) +#if !defined(Py_DEBUG) && !defined(Py_TRACE_REFS) && !defined(Py_GIL_DISABLED) // GH-89279: The MSVC compiler does not inline these static inline functions // in PGO build in _PyEval_EvalFrameDefault(), because this function is over // the limit of PGO, and that limit cannot be configured. // Define them as macros to make sure that they are always inlined by the // preprocessor. +// TODO: implement Py_DECREF macro for Py_GIL_DISABLED #undef Py_DECREF #define Py_DECREF(arg) \ @@ -62,6 +70,7 @@ } \ _Py_DECREF_STAT_INC(); \ if (--op->ob_refcnt == 0) { \ + _PyReftracerTrack(op, PyRefTracer_DESTROY); \ destructor dealloc = Py_TYPE(op)->tp_dealloc; \ (*dealloc)(op); \ } \ @@ -89,19 +98,13 @@ } \ _Py_DECREF_STAT_INC(); \ if (--op->ob_refcnt == 0) { \ + _PyReftracerTrack(op, PyRefTracer_DESTROY); \ destructor d = (destructor)(dealloc); \ d(op); \ } \ } while (0) #endif -// GH-89279: Similar to above, force inlining by using a macro. -#if defined(_MSC_VER) && SIZEOF_INT == 4 -#define _Py_atomic_load_relaxed_int32(ATOMIC_VAL) (assert(sizeof((ATOMIC_VAL)->_value) == 4), *((volatile int*)&((ATOMIC_VAL)->_value))) -#else -#define _Py_atomic_load_relaxed_int32(ATOMIC_VAL) _Py_atomic_load_relaxed(ATOMIC_VAL) -#endif - #ifdef LLTRACE static void @@ -114,11 +117,24 @@ dump_stack(_PyInterpreterFrame *frame, PyObject **stack_pointer) if (ptr != stack_base) { printf(", "); } - if (PyObject_Print(*ptr, stdout, 0) != 0) { + if (*ptr == NULL) { + printf(""); + continue; + } + if ( + *ptr == Py_None + || PyBool_Check(*ptr) + || PyLong_CheckExact(*ptr) + || PyFloat_CheckExact(*ptr) + || PyUnicode_CheckExact(*ptr) + ) { + if (PyObject_Print(*ptr, stdout, 0) == 0) { + continue; + } PyErr_Clear(); - printf("<%s object at %p>", - Py_TYPE(*ptr)->tp_name, (void *)(*ptr)); } + // Don't call __repr__(), it might recurse into the interpreter. + printf("<%s at %p>", Py_TYPE(*ptr)->tp_name, (void *)(*ptr)); } printf("]\n"); fflush(stdout); @@ -128,18 +144,18 @@ dump_stack(_PyInterpreterFrame *frame, PyObject **stack_pointer) static void lltrace_instruction(_PyInterpreterFrame *frame, PyObject **stack_pointer, - _Py_CODEUNIT *next_instr) + _Py_CODEUNIT *next_instr, + int opcode, + int oparg) { - /* This dump_stack() operation is risky, since the repr() of some - objects enters the interpreter recursively. It is also slow. - So you might want to comment it out. */ + if (frame->owner == FRAME_OWNED_BY_CSTACK) { + return; + } dump_stack(frame, stack_pointer); - int oparg = next_instr->op.arg; - int opcode = next_instr->op.code; const char *opname = _PyOpcode_OpName[opcode]; assert(opname != NULL); - int offset = (int)(next_instr - _PyCode_CODE(frame->f_code)); - if (HAS_ARG((int)_PyOpcode_Deopt[opcode])) { + int offset = (int)(next_instr - _PyCode_CODE(_PyFrame_GetCode(frame))); + if (OPCODE_HAS_ARG((int)_PyOpcode_Deopt[opcode])) { printf("%d: %s %d\n", offset * 2, opname, oparg); } else { @@ -151,7 +167,7 @@ static void lltrace_resume_frame(_PyInterpreterFrame *frame) { PyObject *fobj = frame->f_funcobj; - if (frame->owner == FRAME_OWNED_BY_CSTACK || + if (!PyCode_Check(frame->f_executable) || fobj == NULL || !PyFunction_Check(fobj) ) { @@ -181,17 +197,43 @@ lltrace_resume_frame(_PyInterpreterFrame *frame) fflush(stdout); PyErr_SetRaisedException(exc); } + +static int +maybe_lltrace_resume_frame(_PyInterpreterFrame *frame, _PyInterpreterFrame *skip_frame, PyObject *globals) +{ + if (globals == NULL) { + return 0; + } + if (frame == skip_frame) { + return 0; + } + int r = PyDict_Contains(globals, &_Py_ID(__lltrace__)); + if (r < 0) { + return -1; + } + int lltrace = r * 5; // Levels 1-4 only trace uops + if (!lltrace) { + // Can also be controlled by environment variable + char *python_lltrace = Py_GETENV("PYTHON_LLTRACE"); + if (python_lltrace != NULL && *python_lltrace >= '0') { + lltrace = *python_lltrace - '0'; // TODO: Parse an int and all that + } + } + if (lltrace >= 5) { + lltrace_resume_frame(frame); + } + return lltrace; +} + #endif -static void monitor_raise(PyThreadState *tstate, - _PyInterpreterFrame *frame, - _Py_CODEUNIT *instr); static void monitor_reraise(PyThreadState *tstate, _PyInterpreterFrame *frame, _Py_CODEUNIT *instr); static int monitor_stop_iteration(PyThreadState *tstate, _PyInterpreterFrame *frame, - _Py_CODEUNIT *instr); + _Py_CODEUNIT *instr, + PyObject *value); static void monitor_unwind(PyThreadState *tstate, _PyInterpreterFrame *frame, _Py_CODEUNIT *instr); @@ -205,29 +247,11 @@ static void monitor_throw(PyThreadState *tstate, static PyObject * import_name(PyThreadState *, _PyInterpreterFrame *, PyObject *, PyObject *, PyObject *); static PyObject * import_from(PyThreadState *, PyObject *, PyObject *); -static void format_exc_check_arg(PyThreadState *, PyObject *, const char *, PyObject *); -static void format_exc_unbound(PyThreadState *tstate, PyCodeObject *co, int oparg); static int check_args_iterable(PyThreadState *, PyObject *func, PyObject *vararg); -static int check_except_type_valid(PyThreadState *tstate, PyObject* right); -static int check_except_star_type_valid(PyThreadState *tstate, PyObject* right); -static void format_kwargs_error(PyThreadState *, PyObject *func, PyObject *kwargs); -static void format_awaitable_error(PyThreadState *, PyTypeObject *, int); static int get_exception_handler(PyCodeObject *, int, int*, int*, int*); -static _PyInterpreterFrame * -_PyEvalFramePushAndInit(PyThreadState *tstate, PyFunctionObject *func, - PyObject *locals, PyObject* const* args, - size_t argcount, PyObject *kwnames); static _PyInterpreterFrame * _PyEvalFramePushAndInit_Ex(PyThreadState *tstate, PyFunctionObject *func, PyObject *locals, Py_ssize_t nargs, PyObject *callargs, PyObject *kwargs); -static void -_PyEvalFrameClearAndPop(PyThreadState *tstate, _PyInterpreterFrame *frame); - -#define UNBOUNDLOCAL_ERROR_MSG \ - "cannot access local variable '%s' where it is not associated with a value" -#define UNBOUNDFREE_ERROR_MSG \ - "cannot access free variable '%s' where it is not associated with a" \ - " value in enclosing scope" #ifdef HAVE_ERRNO_H #include @@ -244,12 +268,16 @@ void Py_SetRecursionLimit(int new_limit) { PyInterpreterState *interp = _PyInterpreterState_GET(); + _PyEval_StopTheWorld(interp); + HEAD_LOCK(interp->runtime); interp->ceval.recursion_limit = new_limit; for (PyThreadState *p = interp->threads.head; p != NULL; p = p->next) { int depth = p->py_recursion_limit - p->py_recursion_remaining; p->py_recursion_limit = new_limit; p->py_recursion_remaining = new_limit - depth; } + HEAD_UNLOCK(interp->runtime); + _PyEval_StartTheWorld(interp); } /* The function _Py_EnterRecursiveCallTstate() only calls _Py_CheckRecursiveCall() @@ -285,7 +313,7 @@ _Py_CheckRecursiveCall(PyThreadState *tstate, const char *where) } -static const binaryfunc binary_ops[] = { +const binaryfunc _PyEval_BinaryOps[] = { [NB_ADD] = PyNumber_Add, [NB_AND] = PyNumber_And, [NB_FLOOR_DIVIDE] = PyNumber_FloorDivide, @@ -314,14 +342,20 @@ static const binaryfunc binary_ops[] = { [NB_INPLACE_XOR] = PyNumber_InPlaceXor, }; +const conversion_func _PyEval_ConversionFuncs[4] = { + [FVC_STR] = PyObject_Str, + [FVC_REPR] = PyObject_Repr, + [FVC_ASCII] = PyObject_ASCII +}; + // PEP 634: Structural Pattern Matching // Return a tuple of values corresponding to keys, with error checks for // duplicate/missing keys. -static PyObject* -match_keys(PyThreadState *tstate, PyObject *map, PyObject *keys) +PyObject * +_PyEval_MatchKeys(PyThreadState *tstate, PyObject *map, PyObject *keys) { assert(PyTuple_CheckExact(keys)); Py_ssize_t nkeys = PyTuple_GET_SIZE(keys); @@ -402,7 +436,7 @@ fail: // Extract a named attribute from the subject, with additional bookkeeping to // raise TypeErrors for repeated lookups. On failure, return NULL (with no // error set). Use _PyErr_Occurred(tstate) to disambiguate. -static PyObject* +static PyObject * match_class_attr(PyThreadState *tstate, PyObject *subject, PyObject *type, PyObject *name, PyObject *seen) { @@ -417,18 +451,16 @@ match_class_attr(PyThreadState *tstate, PyObject *subject, PyObject *type, } return NULL; } - PyObject *attr = PyObject_GetAttr(subject, name); - if (attr == NULL && _PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) { - _PyErr_Clear(tstate); - } + PyObject *attr; + (void)PyObject_GetOptionalAttr(subject, name, &attr); return attr; } // On success (match), return a tuple of extracted attributes. On failure (no // match), return NULL. Use _PyErr_Occurred(tstate) to disambiguate. -static PyObject* -match_class(PyThreadState *tstate, PyObject *subject, PyObject *type, - Py_ssize_t nargs, PyObject *kwargs) +PyObject* +_PyEval_MatchClass(PyThreadState *tstate, PyObject *subject, PyObject *type, + Py_ssize_t nargs, PyObject *kwargs) { if (!PyType_Check(type)) { const char *e = "called match pattern must be a class"; @@ -455,7 +487,9 @@ match_class(PyThreadState *tstate, PyObject *subject, PyObject *type, // First, the positional subpatterns: if (nargs) { int match_self = 0; - match_args = PyObject_GetAttrString(type, "__match_args__"); + if (PyObject_GetOptionalAttr(type, &_Py_ID(__match_args__), &match_args) < 0) { + goto fail; + } if (match_args) { if (!PyTuple_CheckExact(match_args)) { const char *e = "%s.__match_args__ must be a tuple (got %s)"; @@ -465,8 +499,7 @@ match_class(PyThreadState *tstate, PyObject *subject, PyObject *type, goto fail; } } - else if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) { - _PyErr_Clear(tstate); + else { // _Py_TPFLAGS_MATCH_SELF is only acknowledged if the type does not // define __match_args__. This is natural behavior for subclasses: // it's as if __match_args__ is some "magic" value that is lost as @@ -475,9 +508,6 @@ match_class(PyThreadState *tstate, PyObject *subject, PyObject *type, match_self = PyType_HasFeature((PyTypeObject*)type, _Py_TPFLAGS_MATCH_SELF); } - else { - goto fail; - } assert(PyTuple_CheckExact(match_args)); Py_ssize_t allowed = match_self ? 1 : PyTuple_GET_SIZE(match_args); if (allowed < nargs) { @@ -544,12 +574,6 @@ fail: static int do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause); -static int exception_group_match( - _PyInterpreterFrame *frame, - PyObject* exc_value, PyObject *match_type, - PyObject **match, PyObject **rest); - -static int unpack_iterable(PyThreadState *, PyObject *, int, int, PyObject **); PyObject * PyEval_EvalCode(PyObject *co, PyObject *globals, PyObject *locals) @@ -602,7 +626,6 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) #include "ceval_macros.h" - int _Py_CheckRecursiveCallPy( PyThreadState *tstate) { @@ -624,15 +647,21 @@ int _Py_CheckRecursiveCallPy( return 0; } -static inline int _Py_EnterRecursivePy(PyThreadState *tstate) { - return (tstate->py_recursion_remaining-- <= 0) && - _Py_CheckRecursiveCallPy(tstate); -} +static const _Py_CODEUNIT _Py_INTERPRETER_TRAMPOLINE_INSTRUCTIONS[] = { + /* Put a NOP at the start, so that the IP points into + * the code, rather than before it */ + { .op.code = NOP, .op.arg = 0 }, + { .op.code = INTERPRETER_EXIT, .op.arg = 0 }, /* reached on return */ + { .op.code = NOP, .op.arg = 0 }, + { .op.code = INTERPRETER_EXIT, .op.arg = 0 }, /* reached on yield */ + { .op.code = RESUME, .op.arg = RESUME_OPARG_DEPTH1_MASK | RESUME_AT_FUNC_START } +}; +extern const struct _PyCode_DEF(8) _Py_InitCleanup; -static inline void _Py_LeaveRecursiveCallPy(PyThreadState *tstate) { - tstate->py_recursion_remaining++; -} +#ifdef Py_DEBUG +extern void _PyUOpPrint(const _PyUOpInstruction *uop); +#endif /* Disable unused label warnings. They are handy for debugging, even @@ -666,27 +695,16 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int #ifdef Py_STATS int lastopcode = 0; #endif - // opcode is an 8-bit value to improve the code generated by MSVC - // for the big switch below (in combination with the EXTRA_CASES macro). - uint8_t opcode; /* Current opcode */ + uint8_t opcode; /* Current opcode */ int oparg; /* Current opcode argument, if any */ #ifdef LLTRACE int lltrace = 0; #endif - _PyCFrame cframe; _PyInterpreterFrame entry_frame; - PyObject *kwnames = NULL; // Borrowed reference. Reset by CALL instructions. - /* WARNING: Because the _PyCFrame lives on the C stack, - * but can be accessed from a heap allocated object (tstate) - * strict stack discipline must be maintained. - */ - _PyCFrame *prev_cframe = tstate->cframe; - cframe.previous = prev_cframe; - tstate->cframe = &cframe; - assert(tstate->interp->interpreter_trampoline != NULL); + #ifdef Py_DEBUG /* Set these to invalid but identifiable values for debugging. */ entry_frame.f_funcobj = (PyObject*)0xaaa0; @@ -695,16 +713,15 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int entry_frame.f_globals = (PyObject*)0xaaa3; entry_frame.f_builtins = (PyObject*)0xaaa4; #endif - entry_frame.f_code = tstate->interp->interpreter_trampoline; - entry_frame.prev_instr = - _PyCode_CODE(tstate->interp->interpreter_trampoline); + entry_frame.f_executable = Py_None; + entry_frame.instr_ptr = (_Py_CODEUNIT *)_Py_INTERPRETER_TRAMPOLINE_INSTRUCTIONS + 1; entry_frame.stacktop = 0; entry_frame.owner = FRAME_OWNED_BY_CSTACK; entry_frame.return_offset = 0; /* Push frame */ - entry_frame.previous = prev_cframe->current_frame; + entry_frame.previous = tstate->current_frame; frame->previous = &entry_frame; - cframe.current_frame = frame; + tstate->current_frame = frame; tstate->c_recursion_remaining -= (PY_EVAL_C_STACK_UNITS - 1); if (_Py_EnterRecursiveCallTstate(tstate, "")) { @@ -720,45 +737,36 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int } /* Because this avoids the RESUME, * we need to update instrumentation */ - _Py_Instrument(frame->f_code, tstate->interp); - monitor_throw(tstate, frame, frame->prev_instr); + _Py_Instrument(_PyFrame_GetCode(frame), tstate->interp); + monitor_throw(tstate, frame, frame->instr_ptr); /* TO DO -- Monitor throw entry. */ goto resume_with_error; } /* Local "register" variables. * These are cached values from the frame and code object. */ - _Py_CODEUNIT *next_instr; PyObject **stack_pointer; -/* Sets the above local variables from the frame */ -#define SET_LOCALS_FROM_FRAME() \ - assert(_PyInterpreterFrame_LASTI(frame) >= -1); \ - /* Jump back to the last instruction executed... */ \ - next_instr = frame->prev_instr + 1; \ - stack_pointer = _PyFrame_GetStackPointer(frame); +#if defined(_Py_TIER2) && !defined(_Py_JIT) + /* Tier 2 interpreter state */ + _PyExecutorObject *current_executor = NULL; + const _PyUOpInstruction *next_uop = NULL; +#endif start_frame: if (_Py_EnterRecursivePy(tstate)) { goto exit_unwind; } + next_instr = frame->instr_ptr; resume_frame: - SET_LOCALS_FROM_FRAME(); + stack_pointer = _PyFrame_GetStackPointer(frame); #ifdef LLTRACE - { - if (frame != &entry_frame) { - int r = PyDict_Contains(GLOBALS(), &_Py_ID(__lltrace__)); - if (r < 0) { - goto exit_unwind; - } - lltrace = r; - } - if (lltrace) { - lltrace_resume_frame(frame); - } + lltrace = maybe_lltrace_resume_frame(frame, &entry_frame, GLOBALS()); + if (lltrace < 0) { + goto exit_unwind; } #endif @@ -771,73 +779,6 @@ resume_frame: DISPATCH(); -handle_eval_breaker: - - /* Do periodic things, like check for signals and async I/0. - * We need to do reasonably frequently, but not too frequently. - * All loops should include a check of the eval breaker. - * We also check on return from any builtin function. - * - * ## More Details ### - * - * The eval loop (this function) normally executes the instructions - * of a code object sequentially. However, the runtime supports a - * number of out-of-band execution scenarios that may pause that - * sequential execution long enough to do that out-of-band work - * in the current thread using the current PyThreadState. - * - * The scenarios include: - * - * - cyclic garbage collection - * - GIL drop requests - * - "async" exceptions - * - "pending calls" (some only in the main thread) - * - signal handling (only in the main thread) - * - * When the need for one of the above is detected, the eval loop - * pauses long enough to handle the detected case. Then, if doing - * so didn't trigger an exception, the eval loop resumes executing - * the sequential instructions. - * - * To make this work, the eval loop periodically checks if any - * of the above needs to happen. The individual checks can be - * expensive if computed each time, so a while back we switched - * to using pre-computed, per-interpreter variables for the checks, - * and later consolidated that to a single "eval breaker" variable - * (now a PyInterpreterState field). - * - * For the longest time, the eval breaker check would happen - * frequently, every 5 or so times through the loop, regardless - * of what instruction ran last or what would run next. Then, in - * early 2021 (gh-18334, commit 4958f5d), we switched to checking - * the eval breaker less frequently, by hard-coding the check to - * specific places in the eval loop (e.g. certain instructions). - * The intent then was to check after returning from calls - * and on the back edges of loops. - * - * In addition to being more efficient, that approach keeps - * the eval loop from running arbitrary code between instructions - * that don't handle that well. (See gh-74174.) - * - * Currently, the eval breaker check happens here at the - * "handle_eval_breaker" label. Some instructions come here - * explicitly (goto) and some indirectly. Notably, the check - * happens on back edges in the control flow graph, which - * pretty much applies to all loops and most calls. - * (See bytecodes.c for exact information.) - * - * One consequence of this approach is that it might not be obvious - * how to force any specific thread to pick up the eval breaker, - * or for any specific thread to not pick it up. Mostly this - * involves judicious uses of locks and careful ordering of code, - * while avoiding code that might trigger the eval breaker - * until so desired. - */ - if (_Py_HandlePending(tstate) != 0) { - goto error; - } - DISPATCH(); - { /* Start instructions */ #if !USE_COMPUTED_GOTOS @@ -849,7 +790,7 @@ handle_eval_breaker: #include "generated_cases.c.h" /* INSTRUMENTED_LINE has to be here, rather than in bytecodes.c, - * because it needs to capture frame->prev_instr before it is updated, + * because it needs to capture frame->instr_ptr before it is updated, * as happens in the standard instruction prologue. */ #if USE_COMPUTED_GOTOS @@ -858,25 +799,33 @@ handle_eval_breaker: case INSTRUMENTED_LINE: #endif { - _Py_CODEUNIT *prev = frame->prev_instr; - _Py_CODEUNIT *here = frame->prev_instr = next_instr; - _PyFrame_SetStackPointer(frame, stack_pointer); - int original_opcode = _Py_call_instrumentation_line( - tstate, frame, here, prev); - stack_pointer = _PyFrame_GetStackPointer(frame); - if (original_opcode < 0) { - next_instr = here+1; - goto error; + _Py_CODEUNIT *prev = frame->instr_ptr; + _Py_CODEUNIT *here = frame->instr_ptr = next_instr; + int original_opcode = 0; + if (tstate->tracing) { + PyCodeObject *code = _PyFrame_GetCode(frame); + int index = (int)(here - _PyCode_CODE(code)); + original_opcode = code->_co_monitoring->lines->data[index*code->_co_monitoring->lines->bytes_per_entry]; } - next_instr = frame->prev_instr; - if (next_instr != here) { - DISPATCH(); + else { + _PyFrame_SetStackPointer(frame, stack_pointer); + original_opcode = _Py_call_instrumentation_line( + tstate, frame, here, prev); + stack_pointer = _PyFrame_GetStackPointer(frame); + if (original_opcode < 0) { + next_instr = here+1; + goto error; + } + next_instr = frame->instr_ptr; + if (next_instr != here) { + DISPATCH(); + } } if (_PyOpcode_Caches[original_opcode]) { _PyBinaryOpCache *cache = (_PyBinaryOpCache *)(next_instr+1); /* Prevent the underlying instruction from specializing * and overwriting the instrumentation. */ - INCREMENT_ADAPTIVE_COUNTER(cache->counter); + PAUSE_ADAPTIVE_COUNTER(cache->counter); } opcode = original_opcode; DISPATCH_GOTO(); @@ -886,14 +835,14 @@ handle_eval_breaker: #if USE_COMPUTED_GOTOS _unknown_opcode: #else - EXTRA_CASES // From opcode.h, a 'case' for each unused opcode + EXTRA_CASES // From pycore_opcode_metadata.h, a 'case' for each unused opcode #endif /* Tell C compilers not to hold the opcode variable in the loop. next_instr points the current instruction without TARGET(). */ opcode = next_instr->op.code; _PyErr_Format(tstate, PyExc_SystemError, "%U:%d: unknown opcode %d", - frame->f_code->co_filename, + _PyFrame_GetCode(frame)->co_filename, PyUnstable_InterpreterFrame_GetLine(frame), opcode); goto error; @@ -904,15 +853,6 @@ handle_eval_breaker: or goto error. */ Py_UNREACHABLE(); -unbound_local_error: - { - format_exc_check_arg(tstate, PyExc_UnboundLocalError, - UNBOUNDLOCAL_ERROR_MSG, - PyTuple_GetItem(frame->f_code->co_localsplusnames, oparg) - ); - goto error; - } - pop_4_error: STACK_SHRINK(1); pop_3_error: @@ -922,7 +862,6 @@ pop_2_error: pop_1_error: STACK_SHRINK(1); error: - kwnames = NULL; /* Double-check exception status. */ #ifdef NDEBUG if (!_PyErr_Occurred(tstate)) { @@ -941,13 +880,13 @@ error: PyTraceBack_Here(f); } } - monitor_raise(tstate, frame, next_instr-1); + _PyEval_MonitorRaise(tstate, frame, next_instr-1); exception_unwind: { - /* We can't use frame->f_lasti here, as RERAISE may have set it */ + /* We can't use frame->instr_ptr here, as RERAISE may have set it */ int offset = INSTR_OFFSET()-1; int level, handler, lasti; - if (get_exception_handler(frame->f_code, offset, &level, &handler, &lasti) == 0) { + if (get_exception_handler(_PyFrame_GetCode(frame), offset, &level, &handler, &lasti) == 0) { // No handlers, so exit. assert(_PyErr_Occurred(tstate)); @@ -973,7 +912,11 @@ exception_unwind: int frame_lasti = _PyInterpreterFrame_LASTI(frame); PyObject *lasti = PyLong_FromLong(frame_lasti); if (lasti == NULL) { - goto exception_unwind; + // Instead of going back to exception_unwind (which would cause + // infinite recursion), directly exit to let the original exception + // propagate up and hopefully be handled at a higher level. + _PyFrame_SetStackPointer(frame, stack_pointer); + goto exit_unwind; } PUSH(lasti); } @@ -984,11 +927,17 @@ exception_unwind: Python main loop. */ PyObject *exc = _PyErr_GetRaisedException(tstate); PUSH(exc); - JUMPTO(handler); + next_instr = _PyCode_CODE(_PyFrame_GetCode(frame)) + handler; + if (monitor_handled(tstate, frame, next_instr, exc) < 0) { goto exception_unwind; } /* Resume normal execution */ +#ifdef LLTRACE + if (lltrace >= 5) { + lltrace_resume_frame(frame); + } +#endif DISPATCH(); } } @@ -999,22 +948,181 @@ exit_unwind: assert(frame != &entry_frame); // GH-99729: We need to unlink the frame *before* clearing it: _PyInterpreterFrame *dying = frame; - frame = cframe.current_frame = dying->previous; - _PyEvalFrameClearAndPop(tstate, dying); + frame = tstate->current_frame = dying->previous; + _PyEval_FrameClearAndPop(tstate, dying); frame->return_offset = 0; if (frame == &entry_frame) { - /* Restore previous cframe and exit */ - tstate->cframe = cframe.previous; - assert(tstate->cframe->current_frame == frame->previous); + /* Restore previous frame and exit */ + tstate->current_frame = frame->previous; tstate->c_recursion_remaining += PY_EVAL_C_STACK_UNITS; return NULL; } resume_with_error: - SET_LOCALS_FROM_FRAME(); + next_instr = frame->instr_ptr; + stack_pointer = _PyFrame_GetStackPointer(frame); goto error; + +#ifdef _Py_TIER2 + +// Tier 2 is also here! +enter_tier_two: + +#ifdef _Py_JIT + assert(0); +#else + +#undef LOAD_IP +#define LOAD_IP(UNUSED) (void)0 + +#undef GOTO_ERROR +#define GOTO_ERROR(LABEL) goto LABEL ## _tier_two + +#ifdef Py_STATS +// Disable these macros that apply to Tier 1 stats when we are in Tier 2 +#undef STAT_INC +#define STAT_INC(opname, name) ((void)0) +#undef STAT_DEC +#define STAT_DEC(opname, name) ((void)0) +#endif + +#undef ENABLE_SPECIALIZATION +#define ENABLE_SPECIALIZATION 0 + +#ifdef Py_DEBUG + #define DPRINTF(level, ...) \ + if (lltrace >= (level)) { printf(__VA_ARGS__); } +#else + #define DPRINTF(level, ...) +#endif + + ; // dummy statement after a label, before a declaration + uint16_t uopcode; +#ifdef Py_STATS + int lastuop = 0; + uint64_t trace_uop_execution_counter = 0; +#endif + + assert(next_uop->opcode == _START_EXECUTOR || next_uop->opcode == _COLD_EXIT); +tier2_dispatch: + for (;;) { + uopcode = next_uop->opcode; +#ifdef Py_DEBUG + if (lltrace >= 3) { + if (next_uop->opcode == _START_EXECUTOR || next_uop->opcode == _COLD_EXIT) { + printf("%4d uop: ", 0); + } + else { + printf("%4d uop: ", (int)(next_uop - current_executor->trace)); + } + _PyUOpPrint(next_uop); + printf(" stack_level=%d\n", + (int)(stack_pointer - _PyFrame_Stackbase(frame))); + } +#endif + next_uop++; + OPT_STAT_INC(uops_executed); + UOP_STAT_INC(uopcode, execution_count); + UOP_PAIR_INC(uopcode, lastuop); +#ifdef Py_STATS + trace_uop_execution_counter++; +#endif + + switch (uopcode) { + +#include "executor_cases.c.h" + + default: +#ifdef Py_DEBUG + { + printf("Unknown uop: "); + _PyUOpPrint(&next_uop[-1]); + printf(" @ %d\n", (int)(next_uop - current_executor->trace - 1)); + Py_FatalError("Unknown uop"); + } +#else + Py_UNREACHABLE(); +#endif + + } + } + +jump_to_error_target: +#ifdef Py_DEBUG + if (lltrace >= 2) { + printf("Error: [UOp "); + _PyUOpPrint(&next_uop[-1]); + printf(" @ %d -> %s]\n", + (int)(next_uop - current_executor->trace - 1), + _PyOpcode_OpName[frame->instr_ptr->op.code]); + } +#endif + assert (next_uop[-1].format == UOP_FORMAT_JUMP); + uint16_t target = uop_get_error_target(&next_uop[-1]); + next_uop = current_executor->trace + target; + goto tier2_dispatch; + +error_tier_two: + OPT_HIST(trace_uop_execution_counter, trace_run_length_hist); + assert(next_uop[-1].format == UOP_FORMAT_TARGET); + frame->return_offset = 0; // Don't leave this random + _PyFrame_SetStackPointer(frame, stack_pointer); + Py_DECREF(current_executor); + tstate->previous_executor = NULL; + goto resume_with_error; + +jump_to_jump_target: + assert(next_uop[-1].format == UOP_FORMAT_JUMP); + target = uop_get_jump_target(&next_uop[-1]); + next_uop = current_executor->trace + target; + goto tier2_dispatch; + +exit_to_tier1_dynamic: + next_instr = frame->instr_ptr; + goto goto_to_tier1; +exit_to_tier1: + assert(next_uop[-1].format == UOP_FORMAT_TARGET); + next_instr = next_uop[-1].target + _PyCode_CODE(_PyFrame_GetCode(frame)); +goto_to_tier1: +#ifdef Py_DEBUG + if (lltrace >= 2) { + printf("DEOPT: [UOp "); + _PyUOpPrint(&next_uop[-1]); + printf(" -> %s]\n", + _PyOpcode_OpName[next_instr->op.code]); + } +#endif + OPT_HIST(trace_uop_execution_counter, trace_run_length_hist); + Py_DECREF(current_executor); + tstate->previous_executor = NULL; + DISPATCH(); + +exit_to_trace: + assert(next_uop[-1].format == UOP_FORMAT_EXIT); + OPT_HIST(trace_uop_execution_counter, trace_run_length_hist); + uint32_t exit_index = next_uop[-1].exit_index; + assert(exit_index < current_executor->exit_count); + _PyExitData *exit = ¤t_executor->exits[exit_index]; +#ifdef Py_DEBUG + if (lltrace >= 2) { + printf("SIDE EXIT: [UOp "); + _PyUOpPrint(&next_uop[-1]); + printf(", exit %u, temp %d, target %d -> %s]\n", + exit_index, exit->temperature.as_counter, exit->target, + _PyOpcode_OpName[_PyCode_CODE(_PyFrame_GetCode(frame))[exit->target].op.code]); + } +#endif + Py_INCREF(exit->executor); + tstate->previous_executor = (PyObject *)current_executor; + GOTO_TIER_TWO(exit->executor); + +#endif // _Py_JIT + +#endif // _Py_TIER2 + } + #if defined(__GNUC__) # pragma GCC diagnostic pop #elif defined(_MSC_VER) /* MS_WINDOWS */ @@ -1358,7 +1466,7 @@ initialize_locals(PyThreadState *tstate, PyFunctionObject *func, if (co->co_flags & CO_VARARGS) { PyObject *u = NULL; if (argcount == n) { - u = Py_NewRef(&_Py_SINGLETON(tuple_empty)); + u = (PyObject *)&_Py_SINGLETON(tuple_empty); } else { assert(args != NULL); @@ -1426,9 +1534,33 @@ initialize_locals(PyThreadState *tstate, PyFunctionObject *func, goto kw_fail; } - _PyErr_Format(tstate, PyExc_TypeError, - "%U() got an unexpected keyword argument '%S'", - func->func_qualname, keyword); + PyObject* suggestion_keyword = NULL; + if (total_args > co->co_posonlyargcount) { + PyObject* possible_keywords = PyList_New(total_args - co->co_posonlyargcount); + + if (!possible_keywords) { + PyErr_Clear(); + } else { + for (Py_ssize_t k = co->co_posonlyargcount; k < total_args; k++) { + PyList_SET_ITEM(possible_keywords, k - co->co_posonlyargcount, co_varnames[k]); + } + + suggestion_keyword = _Py_CalculateSuggestions(possible_keywords, keyword); + Py_DECREF(possible_keywords); + } + } + + if (suggestion_keyword) { + _PyErr_Format(tstate, PyExc_TypeError, + "%U() got an unexpected keyword argument '%S'. Did you mean '%S'?", + func->func_qualname, keyword, suggestion_keyword); + Py_DECREF(suggestion_keyword); + } else { + _PyErr_Format(tstate, PyExc_TypeError, + "%U() got an unexpected keyword argument '%S'", + func->func_qualname, keyword); + } + goto kw_fail; } @@ -1501,14 +1633,14 @@ initialize_locals(PyThreadState *tstate, PyFunctionObject *func, continue; PyObject *varname = PyTuple_GET_ITEM(co->co_localsplusnames, i); if (func->func_kwdefaults != NULL) { - PyObject *def = PyDict_GetItemWithError(func->func_kwdefaults, varname); + PyObject *def; + if (PyDict_GetItemRef(func->func_kwdefaults, varname, &def) < 0) { + goto fail_post_args; + } if (def) { - localsplus[i] = Py_NewRef(def); + localsplus[i] = def; continue; } - else if (_PyErr_Occurred(tstate)) { - goto fail_post_args; - } } missing++; } @@ -1543,12 +1675,12 @@ clear_thread_frame(PyThreadState *tstate, _PyInterpreterFrame * frame) assert(frame->owner == FRAME_OWNED_BY_THREAD); // Make sure that this is, indeed, the top frame. We can't check this in // _PyThreadState_PopFrame, since f_code is already cleared at that point: - assert((PyObject **)frame + frame->f_code->co_framesize == + assert((PyObject **)frame + _PyFrame_GetCode(frame)->co_framesize == tstate->datastack_top); tstate->c_recursion_remaining--; assert(frame->frame_obj == NULL || frame->frame_obj->f_frame == frame); _PyFrame_ClearExceptCode(frame); - Py_DECREF(frame->f_code); + Py_DECREF(frame->f_executable); tstate->c_recursion_remaining++; _PyThreadState_PopFrame(tstate, frame); } @@ -1565,12 +1697,13 @@ clear_gen_frame(PyThreadState *tstate, _PyInterpreterFrame * frame) tstate->c_recursion_remaining--; assert(frame->frame_obj == NULL || frame->frame_obj->f_frame == frame); _PyFrame_ClearExceptCode(frame); + _PyErr_ClearExcState(&gen->gi_exc_state); tstate->c_recursion_remaining++; frame->previous = NULL; } -static void -_PyEvalFrameClearAndPop(PyThreadState *tstate, _PyInterpreterFrame * frame) +void +_PyEval_FrameClearAndPop(PyThreadState *tstate, _PyInterpreterFrame * frame) { if (frame->owner == FRAME_OWNED_BY_THREAD) { clear_thread_frame(tstate, frame); @@ -1581,7 +1714,7 @@ _PyEvalFrameClearAndPop(PyThreadState *tstate, _PyInterpreterFrame * frame) } /* Consumes references to func, locals and all the args */ -static _PyInterpreterFrame * +_PyInterpreterFrame * _PyEvalFramePushAndInit(PyThreadState *tstate, PyFunctionObject *func, PyObject *locals, PyObject* const* args, size_t argcount, PyObject *kwnames) @@ -1601,6 +1734,8 @@ _PyEvalFramePushAndInit(PyThreadState *tstate, PyFunctionObject *func, return frame; fail: /* Consume the references */ + Py_DECREF(func); + Py_XDECREF(locals); for (size_t i = 0; i < argcount; i++) { Py_DECREF(args[i]); } @@ -1822,6 +1957,14 @@ do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause) fixed_cause = _PyObject_CallNoArgs(cause); if (fixed_cause == NULL) goto raise_error; + if (!PyExceptionInstance_Check(fixed_cause)) { + _PyErr_Format(tstate, PyExc_TypeError, + "calling %R should have returned an instance of " + "BaseException, not %R", + cause, Py_TYPE(fixed_cause)); + Py_DECREF(fixed_cause); + goto raise_error; + } Py_DECREF(cause); } else if (PyExceptionInstance_Check(cause)) { @@ -1857,9 +2000,9 @@ raise_error: complicated for inlining). */ -static int -exception_group_match(_PyInterpreterFrame *frame, PyObject* exc_value, PyObject *match_type, - PyObject **match, PyObject **rest) +int +_PyEval_ExceptionGroupMatch(PyObject* exc_value, PyObject *match_type, + PyObject **match, PyObject **rest) { if (Py_IsNone(exc_value)) { *match = Py_NewRef(Py_None); @@ -1885,6 +2028,8 @@ exception_group_match(_PyInterpreterFrame *frame, PyObject* exc_value, PyObject if (wrapped == NULL) { return -1; } + PyThreadState *tstate = _PyThreadState_GET(); + _PyInterpreterFrame *frame = _PyThreadState_GetFrame(tstate); PyFrameObject *f = _PyFrame_GetFrameObject(frame); if (f != NULL) { PyObject *tb = _PyTraceBack_FromFrame(NULL, f); @@ -1946,9 +2091,9 @@ exception_group_match(_PyInterpreterFrame *frame, PyObject* exc_value, PyObject with a variable target. */ -static int -unpack_iterable(PyThreadState *tstate, PyObject *v, - int argcnt, int argcntafter, PyObject **sp) +int +_PyEval_UnpackIterable(PyThreadState *tstate, PyObject *v, + int argcnt, int argcntafter, PyObject **sp) { int i = 0, j = 0; Py_ssize_t ll = 0; @@ -2044,6 +2189,9 @@ do_monitor_exc(PyThreadState *tstate, _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, int event) { assert(event < _PY_MONITORING_UNGROUPED_EVENTS); + if (_PyFrame_GetCode(frame)->co_flags & CO_NO_MONITORING_EVENTS) { + return 0; + } PyObject *exc = PyErr_GetRaisedException(); assert(exc != NULL); int err = _Py_call_instrumentation_arg(tstate, event, frame, instr, exc); @@ -2067,7 +2215,7 @@ static inline bool no_tools_for_local_event(PyThreadState *tstate, _PyInterpreterFrame *frame, int event) { assert(event < _PY_MONITORING_LOCAL_EVENTS); - _PyCoMonitoringData *data = frame->f_code->_co_monitoring; + _PyCoMonitoringData *data = _PyFrame_GetCode(frame)->_co_monitoring; if (data) { return data->active_monitors.tools[event] == 0; } @@ -2076,8 +2224,8 @@ no_tools_for_local_event(PyThreadState *tstate, _PyInterpreterFrame *frame, int } } -static void -monitor_raise(PyThreadState *tstate, _PyInterpreterFrame *frame, +void +_PyEval_MonitorRaise(PyThreadState *tstate, _PyInterpreterFrame *frame, _Py_CODEUNIT *instr) { if (no_tools_for_global_event(tstate, PY_MONITORING_EVENT_RAISE)) { @@ -2098,12 +2246,19 @@ monitor_reraise(PyThreadState *tstate, _PyInterpreterFrame *frame, static int monitor_stop_iteration(PyThreadState *tstate, _PyInterpreterFrame *frame, - _Py_CODEUNIT *instr) + _Py_CODEUNIT *instr, PyObject *value) { if (no_tools_for_local_event(tstate, frame, PY_MONITORING_EVENT_STOP_ITERATION)) { return 0; } - return do_monitor_exc(tstate, frame, instr, PY_MONITORING_EVENT_STOP_ITERATION); + assert(!PyErr_Occurred()); + PyErr_SetObject(PyExc_StopIteration, value); + int res = do_monitor_exc(tstate, frame, instr, PY_MONITORING_EVENT_STOP_ITERATION); + if (res < 0) { + return res; + } + PyErr_SetRaisedException(NULL); + return 0; } static void @@ -2177,28 +2332,17 @@ PyEval_SetProfile(Py_tracefunc func, PyObject *arg) PyThreadState *tstate = _PyThreadState_GET(); if (_PyEval_SetProfile(tstate, func, arg) < 0) { /* Log _PySys_Audit() error */ - _PyErr_WriteUnraisableMsg("in PyEval_SetProfile", NULL); + PyErr_FormatUnraisable("Exception ignored in PyEval_SetProfile"); } } void PyEval_SetProfileAllThreads(Py_tracefunc func, PyObject *arg) { - PyThreadState *this_tstate = _PyThreadState_GET(); - PyInterpreterState* interp = this_tstate->interp; - - _PyRuntimeState *runtime = &_PyRuntime; - HEAD_LOCK(runtime); - PyThreadState* ts = PyInterpreterState_ThreadHead(interp); - HEAD_UNLOCK(runtime); - - while (ts) { - if (_PyEval_SetProfile(ts, func, arg) < 0) { - _PyErr_WriteUnraisableMsg("in PyEval_SetProfileAllThreads", NULL); - } - HEAD_LOCK(runtime); - ts = PyThreadState_Next(ts); - HEAD_UNLOCK(runtime); + PyInterpreterState *interp = _PyInterpreterState_GET(); + if (_PyEval_SetProfileAllThreads(interp, func, arg) < 0) { + /* Log _PySys_Audit() error */ + PyErr_FormatUnraisable("Exception ignored in PyEval_SetProfileAllThreads"); } } @@ -2208,28 +2352,17 @@ PyEval_SetTrace(Py_tracefunc func, PyObject *arg) PyThreadState *tstate = _PyThreadState_GET(); if (_PyEval_SetTrace(tstate, func, arg) < 0) { /* Log _PySys_Audit() error */ - _PyErr_WriteUnraisableMsg("in PyEval_SetTrace", NULL); + PyErr_FormatUnraisable("Exception ignored in PyEval_SetTrace"); } } void PyEval_SetTraceAllThreads(Py_tracefunc func, PyObject *arg) { - PyThreadState *this_tstate = _PyThreadState_GET(); - PyInterpreterState* interp = this_tstate->interp; - - _PyRuntimeState *runtime = &_PyRuntime; - HEAD_LOCK(runtime); - PyThreadState* ts = PyInterpreterState_ThreadHead(interp); - HEAD_UNLOCK(runtime); - - while (ts) { - if (_PyEval_SetTrace(ts, func, arg) < 0) { - _PyErr_WriteUnraisableMsg("in PyEval_SetTraceAllThreads", NULL); - } - HEAD_LOCK(runtime); - ts = PyThreadState_Next(ts); - HEAD_UNLOCK(runtime); + PyInterpreterState *interp = _PyInterpreterState_GET(); + if (_PyEval_SetTraceAllThreads(interp, func, arg) < 0) { + /* Log _PySys_Audit() error */ + PyErr_FormatUnraisable("Exception ignored in PyEval_SetTraceAllThreads"); } } @@ -2335,10 +2468,9 @@ PyEval_GetBuiltins(void) PyObject * _PyEval_GetBuiltin(PyObject *name) { - PyThreadState *tstate = _PyThreadState_GET(); - PyObject *attr = PyObject_GetItem(PyEval_GetBuiltins(), name); - if (attr == NULL && _PyErr_ExceptionMatches(tstate, PyExc_KeyError)) { - _PyErr_SetObject(tstate, PyExc_AttributeError, name); + PyObject *attr; + if (PyMapping_GetOptionalItem(PyEval_GetBuiltins(), name, &attr) == 0) { + PyErr_SetObject(PyExc_AttributeError, name); } return attr; } @@ -2352,6 +2484,7 @@ _PyEval_GetBuiltinId(_Py_Identifier *name) PyObject * PyEval_GetLocals(void) { + // We need to return a borrowed reference here, so some tricks are needed PyThreadState *tstate = _PyThreadState_GET(); _PyInterpreterFrame *current_frame = _PyThreadState_GetFrame(tstate); if (current_frame == NULL) { @@ -2359,12 +2492,37 @@ PyEval_GetLocals(void) return NULL; } - if (_PyFrame_FastToLocalsWithError(current_frame) < 0) { + // Be aware that this returns a new reference + PyObject *locals = _PyFrame_GetLocals(current_frame); + + if (locals == NULL) { return NULL; } - PyObject *locals = current_frame->f_locals; - assert(locals != NULL); + if (PyFrameLocalsProxy_Check(locals)) { + PyFrameObject *f = _PyFrame_GetFrameObject(current_frame); + PyObject *ret = f->f_locals_cache; + if (ret == NULL) { + ret = PyDict_New(); + if (ret == NULL) { + Py_DECREF(locals); + return NULL; + } + f->f_locals_cache = ret; + } + if (PyDict_Update(ret, locals) < 0) { + // At this point, if the cache dict is broken, it will stay broken, as + // trying to clean it up or replace it will just cause other problems + ret = NULL; + } + Py_DECREF(locals); + return ret; + } + + assert(PyMapping_Check(locals)); + assert(Py_REFCNT(locals) > 1); + Py_DECREF(locals); + return locals; } @@ -2378,7 +2536,28 @@ _PyEval_GetFrameLocals(void) return NULL; } - return _PyFrame_GetLocals(current_frame, 1); + PyObject *locals = _PyFrame_GetLocals(current_frame); + if (locals == NULL) { + return NULL; + } + + if (PyFrameLocalsProxy_Check(locals)) { + PyObject* ret = PyDict_New(); + if (ret == NULL) { + Py_DECREF(locals); + return NULL; + } + if (PyDict_Update(ret, locals) < 0) { + Py_DECREF(ret); + Py_DECREF(locals); + return NULL; + } + Py_DECREF(locals); + return ret; + } + + assert(PyMapping_Check(locals)); + return locals; } PyObject * @@ -2392,15 +2571,37 @@ PyEval_GetGlobals(void) return current_frame->f_globals; } +PyObject* +PyEval_GetFrameLocals(void) +{ + return _PyEval_GetFrameLocals(); +} + +PyObject* PyEval_GetFrameGlobals(void) +{ + PyThreadState *tstate = _PyThreadState_GET(); + _PyInterpreterFrame *current_frame = _PyThreadState_GetFrame(tstate); + if (current_frame == NULL) { + return NULL; + } + return Py_XNewRef(current_frame->f_globals); +} + +PyObject* PyEval_GetFrameBuiltins(void) +{ + PyThreadState *tstate = _PyThreadState_GET(); + return Py_XNewRef(_PyEval_GetBuiltins(tstate)); +} + int PyEval_MergeCompilerFlags(PyCompilerFlags *cf) { PyThreadState *tstate = _PyThreadState_GET(); - _PyInterpreterFrame *current_frame = tstate->cframe->current_frame; + _PyInterpreterFrame *current_frame = tstate->current_frame; int result = cf->cf_flags != 0; if (current_frame != NULL) { - const int codeflags = current_frame->f_code->co_flags; + const int codeflags = _PyFrame_GetCode(current_frame)->co_flags; const int compilerflags = codeflags & PyCF_MASK; if (compilerflags) { result = 1; @@ -2489,39 +2690,37 @@ static PyObject * import_name(PyThreadState *tstate, _PyInterpreterFrame *frame, PyObject *name, PyObject *fromlist, PyObject *level) { - PyObject *import_func, *res; - PyObject* stack[5]; - - import_func = PyObject_GetItem(frame->f_builtins, &_Py_ID(__import__)); + PyObject *import_func; + if (PyMapping_GetOptionalItem(frame->f_builtins, &_Py_ID(__import__), &import_func) < 0) { + return NULL; + } if (import_func == NULL) { - if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) { - _PyErr_SetString(tstate, PyExc_ImportError, "__import__ not found"); - } + _PyErr_SetString(tstate, PyExc_ImportError, "__import__ not found"); return NULL; } + PyObject *locals = frame->f_locals; + if (locals == NULL) { + locals = Py_None; + } + /* Fast path for not overloaded __import__. */ if (_PyImport_IsDefaultImportFunc(tstate->interp, import_func)) { Py_DECREF(import_func); - int ilevel = _PyLong_AsInt(level); + int ilevel = PyLong_AsInt(level); if (ilevel == -1 && _PyErr_Occurred(tstate)) { return NULL; } - res = PyImport_ImportModuleLevelObject( + return PyImport_ImportModuleLevelObject( name, frame->f_globals, - locals == NULL ? Py_None :locals, + locals, fromlist, ilevel); - return res; } - stack[0] = name; - stack[1] = frame->f_globals; - stack[2] = locals == NULL ? Py_None : locals; - stack[3] = fromlist; - stack[4] = level; - res = _PyObject_FastCall(import_func, stack, 5); + PyObject* args[5] = {name, frame->f_globals, locals, fromlist, level}; + PyObject *res = PyObject_Vectorcall(import_func, args, 5, NULL); Py_DECREF(import_func); return res; } @@ -2530,25 +2729,24 @@ static PyObject * import_from(PyThreadState *tstate, PyObject *v, PyObject *name) { PyObject *x; - PyObject *fullmodname, *pkgname, *pkgpath, *pkgname_or_unknown, *errmsg; + PyObject *fullmodname, *mod_name, *origin, *mod_name_or_unknown, *errmsg, *spec; - if (_PyObject_LookupAttr(v, name, &x) != 0) { + if (PyObject_GetOptionalAttr(v, name, &x) != 0) { return x; } /* Issue #17636: in case this failed because of a circular relative import, try to fallback on reading the module directly from sys.modules. */ - pkgname = PyObject_GetAttr(v, &_Py_ID(__name__)); - if (pkgname == NULL) { - goto error; + if (PyObject_GetOptionalAttr(v, &_Py_ID(__name__), &mod_name) < 0) { + return NULL; } - if (!PyUnicode_Check(pkgname)) { - Py_CLEAR(pkgname); + if (mod_name == NULL || !PyUnicode_Check(mod_name)) { + Py_CLEAR(mod_name); goto error; } - fullmodname = PyUnicode_FromFormat("%U.%U", pkgname, name); + fullmodname = PyUnicode_FromFormat("%U.%U", mod_name, name); if (fullmodname == NULL) { - Py_DECREF(pkgname); + Py_DECREF(mod_name); return NULL; } x = PyImport_GetModule(fullmodname); @@ -2556,46 +2754,142 @@ import_from(PyThreadState *tstate, PyObject *v, PyObject *name) if (x == NULL && !_PyErr_Occurred(tstate)) { goto error; } - Py_DECREF(pkgname); + Py_DECREF(mod_name); return x; + error: - pkgpath = PyModule_GetFilenameObject(v); - if (pkgname == NULL) { - pkgname_or_unknown = PyUnicode_FromString(""); - if (pkgname_or_unknown == NULL) { - Py_XDECREF(pkgpath); + if (mod_name == NULL) { + mod_name_or_unknown = PyUnicode_FromString(""); + if (mod_name_or_unknown == NULL) { return NULL; } } else { - pkgname_or_unknown = pkgname; + mod_name_or_unknown = mod_name; } + // mod_name is no longer an owned reference + assert(mod_name_or_unknown); + assert(mod_name == NULL || mod_name == mod_name_or_unknown); - if (pkgpath == NULL || !PyUnicode_Check(pkgpath)) { - _PyErr_Clear(tstate); + origin = NULL; + if (PyObject_GetOptionalAttr(v, &_Py_ID(__spec__), &spec) < 0) { + Py_DECREF(mod_name_or_unknown); + return NULL; + } + if (spec == NULL) { errmsg = PyUnicode_FromFormat( "cannot import name %R from %R (unknown location)", - name, pkgname_or_unknown + name, mod_name_or_unknown + ); + goto done_with_errmsg; + } + if (_PyModuleSpec_GetFileOrigin(spec, &origin) < 0) { + goto done; + } + + int is_possibly_shadowing = _PyModule_IsPossiblyShadowing(origin); + if (is_possibly_shadowing < 0) { + goto done; + } + int is_possibly_shadowing_stdlib = 0; + if (is_possibly_shadowing) { + PyObject *stdlib_modules; + if (_PySys_GetOptionalAttrString("stdlib_module_names", &stdlib_modules) < 0) { + goto done; + } + if (stdlib_modules && PyAnySet_Check(stdlib_modules)) { + is_possibly_shadowing_stdlib = PySet_Contains(stdlib_modules, mod_name_or_unknown); + if (is_possibly_shadowing_stdlib < 0) { + Py_DECREF(stdlib_modules); + goto done; + } + } + Py_XDECREF(stdlib_modules); + } + + if (origin == NULL && PyModule_Check(v)) { + // Fall back to __file__ for diagnostics if we don't have + // an origin that is a location + origin = PyModule_GetFilenameObject(v); + if (origin == NULL) { + if (!PyErr_ExceptionMatches(PyExc_SystemError)) { + goto done; + } + // PyModule_GetFilenameObject raised "module filename missing" + _PyErr_Clear(tstate); + } + assert(origin == NULL || PyUnicode_Check(origin)); + } + + if (is_possibly_shadowing_stdlib) { + assert(origin); + errmsg = PyUnicode_FromFormat( + "cannot import name %R from %R " + "(consider renaming %R since it has the same " + "name as the standard library module named %R " + "and prevents importing that standard library module)", + name, mod_name_or_unknown, origin, mod_name_or_unknown ); - /* NULL checks for errmsg and pkgname done by PyErr_SetImportError. */ - _PyErr_SetImportErrorWithNameFrom(errmsg, pkgname, NULL, name); } else { - PyObject *spec = PyObject_GetAttr(v, &_Py_ID(__spec__)); - const char *fmt = - _PyModuleSpec_IsInitializing(spec) ? - "cannot import name %R from partially initialized module %R " - "(most likely due to a circular import) (%S)" : - "cannot import name %R from %R (%S)"; - Py_XDECREF(spec); - - errmsg = PyUnicode_FromFormat(fmt, name, pkgname_or_unknown, pkgpath); - /* NULL checks for errmsg and pkgname done by PyErr_SetImportError. */ - _PyErr_SetImportErrorWithNameFrom(errmsg, pkgname, pkgpath, name); - } - - Py_XDECREF(errmsg); - Py_XDECREF(pkgname_or_unknown); - Py_XDECREF(pkgpath); + int rc = _PyModuleSpec_IsInitializing(spec); + if (rc < 0) { + goto done; + } + else if (rc > 0) { + if (is_possibly_shadowing) { + assert(origin); + // For non-stdlib modules, only mention the possibility of + // shadowing if the module is being initialized. + errmsg = PyUnicode_FromFormat( + "cannot import name %R from %R " + "(consider renaming %R if it has the same name " + "as a library you intended to import)", + name, mod_name_or_unknown, origin + ); + } + else if (origin) { + errmsg = PyUnicode_FromFormat( + "cannot import name %R from partially initialized module %R " + "(most likely due to a circular import) (%S)", + name, mod_name_or_unknown, origin + ); + } + else { + errmsg = PyUnicode_FromFormat( + "cannot import name %R from partially initialized module %R " + "(most likely due to a circular import)", + name, mod_name_or_unknown + ); + } + } + else { + assert(rc == 0); + if (origin) { + errmsg = PyUnicode_FromFormat( + "cannot import name %R from %R (%S)", + name, mod_name_or_unknown, origin + ); + } + else { + errmsg = PyUnicode_FromFormat( + "cannot import name %R from %R (unknown location)", + name, mod_name_or_unknown + ); + } + } + } + +done_with_errmsg: + if (errmsg != NULL) { + /* NULL checks for mod_name and origin done by _PyErr_SetImportErrorWithNameFrom */ + _PyErr_SetImportErrorWithNameFrom(errmsg, mod_name, origin, name); + Py_DECREF(errmsg); + } + +done: + Py_XDECREF(origin); + Py_XDECREF(spec); + Py_DECREF(mod_name_or_unknown); return NULL; } @@ -2605,8 +2899,8 @@ import_from(PyThreadState *tstate, PyObject *v, PyObject *name) #define CANNOT_EXCEPT_STAR_EG "catching ExceptionGroup with except* "\ "is not allowed. Use except instead." -static int -check_except_type_valid(PyThreadState *tstate, PyObject* right) +int +_PyEval_CheckExceptTypeValid(PyThreadState *tstate, PyObject* right) { if (PyTuple_Check(right)) { Py_ssize_t i, length; @@ -2630,10 +2924,10 @@ check_except_type_valid(PyThreadState *tstate, PyObject* right) return 0; } -static int -check_except_star_type_valid(PyThreadState *tstate, PyObject* right) +int +_PyEval_CheckExceptStarTypeValid(PyThreadState *tstate, PyObject* right) { - if (check_except_type_valid(tstate, right) < 0) { + if (_PyEval_CheckExceptTypeValid(tstate, right) < 0) { return -1; } @@ -2687,8 +2981,8 @@ check_args_iterable(PyThreadState *tstate, PyObject *func, PyObject *args) return 0; } -static void -format_kwargs_error(PyThreadState *tstate, PyObject *func, PyObject *kwargs) +void +_PyEval_FormatKwargsError(PyThreadState *tstate, PyObject *func, PyObject *kwargs) { /* _PyDict_MergeEx raises attribute * error (percolated from an attempt @@ -2729,9 +3023,9 @@ format_kwargs_error(PyThreadState *tstate, PyObject *func, PyObject *kwargs) } } -static void -format_exc_check_arg(PyThreadState *tstate, PyObject *exc, - const char *format_str, PyObject *obj) +void +_PyEval_FormatExcCheckArg(PyThreadState *tstate, PyObject *exc, + const char *format_str, PyObject *obj) { const char *obj_str; @@ -2758,25 +3052,25 @@ format_exc_check_arg(PyThreadState *tstate, PyObject *exc, } } -static void -format_exc_unbound(PyThreadState *tstate, PyCodeObject *co, int oparg) +void +_PyEval_FormatExcUnbound(PyThreadState *tstate, PyCodeObject *co, int oparg) { PyObject *name; /* Don't stomp existing exception */ if (_PyErr_Occurred(tstate)) return; name = PyTuple_GET_ITEM(co->co_localsplusnames, oparg); - if (oparg < PyCode_GetFirstFree(co)) { - format_exc_check_arg(tstate, PyExc_UnboundLocalError, - UNBOUNDLOCAL_ERROR_MSG, name); + if (oparg < PyUnstable_Code_GetFirstFree(co)) { + _PyEval_FormatExcCheckArg(tstate, PyExc_UnboundLocalError, + UNBOUNDLOCAL_ERROR_MSG, name); } else { - format_exc_check_arg(tstate, PyExc_NameError, - UNBOUNDFREE_ERROR_MSG, name); + _PyEval_FormatExcCheckArg(tstate, PyExc_NameError, + UNBOUNDFREE_ERROR_MSG, name); } } -static void -format_awaitable_error(PyThreadState *tstate, PyTypeObject *type, int oparg) +void +_PyEval_FormatAwaitableError(PyThreadState *tstate, PyTypeObject *type, int oparg) { if (type->tp_as_async == NULL || type->tp_as_async->am_await == NULL) { if (oparg == 1) { diff --git a/contrib/tools/python3/Python/ceval_gil.c b/contrib/tools/python3/Python/ceval_gil.c index c1ab5883568..a1433e5b25f 100644 --- a/contrib/tools/python3/Python/ceval_gil.c +++ b/contrib/tools/python3/Python/ceval_gil.c @@ -1,12 +1,13 @@ #include "Python.h" -#include "pycore_atomic.h" // _Py_atomic_int #include "pycore_ceval.h" // _PyEval_SignalReceived() -#include "pycore_pyerrors.h" // _PyErr_GetRaisedException() -#include "pycore_pylifecycle.h" // _PyErr_Print() #include "pycore_initconfig.h" // _PyStatus_OK() #include "pycore_interp.h" // _Py_RunGC() +#include "pycore_pyerrors.h" // _PyErr_GetRaisedException() +#include "pycore_pylifecycle.h" // _PyErr_Print() #include "pycore_pymem.h" // _PyMem_IsPtrFreed() +#include "pycore_pystats.h" // _Py_PrintSpecializationStats() +#include "pycore_pythread.h" // PyThread_hang_thread() /* Notes about the implementation: @@ -56,113 +57,54 @@ #define _Py_atomic_load_relaxed_int32(ATOMIC_VAL) _Py_atomic_load_relaxed(ATOMIC_VAL) #endif -/* This can set eval_breaker to 0 even though gil_drop_request became - 1. We believe this is all right because the eval loop will release - the GIL eventually anyway. */ -static inline void -COMPUTE_EVAL_BREAKER(PyInterpreterState *interp, - struct _ceval_runtime_state *ceval, - struct _ceval_state *ceval2) -{ - _Py_atomic_store_relaxed(&ceval2->eval_breaker, - _Py_atomic_load_relaxed_int32(&ceval2->gil_drop_request) - | (_Py_atomic_load_relaxed_int32(&ceval->signals_pending) - && _Py_ThreadCanHandleSignals(interp)) - | (_Py_atomic_load_relaxed_int32(&ceval2->pending.calls_to_do)) - | (_Py_IsMainThread() && _Py_IsMainInterpreter(interp) - &&_Py_atomic_load_relaxed_int32(&ceval->pending_mainthread.calls_to_do)) - | ceval2->pending.async_exc - | _Py_atomic_load_relaxed_int32(&ceval2->gc_scheduled)); -} - - +// Atomically copy the bits indicated by mask between two values. static inline void -SET_GIL_DROP_REQUEST(PyInterpreterState *interp) +copy_eval_breaker_bits(uintptr_t *from, uintptr_t *to, uintptr_t mask) { - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 1); - _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); -} - + uintptr_t from_bits = _Py_atomic_load_uintptr_relaxed(from) & mask; + uintptr_t old_value = _Py_atomic_load_uintptr_relaxed(to); + uintptr_t to_bits = old_value & mask; + if (from_bits == to_bits) { + return; + } -static inline void -RESET_GIL_DROP_REQUEST(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval2->gil_drop_request, 0); - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); + uintptr_t new_value; + do { + new_value = (old_value & ~mask) | from_bits; + } while (!_Py_atomic_compare_exchange_uintptr(to, &old_value, new_value)); } - +// When attaching a thread, set the global instrumentation version and +// _PY_CALLS_TO_DO_BIT from the current state of the interpreter. static inline void -SIGNAL_PENDING_CALLS(struct _pending_calls *pending, PyInterpreterState *interp) +update_eval_breaker_for_thread(PyInterpreterState *interp, PyThreadState *tstate) { - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&pending->calls_to_do, 1); - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - +#ifdef Py_GIL_DISABLED + // Free-threaded builds eagerly update the eval_breaker on *all* threads as + // needed, so this function doesn't apply. + return; +#endif -static inline void -UNSIGNAL_PENDING_CALLS(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - if (_Py_IsMainThread() && _Py_IsMainInterpreter(interp)) { - _Py_atomic_store_relaxed(&ceval->pending_mainthread.calls_to_do, 0); + int32_t npending = _Py_atomic_load_int32_relaxed( + &interp->ceval.pending.npending); + if (npending) { + _Py_set_eval_breaker_bit(tstate, _PY_CALLS_TO_DO_BIT); } - _Py_atomic_store_relaxed(&ceval2->pending.calls_to_do, 0); - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - - -static inline void -SIGNAL_PENDING_SIGNALS(PyInterpreterState *interp, int force) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval->signals_pending, 1); - if (force) { - _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); - } - else { - /* eval_breaker is not set to 1 if thread_can_handle_signals() is false */ - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); + else if (_Py_IsMainThread()) { + npending = _Py_atomic_load_int32_relaxed( + &_PyRuntime.ceval.pending_mainthread.npending); + if (npending) { + _Py_set_eval_breaker_bit(tstate, _PY_CALLS_TO_DO_BIT); + } } -} - - -static inline void -UNSIGNAL_PENDING_SIGNALS(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - _Py_atomic_store_relaxed(&ceval->signals_pending, 0); - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); -} - -static inline void -SIGNAL_ASYNC_EXC(PyInterpreterState *interp) -{ - struct _ceval_state *ceval2 = &interp->ceval; - ceval2->pending.async_exc = 1; - _Py_atomic_store_relaxed(&ceval2->eval_breaker, 1); -} - - -static inline void -UNSIGNAL_ASYNC_EXC(PyInterpreterState *interp) -{ - struct _ceval_runtime_state *ceval = &interp->runtime->ceval; - struct _ceval_state *ceval2 = &interp->ceval; - ceval2->pending.async_exc = 0; - COMPUTE_EVAL_BREAKER(interp, ceval, ceval2); + // _PY_CALLS_TO_DO_BIT was derived from other state above, so the only bits + // we copy from our interpreter's state are the instrumentation version. + copy_eval_breaker_bits(&interp->ceval.instrumentation_version, + &tstate->eval_breaker, + ~_PY_EVAL_EVENTS_MASK); } - /* * Implementation of the Global Interpreter Lock (GIL). */ @@ -170,9 +112,6 @@ UNSIGNAL_ASYNC_EXC(PyInterpreterState *interp) #include #include -#include "pycore_atomic.h" - - #include "condvar.h" #define MUTEX_INIT(mut) \ @@ -216,8 +155,7 @@ UNSIGNAL_ASYNC_EXC(PyInterpreterState *interp) static void _gil_initialize(struct _gil_runtime_state *gil) { - _Py_atomic_int uninitialized = {-1}; - gil->locked = uninitialized; + gil->locked = -1; gil->interval = DEFAULT_INTERVAL; } @@ -226,7 +164,7 @@ static int gil_created(struct _gil_runtime_state *gil) if (gil == NULL) { return 0; } - return (_Py_atomic_load_explicit(&gil->locked, _Py_memory_order_acquire) >= 0); + return (_Py_atomic_load_int_acquire(&gil->locked) >= 0); } static void create_gil(struct _gil_runtime_state *gil) @@ -239,9 +177,9 @@ static void create_gil(struct _gil_runtime_state *gil) #ifdef FORCE_SWITCHING COND_INIT(gil->switch_cond); #endif - _Py_atomic_store_relaxed(&gil->last_holder, 0); + _Py_atomic_store_ptr_relaxed(&gil->last_holder, 0); _Py_ANNOTATE_RWLOCK_CREATE(&gil->locked); - _Py_atomic_store_explicit(&gil->locked, 0, _Py_memory_order_release); + _Py_atomic_store_int_release(&gil->locked, 0); } static void destroy_gil(struct _gil_runtime_state *gil) @@ -255,8 +193,7 @@ static void destroy_gil(struct _gil_runtime_state *gil) COND_FINI(gil->switch_cond); MUTEX_FINI(gil->switch_mutex); #endif - _Py_atomic_store_explicit(&gil->locked, -1, - _Py_memory_order_release); + _Py_atomic_store_int_release(&gil->locked, -1); _Py_ANNOTATE_RWLOCK_DESTROY(&gil->locked); } @@ -269,53 +206,70 @@ static void recreate_gil(struct _gil_runtime_state *gil) } #endif +static inline void +drop_gil_impl(PyThreadState *tstate, struct _gil_runtime_state *gil) +{ + MUTEX_LOCK(gil->mutex); + _Py_ANNOTATE_RWLOCK_RELEASED(&gil->locked, /*is_write=*/1); + _Py_atomic_store_int_relaxed(&gil->locked, 0); + if (tstate != NULL) { + tstate->_status.holds_gil = 0; + } + COND_SIGNAL(gil->cond); + MUTEX_UNLOCK(gil->mutex); +} + static void -drop_gil(struct _ceval_state *ceval, PyThreadState *tstate) +drop_gil(PyInterpreterState *interp, PyThreadState *tstate, int final_release) { - /* If tstate is NULL, the caller is indicating that we're releasing + struct _ceval_state *ceval = &interp->ceval; + /* If final_release is true, the caller is indicating that we're releasing the GIL for the last time in this thread. This is particularly relevant when the current thread state is finalizing or its interpreter is finalizing (either may be in an inconsistent state). In that case the current thread will definitely never try to acquire the GIL again. */ // XXX It may be more correct to check tstate->_status.finalizing. - // XXX assert(tstate == NULL || !tstate->_status.cleared); + // XXX assert(final_release || !tstate->_status.cleared); + assert(final_release || tstate != NULL); struct _gil_runtime_state *gil = ceval->gil; - if (!_Py_atomic_load_relaxed(&gil->locked)) { +#ifdef Py_GIL_DISABLED + // Check if we have the GIL before dropping it. tstate will be NULL if + // take_gil() detected that this thread has been destroyed, in which case + // we know we have the GIL. + if (tstate != NULL && !tstate->_status.holds_gil) { + return; + } +#endif + if (!_Py_atomic_load_int_relaxed(&gil->locked)) { Py_FatalError("drop_gil: GIL is not locked"); } - /* tstate is allowed to be NULL (early interpreter init) */ - if (tstate != NULL) { + if (!final_release) { /* Sub-interpreter support: threads might have been switched under our feet using PyThreadState_Swap(). Fix the GIL last holder variable so that our heuristics work. */ - _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate); + _Py_atomic_store_ptr_relaxed(&gil->last_holder, tstate); } - MUTEX_LOCK(gil->mutex); - _Py_ANNOTATE_RWLOCK_RELEASED(&gil->locked, /*is_write=*/1); - _Py_atomic_store_relaxed(&gil->locked, 0); - COND_SIGNAL(gil->cond); - MUTEX_UNLOCK(gil->mutex); + drop_gil_impl(tstate, gil); #ifdef FORCE_SWITCHING - /* We check tstate first in case we might be releasing the GIL for - the last time in this thread. In that case there's a possible - race with tstate->interp getting deleted after gil->mutex is - unlocked and before the following code runs, leading to a crash. - We can use (tstate == NULL) to indicate the thread is done with - the GIL, and that's the only time we might delete the - interpreter, so checking tstate first prevents the crash. - See https://github.com/python/cpython/issues/104341. */ - if (tstate != NULL && _Py_atomic_load_relaxed(&ceval->gil_drop_request)) { + /* We might be releasing the GIL for the last time in this thread. In that + case there's a possible race with tstate->interp getting deleted after + gil->mutex is unlocked and before the following code runs, leading to a + crash. We can use final_release to indicate the thread is done with the + GIL, and that's the only time we might delete the interpreter. See + https://github.com/python/cpython/issues/104341. */ + if (!final_release && + _Py_eval_breaker_bit_is_set(tstate, _PY_GIL_DROP_REQUEST_BIT)) { MUTEX_LOCK(gil->switch_mutex); /* Not switched yet => wait */ - if (((PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) == tstate) + if (((PyThreadState*)_Py_atomic_load_ptr_relaxed(&gil->last_holder)) == tstate) { assert(_PyThreadState_CheckConsistency(tstate)); - RESET_GIL_DROP_REQUEST(tstate->interp); + _Py_unset_eval_breaker_bit(tstate, _PY_GIL_DROP_REQUEST_BIT); /* NOTE: if COND_WAIT does not atomically start waiting when releasing the mutex, another thread can run through, take the GIL and drop it again, and reset the condition @@ -331,6 +285,7 @@ drop_gil(struct _ceval_state *ceval, PyThreadState *tstate) /* Take the GIL. The function saves errno at entry and restores its value at exit. + It may hang rather than return if the interpreter has been finalized. tstate must be non-NULL. */ static void @@ -345,30 +300,36 @@ take_gil(PyThreadState *tstate) if (_PyThreadState_MustExit(tstate)) { /* bpo-39877: If Py_Finalize() has been called and tstate is not the - thread which called Py_Finalize(), exit immediately the thread. + thread which called Py_Finalize(), this thread cannot continue. This code path can be reached by a daemon thread after Py_Finalize() completes. In this case, tstate is a dangling pointer: points to - PyThreadState freed memory. */ - PyThread_exit_thread(); + PyThreadState freed memory. + + This used to call a *thread_exit API, but that was not safe as it + lacks stack unwinding and local variable destruction important to + C++. gh-87135: The best that can be done is to hang the thread as + the public APIs calling this have no error reporting mechanism (!). + */ + PyThread_hang_thread(); } assert(_PyThreadState_CheckConsistency(tstate)); PyInterpreterState *interp = tstate->interp; - struct _ceval_state *ceval = &interp->ceval; - struct _gil_runtime_state *gil = ceval->gil; + struct _gil_runtime_state *gil = interp->ceval.gil; +#ifdef Py_GIL_DISABLED + if (!_Py_atomic_load_int_relaxed(&gil->enabled)) { + return; + } +#endif /* Check that _PyEval_InitThreads() was called to create the lock */ assert(gil_created(gil)); MUTEX_LOCK(gil->mutex); - if (!_Py_atomic_load_relaxed(&gil->locked)) { - goto _ready; - } - int drop_requested = 0; - while (_Py_atomic_load_relaxed(&gil->locked)) { + while (_Py_atomic_load_int_relaxed(&gil->locked)) { unsigned long saved_switchnum = gil->switch_number; unsigned long interval = (gil->interval >= 1 ? gil->interval : 1); @@ -378,9 +339,11 @@ take_gil(PyThreadState *tstate) /* If we timed out and no switch occurred in the meantime, it is time to ask the GIL-holding thread to drop it. */ if (timed_out && - _Py_atomic_load_relaxed(&gil->locked) && + _Py_atomic_load_int_relaxed(&gil->locked) && gil->switch_number == saved_switchnum) { + PyThreadState *holder_tstate = + (PyThreadState*)_Py_atomic_load_ptr_relaxed(&gil->last_holder); if (_PyThreadState_MustExit(tstate)) { MUTEX_UNLOCK(gil->mutex); // gh-96387: If the loop requested a drop request in a previous @@ -390,29 +353,41 @@ take_gil(PyThreadState *tstate) // may have to request again a drop request (iterate one more // time). if (drop_requested) { - RESET_GIL_DROP_REQUEST(interp); + _Py_unset_eval_breaker_bit(holder_tstate, _PY_GIL_DROP_REQUEST_BIT); } - PyThread_exit_thread(); + // gh-87135: hang the thread as *thread_exit() is not a safe + // API. It lacks stack unwind and local variable destruction. + PyThread_hang_thread(); } assert(_PyThreadState_CheckConsistency(tstate)); - SET_GIL_DROP_REQUEST(interp); + _Py_set_eval_breaker_bit(holder_tstate, _PY_GIL_DROP_REQUEST_BIT); drop_requested = 1; } } -_ready: +#ifdef Py_GIL_DISABLED + if (!_Py_atomic_load_int_relaxed(&gil->enabled)) { + // Another thread disabled the GIL between our check above and + // now. Don't take the GIL, signal any other waiting threads, and + // return. + COND_SIGNAL(gil->cond); + MUTEX_UNLOCK(gil->mutex); + return; + } +#endif + #ifdef FORCE_SWITCHING /* This mutex must be taken before modifying gil->last_holder: see drop_gil(). */ MUTEX_LOCK(gil->switch_mutex); #endif /* We now hold the GIL */ - _Py_atomic_store_relaxed(&gil->locked, 1); + _Py_atomic_store_int_relaxed(&gil->locked, 1); _Py_ANNOTATE_RWLOCK_ACQUIRED(&gil->locked, /*is_write=*/1); - if (tstate != (PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) { - _Py_atomic_store_relaxed(&gil->last_holder, (uintptr_t)tstate); + if (tstate != (PyThreadState*)_Py_atomic_load_ptr_relaxed(&gil->last_holder)) { + _Py_atomic_store_ptr_relaxed(&gil->last_holder, tstate); ++gil->switch_number; } @@ -423,43 +398,33 @@ _ready: if (_PyThreadState_MustExit(tstate)) { /* bpo-36475: If Py_Finalize() has been called and tstate is not - the thread which called Py_Finalize(), exit immediately the + the thread which called Py_Finalize(), gh-87135: hang the thread. This code path can be reached by a daemon thread which was waiting in take_gil() while the main thread called wait_for_thread_shutdown() from Py_Finalize(). */ MUTEX_UNLOCK(gil->mutex); - drop_gil(ceval, tstate); - PyThread_exit_thread(); + /* tstate could be a dangling pointer, so don't pass it to + drop_gil(). */ + drop_gil(interp, NULL, 1); + PyThread_hang_thread(); } assert(_PyThreadState_CheckConsistency(tstate)); - if (_Py_atomic_load_relaxed(&ceval->gil_drop_request)) { - RESET_GIL_DROP_REQUEST(interp); - } - else { - /* bpo-40010: eval_breaker should be recomputed to be set to 1 if there - is a pending signal: signal received by another thread which cannot - handle signals. - - Note: RESET_GIL_DROP_REQUEST() calls COMPUTE_EVAL_BREAKER(). */ - COMPUTE_EVAL_BREAKER(interp, &_PyRuntime.ceval, ceval); - } - - /* Don't access tstate if the thread must exit */ - if (tstate->async_exc != NULL) { - _PyEval_SignalAsyncExc(tstate->interp); - } + tstate->_status.holds_gil = 1; + _Py_unset_eval_breaker_bit(tstate, _PY_GIL_DROP_REQUEST_BIT); + update_eval_breaker_for_thread(interp, tstate); MUTEX_UNLOCK(gil->mutex); errno = err; + return; } void _PyEval_SetSwitchInterval(unsigned long microseconds) { - PyInterpreterState *interp = _PyInterpreterState_Get(); + PyInterpreterState *interp = _PyInterpreterState_GET(); struct _gil_runtime_state *gil = interp->ceval.gil; assert(gil != NULL); gil->interval = microseconds; @@ -467,7 +432,7 @@ void _PyEval_SetSwitchInterval(unsigned long microseconds) unsigned long _PyEval_GetSwitchInterval(void) { - PyInterpreterState *interp = _PyInterpreterState_Get(); + PyInterpreterState *interp = _PyInterpreterState_GET(); struct _gil_runtime_state *gil = interp->ceval.gil; assert(gil != NULL); return gil->interval; @@ -488,20 +453,30 @@ _PyEval_ThreadsInitialized(void) return gil_created(gil); } -int +// Function removed in the Python 3.13 API but kept in the stable ABI. +PyAPI_FUNC(int) PyEval_ThreadsInitialized(void) { return _PyEval_ThreadsInitialized(); } +#ifndef NDEBUG static inline int current_thread_holds_gil(struct _gil_runtime_state *gil, PyThreadState *tstate) { - if (((PyThreadState*)_Py_atomic_load_relaxed(&gil->last_holder)) != tstate) { - return 0; - } - return _Py_atomic_load_relaxed(&gil->locked); + int holds_gil = tstate->_status.holds_gil; + + // holds_gil is the source of truth; check that last_holder and gil->locked + // are consistent with it. + int locked = _Py_atomic_load_int_relaxed(&gil->locked); + int is_last_holder = + ((PyThreadState*)_Py_atomic_load_ptr_relaxed(&gil->last_holder)) == tstate; + assert(!holds_gil || locked); + assert(!holds_gil || is_last_holder); + + return holds_gil; } +#endif static void init_shared_gil(PyInterpreterState *interp, struct _gil_runtime_state *gil) @@ -515,35 +490,35 @@ static void init_own_gil(PyInterpreterState *interp, struct _gil_runtime_state *gil) { assert(!gil_created(gil)); +#ifdef Py_GIL_DISABLED + const PyConfig *config = _PyInterpreterState_GetConfig(interp); + gil->enabled = config->enable_gil == _PyConfig_GIL_ENABLE ? INT_MAX : 0; +#endif create_gil(gil); assert(gil_created(gil)); interp->ceval.gil = gil; interp->ceval.own_gil = 1; } -PyStatus +void _PyEval_InitGIL(PyThreadState *tstate, int own_gil) { assert(tstate->interp->ceval.gil == NULL); - int locked; if (!own_gil) { /* The interpreter will share the main interpreter's instead. */ PyInterpreterState *main_interp = _PyInterpreterState_Main(); assert(tstate->interp != main_interp); struct _gil_runtime_state *gil = main_interp->ceval.gil; init_shared_gil(tstate->interp, gil); - locked = current_thread_holds_gil(gil, tstate); + assert(!current_thread_holds_gil(gil, tstate)); } else { PyThread_init_thread(); init_own_gil(tstate->interp, &tstate->interp->_gil); - locked = 0; - } - if (!locked) { - take_gil(tstate); } - return _PyStatus_OK(); + // Lock the GIL and mark the current thread as attached. + _PyThreadState_Attach(tstate); } void @@ -589,7 +564,9 @@ _PyEval_Fini(void) _Py_PrintSpecializationStats(1); #endif } -void + +// Function removed in the Python 3.13 API but kept in the stable ABI. +PyAPI_FUNC(void) PyEval_AcquireLock(void) { PyThreadState *tstate = _PyThreadState_GET(); @@ -598,15 +575,15 @@ PyEval_AcquireLock(void) take_gil(tstate); } -void +// Function removed in the Python 3.13 API but kept in the stable ABI. +PyAPI_FUNC(void) PyEval_ReleaseLock(void) { PyThreadState *tstate = _PyThreadState_GET(); /* This function must succeed when the current thread state is NULL. We therefore avoid PyThreadState_Get() which dumps a fatal error in debug mode. */ - struct _ceval_state *ceval = &tstate->interp->ceval; - drop_gil(ceval, tstate); + drop_gil(tstate->interp, tstate, 0); } void @@ -617,44 +594,32 @@ _PyEval_AcquireLock(PyThreadState *tstate) } void -_PyEval_ReleaseLock(PyInterpreterState *interp, PyThreadState *tstate) +_PyEval_ReleaseLock(PyInterpreterState *interp, + PyThreadState *tstate, + int final_release) { - /* If tstate is NULL then we do not expect the current thread - to acquire the GIL ever again. */ - assert(tstate == NULL || tstate->interp == interp); - struct _ceval_state *ceval = &interp->ceval; - drop_gil(ceval, tstate); + assert(tstate != NULL); + assert(tstate->interp == interp); + drop_gil(interp, tstate, final_release); } void PyEval_AcquireThread(PyThreadState *tstate) { _Py_EnsureTstateNotNULL(tstate); - - take_gil(tstate); - - if (_PyThreadState_SwapNoGIL(tstate) != NULL) { - Py_FatalError("non-NULL old thread state"); - } + _PyThreadState_Attach(tstate); } void PyEval_ReleaseThread(PyThreadState *tstate) { assert(_PyThreadState_CheckConsistency(tstate)); - - PyThreadState *new_tstate = _PyThreadState_SwapNoGIL(NULL); - if (new_tstate != tstate) { - Py_FatalError("wrong thread state"); - } - struct _ceval_state *ceval = &tstate->interp->ceval; - drop_gil(ceval, tstate); + _PyThreadState_Detach(tstate); } #ifdef HAVE_FORK -/* This function is called from PyOS_AfterFork_Child to destroy all threads - which are not running in the child process, and clear internal locks - which might be held by those threads. */ +/* This function is called from PyOS_AfterFork_Child to re-initialize the + GIL and pending calls lock. */ PyStatus _PyEval_ReInitThreads(PyThreadState *tstate) { @@ -669,48 +634,64 @@ _PyEval_ReInitThreads(PyThreadState *tstate) take_gil(tstate); struct _pending_calls *pending = &tstate->interp->ceval.pending; - if (_PyThread_at_fork_reinit(&pending->lock) < 0) { - return _PyStatus_ERR("Can't reinitialize pending calls lock"); - } + _PyMutex_at_fork_reinit(&pending->mutex); - /* Destroy all threads except the current one */ - _PyThreadState_DeleteExcept(tstate); return _PyStatus_OK(); } #endif -/* This function is used to signal that async exceptions are waiting to be - raised. */ - -void -_PyEval_SignalAsyncExc(PyInterpreterState *interp) -{ - SIGNAL_ASYNC_EXC(interp); -} - PyThreadState * PyEval_SaveThread(void) { - PyThreadState *tstate = _PyThreadState_SwapNoGIL(NULL); - _Py_EnsureTstateNotNULL(tstate); - - struct _ceval_state *ceval = &tstate->interp->ceval; - assert(gil_created(ceval->gil)); - drop_gil(ceval, tstate); + PyThreadState *tstate = _PyThreadState_GET(); + _PyThreadState_Detach(tstate); return tstate; } void PyEval_RestoreThread(PyThreadState *tstate) { +#ifdef MS_WINDOWS + int err = GetLastError(); +#endif + _Py_EnsureTstateNotNULL(tstate); + _PyThreadState_Attach(tstate); - take_gil(tstate); +#ifdef MS_WINDOWS + SetLastError(err); +#endif +} - _PyThreadState_SwapNoGIL(tstate); + +void +_PyEval_SignalReceived(void) +{ + _Py_set_eval_breaker_bit(_PyRuntime.main_tstate, _PY_SIGNALS_PENDING_BIT); } +#ifndef Py_GIL_DISABLED +static void +signal_active_thread(PyInterpreterState *interp, uintptr_t bit) +{ + struct _gil_runtime_state *gil = interp->ceval.gil; + + // If a thread from the targeted interpreter is holding the GIL, signal + // that thread. Otherwise, the next thread to run from the targeted + // interpreter will have its bit set as part of taking the GIL. + MUTEX_LOCK(gil->mutex); + if (_Py_atomic_load_int_relaxed(&gil->locked)) { + PyThreadState *holder = (PyThreadState*)_Py_atomic_load_ptr_relaxed(&gil->last_holder); + if (holder->interp == interp) { + _Py_set_eval_breaker_bit(holder, bit); + } + } + MUTEX_UNLOCK(gil->mutex); +} +#endif + + /* Mechanism whereby asynchronously executing callbacks (e.g. UNIX signal handlers or Mac I/O completion routines) can schedule calls to a function to be called synchronously. @@ -733,67 +714,61 @@ PyEval_RestoreThread(PyThreadState *tstate) threadstate. */ -void -_PyEval_SignalReceived(PyInterpreterState *interp) -{ -#ifdef MS_WINDOWS - // bpo-42296: On Windows, _PyEval_SignalReceived() is called from a signal - // handler which can run in a thread different than the Python thread, in - // which case _Py_ThreadCanHandleSignals() is wrong. Ignore - // _Py_ThreadCanHandleSignals() and always set eval_breaker to 1. - // - // The next eval_frame_handle_pending() call will call - // _Py_ThreadCanHandleSignals() to recompute eval_breaker. - int force = 1; -#else - int force = 0; -#endif - /* bpo-30703: Function called when the C signal handler of Python gets a - signal. We cannot queue a callback using _PyEval_AddPendingCall() since - that function is not async-signal-safe. */ - SIGNAL_PENDING_SIGNALS(interp, force); -} - /* Push one item onto the queue while holding the lock. */ static int _push_pending_call(struct _pending_calls *pending, - int (*func)(void *), void *arg) + _Py_pending_call_func func, void *arg, int flags) { - int i = pending->last; - int j = (i + 1) % NPENDINGCALLS; - if (j == pending->first) { - return -1; /* Queue full */ + if (pending->npending == pending->max) { + return _Py_ADD_PENDING_FULL; } + assert(pending->npending < pending->max); + + int i = pending->next; + assert(pending->calls[i].func == NULL); + pending->calls[i].func = func; pending->calls[i].arg = arg; - pending->last = j; - return 0; + pending->calls[i].flags = flags; + + assert(pending->npending < PENDINGCALLSARRAYSIZE); + _Py_atomic_add_int32(&pending->npending, 1); + + pending->next = (i + 1) % PENDINGCALLSARRAYSIZE; + assert(pending->next != pending->first + || pending->npending == pending->max); + + return _Py_ADD_PENDING_SUCCESS; } static int _next_pending_call(struct _pending_calls *pending, - int (**func)(void *), void **arg) + int (**func)(void *), void **arg, int *flags) { int i = pending->first; - if (i == pending->last) { + if (pending->npending == 0) { /* Queue empty */ + assert(i == pending->next); assert(pending->calls[i].func == NULL); return -1; } *func = pending->calls[i].func; *arg = pending->calls[i].arg; + *flags = pending->calls[i].flags; return i; } /* Pop one item off the queue while holding the lock. */ static void _pop_pending_call(struct _pending_calls *pending, - int (**func)(void *), void **arg) + int (**func)(void *), void **arg, int *flags) { - int i = _next_pending_call(pending, func, arg); + int i = _next_pending_call(pending, func, arg, flags); if (i >= 0) { pending->calls[i] = (struct _pending_call){0}; - pending->first = (i + 1) % NPENDINGCALLS; + pending->first = (i + 1) % PENDINGCALLSARRAYSIZE; + assert(pending->npending > 0); + _Py_atomic_add_int32(&pending->npending, -1); } } @@ -802,157 +777,268 @@ _pop_pending_call(struct _pending_calls *pending, callback. */ -int +_Py_add_pending_call_result _PyEval_AddPendingCall(PyInterpreterState *interp, - int (*func)(void *), void *arg, - int mainthreadonly) + _Py_pending_call_func func, void *arg, int flags) { - assert(!mainthreadonly || _Py_IsMainInterpreter(interp)); struct _pending_calls *pending = &interp->ceval.pending; - if (mainthreadonly) { + int main_only = (flags & _Py_PENDING_MAINTHREADONLY) != 0; + if (main_only) { /* The main thread only exists in the main interpreter. */ assert(_Py_IsMainInterpreter(interp)); pending = &_PyRuntime.ceval.pending_mainthread; } - /* Ensure that _PyEval_InitState() was called - and that _PyEval_FiniState() is not called yet. */ - assert(pending->lock != NULL); - PyThread_acquire_lock(pending->lock, WAIT_LOCK); - int result = _push_pending_call(pending, func, arg); - PyThread_release_lock(pending->lock); + PyMutex_Lock(&pending->mutex); + _Py_add_pending_call_result result = + _push_pending_call(pending, func, arg, flags); + PyMutex_Unlock(&pending->mutex); + + if (main_only) { + _Py_set_eval_breaker_bit(_PyRuntime.main_tstate, _PY_CALLS_TO_DO_BIT); + } + else { +#ifdef Py_GIL_DISABLED + _Py_set_eval_breaker_bit_all(interp, _PY_CALLS_TO_DO_BIT); +#else + signal_active_thread(interp, _PY_CALLS_TO_DO_BIT); +#endif + } - /* signal main loop */ - SIGNAL_PENDING_CALLS(pending, interp); return result; } int -Py_AddPendingCall(int (*func)(void *), void *arg) +Py_AddPendingCall(_Py_pending_call_func func, void *arg) { /* Legacy users of this API will continue to target the main thread (of the main interpreter). */ PyInterpreterState *interp = _PyInterpreterState_Main(); - return _PyEval_AddPendingCall(interp, func, arg, 1); + _Py_add_pending_call_result r = + _PyEval_AddPendingCall(interp, func, arg, _Py_PENDING_MAINTHREADONLY); + if (r == _Py_ADD_PENDING_FULL) { + return -1; + } + else { + assert(r == _Py_ADD_PENDING_SUCCESS); + return 0; + } } static int handle_signals(PyThreadState *tstate) { assert(_PyThreadState_CheckConsistency(tstate)); + _Py_unset_eval_breaker_bit(tstate, _PY_SIGNALS_PENDING_BIT); if (!_Py_ThreadCanHandleSignals(tstate->interp)) { return 0; } - - UNSIGNAL_PENDING_SIGNALS(tstate->interp); if (_PyErr_CheckSignalsTstate(tstate) < 0) { /* On failure, re-schedule a call to handle_signals(). */ - SIGNAL_PENDING_SIGNALS(tstate->interp, 0); + _Py_set_eval_breaker_bit(tstate, _PY_SIGNALS_PENDING_BIT); return -1; } return 0; } -static inline int -maybe_has_pending_calls(PyInterpreterState *interp) +static int +_make_pending_calls(struct _pending_calls *pending, int32_t *p_npending) { - struct _pending_calls *pending = &interp->ceval.pending; - if (_Py_atomic_load_relaxed_int32(&pending->calls_to_do)) { - return 1; - } - if (!_Py_IsMainThread() || !_Py_IsMainInterpreter(interp)) { - return 0; + int res = 0; + int32_t npending = -1; + + assert(sizeof(pending->max) <= sizeof(size_t) + && ((size_t)pending->max) <= Py_ARRAY_LENGTH(pending->calls)); + int32_t maxloop = pending->maxloop; + if (maxloop == 0) { + maxloop = pending->max; } - pending = &_PyRuntime.ceval.pending_mainthread; - return _Py_atomic_load_relaxed_int32(&pending->calls_to_do); -} + assert(maxloop > 0 && maxloop <= pending->max); -static int -_make_pending_calls(struct _pending_calls *pending) -{ /* perform a bounded number of calls, in case of recursion */ - for (int i=0; ilock, WAIT_LOCK); - _pop_pending_call(pending, &func, &arg); - PyThread_release_lock(pending->lock); + PyMutex_Lock(&pending->mutex); + _pop_pending_call(pending, &func, &arg, &flags); + npending = pending->npending; + PyMutex_Unlock(&pending->mutex); - /* having released the lock, perform the callback */ + /* Check if there are any more pending calls. */ if (func == NULL) { + assert(npending == 0); break; } - if (func(arg) != 0) { - return -1; + + /* having released the lock, perform the callback */ + res = func(arg); + if ((flags & _Py_PENDING_RAWFREE) && arg != NULL) { + PyMem_RawFree(arg); + } + if (res != 0) { + res = -1; + goto finally; } } - return 0; + +finally: + *p_npending = npending; + return res; +} + +static void +signal_pending_calls(PyThreadState *tstate, PyInterpreterState *interp) +{ +#ifdef Py_GIL_DISABLED + _Py_set_eval_breaker_bit_all(interp, _PY_CALLS_TO_DO_BIT); +#else + _Py_set_eval_breaker_bit(tstate, _PY_CALLS_TO_DO_BIT); +#endif +} + +static void +unsignal_pending_calls(PyThreadState *tstate, PyInterpreterState *interp) +{ +#ifdef Py_GIL_DISABLED + _Py_unset_eval_breaker_bit_all(interp, _PY_CALLS_TO_DO_BIT); +#else + _Py_unset_eval_breaker_bit(tstate, _PY_CALLS_TO_DO_BIT); +#endif +} + +static void +clear_pending_handling_thread(struct _pending_calls *pending) +{ +#ifdef Py_GIL_DISABLED + PyMutex_Lock(&pending->mutex); + pending->handling_thread = NULL; + PyMutex_Unlock(&pending->mutex); +#else + pending->handling_thread = NULL; +#endif } static int -make_pending_calls(PyInterpreterState *interp) +make_pending_calls(PyThreadState *tstate) { + PyInterpreterState *interp = tstate->interp; struct _pending_calls *pending = &interp->ceval.pending; struct _pending_calls *pending_main = &_PyRuntime.ceval.pending_mainthread; /* Only one thread (per interpreter) may run the pending calls at once. In the same way, we don't do recursive pending calls. */ - PyThread_acquire_lock(pending->lock, WAIT_LOCK); - if (pending->busy) { + PyMutex_Lock(&pending->mutex); + if (pending->handling_thread != NULL) { /* A pending call was added after another thread was already handling the pending calls (and had already "unsignaled"). Once that thread is done, it may have taken care of all the pending calls, or there might be some still waiting. - Regardless, this interpreter's pending calls will stay - "signaled" until that first thread has finished. At that - point the next thread to trip the eval breaker will take - care of any remaining pending calls. Until then, though, - all the interpreter's threads will be tripping the eval - breaker every time it's checked. */ - PyThread_release_lock(pending->lock); + To avoid all threads constantly stopping on the eval breaker, + we clear the bit for this thread and make sure it is set + for the thread currently handling the pending call. */ + _Py_set_eval_breaker_bit(pending->handling_thread, _PY_CALLS_TO_DO_BIT); + _Py_unset_eval_breaker_bit(tstate, _PY_CALLS_TO_DO_BIT); + PyMutex_Unlock(&pending->mutex); return 0; } - pending->busy = 1; - PyThread_release_lock(pending->lock); + pending->handling_thread = tstate; + PyMutex_Unlock(&pending->mutex); /* unsignal before starting to call callbacks, so that any callback added in-between re-signals */ - UNSIGNAL_PENDING_CALLS(interp); + unsignal_pending_calls(tstate, interp); - if (_make_pending_calls(pending) != 0) { - pending->busy = 0; + int32_t npending; + if (_make_pending_calls(pending, &npending) != 0) { + clear_pending_handling_thread(pending); /* There might not be more calls to make, but we play it safe. */ - SIGNAL_PENDING_CALLS(pending, interp); + signal_pending_calls(tstate, interp); return -1; } + if (npending > 0) { + /* We hit pending->maxloop. */ + signal_pending_calls(tstate, interp); + } if (_Py_IsMainThread() && _Py_IsMainInterpreter(interp)) { - if (_make_pending_calls(pending_main) != 0) { - pending->busy = 0; + if (_make_pending_calls(pending_main, &npending) != 0) { + clear_pending_handling_thread(pending); /* There might not be more calls to make, but we play it safe. */ - SIGNAL_PENDING_CALLS(pending_main, interp); + signal_pending_calls(tstate, interp); return -1; } + if (npending > 0) { + /* We hit pending_main->maxloop. */ + signal_pending_calls(tstate, interp); + } } - pending->busy = 0; + clear_pending_handling_thread(pending); return 0; } + +void +_Py_set_eval_breaker_bit_all(PyInterpreterState *interp, uintptr_t bit) +{ + _PyRuntimeState *runtime = &_PyRuntime; + + HEAD_LOCK(runtime); + for (PyThreadState *tstate = interp->threads.head; tstate != NULL; tstate = tstate->next) { + _Py_set_eval_breaker_bit(tstate, bit); + } + HEAD_UNLOCK(runtime); +} + +void +_Py_unset_eval_breaker_bit_all(PyInterpreterState *interp, uintptr_t bit) +{ + _PyRuntimeState *runtime = &_PyRuntime; + + HEAD_LOCK(runtime); + for (PyThreadState *tstate = interp->threads.head; tstate != NULL; tstate = tstate->next) { + _Py_unset_eval_breaker_bit(tstate, bit); + } + HEAD_UNLOCK(runtime); +} + void _Py_FinishPendingCalls(PyThreadState *tstate) { assert(PyGILState_Check()); assert(_PyThreadState_CheckConsistency(tstate)); - if (make_pending_calls(tstate->interp) < 0) { - PyObject *exc = _PyErr_GetRaisedException(tstate); - PyErr_BadInternalCall(); - _PyErr_ChainExceptions1(exc); - _PyErr_Print(tstate); - } + struct _pending_calls *pending = &tstate->interp->ceval.pending; + struct _pending_calls *pending_main = + _Py_IsMainThread() && _Py_IsMainInterpreter(tstate->interp) + ? &_PyRuntime.ceval.pending_mainthread + : NULL; + /* make_pending_calls() may return early without making all pending + calls, so we keep trying until we're actually done. */ + int32_t npending; +#ifndef NDEBUG + int32_t npending_prev = INT32_MAX; +#endif + do { + if (make_pending_calls(tstate) < 0) { + PyObject *exc = _PyErr_GetRaisedException(tstate); + PyErr_BadInternalCall(); + _PyErr_ChainExceptions1(exc); + _PyErr_Print(tstate); + } + + npending = _Py_atomic_load_int32_relaxed(&pending->npending); + if (pending_main != NULL) { + npending += _Py_atomic_load_int32_relaxed(&pending_main->npending); + } +#ifndef NDEBUG + assert(npending_prev > npending); + npending_prev = npending; +#endif + } while (npending > 0); } int @@ -970,7 +1056,7 @@ _PyEval_MakePendingCalls(PyThreadState *tstate) } } - res = make_pending_calls(tstate->interp); + res = make_pending_calls(tstate); if (res != 0) { return res; } @@ -996,94 +1082,251 @@ Py_MakePendingCalls(void) } void -_PyEval_InitState(PyInterpreterState *interp, PyThread_type_lock pending_lock) +_PyEval_InitState(PyInterpreterState *interp) { _gil_initialize(&interp->_gil); +} - struct _pending_calls *pending = &interp->ceval.pending; - assert(pending->lock == NULL); - pending->lock = pending_lock; +#ifdef Py_GIL_DISABLED +int +_PyEval_EnableGILTransient(PyThreadState *tstate) +{ + const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp); + if (config->enable_gil != _PyConfig_GIL_DEFAULT) { + return 0; + } + struct _gil_runtime_state *gil = tstate->interp->ceval.gil; + + int enabled = _Py_atomic_load_int_relaxed(&gil->enabled); + if (enabled == INT_MAX) { + // The GIL is already enabled permanently. + return 0; + } + if (enabled == INT_MAX - 1) { + Py_FatalError("Too many transient requests to enable the GIL"); + } + if (enabled > 0) { + // If enabled is nonzero, we know we hold the GIL. This means that no + // other threads are attached, and nobody else can be concurrently + // mutating it. + _Py_atomic_store_int_relaxed(&gil->enabled, enabled + 1); + return 0; + } + + // Enabling the GIL changes what it means to be an "attached" thread. To + // safely make this transition, we: + // 1. Detach the current thread. + // 2. Stop the world to detach (and suspend) all other threads. + // 3. Enable the GIL, if nobody else did between our check above and when + // our stop-the-world begins. + // 4. Start the world. + // 5. Attach the current thread. Other threads may attach and hold the GIL + // before this thread, which is harmless. + _PyThreadState_Detach(tstate); + + // This could be an interpreter-local stop-the-world in situations where we + // know that this interpreter's GIL is not shared, and that it won't become + // shared before the stop-the-world begins. For now, we always stop all + // interpreters for simplicity. + _PyEval_StopTheWorldAll(&_PyRuntime); + + enabled = _Py_atomic_load_int_relaxed(&gil->enabled); + int this_thread_enabled = enabled == 0; + _Py_atomic_store_int_relaxed(&gil->enabled, enabled + 1); + + _PyEval_StartTheWorldAll(&_PyRuntime); + _PyThreadState_Attach(tstate); + + return this_thread_enabled; } -void -_PyEval_FiniState(struct _ceval_state *ceval) +int +_PyEval_EnableGILPermanent(PyThreadState *tstate) +{ + const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp); + if (config->enable_gil != _PyConfig_GIL_DEFAULT) { + return 0; + } + + struct _gil_runtime_state *gil = tstate->interp->ceval.gil; + assert(current_thread_holds_gil(gil, tstate)); + + int enabled = _Py_atomic_load_int_relaxed(&gil->enabled); + if (enabled == INT_MAX) { + return 0; + } + + _Py_atomic_store_int_relaxed(&gil->enabled, INT_MAX); + return 1; +} + +int +_PyEval_DisableGIL(PyThreadState *tstate) { - struct _pending_calls *pending = &ceval->pending; - if (pending->lock != NULL) { - PyThread_free_lock(pending->lock); - pending->lock = NULL; + const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp); + if (config->enable_gil != _PyConfig_GIL_DEFAULT) { + return 0; + } + + struct _gil_runtime_state *gil = tstate->interp->ceval.gil; + assert(current_thread_holds_gil(gil, tstate)); + + int enabled = _Py_atomic_load_int_relaxed(&gil->enabled); + if (enabled == INT_MAX) { + return 0; + } + + assert(enabled >= 1); + enabled--; + + // Disabling the GIL is much simpler than enabling it, since we know we are + // the only attached thread. Other threads may start free-threading as soon + // as this store is complete, if it sets gil->enabled to 0. + _Py_atomic_store_int_relaxed(&gil->enabled, enabled); + + if (enabled == 0) { + // We're attached, so we know the GIL will remain disabled until at + // least the next time we detach, which must be after this function + // returns. + // + // Drop the GIL, which will wake up any threads waiting in take_gil() + // and let them resume execution without the GIL. + drop_gil_impl(tstate, gil); + + // If another thread asked us to drop the GIL, they should be + // free-threading by now. Remove any such request so we have a clean + // slate if/when the GIL is enabled again. + _Py_unset_eval_breaker_bit(tstate, _PY_GIL_DROP_REQUEST_BIT); + return 1; } + return 0; } +#endif -/* Handle signals, pending calls, GIL drop request - and asynchronous exception */ + +/* Do periodic things, like check for signals and async I/0. +* We need to do reasonably frequently, but not too frequently. +* All loops should include a check of the eval breaker. +* We also check on return from any builtin function. +* +* ## More Details ### +* +* The eval loop (this function) normally executes the instructions +* of a code object sequentially. However, the runtime supports a +* number of out-of-band execution scenarios that may pause that +* sequential execution long enough to do that out-of-band work +* in the current thread using the current PyThreadState. +* +* The scenarios include: +* +* - cyclic garbage collection +* - GIL drop requests +* - "async" exceptions +* - "pending calls" (some only in the main thread) +* - signal handling (only in the main thread) +* +* When the need for one of the above is detected, the eval loop +* pauses long enough to handle the detected case. Then, if doing +* so didn't trigger an exception, the eval loop resumes executing +* the sequential instructions. +* +* To make this work, the eval loop periodically checks if any +* of the above needs to happen. The individual checks can be +* expensive if computed each time, so a while back we switched +* to using pre-computed, per-interpreter variables for the checks, +* and later consolidated that to a single "eval breaker" variable +* (now a PyInterpreterState field). +* +* For the longest time, the eval breaker check would happen +* frequently, every 5 or so times through the loop, regardless +* of what instruction ran last or what would run next. Then, in +* early 2021 (gh-18334, commit 4958f5d), we switched to checking +* the eval breaker less frequently, by hard-coding the check to +* specific places in the eval loop (e.g. certain instructions). +* The intent then was to check after returning from calls +* and on the back edges of loops. +* +* In addition to being more efficient, that approach keeps +* the eval loop from running arbitrary code between instructions +* that don't handle that well. (See gh-74174.) +* +* Currently, the eval breaker check happens on back edges in +* the control flow graph, which pretty much applies to all loops, +* and most calls. +* (See bytecodes.c for exact information.) +* +* One consequence of this approach is that it might not be obvious +* how to force any specific thread to pick up the eval breaker, +* or for any specific thread to not pick it up. Mostly this +* involves judicious uses of locks and careful ordering of code, +* while avoiding code that might trigger the eval breaker +* until so desired. +*/ int _Py_HandlePending(PyThreadState *tstate) { - _PyRuntimeState * const runtime = &_PyRuntime; - struct _ceval_runtime_state *ceval = &runtime->ceval; - struct _ceval_state *interp_ceval_state = &tstate->interp->ceval; + uintptr_t breaker = _Py_atomic_load_uintptr_relaxed(&tstate->eval_breaker); + + /* Stop-the-world */ + if ((breaker & _PY_EVAL_PLEASE_STOP_BIT) != 0) { + _Py_unset_eval_breaker_bit(tstate, _PY_EVAL_PLEASE_STOP_BIT); + _PyThreadState_Suspend(tstate); + + /* The attach blocks until the stop-the-world event is complete. */ + _PyThreadState_Attach(tstate); + } /* Pending signals */ - if (_Py_atomic_load_relaxed_int32(&ceval->signals_pending)) { + if ((breaker & _PY_SIGNALS_PENDING_BIT) != 0) { if (handle_signals(tstate) != 0) { return -1; } } /* Pending calls */ - if (maybe_has_pending_calls(tstate->interp)) { - if (make_pending_calls(tstate->interp) != 0) { + if ((breaker & _PY_CALLS_TO_DO_BIT) != 0) { + if (make_pending_calls(tstate) != 0) { return -1; } } +#ifdef Py_GIL_DISABLED + /* Objects with refcounts to merge */ + if ((breaker & _PY_EVAL_EXPLICIT_MERGE_BIT) != 0) { + _Py_unset_eval_breaker_bit(tstate, _PY_EVAL_EXPLICIT_MERGE_BIT); + _Py_brc_merge_refcounts(tstate); + } + /* Process deferred memory frees held by QSBR */ + if (_Py_qsbr_should_process(((_PyThreadStateImpl *)tstate)->qsbr)) { + _PyMem_ProcessDelayed(tstate); + } +#endif + /* GC scheduled to run */ - if (_Py_atomic_load_relaxed_int32(&interp_ceval_state->gc_scheduled)) { - _Py_atomic_store_relaxed(&interp_ceval_state->gc_scheduled, 0); - COMPUTE_EVAL_BREAKER(tstate->interp, ceval, interp_ceval_state); + if ((breaker & _PY_GC_SCHEDULED_BIT) != 0) { + _Py_unset_eval_breaker_bit(tstate, _PY_GC_SCHEDULED_BIT); _Py_RunGC(tstate); } /* GIL drop request */ - if (_Py_atomic_load_relaxed_int32(&interp_ceval_state->gil_drop_request)) { + if ((breaker & _PY_GIL_DROP_REQUEST_BIT) != 0) { /* Give another thread a chance */ - if (_PyThreadState_SwapNoGIL(NULL) != tstate) { - Py_FatalError("tstate mix-up"); - } - drop_gil(interp_ceval_state, tstate); + _PyThreadState_Detach(tstate); /* Other threads may run now */ - take_gil(tstate); - - if (_PyThreadState_SwapNoGIL(tstate) != NULL) { - Py_FatalError("orphan tstate"); - } + _PyThreadState_Attach(tstate); } /* Check for asynchronous exception. */ - if (tstate->async_exc != NULL) { - PyObject *exc = tstate->async_exc; - tstate->async_exc = NULL; - UNSIGNAL_ASYNC_EXC(tstate->interp); - _PyErr_SetNone(tstate, exc); - Py_DECREF(exc); - return -1; + if ((breaker & _PY_ASYNC_EXCEPTION_BIT) != 0) { + _Py_unset_eval_breaker_bit(tstate, _PY_ASYNC_EXCEPTION_BIT); + PyObject *exc = _Py_atomic_exchange_ptr(&tstate->async_exc, NULL); + if (exc != NULL) { + _PyErr_SetNone(tstate, exc); + Py_DECREF(exc); + return -1; + } } - - - // It is possible that some of the conditions that trigger the eval breaker - // are called in a different thread than the Python thread. An example of - // this is bpo-42296: On Windows, _PyEval_SignalReceived() can be called in - // a different thread than the Python thread, in which case - // _Py_ThreadCanHandleSignals() is wrong. Recompute eval_breaker in the - // current Python thread with the correct _Py_ThreadCanHandleSignals() - // value. It prevents to interrupt the eval loop at every instruction if - // the current Python thread cannot handle signals (if - // _Py_ThreadCanHandleSignals() is false). - COMPUTE_EVAL_BREAKER(tstate->interp, ceval, interp_ceval_state); - return 0; } - diff --git a/contrib/tools/python3/Python/ceval_macros.h b/contrib/tools/python3/Python/ceval_macros.h index fccf9088cbd..1ab83856fd9 100644 --- a/contrib/tools/python3/Python/ceval_macros.h +++ b/contrib/tools/python3/Python/ceval_macros.h @@ -1,4 +1,4 @@ -// Macros needed by ceval.c and bytecodes.c +// Macros and other things needed by ceval.c, and bytecodes.c /* Computed GOTOs, or the-optimization-commonly-but-improperly-known-as-"threaded code" @@ -60,33 +60,50 @@ #endif #ifdef Py_STATS -#define INSTRUCTION_START(op) \ +#define INSTRUCTION_STATS(op) \ do { \ - frame->prev_instr = next_instr++; \ OPCODE_EXE_INC(op); \ - if (_py_stats) _py_stats->opcode_stats[lastopcode].pair_count[op]++; \ + if (_Py_stats) _Py_stats->opcode_stats[lastopcode].pair_count[op]++; \ lastopcode = op; \ } while (0) #else -#define INSTRUCTION_START(op) (frame->prev_instr = next_instr++) +#define INSTRUCTION_STATS(op) ((void)0) #endif #if USE_COMPUTED_GOTOS -# define TARGET(op) TARGET_##op: INSTRUCTION_START(op); +# define TARGET(op) TARGET_##op: # define DISPATCH_GOTO() goto *opcode_targets[opcode] #else -# define TARGET(op) case op: TARGET_##op: INSTRUCTION_START(op); +# define TARGET(op) case op: TARGET_##op: # define DISPATCH_GOTO() goto dispatch_opcode #endif /* PRE_DISPATCH_GOTO() does lltrace if enabled. Normally a no-op */ #ifdef LLTRACE -#define PRE_DISPATCH_GOTO() if (lltrace) { \ - lltrace_instruction(frame, stack_pointer, next_instr); } +#define PRE_DISPATCH_GOTO() if (lltrace >= 5) { \ + lltrace_instruction(frame, stack_pointer, next_instr, opcode, oparg); } #else #define PRE_DISPATCH_GOTO() ((void)0) #endif +#if LLTRACE +#define LLTRACE_RESUME_FRAME() \ +do { \ + lltrace = maybe_lltrace_resume_frame(frame, &entry_frame, GLOBALS()); \ + if (lltrace < 0) { \ + goto exit_unwind; \ + } \ +} while (0) +#else +#define LLTRACE_RESUME_FRAME() ((void)0) +#endif + +#ifdef Py_GIL_DISABLED +#define QSBR_QUIESCENT_STATE(tstate) _Py_qsbr_quiescent_state(((_PyThreadStateImpl *)tstate)->qsbr) +#else +#define QSBR_QUIESCENT_STATE(tstate) +#endif + /* Do interpreter dispatch accounting for tracing and instrumentation */ #define DISPATCH() \ @@ -107,17 +124,22 @@ do { \ assert(tstate->interp->eval_frame == NULL); \ _PyFrame_SetStackPointer(frame, stack_pointer); \ - frame->prev_instr = next_instr - 1; \ (NEW_FRAME)->previous = frame; \ - frame = cframe.current_frame = (NEW_FRAME); \ + frame = tstate->current_frame = (NEW_FRAME); \ CALL_STAT_INC(inlined_py_calls); \ goto start_frame; \ } while (0) +// Use this instead of 'goto error' so Tier 2 can go to a different label +#define GOTO_ERROR(LABEL) goto LABEL + #define CHECK_EVAL_BREAKER() \ _Py_CHECK_EMSCRIPTEN_SIGNALS_PERIODICALLY(); \ - if (_Py_atomic_load_relaxed_int32(&tstate->interp->ceval.eval_breaker)) { \ - goto handle_eval_breaker; \ + QSBR_QUIESCENT_STATE(tstate); \ + if (_Py_atomic_load_uintptr_relaxed(&tstate->eval_breaker) & _PY_EVAL_EVENTS_MASK) { \ + if (_Py_HandlePending(tstate) != 0) { \ + GOTO_ERROR(error); \ + } \ } @@ -138,14 +160,19 @@ GETITEM(PyObject *v, Py_ssize_t i) { /* Code access macros */ /* The integer overflow is checked by an assertion below. */ -#define INSTR_OFFSET() ((int)(next_instr - _PyCode_CODE(frame->f_code))) +#define INSTR_OFFSET() ((int)(next_instr - _PyCode_CODE(_PyFrame_GetCode(frame)))) #define NEXTOPARG() do { \ - _Py_CODEUNIT word = *next_instr; \ + _Py_CODEUNIT word = {.cache = FT_ATOMIC_LOAD_UINT16_RELAXED(*(uint16_t*)next_instr)}; \ opcode = word.op.code; \ oparg = word.op.arg; \ } while (0) -#define JUMPTO(x) (next_instr = _PyCode_CODE(frame->f_code) + (x)) + +/* JUMPBY makes the generator identify the instruction as a jump. SKIP_OVER is + * for advancing to the next instruction, taking into account cache entries + * and skipped instructions. + */ #define JUMPBY(x) (next_instr += (x)) +#define SKIP_OVER(x) (next_instr += (x)) /* OpCode prediction macros Some opcodes tend to come in pairs thus making it possible to @@ -174,21 +201,6 @@ GETITEM(PyObject *v, Py_ssize_t i) { */ #define PREDICT_ID(op) PRED_##op - -#if USE_COMPUTED_GOTOS -#define PREDICT(op) if (0) goto PREDICT_ID(op) -#else -#define PREDICT(next_op) \ - do { \ - _Py_CODEUNIT word = *next_instr; \ - opcode = word.op.code; \ - if (opcode == next_op) { \ - oparg = word.op.arg; \ - INSTRUCTION_START(next_op); \ - goto PREDICT_ID(next_op); \ - } \ - } while(0) -#endif #define PREDICTED(op) PREDICT_ID(op): @@ -197,7 +209,7 @@ GETITEM(PyObject *v, Py_ssize_t i) { /* The stack can grow at most MAXINT deep, as co_nlocals and co_stacksize are ints. */ #define STACK_LEVEL() ((int)(stack_pointer - _PyFrame_Stackbase(frame))) -#define STACK_SIZE() (frame->f_code->co_stacksize) +#define STACK_SIZE() (_PyFrame_GetCode(frame)->co_stacksize) #define EMPTY() (STACK_LEVEL() == 0) #define TOP() (stack_pointer[-1]) #define SECOND() (stack_pointer[-2]) @@ -234,8 +246,14 @@ GETITEM(PyObject *v, Py_ssize_t i) { #define STACK_SHRINK(n) BASIC_STACKADJ(-(n)) #endif + +/* Data access macros */ +#define FRAME_CO_CONSTS (_PyFrame_GetCode(frame)->co_consts) +#define FRAME_CO_NAMES (_PyFrame_GetCode(frame)->co_names) + /* Local variable macros */ +#define LOCALS_ARRAY (frame->localsplus) #define GETLOCAL(i) (frame->localsplus[i]) /* The SETLOCAL() macro must not DECREF the local variable in-place and @@ -256,13 +274,9 @@ GETITEM(PyObject *v, Py_ssize_t i) { STAT_INC(opcode, miss); \ STAT_INC((INSTNAME), miss); \ /* The counter is always the first cache entry: */ \ - if (ADAPTIVE_COUNTER_IS_ZERO(next_instr->cache)) { \ + if (ADAPTIVE_COUNTER_TRIGGERS(next_instr->cache)) { \ STAT_INC((INSTNAME), deopt); \ } \ - else { \ - /* This is about to be (incorrectly) incremented: */ \ - STAT_DEC((INSTNAME), deferred); \ - } \ } while (0) #else #define UPDATE_MISS_STATS(INSTNAME) ((void)0) @@ -280,35 +294,46 @@ GETITEM(PyObject *v, Py_ssize_t i) { #define GLOBALS() frame->f_globals #define BUILTINS() frame->f_builtins #define LOCALS() frame->f_locals +#define CONSTS() _PyFrame_GetCode(frame)->co_consts +#define NAMES() _PyFrame_GetCode(frame)->co_names #define DTRACE_FUNCTION_ENTRY() \ if (PyDTrace_FUNCTION_ENTRY_ENABLED()) { \ dtrace_function_entry(frame); \ } -#define ADAPTIVE_COUNTER_IS_ZERO(COUNTER) \ - (((COUNTER) >> ADAPTIVE_BACKOFF_BITS) == 0) +/* This takes a uint16_t instead of a _Py_BackoffCounter, + * because it is used directly on the cache entry in generated code, + * which is always an integral type. */ +#define ADAPTIVE_COUNTER_TRIGGERS(COUNTER) \ + backoff_counter_triggers(forge_backoff_counter((COUNTER))) -#define ADAPTIVE_COUNTER_IS_MAX(COUNTER) \ - (((COUNTER) >> ADAPTIVE_BACKOFF_BITS) == ((1 << MAX_BACKOFF_VALUE) - 1)) - -#define DECREMENT_ADAPTIVE_COUNTER(COUNTER) \ - do { \ - assert(!ADAPTIVE_COUNTER_IS_ZERO((COUNTER))); \ - (COUNTER) -= (1 << ADAPTIVE_BACKOFF_BITS); \ +#ifdef Py_GIL_DISABLED +#define ADVANCE_ADAPTIVE_COUNTER(COUNTER) \ + do { \ + /* gh-115999 tracks progress on addressing this. */ \ + static_assert(0, "The specializing interpreter is not yet thread-safe"); \ + } while (0); +#define PAUSE_ADAPTIVE_COUNTER(COUNTER) ((void)COUNTER) +#else +#define ADVANCE_ADAPTIVE_COUNTER(COUNTER) \ + do { \ + (COUNTER) = advance_backoff_counter((COUNTER)); \ } while (0); -#define INCREMENT_ADAPTIVE_COUNTER(COUNTER) \ - do { \ - assert(!ADAPTIVE_COUNTER_IS_MAX((COUNTER))); \ - (COUNTER) += (1 << ADAPTIVE_BACKOFF_BITS); \ +#define PAUSE_ADAPTIVE_COUNTER(COUNTER) \ + do { \ + (COUNTER) = pause_backoff_counter((COUNTER)); \ } while (0); +#endif +#define UNBOUNDLOCAL_ERROR_MSG \ + "cannot access local variable '%s' where it is not associated with a value" +#define UNBOUNDFREE_ERROR_MSG \ + "cannot access free variable '%s' where it is not associated with a value" \ + " in enclosing scope" #define NAME_ERROR_MSG "name '%.200s' is not defined" -#define KWNAMES_LEN() \ - (kwnames == NULL ? 0 : ((int)PyTuple_GET_SIZE(kwnames))) - #define DECREF_INPUTS_AND_REUSE_FLOAT(left, right, dval, result) \ do { \ if (Py_REFCNT(left) == 1) { \ @@ -323,7 +348,7 @@ do { \ }\ else { \ result = PyFloat_FromDouble(dval); \ - if ((result) == NULL) goto error; \ + if ((result) == NULL) GOTO_ERROR(error); \ _Py_DECREF_NO_DEALLOC(left); \ _Py_DECREF_NO_DEALLOC(right); \ } \ @@ -334,11 +359,92 @@ do { \ // for an exception handler, displaying the traceback, and so on #define INSTRUMENTED_JUMP(src, dest, event) \ do { \ - _PyFrame_SetStackPointer(frame, stack_pointer); \ - next_instr = _Py_call_instrumentation_jump(tstate, event, frame, src, dest); \ - stack_pointer = _PyFrame_GetStackPointer(frame); \ - if (next_instr == NULL) { \ - next_instr = (dest)+1; \ - goto error; \ + if (tstate->tracing) {\ + next_instr = dest; \ + } else { \ + _PyFrame_SetStackPointer(frame, stack_pointer); \ + next_instr = _Py_call_instrumentation_jump(tstate, event, frame, src, dest); \ + stack_pointer = _PyFrame_GetStackPointer(frame); \ + if (next_instr == NULL) { \ + next_instr = (dest)+1; \ + goto error; \ + } \ } \ } while (0); + + +// GH-89279: Force inlining by using a macro. +#if defined(_MSC_VER) && SIZEOF_INT == 4 +#define _Py_atomic_load_relaxed_int32(ATOMIC_VAL) (assert(sizeof((ATOMIC_VAL)->_value) == 4), *((volatile int*)&((ATOMIC_VAL)->_value))) +#else +#define _Py_atomic_load_relaxed_int32(ATOMIC_VAL) _Py_atomic_load_relaxed(ATOMIC_VAL) +#endif + +static inline int _Py_EnterRecursivePy(PyThreadState *tstate) { + return (tstate->py_recursion_remaining-- <= 0) && + _Py_CheckRecursiveCallPy(tstate); +} + +static inline void _Py_LeaveRecursiveCallPy(PyThreadState *tstate) { + tstate->py_recursion_remaining++; +} + +/* Implementation of "macros" that modify the instruction pointer, + * stack pointer, or frame pointer. + * These need to treated differently by tier 1 and 2. + * The Tier 1 version is here; Tier 2 is inlined in ceval.c. */ + +#define LOAD_IP(OFFSET) do { \ + next_instr = frame->instr_ptr + (OFFSET); \ + } while (0) + +/* There's no STORE_IP(), it's inlined by the code generator. */ + +#define LOAD_SP() \ +stack_pointer = _PyFrame_GetStackPointer(frame); + +/* Tier-switching macros. */ + +#ifdef _Py_JIT +#define GOTO_TIER_TWO(EXECUTOR) \ +do { \ + OPT_STAT_INC(traces_executed); \ + jit_func jitted = (EXECUTOR)->jit_code; \ + next_instr = jitted(frame, stack_pointer, tstate); \ + Py_DECREF(tstate->previous_executor); \ + tstate->previous_executor = NULL; \ + frame = tstate->current_frame; \ + if (next_instr == NULL) { \ + goto resume_with_error; \ + } \ + stack_pointer = _PyFrame_GetStackPointer(frame); \ + DISPATCH(); \ +} while (0) +#else +#define GOTO_TIER_TWO(EXECUTOR) \ +do { \ + OPT_STAT_INC(traces_executed); \ + next_uop = (EXECUTOR)->trace; \ + assert(next_uop->opcode == _START_EXECUTOR || next_uop->opcode == _COLD_EXIT); \ + goto enter_tier_two; \ +} while (0) +#endif + +#define GOTO_TIER_ONE(TARGET) \ +do { \ + Py_DECREF(tstate->previous_executor); \ + tstate->previous_executor = NULL; \ + next_instr = target; \ + DISPATCH(); \ +} while (0) + +#define CURRENT_OPARG() (next_uop[-1].oparg) + +#define CURRENT_OPERAND() (next_uop[-1].operand) + +#define JUMP_TO_JUMP_TARGET() goto jump_to_jump_target +#define JUMP_TO_ERROR() goto jump_to_error_target +#define GOTO_UNWIND() goto error_tier_two +#define EXIT_TO_TRACE() goto exit_to_trace +#define EXIT_TO_TIER1() goto exit_to_tier1 +#define EXIT_TO_TIER1_DYNAMIC() goto exit_to_tier1_dynamic; diff --git a/contrib/tools/python3/Python/clinic/Python-tokenize.c.h b/contrib/tools/python3/Python/clinic/Python-tokenize.c.h index 28f5075826e..730fa8ef2a2 100644 --- a/contrib/tools/python3/Python/clinic/Python-tokenize.c.h +++ b/contrib/tools/python3/Python/clinic/Python-tokenize.c.h @@ -3,10 +3,10 @@ preserve [clinic start generated code]*/ #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() #endif - +#include "pycore_modsupport.h" // _PyArg_UnpackKeywords() static PyObject * tokenizeriter_new_impl(PyTypeObject *type, PyObject *readline, @@ -80,4 +80,4 @@ skip_optional_kwonly: exit: return return_value; } -/*[clinic end generated code: output=48be65a2808bdfa6 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=dcd6ec48f06a092e input=a9049054013a1b77]*/ diff --git a/contrib/tools/python3/Python/clinic/_warnings.c.h b/contrib/tools/python3/Python/clinic/_warnings.c.h index 432e554af85..98dc49db305 100644 --- a/contrib/tools/python3/Python/clinic/_warnings.c.h +++ b/contrib/tools/python3/Python/clinic/_warnings.c.h @@ -3,10 +3,11 @@ preserve [clinic start generated code]*/ #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() #endif - +#include "pycore_abstract.h" // _PyNumber_Index() +#include "pycore_modsupport.h" // _PyArg_UnpackKeywords() PyDoc_STRVAR(warnings_warn__doc__, "warn($module, /, message, category=None, stacklevel=1, source=None, *,\n" @@ -193,11 +194,8 @@ warnings_warn_explicit(PyObject *module, PyObject *const *args, Py_ssize_t nargs _PyArg_BadArgument("warn_explicit", "argument 'filename'", "str", args[2]); goto exit; } - if (PyUnicode_READY(args[2]) == -1) { - goto exit; - } filename = args[2]; - lineno = _PyLong_AsInt(args[3]); + lineno = PyLong_AsInt(args[3]); if (lineno == -1 && PyErr_Occurred()) { goto exit; } @@ -246,4 +244,4 @@ warnings_filters_mutated(PyObject *module, PyObject *Py_UNUSED(ignored)) { return warnings_filters_mutated_impl(module); } -/*[clinic end generated code: output=20429719d7223bdc input=a9049054013a1b77]*/ +/*[clinic end generated code: output=f2d4214c382717a6 input=a9049054013a1b77]*/ diff --git a/contrib/tools/python3/Python/clinic/bltinmodule.c.h b/contrib/tools/python3/Python/clinic/bltinmodule.c.h index 737a3c65d27..370cf3c929b 100644 --- a/contrib/tools/python3/Python/clinic/bltinmodule.c.h +++ b/contrib/tools/python3/Python/clinic/bltinmodule.c.h @@ -3,10 +3,10 @@ preserve [clinic start generated code]*/ #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() #endif - +#include "pycore_modsupport.h" // _PyArg_UnpackKeywords() PyDoc_STRVAR(builtin___import____doc__, "__import__($module, /, name, globals=None, locals=None, fromlist=(),\n" @@ -99,7 +99,7 @@ builtin___import__(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py goto skip_optional_pos; } } - level = _PyLong_AsInt(args[4]); + level = PyLong_AsInt(args[4]); if (level == -1 && PyErr_Occurred()) { goto exit; } @@ -216,9 +216,6 @@ builtin_format(PyObject *module, PyObject *const *args, Py_ssize_t nargs) _PyArg_BadArgument("format", "argument 2", "str", args[1]); goto exit; } - if (PyUnicode_READY(args[1]) == -1) { - goto exit; - } format_spec = args[1]; skip_optional: return_value = builtin_format_impl(module, value, format_spec); @@ -236,25 +233,6 @@ PyDoc_STRVAR(builtin_chr__doc__, #define BUILTIN_CHR_METHODDEF \ {"chr", (PyCFunction)builtin_chr, METH_O, builtin_chr__doc__}, -static PyObject * -builtin_chr_impl(PyObject *module, int i); - -static PyObject * -builtin_chr(PyObject *module, PyObject *arg) -{ - PyObject *return_value = NULL; - int i; - - i = _PyLong_AsInt(arg); - if (i == -1 && PyErr_Occurred()) { - goto exit; - } - return_value = builtin_chr_impl(module, i); - -exit: - return return_value; -} - PyDoc_STRVAR(builtin_compile__doc__, "compile($module, /, source, filename, mode, flags=0,\n" " dont_inherit=False, optimize=-1, *, _feature_version=-1)\n" @@ -313,7 +291,7 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj PyObject *argsbuf[7]; Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; PyObject *source; - PyObject *filename; + PyObject *filename = NULL; const char *mode; int flags = 0; int dont_inherit = 0; @@ -345,7 +323,7 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj goto skip_optional_pos; } if (args[3]) { - flags = _PyLong_AsInt(args[3]); + flags = PyLong_AsInt(args[3]); if (flags == -1 && PyErr_Occurred()) { goto exit; } @@ -363,7 +341,7 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj } } if (args[5]) { - optimize = _PyLong_AsInt(args[5]); + optimize = PyLong_AsInt(args[5]); if (optimize == -1 && PyErr_Occurred()) { goto exit; } @@ -375,7 +353,7 @@ skip_optional_pos: if (!noptargs) { goto skip_optional_kwonly; } - feature_version = _PyLong_AsInt(args[6]); + feature_version = PyLong_AsInt(args[6]); if (feature_version == -1 && PyErr_Occurred()) { goto exit; } @@ -383,6 +361,9 @@ skip_optional_kwonly: return_value = builtin_compile_impl(module, source, filename, mode, flags, dont_inherit, optimize, feature_version); exit: + /* Cleanup for filename */ + Py_XDECREF(filename); + return return_value; } @@ -417,7 +398,7 @@ exit: } PyDoc_STRVAR(builtin_eval__doc__, -"eval($module, source, globals=None, locals=None, /)\n" +"eval($module, source, /, globals=None, locals=None)\n" "--\n" "\n" "Evaluate the given source in the context of globals and locals.\n" @@ -429,33 +410,63 @@ PyDoc_STRVAR(builtin_eval__doc__, "If only globals is given, locals defaults to it."); #define BUILTIN_EVAL_METHODDEF \ - {"eval", _PyCFunction_CAST(builtin_eval), METH_FASTCALL, builtin_eval__doc__}, + {"eval", _PyCFunction_CAST(builtin_eval), METH_FASTCALL|METH_KEYWORDS, builtin_eval__doc__}, static PyObject * builtin_eval_impl(PyObject *module, PyObject *source, PyObject *globals, PyObject *locals); static PyObject * -builtin_eval(PyObject *module, PyObject *const *args, Py_ssize_t nargs) +builtin_eval(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 2 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(globals), &_Py_ID(locals), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"", "globals", "locals", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "eval", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[3]; + Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *source; PyObject *globals = Py_None; PyObject *locals = Py_None; - if (!_PyArg_CheckPositional("eval", nargs, 1, 3)) { + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf); + if (!args) { goto exit; } source = args[0]; - if (nargs < 2) { - goto skip_optional; + if (!noptargs) { + goto skip_optional_pos; } - globals = args[1]; - if (nargs < 3) { - goto skip_optional; + if (args[1]) { + globals = args[1]; + if (!--noptargs) { + goto skip_optional_pos; + } } locals = args[2]; -skip_optional: +skip_optional_pos: return_value = builtin_eval_impl(module, source, globals, locals); exit: @@ -463,7 +474,7 @@ exit: } PyDoc_STRVAR(builtin_exec__doc__, -"exec($module, source, globals=None, locals=None, /, *, closure=None)\n" +"exec($module, source, /, globals=None, locals=None, *, closure=None)\n" "--\n" "\n" "Execute the given source in the context of globals and locals.\n" @@ -489,14 +500,14 @@ builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject PyObject *return_value = NULL; #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) - #define NUM_KEYWORDS 1 + #define NUM_KEYWORDS 3 static struct { PyGC_Head _this_is_not_used; PyObject_VAR_HEAD PyObject *ob_item[NUM_KEYWORDS]; } _kwtuple = { .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) - .ob_item = { &_Py_ID(closure), }, + .ob_item = { &_Py_ID(globals), &_Py_ID(locals), &_Py_ID(closure), }, }; #undef NUM_KEYWORDS #define KWTUPLE (&_kwtuple.ob_base.ob_base) @@ -505,7 +516,7 @@ builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject # define KWTUPLE NULL #endif // !Py_BUILD_CORE - static const char * const _keywords[] = {"", "", "", "closure", NULL}; + static const char * const _keywords[] = {"", "globals", "locals", "closure", NULL}; static _PyArg_Parser _parser = { .keywords = _keywords, .fname = "exec", @@ -524,17 +535,22 @@ builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject goto exit; } source = args[0]; - if (nargs < 2) { - goto skip_optional_posonly; + if (!noptargs) { + goto skip_optional_pos; } - noptargs--; - globals = args[1]; - if (nargs < 3) { - goto skip_optional_posonly; + if (args[1]) { + globals = args[1]; + if (!--noptargs) { + goto skip_optional_pos; + } } - noptargs--; - locals = args[2]; -skip_optional_posonly: + if (args[2]) { + locals = args[2]; + if (!--noptargs) { + goto skip_optional_pos; + } + } +skip_optional_pos: if (!noptargs) { goto skip_optional_kwonly; } @@ -715,10 +731,10 @@ PyDoc_STRVAR(builtin_anext__doc__, "anext($module, aiterator, default=, /)\n" "--\n" "\n" -"async anext(aiterator[, default])\n" +"Return the next item from the async iterator.\n" "\n" -"Return the next item from the async iterator. If default is given and the async\n" -"iterator is exhausted, it is returned instead of raising StopAsyncIteration."); +"If default is given and the async iterator is exhausted,\n" +"it is returned instead of raising StopAsyncIteration."); #define BUILTIN_ANEXT_METHODDEF \ {"anext", _PyCFunction_CAST(builtin_anext), METH_FASTCALL, builtin_anext__doc__}, @@ -793,10 +809,16 @@ PyDoc_STRVAR(builtin_oct__doc__, {"oct", (PyCFunction)builtin_oct, METH_O, builtin_oct__doc__}, PyDoc_STRVAR(builtin_ord__doc__, -"ord($module, c, /)\n" +"ord($module, character, /)\n" "--\n" "\n" -"Return the Unicode code point for a one-character string."); +"Return the ordinal value of a character.\n" +"\n" +"If the argument is a one-character string, return the Unicode code\n" +"point of that character.\n" +"\n" +"If the argument is a bytes or bytearray object of length 1, return its\n" +"single byte value."); #define BUILTIN_ORD_METHODDEF \ {"ord", (PyCFunction)builtin_ord, METH_O, builtin_ord__doc__}, @@ -1215,4 +1237,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=4056e9aefc5b0247 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=39173c70790d9cd0 input=a9049054013a1b77]*/ diff --git a/contrib/tools/python3/Python/clinic/context.c.h b/contrib/tools/python3/Python/clinic/context.c.h index 27c375717bf..997ac6f6338 100644 --- a/contrib/tools/python3/Python/clinic/context.c.h +++ b/contrib/tools/python3/Python/clinic/context.c.h @@ -2,11 +2,7 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - +#include "pycore_modsupport.h" // _PyArg_CheckPositional() PyDoc_STRVAR(_contextvars_Context_get__doc__, "get($self, key, default=None, /)\n" @@ -183,4 +179,4 @@ PyDoc_STRVAR(_contextvars_ContextVar_reset__doc__, #define _CONTEXTVARS_CONTEXTVAR_RESET_METHODDEF \ {"reset", (PyCFunction)_contextvars_ContextVar_reset, METH_O, _contextvars_ContextVar_reset__doc__}, -/*[clinic end generated code: output=0c94d4b919500438 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b667826178444c3f input=a9049054013a1b77]*/ diff --git a/contrib/tools/python3/Python/clinic/import.c.h b/contrib/tools/python3/Python/clinic/import.c.h index cb74be6a422..5edeaef656e 100644 --- a/contrib/tools/python3/Python/clinic/import.c.h +++ b/contrib/tools/python3/Python/clinic/import.c.h @@ -3,10 +3,10 @@ preserve [clinic start generated code]*/ #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() #endif - +#include "pycore_modsupport.h" // _PyArg_CheckPositional() PyDoc_STRVAR(_imp_lock_held__doc__, "lock_held($module, /)\n" @@ -106,9 +106,6 @@ _imp__fix_co_filename(PyObject *module, PyObject *const *args, Py_ssize_t nargs) _PyArg_BadArgument("_fix_co_filename", "argument 2", "str", args[1]); goto exit; } - if (PyUnicode_READY(args[1]) == -1) { - goto exit; - } path = args[1]; return_value = _imp__fix_co_filename_impl(module, code, path); @@ -165,9 +162,6 @@ _imp_init_frozen(PyObject *module, PyObject *arg) _PyArg_BadArgument("init_frozen", "argument", "str", arg); goto exit; } - if (PyUnicode_READY(arg) == -1) { - goto exit; - } name = arg; return_value = _imp_init_frozen_impl(module, name); @@ -237,9 +231,6 @@ _imp_find_frozen(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb _PyArg_BadArgument("find_frozen", "argument 1", "str", args[0]); goto exit; } - if (PyUnicode_READY(args[0]) == -1) { - goto exit; - } name = args[0]; if (!noptargs) { goto skip_optional_kwonly; @@ -282,9 +273,6 @@ _imp_get_frozen_object(PyObject *module, PyObject *const *args, Py_ssize_t nargs _PyArg_BadArgument("get_frozen_object", "argument 1", "str", args[0]); goto exit; } - if (PyUnicode_READY(args[0]) == -1) { - goto exit; - } name = args[0]; if (nargs < 2) { goto skip_optional; @@ -319,9 +307,6 @@ _imp_is_frozen_package(PyObject *module, PyObject *arg) _PyArg_BadArgument("is_frozen_package", "argument", "str", arg); goto exit; } - if (PyUnicode_READY(arg) == -1) { - goto exit; - } name = arg; return_value = _imp_is_frozen_package_impl(module, name); @@ -351,9 +336,6 @@ _imp_is_builtin(PyObject *module, PyObject *arg) _PyArg_BadArgument("is_builtin", "argument", "str", arg); goto exit; } - if (PyUnicode_READY(arg) == -1) { - goto exit; - } name = arg; return_value = _imp_is_builtin_impl(module, name); @@ -383,9 +365,6 @@ _imp_is_frozen(PyObject *module, PyObject *arg) _PyArg_BadArgument("is_frozen", "argument", "str", arg); goto exit; } - if (PyUnicode_READY(arg) == -1) { - goto exit; - } name = arg; return_value = _imp_is_frozen_impl(module, name); @@ -432,7 +411,7 @@ _imp__override_frozen_modules_for_tests(PyObject *module, PyObject *arg) PyObject *return_value = NULL; int override; - override = _PyLong_AsInt(arg); + override = PyLong_AsInt(arg); if (override == -1 && PyErr_Occurred()) { goto exit; } @@ -463,7 +442,7 @@ _imp__override_multi_interp_extensions_check(PyObject *module, PyObject *arg) PyObject *return_value = NULL; int override; - override = _PyLong_AsInt(arg); + override = PyLong_AsInt(arg); if (override == -1 && PyErr_Occurred()) { goto exit; } @@ -626,10 +605,6 @@ _imp_source_hash(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb if (PyObject_GetBuffer(args[1], &source, PyBUF_SIMPLE) != 0) { goto exit; } - if (!PyBuffer_IsContiguous(&source, 'C')) { - _PyArg_BadArgument("source_hash", "argument 'source'", "contiguous buffer", args[1]); - goto exit; - } return_value = _imp_source_hash_impl(module, key, &source); exit: @@ -648,4 +623,4 @@ exit: #ifndef _IMP_EXEC_DYNAMIC_METHODDEF #define _IMP_EXEC_DYNAMIC_METHODDEF #endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */ -/*[clinic end generated code: output=b18d46e0036eff49 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=dbd63707bd40b07c input=a9049054013a1b77]*/ diff --git a/contrib/tools/python3/Python/clinic/instruction_sequence.c.h b/contrib/tools/python3/Python/clinic/instruction_sequence.c.h new file mode 100644 index 00000000000..66c2ccadfa0 --- /dev/null +++ b/contrib/tools/python3/Python/clinic/instruction_sequence.c.h @@ -0,0 +1,304 @@ +/*[clinic input] +preserve +[clinic start generated code]*/ + +#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() +#endif +#include "pycore_modsupport.h" // _PyArg_NoKeywords() + +PyDoc_STRVAR(inst_seq_new__doc__, +"InstructionSequenceType()\n" +"--\n" +"\n" +"Create a new InstructionSequence object."); + +static PyObject * +inst_seq_new_impl(PyTypeObject *type); + +static PyObject * +inst_seq_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) +{ + PyObject *return_value = NULL; + PyTypeObject *base_tp = &_PyInstructionSequence_Type; + + if ((type == base_tp || type->tp_init == base_tp->tp_init) && + !_PyArg_NoPositional("InstructionSequenceType", args)) { + goto exit; + } + if ((type == base_tp || type->tp_init == base_tp->tp_init) && + !_PyArg_NoKeywords("InstructionSequenceType", kwargs)) { + goto exit; + } + return_value = inst_seq_new_impl(type); + +exit: + return return_value; +} + +PyDoc_STRVAR(InstructionSequenceType_use_label__doc__, +"use_label($self, /, label)\n" +"--\n" +"\n" +"Place label at current location."); + +#define INSTRUCTIONSEQUENCETYPE_USE_LABEL_METHODDEF \ + {"use_label", _PyCFunction_CAST(InstructionSequenceType_use_label), METH_FASTCALL|METH_KEYWORDS, InstructionSequenceType_use_label__doc__}, + +static PyObject * +InstructionSequenceType_use_label_impl(_PyInstructionSequence *self, + int label); + +static PyObject * +InstructionSequenceType_use_label(_PyInstructionSequence *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) +{ + PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(label), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"label", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "use_label", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[1]; + int label; + + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); + if (!args) { + goto exit; + } + label = PyLong_AsInt(args[0]); + if (label == -1 && PyErr_Occurred()) { + goto exit; + } + return_value = InstructionSequenceType_use_label_impl(self, label); + +exit: + return return_value; +} + +PyDoc_STRVAR(InstructionSequenceType_addop__doc__, +"addop($self, /, opcode, oparg, lineno, col_offset, end_lineno,\n" +" end_col_offset)\n" +"--\n" +"\n" +"Append an instruction."); + +#define INSTRUCTIONSEQUENCETYPE_ADDOP_METHODDEF \ + {"addop", _PyCFunction_CAST(InstructionSequenceType_addop), METH_FASTCALL|METH_KEYWORDS, InstructionSequenceType_addop__doc__}, + +static PyObject * +InstructionSequenceType_addop_impl(_PyInstructionSequence *self, int opcode, + int oparg, int lineno, int col_offset, + int end_lineno, int end_col_offset); + +static PyObject * +InstructionSequenceType_addop(_PyInstructionSequence *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) +{ + PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 6 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(opcode), &_Py_ID(oparg), &_Py_ID(lineno), &_Py_ID(col_offset), &_Py_ID(end_lineno), &_Py_ID(end_col_offset), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"opcode", "oparg", "lineno", "col_offset", "end_lineno", "end_col_offset", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "addop", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[6]; + int opcode; + int oparg; + int lineno; + int col_offset; + int end_lineno; + int end_col_offset; + + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 6, 6, 0, argsbuf); + if (!args) { + goto exit; + } + opcode = PyLong_AsInt(args[0]); + if (opcode == -1 && PyErr_Occurred()) { + goto exit; + } + oparg = PyLong_AsInt(args[1]); + if (oparg == -1 && PyErr_Occurred()) { + goto exit; + } + lineno = PyLong_AsInt(args[2]); + if (lineno == -1 && PyErr_Occurred()) { + goto exit; + } + col_offset = PyLong_AsInt(args[3]); + if (col_offset == -1 && PyErr_Occurred()) { + goto exit; + } + end_lineno = PyLong_AsInt(args[4]); + if (end_lineno == -1 && PyErr_Occurred()) { + goto exit; + } + end_col_offset = PyLong_AsInt(args[5]); + if (end_col_offset == -1 && PyErr_Occurred()) { + goto exit; + } + return_value = InstructionSequenceType_addop_impl(self, opcode, oparg, lineno, col_offset, end_lineno, end_col_offset); + +exit: + return return_value; +} + +PyDoc_STRVAR(InstructionSequenceType_new_label__doc__, +"new_label($self, /)\n" +"--\n" +"\n" +"Return a new label."); + +#define INSTRUCTIONSEQUENCETYPE_NEW_LABEL_METHODDEF \ + {"new_label", (PyCFunction)InstructionSequenceType_new_label, METH_NOARGS, InstructionSequenceType_new_label__doc__}, + +static int +InstructionSequenceType_new_label_impl(_PyInstructionSequence *self); + +static PyObject * +InstructionSequenceType_new_label(_PyInstructionSequence *self, PyObject *Py_UNUSED(ignored)) +{ + PyObject *return_value = NULL; + int _return_value; + + _return_value = InstructionSequenceType_new_label_impl(self); + if ((_return_value == -1) && PyErr_Occurred()) { + goto exit; + } + return_value = PyLong_FromLong((long)_return_value); + +exit: + return return_value; +} + +PyDoc_STRVAR(InstructionSequenceType_add_nested__doc__, +"add_nested($self, /, nested)\n" +"--\n" +"\n" +"Add a nested sequence."); + +#define INSTRUCTIONSEQUENCETYPE_ADD_NESTED_METHODDEF \ + {"add_nested", _PyCFunction_CAST(InstructionSequenceType_add_nested), METH_FASTCALL|METH_KEYWORDS, InstructionSequenceType_add_nested__doc__}, + +static PyObject * +InstructionSequenceType_add_nested_impl(_PyInstructionSequence *self, + PyObject *nested); + +static PyObject * +InstructionSequenceType_add_nested(_PyInstructionSequence *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) +{ + PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(nested), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"nested", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "add_nested", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[1]; + PyObject *nested; + + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); + if (!args) { + goto exit; + } + nested = args[0]; + return_value = InstructionSequenceType_add_nested_impl(self, nested); + +exit: + return return_value; +} + +PyDoc_STRVAR(InstructionSequenceType_get_nested__doc__, +"get_nested($self, /)\n" +"--\n" +"\n" +"Add a nested sequence."); + +#define INSTRUCTIONSEQUENCETYPE_GET_NESTED_METHODDEF \ + {"get_nested", (PyCFunction)InstructionSequenceType_get_nested, METH_NOARGS, InstructionSequenceType_get_nested__doc__}, + +static PyObject * +InstructionSequenceType_get_nested_impl(_PyInstructionSequence *self); + +static PyObject * +InstructionSequenceType_get_nested(_PyInstructionSequence *self, PyObject *Py_UNUSED(ignored)) +{ + return InstructionSequenceType_get_nested_impl(self); +} + +PyDoc_STRVAR(InstructionSequenceType_get_instructions__doc__, +"get_instructions($self, /)\n" +"--\n" +"\n" +"Return the instructions as a list of tuples or labels."); + +#define INSTRUCTIONSEQUENCETYPE_GET_INSTRUCTIONS_METHODDEF \ + {"get_instructions", (PyCFunction)InstructionSequenceType_get_instructions, METH_NOARGS, InstructionSequenceType_get_instructions__doc__}, + +static PyObject * +InstructionSequenceType_get_instructions_impl(_PyInstructionSequence *self); + +static PyObject * +InstructionSequenceType_get_instructions(_PyInstructionSequence *self, PyObject *Py_UNUSED(ignored)) +{ + return InstructionSequenceType_get_instructions_impl(self); +} +/*[clinic end generated code: output=8809d7aa11d9b2bb input=a9049054013a1b77]*/ diff --git a/contrib/tools/python3/Python/clinic/instrumentation.c.h b/contrib/tools/python3/Python/clinic/instrumentation.c.h index cf3984ca24b..8dae747c44a 100644 --- a/contrib/tools/python3/Python/clinic/instrumentation.c.h +++ b/contrib/tools/python3/Python/clinic/instrumentation.c.h @@ -2,11 +2,7 @@ preserve [clinic start generated code]*/ -#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() -#endif - +#include "pycore_modsupport.h" // _PyArg_CheckPositional() PyDoc_STRVAR(monitoring_use_tool_id__doc__, "use_tool_id($module, tool_id, name, /)\n" @@ -29,7 +25,7 @@ monitoring_use_tool_id(PyObject *module, PyObject *const *args, Py_ssize_t nargs if (!_PyArg_CheckPositional("use_tool_id", nargs, 2, 2)) { goto exit; } - tool_id = _PyLong_AsInt(args[0]); + tool_id = PyLong_AsInt(args[0]); if (tool_id == -1 && PyErr_Occurred()) { goto exit; } @@ -57,7 +53,7 @@ monitoring_free_tool_id(PyObject *module, PyObject *arg) PyObject *return_value = NULL; int tool_id; - tool_id = _PyLong_AsInt(arg); + tool_id = PyLong_AsInt(arg); if (tool_id == -1 && PyErr_Occurred()) { goto exit; } @@ -84,7 +80,7 @@ monitoring_get_tool(PyObject *module, PyObject *arg) PyObject *return_value = NULL; int tool_id; - tool_id = _PyLong_AsInt(arg); + tool_id = PyLong_AsInt(arg); if (tool_id == -1 && PyErr_Occurred()) { goto exit; } @@ -117,11 +113,11 @@ monitoring_register_callback(PyObject *module, PyObject *const *args, Py_ssize_t if (!_PyArg_CheckPositional("register_callback", nargs, 3, 3)) { goto exit; } - tool_id = _PyLong_AsInt(args[0]); + tool_id = PyLong_AsInt(args[0]); if (tool_id == -1 && PyErr_Occurred()) { goto exit; } - event = _PyLong_AsInt(args[1]); + event = PyLong_AsInt(args[1]); if (event == -1 && PyErr_Occurred()) { goto exit; } @@ -150,7 +146,7 @@ monitoring_get_events(PyObject *module, PyObject *arg) int tool_id; int _return_value; - tool_id = _PyLong_AsInt(arg); + tool_id = PyLong_AsInt(arg); if (tool_id == -1 && PyErr_Occurred()) { goto exit; } @@ -185,11 +181,11 @@ monitoring_set_events(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (!_PyArg_CheckPositional("set_events", nargs, 2, 2)) { goto exit; } - tool_id = _PyLong_AsInt(args[0]); + tool_id = PyLong_AsInt(args[0]); if (tool_id == -1 && PyErr_Occurred()) { goto exit; } - event_set = _PyLong_AsInt(args[1]); + event_set = PyLong_AsInt(args[1]); if (event_set == -1 && PyErr_Occurred()) { goto exit; } @@ -222,7 +218,7 @@ monitoring_get_local_events(PyObject *module, PyObject *const *args, Py_ssize_t if (!_PyArg_CheckPositional("get_local_events", nargs, 2, 2)) { goto exit; } - tool_id = _PyLong_AsInt(args[0]); + tool_id = PyLong_AsInt(args[0]); if (tool_id == -1 && PyErr_Occurred()) { goto exit; } @@ -260,12 +256,12 @@ monitoring_set_local_events(PyObject *module, PyObject *const *args, Py_ssize_t if (!_PyArg_CheckPositional("set_local_events", nargs, 3, 3)) { goto exit; } - tool_id = _PyLong_AsInt(args[0]); + tool_id = PyLong_AsInt(args[0]); if (tool_id == -1 && PyErr_Occurred()) { goto exit; } code = args[1]; - event_set = _PyLong_AsInt(args[2]); + event_set = PyLong_AsInt(args[2]); if (event_set == -1 && PyErr_Occurred()) { goto exit; } @@ -308,4 +304,4 @@ monitoring__all_events(PyObject *module, PyObject *Py_UNUSED(ignored)) { return monitoring__all_events_impl(module); } -/*[clinic end generated code: output=11cc0803875b3ffa input=a9049054013a1b77]*/ +/*[clinic end generated code: output=14ffc0884a6de50a input=a9049054013a1b77]*/ diff --git a/contrib/tools/python3/Python/clinic/marshal.c.h b/contrib/tools/python3/Python/clinic/marshal.c.h index a593b980544..c19a3ed5050 100644 --- a/contrib/tools/python3/Python/clinic/marshal.c.h +++ b/contrib/tools/python3/Python/clinic/marshal.c.h @@ -3,13 +3,13 @@ preserve [clinic start generated code]*/ #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() #endif - +#include "pycore_modsupport.h" // _PyArg_UnpackKeywords() PyDoc_STRVAR(marshal_dump__doc__, -"dump($module, value, file, version=version, /)\n" +"dump($module, value, file, version=version, /, *, allow_code=True)\n" "--\n" "\n" "Write the value on the open file.\n" @@ -20,53 +20,95 @@ PyDoc_STRVAR(marshal_dump__doc__, " Must be a writeable binary file.\n" " version\n" " Indicates the data format that dump should use.\n" +" allow_code\n" +" Allow to write code objects.\n" "\n" "If the value has (or contains an object that has) an unsupported type, a\n" "ValueError exception is raised - but garbage data will also be written\n" "to the file. The object will not be properly read back by load()."); #define MARSHAL_DUMP_METHODDEF \ - {"dump", _PyCFunction_CAST(marshal_dump), METH_FASTCALL, marshal_dump__doc__}, + {"dump", _PyCFunction_CAST(marshal_dump), METH_FASTCALL|METH_KEYWORDS, marshal_dump__doc__}, static PyObject * marshal_dump_impl(PyObject *module, PyObject *value, PyObject *file, - int version); + int version, int allow_code); static PyObject * -marshal_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs) +marshal_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(allow_code), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"", "", "", "allow_code", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "dump", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[4]; + Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; PyObject *value; PyObject *file; int version = Py_MARSHAL_VERSION; + int allow_code = 1; - if (!_PyArg_CheckPositional("dump", nargs, 2, 3)) { + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf); + if (!args) { goto exit; } value = args[0]; file = args[1]; if (nargs < 3) { - goto skip_optional; + goto skip_optional_posonly; } - version = _PyLong_AsInt(args[2]); + noptargs--; + version = PyLong_AsInt(args[2]); if (version == -1 && PyErr_Occurred()) { goto exit; } -skip_optional: - return_value = marshal_dump_impl(module, value, file, version); +skip_optional_posonly: + if (!noptargs) { + goto skip_optional_kwonly; + } + allow_code = PyObject_IsTrue(args[3]); + if (allow_code < 0) { + goto exit; + } +skip_optional_kwonly: + return_value = marshal_dump_impl(module, value, file, version, allow_code); exit: return return_value; } PyDoc_STRVAR(marshal_load__doc__, -"load($module, file, /)\n" +"load($module, file, /, *, allow_code=True)\n" "--\n" "\n" "Read one value from the open file and return it.\n" "\n" " file\n" " Must be readable binary file.\n" +" allow_code\n" +" Allow to load code objects.\n" "\n" "If no valid value is read (e.g. because the data has a different Python\n" "version\'s incompatible marshal format), raise EOFError, ValueError or\n" @@ -76,10 +118,66 @@ PyDoc_STRVAR(marshal_load__doc__, "dump(), load() will substitute None for the unmarshallable type."); #define MARSHAL_LOAD_METHODDEF \ - {"load", (PyCFunction)marshal_load, METH_O, marshal_load__doc__}, + {"load", _PyCFunction_CAST(marshal_load), METH_FASTCALL|METH_KEYWORDS, marshal_load__doc__}, + +static PyObject * +marshal_load_impl(PyObject *module, PyObject *file, int allow_code); + +static PyObject * +marshal_load(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) +{ + PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(allow_code), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"", "allow_code", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "load", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[2]; + Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; + PyObject *file; + int allow_code = 1; + + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); + if (!args) { + goto exit; + } + file = args[0]; + if (!noptargs) { + goto skip_optional_kwonly; + } + allow_code = PyObject_IsTrue(args[1]); + if (allow_code < 0) { + goto exit; + } +skip_optional_kwonly: + return_value = marshal_load_impl(module, file, allow_code); + +exit: + return return_value; +} PyDoc_STRVAR(marshal_dumps__doc__, -"dumps($module, value, version=version, /)\n" +"dumps($module, value, version=version, /, *, allow_code=True)\n" "--\n" "\n" "Return the bytes object that would be written to a file by dump(value, file).\n" @@ -88,70 +186,150 @@ PyDoc_STRVAR(marshal_dumps__doc__, " Must be a supported type.\n" " version\n" " Indicates the data format that dumps should use.\n" +" allow_code\n" +" Allow to write code objects.\n" "\n" "Raise a ValueError exception if value has (or contains an object that has) an\n" "unsupported type."); #define MARSHAL_DUMPS_METHODDEF \ - {"dumps", _PyCFunction_CAST(marshal_dumps), METH_FASTCALL, marshal_dumps__doc__}, + {"dumps", _PyCFunction_CAST(marshal_dumps), METH_FASTCALL|METH_KEYWORDS, marshal_dumps__doc__}, static PyObject * -marshal_dumps_impl(PyObject *module, PyObject *value, int version); +marshal_dumps_impl(PyObject *module, PyObject *value, int version, + int allow_code); static PyObject * -marshal_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs) +marshal_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(allow_code), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"", "", "allow_code", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "dumps", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[3]; + Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; PyObject *value; int version = Py_MARSHAL_VERSION; + int allow_code = 1; - if (!_PyArg_CheckPositional("dumps", nargs, 1, 2)) { + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf); + if (!args) { goto exit; } value = args[0]; if (nargs < 2) { - goto skip_optional; + goto skip_optional_posonly; } - version = _PyLong_AsInt(args[1]); + noptargs--; + version = PyLong_AsInt(args[1]); if (version == -1 && PyErr_Occurred()) { goto exit; } -skip_optional: - return_value = marshal_dumps_impl(module, value, version); +skip_optional_posonly: + if (!noptargs) { + goto skip_optional_kwonly; + } + allow_code = PyObject_IsTrue(args[2]); + if (allow_code < 0) { + goto exit; + } +skip_optional_kwonly: + return_value = marshal_dumps_impl(module, value, version, allow_code); exit: return return_value; } PyDoc_STRVAR(marshal_loads__doc__, -"loads($module, bytes, /)\n" +"loads($module, bytes, /, *, allow_code=True)\n" "--\n" "\n" "Convert the bytes-like object to a value.\n" "\n" +" allow_code\n" +" Allow to load code objects.\n" +"\n" "If no valid value is found, raise EOFError, ValueError or TypeError. Extra\n" "bytes in the input are ignored."); #define MARSHAL_LOADS_METHODDEF \ - {"loads", (PyCFunction)marshal_loads, METH_O, marshal_loads__doc__}, + {"loads", _PyCFunction_CAST(marshal_loads), METH_FASTCALL|METH_KEYWORDS, marshal_loads__doc__}, static PyObject * -marshal_loads_impl(PyObject *module, Py_buffer *bytes); +marshal_loads_impl(PyObject *module, Py_buffer *bytes, int allow_code); static PyObject * -marshal_loads(PyObject *module, PyObject *arg) +marshal_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { PyObject *return_value = NULL; + #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) + + #define NUM_KEYWORDS 1 + static struct { + PyGC_Head _this_is_not_used; + PyObject_VAR_HEAD + PyObject *ob_item[NUM_KEYWORDS]; + } _kwtuple = { + .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) + .ob_item = { &_Py_ID(allow_code), }, + }; + #undef NUM_KEYWORDS + #define KWTUPLE (&_kwtuple.ob_base.ob_base) + + #else // !Py_BUILD_CORE + # define KWTUPLE NULL + #endif // !Py_BUILD_CORE + + static const char * const _keywords[] = {"", "allow_code", NULL}; + static _PyArg_Parser _parser = { + .keywords = _keywords, + .fname = "loads", + .kwtuple = KWTUPLE, + }; + #undef KWTUPLE + PyObject *argsbuf[2]; + Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; Py_buffer bytes = {NULL, NULL}; + int allow_code = 1; - if (PyObject_GetBuffer(arg, &bytes, PyBUF_SIMPLE) != 0) { + args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); + if (!args) { goto exit; } - if (!PyBuffer_IsContiguous(&bytes, 'C')) { - _PyArg_BadArgument("loads", "argument", "contiguous buffer", arg); + if (PyObject_GetBuffer(args[0], &bytes, PyBUF_SIMPLE) != 0) { + goto exit; + } + if (!noptargs) { + goto skip_optional_kwonly; + } + allow_code = PyObject_IsTrue(args[1]); + if (allow_code < 0) { goto exit; } - return_value = marshal_loads_impl(module, &bytes); +skip_optional_kwonly: + return_value = marshal_loads_impl(module, &bytes, allow_code); exit: /* Cleanup for bytes */ @@ -161,4 +339,4 @@ exit: return return_value; } -/*[clinic end generated code: output=12082d61d2942473 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=1575b9a3ae48ad3d input=a9049054013a1b77]*/ diff --git a/contrib/tools/python3/Python/clinic/sysmodule.c.h b/contrib/tools/python3/Python/clinic/sysmodule.c.h index e46c01e1e54..8277d286cf5 100644 --- a/contrib/tools/python3/Python/clinic/sysmodule.c.h +++ b/contrib/tools/python3/Python/clinic/sysmodule.c.h @@ -3,10 +3,10 @@ preserve [clinic start generated code]*/ #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() #endif - +#include "pycore_modsupport.h" // _PyArg_UnpackKeywords() PyDoc_STRVAR(sys_addaudithook__doc__, "addaudithook($module, /, hook)\n" @@ -282,9 +282,6 @@ sys_intern(PyObject *module, PyObject *arg) _PyArg_BadArgument("intern", "argument", "str", arg); goto exit; } - if (PyUnicode_READY(arg) == -1) { - goto exit; - } s = arg; return_value = sys_intern_impl(module, s); @@ -292,8 +289,54 @@ exit: return return_value; } +PyDoc_STRVAR(sys__is_interned__doc__, +"_is_interned($module, string, /)\n" +"--\n" +"\n" +"Return True if the given string is \"interned\"."); + +#define SYS__IS_INTERNED_METHODDEF \ + {"_is_interned", (PyCFunction)sys__is_interned, METH_O, sys__is_interned__doc__}, + +static int +sys__is_interned_impl(PyObject *module, PyObject *string); + +static PyObject * +sys__is_interned(PyObject *module, PyObject *arg) +{ + PyObject *return_value = NULL; + PyObject *string; + int _return_value; + + if (!PyUnicode_Check(arg)) { + _PyArg_BadArgument("_is_interned", "argument", "str", arg); + goto exit; + } + string = arg; + _return_value = sys__is_interned_impl(module, string); + if ((_return_value == -1) && PyErr_Occurred()) { + goto exit; + } + return_value = PyBool_FromLong((long)_return_value); + +exit: + return return_value; +} + +PyDoc_STRVAR(sys_settrace__doc__, +"settrace($module, function, /)\n" +"--\n" +"\n" +"Set the global debug tracing function.\n" +"\n" +"It will be called on each function call. See the debugger chapter\n" +"in the library manual."); + +#define SYS_SETTRACE_METHODDEF \ + {"settrace", (PyCFunction)sys_settrace, METH_O, sys_settrace__doc__}, + PyDoc_STRVAR(sys__settraceallthreads__doc__, -"_settraceallthreads($module, arg, /)\n" +"_settraceallthreads($module, function, /)\n" "--\n" "\n" "Set the global debug tracing function in all running threads belonging to the current interpreter.\n" @@ -324,14 +367,26 @@ sys_gettrace(PyObject *module, PyObject *Py_UNUSED(ignored)) return sys_gettrace_impl(module); } +PyDoc_STRVAR(sys_setprofile__doc__, +"setprofile($module, function, /)\n" +"--\n" +"\n" +"Set the profiling function.\n" +"\n" +"It will be called on each function call and return. See the profiler\n" +"chapter in the library manual."); + +#define SYS_SETPROFILE_METHODDEF \ + {"setprofile", (PyCFunction)sys_setprofile, METH_O, sys_setprofile__doc__}, + PyDoc_STRVAR(sys__setprofileallthreads__doc__, -"_setprofileallthreads($module, arg, /)\n" +"_setprofileallthreads($module, function, /)\n" "--\n" "\n" "Set the profiling function in all running threads belonging to the current interpreter.\n" "\n" -"It will be called on each function call and return. See the profiler chapter\n" -"in the library manual."); +"It will be called on each function call and return. See the profiler\n" +"chapter in the library manual."); #define SYS__SETPROFILEALLTHREADS_METHODDEF \ {"_setprofileallthreads", (PyCFunction)sys__setprofileallthreads, METH_O, sys__setprofileallthreads__doc__}, @@ -447,7 +502,7 @@ sys_setrecursionlimit(PyObject *module, PyObject *arg) PyObject *return_value = NULL; int new_limit; - new_limit = _PyLong_AsInt(arg); + new_limit = PyLong_AsInt(arg); if (new_limit == -1 && PyErr_Occurred()) { goto exit; } @@ -510,7 +565,7 @@ sys_set_coroutine_origin_tracking_depth(PyObject *module, PyObject *const *args, if (!args) { goto exit; } - depth = _PyLong_AsInt(args[0]); + depth = PyLong_AsInt(args[0]); if (depth == -1 && PyErr_Occurred()) { goto exit; } @@ -678,7 +733,7 @@ sys_setdlopenflags(PyObject *module, PyObject *arg) PyObject *return_value = NULL; int new_val; - new_val = _PyLong_AsInt(arg); + new_val = PyLong_AsInt(arg); if (new_val == -1 && PyErr_Occurred()) { goto exit; } @@ -733,7 +788,7 @@ sys_mdebug(PyObject *module, PyObject *arg) PyObject *return_value = NULL; int flag; - flag = _PyLong_AsInt(arg); + flag = PyLong_AsInt(arg); if (flag == -1 && PyErr_Occurred()) { goto exit; } @@ -811,7 +866,7 @@ sys_set_int_max_str_digits(PyObject *module, PyObject *const *args, Py_ssize_t n if (!args) { goto exit; } - maxdigits = _PyLong_AsInt(args[0]); + maxdigits = PyLong_AsInt(args[0]); if (maxdigits == -1 && PyErr_Occurred()) { goto exit; } @@ -1012,7 +1067,7 @@ sys__getframe(PyObject *module, PyObject *const *args, Py_ssize_t nargs) if (nargs < 1) { goto skip_optional; } - depth = _PyLong_AsInt(args[0]); + depth = PyLong_AsInt(args[0]); if (depth == -1 && PyErr_Occurred()) { goto exit; } @@ -1140,6 +1195,24 @@ sys__clear_type_cache(PyObject *module, PyObject *Py_UNUSED(ignored)) return sys__clear_type_cache_impl(module); } +PyDoc_STRVAR(sys__clear_internal_caches__doc__, +"_clear_internal_caches($module, /)\n" +"--\n" +"\n" +"Clear all internal performance-related caches."); + +#define SYS__CLEAR_INTERNAL_CACHES_METHODDEF \ + {"_clear_internal_caches", (PyCFunction)sys__clear_internal_caches, METH_NOARGS, sys__clear_internal_caches__doc__}, + +static PyObject * +sys__clear_internal_caches_impl(PyObject *module); + +static PyObject * +sys__clear_internal_caches(PyObject *module, PyObject *Py_UNUSED(ignored)) +{ + return sys__clear_internal_caches_impl(module); +} + PyDoc_STRVAR(sys_is_finalizing__doc__, "is_finalizing($module, /)\n" "--\n" @@ -1164,7 +1237,7 @@ PyDoc_STRVAR(sys__stats_on__doc__, "_stats_on($module, /)\n" "--\n" "\n" -"Turns on stats gathering (stats gathering is on by default)."); +"Turns on stats gathering (stats gathering is off by default)."); #define SYS__STATS_ON_METHODDEF \ {"_stats_on", (PyCFunction)sys__stats_on, METH_NOARGS, sys__stats_on__doc__}, @@ -1186,7 +1259,7 @@ PyDoc_STRVAR(sys__stats_off__doc__, "_stats_off($module, /)\n" "--\n" "\n" -"Turns off stats gathering (stats gathering is on by default)."); +"Turns off stats gathering (stats gathering is off by default)."); #define SYS__STATS_OFF_METHODDEF \ {"_stats_off", (PyCFunction)sys__stats_off, METH_NOARGS, sys__stats_off__doc__}, @@ -1230,18 +1303,30 @@ PyDoc_STRVAR(sys__stats_dump__doc__, "_stats_dump($module, /)\n" "--\n" "\n" -"Dump stats to file, and clears the stats."); +"Dump stats to file, and clears the stats.\n" +"\n" +"Return False if no statistics were not dumped because stats gathering was off."); #define SYS__STATS_DUMP_METHODDEF \ {"_stats_dump", (PyCFunction)sys__stats_dump, METH_NOARGS, sys__stats_dump__doc__}, -static PyObject * +static int sys__stats_dump_impl(PyObject *module); static PyObject * sys__stats_dump(PyObject *module, PyObject *Py_UNUSED(ignored)) { - return sys__stats_dump_impl(module); + PyObject *return_value = NULL; + int _return_value; + + _return_value = sys__stats_dump_impl(module); + if ((_return_value == -1) && PyErr_Occurred()) { + goto exit; + } + return_value = PyBool_FromLong((long)_return_value); + +exit: + return return_value; } #endif /* defined(Py_STATS) */ @@ -1401,7 +1486,7 @@ sys__getframemodulename(PyObject *module, PyObject *const *args, Py_ssize_t narg if (!noptargs) { goto skip_optional_pos; } - depth = _PyLong_AsInt(args[0]); + depth = PyLong_AsInt(args[0]); if (depth == -1 && PyErr_Occurred()) { goto exit; } @@ -1412,6 +1497,80 @@ exit: return return_value; } +PyDoc_STRVAR(sys__get_cpu_count_config__doc__, +"_get_cpu_count_config($module, /)\n" +"--\n" +"\n" +"Private function for getting PyConfig.cpu_count"); + +#define SYS__GET_CPU_COUNT_CONFIG_METHODDEF \ + {"_get_cpu_count_config", (PyCFunction)sys__get_cpu_count_config, METH_NOARGS, sys__get_cpu_count_config__doc__}, + +static int +sys__get_cpu_count_config_impl(PyObject *module); + +static PyObject * +sys__get_cpu_count_config(PyObject *module, PyObject *Py_UNUSED(ignored)) +{ + PyObject *return_value = NULL; + int _return_value; + + _return_value = sys__get_cpu_count_config_impl(module); + if ((_return_value == -1) && PyErr_Occurred()) { + goto exit; + } + return_value = PyLong_FromLong((long)_return_value); + +exit: + return return_value; +} + +PyDoc_STRVAR(sys__baserepl__doc__, +"_baserepl($module, /)\n" +"--\n" +"\n" +"Private function for getting the base REPL"); + +#define SYS__BASEREPL_METHODDEF \ + {"_baserepl", (PyCFunction)sys__baserepl, METH_NOARGS, sys__baserepl__doc__}, + +static PyObject * +sys__baserepl_impl(PyObject *module); + +static PyObject * +sys__baserepl(PyObject *module, PyObject *Py_UNUSED(ignored)) +{ + return sys__baserepl_impl(module); +} + +PyDoc_STRVAR(sys__is_gil_enabled__doc__, +"_is_gil_enabled($module, /)\n" +"--\n" +"\n" +"Return True if the GIL is currently enabled and False otherwise."); + +#define SYS__IS_GIL_ENABLED_METHODDEF \ + {"_is_gil_enabled", (PyCFunction)sys__is_gil_enabled, METH_NOARGS, sys__is_gil_enabled__doc__}, + +static int +sys__is_gil_enabled_impl(PyObject *module); + +static PyObject * +sys__is_gil_enabled(PyObject *module, PyObject *Py_UNUSED(ignored)) +{ + PyObject *return_value = NULL; + int _return_value; + + _return_value = sys__is_gil_enabled_impl(module); + if ((_return_value == -1) && PyErr_Occurred()) { + goto exit; + } + return_value = PyBool_FromLong((long)_return_value); + +exit: + return return_value; +} + #ifndef SYS_GETWINDOWSVERSION_METHODDEF #define SYS_GETWINDOWSVERSION_METHODDEF #endif /* !defined(SYS_GETWINDOWSVERSION_METHODDEF) */ @@ -1455,4 +1614,4 @@ exit: #ifndef SYS_GETANDROIDAPILEVEL_METHODDEF #define SYS_GETANDROIDAPILEVEL_METHODDEF #endif /* !defined(SYS_GETANDROIDAPILEVEL_METHODDEF) */ -/*[clinic end generated code: output=2a1fbdf7de450c63 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9cc9069aef1482bc input=a9049054013a1b77]*/ diff --git a/contrib/tools/python3/Python/clinic/traceback.c.h b/contrib/tools/python3/Python/clinic/traceback.c.h index 3c344934971..fe53a2786d1 100644 --- a/contrib/tools/python3/Python/clinic/traceback.c.h +++ b/contrib/tools/python3/Python/clinic/traceback.c.h @@ -3,13 +3,13 @@ preserve [clinic start generated code]*/ #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) -# include "pycore_gc.h" // PyGC_Head -# include "pycore_runtime.h" // _Py_ID() +# include "pycore_gc.h" // PyGC_Head +# include "pycore_runtime.h" // _Py_ID() #endif - +#include "pycore_modsupport.h" // _PyArg_UnpackKeywords() PyDoc_STRVAR(tb_new__doc__, -"TracebackType(tb_next, tb_frame, tb_lasti, tb_lineno)\n" +"traceback(tb_next, tb_frame, tb_lasti, tb_lineno)\n" "--\n" "\n" "Create a new traceback object."); @@ -43,7 +43,7 @@ tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) static const char * const _keywords[] = {"tb_next", "tb_frame", "tb_lasti", "tb_lineno", NULL}; static _PyArg_Parser _parser = { .keywords = _keywords, - .fname = "TracebackType", + .fname = "traceback", .kwtuple = KWTUPLE, }; #undef KWTUPLE @@ -61,15 +61,15 @@ tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) } tb_next = fastargs[0]; if (!PyObject_TypeCheck(fastargs[1], &PyFrame_Type)) { - _PyArg_BadArgument("TracebackType", "argument 'tb_frame'", (&PyFrame_Type)->tp_name, fastargs[1]); + _PyArg_BadArgument("traceback", "argument 'tb_frame'", (&PyFrame_Type)->tp_name, fastargs[1]); goto exit; } tb_frame = (PyFrameObject *)fastargs[1]; - tb_lasti = _PyLong_AsInt(fastargs[2]); + tb_lasti = PyLong_AsInt(fastargs[2]); if (tb_lasti == -1 && PyErr_Occurred()) { goto exit; } - tb_lineno = _PyLong_AsInt(fastargs[3]); + tb_lineno = PyLong_AsInt(fastargs[3]); if (tb_lineno == -1 && PyErr_Occurred()) { goto exit; } @@ -78,4 +78,4 @@ tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=7bc9927e362fdfb7 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=916a759875507c5a input=a9049054013a1b77]*/ diff --git a/contrib/tools/python3/Python/codecs.c b/contrib/tools/python3/Python/codecs.c index b041339e0db..154ad3d9ee3 100644 --- a/contrib/tools/python3/Python/codecs.c +++ b/contrib/tools/python3/Python/codecs.c @@ -11,33 +11,19 @@ Copyright (c) Corporation for National Research Initiatives. #include "Python.h" #include "pycore_call.h" // _PyObject_CallNoArgs() #include "pycore_interp.h" // PyInterpreterState.codec_search_path -#include "pycore_pyerrors.h" // _PyErr_FormatNote() +#include "pycore_lock.h" // PyMutex +#include "pycore_pyerrors.h" // _PyErr_FormatNote() #include "pycore_pystate.h" // _PyInterpreterState_GET() #include "pycore_ucnhash.h" // _PyUnicode_Name_CAPI -#include const char *Py_hexdigits = "0123456789abcdef"; /* --- Codec Registry ----------------------------------------------------- */ -/* Import the standard encodings package which will register the first - codec search function. - - This is done in a lazy way so that the Unicode implementation does - not downgrade startup time of scripts not needing it. - - ImportErrors are silently ignored by this function. Only one try is - made. - -*/ - -static int _PyCodecRegistry_Init(void); /* Forward */ - int PyCodec_Register(PyObject *search_function) { PyInterpreterState *interp = _PyInterpreterState_GET(); - if (interp->codec_search_path == NULL && _PyCodecRegistry_Init()) - goto onError; + assert(interp->codecs.initialized); if (search_function == NULL) { PyErr_BadArgument(); goto onError; @@ -46,7 +32,14 @@ int PyCodec_Register(PyObject *search_function) PyErr_SetString(PyExc_TypeError, "argument must be callable"); goto onError; } - return PyList_Append(interp->codec_search_path, search_function); +#ifdef Py_GIL_DISABLED + PyMutex_Lock(&interp->codecs.search_path_mutex); +#endif + int ret = PyList_Append(interp->codecs.search_path, search_function); +#ifdef Py_GIL_DISABLED + PyMutex_Unlock(&interp->codecs.search_path_mutex); +#endif + return ret; onError: return -1; @@ -55,23 +48,35 @@ int PyCodec_Register(PyObject *search_function) int PyCodec_Unregister(PyObject *search_function) { - PyInterpreterState *interp = PyInterpreterState_Get(); - PyObject *codec_search_path = interp->codec_search_path; - /* Do nothing if codec_search_path is not created yet or was cleared. */ - if (codec_search_path == NULL) { + PyInterpreterState *interp = _PyInterpreterState_GET(); + if (interp->codecs.initialized != 1) { + /* Do nothing if codecs state was cleared (only possible during + interpreter shutdown). */ return 0; } + PyObject *codec_search_path = interp->codecs.search_path; assert(PyList_CheckExact(codec_search_path)); - Py_ssize_t n = PyList_GET_SIZE(codec_search_path); - for (Py_ssize_t i = 0; i < n; i++) { - PyObject *item = PyList_GET_ITEM(codec_search_path, i); + for (Py_ssize_t i = 0; i < PyList_GET_SIZE(codec_search_path); i++) { +#ifdef Py_GIL_DISABLED + PyMutex_Lock(&interp->codecs.search_path_mutex); +#endif + PyObject *item = PyList_GetItemRef(codec_search_path, i); + int ret = 1; if (item == search_function) { - if (interp->codec_search_cache != NULL) { - assert(PyDict_CheckExact(interp->codec_search_cache)); - PyDict_Clear(interp->codec_search_cache); - } - return PyList_SetSlice(codec_search_path, i, i+1, NULL); + // We hold a reference to the item, so its destructor can't run + // while we hold search_path_mutex. + ret = PyList_SetSlice(codec_search_path, i, i+1, NULL); + } +#ifdef Py_GIL_DISABLED + PyMutex_Unlock(&interp->codecs.search_path_mutex); +#endif + Py_DECREF(item); + if (ret != 1) { + assert(interp->codecs.search_cache != NULL); + assert(PyDict_CheckExact(interp->codecs.search_cache)); + PyDict_Clear(interp->codecs.search_cache); + return ret; } } return 0; @@ -133,9 +138,10 @@ PyObject *_PyCodec_Lookup(const char *encoding) } PyInterpreterState *interp = _PyInterpreterState_GET(); - if (interp->codec_search_path == NULL && _PyCodecRegistry_Init()) { + if (!interp->codecs.initialized) { return NULL; } + assert(interp->codecs.initialized); /* Convert the encoding to a normalized Python string: all characters are converted to lower case, spaces and hyphens are @@ -149,18 +155,17 @@ PyObject *_PyCodec_Lookup(const char *encoding) _PyUnicode_InternMortal(interp, &v); /* First, try to lookup the name in the registry dictionary */ - PyObject *result = PyDict_GetItemWithError(interp->codec_search_cache, v); + PyObject *result; + if (PyDict_GetItemRef(interp->codecs.search_cache, v, &result) < 0) { + goto onError; + } if (result != NULL) { - Py_INCREF(result); Py_DECREF(v); return result; } - else if (PyErr_Occurred()) { - goto onError; - } /* Next, scan the search functions in order of registration */ - const Py_ssize_t len = PyList_Size(interp->codec_search_path); + const Py_ssize_t len = PyList_Size(interp->codecs.search_path); if (len < 0) goto onError; if (len == 0) { @@ -174,14 +179,15 @@ PyObject *_PyCodec_Lookup(const char *encoding) for (i = 0; i < len; i++) { PyObject *func; - func = PyList_GetItem(interp->codec_search_path, i); + func = PyList_GetItemRef(interp->codecs.search_path, i); if (func == NULL) goto onError; result = PyObject_CallOneArg(func, v); + Py_DECREF(func); if (result == NULL) goto onError; if (result == Py_None) { - Py_DECREF(result); + Py_CLEAR(result); continue; } if (!PyTuple_Check(result) || PyTuple_GET_SIZE(result) != 4) { @@ -192,7 +198,7 @@ PyObject *_PyCodec_Lookup(const char *encoding) } break; } - if (i == len) { + if (result == NULL) { /* XXX Perhaps we should cache misses too ? */ PyErr_Format(PyExc_LookupError, "unknown encoding: %s", encoding); @@ -202,7 +208,7 @@ PyObject *_PyCodec_Lookup(const char *encoding) _PyUnicode_InternImmortal(interp, &v); /* Cache and return the result */ - if (PyDict_SetItem(interp->codec_search_cache, v, result) < 0) { + if (PyDict_SetItem(interp->codecs.search_cache, v, result) < 0) { Py_DECREF(result); goto onError; } @@ -520,7 +526,7 @@ PyObject * _PyCodec_LookupTextEncoding(const char *encoding, * attribute. */ if (!PyTuple_CheckExact(codec)) { - if (_PyObject_LookupAttr(codec, &_Py_ID(_is_text_encoding), &attr) < 0) { + if (PyObject_GetOptionalAttr(codec, &_Py_ID(_is_text_encoding), &attr) < 0) { Py_DECREF(codec); return NULL; } @@ -606,13 +612,12 @@ PyObject *_PyCodec_DecodeText(PyObject *object, int PyCodec_RegisterError(const char *name, PyObject *error) { PyInterpreterState *interp = _PyInterpreterState_GET(); - if (interp->codec_search_path == NULL && _PyCodecRegistry_Init()) - return -1; + assert(interp->codecs.initialized); if (!PyCallable_Check(error)) { PyErr_SetString(PyExc_TypeError, "handler must be callable"); return -1; } - return PyDict_SetItemString(interp->codec_error_registry, + return PyDict_SetItemString(interp->codecs.error_registry, name, error); } @@ -621,20 +626,18 @@ int PyCodec_RegisterError(const char *name, PyObject *error) the error handling callback for strict encoding will be returned. */ PyObject *PyCodec_LookupError(const char *name) { - PyObject *handler = NULL; - PyInterpreterState *interp = _PyInterpreterState_GET(); - if (interp->codec_search_path == NULL && _PyCodecRegistry_Init()) - return NULL; + assert(interp->codecs.initialized); if (name==NULL) name = "strict"; - handler = _PyDict_GetItemStringWithError(interp->codec_error_registry, name); - if (handler) { - Py_INCREF(handler); + PyObject *handler; + if (PyDict_GetItemStringRef(interp->codecs.error_registry, name, &handler) < 0) { + return NULL; } - else if (!PyErr_Occurred()) { + if (handler == NULL) { PyErr_Format(PyExc_LookupError, "unknown error handler name '%.400s'", name); + return NULL; } return handler; } @@ -938,8 +941,6 @@ PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc) return Py_BuildValue("(Nn)", res, end); } -static _PyUnicode_Name_CAPI *ucnhash_capi = NULL; - PyObject *PyCodec_NameReplaceErrors(PyObject *exc) { if (PyObject_TypeCheck(exc, (PyTypeObject *)PyExc_UnicodeEncodeError)) { @@ -960,13 +961,9 @@ PyObject *PyCodec_NameReplaceErrors(PyObject *exc) return NULL; if (!(object = PyUnicodeEncodeError_GetObject(exc))) return NULL; - if (!ucnhash_capi) { - /* load the unicode data module */ - ucnhash_capi = (_PyUnicode_Name_CAPI *)PyCapsule_Import( - PyUnicodeData_CAPSULE_NAME, 1); - if (!ucnhash_capi) { - return NULL; - } + _PyUnicode_Name_CAPI *ucnhash_capi = _PyUnicode_GetNameCAPI(); + if (ucnhash_capi == NULL) { + return NULL; } for (i = start, ressize = 0; i < end; ++i) { /* object is guaranteed to be "ready" */ @@ -1093,7 +1090,7 @@ get_standard_encoding(const char *encoding, int *bytelength) } } } - else if (strcmp(encoding, "CP_UTF8") == 0) { + else if (strcmp(encoding, "cp65001") == 0) { *bytelength = 3; return ENC_UTF8; } @@ -1388,7 +1385,8 @@ static PyObject *surrogateescape_errors(PyObject *self, PyObject *exc) return PyCodec_SurrogateEscapeErrors(exc); } -static int _PyCodecRegistry_Init(void) +PyStatus +_PyCodec_InitRegistry(PyInterpreterState *interp) { static struct { const char *name; @@ -1476,45 +1474,51 @@ static int _PyCodecRegistry_Init(void) } }; - PyInterpreterState *interp = _PyInterpreterState_GET(); - PyObject *mod; - - if (interp->codec_search_path != NULL) - return 0; - - interp->codec_search_path = PyList_New(0); - if (interp->codec_search_path == NULL) { - return -1; + assert(interp->codecs.initialized == 0); + interp->codecs.search_path = PyList_New(0); + if (interp->codecs.search_path == NULL) { + return PyStatus_NoMemory(); } - - interp->codec_search_cache = PyDict_New(); - if (interp->codec_search_cache == NULL) { - return -1; + interp->codecs.search_cache = PyDict_New(); + if (interp->codecs.search_cache == NULL) { + return PyStatus_NoMemory(); } - - interp->codec_error_registry = PyDict_New(); - if (interp->codec_error_registry == NULL) { - return -1; + interp->codecs.error_registry = PyDict_New(); + if (interp->codecs.error_registry == NULL) { + return PyStatus_NoMemory(); } - for (size_t i = 0; i < Py_ARRAY_LENGTH(methods); ++i) { PyObject *func = PyCFunction_NewEx(&methods[i].def, NULL, NULL); - if (!func) { - return -1; + if (func == NULL) { + return PyStatus_NoMemory(); } - int res = PyCodec_RegisterError(methods[i].name, func); + int res = PyDict_SetItemString(interp->codecs.error_registry, + methods[i].name, func); Py_DECREF(func); - if (res) { - return -1; + if (res < 0) { + return PyStatus_Error("Failed to insert into codec error registry"); } } - mod = PyImport_ImportModule("encodings"); + interp->codecs.initialized = 1; + + // Importing `encodings' will call back into this module to register codec + // search functions, so this is done after everything else is initialized. + PyObject *mod = PyImport_ImportModule("encodings"); if (mod == NULL) { - return -1; + return PyStatus_Error("Failed to import encodings module"); } Py_DECREF(mod); - interp->codecs_initialized = 1; - return 0; + + return PyStatus_Ok(); +} + +void +_PyCodec_Fini(PyInterpreterState *interp) +{ + Py_CLEAR(interp->codecs.search_path); + Py_CLEAR(interp->codecs.search_cache); + Py_CLEAR(interp->codecs.error_registry); + interp->codecs.initialized = 0; } diff --git a/contrib/tools/python3/Python/compile.c b/contrib/tools/python3/Python/compile.c index cc639ff64ff..8f8b6773440 100644 --- a/contrib/tools/python3/Python/compile.c +++ b/contrib/tools/python3/Python/compile.c @@ -22,25 +22,24 @@ */ #include "Python.h" +#include "opcode.h" #include "pycore_ast.h" // _PyAST_GetDocString() #define NEED_OPCODE_TABLES #include "pycore_opcode_utils.h" #undef NEED_OPCODE_TABLES -#include "pycore_flowgraph.h" #include "pycore_code.h" // _PyCode_New() #include "pycore_compile.h" +#include "pycore_flowgraph.h" +#include "pycore_instruction_sequence.h" // _PyInstructionSequence_New() #include "pycore_intrinsics.h" #include "pycore_long.h" // _PyLong_GetZero() -#include "pycore_pymem.h" // _PyMem_IsPtrFreed() +#include "pycore_pystate.h" // _Py_GetConfig() +#include "pycore_setobject.h" // _PySet_NextEntry() #include "pycore_symtable.h" // PySTEntryObject, _PyFuture_FromAST() -#include "opcode_metadata.h" // _PyOpcode_opcode_metadata, _PyOpcode_num_popped/pushed - -#include - -#define DEFAULT_CODE_SIZE 128 -#define DEFAULT_LNOTAB_SIZE 16 -#define DEFAULT_CNOTAB_SIZE 32 +#define NEED_OPCODE_METADATA +#include "pycore_opcode_metadata.h" // _PyOpcode_opcode_metadata, _PyOpcode_num_popped/pushed +#undef NEED_OPCODE_METADATA #define COMP_GENEXP 0 #define COMP_LISTCOMP 1 @@ -56,6 +55,8 @@ */ #define STACK_USE_GUIDELINE 30 +#include + #undef SUCCESS #undef ERROR #define SUCCESS 0 @@ -66,32 +67,15 @@ return ERROR; \ } -/* If we exceed this limit, it should - * be considered a compiler bug. - * Currently it should be impossible - * to exceed STACK_USE_GUIDELINE * 100, - * as 100 is the maximum parse depth. - * For performance reasons we will - * want to reduce this to a - * few hundred in the future. - * - * NOTE: Whatever MAX_ALLOWED_STACK_USE is - * set to, it should never restrict what Python - * we can write, just how we compile it. - */ -#define MAX_ALLOWED_STACK_USE (STACK_USE_GUIDELINE * 100) - #define IS_TOP_LEVEL_AWAIT(C) ( \ ((C)->c_flags.cf_flags & PyCF_ALLOW_TOP_LEVEL_AWAIT) \ && ((C)->u->u_ste->ste_type == ModuleBlock)) -typedef _PyCompilerSrcLocation location; -typedef _PyCfgInstruction cfg_instr; -typedef _PyCfgBasicblock basicblock; -typedef _PyCfgBuilder cfg_builder; +typedef _Py_SourceLocation location; +typedef struct _PyCfgBuilder cfg_builder; #define LOCATION(LNO, END_LNO, COL, END_COL) \ - ((const _PyCompilerSrcLocation){(LNO), (END_LNO), (COL), (END_COL)}) + ((const _Py_SourceLocation){(LNO), (END_LNO), (COL), (END_COL)}) /* Return true if loc1 starts after loc2 ends. */ static inline bool @@ -103,7 +87,7 @@ location_is_after(location loc1, location loc2) { #define LOC(x) SRC_LOCATION_FROM_AST(x) -typedef _PyCfgJumpTargetLabel jump_target_label; +typedef _PyJumpTargetLabel jump_target_label; static jump_target_label NO_LABEL = {-1}; @@ -111,13 +95,13 @@ static jump_target_label NO_LABEL = {-1}; #define IS_LABEL(L) (!SAME_LABEL((L), (NO_LABEL))) #define NEW_JUMP_TARGET_LABEL(C, NAME) \ - jump_target_label NAME = instr_sequence_new_label(INSTR_SEQUENCE(C)); \ + jump_target_label NAME = _PyInstructionSequence_NewLabel(INSTR_SEQUENCE(C)); \ if (!IS_LABEL(NAME)) { \ return ERROR; \ } #define USE_LABEL(C, LBL) \ - RETURN_IF_ERROR(instr_sequence_use_label(INSTR_SEQUENCE(C), (LBL).id)) + RETURN_IF_ERROR(_PyInstructionSequence_UseLabel(INSTR_SEQUENCE(C), (LBL).id)) /* fblockinfo tracks the current frame block. @@ -153,18 +137,8 @@ enum { }; -int -_PyCompile_InstrSize(int opcode, int oparg) -{ - assert(!IS_PSEUDO_OPCODE(opcode)); - assert(HAS_ARG(opcode) || oparg == 0); - int extended_args = (0xFFFFFF < oparg) + (0xFFFF < oparg) + (0xFF < oparg); - int caches = _PyOpcode_Caches[opcode]; - return extended_args + 1 + caches; -} - -typedef _PyCompile_Instruction instruction; -typedef _PyCompile_InstructionSequence instr_sequence; +typedef _PyInstruction instruction; +typedef _PyInstructionSequence instr_sequence; #define INITIAL_INSTR_SEQUENCE_SIZE 100 #define INITIAL_INSTR_SEQUENCE_LABELS_MAP_SIZE 10 @@ -189,7 +163,7 @@ _PyCompile_EnsureArrayLargeEnough(int idx, void **array, int *alloc, if (idx >= new_alloc) { new_alloc = idx + default_alloc; } - arr = PyObject_Calloc(new_alloc, item_size); + arr = PyMem_Calloc(new_alloc, item_size); if (arr == NULL) { PyErr_NoMemory(); return ERROR; @@ -210,7 +184,7 @@ _PyCompile_EnsureArrayLargeEnough(int idx, void **array, int *alloc, } assert(newsize > 0); - void *tmp = PyObject_Realloc(arr, newsize); + void *tmp = PyMem_Realloc(arr, newsize); if (tmp == NULL) { PyErr_NoMemory(); return ERROR; @@ -224,159 +198,48 @@ _PyCompile_EnsureArrayLargeEnough(int idx, void **array, int *alloc, return SUCCESS; } -static int -instr_sequence_next_inst(instr_sequence *seq) { - assert(seq->s_instrs != NULL || seq->s_used == 0); - - RETURN_IF_ERROR( - _PyCompile_EnsureArrayLargeEnough(seq->s_used + 1, - (void**)&seq->s_instrs, - &seq->s_allocated, - INITIAL_INSTR_SEQUENCE_SIZE, - sizeof(instruction))); - assert(seq->s_allocated >= 0); - assert(seq->s_used < seq->s_allocated); - return seq->s_used++; -} - -static jump_target_label -instr_sequence_new_label(instr_sequence *seq) -{ - jump_target_label lbl = {++seq->s_next_free_label}; - return lbl; -} - -static int -instr_sequence_use_label(instr_sequence *seq, int lbl) { - int old_size = seq->s_labelmap_size; - RETURN_IF_ERROR( - _PyCompile_EnsureArrayLargeEnough(lbl, - (void**)&seq->s_labelmap, - &seq->s_labelmap_size, - INITIAL_INSTR_SEQUENCE_LABELS_MAP_SIZE, - sizeof(int))); - - for(int i = old_size; i < seq->s_labelmap_size; i++) { - seq->s_labelmap[i] = -111; /* something weird, for debugging */ - } - seq->s_labelmap[lbl] = seq->s_used; /* label refers to the next instruction */ - return SUCCESS; -} - -static int -instr_sequence_addop(instr_sequence *seq, int opcode, int oparg, location loc) -{ - assert(IS_WITHIN_OPCODE_RANGE(opcode)); - assert(HAS_ARG(opcode) || HAS_TARGET(opcode) || oparg == 0); - assert(0 <= oparg && oparg < (1 << 30)); - - int idx = instr_sequence_next_inst(seq); - RETURN_IF_ERROR(idx); - instruction *ci = &seq->s_instrs[idx]; - ci->i_opcode = opcode; - ci->i_oparg = oparg; - ci->i_loc = loc; - return SUCCESS; -} - -static int -instr_sequence_insert_instruction(instr_sequence *seq, int pos, - int opcode, int oparg, location loc) -{ - assert(pos >= 0 && pos <= seq->s_used); - int last_idx = instr_sequence_next_inst(seq); - RETURN_IF_ERROR(last_idx); - for (int i=last_idx-1; i >= pos; i--) { - seq->s_instrs[i+1] = seq->s_instrs[i]; - } - instruction *ci = &seq->s_instrs[pos]; - ci->i_opcode = opcode; - ci->i_oparg = oparg; - ci->i_loc = loc; - - /* fix the labels map */ - for(int lbl=0; lbl < seq->s_labelmap_size; lbl++) { - if (seq->s_labelmap[lbl] >= pos) { - seq->s_labelmap[lbl]++; - } +static cfg_builder* +instr_sequence_to_cfg(instr_sequence *seq) { + if (_PyInstructionSequence_ApplyLabelMap(seq) < 0) { + return NULL; } - return SUCCESS; -} - -static void -instr_sequence_fini(instr_sequence *seq) { - PyObject_Free(seq->s_labelmap); - seq->s_labelmap = NULL; - - PyObject_Free(seq->s_instrs); - seq->s_instrs = NULL; -} - -static int -instr_sequence_to_cfg(instr_sequence *seq, cfg_builder *g) { - memset(g, 0, sizeof(cfg_builder)); - RETURN_IF_ERROR(_PyCfgBuilder_Init(g)); - - /* There can be more than one label for the same offset. The - * offset2lbl maping selects one of them which we use consistently. - */ - - int *offset2lbl = PyMem_Malloc(seq->s_used * sizeof(int)); - if (offset2lbl == NULL) { - PyErr_NoMemory(); - return ERROR; + cfg_builder *g = _PyCfgBuilder_New(); + if (g == NULL) { + return NULL; } for (int i = 0; i < seq->s_used; i++) { - offset2lbl[i] = -1; + seq->s_instrs[i].i_target = 0; } - for (int lbl=0; lbl < seq->s_labelmap_size; lbl++) { - int offset = seq->s_labelmap[lbl]; - if (offset >= 0) { - assert(offset < seq->s_used); - offset2lbl[offset] = lbl; + for (int i = 0; i < seq->s_used; i++) { + instruction *instr = &seq->s_instrs[i]; + if (HAS_TARGET(instr->i_opcode)) { + assert(instr->i_oparg >= 0 && instr->i_oparg < seq->s_used); + seq->s_instrs[instr->i_oparg].i_target = 1; } } - for (int i = 0; i < seq->s_used; i++) { - int lbl = offset2lbl[i]; - if (lbl >= 0) { - assert (lbl < seq->s_labelmap_size); - jump_target_label lbl_ = {lbl}; + instruction *instr = &seq->s_instrs[i]; + if (instr->i_target) { + jump_target_label lbl_ = {i}; if (_PyCfgBuilder_UseLabel(g, lbl_) < 0) { goto error; } } - instruction *instr = &seq->s_instrs[i]; int opcode = instr->i_opcode; int oparg = instr->i_oparg; - if (HAS_TARGET(opcode)) { - int offset = seq->s_labelmap[oparg]; - assert(offset >= 0 && offset < seq->s_used); - int lbl = offset2lbl[offset]; - assert(lbl >= 0 && lbl < seq->s_labelmap_size); - oparg = lbl; - } if (_PyCfgBuilder_Addop(g, opcode, oparg, instr->i_loc) < 0) { goto error; } } - PyMem_Free(offset2lbl); - - int nblocks = 0; - for (basicblock *b = g->g_block_list; b != NULL; b = b->b_list) { - nblocks++; - } - if ((size_t)nblocks > SIZE_MAX / sizeof(basicblock *)) { - PyErr_NoMemory(); - return ERROR; + if (_PyCfgBuilder_CheckSize(g) < 0) { + goto error; } - return SUCCESS; + return g; error: - PyMem_Free(offset2lbl); - return ERROR; + _PyCfgBuilder_Free(g); + return NULL; } - /* The following items change on entry and exit of code blocks. They must be saved and restored when returning to a block. */ @@ -385,9 +248,10 @@ struct compiler_unit { int u_scope_type; - PyObject *u_private; /* for private name mangling */ + PyObject *u_private; /* for private name mangling */ + PyObject *u_static_attributes; /* for class: attributes accessed via self.X */ - instr_sequence u_instr_sequence; /* codegen output */ + instr_sequence *u_instr_sequence; /* codegen output */ int u_nfblocks; int u_in_inlined_comp; @@ -412,7 +276,7 @@ handled by the symbol analysis pass. struct compiler { PyObject *c_filename; struct symtable *c_st; - PyFutureFeatures c_future; /* module's __future__ */ + _PyFutureFeatures c_future; /* module's __future__ */ PyCompilerFlags c_flags; int c_optimize; /* optimization level */ @@ -420,12 +284,17 @@ struct compiler { int c_nestlevel; PyObject *c_const_cache; /* Python dict holding all constants, including names tuple */ - struct compiler_unit *u; /* compiler state for current block */ + struct compiler_unit *u; /* compiler state for current block */ PyObject *c_stack; /* Python list holding compiler_unit ptrs */ PyArena *c_arena; /* pointer to memory allocation arena */ + + bool c_save_nested_seqs; /* if true, construct recursive instruction sequences + * (including instructions for nested code objects) + */ + int c_disable_warning; }; -#define INSTR_SEQUENCE(C) (&((C)->u->u_instr_sequence)) +#define INSTR_SEQUENCE(C) ((C)->u->u_instr_sequence) typedef struct { @@ -540,12 +409,9 @@ compiler_setup(struct compiler *c, mod_ty mod, PyObject *filename, c->c_flags = *flags; c->c_optimize = (optimize == -1) ? _Py_GetConfig()->optimization_level : optimize; c->c_nestlevel = 0; + c->c_save_nested_seqs = false; - _PyASTOptimizeState state; - state.optimize = c->c_optimize; - state.ff_features = merged; - - if (!_PyAST_Optimize(mod, arena, &state)) { + if (!_PyAST_Optimize(mod, arena, c->c_optimize, merged)) { return ERROR; } c->c_st = _PySymtable_Build(mod, filename, &c->c_future); @@ -589,6 +455,24 @@ _PyAST_Compile(mod_ty mod, PyObject *filename, PyCompilerFlags *pflags, return co; } +int +_PyCompile_AstOptimize(mod_ty mod, PyObject *filename, PyCompilerFlags *cf, + int optimize, PyArena *arena) +{ + _PyFutureFeatures future; + if (!_PyFuture_FromAST(mod, filename, &future)) { + return -1; + } + int flags = future.ff_features | cf->cf_flags; + if (optimize == -1) { + optimize = _Py_GetConfig()->optimization_level; + } + if (!_PyAST_Optimize(mod, arena, optimize, flags)) { + return -1; + } + return 0; +} + static void compiler_free(struct compiler *c) { @@ -692,7 +576,7 @@ dictbytype(PyObject *src, int scope_type, int flag, Py_ssize_t offset) static void compiler_unit_free(struct compiler_unit *u) { - instr_sequence_fini(&u->u_instr_sequence); + Py_CLEAR(u->u_instr_sequence); Py_CLEAR(u->u_ste); Py_CLEAR(u->u_metadata.u_name); Py_CLEAR(u->u_metadata.u_qualname); @@ -703,7 +587,34 @@ compiler_unit_free(struct compiler_unit *u) Py_CLEAR(u->u_metadata.u_cellvars); Py_CLEAR(u->u_metadata.u_fasthidden); Py_CLEAR(u->u_private); - PyObject_Free(u); + Py_CLEAR(u->u_static_attributes); + PyMem_Free(u); +} + +static int +compiler_maybe_add_static_attribute_to_class(struct compiler *c, expr_ty e) +{ + assert(e->kind == Attribute_kind); + expr_ty attr_value = e->v.Attribute.value; + if (attr_value->kind != Name_kind || + e->v.Attribute.ctx != Store || + !_PyUnicode_EqualToASCIIString(attr_value->v.Name.id, "self")) + { + return SUCCESS; + } + Py_ssize_t stack_size = PyList_GET_SIZE(c->c_stack); + for (Py_ssize_t i = stack_size - 1; i >= 0; i--) { + PyObject *capsule = PyList_GET_ITEM(c->c_stack, i); + struct compiler_unit *u = (struct compiler_unit *)PyCapsule_GetPointer( + capsule, CAPSULE_NAME); + assert(u); + if (u->u_scope_type == COMPILER_SCOPE_CLASS) { + assert(u->u_static_attributes); + RETURN_IF_ERROR(PySet_Add(u->u_static_attributes, e->v.Attribute.attr)); + break; + } + } + return SUCCESS; } static int @@ -808,35 +719,12 @@ stack_effect(int opcode, int oparg, int jump) // Specialized instructions are not supported. return PY_INVALID_STACK_EFFECT; } - int popped, pushed; - if (jump > 0) { - popped = _PyOpcode_num_popped(opcode, oparg, true); - pushed = _PyOpcode_num_pushed(opcode, oparg, true); - } - else { - popped = _PyOpcode_num_popped(opcode, oparg, false); - pushed = _PyOpcode_num_pushed(opcode, oparg, false); - } + int popped = _PyOpcode_num_popped(opcode, oparg); + int pushed = _PyOpcode_num_pushed(opcode, oparg); if (popped < 0 || pushed < 0) { return PY_INVALID_STACK_EFFECT; } - if (jump >= 0) { - return pushed - popped; - } - if (jump < 0) { - // Compute max(pushed - popped, alt_pushed - alt_popped) - int alt_popped = _PyOpcode_num_popped(opcode, oparg, true); - int alt_pushed = _PyOpcode_num_pushed(opcode, oparg, true); - if (alt_popped < 0 || alt_pushed < 0) { - return PY_INVALID_STACK_EFFECT; - } - int diff = pushed - popped; - int alt_diff = alt_pushed - alt_popped; - if (alt_diff > diff) { - return alt_diff; - } - return diff; - } + return pushed - popped; } // Pseudo ops @@ -846,6 +734,9 @@ stack_effect(int opcode, int oparg, int jump) case JUMP_NO_INTERRUPT: return 0; + case EXIT_INIT_CHECK: + return -1; + /* Exception handling pseudo-instructions */ case SETUP_FINALLY: /* 0 in the normal flow. @@ -864,6 +755,8 @@ stack_effect(int opcode, int oparg, int jump) case STORE_FAST_MAYBE_NULL: return -1; + case LOAD_CLOSURE: + return 1; case LOAD_METHOD: return 1; case LOAD_SUPER_METHOD: @@ -889,12 +782,60 @@ PyCompile_OpcodeStackEffect(int opcode, int oparg) return stack_effect(opcode, oparg, -1); } +int +_PyCompile_OpcodeIsValid(int opcode) +{ + return IS_VALID_OPCODE(opcode); +} + +int +_PyCompile_OpcodeHasArg(int opcode) +{ + return OPCODE_HAS_ARG(opcode); +} + +int +_PyCompile_OpcodeHasConst(int opcode) +{ + return OPCODE_HAS_CONST(opcode); +} + +int +_PyCompile_OpcodeHasName(int opcode) +{ + return OPCODE_HAS_NAME(opcode); +} + +int +_PyCompile_OpcodeHasJump(int opcode) +{ + return OPCODE_HAS_JUMP(opcode); +} + +int +_PyCompile_OpcodeHasFree(int opcode) +{ + return OPCODE_HAS_FREE(opcode); +} + +int +_PyCompile_OpcodeHasLocal(int opcode) +{ + return OPCODE_HAS_LOCAL(opcode); +} + +int +_PyCompile_OpcodeHasExc(int opcode) +{ + return IS_BLOCK_PUSH_OPCODE(opcode); +} + static int codegen_addop_noarg(instr_sequence *seq, int opcode, location loc) { - assert(!HAS_ARG(opcode)); + assert(!OPCODE_HAS_ARG(opcode)); assert(!IS_ASSEMBLER_OPCODE(opcode)); - return instr_sequence_addop(seq, opcode, 0, loc); + return _PyInstructionSequence_Addop(seq, opcode, 0, loc); } static Py_ssize_t @@ -903,11 +844,10 @@ dict_add_o(PyObject *dict, PyObject *o) PyObject *v; Py_ssize_t arg; - v = PyDict_GetItemWithError(dict, o); + if (PyDict_GetItemRef(dict, o, &v) < 0) { + return ERROR; + } if (!v) { - if (PyErr_Occurred()) { - return ERROR; - } arg = PyDict_GET_SIZE(dict); v = PyLong_FromSsize_t(arg); if (!v) { @@ -917,10 +857,10 @@ dict_add_o(PyObject *dict, PyObject *o) Py_DECREF(v); return ERROR; } - Py_DECREF(v); } else arg = PyLong_AsLong(v); + Py_DECREF(v); return arg; } @@ -929,10 +869,10 @@ static PyObject* merge_consts_recursive(PyObject *const_cache, PyObject *o) { assert(PyDict_CheckExact(const_cache)); - // None and Ellipsis are singleton, and key is the singleton. + // None and Ellipsis are immortal objects, and key is the singleton. // No need to merge object and key. if (o == Py_None || o == Py_Ellipsis) { - return Py_NewRef(o); + return o; } PyObject *key = _PyCode_ConstantKey(o); @@ -940,14 +880,15 @@ merge_consts_recursive(PyObject *const_cache, PyObject *o) return NULL; } - // t is borrowed reference - PyObject *t = PyDict_SetDefault(const_cache, key, key); - if (t != key) { - // o is registered in const_cache. Just use it. - Py_XINCREF(t); + PyObject *t; + int res = PyDict_SetDefaultRef(const_cache, key, key, &t); + if (res != 0) { + // o was not inserted into const_cache. t is either the existing value + // or NULL (on error). Py_DECREF(key); return t; } + Py_DECREF(t); // We registered o in const_cache. // When o is a tuple or frozenset, we want to merge its @@ -1053,7 +994,7 @@ compiler_addop_load_const(PyObject *const_cache, struct compiler_unit *u, locati if (arg < 0) { return ERROR; } - return codegen_addop_i(&u->u_instr_sequence, LOAD_CONST, arg, loc); + return codegen_addop_i(u->u_instr_sequence, LOAD_CONST, arg, loc); } static int @@ -1064,7 +1005,7 @@ compiler_addop_o(struct compiler_unit *u, location loc, if (arg < 0) { return ERROR; } - return codegen_addop_i(&u->u_instr_sequence, opcode, arg, loc); + return codegen_addop_i(u->u_instr_sequence, opcode, arg, loc); } static int @@ -1084,6 +1025,7 @@ compiler_addop_name(struct compiler_unit *u, location loc, arg <<= 1; } if (opcode == LOAD_METHOD) { + assert(is_pseudo_target(LOAD_METHOD, LOAD_ATTR)); opcode = LOAD_ATTR; arg <<= 1; arg |= 1; @@ -1093,20 +1035,23 @@ compiler_addop_name(struct compiler_unit *u, location loc, arg |= 2; } if (opcode == LOAD_SUPER_METHOD) { + assert(is_pseudo_target(LOAD_SUPER_METHOD, LOAD_SUPER_ATTR)); opcode = LOAD_SUPER_ATTR; arg <<= 2; arg |= 3; } if (opcode == LOAD_ZERO_SUPER_ATTR) { + assert(is_pseudo_target(LOAD_ZERO_SUPER_ATTR, LOAD_SUPER_ATTR)); opcode = LOAD_SUPER_ATTR; arg <<= 2; } if (opcode == LOAD_ZERO_SUPER_METHOD) { + assert(is_pseudo_target(LOAD_ZERO_SUPER_METHOD, LOAD_SUPER_ATTR)); opcode = LOAD_SUPER_ATTR; arg <<= 2; arg |= 1; } - return codegen_addop_i(&u->u_instr_sequence, opcode, arg, loc); + return codegen_addop_i(u->u_instr_sequence, opcode, arg, loc); } /* Add an opcode with an integer argument */ @@ -1123,7 +1068,7 @@ codegen_addop_i(instr_sequence *seq, int opcode, Py_ssize_t oparg, location loc) int oparg_ = Py_SAFE_DOWNCAST(oparg, Py_ssize_t, int); assert(!IS_ASSEMBLER_OPCODE(opcode)); - return instr_sequence_addop(seq, opcode, oparg_, loc); + return _PyInstructionSequence_Addop(seq, opcode, oparg_, loc); } static int @@ -1131,9 +1076,9 @@ codegen_addop_j(instr_sequence *seq, location loc, int opcode, jump_target_label target) { assert(IS_LABEL(target)); - assert(IS_JUMP_OPCODE(opcode) || IS_BLOCK_PUSH_OPCODE(opcode)); + assert(OPCODE_HAS_JUMP(opcode) || IS_BLOCK_PUSH_OPCODE(opcode)); assert(!IS_ASSEMBLER_OPCODE(opcode)); - return instr_sequence_addop(seq, opcode, target.id, loc); + return _PyInstructionSequence_Addop(seq, opcode, target.id, loc); } #define RETURN_IF_ERROR_IN_SCOPE(C, CALL) { \ @@ -1165,7 +1110,7 @@ codegen_addop_j(instr_sequence *seq, location loc, } #define ADDOP_N(C, LOC, OP, O, TYPE) { \ - assert(!HAS_CONST(OP)); /* use ADDOP_LOAD_CONST_NEW */ \ + assert(!OPCODE_HAS_CONST(OP)); /* use ADDOP_LOAD_CONST_NEW */ \ if (compiler_addop_o((C)->u, (LOC), (OP), (C)->u->u_metadata.u_ ## TYPE, (O)) < 0) { \ Py_DECREF((O)); \ return ERROR; \ @@ -1240,8 +1185,7 @@ compiler_enter_scope(struct compiler *c, identifier name, struct compiler_unit *u; - u = (struct compiler_unit *)PyObject_Calloc(1, sizeof( - struct compiler_unit)); + u = (struct compiler_unit *)PyMem_Calloc(1, sizeof(struct compiler_unit)); if (!u) { PyErr_NoMemory(); return ERROR; @@ -1250,7 +1194,7 @@ compiler_enter_scope(struct compiler *c, identifier name, u->u_metadata.u_argcount = 0; u->u_metadata.u_posonlyargcount = 0; u->u_metadata.u_kwonlyargcount = 0; - u->u_ste = PySymtable_Lookup(c->c_st, key); + u->u_ste = _PySymtable_Lookup(c->c_st, key); if (!u->u_ste) { compiler_unit_free(u); return ERROR; @@ -1315,6 +1259,18 @@ compiler_enter_scope(struct compiler *c, identifier name, } u->u_private = NULL; + if (scope_type == COMPILER_SCOPE_CLASS) { + u->u_static_attributes = PySet_New(0); + if (!u->u_static_attributes) { + compiler_unit_free(u); + return ERROR; + } + } + else { + u->u_static_attributes = NULL; + } + + u->u_instr_sequence = (instr_sequence*)_PyInstructionSequence_New(); /* Push the old compiler_unit on the stack. */ if (c->u) { @@ -1337,7 +1293,7 @@ compiler_enter_scope(struct compiler *c, identifier name, else { RETURN_IF_ERROR(compiler_set_qualname(c)); } - ADDOP_I(c, loc, RESUME, 0); + ADDOP_I(c, loc, RESUME, RESUME_AT_FUNC_START); if (u->u_scope_type == COMPILER_SCOPE_MODULE) { loc.lineno = -1; @@ -1351,6 +1307,11 @@ compiler_exit_scope(struct compiler *c) // Don't call PySequence_DelItem() with an exception raised PyObject *exc = PyErr_GetRaisedException(); + instr_sequence *nested_seq = NULL; + if (c->c_save_nested_seqs) { + nested_seq = c->u->u_instr_sequence; + Py_INCREF(nested_seq); + } c->c_nestlevel--; compiler_unit_free(c->u); /* Restore c->u to the parent unit. */ @@ -1361,13 +1322,20 @@ compiler_exit_scope(struct compiler *c) assert(c->u); /* we are deleting from a list so this really shouldn't fail */ if (PySequence_DelItem(c->c_stack, n) < 0) { - _PyErr_WriteUnraisableMsg("on removing the last compiler " - "stack item", NULL); + PyErr_FormatUnraisable("Exception ignored on removing " + "the last compiler stack item"); + } + if (nested_seq != NULL) { + if (_PyInstructionSequence_AddNested(c->u->u_instr_sequence, nested_seq) < 0) { + PyErr_FormatUnraisable("Exception ignored on appending " + "nested instruction sequence"); + } } } else { c->u = NULL; } + Py_XDECREF(nested_seq); PyErr_SetRaisedException(exc); } @@ -1470,6 +1438,9 @@ compiler_push_fblock(struct compiler *c, location loc, f->fb_loc = loc; f->fb_exit = exit; f->fb_datum = datum; + if (t == FINALLY_END) { + c->c_disable_warning++; + } return SUCCESS; } @@ -1481,6 +1452,9 @@ compiler_pop_fblock(struct compiler *c, enum fblocktype t, jump_target_label blo u->u_nfblocks--; assert(u->u_fblock[u->u_nfblocks].fb_type == t); assert(SAME_LABEL(u->u_fblock[u->u_nfblocks].fb_block, block_label)); + if (t == FINALLY_END) { + c->c_disable_warning--; + } } static int @@ -1505,9 +1479,9 @@ compiler_add_yield_from(struct compiler *c, location loc, int await) // Set up a virtual try/except to handle when StopIteration is raised during // a close or throw call. The only way YIELD_VALUE raises if they do! ADDOP_JUMP(c, loc, SETUP_FINALLY, fail); - ADDOP_I(c, loc, YIELD_VALUE, 0); + ADDOP_I(c, loc, YIELD_VALUE, 1); ADDOP(c, NO_LOCATION, POP_BLOCK); - ADDOP_I(c, loc, RESUME, await ? 3 : 2); + ADDOP_I(c, loc, RESUME, await ? RESUME_AFTER_AWAIT : RESUME_AFTER_YIELD_FROM); ADDOP_JUMP(c, loc, JUMP_NO_INTERRUPT, send); USE_LABEL(c, fail); @@ -1672,16 +1646,13 @@ compiler_unwind_fblock_stack(struct compiler *c, location *ploc, static int compiler_body(struct compiler *c, location loc, asdl_stmt_seq *stmts) { - int i = 0; - stmt_ty st; - PyObject *docstring; /* Set current line number to the line number of first statement. This way line number for SETUP_ANNOTATIONS will always coincide with the line number of first "real" statement in module. If body is empty, then lineno will be set later in optimize_and_assemble. */ if (c->u->u_scope_type == COMPILER_SCOPE_MODULE && asdl_seq_LEN(stmts)) { - st = (stmt_ty)asdl_seq_GET(stmts, 0); + stmt_ty st = (stmt_ty)asdl_seq_GET(stmts, 0); loc = LOC(st); } /* Every annotated class and module should have __annotations__. */ @@ -1691,18 +1662,25 @@ compiler_body(struct compiler *c, location loc, asdl_stmt_seq *stmts) if (!asdl_seq_LEN(stmts)) { return SUCCESS; } - /* if not -OO mode, set docstring */ - if (c->c_optimize < 2) { - docstring = _PyAST_GetDocString(stmts); - if (docstring) { - i = 1; - st = (stmt_ty)asdl_seq_GET(stmts, 0); + Py_ssize_t first_instr = 0; + PyObject *docstring = _PyAST_GetDocString(stmts); + if (docstring) { + first_instr = 1; + /* if not -OO mode, set docstring */ + if (c->c_optimize < 2) { + PyObject *cleandoc = _PyCompile_CleanDoc(docstring); + if (cleandoc == NULL) { + return ERROR; + } + stmt_ty st = (stmt_ty)asdl_seq_GET(stmts, 0); assert(st->kind == Expr_kind); - VISIT(c, expr, st->v.Expr.value); + location loc = LOC(st->v.Expr.value); + ADDOP_LOAD_CONST(c, loc, cleandoc); + Py_DECREF(cleandoc); RETURN_IF_ERROR(compiler_nameop(c, NO_LOCATION, &_Py_ID(__doc__), Store)); } } - for (; i < asdl_seq_LEN(stmts); i++) { + for (Py_ssize_t i = first_instr; i < asdl_seq_LEN(stmts); i++) { VISIT(c, stmt, (stmt_ty)asdl_seq_GET(stmts, i)); } return SUCCESS; @@ -1711,16 +1689,10 @@ compiler_body(struct compiler *c, location loc, asdl_stmt_seq *stmts) static int compiler_codegen(struct compiler *c, mod_ty mod) { - _Py_DECLARE_STR(anon_module, ""); - RETURN_IF_ERROR( - compiler_enter_scope(c, &_Py_STR(anon_module), COMPILER_SCOPE_MODULE, - mod, 1)); - location loc = LOCATION(1, 1, 0, 0); switch (mod->kind) { case Module_kind: if (compiler_body(c, loc, mod->v.Module.body) < 0) { - compiler_exit_scope(c); return ERROR; } break; @@ -1729,10 +1701,10 @@ compiler_codegen(struct compiler *c, mod_ty mod) ADDOP(c, loc, SETUP_ANNOTATIONS); } c->c_interactive = 1; - VISIT_SEQ_IN_SCOPE(c, stmt, mod->v.Interactive.body); + VISIT_SEQ(c, stmt, mod->v.Interactive.body); break; case Expression_kind: - VISIT_IN_SCOPE(c, expr, mod->v.Expression.body); + VISIT(c, expr, mod->v.Expression.body); break; default: PyErr_Format(PyExc_SystemError, @@ -1743,14 +1715,29 @@ compiler_codegen(struct compiler *c, mod_ty mod) return SUCCESS; } +static int +compiler_enter_anonymous_scope(struct compiler* c, mod_ty mod) +{ + _Py_DECLARE_STR(anon_module, ""); + RETURN_IF_ERROR( + compiler_enter_scope(c, &_Py_STR(anon_module), COMPILER_SCOPE_MODULE, + mod, 1)); + return SUCCESS; +} + static PyCodeObject * compiler_mod(struct compiler *c, mod_ty mod) { + PyCodeObject *co = NULL; int addNone = mod->kind != Expression_kind; - if (compiler_codegen(c, mod) < 0) { + if (compiler_enter_anonymous_scope(c, mod) < 0) { return NULL; } - PyCodeObject *co = optimize_and_assemble(c, addNone); + if (compiler_codegen(c, mod) < 0) { + goto finally; + } + co = optimize_and_assemble(c, addNone); +finally: compiler_exit_scope(c); return co; } @@ -1798,7 +1785,7 @@ compiler_make_closure(struct compiler *c, location loc, PyCodeObject *co, Py_ssize_t flags) { if (co->co_nfreevars) { - int i = PyCode_GetFirstFree(co); + int i = PyUnstable_Code_GetFirstFree(co); for (; i < co->co_nlocalsplus; ++i) { /* Bypass com_addop_varname because it will generate LOAD_DEREF but LOAD_CLOSURE is needed. @@ -1840,11 +1827,25 @@ compiler_make_closure(struct compiler *c, location loc, } ADDOP_I(c, loc, LOAD_CLOSURE, arg); } - flags |= 0x08; + flags |= MAKE_FUNCTION_CLOSURE; ADDOP_I(c, loc, BUILD_TUPLE, co->co_nfreevars); } ADDOP_LOAD_CONST(c, loc, (PyObject*)co); - ADDOP_I(c, loc, MAKE_FUNCTION, flags); + + ADDOP(c, loc, MAKE_FUNCTION); + + if (flags & MAKE_FUNCTION_CLOSURE) { + ADDOP_I(c, loc, SET_FUNCTION_ATTRIBUTE, MAKE_FUNCTION_CLOSURE); + } + if (flags & MAKE_FUNCTION_ANNOTATIONS) { + ADDOP_I(c, loc, SET_FUNCTION_ATTRIBUTE, MAKE_FUNCTION_ANNOTATIONS); + } + if (flags & MAKE_FUNCTION_KWDEFAULTS) { + ADDOP_I(c, loc, SET_FUNCTION_ATTRIBUTE, MAKE_FUNCTION_KWDEFAULTS); + } + if (flags & MAKE_FUNCTION_DEFAULTS) { + ADDOP_I(c, loc, SET_FUNCTION_ATTRIBUTE, MAKE_FUNCTION_DEFAULTS); + } return SUCCESS; } @@ -2051,7 +2052,7 @@ compiler_default_arguments(struct compiler *c, location loc, Py_ssize_t funcflags = 0; if (args->defaults && asdl_seq_LEN(args->defaults) > 0) { RETURN_IF_ERROR(compiler_visit_defaults(c, args, loc)); - funcflags |= 0x01; + funcflags |= MAKE_FUNCTION_DEFAULTS; } if (args->kwonlyargs) { int res = compiler_visit_kwonlydefaults(c, loc, @@ -2059,7 +2060,7 @@ compiler_default_arguments(struct compiler *c, location loc, args->kw_defaults); RETURN_IF_ERROR(res); if (res > 0) { - funcflags |= 0x02; + funcflags |= MAKE_FUNCTION_KWDEFAULTS; } } return funcflags; @@ -2121,7 +2122,7 @@ wrap_in_stopiteration_handler(struct compiler *c) /* Insert SETUP_CLEANUP at start */ RETURN_IF_ERROR( - instr_sequence_insert_instruction( + _PyInstructionSequence_InsertInstruction( INSTR_SEQUENCE(c), 0, SETUP_CLEANUP, handler.id, NO_LOCATION)); @@ -2133,6 +2134,36 @@ wrap_in_stopiteration_handler(struct compiler *c) return SUCCESS; } +static int +compiler_type_param_bound_or_default(struct compiler *c, expr_ty e, + identifier name, void *key, + bool allow_starred) +{ + if (compiler_enter_scope(c, name, COMPILER_SCOPE_TYPEPARAMS, + key, e->lineno) == -1) { + return ERROR; + } + if (allow_starred && e->kind == Starred_kind) { + VISIT(c, expr, e->v.Starred.value); + ADDOP_I(c, LOC(e), UNPACK_SEQUENCE, (Py_ssize_t)1); + } + else { + VISIT(c, expr, e); + } + ADDOP_IN_SCOPE(c, LOC(e), RETURN_VALUE); + PyCodeObject *co = optimize_and_assemble(c, 1); + compiler_exit_scope(c); + if (co == NULL) { + return ERROR; + } + if (compiler_make_closure(c, LOC(e), co, 0) < 0) { + Py_DECREF(co); + return ERROR; + } + Py_DECREF(co); + return SUCCESS; +} + static int compiler_type_params(struct compiler *c, asdl_type_param_seq *type_params) { @@ -2140,6 +2171,7 @@ compiler_type_params(struct compiler *c, asdl_type_param_seq *type_params) return SUCCESS; } Py_ssize_t n = asdl_seq_LEN(type_params); + bool seen_default = false; for (Py_ssize_t i = 0; i < n; i++) { type_param_ty typeparam = asdl_seq_GET(type_params, i); @@ -2149,22 +2181,10 @@ compiler_type_params(struct compiler *c, asdl_type_param_seq *type_params) ADDOP_LOAD_CONST(c, loc, typeparam->v.TypeVar.name); if (typeparam->v.TypeVar.bound) { expr_ty bound = typeparam->v.TypeVar.bound; - if (compiler_enter_scope(c, typeparam->v.TypeVar.name, COMPILER_SCOPE_TYPEPARAMS, - (void *)typeparam, bound->lineno) == -1) { - return ERROR; - } - VISIT_IN_SCOPE(c, expr, bound); - ADDOP_IN_SCOPE(c, loc, RETURN_VALUE); - PyCodeObject *co = optimize_and_assemble(c, 1); - compiler_exit_scope(c); - if (co == NULL) { - return ERROR; - } - if (compiler_make_closure(c, loc, co, 0) < 0) { - Py_DECREF(co); + if (compiler_type_param_bound_or_default(c, bound, typeparam->v.TypeVar.name, + (void *)typeparam, false) < 0) { return ERROR; } - Py_DECREF(co); int intrinsic = bound->kind == Tuple_kind ? INTRINSIC_TYPEVAR_WITH_CONSTRAINTS @@ -2174,18 +2194,60 @@ compiler_type_params(struct compiler *c, asdl_type_param_seq *type_params) else { ADDOP_I(c, loc, CALL_INTRINSIC_1, INTRINSIC_TYPEVAR); } + if (typeparam->v.TypeVar.default_value) { + seen_default = true; + expr_ty default_ = typeparam->v.TypeVar.default_value; + if (compiler_type_param_bound_or_default(c, default_, typeparam->v.TypeVar.name, + (void *)((uintptr_t)typeparam + 1), false) < 0) { + return ERROR; + } + ADDOP_I(c, loc, CALL_INTRINSIC_2, INTRINSIC_SET_TYPEPARAM_DEFAULT); + } + else if (seen_default) { + return compiler_error(c, loc, "non-default type parameter '%U' " + "follows default type parameter", + typeparam->v.TypeVar.name); + } ADDOP_I(c, loc, COPY, 1); RETURN_IF_ERROR(compiler_nameop(c, loc, typeparam->v.TypeVar.name, Store)); break; case TypeVarTuple_kind: ADDOP_LOAD_CONST(c, loc, typeparam->v.TypeVarTuple.name); ADDOP_I(c, loc, CALL_INTRINSIC_1, INTRINSIC_TYPEVARTUPLE); + if (typeparam->v.TypeVarTuple.default_value) { + expr_ty default_ = typeparam->v.TypeVarTuple.default_value; + if (compiler_type_param_bound_or_default(c, default_, typeparam->v.TypeVarTuple.name, + (void *)typeparam, true) < 0) { + return ERROR; + } + ADDOP_I(c, loc, CALL_INTRINSIC_2, INTRINSIC_SET_TYPEPARAM_DEFAULT); + seen_default = true; + } + else if (seen_default) { + return compiler_error(c, loc, "non-default type parameter '%U' " + "follows default type parameter", + typeparam->v.TypeVarTuple.name); + } ADDOP_I(c, loc, COPY, 1); RETURN_IF_ERROR(compiler_nameop(c, loc, typeparam->v.TypeVarTuple.name, Store)); break; case ParamSpec_kind: ADDOP_LOAD_CONST(c, loc, typeparam->v.ParamSpec.name); ADDOP_I(c, loc, CALL_INTRINSIC_1, INTRINSIC_PARAMSPEC); + if (typeparam->v.ParamSpec.default_value) { + expr_ty default_ = typeparam->v.ParamSpec.default_value; + if (compiler_type_param_bound_or_default(c, default_, typeparam->v.ParamSpec.name, + (void *)typeparam, false) < 0) { + return ERROR; + } + ADDOP_I(c, loc, CALL_INTRINSIC_2, INTRINSIC_SET_TYPEPARAM_DEFAULT); + seen_default = true; + } + else if (seen_default) { + return compiler_error(c, loc, "non-default type parameter '%U' " + "follows default type parameter", + typeparam->v.ParamSpec.name); + } ADDOP_I(c, loc, COPY, 1); RETURN_IF_ERROR(compiler_nameop(c, loc, typeparam->v.ParamSpec.name, Store)); break; @@ -2199,7 +2261,6 @@ static int compiler_function_body(struct compiler *c, stmt_ty s, int is_async, Py_ssize_t funcflags, int firstlineno) { - PyObject *docstring = NULL; arguments_ty args; identifier name; asdl_stmt_seq *body; @@ -2226,14 +2287,28 @@ compiler_function_body(struct compiler *c, stmt_ty s, int is_async, Py_ssize_t f RETURN_IF_ERROR( compiler_enter_scope(c, name, scope_type, (void *)s, firstlineno)); - /* if not -OO mode, add docstring */ - if (c->c_optimize < 2) { - docstring = _PyAST_GetDocString(body); + Py_ssize_t first_instr = 0; + PyObject *docstring = _PyAST_GetDocString(body); + if (docstring) { + first_instr = 1; + /* if not -OO mode, add docstring */ + if (c->c_optimize < 2) { + docstring = _PyCompile_CleanDoc(docstring); + if (docstring == NULL) { + compiler_exit_scope(c); + return ERROR; + } + } + else { + docstring = NULL; + } } if (compiler_add_const(c->c_const_cache, c->u, docstring ? docstring : Py_None) < 0) { + Py_XDECREF(docstring); compiler_exit_scope(c); return ERROR; } + Py_CLEAR(docstring); c->u->u_metadata.u_argcount = asdl_seq_LEN(args->args); c->u->u_metadata.u_posonlyargcount = asdl_seq_LEN(args->posonlyargs); @@ -2249,7 +2324,7 @@ compiler_function_body(struct compiler *c, stmt_ty s, int is_async, Py_ssize_t f start, NO_LABEL, NULL)); } - for (Py_ssize_t i = docstring ? 1 : 0; i < asdl_seq_LEN(body); i++) { + for (Py_ssize_t i = first_instr; i < asdl_seq_LEN(body); i++) { VISIT_IN_SCOPE(c, stmt, (stmt_ty)asdl_seq_GET(body, i)); } if (add_stopiteration_handler) { @@ -2316,11 +2391,6 @@ compiler_function(struct compiler *c, stmt_ty s, int is_async) int is_generic = asdl_seq_LEN(type_params) > 0; - if (is_generic) { - // Used by the CALL to the type parameters function. - ADDOP(c, loc, PUSH_NULL); - } - funcflags = compiler_default_arguments(c, loc, args); if (funcflags == -1) { return ERROR; @@ -2329,10 +2399,10 @@ compiler_function(struct compiler *c, stmt_ty s, int is_async) int num_typeparam_args = 0; if (is_generic) { - if (funcflags & 0x01) { + if (funcflags & MAKE_FUNCTION_DEFAULTS) { num_typeparam_args += 1; } - if (funcflags & 0x02) { + if (funcflags & MAKE_FUNCTION_KWDEFAULTS) { num_typeparam_args += 1; } if (num_typeparam_args == 2) { @@ -2349,11 +2419,8 @@ compiler_function(struct compiler *c, stmt_ty s, int is_async) } Py_DECREF(type_params_name); RETURN_IF_ERROR_IN_SCOPE(c, compiler_type_params(c, type_params)); - if ((funcflags & 0x01) || (funcflags & 0x02)) { - RETURN_IF_ERROR_IN_SCOPE(c, codegen_addop_i(INSTR_SEQUENCE(c), LOAD_FAST, 0, loc)); - } - if ((funcflags & 0x01) && (funcflags & 0x02)) { - RETURN_IF_ERROR_IN_SCOPE(c, codegen_addop_i(INSTR_SEQUENCE(c), LOAD_FAST, 1, loc)); + for (int i = 0; i < num_typeparam_args; i++) { + RETURN_IF_ERROR_IN_SCOPE(c, codegen_addop_i(INSTR_SEQUENCE(c), LOAD_FAST, i, loc)); } } @@ -2365,7 +2432,7 @@ compiler_function(struct compiler *c, stmt_ty s, int is_async) return ERROR; } if (annotations > 0) { - funcflags |= 0x04; + funcflags |= MAKE_FUNCTION_ANNOTATIONS; } if (compiler_function_body(c, s, is_async, funcflags, firstlineno) < 0) { @@ -2394,8 +2461,12 @@ compiler_function(struct compiler *c, stmt_ty s, int is_async) Py_DECREF(co); if (num_typeparam_args > 0) { ADDOP_I(c, loc, SWAP, num_typeparam_args + 1); + ADDOP_I(c, loc, CALL, num_typeparam_args - 1); + } + else { + ADDOP(c, loc, PUSH_NULL); + ADDOP_I(c, loc, CALL, 0); } - ADDOP_I(c, loc, CALL, num_typeparam_args); } RETURN_IF_ERROR(compiler_apply_decorators(c, decos)); @@ -2449,6 +2520,11 @@ compiler_class_body(struct compiler *c, stmt_ty s, int firstlineno) compiler_exit_scope(c); return ERROR; } + ADDOP_LOAD_CONST_NEW(c, loc, PyLong_FromLong(c->u->u_metadata.u_firstlineno)); + if (compiler_nameop(c, loc, &_Py_ID(__firstlineno__), Store) < 0) { + compiler_exit_scope(c); + return ERROR; + } asdl_type_param_seq *type_params = s->v.ClassDef.type_params; if (asdl_seq_LEN(type_params) > 0) { if (!compiler_set_type_params_in_class(c, loc)) { @@ -2474,6 +2550,29 @@ compiler_class_body(struct compiler *c, stmt_ty s, int firstlineno) compiler_exit_scope(c); return ERROR; } + assert(c->u->u_static_attributes); + PyObject *static_attributes_unsorted = PySequence_List(c->u->u_static_attributes); + if (static_attributes_unsorted == NULL) { + compiler_exit_scope(c); + return ERROR; + } + if (PyList_Sort(static_attributes_unsorted) != 0) { + compiler_exit_scope(c); + Py_DECREF(static_attributes_unsorted); + return ERROR; + } + PyObject *static_attributes = PySequence_Tuple(static_attributes_unsorted); + Py_DECREF(static_attributes_unsorted); + if (static_attributes == NULL) { + compiler_exit_scope(c); + return ERROR; + } + ADDOP_LOAD_CONST(c, NO_LOCATION, static_attributes); + Py_CLEAR(static_attributes); + if (compiler_nameop(c, NO_LOCATION, &_Py_ID(__static_attributes__), Store) < 0) { + compiler_exit_scope(c); + return ERROR; + } /* The following code is artificial */ /* Set __classdictcell__ if necessary */ if (c->u->u_ste->ste_needs_classdict) { @@ -2523,8 +2622,8 @@ compiler_class_body(struct compiler *c, stmt_ty s, int firstlineno) // these instructions should be attributed to the class line, // not a decorator line loc = LOC(s); - ADDOP(c, loc, PUSH_NULL); ADDOP(c, loc, LOAD_BUILD_CLASS); + ADDOP(c, loc, PUSH_NULL); /* 3. load a function (or closure) made from the code object */ if (compiler_make_closure(c, loc, co, 0) < 0) { @@ -2555,7 +2654,6 @@ compiler_class(struct compiler *c, stmt_ty s) asdl_type_param_seq *type_params = s->v.ClassDef.type_params; int is_generic = asdl_seq_LEN(type_params) > 0; if (is_generic) { - ADDOP(c, loc, PUSH_NULL); PyObject *type_params_name = PyUnicode_FromFormat("", s->v.ClassDef.name); if (!type_params_name) { @@ -2615,6 +2713,7 @@ compiler_class(struct compiler *c, stmt_ty s) s->v.ClassDef.keywords)); PyCodeObject *co = optimize_and_assemble(c, 0); + compiler_exit_scope(c); if (co == NULL) { return ERROR; @@ -2624,6 +2723,7 @@ compiler_class(struct compiler *c, stmt_ty s) return ERROR; } Py_DECREF(co); + ADDOP(c, loc, PUSH_NULL); ADDOP_I(c, loc, CALL, 0); } else { RETURN_IF_ERROR(compiler_call_helper(c, loc, 2, @@ -2674,7 +2774,6 @@ compiler_typealias(struct compiler *c, stmt_ty s) int is_generic = asdl_seq_LEN(type_params) > 0; PyObject *name = s->v.TypeAlias.name->v.Name.id; if (is_generic) { - ADDOP(c, loc, PUSH_NULL); PyObject *type_params_name = PyUnicode_FromFormat("", name); if (!type_params_name) { @@ -2714,6 +2813,7 @@ compiler_typealias(struct compiler *c, stmt_ty s) return ERROR; } Py_DECREF(co); + ADDOP(c, loc, PUSH_NULL); ADDOP_I(c, loc, CALL, 0); } RETURN_IF_ERROR(compiler_nameop(c, loc, name, Store)); @@ -2815,9 +2915,11 @@ static int compiler_addcompare(struct compiler *c, location loc, default: Py_UNREACHABLE(); } - /* cmp goes in top bits of the oparg, while the low bits are used by quickened - * versions of this opcode to store the comparison mask. */ - ADDOP_I(c, loc, COMPARE_OP, (cmp << 4) | compare_masks[cmp]); + // cmp goes in top three bits of the oparg, while the low four bits are used + // by quickened versions of this opcode to store the comparison mask. The + // fifth-lowest bit indicates whether the result should be converted to bool + // and is set later): + ADDOP_I(c, loc, COMPARE_OP, (cmp << 5) | compare_masks[cmp]); return SUCCESS; } @@ -2862,7 +2964,7 @@ compiler_jump_if(struct compiler *c, location loc, compiler_jump_if(c, loc, e->v.IfExp.test, next2, 0)); RETURN_IF_ERROR( compiler_jump_if(c, loc, e->v.IfExp.body, next, cond)); - ADDOP_JUMP(c, NO_LOCATION, JUMP, end); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, end); USE_LABEL(c, next2); RETURN_IF_ERROR( @@ -2883,18 +2985,20 @@ compiler_jump_if(struct compiler *c, location loc, ADDOP_I(c, LOC(e), SWAP, 2); ADDOP_I(c, LOC(e), COPY, 2); ADDOP_COMPARE(c, LOC(e), asdl_seq_GET(e->v.Compare.ops, i)); + ADDOP(c, LOC(e), TO_BOOL); ADDOP_JUMP(c, LOC(e), POP_JUMP_IF_FALSE, cleanup); } VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n)); ADDOP_COMPARE(c, LOC(e), asdl_seq_GET(e->v.Compare.ops, n)); + ADDOP(c, LOC(e), TO_BOOL); ADDOP_JUMP(c, LOC(e), cond ? POP_JUMP_IF_TRUE : POP_JUMP_IF_FALSE, next); NEW_JUMP_TARGET_LABEL(c, end); - ADDOP_JUMP(c, NO_LOCATION, JUMP, end); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, end); USE_LABEL(c, cleanup); ADDOP(c, LOC(e), POP_TOP); if (!cond) { - ADDOP_JUMP(c, NO_LOCATION, JUMP, next); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, next); } USE_LABEL(c, end); @@ -2910,6 +3014,7 @@ compiler_jump_if(struct compiler *c, location loc, /* general implementation */ VISIT(c, expr, e); + ADDOP(c, LOC(e), TO_BOOL); ADDOP_JUMP(c, LOC(e), cond ? POP_JUMP_IF_TRUE : POP_JUMP_IF_FALSE, next); return SUCCESS; } @@ -2925,7 +3030,7 @@ compiler_ifexp(struct compiler *c, expr_ty e) compiler_jump_if(c, LOC(e), e->v.IfExp.test, next, 0)); VISIT(c, expr, e->v.IfExp.body); - ADDOP_JUMP(c, NO_LOCATION, JUMP, end); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, end); USE_LABEL(c, next); VISIT(c, expr, e->v.IfExp.orelse); @@ -3003,7 +3108,7 @@ compiler_if(struct compiler *c, stmt_ty s) VISIT_SEQ(c, stmt, s->v.If.body); if (asdl_seq_LEN(s->v.If.orelse)) { - ADDOP_JUMP(c, NO_LOCATION, JUMP, end); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, end); USE_LABEL(c, next); VISIT_SEQ(c, stmt, s->v.If.orelse); @@ -3044,7 +3149,12 @@ compiler_for(struct compiler *c, stmt_ty s) ADDOP_JUMP(c, NO_LOCATION, JUMP, start); USE_LABEL(c, cleanup); + /* It is important for instrumentation that the `END_FOR` comes first. + * Iteration over a generator will jump to the first of these instructions, + * but a non-generator will jump to a later instruction. + */ ADDOP(c, NO_LOCATION, END_FOR); + ADDOP(c, NO_LOCATION, POP_TOP); compiler_pop_fblock(c, FOR_LOOP, start); @@ -3263,7 +3373,7 @@ compiler_try_finally(struct compiler *c, stmt_ty s) compiler_pop_fblock(c, FINALLY_TRY, body); VISIT_SEQ(c, stmt, s->v.Try.finalbody); - ADDOP_JUMP(c, NO_LOCATION, JUMP, exit); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, exit); /* `finally` block */ USE_LABEL(c, end); @@ -3313,7 +3423,7 @@ compiler_try_star_finally(struct compiler *c, stmt_ty s) compiler_pop_fblock(c, FINALLY_TRY, body); VISIT_SEQ(c, stmt, s->v.TryStar.finalbody); - ADDOP_JUMP(c, NO_LOCATION, JUMP, exit); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, exit); /* `finally` block */ USE_LABEL(c, end); @@ -3388,7 +3498,7 @@ compiler_try_except(struct compiler *c, stmt_ty s) if (s->v.Try.orelse && asdl_seq_LEN(s->v.Try.orelse)) { VISIT_SEQ(c, stmt, s->v.Try.orelse); } - ADDOP_JUMP(c, NO_LOCATION, JUMP, end); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, end); n = asdl_seq_LEN(s->v.Try.handlers); USE_LABEL(c, except); @@ -3452,7 +3562,7 @@ compiler_try_except(struct compiler *c, stmt_ty s) compiler_nameop(c, NO_LOCATION, handler->v.ExceptHandler.name, Store)); RETURN_IF_ERROR( compiler_nameop(c, NO_LOCATION, handler->v.ExceptHandler.name, Del)); - ADDOP_JUMP(c, NO_LOCATION, JUMP, end); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, end); /* except: */ USE_LABEL(c, cleanup_end); @@ -3480,7 +3590,7 @@ compiler_try_except(struct compiler *c, stmt_ty s) compiler_pop_fblock(c, HANDLER_CLEANUP, cleanup_body); ADDOP(c, NO_LOCATION, POP_BLOCK); ADDOP(c, NO_LOCATION, POP_EXCEPT); - ADDOP_JUMP(c, NO_LOCATION, JUMP, end); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, end); } USE_LABEL(c, except); @@ -3568,7 +3678,7 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) VISIT_SEQ(c, stmt, s->v.TryStar.body); compiler_pop_fblock(c, TRY_EXCEPT, body); ADDOP(c, NO_LOCATION, POP_BLOCK); - ADDOP_JUMP(c, NO_LOCATION, JUMP, orelse); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, orelse); Py_ssize_t n = asdl_seq_LEN(s->v.TryStar.handlers); USE_LABEL(c, except); @@ -3650,7 +3760,7 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) RETURN_IF_ERROR( compiler_nameop(c, NO_LOCATION, handler->v.ExceptHandler.name, Del)); } - ADDOP_JUMP(c, NO_LOCATION, JUMP, except); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, except); /* except: */ USE_LABEL(c, cleanup_end); @@ -3667,11 +3777,11 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) /* add exception raised to the res list */ ADDOP_I(c, NO_LOCATION, LIST_APPEND, 3); // exc ADDOP(c, NO_LOCATION, POP_TOP); // lasti - ADDOP_JUMP(c, NO_LOCATION, JUMP, except_with_error); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, except_with_error); USE_LABEL(c, except); ADDOP(c, NO_LOCATION, NOP); // to hold a propagated location info - ADDOP_JUMP(c, NO_LOCATION, JUMP, except_with_error); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, except_with_error); USE_LABEL(c, no_match); ADDOP(c, loc, POP_TOP); // match (None) @@ -3681,7 +3791,7 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) if (i == n - 1) { /* Add exc to the list (if not None it's the unhandled part of the EG) */ ADDOP_I(c, NO_LOCATION, LIST_APPEND, 1); - ADDOP_JUMP(c, NO_LOCATION, JUMP, reraise_star); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, reraise_star); } } /* artificial */ @@ -3697,7 +3807,7 @@ compiler_try_star_except(struct compiler *c, stmt_ty s) ADDOP(c, NO_LOCATION, POP_TOP); ADDOP(c, NO_LOCATION, POP_BLOCK); ADDOP(c, NO_LOCATION, POP_EXCEPT); - ADDOP_JUMP(c, NO_LOCATION, JUMP, end); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, end); USE_LABEL(c, reraise); ADDOP(c, NO_LOCATION, POP_BLOCK); @@ -3841,7 +3951,7 @@ compiler_from_import(struct compiler *c, stmt_ty s) } if (location_is_after(LOC(s), c->c_future.ff_location) && - s->v.ImportFrom.module && + s->v.ImportFrom.module && s->v.ImportFrom.level == 0 && _PyUnicode_EqualToASCIIString(s->v.ImportFrom.module, "__future__")) { Py_DECREF(names); @@ -4036,8 +4146,6 @@ unaryop(unaryop_ty op) switch (op) { case Invert: return UNARY_INVERT; - case Not: - return UNARY_NOT; case USub: return UNARY_NEGATIVE; default: @@ -4108,7 +4216,7 @@ addop_yield(struct compiler *c, location loc) { ADDOP_I(c, loc, CALL_INTRINSIC_1, INTRINSIC_ASYNC_GEN_WRAP); } ADDOP_I(c, loc, YIELD_VALUE, 0); - ADDOP_I(c, loc, RESUME, 1); + ADDOP_I(c, loc, RESUME, RESUME_AFTER_YIELD); return SUCCESS; } @@ -4149,9 +4257,20 @@ compiler_nameop(struct compiler *c, location loc, optype = OP_DEREF; break; case LOCAL: - if (_PyST_IsFunctionLike(c->u->u_ste) || - (PyDict_GetItem(c->u->u_metadata.u_fasthidden, mangled) == Py_True)) + if (_PyST_IsFunctionLike(c->u->u_ste)) { optype = OP_FAST; + } + else { + PyObject *item; + if (PyDict_GetItemRef(c->u->u_metadata.u_fasthidden, mangled, + &item) < 0) { + goto error; + } + if (item == Py_True) { + optype = OP_FAST; + } + Py_XDECREF(item); + } break; case GLOBAL_IMPLICIT: if (_PyST_IsFunctionLike(c->u->u_ste)) @@ -4176,7 +4295,7 @@ compiler_nameop(struct compiler *c, location loc, op = LOAD_FROM_DICT_OR_DEREF; // First load the locals if (codegen_addop_noarg(INSTR_SEQUENCE(c), LOAD_LOCALS, loc) < 0) { - return ERROR; + goto error; } } else if (c->u->u_ste->ste_can_see_class_scope) { @@ -4184,7 +4303,7 @@ compiler_nameop(struct compiler *c, location loc, // First load the classdict if (compiler_addop_o(c->u, loc, LOAD_DEREF, c->u->u_metadata.u_freevars, &_Py_ID(__classdict__)) < 0) { - return ERROR; + goto error; } } else { @@ -4211,7 +4330,7 @@ compiler_nameop(struct compiler *c, location loc, // First load the classdict if (compiler_addop_o(c->u, loc, LOAD_DEREF, c->u->u_metadata.u_freevars, &_Py_ID(__classdict__)) < 0) { - return ERROR; + goto error; } } else { op = LOAD_GLOBAL; @@ -4245,6 +4364,10 @@ compiler_nameop(struct compiler *c, location loc, arg <<= 1; } return codegen_addop_i(INSTR_SEQUENCE(c), op, arg, loc); + +error: + Py_DECREF(mangled); + return ERROR; } static int @@ -4267,6 +4390,7 @@ compiler_boolop(struct compiler *c, expr_ty e) for (i = 0; i < n; ++i) { VISIT(c, expr, (expr_ty)asdl_seq_GET(s, i)); ADDOP_I(c, loc, COPY, 1); + ADDOP(c, loc, TO_BOOL); ADDOP_JUMP(c, loc, jumpi, end); ADDOP(c, loc, POP_TOP); } @@ -4574,13 +4698,14 @@ compiler_compare(struct compiler *c, expr_ty e) ADDOP_I(c, loc, COPY, 2); ADDOP_COMPARE(c, loc, asdl_seq_GET(e->v.Compare.ops, i)); ADDOP_I(c, loc, COPY, 1); + ADDOP(c, loc, TO_BOOL); ADDOP_JUMP(c, loc, POP_JUMP_IF_FALSE, cleanup); ADDOP(c, loc, POP_TOP); } VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n)); ADDOP_COMPARE(c, loc, asdl_seq_GET(e->v.Compare.ops, n)); NEW_JUMP_TARGET_LABEL(c, end); - ADDOP_JUMP(c, NO_LOCATION, JUMP, end); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, end); USE_LABEL(c, cleanup); ADDOP_I(c, loc, SWAP, 2); @@ -4900,9 +5025,13 @@ maybe_optimize_method_call(struct compiler *c, expr_ty e) VISIT_SEQ(c, keyword, kwds); RETURN_IF_ERROR( compiler_call_simple_kw_helper(c, loc, kwds, kwdsl)); + loc = update_start_location_to_match_attr(c, LOC(e), meth); + ADDOP_I(c, loc, CALL_KW, argsl + kwdsl); + } + else { + loc = update_start_location_to_match_attr(c, LOC(e), meth); + ADDOP_I(c, loc, CALL, argsl); } - loc = update_start_location_to_match_attr(c, LOC(e), meth); - ADDOP_I(c, loc, CALL, argsl + kwdsl); return 1; } @@ -4942,9 +5071,9 @@ compiler_call(struct compiler *c, expr_ty e) return SUCCESS; } RETURN_IF_ERROR(check_caller(c, e->v.Call.func)); + VISIT(c, expr, e->v.Call.func); location loc = LOC(e->v.Call.func); ADDOP(c, loc, PUSH_NULL); - VISIT(c, expr, e->v.Call.func); loc = LOC(e); return compiler_call_helper(c, loc, 0, e->v.Call.args, @@ -4969,8 +5098,12 @@ compiler_joined_str(struct compiler *c, expr_ty e) } else { VISIT_SEQ(c, expr, e->v.JoinedStr.values); - if (asdl_seq_LEN(e->v.JoinedStr.values) != 1) { - ADDOP_I(c, loc, BUILD_STRING, asdl_seq_LEN(e->v.JoinedStr.values)); + if (value_count > 1) { + ADDOP_I(c, loc, BUILD_STRING, value_count); + } + else if (value_count == 0) { + _Py_DECLARE_STR(empty, ""); + ADDOP_LOAD_CONST_NEW(c, loc, Py_NewRef(&_Py_STR(empty))); } } return SUCCESS; @@ -5000,26 +5133,26 @@ compiler_formatted_value(struct compiler *c, expr_ty e) /* The expression to be formatted. */ VISIT(c, expr, e->v.FormattedValue.value); - switch (conversion) { - case 's': oparg = FVC_STR; break; - case 'r': oparg = FVC_REPR; break; - case 'a': oparg = FVC_ASCII; break; - case -1: oparg = FVC_NONE; break; - default: - PyErr_Format(PyExc_SystemError, + location loc = LOC(e); + if (conversion != -1) { + switch (conversion) { + case 's': oparg = FVC_STR; break; + case 'r': oparg = FVC_REPR; break; + case 'a': oparg = FVC_ASCII; break; + default: + PyErr_Format(PyExc_SystemError, "Unrecognized conversion character %d", conversion); - return ERROR; + return ERROR; + } + ADDOP_I(c, loc, CONVERT_VALUE, oparg); } if (e->v.FormattedValue.format_spec) { /* Evaluate the format spec, and update our opcode arg. */ VISIT(c, expr, e->v.FormattedValue.format_spec); - oparg |= FVS_HAVE_SPEC; + ADDOP(c, loc, FORMAT_WITH_SPEC); + } else { + ADDOP(c, loc, FORMAT_SIMPLE); } - - /* And push our opcode and oparg */ - location loc = LOC(e); - ADDOP_I(c, loc, FORMAT_VALUE, oparg); - return SUCCESS; } @@ -5068,7 +5201,7 @@ compiler_subkwargs(struct compiler *c, location loc, } /* Used by compiler_call_helper and maybe_optimize_method_call to emit - * KW_NAMES before CALL. + * a tuple of keyword names before CALL. */ static int compiler_call_simple_kw_helper(struct compiler *c, location loc, @@ -5083,12 +5216,7 @@ compiler_call_simple_kw_helper(struct compiler *c, location loc, keyword_ty kw = asdl_seq_GET(keywords, i); PyTuple_SET_ITEM(names, i, Py_NewRef(kw->arg)); } - Py_ssize_t arg = compiler_add_const(c->c_const_cache, c->u, names); - if (arg < 0) { - return ERROR; - } - Py_DECREF(names); - ADDOP_I(c, loc, KW_NAMES, arg); + ADDOP_LOAD_CONST_NEW(c, loc, names); return SUCCESS; } @@ -5133,8 +5261,11 @@ compiler_call_helper(struct compiler *c, location loc, VISIT_SEQ(c, keyword, keywords); RETURN_IF_ERROR( compiler_call_simple_kw_helper(c, loc, keywords, nkwelts)); + ADDOP_I(c, loc, CALL_KW, n + nelts + nkwelts); + } + else { + ADDOP_I(c, loc, CALL, n + nelts); } - ADDOP_I(c, loc, CALL, n + nelts + nkwelts); return SUCCESS; ex_call: @@ -5283,6 +5414,7 @@ compiler_sync_comprehension_generator(struct compiler *c, location loc, if (IS_LABEL(start)) { depth++; + ADDOP(c, LOC(gen->iter), GET_ITER); USE_LABEL(c, start); ADDOP_JUMP(c, LOC(gen->iter), FOR_ITER, anchor); } @@ -5342,7 +5474,12 @@ compiler_sync_comprehension_generator(struct compiler *c, location loc, ADDOP_JUMP(c, elt_loc, JUMP, start); USE_LABEL(c, anchor); + /* It is important for instrumentation that the `END_FOR` comes first. + * Iteration over a generator will jump to the first of these instructions, + * but a non-generator will jump to a later instruction. + */ ADDOP(c, NO_LOCATION, END_FOR); + ADDOP(c, NO_LOCATION, POP_TOP); } return SUCCESS; @@ -5515,8 +5652,13 @@ push_inlined_comprehension_state(struct compiler *c, location loc, if ((symbol & DEF_LOCAL && !(symbol & DEF_NONLOCAL)) || in_class_block) { if (!_PyST_IsFunctionLike(c->u->u_ste)) { // non-function scope: override this name to use fast locals - PyObject *orig = PyDict_GetItem(c->u->u_metadata.u_fasthidden, k); - if (orig != Py_True) { + PyObject *orig; + if (PyDict_GetItemRef(c->u->u_metadata.u_fasthidden, k, &orig) < 0) { + return ERROR; + } + int orig_is_true = (orig == Py_True); + Py_XDECREF(orig); + if (!orig_is_true) { if (PyDict_SetItem(c->u->u_metadata.u_fasthidden, k, Py_True) < 0) { return ERROR; } @@ -5618,7 +5760,7 @@ pop_inlined_comprehension_state(struct compiler *c, location loc, } if (state.pushed_locals) { ADDOP(c, NO_LOCATION, POP_BLOCK); - ADDOP_JUMP(c, NO_LOCATION, JUMP, state.end); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, state.end); // cleanup from an exception inside the comprehension USE_LABEL(c, state.cleanup); @@ -5678,7 +5820,7 @@ compiler_comprehension(struct compiler *c, expr_ty e, int type, comprehension_ty outermost; int scope_type = c->u->u_scope_type; int is_top_level_await = IS_TOP_LEVEL_AWAIT(c); - PySTEntryObject *entry = PySymtable_Lookup(c->c_st, (void *)e); + PySTEntryObject *entry = _PySymtable_Lookup(c->c_st, (void *)e); if (entry == NULL) { goto error; } @@ -5854,6 +5996,7 @@ compiler_visit_keyword(struct compiler *c, keyword_ty k) static int compiler_with_except_finish(struct compiler *c, jump_target_label cleanup) { NEW_JUMP_TARGET_LABEL(c, suppress); + ADDOP(c, NO_LOCATION, TO_BOOL); ADDOP_JUMP(c, NO_LOCATION, POP_JUMP_IF_TRUE, suppress); ADDOP_I(c, NO_LOCATION, RERAISE, 2); @@ -5864,7 +6007,7 @@ compiler_with_except_finish(struct compiler *c, jump_target_label cleanup) { ADDOP(c, NO_LOCATION, POP_TOP); ADDOP(c, NO_LOCATION, POP_TOP); NEW_JUMP_TARGET_LABEL(c, exit); - ADDOP_JUMP(c, NO_LOCATION, JUMP, exit); + ADDOP_JUMP(c, NO_LOCATION, JUMP_NO_INTERRUPT, exit); USE_LABEL(c, cleanup); POP_EXCEPT_AND_RERAISE(c, NO_LOCATION); @@ -6086,6 +6229,10 @@ compiler_visit_expr1(struct compiler *c, expr_ty e) if (e->v.UnaryOp.op == UAdd) { ADDOP_I(c, loc, CALL_INTRINSIC_1, INTRINSIC_UNARY_POSITIVE); } + else if (e->v.UnaryOp.op == Not) { + ADDOP(c, loc, TO_BOOL); + ADDOP(c, loc, UNARY_NOT); + } else { ADDOP(c, loc, unaryop(e->v.UnaryOp.op)); } @@ -6169,6 +6316,7 @@ compiler_visit_expr1(struct compiler *c, expr_ty e) ADDOP(c, loc, NOP); return SUCCESS; } + RETURN_IF_ERROR(compiler_maybe_add_static_attribute_to_class(c, e)); VISIT(c, expr, e->v.Attribute.value); loc = LOC(e); loc = update_start_location_to_match_attr(c, loc, e); @@ -6444,7 +6592,7 @@ compiler_error(struct compiler *c, location loc, } PyObject *loc_obj = PyErr_ProgramTextObject(c->c_filename, loc.lineno); if (loc_obj == NULL) { - loc_obj = Py_NewRef(Py_None); + loc_obj = Py_None; } PyObject *args = Py_BuildValue("O(OiiOii)", msg, c->c_filename, loc.lineno, loc.col_offset + 1, loc_obj, @@ -6468,6 +6616,9 @@ static int compiler_warn(struct compiler *c, location loc, const char *format, ...) { + if (c->c_disable_warning) { + return SUCCESS; + } va_list vargs; va_start(vargs, format); PyObject *msg = PyUnicode_FromFormatV(format, vargs); @@ -6475,8 +6626,8 @@ compiler_warn(struct compiler *c, location loc, if (msg == NULL) { return ERROR; } - if (PyErr_WarnExplicitObject(PyExc_SyntaxWarning, msg, c->c_filename, - loc.lineno, NULL, NULL) < 0) + if (PyErr_WarnExplicitObject(PyExc_SyntaxWarning, msg, + c->c_filename, loc.lineno, NULL, NULL) < 0) { if (PyErr_ExceptionMatches(PyExc_SyntaxWarning)) { /* Replace the SyntaxWarning exception with a SyntaxError @@ -6590,7 +6741,7 @@ ensure_fail_pop(struct compiler *c, pattern_context *pc, Py_ssize_t n) return SUCCESS; } Py_ssize_t needed = sizeof(jump_target_label) * size; - jump_target_label *resized = PyObject_Realloc(pc->fail_pop, needed); + jump_target_label *resized = PyMem_Realloc(pc->fail_pop, needed); if (resized == NULL) { PyErr_NoMemory(); return ERROR; @@ -6629,13 +6780,13 @@ emit_and_reset_fail_pop(struct compiler *c, location loc, USE_LABEL(c, pc->fail_pop[pc->fail_pop_size]); if (codegen_addop_noarg(INSTR_SEQUENCE(c), POP_TOP, loc) < 0) { pc->fail_pop_size = 0; - PyObject_Free(pc->fail_pop); + PyMem_Free(pc->fail_pop); pc->fail_pop = NULL; return ERROR; } } USE_LABEL(c, pc->fail_pop[0]); - PyObject_Free(pc->fail_pop); + PyMem_Free(pc->fail_pop); pc->fail_pop = NULL; return SUCCESS; } @@ -7139,7 +7290,7 @@ compiler_pattern_or(struct compiler *c, pattern_ty p, pattern_context *pc) Py_DECREF(pc->stores); *pc = old_pc; Py_INCREF(pc->stores); - // Need to NULL this for the PyObject_Free call in the error block. + // Need to NULL this for the PyMem_Free call in the error block. old_pc.fail_pop = NULL; // No match. Pop the remaining copy of the subject and fail: if (codegen_addop_noarg(INSTR_SEQUENCE(c), POP_TOP, LOC(p)) < 0 || @@ -7185,7 +7336,7 @@ compiler_pattern_or(struct compiler *c, pattern_ty p, pattern_context *pc) diff: compiler_error(c, LOC(p), "alternative patterns bind different names"); error: - PyObject_Free(old_pc.fail_pop); + PyMem_Free(old_pc.fail_pop); Py_DECREF(old_pc.stores); Py_XDECREF(control); return ERROR; @@ -7261,6 +7412,7 @@ compiler_pattern_value(struct compiler *c, pattern_ty p, pattern_context *pc) } VISIT(c, expr, value); ADDOP_COMPARE(c, LOC(p), Eq); + ADDOP(c, LOC(p), TO_BOOL); RETURN_IF_ERROR(jump_to_fail_pop(c, LOC(p), pc, POP_JUMP_IF_FALSE)); return SUCCESS; } @@ -7385,7 +7537,7 @@ compiler_match(struct compiler *c, stmt_ty s) pattern_context pc; pc.fail_pop = NULL; int result = compiler_match_inner(c, s, &pc); - PyObject_Free(pc.fail_pop); + PyMem_Free(pc.fail_pop); return result; } @@ -7460,213 +7612,29 @@ _PyCompile_ConstCacheMergeOne(PyObject *const_cache, PyObject **obj) return ERROR; } - // t is borrowed reference - PyObject *t = PyDict_SetDefault(const_cache, key, key); + PyObject *t; + int res = PyDict_SetDefaultRef(const_cache, key, key, &t); Py_DECREF(key); - if (t == NULL) { + if (res < 0) { return ERROR; } - if (t == key) { // obj is new constant. + if (res == 0) { // inserted: obj is new constant. + Py_DECREF(t); return SUCCESS; } if (PyTuple_CheckExact(t)) { - // t is still borrowed reference - t = PyTuple_GET_ITEM(t, 1); - } - - Py_SETREF(*obj, Py_NewRef(t)); - return SUCCESS; -} - - -static int * -build_cellfixedoffsets(_PyCompile_CodeUnitMetadata *umd) -{ - int nlocals = (int)PyDict_GET_SIZE(umd->u_varnames); - int ncellvars = (int)PyDict_GET_SIZE(umd->u_cellvars); - int nfreevars = (int)PyDict_GET_SIZE(umd->u_freevars); - - int noffsets = ncellvars + nfreevars; - int *fixed = PyMem_New(int, noffsets); - if (fixed == NULL) { - PyErr_NoMemory(); - return NULL; - } - for (int i = 0; i < noffsets; i++) { - fixed[i] = nlocals + i; - } - - PyObject *varname, *cellindex; - Py_ssize_t pos = 0; - while (PyDict_Next(umd->u_cellvars, &pos, &varname, &cellindex)) { - PyObject *varindex = PyDict_GetItem(umd->u_varnames, varname); - if (varindex != NULL) { - assert(PyLong_AS_LONG(cellindex) < INT_MAX); - assert(PyLong_AS_LONG(varindex) < INT_MAX); - int oldindex = (int)PyLong_AS_LONG(cellindex); - int argoffset = (int)PyLong_AS_LONG(varindex); - fixed[oldindex] = argoffset; - } - } - - return fixed; -} - -static int -insert_prefix_instructions(_PyCompile_CodeUnitMetadata *umd, basicblock *entryblock, - int *fixed, int nfreevars, int code_flags) -{ - assert(umd->u_firstlineno > 0); - - /* Add the generator prefix instructions. */ - if (code_flags & (CO_GENERATOR | CO_COROUTINE | CO_ASYNC_GENERATOR)) { - cfg_instr make_gen = { - .i_opcode = RETURN_GENERATOR, - .i_oparg = 0, - .i_loc = LOCATION(umd->u_firstlineno, umd->u_firstlineno, -1, -1), - .i_target = NULL, - }; - RETURN_IF_ERROR(_PyBasicblock_InsertInstruction(entryblock, 0, &make_gen)); - cfg_instr pop_top = { - .i_opcode = POP_TOP, - .i_oparg = 0, - .i_loc = NO_LOCATION, - .i_target = NULL, - }; - RETURN_IF_ERROR(_PyBasicblock_InsertInstruction(entryblock, 1, &pop_top)); - } - - /* Set up cells for any variable that escapes, to be put in a closure. */ - const int ncellvars = (int)PyDict_GET_SIZE(umd->u_cellvars); - if (ncellvars) { - // umd->u_cellvars has the cells out of order so we sort them - // before adding the MAKE_CELL instructions. Note that we - // adjust for arg cells, which come first. - const int nvars = ncellvars + (int)PyDict_GET_SIZE(umd->u_varnames); - int *sorted = PyMem_RawCalloc(nvars, sizeof(int)); - if (sorted == NULL) { - PyErr_NoMemory(); - return ERROR; - } - for (int i = 0; i < ncellvars; i++) { - sorted[fixed[i]] = i + 1; - } - for (int i = 0, ncellsused = 0; ncellsused < ncellvars; i++) { - int oldindex = sorted[i] - 1; - if (oldindex == -1) { - continue; - } - cfg_instr make_cell = { - .i_opcode = MAKE_CELL, - // This will get fixed in offset_derefs(). - .i_oparg = oldindex, - .i_loc = NO_LOCATION, - .i_target = NULL, - }; - if (_PyBasicblock_InsertInstruction(entryblock, ncellsused, &make_cell) < 0) { - PyMem_RawFree(sorted); - return ERROR; - } - ncellsused += 1; - } - PyMem_RawFree(sorted); + PyObject *item = PyTuple_GET_ITEM(t, 1); + Py_SETREF(*obj, Py_NewRef(item)); + Py_DECREF(t); } - - if (nfreevars) { - cfg_instr copy_frees = { - .i_opcode = COPY_FREE_VARS, - .i_oparg = nfreevars, - .i_loc = NO_LOCATION, - .i_target = NULL, - }; - RETURN_IF_ERROR(_PyBasicblock_InsertInstruction(entryblock, 0, ©_frees)); + else { + Py_SETREF(*obj, t); } return SUCCESS; } -static int -fix_cell_offsets(_PyCompile_CodeUnitMetadata *umd, basicblock *entryblock, int *fixedmap) -{ - int nlocals = (int)PyDict_GET_SIZE(umd->u_varnames); - int ncellvars = (int)PyDict_GET_SIZE(umd->u_cellvars); - int nfreevars = (int)PyDict_GET_SIZE(umd->u_freevars); - int noffsets = ncellvars + nfreevars; - - // First deal with duplicates (arg cells). - int numdropped = 0; - for (int i = 0; i < noffsets ; i++) { - if (fixedmap[i] == i + nlocals) { - fixedmap[i] -= numdropped; - } - else { - // It was a duplicate (cell/arg). - numdropped += 1; - } - } - - // Then update offsets, either relative to locals or by cell2arg. - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - for (int i = 0; i < b->b_iused; i++) { - cfg_instr *inst = &b->b_instr[i]; - // This is called before extended args are generated. - assert(inst->i_opcode != EXTENDED_ARG); - int oldoffset = inst->i_oparg; - switch(inst->i_opcode) { - case MAKE_CELL: - case LOAD_CLOSURE: - case LOAD_DEREF: - case STORE_DEREF: - case DELETE_DEREF: - case LOAD_FROM_DICT_OR_DEREF: - assert(oldoffset >= 0); - assert(oldoffset < noffsets); - assert(fixedmap[oldoffset] >= 0); - inst->i_oparg = fixedmap[oldoffset]; - } - } - } - - return numdropped; -} - - -static int -prepare_localsplus(_PyCompile_CodeUnitMetadata *umd, cfg_builder *g, int code_flags) -{ - assert(PyDict_GET_SIZE(umd->u_varnames) < INT_MAX); - assert(PyDict_GET_SIZE(umd->u_cellvars) < INT_MAX); - assert(PyDict_GET_SIZE(umd->u_freevars) < INT_MAX); - int nlocals = (int)PyDict_GET_SIZE(umd->u_varnames); - int ncellvars = (int)PyDict_GET_SIZE(umd->u_cellvars); - int nfreevars = (int)PyDict_GET_SIZE(umd->u_freevars); - assert(INT_MAX - nlocals - ncellvars > 0); - assert(INT_MAX - nlocals - ncellvars - nfreevars > 0); - int nlocalsplus = nlocals + ncellvars + nfreevars; - int* cellfixedoffsets = build_cellfixedoffsets(umd); - if (cellfixedoffsets == NULL) { - return ERROR; - } - - - // This must be called before fix_cell_offsets(). - if (insert_prefix_instructions(umd, g->g_entryblock, cellfixedoffsets, nfreevars, code_flags)) { - PyMem_Free(cellfixedoffsets); - return ERROR; - } - - int numdropped = fix_cell_offsets(umd, g->g_entryblock, cellfixedoffsets); - PyMem_Free(cellfixedoffsets); // At this point we're done with it. - cellfixedoffsets = NULL; - if (numdropped < 0) { - return ERROR; - } - - nlocalsplus -= numdropped; - return nlocalsplus; -} - static int add_return_at_end(struct compiler *c, int addNone) { @@ -7680,65 +7648,50 @@ add_return_at_end(struct compiler *c, int addNone) return SUCCESS; } -static int cfg_to_instr_sequence(cfg_builder *g, instr_sequence *seq); - static PyCodeObject * optimize_and_assemble_code_unit(struct compiler_unit *u, PyObject *const_cache, int code_flags, PyObject *filename) { + cfg_builder *g = NULL; instr_sequence optimized_instrs; memset(&optimized_instrs, 0, sizeof(instr_sequence)); PyCodeObject *co = NULL; PyObject *consts = consts_dict_keys_inorder(u->u_metadata.u_consts); if (consts == NULL) { - return NULL; + goto error; } - cfg_builder g; - if (instr_sequence_to_cfg(&u->u_instr_sequence, &g) < 0) { + g = instr_sequence_to_cfg(u->u_instr_sequence); + if (g == NULL) { goto error; } - int nparams = (int)PyList_GET_SIZE(u->u_ste->ste_varnames); int nlocals = (int)PyDict_GET_SIZE(u->u_metadata.u_varnames); + int nparams = (int)PyList_GET_SIZE(u->u_ste->ste_varnames); assert(u->u_metadata.u_firstlineno); - if (_PyCfg_OptimizeCodeUnit(&g, consts, const_cache, code_flags, nlocals, - nparams, u->u_metadata.u_firstlineno) < 0) { - goto error; - } - /** Assembly **/ - int nlocalsplus = prepare_localsplus(&u->u_metadata, &g, code_flags); - if (nlocalsplus < 0) { - goto error; - } - - int maxdepth = _PyCfg_Stackdepth(g.g_entryblock, code_flags); - if (maxdepth < 0) { + if (_PyCfg_OptimizeCodeUnit(g, consts, const_cache, nlocals, + nparams, u->u_metadata.u_firstlineno) < 0) { goto error; } - _PyCfg_ConvertPseudoOps(g.g_entryblock); - - /* Order of basic blocks must have been determined by now */ - - if (_PyCfg_ResolveJumps(&g) < 0) { + int stackdepth; + int nlocalsplus; + if (_PyCfg_OptimizedCfgToInstructionSequence(g, &u->u_metadata, code_flags, + &stackdepth, &nlocalsplus, + &optimized_instrs) < 0) { goto error; } - /* Can't modify the bytecode after computing jump offsets. */ - - if (cfg_to_instr_sequence(&g, &optimized_instrs) < 0) { - goto error; - } + /** Assembly **/ co = _PyAssemble_MakeCodeObject(&u->u_metadata, const_cache, consts, - maxdepth, &optimized_instrs, nlocalsplus, + stackdepth, &optimized_instrs, nlocalsplus, code_flags, filename); error: Py_XDECREF(consts); - instr_sequence_fini(&optimized_instrs); - _PyCfgBuilder_Fini(&g); + PyInstructionSequence_Fini(&optimized_instrs); + _PyCfgBuilder_Free(g); return co; } @@ -7761,36 +7714,6 @@ optimize_and_assemble(struct compiler *c, int addNone) return optimize_and_assemble_code_unit(u, const_cache, code_flags, filename); } -static int -cfg_to_instr_sequence(cfg_builder *g, instr_sequence *seq) -{ - int lbl = 0; - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - b->b_label = (jump_target_label){lbl}; - lbl += b->b_iused; - } - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - RETURN_IF_ERROR(instr_sequence_use_label(seq, b->b_label.id)); - for (int i = 0; i < b->b_iused; i++) { - cfg_instr *instr = &b->b_instr[i]; - RETURN_IF_ERROR( - instr_sequence_addop(seq, instr->i_opcode, instr->i_oparg, instr->i_loc)); - - _PyCompile_ExceptHandlerInfo *hi = &seq->s_instrs[seq->s_used-1].i_except_handler_info; - if (instr->i_except != NULL) { - hi->h_offset = instr->i_except->b_offset; - hi->h_startdepth = instr->i_except->b_startdepth; - hi->h_preserve_lasti = instr->i_except->b_preserve_lasti; - } - else { - hi->h_offset = -1; - } - } - } - return SUCCESS; -} - - /* Access to compiler optimizations for unit tests. * * _PyCompile_CodeGen takes and AST, applies code-gen and @@ -7805,185 +7728,116 @@ cfg_to_instr_sequence(cfg_builder *g, instr_sequence *seq) * a jump target label marking the beginning of a basic block. */ -static int -instructions_to_instr_sequence(PyObject *instructions, instr_sequence *seq) -{ - assert(PyList_Check(instructions)); - Py_ssize_t num_insts = PyList_GET_SIZE(instructions); - bool *is_target = PyMem_Calloc(num_insts, sizeof(bool)); - if (is_target == NULL) { - return ERROR; - } - for (Py_ssize_t i = 0; i < num_insts; i++) { - PyObject *item = PyList_GET_ITEM(instructions, i); - if (!PyTuple_Check(item) || PyTuple_GET_SIZE(item) != 6) { - PyErr_SetString(PyExc_ValueError, "expected a 6-tuple"); +static PyObject * +cfg_to_instruction_sequence(cfg_builder *g) +{ + instr_sequence *seq = (instr_sequence *)_PyInstructionSequence_New(); + if (seq != NULL) { + if (_PyCfg_ToInstructionSequence(g, seq) < 0) { goto error; } - int opcode = PyLong_AsLong(PyTuple_GET_ITEM(item, 0)); - if (PyErr_Occurred()) { + if (_PyInstructionSequence_ApplyLabelMap(seq) < 0) { goto error; } - if (HAS_TARGET(opcode)) { - int oparg = PyLong_AsLong(PyTuple_GET_ITEM(item, 1)); - if (PyErr_Occurred()) { - goto error; - } - if (oparg < 0 || oparg >= num_insts) { - PyErr_SetString(PyExc_ValueError, "label out of range"); - goto error; - } - is_target[oparg] = true; - } } + return (PyObject*)seq; +error: + PyInstructionSequence_Fini(seq); + return NULL; +} - for (int i = 0; i < num_insts; i++) { - if (is_target[i]) { - if (instr_sequence_use_label(seq, i) < 0) { - goto error; - } - } - PyObject *item = PyList_GET_ITEM(instructions, i); - if (!PyTuple_Check(item) || PyTuple_GET_SIZE(item) != 6) { - PyErr_SetString(PyExc_ValueError, "expected a 6-tuple"); - goto error; - } - int opcode = PyLong_AsLong(PyTuple_GET_ITEM(item, 0)); - if (PyErr_Occurred()) { - goto error; - } - int oparg; - if (HAS_ARG(opcode)) { - oparg = PyLong_AsLong(PyTuple_GET_ITEM(item, 1)); - if (PyErr_Occurred()) { - goto error; - } - } - else { - oparg = 0; - } - location loc; - loc.lineno = PyLong_AsLong(PyTuple_GET_ITEM(item, 2)); - if (PyErr_Occurred()) { - goto error; - } - loc.end_lineno = PyLong_AsLong(PyTuple_GET_ITEM(item, 3)); - if (PyErr_Occurred()) { - goto error; - } - loc.col_offset = PyLong_AsLong(PyTuple_GET_ITEM(item, 4)); - if (PyErr_Occurred()) { - goto error; - } - loc.end_col_offset = PyLong_AsLong(PyTuple_GET_ITEM(item, 5)); - if (PyErr_Occurred()) { - goto error; +// C implementation of inspect.cleandoc() +// +// Difference from inspect.cleandoc(): +// - Do not remove leading and trailing blank lines to keep lineno. +PyObject * +_PyCompile_CleanDoc(PyObject *doc) +{ + doc = PyObject_CallMethod(doc, "expandtabs", NULL); + if (doc == NULL) { + return NULL; + } + + Py_ssize_t doc_size; + const char *doc_utf8 = PyUnicode_AsUTF8AndSize(doc, &doc_size); + if (doc_utf8 == NULL) { + Py_DECREF(doc); + return NULL; + } + const char *p = doc_utf8; + const char *pend = p + doc_size; + + // First pass: find minimum indentation of any non-blank lines + // after first line. + while (p < pend && *p++ != '\n') { + } + + Py_ssize_t margin = PY_SSIZE_T_MAX; + while (p < pend) { + const char *s = p; + while (*p == ' ') p++; + if (p < pend && *p != '\n') { + margin = Py_MIN(margin, p - s); } - if (instr_sequence_addop(seq, opcode, oparg, loc) < 0) { - goto error; + while (p < pend && *p++ != '\n') { } } - PyMem_Free(is_target); - return SUCCESS; -error: - PyMem_Free(is_target); - return ERROR; -} + if (margin == PY_SSIZE_T_MAX) { + margin = 0; + } -static int -instructions_to_cfg(PyObject *instructions, cfg_builder *g) -{ - instr_sequence seq; - memset(&seq, 0, sizeof(instr_sequence)); + // Second pass: write cleandoc into buff. - if (instructions_to_instr_sequence(instructions, &seq) < 0) { - goto error; + // copy first line without leading spaces. + p = doc_utf8; + while (*p == ' ') { + p++; } - if (instr_sequence_to_cfg(&seq, g) < 0) { - goto error; + if (p == doc_utf8 && margin == 0 ) { + // doc is already clean. + return doc; } - instr_sequence_fini(&seq); - return SUCCESS; -error: - instr_sequence_fini(&seq); - return ERROR; -} -static PyObject * -instr_sequence_to_instructions(instr_sequence *seq) -{ - PyObject *instructions = PyList_New(0); - if (instructions == NULL) { + char *buff = PyMem_Malloc(doc_size); + if (buff == NULL){ + Py_DECREF(doc); + PyErr_NoMemory(); return NULL; } - for (int i = 0; i < seq->s_used; i++) { - instruction *instr = &seq->s_instrs[i]; - location loc = instr->i_loc; - int arg = HAS_TARGET(instr->i_opcode) ? - seq->s_labelmap[instr->i_oparg] : instr->i_oparg; - - PyObject *inst_tuple = Py_BuildValue( - "(iiiiii)", instr->i_opcode, arg, - loc.lineno, loc.end_lineno, - loc.col_offset, loc.end_col_offset); - if (inst_tuple == NULL) { - goto error; - } - int res = PyList_Append(instructions, inst_tuple); - Py_DECREF(inst_tuple); - if (res != 0) { - goto error; + char *w = buff; + + while (p < pend) { + int ch = *w++ = *p++; + if (ch == '\n') { + break; } } - return instructions; -error: - Py_XDECREF(instructions); - return NULL; -} -static PyObject * -cfg_to_instructions(cfg_builder *g) -{ - PyObject *instructions = PyList_New(0); - if (instructions == NULL) { - return NULL; - } - int lbl = 0; - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - b->b_label = (jump_target_label){lbl}; - lbl += b->b_iused; - } - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - for (int i = 0; i < b->b_iused; i++) { - cfg_instr *instr = &b->b_instr[i]; - location loc = instr->i_loc; - int arg = HAS_TARGET(instr->i_opcode) ? - instr->i_target->b_label.id : instr->i_oparg; - - PyObject *inst_tuple = Py_BuildValue( - "(iiiiii)", instr->i_opcode, arg, - loc.lineno, loc.end_lineno, - loc.col_offset, loc.end_col_offset); - if (inst_tuple == NULL) { - goto error; + // copy subsequent lines without margin. + while (p < pend) { + for (Py_ssize_t i = 0; i < margin; i++, p++) { + if (*p != ' ') { + assert(*p == '\n' || *p == '\0'); + break; } - - if (PyList_Append(instructions, inst_tuple) != 0) { - Py_DECREF(inst_tuple); - goto error; + } + while (p < pend) { + int ch = *w++ = *p++; + if (ch == '\n') { + break; } - Py_DECREF(inst_tuple); } } - return instructions; -error: - Py_DECREF(instructions); - return NULL; + Py_DECREF(doc); + PyObject *res = PyUnicode_FromStringAndSize(buff, w - buff); + PyMem_Free(buff); + return res; } + PyObject * _PyCompile_CodeGen(PyObject *ast, PyObject *filename, PyCompilerFlags *pflags, int optimize, int compile_mode) @@ -8012,16 +7866,22 @@ _PyCompile_CodeGen(PyObject *ast, PyObject *filename, PyCompilerFlags *pflags, _PyArena_Free(arena); return NULL; } + c->c_save_nested_seqs = true; + + metadata = PyDict_New(); + if (metadata == NULL) { + return NULL; + } + if (compiler_enter_anonymous_scope(c, mod) < 0) { + return NULL; + } if (compiler_codegen(c, mod) < 0) { goto finally; } _PyCompile_CodeUnitMetadata *umd = &c->u->u_metadata; - metadata = PyDict_New(); - if (metadata == NULL) { - goto finally; - } + #define SET_MATADATA_ITEM(key, value) \ if (value != NULL) { \ if (PyDict_SetItemString(metadata, key, value) < 0) goto finally; \ @@ -8054,12 +7914,11 @@ _PyCompile_CodeGen(PyObject *ast, PyObject *filename, PyCompilerFlags *pflags, goto finally; } - PyObject *insts = instr_sequence_to_instructions(INSTR_SEQUENCE(c)); - if (insts == NULL) { - goto finally; + if (_PyInstructionSequence_ApplyLabelMap(INSTR_SEQUENCE(c)) < 0) { + return NULL; } - res = PyTuple_Pack(2, insts, metadata); - Py_DECREF(insts); + /* Allocate a copy of the instruction sequence on the heap */ + res = PyTuple_Pack(2, INSTR_SEQUENCE(c), metadata); finally: Py_XDECREF(metadata); @@ -8070,36 +7929,45 @@ finally: } PyObject * -_PyCompile_OptimizeCfg(PyObject *instructions, PyObject *consts, int nlocals) +_PyCompile_OptimizeCfg(PyObject *seq, PyObject *consts, int nlocals) { - PyObject *res = NULL; + if (!_PyInstructionSequence_Check(seq)) { + PyErr_SetString(PyExc_ValueError, "expected an instruction sequence"); + return NULL; + } PyObject *const_cache = PyDict_New(); if (const_cache == NULL) { return NULL; } - cfg_builder g; - if (instructions_to_cfg(instructions, &g) < 0) { + PyObject *res = NULL; + cfg_builder *g = instr_sequence_to_cfg((instr_sequence*)seq); + if (g == NULL) { goto error; } - int code_flags = 0, nparams = 0, firstlineno = 1; - if (_PyCfg_OptimizeCodeUnit(&g, consts, const_cache, code_flags, nlocals, + int nparams = 0, firstlineno = 1; + if (_PyCfg_OptimizeCodeUnit(g, consts, const_cache, nlocals, nparams, firstlineno) < 0) { goto error; } - res = cfg_to_instructions(&g); + res = cfg_to_instruction_sequence(g); error: Py_DECREF(const_cache); - _PyCfgBuilder_Fini(&g); + _PyCfgBuilder_Free(g); return res; } -int _PyCfg_JumpLabelsToTargets(basicblock *entryblock); +int _PyCfg_JumpLabelsToTargets(cfg_builder *g); PyCodeObject * _PyCompile_Assemble(_PyCompile_CodeUnitMetadata *umd, PyObject *filename, - PyObject *instructions) + PyObject *seq) { + if (!_PyInstructionSequence_Check(seq)) { + PyErr_SetString(PyExc_TypeError, "expected an instruction sequence"); + return NULL; + } + cfg_builder *g = NULL; PyCodeObject *co = NULL; instr_sequence optimized_instrs; memset(&optimized_instrs, 0, sizeof(instr_sequence)); @@ -8109,37 +7977,20 @@ _PyCompile_Assemble(_PyCompile_CodeUnitMetadata *umd, PyObject *filename, return NULL; } - cfg_builder g; - if (instructions_to_cfg(instructions, &g) < 0) { + g = instr_sequence_to_cfg((instr_sequence*)seq); + if (g == NULL) { goto error; } - if (_PyCfg_JumpLabelsToTargets(g.g_entryblock) < 0) { + if (_PyCfg_JumpLabelsToTargets(g) < 0) { goto error; } int code_flags = 0; - int nlocalsplus = prepare_localsplus(umd, &g, code_flags); - if (nlocalsplus < 0) { - goto error; - } - - int maxdepth = _PyCfg_Stackdepth(g.g_entryblock, code_flags); - if (maxdepth < 0) { - goto error; - } - - _PyCfg_ConvertPseudoOps(g.g_entryblock); - - /* Order of basic blocks must have been determined by now */ - - if (_PyCfg_ResolveJumps(&g) < 0) { - goto error; - } - - /* Can't modify the bytecode after computing jump offsets. */ - - if (cfg_to_instr_sequence(&g, &optimized_instrs) < 0) { + int stackdepth, nlocalsplus; + if (_PyCfg_OptimizedCfgToInstructionSequence(g, umd, code_flags, + &stackdepth, &nlocalsplus, + &optimized_instrs) < 0) { goto error; } @@ -8148,14 +7999,14 @@ _PyCompile_Assemble(_PyCompile_CodeUnitMetadata *umd, PyObject *filename, goto error; } co = _PyAssemble_MakeCodeObject(umd, const_cache, - consts, maxdepth, &optimized_instrs, + consts, stackdepth, &optimized_instrs, nlocalsplus, code_flags, filename); Py_DECREF(consts); error: Py_DECREF(const_cache); - _PyCfgBuilder_Fini(&g); - instr_sequence_fini(&optimized_instrs); + _PyCfgBuilder_Free(g); + PyInstructionSequence_Fini(&optimized_instrs); return co; } diff --git a/contrib/tools/python3/Python/condvar.h b/contrib/tools/python3/Python/condvar.h index 4ddc5311cf8..dcabed6d559 100644 --- a/contrib/tools/python3/Python/condvar.h +++ b/contrib/tools/python3/Python/condvar.h @@ -41,7 +41,8 @@ #define _CONDVAR_IMPL_H_ #include "Python.h" -#include "pycore_condvar.h" +#include "pycore_pythread.h" // _POSIX_THREADS + #ifdef _POSIX_THREADS /* @@ -259,13 +260,13 @@ PyMUTEX_UNLOCK(PyMUTEX_T *cs) return 0; } - Py_LOCAL_INLINE(int) PyCOND_INIT(PyCOND_T *cv) { InitializeConditionVariable(cv); return 0; } + Py_LOCAL_INLINE(int) PyCOND_FINI(PyCOND_T *cv) { @@ -278,27 +279,32 @@ PyCOND_WAIT(PyCOND_T *cv, PyMUTEX_T *cs) return SleepConditionVariableSRW(cv, cs, INFINITE, 0) ? 0 : -1; } -/* This implementation makes no distinction about timeouts. Signal - * 2 to indicate that we don't know. - */ +/* return 0 for success, 1 on timeout, -1 on error */ Py_LOCAL_INLINE(int) PyCOND_TIMEDWAIT(PyCOND_T *cv, PyMUTEX_T *cs, long long us) { - return SleepConditionVariableSRW(cv, cs, (DWORD)(us/1000), 0) ? 2 : -1; + BOOL success = SleepConditionVariableSRW(cv, cs, (DWORD)(us/1000), 0); + if (!success) { + if (GetLastError() == ERROR_TIMEOUT) { + return 1; + } + return -1; + } + return 0; } Py_LOCAL_INLINE(int) PyCOND_SIGNAL(PyCOND_T *cv) { - WakeConditionVariable(cv); - return 0; + WakeConditionVariable(cv); + return 0; } Py_LOCAL_INLINE(int) PyCOND_BROADCAST(PyCOND_T *cv) { - WakeAllConditionVariable(cv); - return 0; + WakeAllConditionVariable(cv); + return 0; } diff --git a/contrib/tools/python3/Python/config_common.h b/contrib/tools/python3/Python/config_common.h new file mode 100644 index 00000000000..e749bd4bf0d --- /dev/null +++ b/contrib/tools/python3/Python/config_common.h @@ -0,0 +1,36 @@ + +static inline int +_config_dict_get(PyObject *dict, const char *name, PyObject **p_item) +{ + PyObject *item; + if (PyDict_GetItemStringRef(dict, name, &item) < 0) { + return -1; + } + if (item == NULL) { + // We do not set an exception. + return -1; + } + *p_item = item; + return 0; +} + + +static PyObject* +config_dict_get(PyObject *dict, const char *name) +{ + PyObject *item; + if (_config_dict_get(dict, name, &item) < 0) { + if (!PyErr_Occurred()) { + PyErr_Format(PyExc_ValueError, "missing config key: %s", name); + } + return NULL; + } + return item; +} + + +static void +config_dict_invalid_type(const char *name) +{ + PyErr_Format(PyExc_TypeError, "invalid config type: %s", name); +} diff --git a/contrib/tools/python3/Python/context.c b/contrib/tools/python3/Python/context.c index e5899219daa..c9675f44772 100644 --- a/contrib/tools/python3/Python/context.c +++ b/contrib/tools/python3/Python/context.c @@ -7,7 +7,7 @@ #include "pycore_object.h" #include "pycore_pyerrors.h" #include "pycore_pystate.h" // _PyThreadState_GET() -#include "structmember.h" // PyMemberDef + #include "clinic/context.c.h" @@ -64,12 +64,12 @@ static int contextvar_del(PyContextVar *var); -#if PyContext_MAXFREELIST > 0 -static struct _Py_context_state * -get_context_state(void) +#ifdef WITH_FREELISTS +static struct _Py_context_freelist * +get_context_freelist(void) { - PyInterpreterState *interp = _PyInterpreterState_GET(); - return &interp->context; + struct _Py_object_freelists *freelists = _Py_object_freelists_GET(); + return &freelists->contexts; } #endif @@ -203,6 +203,7 @@ PyContextVar_Get(PyObject *ovar, PyObject *def, PyObject **val) goto not_found; } +#ifndef Py_GIL_DISABLED if (var->var_cached != NULL && var->var_cached_tsid == ts->id && var->var_cached_tsver == ts->context_ver) @@ -210,6 +211,7 @@ PyContextVar_Get(PyObject *ovar, PyObject *def, PyObject **val) *val = var->var_cached; goto found; } +#endif assert(PyContext_CheckExact(ts->context)); PyHamtObject *vars = ((PyContext *)ts->context)->ctx_vars; @@ -221,9 +223,11 @@ PyContextVar_Get(PyObject *ovar, PyObject *def, PyObject **val) } if (res == 1) { assert(found != NULL); +#ifndef Py_GIL_DISABLED var->var_cached = found; /* borrow */ var->var_cached_tsid = ts->id; var->var_cached_tsver = ts->context_ver; +#endif *val = found; goto found; @@ -340,16 +344,12 @@ static inline PyContext * _context_alloc(void) { PyContext *ctx; -#if PyContext_MAXFREELIST > 0 - struct _Py_context_state *state = get_context_state(); -#ifdef Py_DEBUG - // _context_alloc() must not be called after _PyContext_Fini() - assert(state->numfree != -1); -#endif - if (state->numfree) { - state->numfree--; - ctx = state->freelist; - state->freelist = (PyContext *)ctx->ctx_weakreflist; +#ifdef WITH_FREELISTS + struct _Py_context_freelist *context_freelist = get_context_freelist(); + if (context_freelist->numfree > 0) { + context_freelist->numfree--; + ctx = context_freelist->items; + context_freelist->items = (PyContext *)ctx->ctx_weakreflist; OBJECT_STAT_INC(from_freelist); ctx->ctx_weakreflist = NULL; _Py_NewReference((PyObject *)ctx); @@ -471,16 +471,12 @@ context_tp_dealloc(PyContext *self) } (void)context_tp_clear(self); -#if PyContext_MAXFREELIST > 0 - struct _Py_context_state *state = get_context_state(); -#ifdef Py_DEBUG - // _context_alloc() must not be called after _PyContext_Fini() - assert(state->numfree != -1); -#endif - if (state->numfree < PyContext_MAXFREELIST) { - state->numfree++; - self->ctx_weakreflist = (PyObject *)state->freelist; - state->freelist = self; +#ifdef WITH_FREELISTS + struct _Py_context_freelist *context_freelist = get_context_freelist(); + if (context_freelist->numfree >= 0 && context_freelist->numfree < PyContext_MAXFREELIST) { + context_freelist->numfree++; + self->ctx_weakreflist = (PyObject *)context_freelist->items; + context_freelist->items = self; OBJECT_STAT_INC(to_freelist); } else @@ -731,8 +727,10 @@ PyTypeObject PyContext_Type = { static int contextvar_set(PyContextVar *var, PyObject *val) { +#ifndef Py_GIL_DISABLED var->var_cached = NULL; PyThreadState *ts = _PyThreadState_GET(); +#endif PyContext *ctx = context_get(); if (ctx == NULL) { @@ -747,16 +745,20 @@ contextvar_set(PyContextVar *var, PyObject *val) Py_SETREF(ctx->ctx_vars, new_vars); +#ifndef Py_GIL_DISABLED var->var_cached = val; /* borrow */ var->var_cached_tsid = ts->id; var->var_cached_tsver = ts->context_ver; +#endif return 0; } static int contextvar_del(PyContextVar *var) { +#ifndef Py_GIL_DISABLED var->var_cached = NULL; +#endif PyContext *ctx = context_get(); if (ctx == NULL) { @@ -824,9 +826,11 @@ contextvar_new(PyObject *name, PyObject *def) var->var_name = Py_NewRef(name); var->var_default = Py_XNewRef(def); +#ifndef Py_GIL_DISABLED var->var_cached = NULL; var->var_cached_tsid = 0; var->var_cached_tsver = 0; +#endif var->var_hash = contextvar_generate_hash(var, name); if (var->var_hash == -1) { @@ -870,9 +874,11 @@ contextvar_tp_clear(PyContextVar *self) { Py_CLEAR(self->var_name); Py_CLEAR(self->var_default); +#ifndef Py_GIL_DISABLED self->var_cached = NULL; self->var_cached_tsid = 0; self->var_cached_tsver = 0; +#endif return 0; } @@ -1042,7 +1048,7 @@ _contextvars_ContextVar_reset(PyContextVar *self, PyObject *token) static PyMemberDef PyContextVar_members[] = { - {"name", T_OBJECT, offsetof(PyContextVar, var_name), READONLY}, + {"name", _Py_T_OBJECT, offsetof(PyContextVar, var_name), Py_READONLY}, {NULL} }; @@ -1267,7 +1273,7 @@ PyTypeObject _PyContextTokenMissing_Type = { static PyObject * get_token_missing(void) { - return Py_NewRef(&_Py_SINGLETON(context_token_missing)); + return (PyObject *)&_Py_SINGLETON(context_token_missing); } @@ -1275,27 +1281,19 @@ get_token_missing(void) void -_PyContext_ClearFreeList(PyInterpreterState *interp) +_PyContext_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization) { -#if PyContext_MAXFREELIST > 0 - struct _Py_context_state *state = &interp->context; - for (; state->numfree; state->numfree--) { - PyContext *ctx = state->freelist; - state->freelist = (PyContext *)ctx->ctx_weakreflist; +#ifdef WITH_FREELISTS + struct _Py_context_freelist *state = &freelists->contexts; + for (; state->numfree > 0; state->numfree--) { + PyContext *ctx = state->items; + state->items = (PyContext *)ctx->ctx_weakreflist; ctx->ctx_weakreflist = NULL; PyObject_GC_Del(ctx); } -#endif -} - - -void -_PyContext_Fini(PyInterpreterState *interp) -{ - _PyContext_ClearFreeList(interp); -#if defined(Py_DEBUG) && PyContext_MAXFREELIST > 0 - struct _Py_context_state *state = &interp->context; - state->numfree = -1; + if (is_finalization) { + state->numfree = -1; + } #endif } diff --git a/contrib/tools/python3/Python/critical_section.c b/contrib/tools/python3/Python/critical_section.c new file mode 100644 index 00000000000..62ed25523fd --- /dev/null +++ b/contrib/tools/python3/Python/critical_section.c @@ -0,0 +1,148 @@ +#include "Python.h" + +#include "pycore_lock.h" +#include "pycore_critical_section.h" + +#ifdef Py_GIL_DISABLED +static_assert(_Alignof(PyCriticalSection) >= 4, + "critical section must be aligned to at least 4 bytes"); +#endif + +void +_PyCriticalSection_BeginSlow(PyCriticalSection *c, PyMutex *m) +{ +#ifdef Py_GIL_DISABLED + PyThreadState *tstate = _PyThreadState_GET(); + c->_cs_mutex = NULL; + c->_cs_prev = (uintptr_t)tstate->critical_section; + tstate->critical_section = (uintptr_t)c; + + PyMutex_Lock(m); + c->_cs_mutex = m; +#endif +} + +void +_PyCriticalSection2_BeginSlow(PyCriticalSection2 *c, PyMutex *m1, PyMutex *m2, + int is_m1_locked) +{ +#ifdef Py_GIL_DISABLED + PyThreadState *tstate = _PyThreadState_GET(); + c->_cs_base._cs_mutex = NULL; + c->_cs_mutex2 = NULL; + c->_cs_base._cs_prev = tstate->critical_section; + tstate->critical_section = (uintptr_t)c | _Py_CRITICAL_SECTION_TWO_MUTEXES; + + if (!is_m1_locked) { + PyMutex_Lock(m1); + } + PyMutex_Lock(m2); + c->_cs_base._cs_mutex = m1; + c->_cs_mutex2 = m2; +#endif +} + +#ifdef Py_GIL_DISABLED +static PyCriticalSection * +untag_critical_section(uintptr_t tag) +{ + return (PyCriticalSection *)(tag & ~_Py_CRITICAL_SECTION_MASK); +} +#endif + +// Release all locks held by critical sections. This is called by +// _PyThreadState_Detach. +void +_PyCriticalSection_SuspendAll(PyThreadState *tstate) +{ +#ifdef Py_GIL_DISABLED + uintptr_t *tagptr = &tstate->critical_section; + while (_PyCriticalSection_IsActive(*tagptr)) { + PyCriticalSection *c = untag_critical_section(*tagptr); + + if (c->_cs_mutex) { + PyMutex_Unlock(c->_cs_mutex); + if ((*tagptr & _Py_CRITICAL_SECTION_TWO_MUTEXES)) { + PyCriticalSection2 *c2 = (PyCriticalSection2 *)c; + if (c2->_cs_mutex2) { + PyMutex_Unlock(c2->_cs_mutex2); + } + } + } + + *tagptr |= _Py_CRITICAL_SECTION_INACTIVE; + tagptr = &c->_cs_prev; + } +#endif +} + +void +_PyCriticalSection_Resume(PyThreadState *tstate) +{ +#ifdef Py_GIL_DISABLED + uintptr_t p = tstate->critical_section; + PyCriticalSection *c = untag_critical_section(p); + assert(!_PyCriticalSection_IsActive(p)); + + PyMutex *m1 = c->_cs_mutex; + c->_cs_mutex = NULL; + + PyMutex *m2 = NULL; + PyCriticalSection2 *c2 = NULL; + if ((p & _Py_CRITICAL_SECTION_TWO_MUTEXES)) { + c2 = (PyCriticalSection2 *)c; + m2 = c2->_cs_mutex2; + c2->_cs_mutex2 = NULL; + } + + if (m1) { + PyMutex_Lock(m1); + } + if (m2) { + PyMutex_Lock(m2); + } + + c->_cs_mutex = m1; + if (m2) { + c2->_cs_mutex2 = m2; + } + + tstate->critical_section &= ~_Py_CRITICAL_SECTION_INACTIVE; +#endif +} + +#undef PyCriticalSection_Begin +void +PyCriticalSection_Begin(PyCriticalSection *c, PyObject *op) +{ +#ifdef Py_GIL_DISABLED + _PyCriticalSection_Begin(c, op); +#endif +} + +#undef PyCriticalSection_End +void +PyCriticalSection_End(PyCriticalSection *c) +{ +#ifdef Py_GIL_DISABLED + _PyCriticalSection_End(c); +#endif +} + +#undef PyCriticalSection2_Begin +void +PyCriticalSection2_Begin(PyCriticalSection2 *c, PyObject *a, PyObject *b) +{ +#ifdef Py_GIL_DISABLED + _PyCriticalSection2_Begin(c, a, b); +#endif +} + +#undef PyCriticalSection2_End +void +PyCriticalSection2_End(PyCriticalSection2 *c) +{ +#ifdef Py_GIL_DISABLED + _PyCriticalSection2_End(c); +#endif +} diff --git a/contrib/tools/python3/Python/crossinterp.c b/contrib/tools/python3/Python/crossinterp.c new file mode 100644 index 00000000000..2f6324d300d --- /dev/null +++ b/contrib/tools/python3/Python/crossinterp.c @@ -0,0 +1,1922 @@ + +/* API for managing interactions between isolated interpreters */ + +#include "Python.h" +#include "pycore_ceval.h" // _Py_simple_func +#include "pycore_crossinterp.h" // struct _xid +#include "pycore_initconfig.h" // _PyStatus_OK() +#include "pycore_namespace.h" //_PyNamespace_New() +#include "pycore_pyerrors.h" // _PyErr_Clear() +#include "pycore_weakref.h" // _PyWeakref_GET_REF() + + +/**************/ +/* exceptions */ +/**************/ + +static int init_exceptions(PyInterpreterState *); +static void fini_exceptions(PyInterpreterState *); +static int _init_not_shareable_error_type(PyInterpreterState *); +static void _fini_not_shareable_error_type(PyInterpreterState *); +static PyObject * _get_not_shareable_error_type(PyInterpreterState *); +#include "crossinterp_exceptions.h" + + +/***************************/ +/* cross-interpreter calls */ +/***************************/ + +int +_Py_CallInInterpreter(PyInterpreterState *interp, + _Py_simple_func func, void *arg) +{ + if (interp == PyInterpreterState_Get()) { + return func(arg); + } + // XXX Emit a warning if this fails? + _PyEval_AddPendingCall(interp, (_Py_pending_call_func)func, arg, 0); + return 0; +} + +int +_Py_CallInInterpreterAndRawFree(PyInterpreterState *interp, + _Py_simple_func func, void *arg) +{ + if (interp == PyInterpreterState_Get()) { + int res = func(arg); + PyMem_RawFree(arg); + return res; + } + // XXX Emit a warning if this fails? + _PyEval_AddPendingCall(interp, func, arg, _Py_PENDING_RAWFREE); + return 0; +} + + +/**************************/ +/* cross-interpreter data */ +/**************************/ + +/* registry of {type -> crossinterpdatafunc} */ + +/* For now we use a global registry of shareable classes. An + alternative would be to add a tp_* slot for a class's + crossinterpdatafunc. It would be simpler and more efficient. */ + +static void xid_lookup_init(PyInterpreterState *); +static void xid_lookup_fini(PyInterpreterState *); +static crossinterpdatafunc lookup_getdata(PyInterpreterState *, PyObject *); +#include "crossinterp_data_lookup.h" + + +/* lifecycle */ + +_PyCrossInterpreterData * +_PyCrossInterpreterData_New(void) +{ + _PyCrossInterpreterData *xid = PyMem_RawMalloc( + sizeof(_PyCrossInterpreterData)); + if (xid == NULL) { + PyErr_NoMemory(); + } + return xid; +} + +void +_PyCrossInterpreterData_Free(_PyCrossInterpreterData *xid) +{ + PyInterpreterState *interp = PyInterpreterState_Get(); + _PyCrossInterpreterData_Clear(interp, xid); + PyMem_RawFree(xid); +} + + +/* defining cross-interpreter data */ + +static inline void +_xidata_init(_PyCrossInterpreterData *data) +{ + // If the value is being reused + // then _xidata_clear() should have been called already. + assert(data->data == NULL); + assert(data->obj == NULL); + *data = (_PyCrossInterpreterData){0}; + _PyCrossInterpreterData_INTERPID(data) = -1; +} + +static inline void +_xidata_clear(_PyCrossInterpreterData *data) +{ + // _PyCrossInterpreterData only has two members that need to be + // cleaned up, if set: "data" must be freed and "obj" must be decref'ed. + // In both cases the original (owning) interpreter must be used, + // which is the caller's responsibility to ensure. + if (data->data != NULL) { + if (data->free != NULL) { + data->free(data->data); + } + data->data = NULL; + } + Py_CLEAR(data->obj); +} + +void +_PyCrossInterpreterData_Init(_PyCrossInterpreterData *data, + PyInterpreterState *interp, + void *shared, PyObject *obj, + xid_newobjectfunc new_object) +{ + assert(data != NULL); + assert(new_object != NULL); + _xidata_init(data); + data->data = shared; + if (obj != NULL) { + assert(interp != NULL); + // released in _PyCrossInterpreterData_Clear() + data->obj = Py_NewRef(obj); + } + // Ideally every object would know its owning interpreter. + // Until then, we have to rely on the caller to identify it + // (but we don't need it in all cases). + _PyCrossInterpreterData_INTERPID(data) = (interp != NULL) + ? PyInterpreterState_GetID(interp) + : -1; + data->new_object = new_object; +} + +int +_PyCrossInterpreterData_InitWithSize(_PyCrossInterpreterData *data, + PyInterpreterState *interp, + const size_t size, PyObject *obj, + xid_newobjectfunc new_object) +{ + assert(size > 0); + // For now we always free the shared data in the same interpreter + // where it was allocated, so the interpreter is required. + assert(interp != NULL); + _PyCrossInterpreterData_Init(data, interp, NULL, obj, new_object); + data->data = PyMem_RawMalloc(size); + if (data->data == NULL) { + return -1; + } + data->free = PyMem_RawFree; + return 0; +} + +void +_PyCrossInterpreterData_Clear(PyInterpreterState *interp, + _PyCrossInterpreterData *data) +{ + assert(data != NULL); + // This must be called in the owning interpreter. + assert(interp == NULL + || _PyCrossInterpreterData_INTERPID(data) == -1 + || _PyCrossInterpreterData_INTERPID(data) == PyInterpreterState_GetID(interp)); + _xidata_clear(data); +} + + +/* using cross-interpreter data */ + +static int +_check_xidata(PyThreadState *tstate, _PyCrossInterpreterData *data) +{ + // data->data can be anything, including NULL, so we don't check it. + + // data->obj may be NULL, so we don't check it. + + if (_PyCrossInterpreterData_INTERPID(data) < 0) { + PyErr_SetString(PyExc_SystemError, "missing interp"); + return -1; + } + + if (data->new_object == NULL) { + PyErr_SetString(PyExc_SystemError, "missing new_object func"); + return -1; + } + + // data->free may be NULL, so we don't check it. + + return 0; +} + +static inline void +_set_xid_lookup_failure(PyInterpreterState *interp, + PyObject *obj, const char *msg) +{ + PyObject *exctype = _get_not_shareable_error_type(interp); + assert(exctype != NULL); + if (msg != NULL) { + assert(obj == NULL); + PyErr_SetString(exctype, msg); + } + else if (obj == NULL) { + PyErr_SetString(exctype, + "object does not support cross-interpreter data"); + } + else { + PyErr_Format(exctype, + "%S does not support cross-interpreter data", obj); + } +} + +int +_PyObject_CheckCrossInterpreterData(PyObject *obj) +{ + PyInterpreterState *interp = PyInterpreterState_Get(); + crossinterpdatafunc getdata = lookup_getdata(interp, obj); + if (getdata == NULL) { + if (!PyErr_Occurred()) { + _set_xid_lookup_failure(interp, obj, NULL); + } + return -1; + } + return 0; +} + +int +_PyObject_GetCrossInterpreterData(PyObject *obj, _PyCrossInterpreterData *data) +{ + PyThreadState *tstate = PyThreadState_Get(); + PyInterpreterState *interp = tstate->interp; + + // Reset data before re-populating. + *data = (_PyCrossInterpreterData){0}; + _PyCrossInterpreterData_INTERPID(data) = -1; + + // Call the "getdata" func for the object. + Py_INCREF(obj); + crossinterpdatafunc getdata = lookup_getdata(interp, obj); + if (getdata == NULL) { + Py_DECREF(obj); + if (!PyErr_Occurred()) { + _set_xid_lookup_failure(interp, obj, NULL); + } + return -1; + } + int res = getdata(tstate, obj, data); + Py_DECREF(obj); + if (res != 0) { + return -1; + } + + // Fill in the blanks and validate the result. + _PyCrossInterpreterData_INTERPID(data) = PyInterpreterState_GetID(interp); + if (_check_xidata(tstate, data) != 0) { + (void)_PyCrossInterpreterData_Release(data); + return -1; + } + + return 0; +} + +PyObject * +_PyCrossInterpreterData_NewObject(_PyCrossInterpreterData *data) +{ + return data->new_object(data); +} + +static int +_call_clear_xidata(void *data) +{ + _xidata_clear((_PyCrossInterpreterData *)data); + return 0; +} + +static int +_xidata_release(_PyCrossInterpreterData *data, int rawfree) +{ + if ((data->data == NULL || data->free == NULL) && data->obj == NULL) { + // Nothing to release! + if (rawfree) { + PyMem_RawFree(data); + } + else { + data->data = NULL; + } + return 0; + } + + // Switch to the original interpreter. + PyInterpreterState *interp = _PyInterpreterState_LookUpID( + _PyCrossInterpreterData_INTERPID(data)); + if (interp == NULL) { + // The interpreter was already destroyed. + // This function shouldn't have been called. + // XXX Someone leaked some memory... + assert(PyErr_Occurred()); + if (rawfree) { + PyMem_RawFree(data); + } + return -1; + } + + // "Release" the data and/or the object. + if (rawfree) { + return _Py_CallInInterpreterAndRawFree(interp, _call_clear_xidata, data); + } + else { + return _Py_CallInInterpreter(interp, _call_clear_xidata, data); + } +} + +int +_PyCrossInterpreterData_Release(_PyCrossInterpreterData *data) +{ + return _xidata_release(data, 0); +} + +int +_PyCrossInterpreterData_ReleaseAndRawFree(_PyCrossInterpreterData *data) +{ + return _xidata_release(data, 1); +} + + +/*************************/ +/* convenience utilities */ +/*************************/ + +static const char * +_copy_string_obj_raw(PyObject *strobj, Py_ssize_t *p_size) +{ + Py_ssize_t size = -1; + const char *str = PyUnicode_AsUTF8AndSize(strobj, &size); + if (str == NULL) { + return NULL; + } + + if (size != (Py_ssize_t)strlen(str)) { + PyErr_SetString(PyExc_ValueError, "found embedded NULL character"); + return NULL; + } + + char *copied = PyMem_RawMalloc(size+1); + if (copied == NULL) { + PyErr_NoMemory(); + return NULL; + } + strcpy(copied, str); + if (p_size != NULL) { + *p_size = size; + } + return copied; +} + + +static int +_convert_exc_to_TracebackException(PyObject *exc, PyObject **p_tbexc) +{ + PyObject *args = NULL; + PyObject *kwargs = NULL; + PyObject *create = NULL; + + // This is inspired by _PyErr_Display(). + PyObject *tbmod = PyImport_ImportModule("traceback"); + if (tbmod == NULL) { + return -1; + } + PyObject *tbexc_type = PyObject_GetAttrString(tbmod, "TracebackException"); + Py_DECREF(tbmod); + if (tbexc_type == NULL) { + return -1; + } + create = PyObject_GetAttrString(tbexc_type, "from_exception"); + Py_DECREF(tbexc_type); + if (create == NULL) { + return -1; + } + + args = PyTuple_Pack(1, exc); + if (args == NULL) { + goto error; + } + + kwargs = PyDict_New(); + if (kwargs == NULL) { + goto error; + } + if (PyDict_SetItemString(kwargs, "save_exc_type", Py_False) < 0) { + goto error; + } + if (PyDict_SetItemString(kwargs, "lookup_lines", Py_False) < 0) { + goto error; + } + + PyObject *tbexc = PyObject_Call(create, args, kwargs); + Py_DECREF(args); + Py_DECREF(kwargs); + Py_DECREF(create); + if (tbexc == NULL) { + goto error; + } + + *p_tbexc = tbexc; + return 0; + +error: + Py_XDECREF(args); + Py_XDECREF(kwargs); + Py_XDECREF(create); + return -1; +} + +// We accommodate backports here. +#ifndef _Py_EMPTY_STR +# define _Py_EMPTY_STR &_Py_STR(empty) +#endif + +static const char * +_format_TracebackException(PyObject *tbexc) +{ + PyObject *lines = PyObject_CallMethod(tbexc, "format", NULL); + if (lines == NULL) { + return NULL; + } + assert(_Py_EMPTY_STR != NULL); + PyObject *formatted_obj = PyUnicode_Join(_Py_EMPTY_STR, lines); + Py_DECREF(lines); + if (formatted_obj == NULL) { + return NULL; + } + + Py_ssize_t size = -1; + const char *formatted = _copy_string_obj_raw(formatted_obj, &size); + Py_DECREF(formatted_obj); + // We remove trailing the newline added by TracebackException.format(). + assert(formatted[size-1] == '\n'); + ((char *)formatted)[size-1] = '\0'; + return formatted; +} + + +static int +_release_xid_data(_PyCrossInterpreterData *data, int rawfree) +{ + PyObject *exc = PyErr_GetRaisedException(); + int res = rawfree + ? _PyCrossInterpreterData_ReleaseAndRawFree(data) + : _PyCrossInterpreterData_Release(data); + if (res < 0) { + /* The owning interpreter is already destroyed. */ + _PyCrossInterpreterData_Clear(NULL, data); + // XXX Emit a warning? + PyErr_Clear(); + } + PyErr_SetRaisedException(exc); + return res; +} + + +/***********************/ +/* exception snapshots */ +/***********************/ + +static int +_excinfo_init_type_from_exception(struct _excinfo_type *info, PyObject *exc) +{ + /* Note that this copies directly rather than into an intermediate + struct and does not clear on error. If we need that then we + should have a separate function to wrap this one + and do all that there. */ + PyObject *strobj = NULL; + + PyTypeObject *type = Py_TYPE(exc); + if (type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { + assert(_Py_IsImmortal((PyObject *)type)); + info->builtin = type; + } + else { + // Only builtin types are preserved. + info->builtin = NULL; + } + + // __name__ + strobj = PyType_GetName(type); + if (strobj == NULL) { + return -1; + } + info->name = _copy_string_obj_raw(strobj, NULL); + Py_DECREF(strobj); + if (info->name == NULL) { + return -1; + } + + // __qualname__ + strobj = PyType_GetQualName(type); + if (strobj == NULL) { + return -1; + } + info->qualname = _copy_string_obj_raw(strobj, NULL); + Py_DECREF(strobj); + if (info->qualname == NULL) { + return -1; + } + + // __module__ + strobj = PyType_GetModuleName(type); + if (strobj == NULL) { + return -1; + } + info->module = _copy_string_obj_raw(strobj, NULL); + Py_DECREF(strobj); + if (info->module == NULL) { + return -1; + } + + return 0; +} + +static int +_excinfo_init_type_from_object(struct _excinfo_type *info, PyObject *exctype) +{ + PyObject *strobj = NULL; + + // __name__ + strobj = PyObject_GetAttrString(exctype, "__name__"); + if (strobj == NULL) { + return -1; + } + info->name = _copy_string_obj_raw(strobj, NULL); + Py_DECREF(strobj); + if (info->name == NULL) { + return -1; + } + + // __qualname__ + strobj = PyObject_GetAttrString(exctype, "__qualname__"); + if (strobj == NULL) { + return -1; + } + info->qualname = _copy_string_obj_raw(strobj, NULL); + Py_DECREF(strobj); + if (info->qualname == NULL) { + return -1; + } + + // __module__ + strobj = PyObject_GetAttrString(exctype, "__module__"); + if (strobj == NULL) { + return -1; + } + info->module = _copy_string_obj_raw(strobj, NULL); + Py_DECREF(strobj); + if (info->module == NULL) { + return -1; + } + + return 0; +} + +static void +_excinfo_clear_type(struct _excinfo_type *info) +{ + if (info->builtin != NULL) { + assert(info->builtin->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN); + assert(_Py_IsImmortal((PyObject *)info->builtin)); + } + if (info->name != NULL) { + PyMem_RawFree((void *)info->name); + } + if (info->qualname != NULL) { + PyMem_RawFree((void *)info->qualname); + } + if (info->module != NULL) { + PyMem_RawFree((void *)info->module); + } + *info = (struct _excinfo_type){NULL}; +} + +static void +_excinfo_normalize_type(struct _excinfo_type *info, + const char **p_module, const char **p_qualname) +{ + if (info->name == NULL) { + assert(info->builtin == NULL); + assert(info->qualname == NULL); + assert(info->module == NULL); + // This is inspired by TracebackException.format_exception_only(). + *p_module = NULL; + *p_qualname = NULL; + return; + } + + const char *module = info->module; + const char *qualname = info->qualname; + if (qualname == NULL) { + qualname = info->name; + } + assert(module != NULL); + if (strcmp(module, "builtins") == 0) { + module = NULL; + } + else if (strcmp(module, "__main__") == 0) { + module = NULL; + } + *p_qualname = qualname; + *p_module = module; +} + +static void +_PyXI_excinfo_Clear(_PyXI_excinfo *info) +{ + _excinfo_clear_type(&info->type); + if (info->msg != NULL) { + PyMem_RawFree((void *)info->msg); + } + if (info->errdisplay != NULL) { + PyMem_RawFree((void *)info->errdisplay); + } + *info = (_PyXI_excinfo){{NULL}}; +} + +PyObject * +_PyXI_excinfo_format(_PyXI_excinfo *info) +{ + const char *module, *qualname; + _excinfo_normalize_type(&info->type, &module, &qualname); + if (qualname != NULL) { + if (module != NULL) { + if (info->msg != NULL) { + return PyUnicode_FromFormat("%s.%s: %s", + module, qualname, info->msg); + } + else { + return PyUnicode_FromFormat("%s.%s", module, qualname); + } + } + else { + if (info->msg != NULL) { + return PyUnicode_FromFormat("%s: %s", qualname, info->msg); + } + else { + return PyUnicode_FromString(qualname); + } + } + } + else if (info->msg != NULL) { + return PyUnicode_FromString(info->msg); + } + else { + Py_RETURN_NONE; + } +} + +static const char * +_PyXI_excinfo_InitFromException(_PyXI_excinfo *info, PyObject *exc) +{ + assert(exc != NULL); + + if (PyErr_GivenExceptionMatches(exc, PyExc_MemoryError)) { + _PyXI_excinfo_Clear(info); + return NULL; + } + const char *failure = NULL; + + if (_excinfo_init_type_from_exception(&info->type, exc) < 0) { + failure = "error while initializing exception type snapshot"; + goto error; + } + + // Extract the exception message. + PyObject *msgobj = PyObject_Str(exc); + if (msgobj == NULL) { + failure = "error while formatting exception"; + goto error; + } + info->msg = _copy_string_obj_raw(msgobj, NULL); + Py_DECREF(msgobj); + if (info->msg == NULL) { + failure = "error while copying exception message"; + goto error; + } + + // Pickle a traceback.TracebackException. + PyObject *tbexc = NULL; + if (_convert_exc_to_TracebackException(exc, &tbexc) < 0) { +#ifdef Py_DEBUG + PyErr_FormatUnraisable("Exception ignored while creating TracebackException"); +#endif + PyErr_Clear(); + } + else { + info->errdisplay = _format_TracebackException(tbexc); + Py_DECREF(tbexc); + if (info->errdisplay == NULL) { +#ifdef Py_DEBUG + PyErr_FormatUnraisable("Exception ignored while formatting TracebackException"); +#endif + PyErr_Clear(); + } + } + + return NULL; + +error: + assert(failure != NULL); + _PyXI_excinfo_Clear(info); + return failure; +} + +static const char * +_PyXI_excinfo_InitFromObject(_PyXI_excinfo *info, PyObject *obj) +{ + const char *failure = NULL; + + PyObject *exctype = PyObject_GetAttrString(obj, "type"); + if (exctype == NULL) { + failure = "exception snapshot missing 'type' attribute"; + goto error; + } + int res = _excinfo_init_type_from_object(&info->type, exctype); + Py_DECREF(exctype); + if (res < 0) { + failure = "error while initializing exception type snapshot"; + goto error; + } + + // Extract the exception message. + PyObject *msgobj = PyObject_GetAttrString(obj, "msg"); + if (msgobj == NULL) { + failure = "exception snapshot missing 'msg' attribute"; + goto error; + } + info->msg = _copy_string_obj_raw(msgobj, NULL); + Py_DECREF(msgobj); + if (info->msg == NULL) { + failure = "error while copying exception message"; + goto error; + } + + // Pickle a traceback.TracebackException. + PyObject *errdisplay = PyObject_GetAttrString(obj, "errdisplay"); + if (errdisplay == NULL) { + failure = "exception snapshot missing 'errdisplay' attribute"; + goto error; + } + info->errdisplay = _copy_string_obj_raw(errdisplay, NULL); + Py_DECREF(errdisplay); + if (info->errdisplay == NULL) { + failure = "error while copying exception error display"; + goto error; + } + + return NULL; + +error: + assert(failure != NULL); + _PyXI_excinfo_Clear(info); + return failure; +} + +static void +_PyXI_excinfo_Apply(_PyXI_excinfo *info, PyObject *exctype) +{ + PyObject *tbexc = NULL; + if (info->errdisplay != NULL) { + tbexc = PyUnicode_FromString(info->errdisplay); + if (tbexc == NULL) { + PyErr_Clear(); + } + } + + PyObject *formatted = _PyXI_excinfo_format(info); + PyErr_SetObject(exctype, formatted); + Py_DECREF(formatted); + + if (tbexc != NULL) { + PyObject *exc = PyErr_GetRaisedException(); + if (PyObject_SetAttrString(exc, "_errdisplay", tbexc) < 0) { +#ifdef Py_DEBUG + PyErr_FormatUnraisable("Exception ignored when setting _errdisplay"); +#endif + PyErr_Clear(); + } + Py_DECREF(tbexc); + PyErr_SetRaisedException(exc); + } +} + +static PyObject * +_PyXI_excinfo_TypeAsObject(_PyXI_excinfo *info) +{ + PyObject *ns = _PyNamespace_New(NULL); + if (ns == NULL) { + return NULL; + } + int empty = 1; + + if (info->type.name != NULL) { + PyObject *name = PyUnicode_FromString(info->type.name); + if (name == NULL) { + goto error; + } + int res = PyObject_SetAttrString(ns, "__name__", name); + Py_DECREF(name); + if (res < 0) { + goto error; + } + empty = 0; + } + + if (info->type.qualname != NULL) { + PyObject *qualname = PyUnicode_FromString(info->type.qualname); + if (qualname == NULL) { + goto error; + } + int res = PyObject_SetAttrString(ns, "__qualname__", qualname); + Py_DECREF(qualname); + if (res < 0) { + goto error; + } + empty = 0; + } + + if (info->type.module != NULL) { + PyObject *module = PyUnicode_FromString(info->type.module); + if (module == NULL) { + goto error; + } + int res = PyObject_SetAttrString(ns, "__module__", module); + Py_DECREF(module); + if (res < 0) { + goto error; + } + empty = 0; + } + + if (empty) { + Py_CLEAR(ns); + } + + return ns; + +error: + Py_DECREF(ns); + return NULL; +} + +static PyObject * +_PyXI_excinfo_AsObject(_PyXI_excinfo *info) +{ + PyObject *ns = _PyNamespace_New(NULL); + if (ns == NULL) { + return NULL; + } + int res; + + PyObject *type = _PyXI_excinfo_TypeAsObject(info); + if (type == NULL) { + if (PyErr_Occurred()) { + goto error; + } + type = Py_NewRef(Py_None); + } + res = PyObject_SetAttrString(ns, "type", type); + Py_DECREF(type); + if (res < 0) { + goto error; + } + + PyObject *msg = info->msg != NULL + ? PyUnicode_FromString(info->msg) + : Py_NewRef(Py_None); + if (msg == NULL) { + goto error; + } + res = PyObject_SetAttrString(ns, "msg", msg); + Py_DECREF(msg); + if (res < 0) { + goto error; + } + + PyObject *formatted = _PyXI_excinfo_format(info); + if (formatted == NULL) { + goto error; + } + res = PyObject_SetAttrString(ns, "formatted", formatted); + Py_DECREF(formatted); + if (res < 0) { + goto error; + } + + if (info->errdisplay != NULL) { + PyObject *tbexc = PyUnicode_FromString(info->errdisplay); + if (tbexc == NULL) { + PyErr_Clear(); + } + else { + res = PyObject_SetAttrString(ns, "errdisplay", tbexc); + Py_DECREF(tbexc); + if (res < 0) { + goto error; + } + } + } + + return ns; + +error: + Py_DECREF(ns); + return NULL; +} + + +int +_PyXI_InitExcInfo(_PyXI_excinfo *info, PyObject *exc) +{ + assert(!PyErr_Occurred()); + if (exc == NULL || exc == Py_None) { + PyErr_SetString(PyExc_ValueError, "missing exc"); + return -1; + } + const char *failure; + if (PyExceptionInstance_Check(exc) || PyExceptionClass_Check(exc)) { + failure = _PyXI_excinfo_InitFromException(info, exc); + } + else { + failure = _PyXI_excinfo_InitFromObject(info, exc); + } + if (failure != NULL) { + PyErr_SetString(PyExc_Exception, failure); + return -1; + } + return 0; +} + +PyObject * +_PyXI_FormatExcInfo(_PyXI_excinfo *info) +{ + return _PyXI_excinfo_format(info); +} + +PyObject * +_PyXI_ExcInfoAsObject(_PyXI_excinfo *info) +{ + return _PyXI_excinfo_AsObject(info); +} + +void +_PyXI_ClearExcInfo(_PyXI_excinfo *info) +{ + _PyXI_excinfo_Clear(info); +} + + +/***************************/ +/* short-term data sharing */ +/***************************/ + +/* error codes */ + +static int +_PyXI_ApplyErrorCode(_PyXI_errcode code, PyInterpreterState *interp) +{ + assert(!PyErr_Occurred()); + switch (code) { + case _PyXI_ERR_NO_ERROR: // fall through + case _PyXI_ERR_UNCAUGHT_EXCEPTION: + // There is nothing to apply. +#ifdef Py_DEBUG + Py_UNREACHABLE(); +#endif + return 0; + case _PyXI_ERR_OTHER: + // XXX msg? + PyErr_SetNone(PyExc_InterpreterError); + break; + case _PyXI_ERR_NO_MEMORY: + PyErr_NoMemory(); + break; + case _PyXI_ERR_ALREADY_RUNNING: + assert(interp != NULL); + // In 3.14+ we use _PyErr_SetInterpreterAlreadyRunning(). + PyErr_SetString(PyExc_InterpreterError, "interpreter already running"); + break; + case _PyXI_ERR_MAIN_NS_FAILURE: + PyErr_SetString(PyExc_InterpreterError, + "failed to get __main__ namespace"); + break; + case _PyXI_ERR_APPLY_NS_FAILURE: + PyErr_SetString(PyExc_InterpreterError, + "failed to apply namespace to __main__"); + break; + case _PyXI_ERR_NOT_SHAREABLE: + _set_xid_lookup_failure(interp, NULL, NULL); + break; + default: +#ifdef Py_DEBUG + Py_UNREACHABLE(); +#else + PyErr_Format(PyExc_RuntimeError, "unsupported error code %d", code); +#endif + } + assert(PyErr_Occurred()); + return -1; +} + +/* shared exceptions */ + +static const char * +_PyXI_InitError(_PyXI_error *error, PyObject *excobj, _PyXI_errcode code) +{ + if (error->interp == NULL) { + error->interp = PyInterpreterState_Get(); + } + + const char *failure = NULL; + if (code == _PyXI_ERR_UNCAUGHT_EXCEPTION) { + // There is an unhandled exception we need to propagate. + failure = _PyXI_excinfo_InitFromException(&error->uncaught, excobj); + if (failure != NULL) { + // We failed to initialize error->uncaught. + // XXX Print the excobj/traceback? Emit a warning? + // XXX Print the current exception/traceback? + if (PyErr_ExceptionMatches(PyExc_MemoryError)) { + error->code = _PyXI_ERR_NO_MEMORY; + } + else { + error->code = _PyXI_ERR_OTHER; + } + PyErr_Clear(); + } + else { + error->code = code; + } + assert(error->code != _PyXI_ERR_NO_ERROR); + } + else { + // There is an error code we need to propagate. + assert(excobj == NULL); + assert(code != _PyXI_ERR_NO_ERROR); + error->code = code; + _PyXI_excinfo_Clear(&error->uncaught); + } + return failure; +} + +PyObject * +_PyXI_ApplyError(_PyXI_error *error) +{ + if (error->code == _PyXI_ERR_UNCAUGHT_EXCEPTION) { + // Raise an exception that proxies the propagated exception. + return _PyXI_excinfo_AsObject(&error->uncaught); + } + else if (error->code == _PyXI_ERR_NOT_SHAREABLE) { + // Propagate the exception directly. + _set_xid_lookup_failure(error->interp, NULL, error->uncaught.msg); + } + else { + // Raise an exception corresponding to the code. + assert(error->code != _PyXI_ERR_NO_ERROR); + (void)_PyXI_ApplyErrorCode(error->code, error->interp); + if (error->uncaught.type.name != NULL || error->uncaught.msg != NULL) { + // __context__ will be set to a proxy of the propagated exception. + PyObject *exc = PyErr_GetRaisedException(); + _PyXI_excinfo_Apply(&error->uncaught, PyExc_InterpreterError); + PyObject *exc2 = PyErr_GetRaisedException(); + PyException_SetContext(exc, exc2); + PyErr_SetRaisedException(exc); + } + } + assert(PyErr_Occurred()); + return NULL; +} + +/* shared namespaces */ + +/* Shared namespaces are expected to have relatively short lifetimes. + This means dealloc of a shared namespace will normally happen "soon". + Namespace items hold cross-interpreter data, which must get released. + If the namespace/items are cleared in a different interpreter than + where the items' cross-interpreter data was set then that will cause + pending calls to be used to release the cross-interpreter data. + The tricky bit is that the pending calls can happen sufficiently + later that the namespace/items might already be deallocated. This is + a problem if the cross-interpreter data is allocated as part of a + namespace item. If that's the case then we must ensure the shared + namespace is only cleared/freed *after* that data has been released. */ + +typedef struct _sharednsitem { + const char *name; + _PyCrossInterpreterData *data; + // We could have a "PyCrossInterpreterData _data" field, so it would + // be allocated as part of the item and avoid an extra allocation. + // However, doing so adds a bunch of complexity because we must + // ensure the item isn't freed before a pending call might happen + // in a different interpreter to release the XI data. +} _PyXI_namespace_item; + +static int +_sharednsitem_is_initialized(_PyXI_namespace_item *item) +{ + if (item->name != NULL) { + return 1; + } + return 0; +} + +static int +_sharednsitem_init(_PyXI_namespace_item *item, PyObject *key) +{ + item->name = _copy_string_obj_raw(key, NULL); + if (item->name == NULL) { + assert(!_sharednsitem_is_initialized(item)); + return -1; + } + item->data = NULL; + assert(_sharednsitem_is_initialized(item)); + return 0; +} + +static int +_sharednsitem_has_value(_PyXI_namespace_item *item, int64_t *p_interpid) +{ + if (item->data == NULL) { + return 0; + } + if (p_interpid != NULL) { + *p_interpid = _PyCrossInterpreterData_INTERPID(item->data); + } + return 1; +} + +static int +_sharednsitem_set_value(_PyXI_namespace_item *item, PyObject *value) +{ + assert(_sharednsitem_is_initialized(item)); + assert(item->data == NULL); + item->data = PyMem_RawMalloc(sizeof(_PyCrossInterpreterData)); + if (item->data == NULL) { + PyErr_NoMemory(); + return -1; + } + if (_PyObject_GetCrossInterpreterData(value, item->data) != 0) { + PyMem_RawFree(item->data); + item->data = NULL; + // The caller may want to propagate PyExc_NotShareableError + // if currently switched between interpreters. + return -1; + } + return 0; +} + +static void +_sharednsitem_clear_value(_PyXI_namespace_item *item) +{ + _PyCrossInterpreterData *data = item->data; + if (data != NULL) { + item->data = NULL; + int rawfree = 1; + (void)_release_xid_data(data, rawfree); + } +} + +static void +_sharednsitem_clear(_PyXI_namespace_item *item) +{ + if (item->name != NULL) { + PyMem_RawFree((void *)item->name); + item->name = NULL; + } + _sharednsitem_clear_value(item); +} + +static int +_sharednsitem_copy_from_ns(struct _sharednsitem *item, PyObject *ns) +{ + assert(item->name != NULL); + assert(item->data == NULL); + PyObject *value = PyDict_GetItemString(ns, item->name); // borrowed + if (value == NULL) { + if (PyErr_Occurred()) { + return -1; + } + // When applied, this item will be set to the default (or fail). + return 0; + } + if (_sharednsitem_set_value(item, value) < 0) { + return -1; + } + return 0; +} + +static int +_sharednsitem_apply(_PyXI_namespace_item *item, PyObject *ns, PyObject *dflt) +{ + PyObject *name = PyUnicode_FromString(item->name); + if (name == NULL) { + return -1; + } + PyObject *value; + if (item->data != NULL) { + value = _PyCrossInterpreterData_NewObject(item->data); + if (value == NULL) { + Py_DECREF(name); + return -1; + } + } + else { + value = Py_NewRef(dflt); + } + int res = PyDict_SetItem(ns, name, value); + Py_DECREF(name); + Py_DECREF(value); + return res; +} + +struct _sharedns { + Py_ssize_t len; + _PyXI_namespace_item *items; +}; + +static _PyXI_namespace * +_sharedns_new(void) +{ + _PyXI_namespace *ns = PyMem_RawCalloc(sizeof(_PyXI_namespace), 1); + if (ns == NULL) { + PyErr_NoMemory(); + return NULL; + } + *ns = (_PyXI_namespace){ 0 }; + return ns; +} + +static int +_sharedns_is_initialized(_PyXI_namespace *ns) +{ + if (ns->len == 0) { + assert(ns->items == NULL); + return 0; + } + + assert(ns->len > 0); + assert(ns->items != NULL); + assert(_sharednsitem_is_initialized(&ns->items[0])); + assert(ns->len == 1 + || _sharednsitem_is_initialized(&ns->items[ns->len - 1])); + return 1; +} + +#define HAS_COMPLETE_DATA 1 +#define HAS_PARTIAL_DATA 2 + +static int +_sharedns_has_xidata(_PyXI_namespace *ns, int64_t *p_interpid) +{ + // We expect _PyXI_namespace to always be initialized. + assert(_sharedns_is_initialized(ns)); + int res = 0; + _PyXI_namespace_item *item0 = &ns->items[0]; + if (!_sharednsitem_is_initialized(item0)) { + return 0; + } + int64_t interpid0 = -1; + if (!_sharednsitem_has_value(item0, &interpid0)) { + return 0; + } + if (ns->len > 1) { + // At this point we know it is has at least partial data. + _PyXI_namespace_item *itemN = &ns->items[ns->len-1]; + if (!_sharednsitem_is_initialized(itemN)) { + res = HAS_PARTIAL_DATA; + goto finally; + } + int64_t interpidN = -1; + if (!_sharednsitem_has_value(itemN, &interpidN)) { + res = HAS_PARTIAL_DATA; + goto finally; + } + assert(interpidN == interpid0); + } + res = HAS_COMPLETE_DATA; + *p_interpid = interpid0; + +finally: + return res; +} + +static void +_sharedns_clear(_PyXI_namespace *ns) +{ + if (!_sharedns_is_initialized(ns)) { + return; + } + + // If the cross-interpreter data were allocated as part of + // _PyXI_namespace_item (instead of dynamically), this is where + // we would need verify that we are clearing the items in the + // correct interpreter, to avoid a race with releasing the XI data + // via a pending call. See _sharedns_has_xidata(). + for (Py_ssize_t i=0; i < ns->len; i++) { + _sharednsitem_clear(&ns->items[i]); + } + PyMem_RawFree(ns->items); + ns->items = NULL; + ns->len = 0; +} + +static void +_sharedns_free(_PyXI_namespace *ns) +{ + _sharedns_clear(ns); + PyMem_RawFree(ns); +} + +static int +_sharedns_init(_PyXI_namespace *ns, PyObject *names) +{ + assert(!_sharedns_is_initialized(ns)); + assert(names != NULL); + Py_ssize_t len = PyDict_CheckExact(names) + ? PyDict_Size(names) + : PySequence_Size(names); + if (len < 0) { + return -1; + } + if (len == 0) { + PyErr_SetString(PyExc_ValueError, "empty namespaces not allowed"); + return -1; + } + assert(len > 0); + + // Allocate the items. + _PyXI_namespace_item *items = + PyMem_RawCalloc(sizeof(struct _sharednsitem), len); + if (items == NULL) { + PyErr_NoMemory(); + return -1; + } + + // Fill in the names. + Py_ssize_t i = -1; + if (PyDict_CheckExact(names)) { + Py_ssize_t pos = 0; + for (i=0; i < len; i++) { + PyObject *key; + if (!PyDict_Next(names, &pos, &key, NULL)) { + // This should not be possible. + assert(0); + goto error; + } + if (_sharednsitem_init(&items[i], key) < 0) { + goto error; + } + } + } + else if (PySequence_Check(names)) { + for (i=0; i < len; i++) { + PyObject *key = PySequence_GetItem(names, i); + if (key == NULL) { + goto error; + } + int res = _sharednsitem_init(&items[i], key); + Py_DECREF(key); + if (res < 0) { + goto error; + } + } + } + else { + PyErr_SetString(PyExc_NotImplementedError, + "non-sequence namespace not supported"); + goto error; + } + + ns->items = items; + ns->len = len; + assert(_sharedns_is_initialized(ns)); + return 0; + +error: + for (Py_ssize_t j=0; j < i; j++) { + _sharednsitem_clear(&items[j]); + } + PyMem_RawFree(items); + assert(!_sharedns_is_initialized(ns)); + return -1; +} + +void +_PyXI_FreeNamespace(_PyXI_namespace *ns) +{ + if (!_sharedns_is_initialized(ns)) { + return; + } + + int64_t interpid = -1; + if (!_sharedns_has_xidata(ns, &interpid)) { + _sharedns_free(ns); + return; + } + + if (interpid == PyInterpreterState_GetID(PyInterpreterState_Get())) { + _sharedns_free(ns); + } + else { + // If we weren't always dynamically allocating the cross-interpreter + // data in each item then we would need to using a pending call + // to call _sharedns_free(), to avoid the race between freeing + // the shared namespace and releasing the XI data. + _sharedns_free(ns); + } +} + +_PyXI_namespace * +_PyXI_NamespaceFromNames(PyObject *names) +{ + if (names == NULL || names == Py_None) { + return NULL; + } + + _PyXI_namespace *ns = _sharedns_new(); + if (ns == NULL) { + return NULL; + } + + if (_sharedns_init(ns, names) < 0) { + PyMem_RawFree(ns); + if (PySequence_Size(names) == 0) { + PyErr_Clear(); + } + return NULL; + } + + return ns; +} + +#ifndef NDEBUG +static int _session_is_active(_PyXI_session *); +#endif +static void _propagate_not_shareable_error(_PyXI_session *); + +int +_PyXI_FillNamespaceFromDict(_PyXI_namespace *ns, PyObject *nsobj, + _PyXI_session *session) +{ + // session must be entered already, if provided. + assert(session == NULL || _session_is_active(session)); + assert(_sharedns_is_initialized(ns)); + for (Py_ssize_t i=0; i < ns->len; i++) { + _PyXI_namespace_item *item = &ns->items[i]; + if (_sharednsitem_copy_from_ns(item, nsobj) < 0) { + _propagate_not_shareable_error(session); + // Clear out the ones we set so far. + for (Py_ssize_t j=0; j < i; j++) { + _sharednsitem_clear_value(&ns->items[j]); + } + return -1; + } + } + return 0; +} + +// All items are expected to be shareable. +static _PyXI_namespace * +_PyXI_NamespaceFromDict(PyObject *nsobj, _PyXI_session *session) +{ + // session must be entered already, if provided. + assert(session == NULL || _session_is_active(session)); + if (nsobj == NULL || nsobj == Py_None) { + return NULL; + } + if (!PyDict_CheckExact(nsobj)) { + PyErr_SetString(PyExc_TypeError, "expected a dict"); + return NULL; + } + + _PyXI_namespace *ns = _sharedns_new(); + if (ns == NULL) { + return NULL; + } + + if (_sharedns_init(ns, nsobj) < 0) { + if (PyDict_Size(nsobj) == 0) { + PyMem_RawFree(ns); + PyErr_Clear(); + return NULL; + } + goto error; + } + + if (_PyXI_FillNamespaceFromDict(ns, nsobj, session) < 0) { + goto error; + } + + return ns; + +error: + assert(PyErr_Occurred() + || (session != NULL && session->error_override != NULL)); + _sharedns_free(ns); + return NULL; +} + +int +_PyXI_ApplyNamespace(_PyXI_namespace *ns, PyObject *nsobj, PyObject *dflt) +{ + for (Py_ssize_t i=0; i < ns->len; i++) { + if (_sharednsitem_apply(&ns->items[i], nsobj, dflt) != 0) { + return -1; + } + } + return 0; +} + + +/**********************/ +/* high-level helpers */ +/**********************/ + +/* enter/exit a cross-interpreter session */ + +static void +_enter_session(_PyXI_session *session, PyInterpreterState *interp) +{ + // Set here and cleared in _exit_session(). + assert(!session->own_init_tstate); + assert(session->init_tstate == NULL); + assert(session->prev_tstate == NULL); + // Set elsewhere and cleared in _exit_session(). + assert(!session->running); + assert(session->main_ns == NULL); + // Set elsewhere and cleared in _capture_current_exception(). + assert(session->error_override == NULL); + // Set elsewhere and cleared in _PyXI_ApplyCapturedException(). + assert(session->error == NULL); + + // Switch to interpreter. + PyThreadState *tstate = PyThreadState_Get(); + PyThreadState *prev = tstate; + if (interp != tstate->interp) { + tstate = _PyThreadState_NewBound(interp, _PyThreadState_WHENCE_EXEC); + // XXX Possible GILState issues? + session->prev_tstate = PyThreadState_Swap(tstate); + assert(session->prev_tstate == prev); + session->own_init_tstate = 1; + } + session->init_tstate = tstate; + session->prev_tstate = prev; +} + +static void +_exit_session(_PyXI_session *session) +{ + PyThreadState *tstate = session->init_tstate; + assert(tstate != NULL); + assert(PyThreadState_Get() == tstate); + + // Release any of the entered interpreters resources. + if (session->main_ns != NULL) { + Py_CLEAR(session->main_ns); + } + + // Ensure this thread no longer owns __main__. + if (session->running) { + _PyInterpreterState_SetNotRunningMain(tstate->interp); + assert(!PyErr_Occurred()); + session->running = 0; + } + + // Switch back. + assert(session->prev_tstate != NULL); + if (session->prev_tstate != session->init_tstate) { + assert(session->own_init_tstate); + session->own_init_tstate = 0; + PyThreadState_Clear(tstate); + PyThreadState_Swap(session->prev_tstate); + PyThreadState_Delete(tstate); + } + else { + assert(!session->own_init_tstate); + } + session->prev_tstate = NULL; + session->init_tstate = NULL; +} + +#ifndef NDEBUG +static int +_session_is_active(_PyXI_session *session) +{ + return (session->init_tstate != NULL); +} +#endif + +static void +_propagate_not_shareable_error(_PyXI_session *session) +{ + if (session == NULL) { + return; + } + PyInterpreterState *interp = PyInterpreterState_Get(); + if (PyErr_ExceptionMatches(_get_not_shareable_error_type(interp))) { + // We want to propagate the exception directly. + session->_error_override = _PyXI_ERR_NOT_SHAREABLE; + session->error_override = &session->_error_override; + } +} + +static void +_capture_current_exception(_PyXI_session *session) +{ + assert(session->error == NULL); + if (!PyErr_Occurred()) { + assert(session->error_override == NULL); + return; + } + + // Handle the exception override. + _PyXI_errcode *override = session->error_override; + session->error_override = NULL; + _PyXI_errcode errcode = override != NULL + ? *override + : _PyXI_ERR_UNCAUGHT_EXCEPTION; + + // Pop the exception object. + PyObject *excval = NULL; + if (errcode == _PyXI_ERR_UNCAUGHT_EXCEPTION) { + // We want to actually capture the current exception. + excval = PyErr_GetRaisedException(); + } + else if (errcode == _PyXI_ERR_ALREADY_RUNNING) { + // We don't need the exception info. + PyErr_Clear(); + } + else { + // We could do a variety of things here, depending on errcode. + // However, for now we simply capture the exception and save + // the errcode. + excval = PyErr_GetRaisedException(); + } + + // Capture the exception. + _PyXI_error *err = &session->_error; + *err = (_PyXI_error){ + .interp = session->init_tstate->interp, + }; + const char *failure; + if (excval == NULL) { + failure = _PyXI_InitError(err, NULL, errcode); + } + else { + failure = _PyXI_InitError(err, excval, _PyXI_ERR_UNCAUGHT_EXCEPTION); + Py_DECREF(excval); + if (failure == NULL && override != NULL) { + err->code = errcode; + } + } + + // Handle capture failure. + if (failure != NULL) { + // XXX Make this error message more generic. + fprintf(stderr, + "RunFailedError: script raised an uncaught exception (%s)", + failure); + err = NULL; + } + + // Finished! + assert(!PyErr_Occurred()); + session->error = err; +} + +PyObject * +_PyXI_ApplyCapturedException(_PyXI_session *session) +{ + assert(!PyErr_Occurred()); + assert(session->error != NULL); + PyObject *res = _PyXI_ApplyError(session->error); + assert((res == NULL) != (PyErr_Occurred() == NULL)); + session->error = NULL; + return res; +} + +int +_PyXI_HasCapturedException(_PyXI_session *session) +{ + return session->error != NULL; +} + +int +_PyXI_Enter(_PyXI_session *session, + PyInterpreterState *interp, PyObject *nsupdates) +{ + // Convert the attrs for cross-interpreter use. + _PyXI_namespace *sharedns = NULL; + if (nsupdates != NULL) { + assert(PyDict_Check(nsupdates)); + sharedns = _PyXI_NamespaceFromDict(nsupdates, NULL); + if (sharedns == NULL && PyErr_Occurred()) { + assert(session->error == NULL); + return -1; + } + } + + // Switch to the requested interpreter (if necessary). + _enter_session(session, interp); + _PyXI_errcode errcode = _PyXI_ERR_UNCAUGHT_EXCEPTION; + + // Ensure this thread owns __main__. + if (_PyInterpreterState_SetRunningMain(interp) < 0) { + // In the case where we didn't switch interpreters, it would + // be more efficient to leave the exception in place and return + // immediately. However, life is simpler if we don't. + errcode = _PyXI_ERR_ALREADY_RUNNING; + goto error; + } + session->running = 1; + + // Cache __main__.__dict__. + PyObject *main_mod = PyUnstable_InterpreterState_GetMainModule(interp); + if (main_mod == NULL) { + errcode = _PyXI_ERR_MAIN_NS_FAILURE; + goto error; + } + PyObject *ns = PyModule_GetDict(main_mod); // borrowed + Py_DECREF(main_mod); + if (ns == NULL) { + errcode = _PyXI_ERR_MAIN_NS_FAILURE; + goto error; + } + session->main_ns = Py_NewRef(ns); + + // Apply the cross-interpreter data. + if (sharedns != NULL) { + if (_PyXI_ApplyNamespace(sharedns, ns, NULL) < 0) { + errcode = _PyXI_ERR_APPLY_NS_FAILURE; + goto error; + } + _PyXI_FreeNamespace(sharedns); + } + + errcode = _PyXI_ERR_NO_ERROR; + assert(!PyErr_Occurred()); + return 0; + +error: + assert(PyErr_Occurred()); + // We want to propagate all exceptions here directly (best effort). + assert(errcode != _PyXI_ERR_UNCAUGHT_EXCEPTION); + session->error_override = &errcode; + _capture_current_exception(session); + _exit_session(session); + if (sharedns != NULL) { + _PyXI_FreeNamespace(sharedns); + } + return -1; +} + +void +_PyXI_Exit(_PyXI_session *session) +{ + _capture_current_exception(session); + _exit_session(session); +} + + +/*********************/ +/* runtime lifecycle */ +/*********************/ + +PyStatus +_PyXI_Init(PyInterpreterState *interp) +{ + // Initialize the XID lookup state (e.g. registry). + xid_lookup_init(interp); + + // Initialize exceptions (heap types). + if (_init_not_shareable_error_type(interp) < 0) { + return _PyStatus_ERR("failed to initialize NotShareableError"); + } + + return _PyStatus_OK(); +} + +// _PyXI_Fini() must be called before the interpreter is cleared, +// since we must clear some heap objects. + +void +_PyXI_Fini(PyInterpreterState *interp) +{ + // Finalize exceptions (heap types). + _fini_not_shareable_error_type(interp); + + // Finalize the XID lookup state (e.g. registry). + xid_lookup_fini(interp); +} + +PyStatus +_PyXI_InitTypes(PyInterpreterState *interp) +{ + if (init_exceptions(interp) < 0) { + PyErr_PrintEx(0); + return _PyStatus_ERR("failed to initialize an exception type"); + } + return _PyStatus_OK(); +} + +void +_PyXI_FiniTypes(PyInterpreterState *interp) +{ + fini_exceptions(interp); +} + + +/*************/ +/* other API */ +/*************/ + +PyInterpreterState * +_PyXI_NewInterpreter(PyInterpreterConfig *config, long *maybe_whence, + PyThreadState **p_tstate, PyThreadState **p_save_tstate) +{ + PyThreadState *save_tstate = PyThreadState_Swap(NULL); + assert(save_tstate != NULL); + + PyThreadState *tstate; + PyStatus status = Py_NewInterpreterFromConfig(&tstate, config); + if (PyStatus_Exception(status)) { + // Since no new thread state was created, there is no exception + // to propagate; raise a fresh one after swapping back in the + // old thread state. + PyThreadState_Swap(save_tstate); + _PyErr_SetFromPyStatus(status); + PyObject *exc = PyErr_GetRaisedException(); + PyErr_SetString(PyExc_InterpreterError, + "sub-interpreter creation failed"); + _PyErr_ChainExceptions1(exc); + return NULL; + } + assert(tstate != NULL); + PyInterpreterState *interp = PyThreadState_GetInterpreter(tstate); + + long whence = _PyInterpreterState_WHENCE_XI; + if (maybe_whence != NULL) { + whence = *maybe_whence; + } + _PyInterpreterState_SetWhence(interp, whence); + + if (p_tstate != NULL) { + // We leave the new thread state as the current one. + *p_tstate = tstate; + } + else { + // Throw away the initial tstate. + PyThreadState_Clear(tstate); + PyThreadState_Swap(save_tstate); + PyThreadState_Delete(tstate); + save_tstate = NULL; + } + if (p_save_tstate != NULL) { + *p_save_tstate = save_tstate; + } + return interp; +} + +void +_PyXI_EndInterpreter(PyInterpreterState *interp, + PyThreadState *tstate, PyThreadState **p_save_tstate) +{ +#ifndef NDEBUG + long whence = _PyInterpreterState_GetWhence(interp); +#endif + assert(whence != _PyInterpreterState_WHENCE_RUNTIME); + + if (!_PyInterpreterState_IsReady(interp)) { + assert(whence == _PyInterpreterState_WHENCE_UNKNOWN); + // PyInterpreterState_Clear() requires the GIL, + // which a not-ready does not have, so we don't clear it. + // That means there may be leaks here until clearing the + // interpreter is fixed. + PyInterpreterState_Delete(interp); + return; + } + assert(whence != _PyInterpreterState_WHENCE_UNKNOWN); + + PyThreadState *save_tstate = NULL; + PyThreadState *cur_tstate = PyThreadState_GET(); + if (tstate == NULL) { + if (PyThreadState_GetInterpreter(cur_tstate) == interp) { + tstate = cur_tstate; + } + else { + tstate = _PyThreadState_NewBound(interp, _PyThreadState_WHENCE_FINI); + assert(tstate != NULL); + save_tstate = PyThreadState_Swap(tstate); + } + } + else { + assert(PyThreadState_GetInterpreter(tstate) == interp); + if (tstate != cur_tstate) { + assert(PyThreadState_GetInterpreter(cur_tstate) != interp); + save_tstate = PyThreadState_Swap(tstate); + } + } + + Py_EndInterpreter(tstate); + + if (p_save_tstate != NULL) { + save_tstate = *p_save_tstate; + } + PyThreadState_Swap(save_tstate); +} diff --git a/contrib/tools/python3/Python/crossinterp_data_lookup.h b/contrib/tools/python3/Python/crossinterp_data_lookup.h new file mode 100644 index 00000000000..863919ad42f --- /dev/null +++ b/contrib/tools/python3/Python/crossinterp_data_lookup.h @@ -0,0 +1,594 @@ + +static crossinterpdatafunc _lookup_getdata_from_registry( + PyInterpreterState *, PyObject *); + +static crossinterpdatafunc +lookup_getdata(PyInterpreterState *interp, PyObject *obj) +{ + /* Cross-interpreter objects are looked up by exact match on the class. + We can reassess this policy when we move from a global registry to a + tp_* slot. */ + return _lookup_getdata_from_registry(interp, obj); +} + +crossinterpdatafunc +_PyCrossInterpreterData_Lookup(PyObject *obj) +{ + PyInterpreterState *interp = PyInterpreterState_Get(); + return lookup_getdata(interp, obj); +} + + +/***********************************************/ +/* a registry of {type -> crossinterpdatafunc} */ +/***********************************************/ + +/* For now we use a global registry of shareable classes. An + alternative would be to add a tp_* slot for a class's + crossinterpdatafunc. It would be simpler and more efficient. */ + + +/* registry lifecycle */ + +static void _register_builtins_for_crossinterpreter_data(struct _xidregistry *); + +static void +_xidregistry_init(struct _xidregistry *registry) +{ + if (registry->initialized) { + return; + } + registry->initialized = 1; + + if (registry->global) { + // Registering the builtins is cheap so we don't bother doing it lazily. + assert(registry->head == NULL); + _register_builtins_for_crossinterpreter_data(registry); + } +} + +static void _xidregistry_clear(struct _xidregistry *); + +static void +_xidregistry_fini(struct _xidregistry *registry) +{ + if (!registry->initialized) { + return; + } + registry->initialized = 0; + + _xidregistry_clear(registry); +} + +static inline struct _xidregistry * _get_global_xidregistry(_PyRuntimeState *); +static inline struct _xidregistry * _get_xidregistry(PyInterpreterState *); + +static void +xid_lookup_init(PyInterpreterState *interp) +{ + if (_Py_IsMainInterpreter(interp)) { + _xidregistry_init(_get_global_xidregistry(interp->runtime)); + } + _xidregistry_init(_get_xidregistry(interp)); +} + +static void +xid_lookup_fini(PyInterpreterState *interp) +{ + _xidregistry_fini(_get_xidregistry(interp)); + if (_Py_IsMainInterpreter(interp)) { + _xidregistry_fini(_get_global_xidregistry(interp->runtime)); + } +} + + +/* registry thread safety */ + +static void +_xidregistry_lock(struct _xidregistry *registry) +{ + if (registry->global) { + PyMutex_Lock(®istry->mutex); + } + // else: Within an interpreter we rely on the GIL instead of a separate lock. +} + +static void +_xidregistry_unlock(struct _xidregistry *registry) +{ + if (registry->global) { + PyMutex_Unlock(®istry->mutex); + } +} + + +/* accessing the registry */ + +static inline struct _xidregistry * +_get_global_xidregistry(_PyRuntimeState *runtime) +{ + return &runtime->xi.registry; +} + +static inline struct _xidregistry * +_get_xidregistry(PyInterpreterState *interp) +{ + return &interp->xi.registry; +} + +static inline struct _xidregistry * +_get_xidregistry_for_type(PyInterpreterState *interp, PyTypeObject *cls) +{ + struct _xidregistry *registry = _get_global_xidregistry(interp->runtime); + if (cls->tp_flags & Py_TPFLAGS_HEAPTYPE) { + registry = _get_xidregistry(interp); + } + return registry; +} + +static struct _xidregitem * _xidregistry_remove_entry( + struct _xidregistry *, struct _xidregitem *); + +static struct _xidregitem * +_xidregistry_find_type(struct _xidregistry *xidregistry, PyTypeObject *cls) +{ + struct _xidregitem *cur = xidregistry->head; + while (cur != NULL) { + if (cur->weakref != NULL) { + // cur is/was a heap type. + PyObject *registered = _PyWeakref_GET_REF(cur->weakref); + if (registered == NULL) { + // The weakly ref'ed object was freed. + cur = _xidregistry_remove_entry(xidregistry, cur); + continue; + } + assert(PyType_Check(registered)); + assert(cur->cls == (PyTypeObject *)registered); + assert(cur->cls->tp_flags & Py_TPFLAGS_HEAPTYPE); + Py_DECREF(registered); + } + if (cur->cls == cls) { + return cur; + } + cur = cur->next; + } + return NULL; +} + +static crossinterpdatafunc +_lookup_getdata_from_registry(PyInterpreterState *interp, PyObject *obj) +{ + PyTypeObject *cls = Py_TYPE(obj); + + struct _xidregistry *xidregistry = _get_xidregistry_for_type(interp, cls); + _xidregistry_lock(xidregistry); + + struct _xidregitem *matched = _xidregistry_find_type(xidregistry, cls); + crossinterpdatafunc func = matched != NULL ? matched->getdata : NULL; + + _xidregistry_unlock(xidregistry); + return func; +} + + +/* updating the registry */ + +static int +_xidregistry_add_type(struct _xidregistry *xidregistry, + PyTypeObject *cls, crossinterpdatafunc getdata) +{ + struct _xidregitem *newhead = PyMem_RawMalloc(sizeof(struct _xidregitem)); + if (newhead == NULL) { + return -1; + } + *newhead = (struct _xidregitem){ + // We do not keep a reference, to avoid keeping the class alive. + .cls = cls, + .refcount = 1, + .getdata = getdata, + }; + if (cls->tp_flags & Py_TPFLAGS_HEAPTYPE) { + // XXX Assign a callback to clear the entry from the registry? + newhead->weakref = PyWeakref_NewRef((PyObject *)cls, NULL); + if (newhead->weakref == NULL) { + PyMem_RawFree(newhead); + return -1; + } + } + newhead->next = xidregistry->head; + if (newhead->next != NULL) { + newhead->next->prev = newhead; + } + xidregistry->head = newhead; + return 0; +} + +static struct _xidregitem * +_xidregistry_remove_entry(struct _xidregistry *xidregistry, + struct _xidregitem *entry) +{ + struct _xidregitem *next = entry->next; + if (entry->prev != NULL) { + assert(entry->prev->next == entry); + entry->prev->next = next; + } + else { + assert(xidregistry->head == entry); + xidregistry->head = next; + } + if (next != NULL) { + next->prev = entry->prev; + } + Py_XDECREF(entry->weakref); + PyMem_RawFree(entry); + return next; +} + +static void +_xidregistry_clear(struct _xidregistry *xidregistry) +{ + struct _xidregitem *cur = xidregistry->head; + xidregistry->head = NULL; + while (cur != NULL) { + struct _xidregitem *next = cur->next; + Py_XDECREF(cur->weakref); + PyMem_RawFree(cur); + cur = next; + } +} + +int +_PyCrossInterpreterData_RegisterClass(PyTypeObject *cls, + crossinterpdatafunc getdata) +{ + if (!PyType_Check(cls)) { + PyErr_Format(PyExc_ValueError, "only classes may be registered"); + return -1; + } + if (getdata == NULL) { + PyErr_Format(PyExc_ValueError, "missing 'getdata' func"); + return -1; + } + + int res = 0; + PyInterpreterState *interp = _PyInterpreterState_GET(); + struct _xidregistry *xidregistry = _get_xidregistry_for_type(interp, cls); + _xidregistry_lock(xidregistry); + + struct _xidregitem *matched = _xidregistry_find_type(xidregistry, cls); + if (matched != NULL) { + assert(matched->getdata == getdata); + matched->refcount += 1; + goto finally; + } + + res = _xidregistry_add_type(xidregistry, cls, getdata); + +finally: + _xidregistry_unlock(xidregistry); + return res; +} + +int +_PyCrossInterpreterData_UnregisterClass(PyTypeObject *cls) +{ + int res = 0; + PyInterpreterState *interp = _PyInterpreterState_GET(); + struct _xidregistry *xidregistry = _get_xidregistry_for_type(interp, cls); + _xidregistry_lock(xidregistry); + + struct _xidregitem *matched = _xidregistry_find_type(xidregistry, cls); + if (matched != NULL) { + assert(matched->refcount > 0); + matched->refcount -= 1; + if (matched->refcount == 0) { + (void)_xidregistry_remove_entry(xidregistry, matched); + } + res = 1; + } + + _xidregistry_unlock(xidregistry); + return res; +} + + +/********************************************/ +/* cross-interpreter data for builtin types */ +/********************************************/ + +// bytes + +struct _shared_bytes_data { + char *bytes; + Py_ssize_t len; +}; + +static PyObject * +_new_bytes_object(_PyCrossInterpreterData *data) +{ + struct _shared_bytes_data *shared = (struct _shared_bytes_data *)(data->data); + return PyBytes_FromStringAndSize(shared->bytes, shared->len); +} + +static int +_bytes_shared(PyThreadState *tstate, PyObject *obj, + _PyCrossInterpreterData *data) +{ + if (_PyCrossInterpreterData_InitWithSize( + data, tstate->interp, sizeof(struct _shared_bytes_data), obj, + _new_bytes_object + ) < 0) + { + return -1; + } + struct _shared_bytes_data *shared = (struct _shared_bytes_data *)data->data; + if (PyBytes_AsStringAndSize(obj, &shared->bytes, &shared->len) < 0) { + _PyCrossInterpreterData_Clear(tstate->interp, data); + return -1; + } + return 0; +} + +// str + +struct _shared_str_data { + int kind; + const void *buffer; + Py_ssize_t len; +}; + +static PyObject * +_new_str_object(_PyCrossInterpreterData *data) +{ + struct _shared_str_data *shared = (struct _shared_str_data *)(data->data); + return PyUnicode_FromKindAndData(shared->kind, shared->buffer, shared->len); +} + +static int +_str_shared(PyThreadState *tstate, PyObject *obj, + _PyCrossInterpreterData *data) +{ + if (_PyCrossInterpreterData_InitWithSize( + data, tstate->interp, sizeof(struct _shared_str_data), obj, + _new_str_object + ) < 0) + { + return -1; + } + struct _shared_str_data *shared = (struct _shared_str_data *)data->data; + shared->kind = PyUnicode_KIND(obj); + shared->buffer = PyUnicode_DATA(obj); + shared->len = PyUnicode_GET_LENGTH(obj); + return 0; +} + +// int + +static PyObject * +_new_long_object(_PyCrossInterpreterData *data) +{ + return PyLong_FromSsize_t((Py_ssize_t)(data->data)); +} + +static int +_long_shared(PyThreadState *tstate, PyObject *obj, + _PyCrossInterpreterData *data) +{ + /* Note that this means the size of shareable ints is bounded by + * sys.maxsize. Hence on 32-bit architectures that is half the + * size of maximum shareable ints on 64-bit. + */ + Py_ssize_t value = PyLong_AsSsize_t(obj); + if (value == -1 && PyErr_Occurred()) { + if (PyErr_ExceptionMatches(PyExc_OverflowError)) { + PyErr_SetString(PyExc_OverflowError, "try sending as bytes"); + } + return -1; + } + _PyCrossInterpreterData_Init(data, tstate->interp, (void *)value, NULL, + _new_long_object); + // data->obj and data->free remain NULL + return 0; +} + +// float + +static PyObject * +_new_float_object(_PyCrossInterpreterData *data) +{ + double * value_ptr = data->data; + return PyFloat_FromDouble(*value_ptr); +} + +static int +_float_shared(PyThreadState *tstate, PyObject *obj, + _PyCrossInterpreterData *data) +{ + if (_PyCrossInterpreterData_InitWithSize( + data, tstate->interp, sizeof(double), NULL, + _new_float_object + ) < 0) + { + return -1; + } + double *shared = (double *)data->data; + *shared = PyFloat_AsDouble(obj); + return 0; +} + +// None + +static PyObject * +_new_none_object(_PyCrossInterpreterData *data) +{ + // XXX Singleton refcounts are problematic across interpreters... + return Py_NewRef(Py_None); +} + +static int +_none_shared(PyThreadState *tstate, PyObject *obj, + _PyCrossInterpreterData *data) +{ + _PyCrossInterpreterData_Init(data, tstate->interp, NULL, NULL, + _new_none_object); + // data->data, data->obj and data->free remain NULL + return 0; +} + +// bool + +static PyObject * +_new_bool_object(_PyCrossInterpreterData *data) +{ + if (data->data){ + Py_RETURN_TRUE; + } + Py_RETURN_FALSE; +} + +static int +_bool_shared(PyThreadState *tstate, PyObject *obj, + _PyCrossInterpreterData *data) +{ + _PyCrossInterpreterData_Init(data, tstate->interp, + (void *) (Py_IsTrue(obj) ? (uintptr_t) 1 : (uintptr_t) 0), NULL, + _new_bool_object); + // data->obj and data->free remain NULL + return 0; +} + +// tuple + +struct _shared_tuple_data { + Py_ssize_t len; + _PyCrossInterpreterData **data; +}; + +static PyObject * +_new_tuple_object(_PyCrossInterpreterData *data) +{ + struct _shared_tuple_data *shared = (struct _shared_tuple_data *)(data->data); + PyObject *tuple = PyTuple_New(shared->len); + if (tuple == NULL) { + return NULL; + } + + for (Py_ssize_t i = 0; i < shared->len; i++) { + PyObject *item = _PyCrossInterpreterData_NewObject(shared->data[i]); + if (item == NULL){ + Py_DECREF(tuple); + return NULL; + } + PyTuple_SET_ITEM(tuple, i, item); + } + return tuple; +} + +static void +_tuple_shared_free(void* data) +{ + struct _shared_tuple_data *shared = (struct _shared_tuple_data *)(data); +#ifndef NDEBUG + int64_t interpid = PyInterpreterState_GetID(_PyInterpreterState_GET()); +#endif + for (Py_ssize_t i = 0; i < shared->len; i++) { + if (shared->data[i] != NULL) { + assert(_PyCrossInterpreterData_INTERPID(shared->data[i]) == interpid); + _PyCrossInterpreterData_Release(shared->data[i]); + PyMem_RawFree(shared->data[i]); + shared->data[i] = NULL; + } + } + PyMem_Free(shared->data); + PyMem_RawFree(shared); +} + +static int +_tuple_shared(PyThreadState *tstate, PyObject *obj, + _PyCrossInterpreterData *data) +{ + Py_ssize_t len = PyTuple_GET_SIZE(obj); + if (len < 0) { + return -1; + } + struct _shared_tuple_data *shared = PyMem_RawMalloc(sizeof(struct _shared_tuple_data)); + if (shared == NULL){ + PyErr_NoMemory(); + return -1; + } + + shared->len = len; + shared->data = (_PyCrossInterpreterData **) PyMem_Calloc(shared->len, sizeof(_PyCrossInterpreterData *)); + if (shared->data == NULL) { + PyErr_NoMemory(); + return -1; + } + + for (Py_ssize_t i = 0; i < shared->len; i++) { + _PyCrossInterpreterData *data = _PyCrossInterpreterData_New(); + if (data == NULL) { + goto error; // PyErr_NoMemory already set + } + PyObject *item = PyTuple_GET_ITEM(obj, i); + + int res = -1; + if (!_Py_EnterRecursiveCallTstate(tstate, " while sharing a tuple")) { + res = _PyObject_GetCrossInterpreterData(item, data); + _Py_LeaveRecursiveCallTstate(tstate); + } + if (res < 0) { + PyMem_RawFree(data); + goto error; + } + shared->data[i] = data; + } + _PyCrossInterpreterData_Init( + data, tstate->interp, shared, obj, _new_tuple_object); + data->free = _tuple_shared_free; + return 0; + +error: + _tuple_shared_free(shared); + return -1; +} + +// registration + +static void +_register_builtins_for_crossinterpreter_data(struct _xidregistry *xidregistry) +{ + // None + if (_xidregistry_add_type(xidregistry, (PyTypeObject *)PyObject_Type(Py_None), _none_shared) != 0) { + Py_FatalError("could not register None for cross-interpreter sharing"); + } + + // int + if (_xidregistry_add_type(xidregistry, &PyLong_Type, _long_shared) != 0) { + Py_FatalError("could not register int for cross-interpreter sharing"); + } + + // bytes + if (_xidregistry_add_type(xidregistry, &PyBytes_Type, _bytes_shared) != 0) { + Py_FatalError("could not register bytes for cross-interpreter sharing"); + } + + // str + if (_xidregistry_add_type(xidregistry, &PyUnicode_Type, _str_shared) != 0) { + Py_FatalError("could not register str for cross-interpreter sharing"); + } + + // bool + if (_xidregistry_add_type(xidregistry, &PyBool_Type, _bool_shared) != 0) { + Py_FatalError("could not register bool for cross-interpreter sharing"); + } + + // float + if (_xidregistry_add_type(xidregistry, &PyFloat_Type, _float_shared) != 0) { + Py_FatalError("could not register float for cross-interpreter sharing"); + } + + // tuple + if (_xidregistry_add_type(xidregistry, &PyTuple_Type, _tuple_shared) != 0) { + Py_FatalError("could not register tuple for cross-interpreter sharing"); + } +} diff --git a/contrib/tools/python3/Python/crossinterp_exceptions.h b/contrib/tools/python3/Python/crossinterp_exceptions.h new file mode 100644 index 00000000000..278511da615 --- /dev/null +++ b/contrib/tools/python3/Python/crossinterp_exceptions.h @@ -0,0 +1,95 @@ + +/* InterpreterError extends Exception */ + +static PyTypeObject _PyExc_InterpreterError = { + PyVarObject_HEAD_INIT(NULL, 0) + .tp_name = "interpreters.InterpreterError", + .tp_doc = PyDoc_STR("A cross-interpreter operation failed"), + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, + //.tp_traverse = ((PyTypeObject *)PyExc_Exception)->tp_traverse, + //.tp_clear = ((PyTypeObject *)PyExc_Exception)->tp_clear, + //.tp_base = (PyTypeObject *)PyExc_Exception, +}; +PyObject *PyExc_InterpreterError = (PyObject *)&_PyExc_InterpreterError; + +/* InterpreterNotFoundError extends InterpreterError */ + +static PyTypeObject _PyExc_InterpreterNotFoundError = { + PyVarObject_HEAD_INIT(NULL, 0) + .tp_name = "interpreters.InterpreterNotFoundError", + .tp_doc = PyDoc_STR("An interpreter was not found"), + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, + //.tp_traverse = ((PyTypeObject *)PyExc_Exception)->tp_traverse, + //.tp_clear = ((PyTypeObject *)PyExc_Exception)->tp_clear, + .tp_base = &_PyExc_InterpreterError, +}; +PyObject *PyExc_InterpreterNotFoundError = (PyObject *)&_PyExc_InterpreterNotFoundError; + +/* NotShareableError extends ValueError */ + +static int +_init_not_shareable_error_type(PyInterpreterState *interp) +{ + const char *name = "interpreters.NotShareableError"; + PyObject *base = PyExc_ValueError; + PyObject *ns = NULL; + PyObject *exctype = PyErr_NewException(name, base, ns); + if (exctype == NULL) { + return -1; + } + + _PyInterpreterState_GetXIState(interp)->PyExc_NotShareableError = exctype; + return 0; +} + +static void +_fini_not_shareable_error_type(PyInterpreterState *interp) +{ + Py_CLEAR(_PyInterpreterState_GetXIState(interp)->PyExc_NotShareableError); +} + +static PyObject * +_get_not_shareable_error_type(PyInterpreterState *interp) +{ + assert(_PyInterpreterState_GetXIState(interp)->PyExc_NotShareableError != NULL); + return _PyInterpreterState_GetXIState(interp)->PyExc_NotShareableError; +} + + +/* lifecycle */ + +static int +init_exceptions(PyInterpreterState *interp) +{ + PyTypeObject *base = (PyTypeObject *)PyExc_Exception; + + // builtin static types + + _PyExc_InterpreterError.tp_base = base; + _PyExc_InterpreterError.tp_traverse = base->tp_traverse; + _PyExc_InterpreterError.tp_clear = base->tp_clear; + if (_PyStaticType_InitBuiltin(interp, &_PyExc_InterpreterError) < 0) { + return -1; + } + + _PyExc_InterpreterNotFoundError.tp_traverse = base->tp_traverse; + _PyExc_InterpreterNotFoundError.tp_clear = base->tp_clear; + if (_PyStaticType_InitBuiltin(interp, &_PyExc_InterpreterNotFoundError) < 0) { + return -1; + } + + // heap types + + // We would call _init_not_shareable_error_type() here too, + // but that leads to ref leaks + + return 0; +} + +static void +fini_exceptions(PyInterpreterState *interp) +{ + // Likewise with _fini_not_shareable_error_type(). + _PyStaticType_FiniBuiltin(interp, &_PyExc_InterpreterNotFoundError); + _PyStaticType_FiniBuiltin(interp, &_PyExc_InterpreterError); +} diff --git a/contrib/tools/python3/Python/deepfreeze/README.txt b/contrib/tools/python3/Python/deepfreeze/README.txt deleted file mode 100644 index 276ab51143a..00000000000 --- a/contrib/tools/python3/Python/deepfreeze/README.txt +++ /dev/null @@ -1,6 +0,0 @@ -This directory contains the generated .c files for all the deep-frozen -modules. Python/frozen.c depends on these files. - -None of these files are committed into the repo. - -See Tools/build/freeze_modules.py for more info. diff --git a/contrib/tools/python3/Python/deepfreeze/deepfreeze.c b/contrib/tools/python3/Python/deepfreeze/deepfreeze.c deleted file mode 100644 index 519e7ef8056..00000000000 --- a/contrib/tools/python3/Python/deepfreeze/deepfreeze.c +++ /dev/null @@ -1,147914 +0,0 @@ -#include "Python.h" -#include "internal/pycore_gc.h" -#include "internal/pycore_code.h" -#include "internal/pycore_frame.h" -#include "internal/pycore_long.h" - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[340]; - } -importlib__bootstrap_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 339, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x43\x6f\x72\x65\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x6f\x66\x20\x69\x6d\x70\x6f\x72\x74\x2e\x0a\x0a\x54\x68\x69\x73\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69\x73\x20\x4e\x4f\x54\x20\x6d\x65\x61\x6e\x74\x20\x74\x6f\x20\x62\x65\x20\x64\x69\x72\x65\x63\x74\x6c\x79\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x21\x20\x49\x74\x20\x68\x61\x73\x20\x62\x65\x65\x6e\x20\x64\x65\x73\x69\x67\x6e\x65\x64\x20\x73\x75\x63\x68\x0a\x74\x68\x61\x74\x20\x69\x74\x20\x63\x61\x6e\x20\x62\x65\x20\x62\x6f\x6f\x74\x73\x74\x72\x61\x70\x70\x65\x64\x20\x69\x6e\x74\x6f\x20\x50\x79\x74\x68\x6f\x6e\x20\x61\x73\x20\x74\x68\x65\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x6f\x66\x20\x69\x6d\x70\x6f\x72\x74\x2e\x20\x41\x73\x0a\x73\x75\x63\x68\x20\x69\x74\x20\x72\x65\x71\x75\x69\x72\x65\x73\x20\x74\x68\x65\x20\x69\x6e\x6a\x65\x63\x74\x69\x6f\x6e\x20\x6f\x66\x20\x73\x70\x65\x63\x69\x66\x69\x63\x20\x6d\x6f\x64\x75\x6c\x65\x73\x20\x61\x6e\x64\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x20\x69\x6e\x20\x6f\x72\x64\x65\x72\x20\x74\x6f\x0a\x77\x6f\x72\x6b\x2e\x20\x4f\x6e\x65\x20\x73\x68\x6f\x75\x6c\x64\x20\x75\x73\x65\x20\x69\x6d\x70\x6f\x72\x74\x6c\x69\x62\x20\x61\x73\x20\x74\x68\x65\x20\x70\x75\x62\x6c\x69\x63\x2d\x66\x61\x63\x69\x6e\x67\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x69\x73\x20\x6d\x6f\x64\x75\x6c\x65\x2e\x0a\x0a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib__bootstrap_toplevel_consts_1_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_AttributeError = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AttributeError", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(__qualname__), - & const_str_AttributeError._ascii.ob_base, - &_Py_ID(type), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[30]; - } -importlib__bootstrap_toplevel_consts_1_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 29, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str__object_name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_object_name", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[51]; - } -importlib__bootstrap_toplevel_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 50, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x02\x03\x05\x26\xd8\x0f\x12\xd7\x0f\x1f\xd1\x0f\x1f\xd0\x08\x1f\xf8\xdc\x0b\x19\xf2\x00\x01\x05\x26\xdc\x0f\x13\x90\x43\x8b\x79\xd7\x0f\x25\xd1\x0f\x25\xd2\x08\x25\xf0\x03\x01\x05\x26\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -importlib__bootstrap_toplevel_consts_1_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x82\x0b\x0e\x00\x8e\x1e\x2f\x03\xae\x01\x2f\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib__bootstrap_toplevel_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(obj), - }, - }, -}; -static - struct _PyCode_DEF(100) -importlib__bootstrap_toplevel_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 50, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib__bootstrap_toplevel_consts_1_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 23, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 1, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__object_name._ascii.ob_base, - .co_qualname = & const_str__object_name._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x18\x01\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x02\x59\x00\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[48]; - } -importlib__bootstrap_toplevel_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 47, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Simple substitute for functools.update_wrapper.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_3_consts_1 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(__module__), - &_Py_ID(__name__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_3_consts_0._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_3_consts_1._object.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_hasattr = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "hasattr", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_setattr = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "setattr", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_update = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "update", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -importlib__bootstrap_toplevel_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_hasattr._ascii.ob_base, - & const_str_setattr._ascii.ob_base, - &_Py_ID(getattr), - &_Py_ID(__dict__), - & const_str_update._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__wrap = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_wrap", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[67]; - } -importlib__bootstrap_toplevel_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 66, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe3\x13\x48\x88\x07\xdc\x0b\x12\x90\x33\x98\x07\xd5\x0b\x20\xdc\x0c\x13\x90\x43\x98\x17\xa4\x27\xa8\x23\xa8\x77\xd3\x22\x37\xd5\x0c\x38\xf0\x05\x00\x14\x49\x01\xf0\x06\x00\x05\x08\x87\x4c\x81\x4c\xd7\x04\x17\xd1\x04\x17\x98\x03\x9f\x0c\x99\x0c\xd5\x04\x25", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_new = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "new", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_old = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "old", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_new._ascii.ob_base, - & const_str_old._ascii.ob_base, - &_Py_ID(replace), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[4]; - } -importlib__bootstrap_toplevel_consts_3_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 3, - }, - .ob_shash = -1, - .ob_sval = " ", -}; -static - struct _PyCode_DEF(164) -importlib__bootstrap_toplevel_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 82, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_3_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 9, - .co_firstlineno = 40, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 2, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__wrap._ascii.ob_base, - .co_qualname = & const_str__wrap._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x44\x00\x5d\x26\x00\x00\x7d\x02\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\x73\x01\x8c\x10\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x02\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\xab\x03\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x28\x04\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_sys = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "sys", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(type), - & const_str_sys._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str__new_module = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_new_module", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -importlib__bootstrap_toplevel_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0b\x14\x8c\x34\x94\x03\x8b\x39\x90\x54\x8b\x3f\xd0\x04\x1a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib__bootstrap_toplevel_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(name), - }, - }, -}; -static - struct _PyCode_DEF(44) -importlib__bootstrap_toplevel_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 48, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 3, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__new_module._ascii.ob_base, - .co_qualname = & const_str__new_module._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x02\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__List = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_List", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__List._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -importlib__bootstrap_toplevel_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xd8\x04\x08", -}; -static - struct _PyCode_DEF(12) -importlib__bootstrap_toplevel_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 6, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_5_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 55, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 4, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__List._ascii.ob_base, - .co_qualname = & const_str__List._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -const_str__WeakValueDictionary = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_WeakValueDictionary", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[48]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 47, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_WeakValueDictionary.__init__..KeyedRef", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_1 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(key), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_super = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "super", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_remove = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "remove", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_super._ascii.ob_base, - &_Py_ID(__new__), - & const_str_remove._ascii.ob_base, - &_Py_ID(key), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[56]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 55, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_WeakValueDictionary.__init__..KeyedRef.__new__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[38]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 37, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xdc\x17\x1c\x91\x77\x91\x7f\xa0\x74\xa8\x52\xb0\x14\xb7\x1b\xb1\x1b\xd3\x17\x3d\x90\x04\xd8\x1b\x1e\x90\x04\x94\x08\xd8\x17\x1b\x90\x0b", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_ob = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ob", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(type), - & const_str_ob._ascii.ob_base, - &_Py_ID(key), - &_Py_ID(self), - &_Py_ID(__class__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\x20\x20\x20\x20\x80", -}; -static - struct _PyCode_DEF(76) -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 38, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 19, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 74, - .co_nlocalsplus = 5, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 5, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__new__), - .co_qualname = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x04\x7c\x00\x8d\x05\x00\x00\x7c\x00\x7c\x01\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x02\x7c\x03\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_super._ascii.ob_base, - &_Py_ID(__init__), - & const_str_remove._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[57]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 56, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_WeakValueDictionary.__init__..KeyedRef.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[23]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 22, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xdc\x10\x15\x91\x07\xd1\x10\x20\xa0\x12\xa0\x54\xa7\x5b\xa1\x5b\xd5\x10\x31", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - & const_str_ob._ascii.ob_base, - &_Py_ID(key), - &_Py_ID(__class__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x20\x20\x20\x80", -}; -static - struct _PyCode_DEF(58) -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 29, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 19, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 79, - .co_nlocalsplus = 4, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 6, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x03\x7c\x00\x8d\x05\x00\x00\x7c\x01\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str__iterating = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_iterating", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str__pending_removals = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_pending_removals", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str__weakref = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_weakref", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -const_str__remove_dead_weakref = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_remove_dead_weakref", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str__iterating._ascii.ob_base, - & const_str__pending_removals._ascii.ob_base, - &_Py_ID(append), - &_Py_ID(key), - & const_str__weakref._ascii.ob_base, - & const_str__remove_dead_weakref._ascii.ob_base, - &_Py_ID(data), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[55]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 54, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_WeakValueDictionary.__init__..KeyedRef.remove", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[79]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 78, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xf1\x08\x00\x18\x24\x93\x7e\x90\x04\xd8\x13\x17\xd0\x13\x23\xd8\x17\x1b\x97\x7f\x92\x7f\xd8\x18\x1c\xd7\x18\x2e\xd1\x18\x2e\xd7\x18\x35\xd1\x18\x35\xb0\x62\xb7\x66\xb1\x66\xd5\x18\x3d\xe4\x18\x20\xd7\x18\x35\xd1\x18\x35\xb0\x64\xb7\x69\xb1\x69\xc0\x12\xc7\x16\xc1\x16\xd5\x18\x48\xf0\x09\x00\x14\x24", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_wr = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "wr", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_self_weakref = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "self_weakref", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_wr._ascii.ob_base, - &_Py_ID(self), - & const_str_self_weakref._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[4]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 3, - }, - .ob_shash = -1, - .ob_sval = "\x20\x20\x80", -}; -static - struct _PyCode_DEF(210) -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 105, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 19, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 82, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 7, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_remove._ascii.ob_base, - .co_qualname = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x02\x00\x89\x02\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x81\x5d\x7c\x01\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x26\x7c\x01\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x79\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_0._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_1._object.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_staticmethod = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "staticmethod", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - &_Py_ID(__new__), - &_Py_ID(__init__), - & const_str_staticmethod._ascii.ob_base, - & const_str_remove._ascii.ob_base, - &_Py_ID(__classcell__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_KeyedRef = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "KeyedRef", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[41]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 40, - }, - .ob_shash = -1, - .ob_sval = "\xf9\x84\x00\xe0\x18\x1e\x88\x49\xf4\x04\x03\x0d\x1c\xf4\x0a\x01\x0d\x32\xf0\x06\x00\x0e\x1a\xf3\x02\x08\x0d\x49\x01\xf3\x03\x00\x0e\x1a\xf4\x02\x08\x0d\x49\x01", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(__class__), - & const_str_self_weakref._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = "\x40\x80", -}; -static - struct _PyCode_DEF(66) -importlib__bootstrap_toplevel_consts_7_consts_1_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 33, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 70, - .co_nlocalsplus = 2, - .co_nlocals = 0, - .co_ncellvars = 1, - .co_nfreevars = 1, - .co_version = 8, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_KeyedRef._ascii.ob_base, - .co_qualname = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_0._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x87\x00\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x88\x00\x66\x01\x64\x02\x84\x08\x5a\x04\x88\x00\x66\x01\x64\x03\x84\x08\x5a\x05\x65\x06\x88\x01\x66\x01\x64\x04\x84\x08\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x88\x00\x78\x01\x5a\x08\x53\x00", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1.ob_base.ob_base, - & const_str_KeyedRef._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_ref = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ref", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str__KeyedRef = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_KeyedRef", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str__weakref._ascii.ob_base, - & const_str_ref._ascii.ob_base, - & const_str__KeyedRef._ascii.ob_base, - &_Py_ID(clear), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[30]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 29, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_WeakValueDictionary.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[54]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 53, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xdc\x17\x1f\x97\x7c\x91\x7c\xa0\x44\xd3\x17\x29\x88\x0c\xf6\x0a\x15\x09\x49\x01\x94\x78\x97\x7c\x91\x7c\xf4\x00\x15\x09\x49\x01\xf0\x2e\x00\x1a\x22\x88\x04\x8c\x0e\xd8\x08\x0c\x8f\x0a\x89\x0a\x8d\x0c", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_KeyedRef._ascii.ob_base, - & const_str_self_weakref._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[4]; - } -importlib__bootstrap_toplevel_consts_7_consts_1_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 3, - }, - .ob_shash = -1, - .ob_sval = " @", -}; -static - struct _PyCode_DEF(148) -importlib__bootstrap_toplevel_consts_7_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 74, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_7_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_7_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 64, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 9, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & importlib__bootstrap_toplevel_consts_7_consts_1_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_7_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x02\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x8a\x02\x02\x00\x47\x00\x88\x02\x66\x01\x64\x01\x84\x08\x64\x02\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_set = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "set", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str__pending_removals._ascii.ob_base, - & const_str_set._ascii.ob_base, - & const_str__iterating._ascii.ob_base, - &_Py_ID(data), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -importlib__bootstrap_toplevel_consts_7_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_WeakValueDictionary.clear", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[27]; - } -importlib__bootstrap_toplevel_consts_7_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 26, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x21\x23\x88\x04\xd4\x08\x1e\xdc\x1a\x1d\x9b\x25\x88\x04\x8c\x0f\xd8\x14\x16\x88\x04\x8d\x09", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(self), - }, - }, -}; -static - struct _PyCode_DEF(62) -importlib__bootstrap_toplevel_consts_7_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 31, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_7_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 96, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 10, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(clear), - .co_qualname = & importlib__bootstrap_toplevel_consts_7_consts_2_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_7_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x67\x00\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_pop = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pop", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_IndexError = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IndexError", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str__pending_removals._ascii.ob_base, - & const_str_pop._ascii.ob_base, - &_Py_ID(data), - & const_str_IndexError._ascii.ob_base, - & const_str__weakref._ascii.ob_base, - & const_str__remove_dead_weakref._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__commit_removals = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_commit_removals", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[38]; - } -importlib__bootstrap_toplevel_consts_7_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 37, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_WeakValueDictionary._commit_removals", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[87]; - } -importlib__bootstrap_toplevel_consts_7_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 86, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0e\x12\xd7\x0e\x24\xd1\x0e\x24\xd7\x0e\x28\xd1\x0e\x28\x88\x03\xd8\x0c\x10\x8f\x49\x89\x49\x88\x01\xd8\x0e\x12\xf0\x02\x03\x0d\x17\xd9\x16\x19\x93\x65\x90\x03\xf4\x06\x00\x0d\x15\xd7\x0c\x29\xd1\x0c\x29\xa8\x21\xa8\x53\xd4\x0c\x31\xf0\x0b\x00\x0f\x13\xf8\xf4\x06\x00\x14\x1e\xf2\x00\x01\x0d\x17\xd9\x10\x16\xf0\x03\x01\x0d\x17\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -importlib__bootstrap_toplevel_consts_7_consts_3_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\xa5\x07\x41\x03\x00\xc1\x03\x09\x41\x0f\x03\xc1\x0e\x01\x41\x0f\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - & const_str_pop._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[100], - &_Py_ID(key), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = " ", -}; -static - struct _PyCode_DEF(164) -importlib__bootstrap_toplevel_consts_7_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 82, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_7_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib__bootstrap_toplevel_consts_7_consts_3_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 101, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 11, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__commit_removals._ascii.ob_base, - .co_qualname = & importlib__bootstrap_toplevel_consts_7_consts_3_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_7_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x09\x00\x09\x00\x02\x00\x7c\x01\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x03\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x1f\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_KeyError = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "KeyError", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str__pending_removals._ascii.ob_base, - & const_str__commit_removals._ascii.ob_base, - &_Py_ID(data), - & const_str_KeyError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -importlib__bootstrap_toplevel_consts_7_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_WeakValueDictionary.get", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[88]; - } -importlib__bootstrap_toplevel_consts_7_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 87, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0b\x0f\xd7\x0b\x21\xd2\x0b\x21\xd8\x0c\x10\xd7\x0c\x21\xd1\x0c\x21\xd4\x0c\x23\xf0\x02\x08\x09\x19\xd8\x11\x15\x97\x19\x91\x19\x98\x33\x91\x1e\x88\x42\xf1\x08\x00\x16\x18\x93\x54\x90\x09\x90\x01\xd0\x0f\x22\xd8\x17\x1e\x90\x0e\xe0\x17\x18\x90\x08\xf8\xf4\x0d\x00\x10\x18\xf2\x00\x01\x09\x1b\xd8\x13\x1a\x8a\x4e\xf0\x03\x01\x09\x1b\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[16]; - } -importlib__bootstrap_toplevel_consts_7_consts_5_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 15, - }, - .ob_shash = -1, - .ob_sval = "\x9e\x0f\x3a\x00\xba\x0b\x41\x08\x03\xc1\x07\x01\x41\x08\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_5_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(key), - &_Py_ID(default), - & const_str_wr._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[111], - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = " ", -}; -static - struct _PyCode_DEF(150) -importlib__bootstrap_toplevel_consts_7_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 75, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_7_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib__bootstrap_toplevel_consts_7_consts_5_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 111, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 12, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(get), - .co_qualname = & importlib__bootstrap_toplevel_consts_7_consts_5_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_7_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x10\x7c\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x19\x00\x00\x00\x7d\x03\x02\x00\x7c\x03\xab\x00\x00\x00\x00\x00\x00\x00\x78\x01\x7d\x04\x80\x02\x7c\x02\x53\x00\x7c\x04\x53\x00\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x7c\x02\x63\x02\x59\x00\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(data), - & const_str_KeyError._ascii.ob_base, - & const_str__pending_removals._ascii.ob_base, - & const_str__commit_removals._ascii.ob_base, - & const_str__KeyedRef._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_setdefault = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "setdefault", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -importlib__bootstrap_toplevel_consts_7_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_WeakValueDictionary.setdefault", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[110]; - } -importlib__bootstrap_toplevel_consts_7_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 109, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x02\x03\x09\x15\xd8\x10\x1e\x90\x04\x97\x09\x91\x09\x98\x23\x91\x0e\xd3\x10\x20\x88\x41\xf0\x06\x00\x0c\x0d\x88\x39\xd8\x0f\x13\xd7\x0f\x25\xd2\x0f\x25\xd8\x10\x14\xd7\x10\x25\xd1\x10\x25\xd4\x10\x27\xd8\x1d\x21\x9f\x5e\x99\x5e\xa8\x47\xb0\x53\xd3\x1d\x39\x88\x44\x8f\x49\x89\x49\x90\x63\x89\x4e\xd8\x13\x1a\x88\x4e\xe0\x13\x14\x88\x48\xf8\xf4\x11\x00\x10\x18\xf2\x00\x01\x09\x15\xd8\x10\x14\x8a\x41\xf0\x03\x01\x09\x15\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -importlib__bootstrap_toplevel_consts_7_consts_6_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x82\x14\x41\x17\x00\xc1\x17\x0b\x41\x25\x03\xc1\x24\x01\x41\x25\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(key), - &_Py_ID(default), - (PyObject *)&_Py_SINGLETON(strings).ascii[111], - }, - }, -}; -static - struct _PyCode_DEF(208) -importlib__bootstrap_toplevel_consts_7_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 104, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_7_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib__bootstrap_toplevel_consts_7_consts_6_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 124, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 13, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_setdefault._ascii.ob_base, - .co_qualname = & importlib__bootstrap_toplevel_consts_7_consts_6_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_7_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x02\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x19\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x03\x80\x3d\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x10\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x3c\x00\x00\x00\x7c\x02\x53\x00\x7c\x03\x53\x00\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x64\x00\x7d\x03\x59\x00\x8c\x4e\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str__WeakValueDictionary._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_7_consts_1.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_7_consts_2.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_7_consts_3.ob_base.ob_base, - Py_None, - & importlib__bootstrap_toplevel_consts_7_consts_5.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_7_consts_6.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -importlib__bootstrap_toplevel_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__init__), - &_Py_ID(clear), - & const_str__commit_removals._ascii.ob_base, - &_Py_ID(get), - & const_str_setdefault._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[29]; - } -importlib__bootstrap_toplevel_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 28, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf2\x04\x1e\x05\x15\xf2\x40\x01\x03\x05\x17\xf2\x0a\x08\x05\x32\xf3\x14\x0b\x05\x19\xf4\x1a\x0b\x05\x15", -}; -static - struct _PyCode_DEF(46) -importlib__bootstrap_toplevel_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_7_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 62, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 14, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__WeakValueDictionary._ascii.ob_base, - .co_qualname = & const_str__WeakValueDictionary._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x84\x00\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x07\x64\x05\x84\x01\x5a\x06\x64\x07\x64\x06\x84\x01\x5a\x07\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str__BlockingOnManager = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_BlockingOnManager", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[60]; - } -importlib__bootstrap_toplevel_consts_9_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 59, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "A context manager responsible to updating ``_blocking_on``.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_thread_id = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "thread_id", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_lock = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "lock", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_9_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_thread_id._ascii.ob_base, - & const_str_lock._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -importlib__bootstrap_toplevel_consts_9_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_BlockingOnManager.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[17]; - } -importlib__bootstrap_toplevel_consts_9_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 16, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x19\x22\x88\x04\x8c\x0e\xd8\x14\x18\x88\x04\x8d\x09", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_9_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_thread_id._ascii.ob_base, - & const_str_lock._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(32) -importlib__bootstrap_toplevel_consts_9_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 16, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_9_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 158, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 15, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_9_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & importlib__bootstrap_toplevel_consts_9_consts_2_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_9_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[68]; - } -importlib__bootstrap_toplevel_consts_9_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 67, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Mark the running thread as waiting for self.lock. via _blocking_on.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_9_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_9_consts_3_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str__blocking_on = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_blocking_on", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_blocked_on = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "blocked_on", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -importlib__bootstrap_toplevel_consts_9_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str__blocking_on._ascii.ob_base, - & const_str_setdefault._ascii.ob_base, - & const_str_thread_id._ascii.ob_base, - & const_str__List._ascii.ob_base, - & const_str_blocked_on._ascii.ob_base, - &_Py_ID(append), - & const_str_lock._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -importlib__bootstrap_toplevel_consts_9_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_BlockingOnManager.__enter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[53]; - } -importlib__bootstrap_toplevel_consts_9_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 52, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x10\x00\x1b\x27\xd7\x1a\x31\xd1\x1a\x31\xb0\x24\xb7\x2e\xb1\x2e\xc4\x25\xc3\x27\xd3\x1a\x4a\x88\x04\x8c\x0f\xd8\x08\x0c\x8f\x0f\x89\x0f\xd7\x08\x1e\xd1\x08\x1e\x98\x74\x9f\x79\x99\x79\xd5\x08\x29", -}; -static - struct _PyCode_DEF(168) -importlib__bootstrap_toplevel_consts_9_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 84, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_9_consts_3_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_9_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 162, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 16, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__enter__), - .co_qualname = & importlib__bootstrap_toplevel_consts_9_consts_3_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_9_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[55]; - } -importlib__bootstrap_toplevel_consts_9_consts_4_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 54, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Remove self.lock from this thread's _blocking_on list.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_9_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_9_consts_4_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_9_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_blocked_on._ascii.ob_base, - & const_str_remove._ascii.ob_base, - & const_str_lock._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -importlib__bootstrap_toplevel_consts_9_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_BlockingOnManager.__exit__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[25]; - } -importlib__bootstrap_toplevel_consts_9_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 24, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x08\x0c\x8f\x0f\x89\x0f\xd7\x08\x1e\xd1\x08\x1e\x98\x74\x9f\x79\x99\x79\xd5\x08\x29", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_kwargs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "kwargs", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_9_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(args), - & const_str_kwargs._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(78) -importlib__bootstrap_toplevel_consts_9_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 39, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_9_consts_4_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_9_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 15, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 173, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 17, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_9_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__exit__), - .co_qualname = & importlib__bootstrap_toplevel_consts_9_consts_4_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_9_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -importlib__bootstrap_toplevel_consts_9_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str__BlockingOnManager._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_9_consts_1._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_9_consts_2.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_9_consts_3.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_9_consts_4.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -importlib__bootstrap_toplevel_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__init__), - &_Py_ID(__enter__), - &_Py_ID(__exit__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[21]; - } -importlib__bootstrap_toplevel_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 20, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xd9\x04\x45\xf2\x02\x02\x05\x19\xf2\x08\x09\x05\x2a\xf3\x16\x02\x05\x2a", -}; -static - struct _PyCode_DEF(34) -importlib__bootstrap_toplevel_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 17, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_9_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 156, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 18, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__BlockingOnManager._ascii.ob_base, - .co_qualname = & const_str__BlockingOnManager._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x04\x84\x00\x5a\x06\x79\x05", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__DeadlockError = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_DeadlockError", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_11_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__DeadlockError._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct _PyCode_DEF(12) -importlib__bootstrap_toplevel_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 6, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_11_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 178, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 19, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__DeadlockError._ascii.ob_base, - .co_qualname = & const_str__DeadlockError._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[755]; - } -importlib__bootstrap_toplevel_consts_13_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 754, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x43\x68\x65\x63\x6b\x20\x69\x66\x20\x27\x74\x61\x72\x67\x65\x74\x5f\x69\x64\x27\x20\x69\x73\x20\x68\x6f\x6c\x64\x69\x6e\x67\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x6c\x6f\x63\x6b\x20\x61\x73\x20\x61\x6e\x6f\x74\x68\x65\x72\x20\x74\x68\x72\x65\x61\x64\x28\x73\x29\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x73\x65\x61\x72\x63\x68\x20\x77\x69\x74\x68\x69\x6e\x20\x27\x62\x6c\x6f\x63\x6b\x69\x6e\x67\x5f\x6f\x6e\x27\x20\x73\x74\x61\x72\x74\x73\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x74\x68\x72\x65\x61\x64\x73\x20\x6c\x69\x73\x74\x65\x64\x20\x69\x6e\x0a\x20\x20\x20\x20\x27\x63\x61\x6e\x64\x69\x64\x61\x74\x65\x5f\x69\x64\x73\x27\x2e\x20\x20\x27\x73\x65\x65\x6e\x5f\x69\x64\x73\x27\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x61\x6e\x79\x20\x74\x68\x72\x65\x61\x64\x73\x20\x74\x68\x61\x74\x20\x61\x72\x65\x20\x63\x6f\x6e\x73\x69\x64\x65\x72\x65\x64\x0a\x20\x20\x20\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x74\x72\x61\x76\x65\x72\x73\x65\x64\x20\x69\x6e\x20\x74\x68\x65\x20\x73\x65\x61\x72\x63\x68\x2e\x0a\x0a\x20\x20\x20\x20\x4b\x65\x79\x77\x6f\x72\x64\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x3a\x0a\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x5f\x69\x64\x20\x20\x20\x20\x20\x2d\x2d\x20\x54\x68\x65\x20\x74\x68\x72\x65\x61\x64\x20\x69\x64\x20\x74\x6f\x20\x74\x72\x79\x20\x74\x6f\x20\x72\x65\x61\x63\x68\x2e\x0a\x20\x20\x20\x20\x73\x65\x65\x6e\x5f\x69\x64\x73\x20\x20\x20\x20\x20\x20\x2d\x2d\x20\x41\x20\x73\x65\x74\x20\x6f\x66\x20\x74\x68\x72\x65\x61\x64\x73\x20\x74\x68\x61\x74\x20\x68\x61\x76\x65\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x62\x65\x65\x6e\x20\x76\x69\x73\x69\x74\x65\x64\x2e\x0a\x20\x20\x20\x20\x63\x61\x6e\x64\x69\x64\x61\x74\x65\x5f\x69\x64\x73\x20\x2d\x2d\x20\x54\x68\x65\x20\x74\x68\x72\x65\x61\x64\x20\x69\x64\x73\x20\x66\x72\x6f\x6d\x20\x77\x68\x69\x63\x68\x20\x74\x6f\x20\x62\x65\x67\x69\x6e\x2e\x0a\x20\x20\x20\x20\x62\x6c\x6f\x63\x6b\x69\x6e\x67\x5f\x6f\x6e\x20\x20\x20\x2d\x2d\x20\x41\x20\x64\x69\x63\x74\x20\x72\x65\x70\x72\x65\x73\x65\x6e\x74\x69\x6e\x67\x20\x74\x68\x65\x20\x74\x68\x72\x65\x61\x64\x2f\x62\x6c\x6f\x63\x6b\x69\x6e\x67\x2d\x6f\x6e\x20\x67\x72\x61\x70\x68\x2e\x20\x20\x54\x68\x69\x73\x20\x6d\x61\x79\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x6f\x62\x6a\x65\x63\x74\x20\x61\x73\x20\x74\x68\x65\x20\x67\x6c\x6f\x62\x61\x6c\x20\x27\x5f\x62\x6c\x6f\x63\x6b\x69\x6e\x67\x5f\x6f\x6e\x27\x20\x62\x75\x74\x20\x69\x74\x20\x69\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x20\x74\x6f\x20\x72\x65\x64\x75\x63\x65\x20\x74\x68\x65\x20\x69\x6d\x70\x61\x63\x74\x20\x74\x68\x61\x74\x20\x67\x6c\x6f\x62\x61\x6c\x20\x6d\x75\x74\x61\x62\x6c\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x74\x65\x20\x68\x61\x73\x20\x6f\x6e\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6c\x74\x20\x6f\x66\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_seen_ids = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "seen_ids", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_candidate_ids = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "candidate_ids", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_blocking_on = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "blocking_on", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_13_consts_3 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_seen_ids._ascii.ob_base, - & const_str_candidate_ids._ascii.ob_base, - & const_str_blocking_on._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_13_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_13_consts_0._ascii.ob_base, - Py_True, - Py_False, - & importlib__bootstrap_toplevel_consts_13_consts_3._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str__has_deadlocked = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_has_deadlocked", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_13_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(get), - &_Py_ID(add), - &_Py_ID(owner), - & const_str__has_deadlocked._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[136]; - } -importlib__bootstrap_toplevel_consts_13_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 135, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x20\x00\x08\x11\x90\x4d\xd1\x07\x21\xf0\x06\x00\x10\x14\xf3\x06\x00\x10\x1d\x88\x03\xd8\x29\x34\xaf\x1f\xa9\x1f\xb8\x13\xd3\x29\x3d\xd0\x10\x3d\xd0\x10\x25\xd0\x10\x3d\xe0\x0c\x14\xd8\x0d\x10\x90\x48\x89\x5f\xf1\x0a\x00\x14\x19\xd8\x08\x10\x8f\x0c\x89\x0c\x90\x53\xd4\x08\x19\xf1\x06\x00\x29\x3e\xd3\x10\x3e\xd1\x28\x3d\xa0\x04\x90\x14\x97\x1a\x93\x1a\xd0\x28\x3d\x88\x05\xd0\x10\x3e\xdc\x0b\x1a\x98\x39\xa8\x78\xc0\x75\xd8\x1c\x27\xf6\x03\x01\x0c\x29\xe1\x13\x17\xf0\x21\x00\x10\x1d\xf0\x24\x00\x0c\x11\xf9\xf2\x0b\x00\x11\x3f", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -importlib__bootstrap_toplevel_consts_13_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\xba\x13\x41\x23\x06", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_target_id = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "target_id", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_tid = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "tid", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -const_str_candidate_blocking_on = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "candidate_blocking_on", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_edges = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "edges", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -importlib__bootstrap_toplevel_consts_13_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_target_id._ascii.ob_base, - & const_str_seen_ids._ascii.ob_base, - & const_str_candidate_ids._ascii.ob_base, - & const_str_blocking_on._ascii.ob_base, - & const_str_tid._ascii.ob_base, - & const_str_candidate_blocking_on._ascii.ob_base, - & const_str_lock._ascii.ob_base, - & const_str_edges._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -importlib__bootstrap_toplevel_consts_13_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = " ", -}; -static - struct _PyCode_DEF(208) -importlib__bootstrap_toplevel_consts_13 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 104, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_13_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_13_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib__bootstrap_toplevel_consts_13_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 3, - .co_framesize = 15 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 183, - .co_nlocalsplus = 8, - .co_nlocals = 8, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 20, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_13_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_13_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__has_deadlocked._ascii.ob_base, - .co_qualname = & const_str__has_deadlocked._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_13_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x7c\x02\x76\x00\x72\x01\x79\x01\x7c\x02\x44\x00\x5d\x57\x00\x00\x7d\x04\x7c\x03\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x78\x01\x7d\x05\x73\x01\x8c\x17\x7c\x04\x7c\x01\x76\x00\x72\x02\x01\x00\x79\x02\x7c\x01\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x05\x44\x00\x8f\x06\x63\x02\x67\x00\x63\x02\x5d\x0e\x00\x00\x7d\x06\x7c\x06\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x02\x8c\x10\x04\x00\x7d\x07\x7d\x06\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x07\x7c\x03\xac\x03\xab\x04\x00\x00\x00\x00\x00\x00\x73\x01\x8c\x57\x01\x00\x79\x01\x04\x00\x79\x02\x63\x02\x01\x00\x63\x02\x7d\x06\x77\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str__ModuleLock = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModuleLock", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[170]; - } -importlib__bootstrap_toplevel_consts_14_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 169, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x20\x72\x65\x63\x75\x72\x73\x69\x76\x65\x20\x6c\x6f\x63\x6b\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x77\x68\x69\x63\x68\x20\x69\x73\x20\x61\x62\x6c\x65\x20\x74\x6f\x20\x64\x65\x74\x65\x63\x74\x20\x64\x65\x61\x64\x6c\x6f\x63\x6b\x73\x0a\x20\x20\x20\x20\x28\x65\x2e\x67\x2e\x20\x74\x68\x72\x65\x61\x64\x20\x31\x20\x74\x72\x79\x69\x6e\x67\x20\x74\x6f\x20\x74\x61\x6b\x65\x20\x6c\x6f\x63\x6b\x73\x20\x41\x20\x74\x68\x65\x6e\x20\x42\x2c\x20\x61\x6e\x64\x20\x74\x68\x72\x65\x61\x64\x20\x32\x20\x74\x72\x79\x69\x6e\x67\x20\x74\x6f\x0a\x20\x20\x20\x20\x74\x61\x6b\x65\x20\x6c\x6f\x63\x6b\x73\x20\x42\x20\x74\x68\x65\x6e\x20\x41\x29\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str__thread = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_thread", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_RLock = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "RLock", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_allocate_lock = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "allocate_lock", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_wakeup = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "wakeup", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_waiters = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "waiters", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & const_str__thread._ascii.ob_base, - & const_str_RLock._ascii.ob_base, - & const_str_lock._ascii.ob_base, - & const_str_allocate_lock._ascii.ob_base, - & const_str_wakeup._ascii.ob_base, - &_Py_ID(name), - &_Py_ID(owner), - &_Py_ID(count), - & const_str_waiters._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -importlib__bootstrap_toplevel_consts_14_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModuleLock.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[70]; - } -importlib__bootstrap_toplevel_consts_14_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 69, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x2a\x00\x15\x1c\x97\x4d\x91\x4d\x93\x4f\x88\x04\x8c\x09\xdc\x16\x1d\xd7\x16\x2b\xd1\x16\x2b\xd3\x16\x2d\x88\x04\x8c\x0b\xf0\x06\x00\x15\x19\x88\x04\x8c\x09\xf0\x08\x00\x16\x1a\x88\x04\x8c\x0a\xf0\x16\x00\x16\x18\x88\x04\x8c\x0a\xf0\x1c\x00\x18\x1a\x88\x04\x8d\x0c", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(name), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = " ", -}; -static - struct _PyCode_DEF(160) -importlib__bootstrap_toplevel_consts_14_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 80, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_14_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 232, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 21, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_14_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & importlib__bootstrap_toplevel_consts_14_consts_2_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_14_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x00\x5f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x7c\x00\x5f\x06\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x7c\x00\x5f\x07\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x7c\x00\x5f\x08\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts_3_consts_1 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_target_id._ascii.ob_base, - & const_str_seen_ids._ascii.ob_base, - & const_str_candidate_ids._ascii.ob_base, - & const_str_blocking_on._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & importlib__bootstrap_toplevel_consts_14_consts_3_consts_1._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_get_ident = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "get_ident", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str__has_deadlocked._ascii.ob_base, - & const_str__thread._ascii.ob_base, - & const_str_get_ident._ascii.ob_base, - & const_str_set._ascii.ob_base, - &_Py_ID(owner), - & const_str__blocking_on._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_has_deadlock = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "has_deadlock", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -importlib__bootstrap_toplevel_consts_14_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModuleLock.has_deadlock", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[49]; - } -importlib__bootstrap_toplevel_consts_14_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 48, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0a\x00\x10\x1f\xe4\x16\x1d\xd7\x16\x27\xd1\x16\x27\xd3\x16\x29\xdc\x15\x18\x93\x55\xf0\x06\x00\x1c\x20\x9f\x3a\x99\x3a\x98\x2c\xe4\x18\x24\xf4\x11\x09\x10\x0a\xf0\x00\x09\x09\x0a", -}; -static - struct _PyCode_DEF(114) -importlib__bootstrap_toplevel_consts_14_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 57, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_14_consts_3_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_14_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 288, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 22, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_has_deadlock._ascii.ob_base, - .co_qualname = & importlib__bootstrap_toplevel_consts_14_consts_3_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_14_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x01\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\xac\x01\xab\x04\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[186]; - } -importlib__bootstrap_toplevel_consts_14_consts_4_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 185, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\x63\x71\x75\x69\x72\x65\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x6c\x6f\x63\x6b\x2e\x20\x20\x49\x66\x20\x61\x20\x70\x6f\x74\x65\x6e\x74\x69\x61\x6c\x20\x64\x65\x61\x64\x6c\x6f\x63\x6b\x20\x69\x73\x20\x64\x65\x74\x65\x63\x74\x65\x64\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x20\x5f\x44\x65\x61\x64\x6c\x6f\x63\x6b\x45\x72\x72\x6f\x72\x20\x69\x73\x20\x72\x61\x69\x73\x65\x64\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x74\x68\x65\x72\x77\x69\x73\x65\x2c\x20\x74\x68\x65\x20\x6c\x6f\x63\x6b\x20\x69\x73\x20\x61\x6c\x77\x61\x79\x73\x20\x61\x63\x71\x75\x69\x72\x65\x64\x20\x61\x6e\x64\x20\x54\x72\x75\x65\x20\x69\x73\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -importlib__bootstrap_toplevel_consts_14_consts_4_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "deadlock detected by ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_14_consts_4_consts_0._ascii.ob_base, - Py_True, - Py_None, - & importlib__bootstrap_toplevel_consts_14_consts_4_consts_3._ascii.ob_base, - Py_False, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_acquire = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "acquire", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str__thread._ascii.ob_base, - & const_str_get_ident._ascii.ob_base, - & const_str__BlockingOnManager._ascii.ob_base, - & const_str_lock._ascii.ob_base, - &_Py_ID(count), - &_Py_ID(owner), - &_Py_ID(append), - & const_str_has_deadlock._ascii.ob_base, - & const_str__DeadlockError._ascii.ob_base, - & const_str_wakeup._ascii.ob_base, - & const_str_acquire._ascii.ob_base, - & const_str_waiters._ascii.ob_base, - &_Py_ID(release), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -importlib__bootstrap_toplevel_consts_14_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModuleLock.acquire", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[245]; - } -importlib__bootstrap_toplevel_consts_14_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 244, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0c\x00\x0f\x16\xd7\x0e\x1f\xd1\x0e\x1f\xd3\x0e\x21\x88\x03\xdc\x0d\x1f\xa0\x03\xa0\x54\xd5\x0d\x2a\xd8\x12\x16\xf0\x08\x00\x16\x1a\x97\x59\x93\x59\xd8\x17\x1b\x97\x7a\x91\x7a\xa0\x52\xd2\x17\x27\xa8\x34\xaf\x3a\xa9\x3a\xb8\x13\xd2\x2b\x3c\xf0\x0e\x00\x26\x29\x98\x04\x9c\x0a\xd8\x18\x1c\x9f\x0a\x99\x0a\xd7\x18\x29\xd1\x18\x29\xa8\x24\xd4\x18\x2f\xd8\x1f\x23\xf7\x15\x00\x16\x1f\xf7\x0b\x00\x0e\x2b\xd0\x0d\x2a\xf0\x44\x01\x00\x18\x1c\xd7\x17\x28\xd1\x17\x28\xd4\x17\x2a\xdc\x1e\x2c\xd0\x2f\x44\xc0\x54\xc0\x48\xd0\x2d\x4d\xd3\x1e\x4e\xd0\x18\x4e\xf0\x1a\x00\x18\x1c\x97\x7b\x91\x7b\xd7\x17\x2a\xd1\x17\x2a\xa8\x35\xd4\x17\x31\xd8\x18\x1c\x9f\x0c\x99\x0c\xd7\x18\x2b\xd1\x18\x2b\xa8\x44\xd4\x18\x31\xf7\x59\x01\x00\x16\x1f\xf0\x62\x01\x00\x11\x15\x97\x0b\x91\x0b\xd7\x10\x23\xd1\x10\x23\xd4\x10\x25\xf0\x0a\x00\x11\x15\x97\x0b\x91\x0b\xd7\x10\x23\xd1\x10\x23\xd4\x10\x25\xf0\x75\x01\x00\x13\x17\xf7\x08\x00\x16\x1f\x90\x59\xfa\xf7\x0b\x00\x0e\x2b\xd0\x0d\x2a\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[49]; - } -importlib__bootstrap_toplevel_consts_14_consts_4_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 48, - }, - .ob_shash = -1, - .ob_sval = "\xa1\x0e\x44\x1f\x03\xaf\x41\x02\x44\x13\x05\xc1\x31\x08\x44\x1f\x03\xc2\x02\x41\x14\x44\x13\x05\xc3\x16\x3d\x44\x1f\x03\xc4\x13\x05\x44\x1c\x09\xc4\x18\x07\x44\x1f\x03\xc4\x1f\x05\x44\x28\x07", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - & const_str_tid._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(598) -importlib__bootstrap_toplevel_consts_14_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 299, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_14_consts_4_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_14_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib__bootstrap_toplevel_consts_14_consts_4_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 304, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 23, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_14_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_acquire._ascii.ob_base, - .co_qualname = & importlib__bootstrap_toplevel_consts_14_consts_4_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_14_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x35\x00\x01\x00\x09\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x01\x00\x7c\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x6b\x28\x00\x00\x73\x0f\x7c\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6b\x28\x00\x00\x72\x34\x7c\x01\x7c\x00\x5f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x64\x02\x64\x02\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x64\x02\x64\x02\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01\x7c\x00\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x72\x0e\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x7c\x00\x9b\x02\x9d\x02\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\xab\x01\x00\x00\x00\x00\x00\x00\x72\x1b\x7c\x00\x6a\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x02\x64\x02\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x8c\xf0\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x8c\x3e\x78\x03\x59\x00\x77\x01\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x79\x02\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -importlib__bootstrap_toplevel_consts_14_consts_5_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "cannot release un-acquired lock", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & importlib__bootstrap_toplevel_consts_14_consts_5_consts_1._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_RuntimeError = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "RuntimeError", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & const_str__thread._ascii.ob_base, - & const_str_get_ident._ascii.ob_base, - & const_str_lock._ascii.ob_base, - &_Py_ID(owner), - & const_str_RuntimeError._ascii.ob_base, - &_Py_ID(len), - &_Py_ID(count), - & const_str_pop._ascii.ob_base, - & const_str_waiters._ascii.ob_base, - & const_str_wakeup._ascii.ob_base, - &_Py_ID(release), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -importlib__bootstrap_toplevel_consts_14_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModuleLock.release", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[161]; - } -importlib__bootstrap_toplevel_consts_14_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 160, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0e\x15\xd7\x0e\x1f\xd1\x0e\x1f\xd3\x0e\x21\x88\x03\xd8\x0d\x11\x8f\x59\x8b\x59\xd8\x0f\x13\x8f\x7a\x89\x7a\x98\x53\xd2\x0f\x20\xdc\x16\x22\xd0\x23\x44\xd3\x16\x45\xd0\x10\x45\xdc\x13\x16\x90\x74\x97\x7a\x91\x7a\x93\x3f\xa0\x51\xd2\x13\x26\xd0\x0c\x26\xd0\x13\x26\xd8\x0c\x10\x8f\x4a\x89\x4a\x8f\x4e\x89\x4e\xd4\x0c\x1c\xdc\x13\x16\x90\x74\x97\x7a\x91\x7a\x94\x3f\xd8\x1d\x21\x90\x04\x94\x0a\xdc\x13\x16\x90\x74\x97\x7c\x91\x7c\xd3\x13\x24\xa0\x71\xd2\x13\x28\xd8\x14\x18\x97\x4c\x91\x4c\xd7\x14\x24\xd1\x14\x24\xd4\x14\x26\xd8\x14\x18\x97\x4b\x91\x4b\xd7\x14\x27\xd1\x14\x27\xd4\x14\x29\xf7\x13\x00\x0e\x17\x8f\x59\x89\x59\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -importlib__bootstrap_toplevel_consts_14_consts_5_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\xa1\x42\x37\x43\x21\x03\xc3\x21\x05\x43\x2a\x07", -}; -static - struct _PyCode_DEF(474) -importlib__bootstrap_toplevel_consts_14_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 237, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_14_consts_5_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_14_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib__bootstrap_toplevel_consts_14_consts_5_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 372, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 24, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_14_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(release), - .co_qualname = & importlib__bootstrap_toplevel_consts_14_consts_5_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_14_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x01\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6b\x37\x00\x00\x72\x0b\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x64\x02\x6b\x44\x00\x00\x73\x02\x4a\x00\x82\x01\x7c\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x73\x53\x64\x00\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x64\x02\x6b\x44\x00\x00\x72\x34\x7c\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x64\x00\x64\x00\x64\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x79\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -importlib__bootstrap_toplevel_consts_14_consts_6_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModuleLock(", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -importlib__bootstrap_toplevel_consts_14_consts_6_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = ") at ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & importlib__bootstrap_toplevel_consts_14_consts_6_consts_1._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_14_consts_6_consts_2._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(name), - &_Py_ID(id), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -importlib__bootstrap_toplevel_consts_14_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModuleLock.__repr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -importlib__bootstrap_toplevel_consts_14_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x11\x1d\x98\x64\x9f\x69\x99\x69\x98\x5d\xa8\x25\xb4\x02\xb0\x34\xb3\x08\xa8\x7a\xd0\x0f\x3a\xd0\x08\x3a", -}; -static - struct _PyCode_DEF(56) -importlib__bootstrap_toplevel_consts_14_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_14_consts_6_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_14_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 385, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 25, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__repr__), - .co_qualname = & importlib__bootstrap_toplevel_consts_14_consts_6_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_14_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x02\x64\x02\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x9b\x00\x9d\x04\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str__ModuleLock._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_14_consts_1._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_14_consts_2.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_14_consts_3.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_14_consts_4.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_14_consts_5.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_14_consts_6.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -importlib__bootstrap_toplevel_consts_14_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__init__), - & const_str_has_deadlock._ascii.ob_base, - & const_str_acquire._ascii.ob_base, - &_Py_ID(release), - &_Py_ID(__repr__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[36]; - } -importlib__bootstrap_toplevel_consts_14_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 35, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x03\x05\x08\xf2\x0a\x36\x05\x1a\xf2\x70\x01\x0e\x05\x0a\xf2\x20\x42\x01\x05\x26\xf2\x48\x02\x0b\x05\x2a\xf3\x1a\x01\x05\x3b", -}; -static - struct _PyCode_DEF(46) -importlib__bootstrap_toplevel_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_14_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_14_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 226, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 26, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__ModuleLock._ascii.ob_base, - .co_qualname = & const_str__ModuleLock._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_14_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x04\x84\x00\x5a\x06\x64\x05\x84\x00\x5a\x07\x64\x06\x84\x00\x5a\x08\x79\x07", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__DummyModuleLock = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_DummyModuleLock", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[87]; - } -importlib__bootstrap_toplevel_consts_16_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 86, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x20\x73\x69\x6d\x70\x6c\x65\x20\x5f\x4d\x6f\x64\x75\x6c\x65\x4c\x6f\x63\x6b\x20\x65\x71\x75\x69\x76\x61\x6c\x65\x6e\x74\x20\x66\x6f\x72\x20\x50\x79\x74\x68\x6f\x6e\x20\x62\x75\x69\x6c\x64\x73\x20\x77\x69\x74\x68\x6f\x75\x74\x0a\x20\x20\x20\x20\x6d\x75\x6c\x74\x69\x2d\x74\x68\x72\x65\x61\x64\x69\x6e\x67\x20\x73\x75\x70\x70\x6f\x72\x74\x2e", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_16_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_16_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(name), - &_Py_ID(count), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -importlib__bootstrap_toplevel_consts_16_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_DummyModuleLock.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[17]; - } -importlib__bootstrap_toplevel_consts_16_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 16, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x14\x18\x88\x04\x8c\x09\xd8\x15\x16\x88\x04\x8d\x0a", -}; -static - struct _PyCode_DEF(32) -importlib__bootstrap_toplevel_consts_16_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 16, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_16_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 393, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 27, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_14_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & importlib__bootstrap_toplevel_consts_16_consts_2_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_16_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_16_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - Py_True, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib__bootstrap_toplevel_consts_16_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(count), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -importlib__bootstrap_toplevel_consts_16_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_DummyModuleLock.acquire", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -importlib__bootstrap_toplevel_consts_16_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x08\x0c\x8f\x0a\x8a\x0a\x90\x61\x89\x0f\x8d\x0a\xd8\x0f\x13", -}; -static - struct _PyCode_DEF(46) -importlib__bootstrap_toplevel_consts_16_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_3_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_16_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 397, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 28, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_acquire._ascii.ob_base, - .co_qualname = & importlib__bootstrap_toplevel_consts_16_consts_3_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_16_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x78\x01\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7a\x0d\x00\x00\x63\x02\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_16_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & importlib__bootstrap_toplevel_consts_14_consts_5_consts_1._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_16_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(count), - & const_str_RuntimeError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -importlib__bootstrap_toplevel_consts_16_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_DummyModuleLock.release", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[39]; - } -importlib__bootstrap_toplevel_consts_16_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 38, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0b\x0f\x8f\x3a\x89\x3a\x98\x11\x8a\x3f\xdc\x12\x1e\xd0\x1f\x40\xd3\x12\x41\xd0\x0c\x41\xd8\x08\x0c\x8f\x0a\x8a\x0a\x90\x61\x89\x0f\x8e\x0a", -}; -static - struct _PyCode_DEF(98) -importlib__bootstrap_toplevel_consts_16_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 49, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_4_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_16_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 401, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 29, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(release), - .co_qualname = & importlib__bootstrap_toplevel_consts_16_consts_4_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_16_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x6b\x28\x00\x00\x72\x0b\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x00\x78\x01\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x7a\x17\x00\x00\x63\x02\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -importlib__bootstrap_toplevel_consts_16_consts_5_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_DummyModuleLock(", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_16_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & importlib__bootstrap_toplevel_consts_16_consts_5_consts_1._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_14_consts_6_consts_2._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -importlib__bootstrap_toplevel_consts_16_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_DummyModuleLock.__repr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -importlib__bootstrap_toplevel_consts_16_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x11\x22\xa0\x34\xa7\x39\xa1\x39\xa0\x2d\xa8\x75\xb4\x52\xb8\x04\xb3\x58\xb0\x4a\xd0\x0f\x3f\xd0\x08\x3f", -}; -static - struct _PyCode_DEF(56) -importlib__bootstrap_toplevel_consts_16_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_5_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_14_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 406, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 30, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__repr__), - .co_qualname = & importlib__bootstrap_toplevel_consts_16_consts_5_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_16_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x02\x64\x02\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x9b\x00\x9d\x04\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -importlib__bootstrap_toplevel_consts_16_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str__DummyModuleLock._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_16_consts_1._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_16_consts_2.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_16_consts_3.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_16_consts_4.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_16_consts_5.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -importlib__bootstrap_toplevel_consts_16_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__init__), - & const_str_acquire._ascii.ob_base, - &_Py_ID(release), - &_Py_ID(__repr__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[29]; - } -importlib__bootstrap_toplevel_consts_16_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 28, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x01\x05\x20\xf2\x06\x02\x05\x17\xf2\x08\x02\x05\x14\xf2\x08\x03\x05\x18\xf3\x0a\x01\x05\x40\x01", -}; -static - struct _PyCode_DEF(40) -importlib__bootstrap_toplevel_consts_16 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_16_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 389, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 31, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__DummyModuleLock._ascii.ob_base, - .co_qualname = & const_str__DummyModuleLock._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_16_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x04\x84\x00\x5a\x06\x64\x05\x84\x00\x5a\x07\x79\x06", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str__ModuleLockManager = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModuleLockManager", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_name", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__lock = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_lock", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_18_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__name._ascii.ob_base, - & const_str__lock._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -importlib__bootstrap_toplevel_consts_18_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModuleLockManager.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[17]; - } -importlib__bootstrap_toplevel_consts_18_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 16, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x15\x19\x88\x04\x8c\x0a\xd8\x15\x19\x88\x04\x8d\x0a", -}; -static - struct _PyCode_DEF(32) -importlib__bootstrap_toplevel_consts_18_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 16, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_18_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 412, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 32, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_14_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & importlib__bootstrap_toplevel_consts_18_consts_1_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_18_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__get_module_lock = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_module_lock", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_18_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str__get_module_lock._ascii.ob_base, - & const_str__name._ascii.ob_base, - & const_str__lock._ascii.ob_base, - & const_str_acquire._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -importlib__bootstrap_toplevel_consts_18_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModuleLockManager.__enter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[35]; - } -importlib__bootstrap_toplevel_consts_18_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 34, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x15\x25\xa0\x64\xa7\x6a\xa1\x6a\xd3\x15\x31\x88\x04\x8c\x0a\xd8\x08\x0c\x8f\x0a\x89\x0a\xd7\x08\x1a\xd1\x08\x1a\xd5\x08\x1c", -}; -static - struct _PyCode_DEF(108) -importlib__bootstrap_toplevel_consts_18_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 54, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_18_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 416, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 33, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__enter__), - .co_qualname = & importlib__bootstrap_toplevel_consts_18_consts_2_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_18_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_18_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__lock._ascii.ob_base, - &_Py_ID(release), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -importlib__bootstrap_toplevel_consts_18_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModuleLockManager.__exit__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -importlib__bootstrap_toplevel_consts_18_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x08\x0c\x8f\x0a\x89\x0a\xd7\x08\x1a\xd1\x08\x1a\xd5\x08\x1c", -}; -static - struct _PyCode_DEF(56) -importlib__bootstrap_toplevel_consts_18_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_18_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 15, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 420, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 34, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_9_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__exit__), - .co_qualname = & importlib__bootstrap_toplevel_consts_18_consts_3_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_18_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -importlib__bootstrap_toplevel_consts_18_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str__ModuleLockManager._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_18_consts_1.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_18_consts_2.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_18_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -importlib__bootstrap_toplevel_consts_18_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__init__), - &_Py_ID(__enter__), - &_Py_ID(__exit__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -importlib__bootstrap_toplevel_consts_18_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf2\x04\x02\x05\x1a\xf2\x08\x02\x05\x1d\xf3\x08\x01\x05\x1d", -}; -static - struct _PyCode_DEF(30) -importlib__bootstrap_toplevel_consts_18 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 15, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_18_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_18_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 410, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 35, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__ModuleLockManager._ascii.ob_base, - .co_qualname = & const_str__ModuleLockManager._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_18_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x84\x00\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[140]; - } -importlib__bootstrap_toplevel_consts_20_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 139, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x47\x65\x74\x20\x6f\x72\x20\x63\x72\x65\x61\x74\x65\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x6c\x6f\x63\x6b\x20\x66\x6f\x72\x20\x61\x20\x67\x69\x76\x65\x6e\x20\x6d\x6f\x64\x75\x6c\x65\x20\x6e\x61\x6d\x65\x2e\x0a\x0a\x20\x20\x20\x20\x41\x63\x71\x75\x69\x72\x65\x2f\x72\x65\x6c\x65\x61\x73\x65\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x6c\x79\x20\x74\x68\x65\x20\x67\x6c\x6f\x62\x61\x6c\x20\x69\x6d\x70\x6f\x72\x74\x20\x6c\x6f\x63\x6b\x20\x74\x6f\x20\x70\x72\x6f\x74\x65\x63\x74\x0a\x20\x20\x20\x20\x5f\x6d\x6f\x64\x75\x6c\x65\x5f\x6c\x6f\x63\x6b\x73\x2e", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str__imp = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_imp", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_acquire_lock = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "acquire_lock", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str__module_locks = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_module_locks", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_release_lock = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "release_lock", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -importlib__bootstrap_toplevel_consts_20_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str__imp._ascii.ob_base, - & const_str_acquire_lock._ascii.ob_base, - & const_str__module_locks._ascii.ob_base, - &_Py_ID(get), - & const_str_release_lock._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_cb = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "cb", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -importlib__bootstrap_toplevel_consts_20_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_module_lock..cb", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[74]; - } -importlib__bootstrap_toplevel_consts_20_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 73, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x10\x14\xd7\x10\x21\xd1\x10\x21\xd4\x10\x23\xf0\x02\x07\x11\x28\xf4\x08\x00\x18\x25\xd7\x17\x28\xd1\x17\x28\xa8\x14\xd3\x17\x2e\xb0\x23\xd1\x17\x35\xdc\x1c\x29\xa8\x24\xd0\x1c\x2f\xe4\x14\x18\xd7\x14\x25\xd1\x14\x25\xd5\x14\x27\xf8\x94\x44\xd7\x14\x25\xd1\x14\x25\xd5\x14\x27\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[12]; - } -importlib__bootstrap_toplevel_consts_20_consts_2_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 11, - }, - .ob_shash = -1, - .ob_sval = "\x96\x1e\x41\x09\x00\xc1\x09\x16\x41\x1f\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_20_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_ref._ascii.ob_base, - &_Py_ID(name), - }, - }, -}; -static - struct _PyCode_DEF(196) -importlib__bootstrap_toplevel_consts_20_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 98, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_20_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib__bootstrap_toplevel_consts_20_consts_2_exceptiontable.ob_base.ob_base, - .co_flags = 19, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 445, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 36, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_20_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_cb._ascii.ob_base, - .co_qualname = & importlib__bootstrap_toplevel_consts_20_consts_2_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_20_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x75\x00\x72\x07\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x3d\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x23\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_20_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_20_consts_0._ascii.ob_base, - Py_None, - & importlib__bootstrap_toplevel_consts_20_consts_2.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -importlib__bootstrap_toplevel_consts_20_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & const_str__imp._ascii.ob_base, - & const_str_acquire_lock._ascii.ob_base, - & const_str__module_locks._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - & const_str__thread._ascii.ob_base, - & const_str__DummyModuleLock._ascii.ob_base, - & const_str__ModuleLock._ascii.ob_base, - & const_str__weakref._ascii.ob_base, - & const_str_ref._ascii.ob_base, - & const_str_release_lock._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[157]; - } -importlib__bootstrap_toplevel_consts_20_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 156, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0c\x00\x05\x09\xd7\x04\x15\xd1\x04\x15\xd4\x04\x17\xf0\x02\x19\x05\x1c\xf0\x02\x03\x09\x18\xdc\x13\x20\xa0\x14\xd1\x13\x26\xd3\x13\x28\x88\x44\xf0\x08\x00\x0c\x10\x88\x3c\xdc\x0f\x16\x88\x7f\xdc\x17\x27\xa8\x04\xd3\x17\x2d\x91\x04\xe4\x17\x22\xa0\x34\xd3\x17\x28\x90\x04\xe0\x1d\x21\xf3\x00\x09\x0d\x28\xf4\x16\x00\x23\x2b\xa7\x2c\xa1\x2c\xa8\x74\xb0\x52\xd3\x22\x38\x8c\x4d\x98\x24\xd1\x0c\x1f\xe4\x08\x0c\xd7\x08\x19\xd1\x08\x19\xd4\x08\x1b\xe0\x0b\x0f\x80\x4b\xf8\xf4\x31\x00\x10\x18\xf2\x00\x01\x09\x18\xd8\x13\x17\x8a\x44\xf0\x03\x01\x09\x18\xfb\xf4\x2c\x00\x09\x0d\xd7\x08\x19\xd1\x08\x19\xd5\x08\x1b\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[42]; - } -importlib__bootstrap_toplevel_consts_20_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 41, - }, - .ob_shash = -1, - .ob_sval = "\x97\x0d\x41\x3b\x00\xa4\x41\x01\x42\x0c\x00\xc1\x3b\x0b\x42\x09\x03\xc2\x06\x02\x42\x0c\x00\xc2\x08\x01\x42\x09\x03\xc2\x09\x03\x42\x0c\x00\xc2\x0c\x16\x42\x22\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_20_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(name), - & const_str_lock._ascii.ob_base, - & const_str_cb._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(330) -importlib__bootstrap_toplevel_consts_20 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 165, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_20_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_20_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib__bootstrap_toplevel_consts_20_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 426, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 37, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_20_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__get_module_lock._ascii.ob_base, - .co_qualname = & const_str__get_module_lock._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x09\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x19\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x80\x3f\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0c\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x6e\x0b\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x66\x01\x64\x02\x84\x01\x7d\x02\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x3c\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x53\x00\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x64\x01\x7d\x01\x59\x00\x8c\x64\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[190]; - } -importlib__bootstrap_toplevel_consts_21_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 189, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x63\x71\x75\x69\x72\x65\x73\x20\x74\x68\x65\x6e\x20\x72\x65\x6c\x65\x61\x73\x65\x73\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x6c\x6f\x63\x6b\x20\x66\x6f\x72\x20\x61\x20\x67\x69\x76\x65\x6e\x20\x6d\x6f\x64\x75\x6c\x65\x20\x6e\x61\x6d\x65\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x69\x73\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x65\x6e\x73\x75\x72\x65\x20\x61\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69\x73\x20\x63\x6f\x6d\x70\x6c\x65\x74\x65\x6c\x79\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64\x2c\x20\x69\x6e\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x65\x76\x65\x6e\x74\x20\x69\x74\x20\x69\x73\x20\x62\x65\x69\x6e\x67\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x20\x62\x79\x20\x61\x6e\x6f\x74\x68\x65\x72\x20\x74\x68\x72\x65\x61\x64\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_21_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_21_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib__bootstrap_toplevel_consts_21_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str__get_module_lock._ascii.ob_base, - & const_str_acquire._ascii.ob_base, - &_Py_ID(release), - & const_str__DeadlockError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[62]; - } -importlib__bootstrap_toplevel_consts_21_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 61, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0c\x00\x0c\x1c\x98\x44\xd3\x0b\x21\x80\x44\xf0\x02\x07\x05\x17\xd8\x08\x0c\x8f\x0c\x89\x0c\x8c\x0e\xf0\x0c\x00\x09\x0d\x8f\x0c\x89\x0c\x8d\x0e\xf8\xf4\x0b\x00\x0c\x1a\xf2\x00\x03\x05\x0d\xf1\x06\x00\x09\x0d\xf0\x07\x03\x05\x0d\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -importlib__bootstrap_toplevel_consts_21_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x8d\x10\x2e\x00\xae\x09\x3a\x03\xb9\x01\x3a\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_21_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(name), - & const_str_lock._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(122) -importlib__bootstrap_toplevel_consts_21 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 61, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_21_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_21_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib__bootstrap_toplevel_consts_21_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 463, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 38, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_21_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(_lock_unlock_module), - .co_qualname = &_Py_ID(_lock_unlock_module), - .co_linetable = & importlib__bootstrap_toplevel_consts_21_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x09\x00\x7c\x01\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[303]; - } -importlib__bootstrap_toplevel_consts_22_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 302, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x72\x65\x6d\x6f\x76\x65\x5f\x69\x6d\x70\x6f\x72\x74\x6c\x69\x62\x5f\x66\x72\x61\x6d\x65\x73\x20\x69\x6e\x20\x69\x6d\x70\x6f\x72\x74\x2e\x63\x20\x77\x69\x6c\x6c\x20\x61\x6c\x77\x61\x79\x73\x20\x72\x65\x6d\x6f\x76\x65\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x73\x0a\x20\x20\x20\x20\x6f\x66\x20\x69\x6d\x70\x6f\x72\x74\x6c\x69\x62\x20\x66\x72\x61\x6d\x65\x73\x20\x74\x68\x61\x74\x20\x65\x6e\x64\x20\x77\x69\x74\x68\x20\x61\x20\x63\x61\x6c\x6c\x20\x74\x6f\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x0a\x0a\x20\x20\x20\x20\x55\x73\x65\x20\x69\x74\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x61\x20\x6e\x6f\x72\x6d\x61\x6c\x20\x63\x61\x6c\x6c\x20\x69\x6e\x20\x70\x6c\x61\x63\x65\x73\x20\x77\x68\x65\x72\x65\x20\x69\x6e\x63\x6c\x75\x64\x69\x6e\x67\x20\x74\x68\x65\x20\x69\x6d\x70\x6f\x72\x74\x6c\x69\x62\x0a\x20\x20\x20\x20\x66\x72\x61\x6d\x65\x73\x20\x69\x6e\x74\x72\x6f\x64\x75\x63\x65\x73\x20\x75\x6e\x77\x61\x6e\x74\x65\x64\x20\x6e\x6f\x69\x73\x65\x20\x69\x6e\x74\x6f\x20\x74\x68\x65\x20\x74\x72\x61\x63\x65\x62\x61\x63\x6b\x20\x28\x65\x2e\x67\x2e\x20\x77\x68\x65\x6e\x20\x65\x78\x65\x63\x75\x74\x69\x6e\x67\x0a\x20\x20\x20\x20\x6d\x6f\x64\x75\x6c\x65\x20\x63\x6f\x64\x65\x29\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib__bootstrap_toplevel_consts_22_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_22_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -const_str__call_with_frames_removed = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_call_with_frames_removed", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[21]; - } -importlib__bootstrap_toplevel_consts_22_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 20, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf1\x10\x00\x0c\x0d\x88\x64\xd0\x0b\x1b\x90\x64\xd1\x0b\x1b\xd0\x04\x1b", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_kwds = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "kwds", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_22_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[102], - &_Py_ID(args), - & const_str_kwds._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(18) -importlib__bootstrap_toplevel_consts_22 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 9, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_22_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 15, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 480, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 39, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_22_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__call_with_frames_removed._ascii.ob_base, - .co_qualname = & const_str__call_with_frames_removed._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_22_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x02\x00\x7c\x00\x7c\x01\x69\x00\x7c\x02\xa4\x01\x8e\x01\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_verbosity = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "verbosity", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib__bootstrap_toplevel_consts_24 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_verbosity._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[62]; - } -importlib__bootstrap_toplevel_consts_25_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 61, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Print the message to stderr if -v/PYTHONVERBOSE is turned on.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -importlib__bootstrap_toplevel_consts_25_consts_1_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "import ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_25_consts_1 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[35], - & importlib__bootstrap_toplevel_consts_25_consts_1_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -importlib__bootstrap_toplevel_consts_25_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "# ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib__bootstrap_toplevel_consts_25_consts_3 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(file), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -importlib__bootstrap_toplevel_consts_25_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_25_consts_0._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_25_consts_1._object.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_25_consts_2._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_25_consts_3._object.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_verbose = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "verbose", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_startswith = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "startswith", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_print = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "print", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -importlib__bootstrap_toplevel_consts_25_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - &_Py_ID(flags), - & const_str_verbose._ascii.ob_base, - & const_str_startswith._ascii.ob_base, - & const_str_print._ascii.ob_base, - &_Py_ID(format), - &_Py_ID(stderr), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__verbose_message = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_verbose_message", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[75]; - } -importlib__bootstrap_toplevel_consts_25_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 74, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x07\x0a\x87\x79\x81\x79\xd7\x07\x18\xd1\x07\x18\x98\x49\xd2\x07\x25\xd8\x0f\x16\xd7\x0f\x21\xd1\x0f\x21\xd0\x22\x32\xd4\x0f\x33\xd8\x16\x1a\x98\x57\x91\x6e\x88\x47\xdc\x08\x0d\x88\x6e\x88\x67\x8f\x6e\x89\x6e\x98\x64\xd0\x0e\x23\xac\x23\xaf\x2a\xa9\x2a\xd6\x08\x35\xf0\x07\x00\x08\x26", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_25_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(message), - & const_str_verbosity._ascii.ob_base, - &_Py_ID(args), - }, - }, -}; -static - struct _PyCode_DEF(188) -importlib__bootstrap_toplevel_consts_25 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 94, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_25_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_25_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 1, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 491, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 40, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_25_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__verbose_message._ascii.ob_base, - .co_qualname = & const_str__verbose_message._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_25_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6b\x5c\x00\x00\x72\x3f\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x73\x05\x64\x02\x7c\x00\x7a\x00\x00\x00\x7d\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x7c\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x8e\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x03\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x04\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[50]; - } -importlib__bootstrap_toplevel_consts_26_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 49, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Decorator to verify the named module is built-in.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -importlib__bootstrap_toplevel_consts_26_consts_1_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " is not a built-in module", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_26_consts_1_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & importlib__bootstrap_toplevel_consts_26_consts_1_consts_1._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_4_localsplusnames._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -const_str_builtin_module_names = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "builtin_module_names", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_ImportError = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ImportError", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_26_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - & const_str_builtin_module_names._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -const_str__requires_builtin_wrapper = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_requires_builtin_wrapper", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[53]; - } -importlib__bootstrap_toplevel_consts_26_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 52, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_requires_builtin.._requires_builtin_wrapper", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[57]; - } -importlib__bootstrap_toplevel_consts_26_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 56, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xd8\x0b\x13\x9c\x33\xd7\x1b\x33\xd1\x1b\x33\xd1\x0b\x33\xdc\x12\x1d\xa0\x18\xa0\x0c\xd0\x2c\x45\xd0\x1e\x46\xd8\x23\x2b\xf4\x03\x01\x13\x2d\xf0\x00\x01\x0d\x2d\xe1\x0f\x12\x90\x34\x98\x18\xd3\x0f\x22\xd0\x08\x22", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_fullname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fullname", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_fxn = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fxn", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_26_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_fullname._ascii.ob_base, - & const_str_fxn._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(90) -importlib__bootstrap_toplevel_consts_26_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 45, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_26_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_26_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 19, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 501, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 41, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_26_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__requires_builtin_wrapper._ascii.ob_base, - .co_qualname = & importlib__bootstrap_toplevel_consts_26_consts_1_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_26_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x7c\x01\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x01\x72\x10\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x9b\x02\x64\x01\x9d\x02\x7c\x01\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x02\x00\x89\x02\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_26_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_26_consts_0._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_26_consts_1.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib__bootstrap_toplevel_consts_26_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__wrap._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str__requires_builtin = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_requires_builtin", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[28]; - } -importlib__bootstrap_toplevel_consts_26_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 27, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xf4\x04\x04\x05\x23\xf4\x0a\x00\x05\x0a\xd0\x0a\x23\xa0\x53\xd4\x04\x29\xd8\x0b\x24\xd0\x04\x24", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_26_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_fxn._ascii.ob_base, - & const_str__requires_builtin_wrapper._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -importlib__bootstrap_toplevel_consts_26_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = "` ", -}; -static - struct _PyCode_DEF(42) -importlib__bootstrap_toplevel_consts_26 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 21, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_26_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_26_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 499, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 42, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_26_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_26_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__requires_builtin._ascii.ob_base, - .co_qualname = & const_str__requires_builtin._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_26_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x00\x97\x00\x88\x00\x66\x01\x64\x01\x84\x08\x7d\x01\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x89\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[48]; - } -importlib__bootstrap_toplevel_consts_27_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 47, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Decorator to verify the named module is frozen.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -importlib__bootstrap_toplevel_consts_27_consts_1_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " is not a frozen module", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_27_consts_1_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & importlib__bootstrap_toplevel_consts_27_consts_1_consts_1._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_4_localsplusnames._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_is_frozen = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "is_frozen", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib__bootstrap_toplevel_consts_27_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str__imp._ascii.ob_base, - & const_str_is_frozen._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -const_str__requires_frozen_wrapper = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_requires_frozen_wrapper", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[51]; - } -importlib__bootstrap_toplevel_consts_27_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 50, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_requires_frozen.._requires_frozen_wrapper", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[55]; - } -importlib__bootstrap_toplevel_consts_27_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 54, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xdc\x0f\x13\x8f\x7e\x89\x7e\x98\x68\xd4\x0f\x27\xdc\x12\x1d\xa0\x18\xa0\x0c\xd0\x2c\x43\xd0\x1e\x44\xd8\x23\x2b\xf4\x03\x01\x13\x2d\xf0\x00\x01\x0d\x2d\xe1\x0f\x12\x90\x34\x98\x18\xd3\x0f\x22\xd0\x08\x22", -}; -static - struct _PyCode_DEF(96) -importlib__bootstrap_toplevel_consts_27_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 48, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_27_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_27_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 19, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 512, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 43, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_26_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__requires_frozen_wrapper._ascii.ob_base, - .co_qualname = & importlib__bootstrap_toplevel_consts_27_consts_1_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_27_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x73\x10\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x9b\x02\x64\x01\x9d\x02\x7c\x01\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x02\x00\x89\x02\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_27_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_27_consts_0._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_27_consts_1.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__requires_frozen = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_requires_frozen", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[28]; - } -importlib__bootstrap_toplevel_consts_27_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 27, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xf4\x04\x04\x05\x23\xf4\x0a\x00\x05\x0a\xd0\x0a\x22\xa0\x43\xd4\x04\x28\xd8\x0b\x23\xd0\x04\x23", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_27_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_fxn._ascii.ob_base, - & const_str__requires_frozen_wrapper._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(42) -importlib__bootstrap_toplevel_consts_27 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 21, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_27_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_26_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 510, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 44, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_27_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_26_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__requires_frozen._ascii.ob_base, - .co_qualname = & const_str__requires_frozen._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_27_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x00\x97\x00\x88\x00\x66\x01\x64\x01\x84\x08\x7d\x01\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x89\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[131]; - } -importlib__bootstrap_toplevel_consts_28_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 130, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x4c\x6f\x61\x64\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69\x6e\x74\x6f\x20\x73\x79\x73\x2e\x6d\x6f\x64\x75\x6c\x65\x73\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x74\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x6d\x65\x74\x68\x6f\x64\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2e\x20\x20\x55\x73\x65\x20\x6c\x6f\x61\x64\x65\x72\x2e\x65\x78\x65\x63\x5f\x6d\x6f\x64\x75\x6c\x65\x28\x29\x20\x69\x6e\x73\x74\x65\x61\x64\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[104]; - } -importlib__bootstrap_toplevel_consts_28_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 103, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib__bootstrap_toplevel_consts_28_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_28_consts_0._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_28_consts_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str__warnings = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_warnings", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_warn = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "warn", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_DeprecationWarning = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "DeprecationWarning", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str_spec_from_loader = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "spec_from_loader", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__exec = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_exec", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__load = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_load", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -importlib__bootstrap_toplevel_consts_28_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str__warnings._ascii.ob_base, - & const_str_warn._ascii.ob_base, - & const_str_DeprecationWarning._ascii.ob_base, - & const_str_spec_from_loader._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(modules), - & const_str__exec._ascii.ob_base, - & const_str__load._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str__load_module_shim = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_load_module_shim", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[98]; - } -importlib__bootstrap_toplevel_consts_28_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 97, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x0c\x01\x0c\x34\x80\x43\xe4\x04\x0d\x87\x4e\x81\x4e\x90\x33\xd4\x18\x2a\xd4\x04\x2b\xdc\x0b\x1b\x98\x48\xa0\x64\xd3\x0b\x2b\x80\x44\xd8\x07\x0f\x94\x33\x97\x3b\x91\x3b\xd1\x07\x1e\xdc\x11\x14\x97\x1b\x91\x1b\x98\x58\xd1\x11\x26\x88\x06\xdc\x08\x0d\x88\x64\x90\x46\xd4\x08\x1b\xdc\x0f\x12\x8f\x7b\x89\x7b\x98\x38\xd1\x0f\x24\xd0\x08\x24\xe4\x0f\x14\x90\x54\x8b\x7b\xd0\x08\x1a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_spec = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "spec", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -importlib__bootstrap_toplevel_consts_28_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(self), - & const_str_fullname._ascii.ob_base, - &_Py_ID(msg), - & const_str_spec._ascii.ob_base, - &_Py_ID(module), - }, - }, -}; -static - struct _PyCode_DEF(240) -importlib__bootstrap_toplevel_consts_28 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 120, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_28_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_28_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 522, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 45, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_28_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & importlib__bootstrap_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__load_module_shim._ascii.ob_base, - .co_qualname = & const_str__load_module_shim._ascii.ob_base, - .co_linetable = & importlib__bootstrap_toplevel_consts_28_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x7d\x02\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x01\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x72\x32\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x19\x00\x00\x00\x7d\x04\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x04\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x19\x00\x00\x00\x53\x00\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[45]; - } -importlib__bootstrap_toplevel_consts_29_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 44, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "The implementation of ModuleType.__repr__().", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -importlib__bootstrap_toplevel_consts_29_consts_5 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -zipimport_toplevel_consts_11_consts_13_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & zipimport_toplevel_consts_11_consts_13_consts_1._ascii.ob_base, - & zipimport_toplevel_consts_11_consts_13_consts_2._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -zipimport_toplevel_consts_11_consts_13_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_archive._ascii.ob_base, - & const_str_path_sep._ascii.ob_base, - & const_str_prefix._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -zipimport_toplevel_consts_11_consts_13_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "zipimporter.__repr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[34]; - } -zipimport_toplevel_consts_11_consts_13_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 33, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x11\x26\xa0\x74\xa7\x7c\xa1\x7c\xa0\x6e\xb4\x58\xb0\x4a\xb8\x74\xbf\x7b\xb9\x7b\xb8\x6d\xc8\x32\xd0\x0f\x4e\xd0\x08\x4e", -}; -static - struct _PyCode_DEF(70) -zipimport_toplevel_consts_11_consts_13 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 35, - }, - .co_consts = & zipimport_toplevel_consts_11_consts_13_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_11_consts_13_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 273, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 232, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = &_Py_ID(__repr__), - .co_qualname = & zipimport_toplevel_consts_11_consts_13_qualname._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_11_consts_13_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x64\x02\x9d\x05\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -zipimport_toplevel_consts_11_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - & const_str_zipimporter._ascii.ob_base, - & zipimport_toplevel_consts_11_consts_1._ascii.ob_base, - & zipimport_toplevel_consts_11_consts_2.ob_base.ob_base, - Py_None, - & zipimport_toplevel_consts_11_consts_4.ob_base.ob_base, - & zipimport_toplevel_consts_11_consts_5.ob_base.ob_base, - & zipimport_toplevel_consts_11_consts_6.ob_base.ob_base, - & zipimport_toplevel_consts_11_consts_7.ob_base.ob_base, - & zipimport_toplevel_consts_11_consts_8.ob_base.ob_base, - & zipimport_toplevel_consts_11_consts_9.ob_base.ob_base, - & zipimport_toplevel_consts_11_consts_10.ob_base.ob_base, - & zipimport_toplevel_consts_11_consts_11.ob_base.ob_base, - & zipimport_toplevel_consts_11_consts_12.ob_base.ob_base, - & zipimport_toplevel_consts_11_consts_13.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -zipimport_toplevel_consts_11_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__init__), - & const_str_find_spec._ascii.ob_base, - & const_str_get_code._ascii.ob_base, - & const_str_get_data._ascii.ob_base, - & const_str_get_filename._ascii.ob_base, - &_Py_ID(get_source), - & const_str_is_package._ascii.ob_base, - & const_str_load_module._ascii.ob_base, - & const_str_get_resource_reader._ascii.ob_base, - & const_str_invalidate_caches._ascii.ob_base, - &_Py_ID(__repr__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[66]; - } -zipimport_toplevel_consts_11_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 65, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x0c\x05\x08\xf2\x22\x25\x05\x24\xf3\x50\x01\x19\x05\x1c\xf2\x36\x07\x05\x14\xf2\x14\x11\x05\x32\xf2\x2a\x09\x05\x17\xf2\x18\x16\x05\x3b\xf2\x34\x09\x05\x12\xf2\x1a\x28\x05\x13\xf2\x56\x01\x04\x05\x29\xf2\x0e\x07\x05\x1d\xf3\x14\x01\x05\x4f\x01", -}; -static - struct _PyCode_DEF(84) -zipimport_toplevel_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 42, - }, - .co_consts = & zipimport_toplevel_consts_11_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_11_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 46, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 233, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str_zipimporter._ascii.ob_base, - .co_qualname = & const_str_zipimporter._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_11_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x0e\x64\x04\x84\x01\x5a\x05\x64\x05\x84\x00\x5a\x06\x64\x06\x84\x00\x5a\x07\x64\x07\x84\x00\x5a\x08\x64\x08\x84\x00\x5a\x09\x64\x09\x84\x00\x5a\x0a\x64\x0a\x84\x00\x5a\x0b\x64\x0b\x84\x00\x5a\x0c\x64\x0c\x84\x00\x5a\x0d\x64\x0d\x84\x00\x5a\x0e\x79\x03", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -zipimport_toplevel_consts_12 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "__init__.pyc", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -zipimport_toplevel_consts_16 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & importlib__bootstrap_external_toplevel_consts_34._ascii.ob_base, - Py_True, - Py_False, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -zipimport_toplevel_consts_17 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_46_consts_5_consts_12._ascii.ob_base, - Py_False, - Py_False, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -zipimport_toplevel_consts_18_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -zipimport_toplevel_consts_18_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_prefix._ascii.ob_base, - & const_str_rpartition._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[34]; - } -zipimport_toplevel_consts_18_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 33, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0b\x0f\x8f\x3b\x89\x3b\x98\x18\xd7\x19\x2c\xd1\x19\x2c\xa8\x53\xd3\x19\x31\xb0\x21\xd1\x19\x34\xd1\x0b\x34\xd0\x04\x34", -}; -static - struct _PyCode_DEF(68) -zipimport_toplevel_consts_18 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 34, - }, - .co_consts = & zipimport_toplevel_consts_18_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_18_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 291, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 234, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_54_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__get_module_path._ascii.ob_base, - .co_qualname = & const_str__get_module_path._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_18_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x64\x02\x19\x00\x00\x00\x7a\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -zipimport_toplevel_consts_19_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_path_sep._ascii.ob_base, - & const_str__files._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[29]; - } -zipimport_toplevel_consts_19_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 28, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x00\x0f\x13\x94\x58\x89\x6f\x80\x47\xe0\x0b\x12\x90\x64\x97\x6b\x91\x6b\xd0\x0b\x21\xd0\x04\x21", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_dirpath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dirpath", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -zipimport_toplevel_consts_19_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(path), - & const_str_dirpath._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(48) -zipimport_toplevel_consts_19 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 24, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_19_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 295, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 235, - .co_localsplusnames = & zipimport_toplevel_consts_19_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__is_dir._ascii.ob_base, - .co_qualname = & const_str__is_dir._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_19_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x7d\x02\x7c\x02\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__zip_searchorder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_zip_searchorder", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -zipimport_toplevel_consts_20_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str__get_module_path._ascii.ob_base, - & const_str__zip_searchorder._ascii.ob_base, - & const_str__files._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[64]; - } -zipimport_toplevel_consts_20_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 63, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0b\x1b\x98\x44\xa0\x28\xd3\x0b\x2b\x80\x44\xdf\x29\x39\xd1\x08\x25\x88\x06\x90\x0a\x98\x49\xd8\x13\x17\x98\x26\x91\x3d\x88\x08\xd8\x0b\x13\x90\x74\x97\x7b\x91\x7b\xd2\x0b\x22\xd8\x13\x1c\xd2\x0c\x1c\xf0\x07\x00\x2a\x3a\xf0\x08\x00\x0c\x10", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_isbytecode = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "isbytecode", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -zipimport_toplevel_consts_20_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(self), - & const_str_fullname._ascii.ob_base, - &_Py_ID(path), - & const_str_suffix._ascii.ob_base, - & const_str_isbytecode._ascii.ob_base, - & const_str_ispackage._ascii.ob_base, - & const_str_fullpath._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(104) -zipimport_toplevel_consts_20 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 52, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_20_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 304, - .co_nlocalsplus = 7, - .co_nlocals = 7, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 236, - .co_localsplusnames = & zipimport_toplevel_consts_20_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__get_module_info._ascii.ob_base, - .co_qualname = & const_str__get_module_info._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x1d\x00\x00\x5c\x03\x00\x00\x7d\x03\x7d\x04\x7d\x05\x7c\x02\x7c\x03\x7a\x00\x00\x00\x7d\x06\x7c\x06\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x73\x01\x8c\x1b\x7c\x05\x63\x02\x01\x00\x53\x00\x04\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -zipimport_toplevel_consts_21_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "can't open Zip file: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -zipimport_toplevel_consts_21_consts_4 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "can't read Zip file: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -zipimport_toplevel_consts_21_consts_7 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "not a Zip file: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -zipimport_toplevel_consts_21_consts_8 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "corrupt Zip file: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -zipimport_toplevel_consts_21_consts_12 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bad central directory size: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[31]; - } -zipimport_toplevel_consts_21_consts_13 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 30, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bad central directory offset: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[39]; - } -zipimport_toplevel_consts_21_consts_14 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 38, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bad central directory size or offset: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -zipimport_toplevel_consts_21_consts_16 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "EOF read where not expected", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -zipimport_toplevel_consts_21_consts_17 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x50\x4b\x01\x02", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -zipimport_toplevel_consts_21_consts_27 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bad local header offset: ", -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_2048 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 2048 }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_ascii = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ascii", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[34]; - } -zipimport_toplevel_consts_21_consts_33 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 33, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "zipimport: found {} names in {!r}", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[34]; - }_object; - } -zipimport_toplevel_consts_21_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 34, - }, - .ob_item = { - Py_None, - & zipimport_toplevel_consts_21_consts_1._ascii.ob_base, - & importlib__bootstrap_external_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - & zipimport_toplevel_consts_21_consts_4._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 4], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & zipimport_toplevel_consts_21_consts_7._ascii.ob_base, - & zipimport_toplevel_consts_21_consts_8._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 12], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 16], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 20], - & zipimport_toplevel_consts_21_consts_12._ascii.ob_base, - & zipimport_toplevel_consts_21_consts_13._ascii.ob_base, - & zipimport_toplevel_consts_21_consts_14._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 46], - & zipimport_toplevel_consts_21_consts_16._ascii.ob_base, - & zipimport_toplevel_consts_21_consts_17.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 8], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 10], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 14], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 24], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 28], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 30], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 32], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 34], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 42], - & zipimport_toplevel_consts_21_consts_27._ascii.ob_base, - & const_int_2048.ob_base, - & const_str_ascii._ascii.ob_base, - &_Py_ID(latin1), - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - & zipimport_toplevel_consts_21_consts_33._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -const_str_END_CENTRAL_DIR_SIZE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "END_CENTRAL_DIR_SIZE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_STRING_END_ARCHIVE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "STRING_END_ARCHIVE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_MAX_COMMENT_LEN = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MAX_COMMENT_LEN", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_UnicodeDecodeError = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "UnicodeDecodeError", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_cp437_table = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "cp437_table", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[26]; - }_object; - } -zipimport_toplevel_consts_21_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 26, - }, - .ob_item = { - &_Py_ID(_io), - & const_str_open_code._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_ZipImportError._ascii.ob_base, - &_Py_ID(tell), - &_Py_ID(seek), - & const_str_END_CENTRAL_DIR_SIZE._ascii.ob_base, - &_Py_ID(read), - &_Py_ID(len), - & const_str_STRING_END_ARCHIVE._ascii.ob_base, - & const_str_max._ascii.ob_base, - & const_str_MAX_COMMENT_LEN._ascii.ob_base, - & const_str_rfind._ascii.ob_base, - & const_str__unpack_uint32._ascii.ob_base, - & const_str_EOFError._ascii.ob_base, - & const_str__unpack_uint16._ascii.ob_base, - &_Py_ID(decode), - & const_str_UnicodeDecodeError._ascii.ob_base, - &_Py_ID(translate), - & const_str_cp437_table._ascii.ob_base, - &_Py_ID(replace), - & const_str_path_sep._ascii.ob_base, - & const_str__bootstrap_external._ascii.ob_base, - & const_str__path_join._ascii.ob_base, - &_Py_ID(_bootstrap), - & const_str__verbose_message._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[1494]; - } -zipimport_toplevel_consts_21_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 1493, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x02\x03\x05\x50\x01\xdc\x0d\x10\x8f\x5d\x89\x5d\x98\x37\xd3\x0d\x23\x88\x02\xf2\x08\x00\x0a\x0c\xf0\x08\x00\x18\x1a\x97\x77\x91\x77\x93\x79\x88\x0c\xf0\x02\x6e\x01\x09\x22\xf0\x02\x05\x0d\x58\x01\xd8\x10\x12\x97\x07\x91\x07\xd4\x19\x2d\xd0\x18\x2d\xa8\x71\xd4\x10\x31\xd8\x22\x24\xa7\x27\xa1\x27\xa3\x29\x90\x0f\xd8\x19\x1b\x9f\x17\x99\x17\xd4\x21\x35\xd3\x19\x36\x90\x06\xf4\x06\x00\x10\x13\x90\x36\x8b\x7b\xd4\x1e\x32\xd2\x0f\x32\xdc\x16\x24\xd0\x27\x3c\xb8\x57\xb8\x4b\xd0\x25\x48\xc8\x77\xd4\x16\x57\xd0\x10\x57\xd8\x0f\x15\x90\x62\x90\x71\x88\x7a\xd4\x1d\x2f\xd2\x0f\x2f\xf0\x06\x05\x11\x37\xd8\x14\x16\x97\x47\x91\x47\x98\x41\x98\x71\x94\x4d\xd8\x20\x22\xa7\x07\xa1\x07\xa3\x09\x90\x49\xf4\x08\x00\x25\x28\xa8\x09\xb4\x4f\xd1\x28\x43\xdc\x28\x3c\xf1\x03\x01\x29\x3d\xd8\x3e\x3f\xf3\x03\x01\x25\x41\x01\xd0\x10\x21\xf0\x04\x05\x11\x37\xd8\x14\x16\x97\x47\x91\x47\xd0\x1c\x2d\xd4\x14\x2e\xd8\x1b\x1d\x9f\x37\x99\x37\x9b\x39\x90\x44\xf0\x08\x00\x17\x1b\x97\x6a\x91\x6a\xd4\x21\x33\xd3\x16\x34\x90\x03\xd8\x13\x16\x98\x11\x92\x37\xdc\x1a\x28\xd0\x2b\x3b\xb8\x47\xb8\x3b\xd0\x29\x47\xd8\x2e\x35\xf4\x03\x01\x1b\x37\xf0\x00\x01\x15\x37\xe0\x19\x1d\x98\x63\xa0\x23\xd4\x26\x3a\xd1\x22\x3a\xd0\x19\x3b\x90\x06\xdc\x13\x16\x90\x76\x93\x3b\xd4\x22\x36\xd2\x13\x36\xdc\x1a\x28\xd0\x2b\x3d\xb8\x67\xb8\x5b\xd0\x29\x49\xd8\x2e\x35\xf4\x03\x01\x1b\x37\xf0\x00\x01\x15\x37\xe0\x22\x2b\xac\x63\xb0\x24\xab\x69\xd1\x22\x37\xb8\x23\xd1\x22\x3d\x90\x0f\xe4\x1a\x28\xa8\x16\xb0\x02\xb0\x32\xa8\x1d\xd3\x1a\x37\x88\x4b\xdc\x1c\x2a\xa8\x36\xb0\x22\xb0\x52\xa8\x3d\xd3\x1c\x39\x88\x4d\xd8\x0f\x1e\xa0\x1b\xd2\x0f\x2c\xdc\x16\x24\xd0\x27\x43\xc0\x47\xc0\x3b\xd0\x25\x4f\xd0\x56\x5d\xd4\x16\x5e\xd0\x10\x5e\xd8\x0f\x1e\xa0\x1d\xd2\x0f\x2e\xdc\x16\x24\xd0\x27\x45\xc0\x67\xc0\x5b\xd0\x25\x51\xd0\x58\x5f\xd4\x16\x60\xd0\x10\x60\xd8\x0c\x1b\x98\x7b\xd1\x0c\x2a\x88\x4f\xd8\x19\x28\xa8\x3d\xd1\x19\x38\x88\x4a\xd8\x0f\x19\x98\x41\x8a\x7e\xdc\x16\x24\xd0\x27\x4d\xc8\x67\xc8\x5b\xd0\x25\x59\xd0\x60\x67\xd4\x16\x68\xd0\x10\x68\xe0\x14\x16\x88\x45\xe0\x14\x15\x88\x45\xf0\x02\x03\x0d\x58\x01\xd8\x10\x12\x97\x07\x91\x07\x98\x0f\xd4\x10\x28\xf0\x06\x00\x13\x17\xd8\x19\x1b\x9f\x17\x99\x17\xa0\x12\x9b\x1b\x90\x06\xdc\x13\x16\x90\x76\x93\x3b\xa0\x11\x92\x3f\xdc\x1a\x22\xd0\x23\x40\xd3\x1a\x41\xd0\x14\x41\xe0\x13\x19\x98\x22\x98\x31\x90\x3a\xa0\x1d\xd2\x13\x2e\xd9\x14\x19\xdc\x13\x16\x90\x76\x93\x3b\xa0\x22\xd2\x13\x24\xdc\x1a\x22\xd0\x23\x40\xd3\x1a\x41\xd0\x14\x41\xdc\x18\x26\xa0\x76\xa8\x61\xb0\x02\xa0\x7c\xd3\x18\x34\x90\x05\xdc\x1b\x29\xa8\x26\xb0\x12\xb0\x42\xa8\x2d\xd3\x1b\x38\x90\x08\xdc\x17\x25\xa0\x66\xa8\x52\xb0\x02\xa0\x6d\xd3\x17\x34\x90\x04\xdc\x17\x25\xa0\x66\xa8\x52\xb0\x02\xa0\x6d\xd3\x17\x34\x90\x04\xdc\x16\x24\xa0\x56\xa8\x42\xa8\x72\xa0\x5d\xd3\x16\x33\x90\x03\xdc\x1c\x2a\xa8\x36\xb0\x22\xb0\x52\xa8\x3d\xd3\x1c\x39\x90\x09\xdc\x1c\x2a\xa8\x36\xb0\x22\xb0\x52\xa8\x3d\xd3\x1c\x39\x90\x09\xdc\x1c\x2a\xa8\x36\xb0\x22\xb0\x52\xa8\x3d\xd3\x1c\x39\x90\x09\xdc\x1d\x2b\xa8\x46\xb0\x32\xb0\x62\xa8\x4d\xd3\x1d\x3a\x90\x0a\xdc\x1f\x2d\xa8\x66\xb0\x52\xb8\x02\xa8\x6d\xd3\x1f\x3c\x90\x0c\xdc\x1e\x2c\xa8\x56\xb0\x42\xb0\x72\xa8\x5d\xd3\x1e\x3b\x90\x0b\xd8\x1e\x27\xa8\x2a\xd1\x1e\x34\xb0\x7c\xd1\x1e\x43\x90\x0b\xd8\x13\x1e\xa0\x1d\xd2\x13\x2e\xdc\x1a\x28\xd0\x2b\x44\xc0\x57\xc0\x4b\xd0\x29\x50\xd0\x57\x5e\xd4\x1a\x5f\xd0\x14\x5f\xd8\x10\x1b\x98\x7a\xd1\x10\x29\x90\x0b\xf0\x04\x03\x11\x5c\x01\xd8\x1b\x1d\x9f\x37\x99\x37\xa0\x39\xd3\x1b\x2d\x90\x44\xf4\x06\x00\x14\x17\x90\x74\x93\x39\xa0\x09\xd2\x13\x29\xdc\x1a\x28\xd0\x2b\x40\xc0\x17\xc0\x0b\xd0\x29\x4c\xd0\x53\x5a\xd4\x1a\x5b\xd0\x14\x5b\xf0\x08\x04\x11\x5c\x01\xdc\x17\x1a\x98\x32\x9f\x37\x99\x37\xa0\x3b\xb0\x19\xd1\x23\x3a\xd3\x1b\x3b\xd3\x17\x3c\xc0\x0b\xc8\x69\xd1\x40\x57\xd2\x17\x57\xdc\x1e\x2c\xd0\x2f\x44\xc0\x57\xc0\x4b\xd0\x2d\x50\xd0\x57\x5e\xd4\x1e\x5f\xd0\x18\x5f\xf0\x03\x00\x18\x58\x01\xf0\x0a\x00\x14\x19\x98\x35\x92\x3d\xe0\x1b\x1f\x9f\x3b\x99\x3b\x9b\x3d\x91\x44\xf0\x06\x03\x15\x4c\x01\xd8\x1f\x23\x9f\x7b\x99\x7b\xa8\x37\xd3\x1f\x33\x98\x04\xf0\x08\x00\x18\x1c\x97\x7c\x91\x7c\xa0\x43\xac\x18\xd3\x17\x32\x90\x04\xdc\x17\x2a\xd7\x17\x35\xd1\x17\x35\xb0\x67\xb8\x74\xd3\x17\x44\x90\x04\xd8\x15\x19\x98\x38\xa0\x59\xb0\x09\xb8\x3b\xc8\x04\xc8\x64\xd0\x54\x57\xd0\x14\x58\x90\x01\xd8\x1e\x1f\x90\x05\x90\x64\x91\x0b\xd8\x10\x15\x98\x11\x91\x0a\x90\x05\xf1\x6d\x01\x00\x13\x17\xf0\x0c\x00\x15\x1a\xf0\x64\x01\x00\x0d\x0f\x8f\x47\x89\x47\x90\x4c\xd5\x0c\x21\xf7\x67\x03\x00\x0a\x0c\xf4\x68\x03\x00\x05\x0f\xd7\x04\x1f\xd1\x04\x1f\xd0\x20\x43\xc0\x55\xc8\x47\xd4\x04\x54\xd8\x0b\x10\x80\x4c\xf8\xf4\x71\x03\x00\x0c\x13\xf2\x00\x01\x05\x50\x01\xdc\x0e\x1c\xd0\x1f\x34\xb0\x57\xb0\x4b\xd0\x1d\x40\xc0\x77\xd4\x0e\x4f\xd0\x08\x4f\xf0\x03\x01\x05\x50\x01\xfb\xf4\x1a\x00\x14\x1b\xf2\x00\x01\x0d\x58\x01\xdc\x16\x24\xd0\x27\x3c\xb8\x57\xb8\x4b\xd0\x25\x48\xc8\x77\xd4\x16\x57\xd0\x10\x57\xf0\x03\x01\x0d\x58\x01\xfb\xf4\x14\x00\x18\x1f\xf2\x00\x02\x11\x37\xdc\x1a\x28\xd0\x2b\x40\xc0\x17\xc0\x0b\xd0\x29\x4c\xd8\x2e\x35\xf4\x03\x01\x1b\x37\xf0\x00\x01\x15\x37\xf0\x03\x02\x11\x37\xfb\xf4\x10\x00\x18\x1f\xf2\x00\x02\x11\x37\xdc\x1a\x28\xd0\x2b\x40\xc0\x17\xc0\x0b\xd0\x29\x4c\xd8\x2e\x35\xf4\x03\x01\x1b\x37\xf0\x00\x01\x15\x37\xf0\x03\x02\x11\x37\xfb\xf4\x3a\x00\x14\x1b\xf2\x00\x01\x0d\x58\x01\xdc\x16\x24\xd0\x27\x3c\xb8\x57\xb8\x4b\xd0\x25\x48\xc8\x77\xd4\x16\x57\xd0\x10\x57\xf0\x03\x01\x0d\x58\x01\xfb\xf4\x3a\x00\x18\x1f\xf2\x00\x01\x11\x5c\x01\xdc\x1a\x28\xd0\x2b\x40\xc0\x17\xc0\x0b\xd0\x29\x4c\xd0\x53\x5a\xd4\x1a\x5b\xd0\x14\x5b\xf0\x03\x01\x11\x5c\x01\xfb\xf4\x14\x00\x18\x1f\xf2\x00\x01\x11\x5c\x01\xdc\x1a\x28\xd0\x2b\x40\xc0\x17\xc0\x0b\xd0\x29\x4c\xd0\x53\x5a\xd4\x1a\x5b\xd0\x14\x5b\xf0\x03\x01\x11\x5c\x01\xfb\xf4\x14\x00\x1c\x2e\xf2\x00\x01\x15\x4c\x01\xd8\x1f\x23\x9f\x7b\x99\x7b\xa8\x38\xd3\x1f\x34\xd7\x1f\x3e\xd1\x1f\x3e\xbc\x7b\xd3\x1f\x4b\x9b\x04\xf0\x03\x01\x15\x4c\x01\xfb\xf0\x12\x00\x0d\x0f\x8f\x47\x89\x47\x90\x4c\xd5\x0c\x21\xfa\xf7\x67\x03\x00\x0a\x0c\x89\x12\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[223]; - } -zipimport_toplevel_consts_21_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 222, - }, - .ob_shash = -1, - .ob_sval = "\x82\x15\x4f\x26\x00\x99\x11\x53\x3b\x03\xac\x3c\x50\x03\x02\xc1\x28\x2e\x53\x25\x02\xc2\x17\x22\x50\x20\x02\xc2\x39\x1a\x53\x25\x02\xc3\x14\x21\x50\x3d\x02\xc3\x35\x43\x12\x53\x25\x02\xc7\x08\x11\x51\x1a\x02\xc7\x19\x44\x0a\x53\x25\x02\xcb\x24\x11\x51\x37\x02\xcb\x35\x1e\x53\x25\x02\xcc\x14\x33\x52\x14\x02\xcd\x07\x17\x53\x25\x02\xcd\x1f\x11\x52\x31\x02\xcd\x30\x41\x02\x53\x25\x02\xce\x33\x11\x53\x3b\x03\xcf\x26\x1a\x50\x00\x03\xd0\x03\x1a\x50\x1d\x05\xd0\x1d\x03\x53\x25\x02\xd0\x20\x1a\x50\x3a\x05\xd0\x3a\x03\x53\x25\x02\xd0\x3d\x1a\x51\x17\x05\xd1\x17\x03\x53\x25\x02\xd1\x1a\x1a\x51\x34\x05\xd1\x34\x03\x53\x25\x02\xd1\x37\x1a\x52\x11\x05\xd2\x11\x03\x53\x25\x02\xd2\x14\x1a\x52\x2e\x05\xd2\x2e\x03\x53\x25\x02\xd2\x31\x2d\x53\x22\x05\xd3\x1e\x03\x53\x25\x02\xd3\x21\x01\x53\x22\x05\xd3\x22\x03\x53\x25\x02\xd3\x25\x13\x53\x38\x05\xd3\x38\x03\x53\x3b\x03\xd3\x3b\x05\x54\x05\x07", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_fp = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fp", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_start_offset = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "start_offset", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_header_position = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "header_position", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_file_size = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "file_size", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str_max_comment_start = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "max_comment_start", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_header_size = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "header_size", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_header_offset = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "header_offset", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_arc_offset = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "arc_offset", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_compress = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "compress", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_time = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "time", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_date = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "date", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_crc = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "crc", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_data_size = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "data_size", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_name_size = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "name_size", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_extra_size = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "extra_size", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_comment_size = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "comment_size", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_file_offset = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "file_offset", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[27]; - }_object; - } -zipimport_toplevel_consts_21_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 27, - }, - .ob_item = { - & const_str_archive._ascii.ob_base, - & const_str_fp._ascii.ob_base, - & const_str_start_offset._ascii.ob_base, - & const_str_header_position._ascii.ob_base, - &_Py_ID(buffer), - & const_str_file_size._ascii.ob_base, - & const_str_max_comment_start._ascii.ob_base, - &_Py_ID(data), - &_Py_ID(pos), - & const_str_header_size._ascii.ob_base, - & const_str_header_offset._ascii.ob_base, - & const_str_arc_offset._ascii.ob_base, - & const_str_files._ascii.ob_base, - &_Py_ID(count), - &_Py_ID(flags), - & const_str_compress._ascii.ob_base, - & const_str_time._ascii.ob_base, - & const_str_date._ascii.ob_base, - & const_str_crc._ascii.ob_base, - & const_str_data_size._ascii.ob_base, - & const_str_name_size._ascii.ob_base, - & const_str_extra_size._ascii.ob_base, - & const_str_comment_size._ascii.ob_base, - & const_str_file_offset._ascii.ob_base, - &_Py_ID(name), - &_Py_ID(path), - (PyObject *)&_Py_SINGLETON(strings).ascii[116], - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[28]; - } -zipimport_toplevel_consts_21_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 27, - }, - .ob_shash = -1, - .ob_sval = " ", -}; -static - struct _PyCode_DEF(2576) -zipimport_toplevel_consts_21 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 1288, - }, - .co_consts = & zipimport_toplevel_consts_21_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_21_names._object.ob_base.ob_base, - .co_exceptiontable = & zipimport_toplevel_consts_21_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 36 + FRAME_SPECIALS_SIZE, - .co_stacksize = 9, - .co_firstlineno = 335, - .co_nlocalsplus = 27, - .co_nlocals = 27, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 237, - .co_localsplusnames = & zipimport_toplevel_consts_21_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & zipimport_toplevel_consts_21_localspluskinds.ob_base.ob_base, - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__read_directory._ascii.ob_base, - .co_qualname = & const_str__read_directory._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_21_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x35\x00\x01\x00\x7c\x01\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x09\x00\x09\x00\x7c\x01\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x64\x03\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x01\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x04\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\x10\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x04\x64\x00\x64\x05\x1a\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\xc8\x09\x00\x7c\x01\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\x64\x03\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x0a\x00\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x0a\x00\x00\x64\x06\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x06\x09\x00\x7c\x01\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x07\x7c\x07\x6a\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x08\x7c\x08\x64\x06\x6b\x02\x00\x00\x72\x10\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x07\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x07\x7c\x08\x7c\x08\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x1a\x00\x7d\x04\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\x10\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x05\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\xab\x01\x00\x00\x00\x00\x00\x00\x7a\x0a\x00\x00\x7c\x08\x7a\x00\x00\x00\x7d\x03\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x09\x64\x0a\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x09\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x0a\x64\x0b\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0a\x7c\x03\x7c\x09\x6b\x02\x00\x00\x72\x10\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0c\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x03\x7c\x0a\x6b\x02\x00\x00\x72\x10\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0d\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x03\x7c\x09\x7a\x17\x00\x00\x7d\x03\x7c\x03\x7c\x0a\x7a\x0a\x00\x00\x7d\x0b\x7c\x0b\x64\x06\x6b\x02\x00\x00\x72\x10\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0e\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x69\x00\x7d\x0c\x64\x06\x7d\x0d\x09\x00\x7c\x01\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x7c\x01\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0f\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x04\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x64\x05\x6b\x02\x00\x00\x72\x0b\x74\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x64\x10\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x04\x64\x00\x64\x05\x1a\x00\x64\x11\x6b\x37\x00\x00\x72\x02\x90\x01\x6e\xa4\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x64\x0f\x6b\x37\x00\x00\x72\x0b\x74\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x64\x10\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x12\x64\x13\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0e\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x13\x64\x09\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0f\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x09\x64\x14\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x10\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x14\x64\x0a\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x11\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x0a\x64\x0b\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x12\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x0b\x64\x15\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x13\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x15\x64\x16\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x16\x64\x17\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x14\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x17\x64\x18\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x15\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x18\x64\x19\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x16\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x1a\x64\x0f\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x17\x7c\x14\x7c\x15\x7a\x00\x00\x00\x7c\x16\x7a\x00\x00\x00\x7d\x09\x7c\x17\x7c\x0a\x6b\x44\x00\x00\x72\x10\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x1b\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x17\x7c\x0b\x7a\x0d\x00\x00\x7d\x17\x09\x00\x7c\x01\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x14\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x18\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x18\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x14\x6b\x37\x00\x00\x72\x10\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x09\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\x7c\x14\x7a\x0a\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x09\x7c\x14\x7a\x0a\x00\x00\x6b\x37\x00\x00\x72\x10\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x09\x00\x7c\x0e\x64\x1c\x7a\x01\x00\x00\x72\x11\x7c\x18\x6a\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x18\x6e\x12\x09\x00\x7c\x18\x6a\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x1d\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x18\x7c\x18\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x1f\x74\x2a\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x18\x74\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x18\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x19\x7c\x19\x7c\x0f\x7c\x13\x7c\x05\x7c\x17\x7c\x10\x7c\x11\x7c\x12\x66\x08\x7d\x1a\x7c\x1a\x7c\x0c\x7c\x18\x3c\x00\x00\x00\x7c\x0d\x64\x20\x7a\x0d\x00\x00\x7d\x0d\x90\x01\x8c\xd8\x09\x00\x7c\x01\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x64\x00\x64\x00\x64\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x31\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x21\x7f\x0d\x7c\x00\xab\x03\x00\x00\x00\x00\x00\x00\x01\x00\x7f\x0c\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x11\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x11\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x11\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x11\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x11\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x11\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x11\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x22\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x28\x01\x00\x7c\x18\x6a\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x1e\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x26\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x18\x59\x00\x90\x01\x8c\x71\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x7c\x01\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x90\x01\x8c\x38\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyCompactUnicodeObject _compact; - uint16_t _data[257]; - } -zipimport_toplevel_consts_22 = { - ._compact = { - ._base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 256, - .hash = -1, - .state = { - .kind = 2, - .compact = 1, - .ascii = 0, - .statically_allocated = 1, - }, - }, - .utf8 = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\xc3\x87\xc3\xbc\xc3\xa9\xc3\xa2\xc3\xa4\xc3\xa0\xc3\xa5\xc3\xa7\xc3\xaa\xc3\xab\xc3\xa8\xc3\xaf\xc3\xae\xc3\xac\xc3\x84\xc3\x85\xc3\x89\xc3\xa6\xc3\x86\xc3\xb4\xc3\xb6\xc3\xb2\xc3\xbb\xc3\xb9\xc3\xbf\xc3\x96\xc3\x9c\xc2\xa2\xc2\xa3\xc2\xa5\xe2\x82\xa7\xc6\x92\xc3\xa1\xc3\xad\xc3\xb3\xc3\xba\xc3\xb1\xc3\x91\xc2\xaa\xc2\xba\xc2\xbf\xe2\x8c\x90\xc2\xac\xc2\xbd\xc2\xbc\xc2\xa1\xc2\xab\xc2\xbb\xe2\x96\x91\xe2\x96\x92\xe2\x96\x93\xe2\x94\x82\xe2\x94\xa4\xe2\x95\xa1\xe2\x95\xa2\xe2\x95\x96\xe2\x95\x95\xe2\x95\xa3\xe2\x95\x91\xe2\x95\x97\xe2\x95\x9d\xe2\x95\x9c\xe2\x95\x9b\xe2\x94\x90\xe2\x94\x94\xe2\x94\xb4\xe2\x94\xac\xe2\x94\x9c\xe2\x94\x80\xe2\x94\xbc\xe2\x95\x9e\xe2\x95\x9f\xe2\x95\x9a\xe2\x95\x94\xe2\x95\xa9\xe2\x95\xa6\xe2\x95\xa0\xe2\x95\x90\xe2\x95\xac\xe2\x95\xa7\xe2\x95\xa8\xe2\x95\xa4\xe2\x95\xa5\xe2\x95\x99\xe2\x95\x98\xe2\x95\x92\xe2\x95\x93\xe2\x95\xab\xe2\x95\xaa\xe2\x94\x98\xe2\x94\x8c\xe2\x96\x88\xe2\x96\x84\xe2\x96\x8c\xe2\x96\x90\xe2\x96\x80\xce\xb1\xc3\x9f\xce\x93\xcf\x80\xce\xa3\xcf\x83\xc2\xb5\xcf\x84\xce\xa6\xce\x98\xce\xa9\xce\xb4\xe2\x88\x9e\xcf\x86\xce\xb5\xe2\x88\xa9\xe2\x89\xa1\xc2\xb1\xe2\x89\xa5\xe2\x89\xa4\xe2\x8c\xa0\xe2\x8c\xa1\xc3\xb7\xe2\x89\x88\xc2\xb0\xe2\x88\x99\xc2\xb7\xe2\x88\x9a\xe2\x81\xbf\xc2\xb2\xe2\x96\xa0\xc2\xa0", - .utf8_length = 446, - }, - ._data = { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 199, 252, 233, 226, 228, 224, 229, 231, 234, 235, 232, 239, 238, 236, 196, 197, - 201, 230, 198, 244, 246, 242, 251, 249, 255, 214, 220, 162, 163, 165, 8359, 402, - 225, 237, 243, 250, 241, 209, 170, 186, 191, 8976, 172, 189, 188, 161, 171, 187, - 9617, 9618, 9619, 9474, 9508, 9569, 9570, 9558, 9557, 9571, 9553, 9559, 9565, 9564, 9563, 9488, - 9492, 9524, 9516, 9500, 9472, 9532, 9566, 9567, 9562, 9556, 9577, 9574, 9568, 9552, 9580, 9575, - 9576, 9572, 9573, 9561, 9560, 9554, 9555, 9579, 9578, 9496, 9484, 9608, 9604, 9612, 9616, 9600, - 945, 223, 915, 960, 931, 963, 181, 964, 934, 920, 937, 948, 8734, 966, 949, 8745, - 8801, 177, 8805, 8804, 8992, 8993, 247, 8776, 176, 8729, 183, 8730, 8319, 178, 9632, 160, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -zipimport_toplevel_consts_23_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "zipimport: zlib UNAVAILABLE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[42]; - } -zipimport_toplevel_consts_23_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 41, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "can't decompress data; zlib not available", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_decompress = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "decompress", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -zipimport_toplevel_consts_23_consts_5 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_decompress._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -zipimport_toplevel_consts_23_consts_7 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "zipimport: zlib available", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -zipimport_toplevel_consts_23_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - Py_None, - & zipimport_toplevel_consts_23_consts_1._ascii.ob_base, - & zipimport_toplevel_consts_23_consts_2._ascii.ob_base, - Py_True, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & zipimport_toplevel_consts_23_consts_5._object.ob_base.ob_base, - Py_False, - & zipimport_toplevel_consts_23_consts_7._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str__importing_zlib = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_importing_zlib", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_zlib = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "zlib", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -zipimport_toplevel_consts_23_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str__importing_zlib._ascii.ob_base, - &_Py_ID(_bootstrap), - & const_str__verbose_message._ascii.ob_base, - & const_str_ZipImportError._ascii.ob_base, - & const_str_zlib._ascii.ob_base, - & const_str_decompress._ascii.ob_base, - & const_str_Exception._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -const_str__get_decompress_func = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_decompress_func", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[130]; - } -zipimport_toplevel_consts_23_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 129, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe5\x07\x16\xf4\x06\x00\x09\x13\xd7\x08\x23\xd1\x08\x23\xd0\x24\x41\xd4\x08\x42\xdc\x0e\x1c\xd0\x1d\x48\xd3\x0e\x49\xd0\x08\x49\xe0\x16\x1a\x80\x4f\xf0\x02\x06\x05\x20\xde\x08\x23\xf0\x0a\x00\x1b\x20\x88\x0f\xe4\x04\x0e\xd7\x04\x1f\xd1\x04\x1f\xd0\x20\x3b\xd4\x04\x3c\xd8\x0b\x15\xd0\x04\x15\xf8\xf4\x0f\x00\x0c\x15\xf2\x00\x02\x05\x4a\x01\xdc\x08\x12\xd7\x08\x23\xd1\x08\x23\xd0\x24\x41\xd4\x08\x42\xdc\x0e\x1c\xd0\x1d\x48\xd3\x0e\x49\xd0\x08\x49\xf0\x05\x02\x05\x4a\x01\xfb\xf0\x08\x00\x1b\x20\x89\x0f\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -zipimport_toplevel_consts_23_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\xaa\x06\x41\x0a\x00\xc1\x0a\x2a\x41\x34\x03\xc1\x34\x03\x41\x37\x00\xc1\x37\x04\x41\x3b\x03", -}; -static - struct _PyCode_DEF(252) -zipimport_toplevel_consts_23 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 126, - }, - .co_consts = & zipimport_toplevel_consts_23_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_23_names._object.ob_base.ob_base, - .co_exceptiontable = & zipimport_toplevel_consts_23_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 500, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 238, - .co_localsplusnames = & zipimport_toplevel_consts_23_consts_5._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__get_decompress_func._ascii.ob_base, - .co_qualname = & const_str__get_decompress_func._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_23_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x20\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x64\x03\x61\x00\x09\x00\x64\x04\x64\x05\x6c\x04\x6d\x05\x7d\x00\x01\x00\x09\x00\x64\x06\x61\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x07\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x53\x00\x23\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x21\x01\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x64\x06\x61\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -zipimport_toplevel_consts_24_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "negative data size", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -zipimport_toplevel_consts_24_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x50\x4b\x03\x04", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -zipimport_toplevel_consts_24_consts_9 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bad local file header: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -zipimport_toplevel_consts_24_consts_12 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "zipimport: can't read data", -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_negative_15 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(-1, 1), - .ob_digit = { 15 }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -zipimport_toplevel_consts_24_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & zipimport_toplevel_consts_24_consts_2._ascii.ob_base, - & zipimport_toplevel_consts_21_consts_4._ascii.ob_base, - & importlib__bootstrap_external_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 30], - & zipimport_toplevel_consts_21_consts_16._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 4], - & zipimport_toplevel_consts_24_consts_8.ob_base.ob_base, - & zipimport_toplevel_consts_24_consts_9._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 26], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 28], - & zipimport_toplevel_consts_24_consts_12._ascii.ob_base, - & zipimport_toplevel_consts_23_consts_2._ascii.ob_base, - & const_int_negative_15.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -zipimport_toplevel_consts_24_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & const_str_ZipImportError._ascii.ob_base, - &_Py_ID(_io), - & const_str_open_code._ascii.ob_base, - &_Py_ID(seek), - & const_str_OSError._ascii.ob_base, - &_Py_ID(read), - &_Py_ID(len), - & const_str_EOFError._ascii.ob_base, - & const_str__unpack_uint16._ascii.ob_base, - & const_str__get_decompress_func._ascii.ob_base, - & const_str_Exception._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[436]; - } -zipimport_toplevel_consts_24_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 435, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x4d\x56\xd1\x04\x4a\x80\x48\x88\x68\x98\x09\xa0\x39\xa8\x6b\xb8\x34\xc0\x14\xc0\x73\xd8\x07\x10\x90\x31\x82\x7d\xdc\x0e\x1c\xd0\x1d\x31\xd3\x0e\x32\xd0\x08\x32\xe4\x09\x0c\x8f\x1d\x89\x1d\x90\x77\xd4\x09\x1f\xa0\x32\xf0\x04\x03\x09\x54\x01\xd8\x0c\x0e\x8f\x47\x89\x47\x90\x4b\xd4\x0c\x20\xf0\x06\x00\x12\x14\x97\x17\x91\x17\x98\x12\x93\x1b\x88\x06\xdc\x0b\x0e\x88\x76\x8b\x3b\x98\x22\xd2\x0b\x1c\xdc\x12\x1a\xd0\x1b\x38\xd3\x12\x39\xd0\x0c\x39\xe0\x0b\x11\x90\x22\x90\x31\x88\x3a\x98\x1d\xd2\x0b\x26\xe4\x12\x20\xd0\x23\x3a\xb8\x37\xb8\x2b\xd0\x21\x46\xc8\x57\xd4\x12\x55\xd0\x0c\x55\xe4\x14\x22\xa0\x36\xa8\x22\xa8\x52\xa0\x3d\xd3\x14\x31\x88\x09\xdc\x15\x23\xa0\x46\xa8\x32\xa8\x62\xa0\x4d\xd3\x15\x32\x88\x0a\xd8\x16\x18\x98\x39\x91\x6e\xa0\x7a\xd1\x16\x31\x88\x0b\xd8\x08\x13\x90\x7b\xd1\x08\x22\x88\x0b\xf0\x02\x03\x09\x54\x01\xd8\x0c\x0e\x8f\x47\x89\x47\x90\x4b\xd4\x0c\x20\xf0\x06\x00\x14\x16\x97\x37\x91\x37\x98\x39\xd3\x13\x25\x88\x08\xdc\x0b\x0e\x88\x78\x8b\x3d\x98\x49\xd2\x0b\x25\xdc\x12\x19\xd0\x1a\x36\xd3\x12\x37\xd0\x0c\x37\xf0\x03\x00\x0c\x26\xf7\x2f\x00\x0a\x20\xf0\x34\x00\x08\x10\x90\x31\x82\x7d\xe0\x0f\x17\x88\x0f\xf0\x06\x03\x05\x4a\x01\xdc\x15\x29\xd3\x15\x2b\x88\x0a\xf1\x06\x00\x0c\x16\x90\x68\xa0\x03\xd3\x0b\x24\xd0\x04\x24\xf8\xf4\x3f\x00\x10\x17\xf2\x00\x01\x09\x54\x01\xdc\x12\x20\xd0\x23\x38\xb8\x17\xb8\x0b\xd0\x21\x44\xc8\x37\xd4\x12\x53\xd0\x0c\x53\xf0\x03\x01\x09\x54\x01\xfb\xf4\x20\x00\x10\x17\xf2\x00\x01\x09\x54\x01\xdc\x12\x20\xd0\x23\x38\xb8\x17\xb8\x0b\xd0\x21\x44\xc8\x37\xd4\x12\x53\xd0\x0c\x53\xf0\x03\x01\x09\x54\x01\xfa\xf7\x29\x00\x0a\x20\xd0\x09\x1f\xfb\xf4\x42\x01\x00\x0c\x15\xf2\x00\x01\x05\x4a\x01\xdc\x0e\x1c\xd0\x1d\x48\xd3\x0e\x49\xd0\x08\x49\xf0\x03\x01\x05\x4a\x01\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[72]; - } -zipimport_toplevel_consts_24_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 71, - }, - .ob_shash = -1, - .ob_sval = "\xb1\x01\x45\x09\x03\xb3\x11\x44\x0f\x02\xc1\x04\x41\x2b\x45\x09\x03\xc2\x30\x11\x44\x2c\x02\xc3\x01\x2a\x45\x09\x03\xc3\x3c\x0a\x45\x15\x00\xc4\x0f\x1a\x44\x29\x05\xc4\x29\x03\x45\x09\x03\xc4\x2c\x1a\x45\x06\x05\xc5\x06\x03\x45\x09\x03\xc5\x09\x05\x45\x12\x07\xc5\x15\x15\x45\x2a\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_datapath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "datapath", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_raw_data = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "raw_data", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[17]; - }_object; - } -zipimport_toplevel_consts_24_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 17, - }, - .ob_item = { - & const_str_archive._ascii.ob_base, - & const_str_toc_entry._ascii.ob_base, - & const_str_datapath._ascii.ob_base, - & const_str_compress._ascii.ob_base, - & const_str_data_size._ascii.ob_base, - & const_str_file_size._ascii.ob_base, - & const_str_file_offset._ascii.ob_base, - & const_str_time._ascii.ob_base, - & const_str_date._ascii.ob_base, - & const_str_crc._ascii.ob_base, - & const_str_fp._ascii.ob_base, - &_Py_ID(buffer), - & const_str_name_size._ascii.ob_base, - & const_str_extra_size._ascii.ob_base, - & const_str_header_size._ascii.ob_base, - & const_str_raw_data._ascii.ob_base, - & const_str_decompress._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -zipimport_toplevel_consts_24_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = " ", -}; -static - struct _PyCode_DEF(730) -zipimport_toplevel_consts_24 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 365, - }, - .co_consts = & zipimport_toplevel_consts_24_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_24_names._object.ob_base.ob_base, - .co_exceptiontable = & zipimport_toplevel_consts_24_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 25 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 521, - .co_nlocalsplus = 17, - .co_nlocals = 17, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 239, - .co_localsplusnames = & zipimport_toplevel_consts_24_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & zipimport_toplevel_consts_24_localspluskinds.ob_base.ob_base, - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__get_data._ascii.ob_base, - .co_qualname = & const_str__get_data._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_24_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x5c\x08\x00\x00\x7d\x02\x7d\x03\x7d\x04\x7d\x05\x7d\x06\x7d\x07\x7d\x08\x7d\x09\x7c\x04\x64\x01\x6b\x02\x00\x00\x72\x0b\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x35\x00\x7d\x0a\x09\x00\x7c\x0a\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x0a\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0b\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x64\x05\x6b\x37\x00\x00\x72\x0b\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x0b\x64\x00\x64\x07\x1a\x00\x64\x08\x6b\x37\x00\x00\x72\x10\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x04\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\x64\x0a\x64\x0b\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0c\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\x64\x0b\x64\x05\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0d\x64\x05\x7c\x0c\x7a\x00\x00\x00\x7c\x0d\x7a\x00\x00\x00\x7d\x0e\x7c\x06\x7c\x0e\x7a\x0d\x00\x00\x7d\x06\x09\x00\x7c\x0a\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x0a\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0f\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0f\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x04\x6b\x37\x00\x00\x72\x0b\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0c\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x09\x00\x64\x00\x64\x00\x64\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x03\x64\x01\x6b\x28\x00\x00\x72\x02\x7f\x0f\x53\x00\x09\x00\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x10\x02\x00\x7c\x10\x7f\x0f\x64\x0e\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x11\x01\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x04\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x11\x01\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x7c\x00\x9b\x02\x9d\x02\x7c\x00\xac\x04\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x8c\x5e\x78\x03\x59\x00\x77\x01\x23\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x0c\x01\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -zipimport_toplevel_consts_25_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_abs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "abs", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -zipimport_toplevel_consts_25_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_abs._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str__eq_mtime = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_eq_mtime", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[22]; - } -zipimport_toplevel_consts_25_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 21, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x0e\x88\x72\x90\x42\x89\x77\x8b\x3c\x98\x31\xd1\x0b\x1c\xd0\x04\x1c", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_t1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "t1", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_t2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "t2", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -zipimport_toplevel_consts_25_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_t1._ascii.ob_base, - & const_str_t2._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(36) -zipimport_toplevel_consts_25 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 18, - }, - .co_consts = & zipimport_toplevel_consts_25_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_25_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 567, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 240, - .co_localsplusnames = & zipimport_toplevel_consts_25_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__eq_mtime._ascii.ob_base, - .co_qualname = & const_str__eq_mtime._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_25_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7a\x0a\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x6b\x1a\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -zipimport_toplevel_consts_26_consts_11 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "compiled module ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -zipimport_toplevel_consts_26_consts_12 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " is not a code object", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -zipimport_toplevel_consts_26_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - Py_None, - & importlib__bootstrap_external_toplevel_consts_45_consts_3._object.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - & const_str_never._ascii.ob_base, - & const_str_always._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 8], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 12], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 16], - & importlib__bootstrap_external_toplevel_consts_43_consts_4._ascii.ob_base, - & zipimport_toplevel_consts_26_consts_11._ascii.ob_base, - & zipimport_toplevel_consts_26_consts_12._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str__get_pyc_source = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_pyc_source", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[30]; - } -const_str__get_mtime_and_size_of_source = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 29, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_mtime_and_size_of_source", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[18]; - }_object; - } -zipimport_toplevel_consts_26_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 18, - }, - .ob_item = { - & const_str__bootstrap_external._ascii.ob_base, - & const_str__classify_pyc._ascii.ob_base, - & const_str__imp._ascii.ob_base, - & const_str_check_hash_based_pycs._ascii.ob_base, - & const_str__get_pyc_source._ascii.ob_base, - & const_str_source_hash._ascii.ob_base, - & const_str__RAW_MAGIC_NUMBER._ascii.ob_base, - & const_str__validate_hash_pyc._ascii.ob_base, - & const_str__get_mtime_and_size_of_source._ascii.ob_base, - & const_str__eq_mtime._ascii.ob_base, - & const_str__unpack_uint32._ascii.ob_base, - &_Py_ID(_bootstrap), - & const_str__verbose_message._ascii.ob_base, - & const_str_marshal._ascii.ob_base, - & const_str_loads._ascii.ob_base, - &_Py_ID(isinstance), - & const_str__code_type._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str__unmarshal_code = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_unmarshal_code", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[322]; - } -zipimport_toplevel_consts_26_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 321, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x10\x18\xd8\x10\x18\xf1\x05\x03\x13\x06\x80\x4b\xf4\x0a\x00\x0d\x20\xd7\x0c\x2d\xd1\x0c\x2d\xa8\x64\xb0\x48\xb8\x6b\xd3\x0c\x4a\x80\x45\xe0\x11\x16\x98\x13\x91\x1b\xa0\x01\xd1\x11\x21\x80\x4a\xd9\x07\x11\xd8\x17\x1c\x98\x74\x91\x7c\xa0\x71\xd1\x17\x28\x88\x0c\xdc\x0c\x10\xd7\x0c\x26\xd1\x0c\x26\xa8\x27\xd2\x0c\x31\xd9\x11\x1d\xa4\x14\xd7\x21\x3b\xd1\x21\x3b\xb8\x78\xd2\x21\x47\xdc\x1b\x2a\xa8\x34\xb0\x18\xd3\x1b\x3a\x88\x4c\xd8\x0f\x1b\xd0\x0f\x27\xdc\x1e\x22\xd7\x1e\x2e\xd1\x1e\x2e\xdc\x14\x27\xd7\x14\x39\xd1\x14\x39\xd8\x14\x20\xf3\x05\x03\x1f\x12\x90\x0b\xf4\x0a\x00\x11\x24\xd7\x10\x36\xd1\x10\x36\xd8\x14\x18\x98\x2b\xa0\x78\xb0\x1b\xf5\x03\x01\x11\x3e\xf4\x08\x00\x0d\x2a\xa8\x24\xb0\x08\xd3\x0c\x39\xf1\x03\x00\x09\x22\x88\x0c\x90\x6b\xf1\x06\x00\x0c\x18\xf4\x06\x00\x15\x1e\x9c\x6e\xa8\x54\xb0\x21\xb0\x42\xa8\x5a\xd3\x1e\x38\xb8\x2c\xd4\x14\x47\xdc\x14\x22\xa0\x34\xa8\x02\xa8\x32\xa0\x3b\xd3\x14\x2f\xb0\x3b\xd2\x14\x3e\xdc\x10\x1a\xd7\x10\x2b\xd1\x10\x2b\xd8\x16\x2c\xa8\x58\xa8\x4c\xd0\x14\x39\xf4\x03\x01\x11\x3b\xe0\x17\x1b\xe4\x0b\x12\x8f\x3d\x89\x3d\x98\x14\x98\x62\x98\x63\x98\x19\xd3\x0b\x23\x80\x44\xdc\x0b\x15\x90\x64\x9c\x4a\xd4\x0b\x27\xdc\x0e\x17\xd0\x1a\x2a\xa8\x38\xa8\x2c\xd0\x36\x4b\xd0\x18\x4c\xd3\x0e\x4d\xd0\x08\x4d\xd8\x0b\x0f\x80\x4b", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[14]; - }_object; - } -zipimport_toplevel_consts_26_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 14, - }, - .ob_item = { - &_Py_ID(self), - & const_str_pathname._ascii.ob_base, - & const_str_fullpath._ascii.ob_base, - & const_str_fullname._ascii.ob_base, - &_Py_ID(data), - & const_str_exc_details._ascii.ob_base, - &_Py_ID(flags), - & const_str_hash_based._ascii.ob_base, - & const_str_check_source._ascii.ob_base, - & const_str_source_bytes._ascii.ob_base, - & const_str_source_hash._ascii.ob_base, - & const_str_source_mtime._ascii.ob_base, - & const_str_source_size._ascii.ob_base, - &_Py_ID(code), - }, - }, -}; -static - struct _PyCode_DEF(604) -zipimport_toplevel_consts_26 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 302, - }, - .co_consts = & zipimport_toplevel_consts_26_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_26_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 5, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 21 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 575, - .co_nlocalsplus = 14, - .co_nlocals = 14, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 241, - .co_localsplusnames = & zipimport_toplevel_consts_26_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_external_toplevel_consts_72_consts_6_localspluskinds.ob_base.ob_base, - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__unmarshal_code._ascii.ob_base, - .co_qualname = & const_str__unmarshal_code._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_26_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x03\x7c\x02\x64\x01\x9c\x02\x7d\x05\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x7c\x03\x7c\x05\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x06\x64\x02\x7a\x01\x00\x00\x64\x03\x6b\x37\x00\x00\x7d\x07\x7c\x07\x72\x7b\x7c\x06\x64\x04\x7a\x01\x00\x00\x64\x03\x6b\x37\x00\x00\x7d\x08\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\x6b\x37\x00\x00\x72\xb3\x7c\x08\x73\x13\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\x6b\x28\x00\x00\x72\x9e\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x09\x7c\x09\x81\x90\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x0a\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x7c\x0a\x7c\x03\x7c\x05\xab\x04\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x53\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x0b\x7d\x0c\x7c\x0b\x72\x42\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x07\x64\x08\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x0b\xab\x02\x00\x00\x00\x00\x00\x00\x72\x11\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x08\x64\x09\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x0c\x6b\x37\x00\x00\x72\x19\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0a\x7c\x03\x9b\x02\x9d\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x09\x64\x00\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0d\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\x74\x20\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x0f\x74\x23\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0b\x7c\x01\x9b\x02\x64\x0c\x9d\x03\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x0d\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -zipimport_toplevel_consts_27_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - & importlib__bootstrap_external_toplevel_consts_29.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[10]), - (PyObject *)&_Py_SINGLETON(bytes_characters[13]), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -zipimport_toplevel_consts_27_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(replace), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -const_str__normalize_line_endings = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_normalize_line_endings", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[40]; - } -zipimport_toplevel_consts_27_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 39, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0d\x13\x8f\x5e\x89\x5e\x98\x47\xa0\x55\xd3\x0d\x2b\x80\x46\xd8\x0d\x13\x8f\x5e\x89\x5e\x98\x45\xa0\x35\xd3\x0d\x29\x80\x46\xd8\x0b\x11\x80\x4d", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -zipimport_toplevel_consts_27_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(source), - }, - }, -}; -static - struct _PyCode_DEF(78) -zipimport_toplevel_consts_27 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 39, - }, - .co_consts = & zipimport_toplevel_consts_27_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_27_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 620, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 242, - .co_localsplusnames = & zipimport_toplevel_consts_27_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__normalize_line_endings._ascii.ob_base, - .co_qualname = & const_str__normalize_line_endings._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_27_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -zipimport_toplevel_consts_28_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - & const_str_exec._ascii.ob_base, - Py_True, - & importlib__bootstrap_external_toplevel_consts_68_consts_4_consts_5._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -zipimport_toplevel_consts_28_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__normalize_line_endings._ascii.ob_base, - & const_str_compile._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str__compile_source = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_compile_source", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -zipimport_toplevel_consts_28_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0d\x24\xa0\x56\xd3\x0d\x2c\x80\x46\xdc\x0b\x12\x90\x36\x98\x38\xa0\x56\xb8\x24\xd4\x0b\x3f\xd0\x04\x3f", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -zipimport_toplevel_consts_28_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_pathname._ascii.ob_base, - &_Py_ID(source), - }, - }, -}; -static - struct _PyCode_DEF(54) -zipimport_toplevel_consts_28 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & zipimport_toplevel_consts_28_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_28_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 627, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 243, - .co_localsplusnames = & zipimport_toplevel_consts_28_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__compile_source._ascii.ob_base, - .co_qualname = & const_str__compile_source._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_28_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x00\x64\x01\x64\x02\xac\x03\xab\x04\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_1980 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 1980 }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -zipimport_toplevel_consts_29_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 9], - & const_int_1980.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 5], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 15], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 31], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 11], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 63], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_mktime = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "mktime", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -zipimport_toplevel_consts_29_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_time._ascii.ob_base, - & const_str_mktime._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__parse_dostime = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_parse_dostime", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[90]; - } -zipimport_toplevel_consts_29_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 89, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0b\x0f\x8f\x3b\x89\x3b\xd8\x09\x0a\x88\x61\x89\x16\x90\x34\x89\x0f\xd8\x09\x0a\x88\x61\x89\x16\x90\x33\x89\x0e\xd8\x08\x09\x88\x44\x89\x08\xd8\x08\x09\x88\x52\x89\x07\xd8\x09\x0a\x88\x61\x89\x16\x90\x34\x89\x0f\xd8\x09\x0a\x88\x54\x89\x18\x90\x51\x89\x0e\xd8\x08\x0a\x88\x42\x90\x02\xf0\x0f\x07\x18\x14\xf3\x00\x07\x0c\x15\xf0\x00\x07\x05\x15", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -zipimport_toplevel_consts_29_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[100], - (PyObject *)&_Py_SINGLETON(strings).ascii[116], - }, - }, -}; -static - struct _PyCode_DEF(122) -zipimport_toplevel_consts_29 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 61, - }, - .co_consts = & zipimport_toplevel_consts_29_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_29_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 13 + FRAME_SPECIALS_SIZE, - .co_stacksize = 11, - .co_firstlineno = 633, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 244, - .co_localsplusnames = & zipimport_toplevel_consts_29_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__parse_dostime._ascii.ob_base, - .co_qualname = & const_str__parse_dostime._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_29_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x01\x7a\x09\x00\x00\x64\x02\x7a\x00\x00\x00\x7c\x00\x64\x03\x7a\x09\x00\x00\x64\x04\x7a\x01\x00\x00\x7c\x00\x64\x05\x7a\x01\x00\x00\x7c\x01\x64\x06\x7a\x09\x00\x00\x7c\x01\x64\x03\x7a\x09\x00\x00\x64\x07\x7a\x01\x00\x00\x7c\x01\x64\x05\x7a\x01\x00\x00\x64\x08\x7a\x05\x00\x00\x64\x09\x64\x09\x64\x09\x66\x09\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -zipimport_toplevel_consts_30_consts_2 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[99], - (PyObject *)&_Py_SINGLETON(strings).ascii[111], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -zipimport_toplevel_consts_30_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - & zipimport_toplevel_consts_30_consts_2._object.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 5], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 6], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 3], - & importlib__bootstrap_external_toplevel_consts_81._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -zipimport_toplevel_consts_30_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str__files._ascii.ob_base, - & const_str__parse_dostime._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - & const_str_IndexError._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[127]; - } -zipimport_toplevel_consts_30_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 126, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x02\x0c\x05\x14\xe0\x0f\x13\x90\x42\x90\x43\x88\x79\x98\x4a\xd1\x0f\x26\xd0\x08\x26\xd0\x0f\x26\xd8\x0f\x13\x90\x43\x90\x52\x88\x79\x88\x04\xd8\x14\x18\x97\x4b\x91\x4b\xa0\x04\xd1\x14\x25\x88\x09\xf0\x06\x00\x10\x19\x98\x11\x89\x7c\x88\x04\xd8\x0f\x18\x98\x11\x89\x7c\x88\x04\xd8\x1c\x25\xa0\x61\x99\x4c\xd0\x08\x19\xdc\x0f\x1d\x98\x64\xa0\x44\xd3\x0f\x29\xd0\x2b\x3c\xd0\x0f\x3c\xd0\x08\x3c\xf8\xdc\x0c\x14\x94\x6a\xa4\x29\xd0\x0b\x2c\xf2\x00\x01\x05\x14\xd9\x0f\x13\xf0\x03\x01\x05\x14\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[16]; - } -zipimport_toplevel_consts_30_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 15, - }, - .ob_shash = -1, - .ob_sval = "\x82\x39\x3c\x00\xbc\x14\x41\x13\x03\xc1\x12\x01\x41\x13\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str_uncompressed_size = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "uncompressed_size", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -zipimport_toplevel_consts_30_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(path), - & const_str_toc_entry._ascii.ob_base, - & const_str_time._ascii.ob_base, - & const_str_date._ascii.ob_base, - & const_str_uncompressed_size._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(172) -zipimport_toplevel_consts_30 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 86, - }, - .co_consts = & zipimport_toplevel_consts_30_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_30_names._object.ob_base.ob_base, - .co_exceptiontable = & zipimport_toplevel_consts_30_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 646, - .co_nlocalsplus = 6, - .co_nlocals = 6, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 245, - .co_localsplusnames = & zipimport_toplevel_consts_30_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_30_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__get_mtime_and_size_of_source._ascii.ob_base, - .co_qualname = & const_str__get_mtime_and_size_of_source._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_30_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x7c\x01\x64\x01\x64\x00\x1a\x00\x64\x02\x76\x00\x73\x02\x4a\x00\x82\x01\x7c\x01\x64\x00\x64\x01\x1a\x00\x7d\x01\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x19\x00\x00\x00\x7d\x02\x7c\x02\x64\x03\x19\x00\x00\x00\x7d\x03\x7c\x02\x64\x04\x19\x00\x00\x00\x7d\x04\x7c\x02\x64\x05\x19\x00\x00\x00\x7d\x05\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x7c\x03\xab\x02\x00\x00\x00\x00\x00\x00\x7c\x05\x66\x02\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x66\x03\x24\x00\x72\x03\x01\x00\x59\x00\x79\x06\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -zipimport_toplevel_consts_31_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - & zipimport_toplevel_consts_30_consts_2._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -zipimport_toplevel_consts_31_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str__files._ascii.ob_base, - & const_str__get_data._ascii.ob_base, - & const_str_archive._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[92]; - } -zipimport_toplevel_consts_31_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 91, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0f\x90\x02\x90\x03\x88\x39\x98\x0a\xd1\x0b\x22\xd0\x04\x22\xd0\x0b\x22\xd8\x0b\x0f\x90\x03\x90\x12\x88\x39\x80\x44\xf0\x04\x05\x05\x32\xd8\x14\x18\x97\x4b\x91\x4b\xa0\x04\xd1\x14\x25\x88\x09\xf4\x08\x00\x10\x19\x98\x14\x9f\x1c\x99\x1c\xa0\x79\xd3\x0f\x31\xd0\x08\x31\xf8\xf4\x07\x00\x0c\x14\xf2\x00\x01\x05\x14\xd9\x0f\x13\xf0\x03\x01\x05\x14\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[16]; - } -zipimport_toplevel_consts_31_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 15, - }, - .ob_shash = -1, - .ob_sval = "\x90\x0f\x35\x00\xb5\x09\x41\x01\x03\xc1\x00\x01\x41\x01\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -zipimport_toplevel_consts_31_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(path), - & const_str_toc_entry._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(136) -zipimport_toplevel_consts_31 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 68, - }, - .co_consts = & zipimport_toplevel_consts_31_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_31_names._object.ob_base.ob_base, - .co_exceptiontable = & zipimport_toplevel_consts_31_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 665, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 246, - .co_localsplusnames = & zipimport_toplevel_consts_31_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__get_pyc_source._ascii.ob_base, - .co_qualname = & const_str__get_pyc_source._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_31_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x64\x01\x64\x00\x1a\x00\x64\x02\x76\x00\x73\x02\x4a\x00\x82\x01\x7c\x01\x64\x00\x64\x01\x1a\x00\x7d\x01\x09\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x19\x00\x00\x00\x7d\x02\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -zipimport_toplevel_consts_32_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "trying {}{}{}", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -zipimport_toplevel_consts_32_consts_5 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "module load failed: ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -zipimport_toplevel_consts_32_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - Py_None, - & zipimport_toplevel_consts_32_consts_1._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - & importlib__bootstrap_toplevel_consts_24._object.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & zipimport_toplevel_consts_32_consts_5._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_4_localsplusnames._object.ob_base.ob_base, - & zipimport_toplevel_consts_11_consts_8_consts_2._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -zipimport_toplevel_consts_32_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str__get_module_path._ascii.ob_base, - & const_str__zip_searchorder._ascii.ob_base, - &_Py_ID(_bootstrap), - & const_str__verbose_message._ascii.ob_base, - & const_str_archive._ascii.ob_base, - & const_str_path_sep._ascii.ob_base, - & const_str__files._ascii.ob_base, - & const_str__get_data._ascii.ob_base, - & const_str__unmarshal_code._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - & const_str__compile_source._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - & const_str_ZipImportError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[291]; - } -zipimport_toplevel_consts_32_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 290, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0b\x1b\x98\x44\xa0\x28\xd3\x0b\x2b\x80\x44\xd8\x13\x17\x80\x4c\xdf\x29\x39\xd1\x08\x25\x88\x06\x90\x0a\x98\x49\xd8\x13\x17\x98\x26\x91\x3d\x88\x08\xdc\x08\x12\xd7\x08\x23\xd1\x08\x23\xa0\x4f\xb0\x54\xb7\x5c\xb1\x5c\xc4\x38\xc8\x58\xd0\x61\x62\xd5\x08\x63\xf0\x02\x14\x09\x2c\xd8\x18\x1c\x9f\x0b\x99\x0b\xa0\x48\xd1\x18\x2d\x88\x49\xf0\x08\x00\x17\x20\xa0\x01\x91\x6c\x88\x47\xdc\x13\x1c\x98\x54\x9f\x5c\x99\x5c\xa8\x39\xd3\x13\x35\x88\x44\xd8\x13\x17\x88\x44\xd9\x0f\x19\xf0\x02\x03\x11\x27\xdc\x1b\x2a\xa8\x34\xb0\x17\xb8\x28\xc0\x48\xc8\x64\xd3\x1b\x53\x91\x44\xf4\x08\x00\x18\x27\xa0\x77\xb0\x04\xd3\x17\x35\x90\x04\xd8\x0f\x13\x88\x7c\xf0\x06\x00\x11\x19\xd8\x16\x1f\xa0\x01\x91\x6c\x88\x47\xd8\x13\x17\x98\x19\xa0\x47\xd0\x13\x2b\xd2\x0c\x2b\xf0\x2f\x00\x2a\x3a\xf1\x32\x00\x0c\x18\xd8\x14\x28\xa8\x1c\xa8\x0e\xd0\x12\x37\x88\x43\xdc\x12\x20\xa0\x13\xa8\x38\xd4\x12\x34\xb8\x2c\xd0\x0c\x46\xe4\x12\x20\xd0\x23\x35\xb0\x68\xb0\x5c\xd0\x21\x42\xc8\x18\xd4\x12\x52\xd0\x0c\x52\xf8\xf4\x1f\x00\x18\x23\xf2\x00\x01\x11\x27\xd8\x23\x26\x95\x4c\xfb\xf0\x03\x01\x11\x27\xfb\xf4\x13\x00\x10\x18\xf2\x00\x01\x09\x11\xd9\x0c\x10\xf0\x03\x01\x09\x11\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[43]; - } -zipimport_toplevel_consts_32_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 42, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x0a\x0f\x43\x22\x02\xc1\x39\x0f\x43\x0a\x02\xc3\x0a\x09\x43\x1f\x05\xc3\x13\x02\x43\x1a\x05\xc3\x1a\x05\x43\x1f\x05\xc3\x22\x09\x43\x2e\x05\xc3\x2d\x01\x43\x2e\x05", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_import_error = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "import_error", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[14]; - }_object; - } -zipimport_toplevel_consts_32_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 14, - }, - .ob_item = { - &_Py_ID(self), - & const_str_fullname._ascii.ob_base, - &_Py_ID(path), - & const_str_import_error._ascii.ob_base, - & const_str_suffix._ascii.ob_base, - & const_str_isbytecode._ascii.ob_base, - & const_str_ispackage._ascii.ob_base, - & const_str_fullpath._ascii.ob_base, - & const_str_toc_entry._ascii.ob_base, - & const_str_modpath._ascii.ob_base, - &_Py_ID(data), - &_Py_ID(code), - & const_str_exc._ascii.ob_base, - &_Py_ID(msg), - }, - }, -}; -static - struct _PyCode_DEF(482) -zipimport_toplevel_consts_32 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 241, - }, - .co_consts = & zipimport_toplevel_consts_32_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_consts_32_names._object.ob_base.ob_base, - .co_exceptiontable = & zipimport_toplevel_consts_32_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 22 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 680, - .co_nlocalsplus = 14, - .co_nlocals = 14, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 247, - .co_localsplusnames = & zipimport_toplevel_consts_32_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_external_toplevel_consts_72_consts_6_localspluskinds.ob_base.ob_base, - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = & const_str__get_module_code._ascii.ob_base, - .co_qualname = & const_str__get_module_code._ascii.ob_base, - .co_linetable = & zipimport_toplevel_consts_32_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x02\x64\x00\x7d\x03\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x8d\x00\x00\x5c\x03\x00\x00\x7d\x04\x7d\x05\x7d\x06\x7c\x02\x7c\x04\x7a\x00\x00\x00\x7d\x07\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\x64\x02\xac\x03\xab\x05\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x7c\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\x19\x00\x00\x00\x7d\x08\x7c\x08\x64\x04\x19\x00\x00\x00\x7d\x09\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x0a\x64\x00\x7d\x0b\x7c\x05\x72\x11\x09\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x09\x7c\x07\x7c\x01\x7c\x0a\xab\x05\x00\x00\x00\x00\x00\x00\x7d\x0b\x6e\x0c\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\x7c\x0a\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x0b\x7c\x0b\x80\x01\x8c\x83\x7c\x08\x64\x04\x19\x00\x00\x00\x7d\x09\x7c\x0b\x7c\x06\x7c\x09\x66\x03\x63\x02\x01\x00\x53\x00\x04\x00\x7c\x03\x72\x13\x64\x05\x7c\x03\x9b\x00\x9d\x02\x7d\x0d\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\x7c\x01\xac\x06\xab\x02\x00\x00\x00\x00\x00\x00\x7c\x03\x82\x02\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x64\x07\x7c\x01\x9b\x02\x9d\x02\x7c\x01\xac\x06\xab\x02\x00\x00\x00\x00\x00\x00\x82\x01\x23\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x0c\x7d\x0c\x7c\x0c\x7d\x03\x59\x00\x64\x00\x7d\x0c\x7e\x0c\x8c\x45\x64\x00\x7d\x0c\x7e\x0c\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x8c\xd8\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[33]; - }_object; - } -zipimport_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 33, - }, - .ob_item = { - & zipimport_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & zipimport_toplevel_consts_3._object.ob_base.ob_base, - & const_str_ZipImportError._ascii.ob_base, - & const_str_zipimporter._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - & zipimport_toplevel_consts_7.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 22], - & zipimport_toplevel_consts_9.ob_base.ob_base, - & const_int_65535.ob_base, - & zipimport_toplevel_consts_11.ob_base.ob_base, - & zipimport_toplevel_consts_12._ascii.ob_base, - Py_True, - & importlib__bootstrap_toplevel_consts_46_consts_5_consts_11._ascii.ob_base, - Py_False, - & zipimport_toplevel_consts_16._object.ob_base.ob_base, - & zipimport_toplevel_consts_17._object.ob_base.ob_base, - & zipimport_toplevel_consts_18.ob_base.ob_base, - & zipimport_toplevel_consts_19.ob_base.ob_base, - & zipimport_toplevel_consts_20.ob_base.ob_base, - & zipimport_toplevel_consts_21.ob_base.ob_base, - & zipimport_toplevel_consts_22._compact._base.ob_base, - & zipimport_toplevel_consts_23.ob_base.ob_base, - & zipimport_toplevel_consts_24.ob_base.ob_base, - & zipimport_toplevel_consts_25.ob_base.ob_base, - & zipimport_toplevel_consts_26.ob_base.ob_base, - & zipimport_toplevel_consts_27.ob_base.ob_base, - & zipimport_toplevel_consts_28.ob_base.ob_base, - & zipimport_toplevel_consts_29.ob_base.ob_base, - & zipimport_toplevel_consts_30.ob_base.ob_base, - & zipimport_toplevel_consts_31.ob_base.ob_base, - & zipimport_toplevel_consts_32.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str__frozen_importlib = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_frozen_importlib", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[46]; - }_object; - } -zipimport_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 46, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str__frozen_importlib_external._ascii.ob_base, - & const_str__bootstrap_external._ascii.ob_base, - & const_str__unpack_uint16._ascii.ob_base, - & const_str__unpack_uint32._ascii.ob_base, - & const_str__frozen_importlib._ascii.ob_base, - &_Py_ID(_bootstrap), - & const_str__imp._ascii.ob_base, - &_Py_ID(_io), - & const_str_marshal._ascii.ob_base, - & const_str_sys._ascii.ob_base, - & const_str_time._ascii.ob_base, - & const_str__warnings._ascii.ob_base, - &_Py_ID(__all__), - & const_str_path_sep._ascii.ob_base, - & const_str_path_separators._ascii.ob_base, - & const_str_alt_path_sep._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - & const_str_ZipImportError._ascii.ob_base, - & const_str__zip_directory_cache._ascii.ob_base, - &_Py_ID(type), - & const_str__module_type._ascii.ob_base, - & const_str_END_CENTRAL_DIR_SIZE._ascii.ob_base, - & const_str_STRING_END_ARCHIVE._ascii.ob_base, - & const_str_MAX_COMMENT_LEN._ascii.ob_base, - & const_str__LoaderBasics._ascii.ob_base, - & const_str_zipimporter._ascii.ob_base, - & const_str__zip_searchorder._ascii.ob_base, - & const_str__get_module_path._ascii.ob_base, - & const_str__is_dir._ascii.ob_base, - & const_str__get_module_info._ascii.ob_base, - & const_str__read_directory._ascii.ob_base, - & const_str_cp437_table._ascii.ob_base, - & const_str__importing_zlib._ascii.ob_base, - & const_str__get_decompress_func._ascii.ob_base, - & const_str__get_data._ascii.ob_base, - & const_str__eq_mtime._ascii.ob_base, - & const_str__unmarshal_code._ascii.ob_base, - & const_str___code__._ascii.ob_base, - & const_str__code_type._ascii.ob_base, - & const_str__normalize_line_endings._ascii.ob_base, - & const_str__compile_source._ascii.ob_base, - & const_str__parse_dostime._ascii.ob_base, - & const_str__get_mtime_and_size_of_source._ascii.ob_base, - & const_str__get_pyc_source._ascii.ob_base, - & const_str__get_module_code._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[308]; - } -zipimport_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 307, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x02\x0c\x01\x04\xf3\x20\x00\x01\x39\xdf\x00\x45\xdb\x00\x26\xdb\x00\x0b\xdb\x00\x0a\xdb\x00\x0e\xdb\x00\x0a\xdb\x00\x0b\xdb\x00\x10\xe0\x0b\x1b\x98\x5d\xd0\x0a\x2b\x80\x07\xf0\x06\x00\x0c\x1f\xd7\x0b\x27\xd1\x0b\x27\x80\x08\xd8\x0f\x22\xd7\x0f\x32\xd1\x0f\x32\xb0\x31\xb0\x32\xd0\x0f\x36\x80\x0c\xf4\x06\x01\x01\x09\x90\x5b\xf4\x00\x01\x01\x09\xf0\x08\x00\x18\x1a\xd0\x00\x14\xe1\x0f\x13\x90\x43\x8b\x79\x80\x0c\xe0\x17\x19\xd0\x00\x14\xd8\x15\x22\xd0\x00\x12\xd8\x12\x1f\x80\x0f\xf4\x04\x64\x03\x01\x4f\x01\xd0\x12\x25\xd7\x12\x33\xd1\x12\x33\xf4\x00\x64\x03\x01\x4f\x01\xf0\x5a\x07\x00\x06\x0e\x90\x0e\xd1\x05\x1e\xa0\x04\xa0\x64\xd0\x04\x2b\xd8\x05\x0d\x90\x0d\xd1\x05\x1d\x98\x75\xa0\x64\xd0\x04\x2b\xd8\x04\x19\xd8\x04\x19\xf0\x09\x05\x14\x02\xd0\x00\x10\xf2\x12\x01\x01\x35\xf2\x08\x06\x01\x22\xf2\x12\x06\x01\x10\xf2\x3e\x7b\x01\x01\x11\xf0\x4a\x04\x18\x05\x2f\xf0\x05\x00\x01\x0c\xf0\x3a\x00\x13\x18\x80\x0f\xf2\x0a\x12\x01\x16\xf2\x2a\x28\x01\x25\xf2\x5c\x01\x02\x01\x1d\xf2\x10\x26\x01\x10\xf1\x50\x01\x00\x0e\x12\x90\x2f\xd7\x12\x2a\xd1\x12\x2a\xd3\x0d\x2b\x80\x0a\xf2\x0a\x03\x01\x12\xf2\x0e\x02\x01\x40\x01\xf2\x0c\x08\x01\x15\xf2\x1a\x0d\x01\x14\xf2\x26\x0a\x01\x32\xf3\x1e\x20\x01\x53\x01", -}; -static - struct _PyCode_DEF(410) -zipimport_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 205, - }, - .co_consts = & zipimport_toplevel_consts._object.ob_base.ob_base, - .co_names = & zipimport_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 248, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & zipimport_toplevel_consts_7_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & zipimport_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x64\x02\x6c\x01\x5a\x02\x64\x01\x64\x03\x6c\x01\x6d\x03\x5a\x03\x6d\x04\x5a\x04\x01\x00\x64\x01\x64\x02\x6c\x05\x5a\x06\x64\x01\x64\x02\x6c\x07\x5a\x07\x64\x01\x64\x02\x6c\x08\x5a\x08\x64\x01\x64\x02\x6c\x09\x5a\x09\x64\x01\x64\x02\x6c\x0a\x5a\x0a\x64\x01\x64\x02\x6c\x0b\x5a\x0b\x64\x01\x64\x02\x6c\x0c\x5a\x0c\x64\x04\x64\x05\x67\x02\x5a\x0d\x65\x02\x6a\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x0e\x65\x02\x6a\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\x64\x02\x1a\x00\x5a\x10\x02\x00\x47\x00\x64\x07\x84\x00\x64\x04\x65\x11\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x12\x69\x00\x5a\x13\x02\x00\x65\x14\x65\x0a\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x15\x64\x08\x5a\x16\x64\x09\x5a\x17\x64\x0a\x5a\x18\x02\x00\x47\x00\x64\x0b\x84\x00\x64\x05\x65\x02\x6a\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x1a\x65\x0e\x64\x0c\x7a\x00\x00\x00\x64\x0d\x64\x0d\x66\x03\x65\x0e\x64\x0e\x7a\x00\x00\x00\x64\x0f\x64\x0d\x66\x03\x64\x10\x64\x11\x66\x04\x5a\x1b\x64\x12\x84\x00\x5a\x1c\x64\x13\x84\x00\x5a\x1d\x64\x14\x84\x00\x5a\x1e\x64\x15\x84\x00\x5a\x1f\x64\x16\x5a\x20\x64\x0f\x61\x21\x64\x17\x84\x00\x5a\x22\x64\x18\x84\x00\x5a\x23\x64\x19\x84\x00\x5a\x24\x64\x1a\x84\x00\x5a\x25\x02\x00\x65\x14\x65\x25\x6a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x27\x64\x1b\x84\x00\x5a\x28\x64\x1c\x84\x00\x5a\x29\x64\x1d\x84\x00\x5a\x2a\x64\x1e\x84\x00\x5a\x2b\x64\x1f\x84\x00\x5a\x2c\x64\x20\x84\x00\x5a\x2d\x79\x02", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_zipimport_toplevel(void) -{ - return Py_NewRef((PyObject *) &zipimport_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[52]; - } -abc_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 51, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Abstract Base Classes (ABCs) according to PEP 3119.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[586]; - } -abc_toplevel_consts_1_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 585, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x20\x64\x65\x63\x6f\x72\x61\x74\x6f\x72\x20\x69\x6e\x64\x69\x63\x61\x74\x69\x6e\x67\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x6d\x65\x74\x68\x6f\x64\x73\x2e\x0a\x0a\x20\x20\x20\x20\x52\x65\x71\x75\x69\x72\x65\x73\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x6d\x65\x74\x61\x63\x6c\x61\x73\x73\x20\x69\x73\x20\x41\x42\x43\x4d\x65\x74\x61\x20\x6f\x72\x20\x64\x65\x72\x69\x76\x65\x64\x20\x66\x72\x6f\x6d\x20\x69\x74\x2e\x20\x20\x41\x0a\x20\x20\x20\x20\x63\x6c\x61\x73\x73\x20\x74\x68\x61\x74\x20\x68\x61\x73\x20\x61\x20\x6d\x65\x74\x61\x63\x6c\x61\x73\x73\x20\x64\x65\x72\x69\x76\x65\x64\x20\x66\x72\x6f\x6d\x20\x41\x42\x43\x4d\x65\x74\x61\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x74\x69\x61\x74\x65\x64\x20\x75\x6e\x6c\x65\x73\x73\x20\x61\x6c\x6c\x20\x6f\x66\x20\x69\x74\x73\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x6d\x65\x74\x68\x6f\x64\x73\x20\x61\x72\x65\x20\x6f\x76\x65\x72\x72\x69\x64\x64\x65\x6e\x2e\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x6d\x65\x74\x68\x6f\x64\x73\x20\x63\x61\x6e\x20\x62\x65\x20\x63\x61\x6c\x6c\x65\x64\x20\x75\x73\x69\x6e\x67\x20\x61\x6e\x79\x20\x6f\x66\x20\x74\x68\x65\x20\x6e\x6f\x72\x6d\x61\x6c\x0a\x20\x20\x20\x20\x27\x73\x75\x70\x65\x72\x27\x20\x63\x61\x6c\x6c\x20\x6d\x65\x63\x68\x61\x6e\x69\x73\x6d\x73\x2e\x20\x20\x61\x62\x73\x74\x72\x61\x63\x74\x6d\x65\x74\x68\x6f\x64\x28\x29\x20\x6d\x61\x79\x20\x62\x65\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x64\x65\x63\x6c\x61\x72\x65\x0a\x20\x20\x20\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x6d\x65\x74\x68\x6f\x64\x73\x20\x66\x6f\x72\x20\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x20\x61\x6e\x64\x20\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x73\x2e\x0a\x0a\x20\x20\x20\x20\x55\x73\x61\x67\x65\x3a\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x61\x73\x73\x20\x43\x28\x6d\x65\x74\x61\x63\x6c\x61\x73\x73\x3d\x41\x42\x43\x4d\x65\x74\x61\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x40\x61\x62\x73\x74\x72\x61\x63\x74\x6d\x65\x74\x68\x6f\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x20\x6d\x79\x5f\x61\x62\x73\x74\x72\x61\x63\x74\x5f\x6d\x65\x74\x68\x6f\x64\x28\x73\x65\x6c\x66\x2c\x20\x61\x72\x67\x31\x2c\x20\x61\x72\x67\x32\x2c\x20\x61\x72\x67\x4e\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2e\x2e\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -abc_toplevel_consts_1_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & abc_toplevel_consts_1_consts_0._ascii.ob_base, - Py_True, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -abc_toplevel_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(__isabstractmethod__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -abc_toplevel_consts_1_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_abstractmethod = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "abstractmethod", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -abc_toplevel_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x22\x00\x24\x28\x80\x47\xd4\x04\x20\xd8\x0b\x12\x80\x4e", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_funcobj = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "funcobj", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -abc_toplevel_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_funcobj._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(20) -abc_toplevel_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 10, - }, - .co_consts = & abc_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 7, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 249, - .co_localsplusnames = & abc_toplevel_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_abstractmethod._ascii.ob_base, - .co_qualname = & const_str_abstractmethod._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -const_str_abstractclassmethod = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "abstractclassmethod", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[265]; - } -abc_toplevel_consts_2_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 264, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x20\x64\x65\x63\x6f\x72\x61\x74\x6f\x72\x20\x69\x6e\x64\x69\x63\x61\x74\x69\x6e\x67\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x63\x6c\x61\x73\x73\x6d\x65\x74\x68\x6f\x64\x73\x2e\x0a\x0a\x20\x20\x20\x20\x44\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2c\x20\x75\x73\x65\x20\x27\x63\x6c\x61\x73\x73\x6d\x65\x74\x68\x6f\x64\x27\x20\x77\x69\x74\x68\x20\x27\x61\x62\x73\x74\x72\x61\x63\x74\x6d\x65\x74\x68\x6f\x64\x27\x20\x69\x6e\x73\x74\x65\x61\x64\x3a\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x61\x73\x73\x20\x43\x28\x41\x42\x43\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x40\x63\x6c\x61\x73\x73\x6d\x65\x74\x68\x6f\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x40\x61\x62\x73\x74\x72\x61\x63\x74\x6d\x65\x74\x68\x6f\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x20\x6d\x79\x5f\x61\x62\x73\x74\x72\x61\x63\x74\x5f\x63\x6c\x61\x73\x73\x6d\x65\x74\x68\x6f\x64\x28\x63\x6c\x73\x2c\x20\x2e\x2e\x2e\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2e\x2e\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -abc_toplevel_consts_2_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(__isabstractmethod__), - & const_str_super._ascii.ob_base, - &_Py_ID(__init__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -abc_toplevel_consts_2_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "abstractclassmethod.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[25]; - } -abc_toplevel_consts_2_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 24, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xd8\x28\x2c\x88\x08\xd4\x08\x25\xdc\x08\x0d\x89\x07\xd1\x08\x18\x98\x18\xd5\x08\x22", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_callable = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "callable", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -abc_toplevel_consts_2_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_callable._ascii.ob_base, - &_Py_ID(__class__), - }, - }, -}; -static - struct _PyCode_DEF(50) -abc_toplevel_consts_2_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 25, - }, - .co_consts = & importlib__bootstrap_external_toplevel_consts_68_consts_2_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_2_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 43, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 250, - .co_localsplusnames = & abc_toplevel_consts_2_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & abc_toplevel_consts_2_consts_3_qualname._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_2_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x64\x01\x7c\x01\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x89\x02\x7c\x00\x8d\x09\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -abc_toplevel_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_abstractclassmethod._ascii.ob_base, - & abc_toplevel_consts_2_consts_1._ascii.ob_base, - Py_True, - & abc_toplevel_consts_2_consts_3.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -abc_toplevel_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__isabstractmethod__), - &_Py_ID(__init__), - &_Py_ID(__classcell__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[27]; - } -abc_toplevel_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 26, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x84\x00\xf1\x02\x0a\x05\x08\xf0\x18\x00\x1c\x20\xd0\x04\x18\xf7\x04\x02\x05\x23\xf0\x00\x02\x05\x23", -}; -static - struct _PyCode_DEF(38) -abc_toplevel_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 19, - }, - .co_consts = & abc_toplevel_consts_2_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 28, - .co_nlocalsplus = 1, - .co_nlocals = 0, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 251, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[64]), - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_abstractclassmethod._ascii.ob_base, - .co_qualname = & const_str_abstractclassmethod._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x00\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x88\x00\x66\x01\x64\x03\x84\x08\x5a\x05\x88\x00\x78\x01\x5a\x06\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -const_str_abstractstaticmethod = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "abstractstaticmethod", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[264]; - } -abc_toplevel_consts_4_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 263, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x20\x64\x65\x63\x6f\x72\x61\x74\x6f\x72\x20\x69\x6e\x64\x69\x63\x61\x74\x69\x6e\x67\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x73\x74\x61\x74\x69\x63\x6d\x65\x74\x68\x6f\x64\x73\x2e\x0a\x0a\x20\x20\x20\x20\x44\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2c\x20\x75\x73\x65\x20\x27\x73\x74\x61\x74\x69\x63\x6d\x65\x74\x68\x6f\x64\x27\x20\x77\x69\x74\x68\x20\x27\x61\x62\x73\x74\x72\x61\x63\x74\x6d\x65\x74\x68\x6f\x64\x27\x20\x69\x6e\x73\x74\x65\x61\x64\x3a\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x61\x73\x73\x20\x43\x28\x41\x42\x43\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x40\x73\x74\x61\x74\x69\x63\x6d\x65\x74\x68\x6f\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x40\x61\x62\x73\x74\x72\x61\x63\x74\x6d\x65\x74\x68\x6f\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x20\x6d\x79\x5f\x61\x62\x73\x74\x72\x61\x63\x74\x5f\x73\x74\x61\x74\x69\x63\x6d\x65\x74\x68\x6f\x64\x28\x2e\x2e\x2e\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2e\x2e\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[30]; - } -abc_toplevel_consts_4_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 29, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "abstractstaticmethod.__init__", -}; -static - struct _PyCode_DEF(50) -abc_toplevel_consts_4_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 25, - }, - .co_consts = & importlib__bootstrap_external_toplevel_consts_68_consts_2_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_2_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 63, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 252, - .co_localsplusnames = & abc_toplevel_consts_2_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & abc_toplevel_consts_4_consts_3_qualname._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_2_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x64\x01\x7c\x01\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x89\x02\x7c\x00\x8d\x09\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -abc_toplevel_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_abstractstaticmethod._ascii.ob_base, - & abc_toplevel_consts_4_consts_1._ascii.ob_base, - Py_True, - & abc_toplevel_consts_4_consts_3.ob_base.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(38) -abc_toplevel_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 19, - }, - .co_consts = & abc_toplevel_consts_4_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 48, - .co_nlocalsplus = 1, - .co_nlocals = 0, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 253, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[64]), - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_abstractstaticmethod._ascii.ob_base, - .co_qualname = & const_str_abstractstaticmethod._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x00\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x88\x00\x66\x01\x64\x03\x84\x08\x5a\x05\x88\x00\x78\x01\x5a\x06\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str_abstractproperty = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "abstractproperty", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[250]; - } -abc_toplevel_consts_6_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 249, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x20\x64\x65\x63\x6f\x72\x61\x74\x6f\x72\x20\x69\x6e\x64\x69\x63\x61\x74\x69\x6e\x67\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x2e\x0a\x0a\x20\x20\x20\x20\x44\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2c\x20\x75\x73\x65\x20\x27\x70\x72\x6f\x70\x65\x72\x74\x79\x27\x20\x77\x69\x74\x68\x20\x27\x61\x62\x73\x74\x72\x61\x63\x74\x6d\x65\x74\x68\x6f\x64\x27\x20\x69\x6e\x73\x74\x65\x61\x64\x3a\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x61\x73\x73\x20\x43\x28\x41\x42\x43\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x40\x70\x72\x6f\x70\x65\x72\x74\x79\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x40\x61\x62\x73\x74\x72\x61\x63\x74\x6d\x65\x74\x68\x6f\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x20\x6d\x79\x5f\x61\x62\x73\x74\x72\x61\x63\x74\x5f\x70\x72\x6f\x70\x65\x72\x74\x79\x28\x73\x65\x6c\x66\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2e\x2e\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -abc_toplevel_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_abstractproperty._ascii.ob_base, - & abc_toplevel_consts_6_consts_1._ascii.ob_base, - Py_True, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -abc_toplevel_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__isabstractmethod__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[16]; - } -abc_toplevel_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 15, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x0a\x05\x08\xf0\x18\x00\x1c\x20\xd1\x04\x18", -}; -static - struct _PyCode_DEF(20) -abc_toplevel_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 10, - }, - .co_consts = & abc_toplevel_consts_6_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 68, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 254, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_abstractproperty._ascii.ob_base, - .co_qualname = & const_str_abstractproperty._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x79\x03", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_get_cache_token = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "get_cache_token", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str__abc_init = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_init", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str__abc_register = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_register", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str__abc_instancecheck = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_instancecheck", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str__abc_subclasscheck = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_subclasscheck", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str__get_dump = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_dump", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str__reset_registry = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_reset_registry", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str__reset_caches = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_reset_caches", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -abc_toplevel_consts_9 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_get_cache_token._ascii.ob_base, - & const_str__abc_init._ascii.ob_base, - & const_str__abc_register._ascii.ob_base, - & const_str__abc_instancecheck._ascii.ob_base, - & const_str__abc_subclasscheck._ascii.ob_base, - & const_str__get_dump._ascii.ob_base, - & const_str__reset_registry._ascii.ob_base, - & const_str__reset_caches._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_ABCMeta = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ABCMeta", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[657]; - } -abc_toplevel_consts_10_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 656, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x4d\x65\x74\x61\x63\x6c\x61\x73\x73\x20\x66\x6f\x72\x20\x64\x65\x66\x69\x6e\x69\x6e\x67\x20\x41\x62\x73\x74\x72\x61\x63\x74\x20\x42\x61\x73\x65\x20\x43\x6c\x61\x73\x73\x65\x73\x20\x28\x41\x42\x43\x73\x29\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x55\x73\x65\x20\x74\x68\x69\x73\x20\x6d\x65\x74\x61\x63\x6c\x61\x73\x73\x20\x74\x6f\x20\x63\x72\x65\x61\x74\x65\x20\x61\x6e\x20\x41\x42\x43\x2e\x20\x20\x41\x6e\x20\x41\x42\x43\x20\x63\x61\x6e\x20\x62\x65\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x72\x65\x63\x74\x6c\x79\x2c\x20\x61\x6e\x64\x20\x74\x68\x65\x6e\x20\x61\x63\x74\x73\x20\x61\x73\x20\x61\x20\x6d\x69\x78\x2d\x69\x6e\x20\x63\x6c\x61\x73\x73\x2e\x20\x20\x59\x6f\x75\x20\x63\x61\x6e\x20\x61\x6c\x73\x6f\x20\x72\x65\x67\x69\x73\x74\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x72\x65\x6c\x61\x74\x65\x64\x20\x63\x6f\x6e\x63\x72\x65\x74\x65\x20\x63\x6c\x61\x73\x73\x65\x73\x20\x28\x65\x76\x65\x6e\x20\x62\x75\x69\x6c\x74\x2d\x69\x6e\x20\x63\x6c\x61\x73\x73\x65\x73\x29\x20\x61\x6e\x64\x20\x75\x6e\x72\x65\x6c\x61\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\x42\x43\x73\x20\x61\x73\x20\x27\x76\x69\x72\x74\x75\x61\x6c\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x65\x73\x27\x20\x2d\x2d\x20\x74\x68\x65\x73\x65\x20\x61\x6e\x64\x20\x74\x68\x65\x69\x72\x20\x64\x65\x73\x63\x65\x6e\x64\x61\x6e\x74\x73\x20\x77\x69\x6c\x6c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x20\x63\x6f\x6e\x73\x69\x64\x65\x72\x65\x64\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x65\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x72\x65\x67\x69\x73\x74\x65\x72\x69\x6e\x67\x20\x41\x42\x43\x20\x62\x79\x20\x74\x68\x65\x20\x62\x75\x69\x6c\x74\x2d\x69\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x73\x75\x62\x63\x6c\x61\x73\x73\x28\x29\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x2c\x20\x62\x75\x74\x20\x74\x68\x65\x20\x72\x65\x67\x69\x73\x74\x65\x72\x69\x6e\x67\x20\x41\x42\x43\x20\x77\x6f\x6e\x27\x74\x20\x73\x68\x6f\x77\x20\x75\x70\x20\x69\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x65\x69\x72\x20\x4d\x52\x4f\x20\x28\x4d\x65\x74\x68\x6f\x64\x20\x52\x65\x73\x6f\x6c\x75\x74\x69\x6f\x6e\x20\x4f\x72\x64\x65\x72\x29\x20\x6e\x6f\x72\x20\x77\x69\x6c\x6c\x20\x6d\x65\x74\x68\x6f\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x64\x65\x66\x69\x6e\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x72\x65\x67\x69\x73\x74\x65\x72\x69\x6e\x67\x20\x41\x42\x43\x20\x62\x65\x20\x63\x61\x6c\x6c\x61\x62\x6c\x65\x20\x28\x6e\x6f\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x65\x6e\x20\x76\x69\x61\x20\x73\x75\x70\x65\x72\x28\x29\x29\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -abc_toplevel_consts_10_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_super._ascii.ob_base, - &_Py_ID(__new__), - & const_str__abc_init._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -abc_toplevel_consts_10_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ABCMeta.__new__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[41]; - } -abc_toplevel_consts_10_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 40, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xdc\x12\x17\x91\x27\x91\x2f\xa0\x24\xa8\x04\xa8\x65\xb0\x59\xd1\x12\x49\xc0\x26\xd1\x12\x49\x88\x43\xdc\x0c\x15\x90\x63\x8c\x4e\xd8\x13\x16\x88\x4a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_mcls = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "mcls", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_bases = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bases", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_namespace = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "namespace", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -abc_toplevel_consts_10_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_mcls._ascii.ob_base, - &_Py_ID(name), - & const_str_bases._ascii.ob_base, - & const_str_namespace._ascii.ob_base, - & const_str_kwargs._ascii.ob_base, - & const_str_cls._ascii.ob_base, - &_Py_ID(__class__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[8]; - } -abc_toplevel_consts_10_consts_2_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 7, - }, - .ob_shash = -1, - .ob_sval = "\x20\x20\x20\x20\x20\x20\x80", -}; -static - struct _PyCode_DEF(68) -abc_toplevel_consts_10_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 34, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_10_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 11, - .co_argcount = 4, - .co_posonlyargcount = 4, - .co_kwonlyargcount = 0, - .co_framesize = 13 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 105, - .co_nlocalsplus = 7, - .co_nlocals = 6, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 255, - .co_localsplusnames = & abc_toplevel_consts_10_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & abc_toplevel_consts_10_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__new__), - .co_qualname = & abc_toplevel_consts_10_consts_2_qualname._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_10_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x89\x06\x7c\x00\x8d\x04\x00\x00\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x66\x04\x69\x00\x7c\x04\xa4\x01\x8e\x01\x7d\x05\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x05\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[124]; - } -abc_toplevel_consts_10_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 123, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x67\x69\x73\x74\x65\x72\x20\x61\x20\x76\x69\x72\x74\x75\x61\x6c\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x20\x6f\x66\x20\x61\x6e\x20\x41\x42\x43\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x73\x20\x74\x68\x65\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x2c\x20\x74\x6f\x20\x61\x6c\x6c\x6f\x77\x20\x75\x73\x61\x67\x65\x20\x61\x73\x20\x61\x20\x63\x6c\x61\x73\x73\x20\x64\x65\x63\x6f\x72\x61\x74\x6f\x72\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -abc_toplevel_consts_10_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & abc_toplevel_consts_10_consts_3_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -abc_toplevel_consts_10_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__abc_register._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_register = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "register", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -abc_toplevel_consts_10_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ABCMeta.register", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -abc_toplevel_consts_10_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0a\x00\x14\x21\xa0\x13\xa0\x68\xd3\x13\x2f\xd0\x0c\x2f", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_subclass = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "subclass", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -abc_toplevel_consts_10_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_cls._ascii.ob_base, - & const_str_subclass._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(26) -abc_toplevel_consts_10_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 13, - }, - .co_consts = & abc_toplevel_consts_10_consts_3_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_10_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 110, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 256, - .co_localsplusnames = & abc_toplevel_consts_10_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_register._ascii.ob_base, - .co_qualname = & abc_toplevel_consts_10_consts_3_qualname._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_10_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[40]; - } -abc_toplevel_consts_10_consts_4_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 39, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Override for isinstance(instance, cls).", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -abc_toplevel_consts_10_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & abc_toplevel_consts_10_consts_4_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -abc_toplevel_consts_10_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__abc_instancecheck._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -abc_toplevel_consts_10_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ABCMeta.__instancecheck__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[16]; - } -abc_toplevel_consts_10_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 15, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x13\x25\xa0\x63\xa8\x38\xd3\x13\x34\xd0\x0c\x34", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_instance = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "instance", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -abc_toplevel_consts_10_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_cls._ascii.ob_base, - & const_str_instance._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(26) -abc_toplevel_consts_10_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 13, - }, - .co_consts = & abc_toplevel_consts_10_consts_4_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_10_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 117, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 257, - .co_localsplusnames = & abc_toplevel_consts_10_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__instancecheck__), - .co_qualname = & abc_toplevel_consts_10_consts_4_qualname._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_10_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[40]; - } -abc_toplevel_consts_10_consts_5_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 39, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Override for issubclass(subclass, cls).", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -abc_toplevel_consts_10_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & abc_toplevel_consts_10_consts_5_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -abc_toplevel_consts_10_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__abc_subclasscheck._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -abc_toplevel_consts_10_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ABCMeta.__subclasscheck__", -}; -static - struct _PyCode_DEF(26) -abc_toplevel_consts_10_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 13, - }, - .co_consts = & abc_toplevel_consts_10_consts_5_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_10_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 121, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 258, - .co_localsplusnames = & abc_toplevel_consts_10_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasscheck__), - .co_qualname = & abc_toplevel_consts_10_consts_5_qualname._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_10_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[40]; - } -abc_toplevel_consts_10_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 39, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Debug helper to print the ABC registry.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -abc_toplevel_consts_10_consts_6_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Class: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -abc_toplevel_consts_10_consts_6_consts_4 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Inv. counter: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -abc_toplevel_consts_10_consts_6_consts_5 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_registry: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -abc_toplevel_consts_10_consts_6_consts_6 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_cache: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -abc_toplevel_consts_10_consts_6_consts_7 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_negative_cache: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[30]; - } -abc_toplevel_consts_10_consts_6_consts_8 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 29, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_negative_cache_version: ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -abc_toplevel_consts_10_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & abc_toplevel_consts_10_consts_6_consts_0._ascii.ob_base, - & abc_toplevel_consts_10_consts_6_consts_1._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - & importlib__bootstrap_toplevel_consts_25_consts_3._object.ob_base.ob_base, - & abc_toplevel_consts_10_consts_6_consts_4._ascii.ob_base, - & abc_toplevel_consts_10_consts_6_consts_5._ascii.ob_base, - & abc_toplevel_consts_10_consts_6_consts_6._ascii.ob_base, - & abc_toplevel_consts_10_consts_6_consts_7._ascii.ob_base, - & abc_toplevel_consts_10_consts_6_consts_8._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -abc_toplevel_consts_10_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_print._ascii.ob_base, - &_Py_ID(__module__), - &_Py_ID(__qualname__), - & const_str_get_cache_token._ascii.ob_base, - & const_str__get_dump._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__dump_registry = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_dump_registry", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -abc_toplevel_consts_10_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ABCMeta._dump_registry", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[159]; - } -abc_toplevel_consts_10_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 158, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0c\x11\x90\x47\x98\x43\x9f\x4e\x99\x4e\xd0\x1b\x2b\xa8\x31\xa8\x53\xd7\x2d\x3d\xd1\x2d\x3d\xd0\x2c\x3e\xd0\x12\x3f\xc0\x64\xd5\x0c\x4b\xdc\x0c\x11\x90\x4e\xa4\x3f\xd3\x23\x34\xd0\x22\x35\xd0\x12\x36\xb8\x54\xd5\x0c\x42\xe4\x2c\x35\xb0\x63\xab\x4e\xf1\x03\x01\x0d\x2a\x88\x5d\x98\x4a\xd0\x28\x3b\xd8\x0d\x28\xdc\x0c\x11\x90\x4f\xa0\x4d\xd0\x23\x34\xd0\x12\x35\xb8\x44\xd5\x0c\x41\xdc\x0c\x11\x90\x4c\xa0\x1a\xa0\x0e\xd0\x12\x2f\xb0\x64\xd5\x0c\x3b\xdc\x0c\x11\xd0\x14\x29\xd0\x2a\x3d\xd0\x29\x40\xd0\x12\x41\xc8\x04\xd5\x0c\x4d\xdc\x0c\x11\xd0\x14\x31\xd0\x32\x4d\xd0\x31\x50\xd0\x12\x51\xd8\x17\x1b\xf6\x03\x01\x0d\x1d", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str__abc_registry = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_registry", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str__abc_cache = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_cache", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -const_str__abc_negative_cache = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_negative_cache", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -const_str__abc_negative_cache_version = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_negative_cache_version", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -abc_toplevel_consts_10_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_cls._ascii.ob_base, - &_Py_ID(file), - & const_str__abc_registry._ascii.ob_base, - & const_str__abc_cache._ascii.ob_base, - & const_str__abc_negative_cache._ascii.ob_base, - & const_str__abc_negative_cache_version._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(290) -abc_toplevel_consts_10_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 145, - }, - .co_consts = & abc_toplevel_consts_10_consts_6_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_10_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 125, - .co_nlocalsplus = 6, - .co_nlocals = 6, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 259, - .co_localsplusnames = & abc_toplevel_consts_10_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_30_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__dump_registry._ascii.ob_base, - .co_qualname = & abc_toplevel_consts_10_consts_6_qualname._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_10_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x64\x02\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x9d\x04\x7c\x01\xac\x03\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x9d\x02\x7c\x01\xac\x03\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x04\x00\x00\x7d\x02\x7d\x03\x7d\x04\x7d\x05\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\x7c\x02\x9b\x02\x9d\x02\x7c\x01\xac\x03\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\x7c\x03\x9b\x02\x9d\x02\x7c\x01\xac\x03\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x07\x7c\x04\x9b\x02\x9d\x02\x7c\x01\xac\x03\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x7c\x05\x9b\x02\x9d\x02\x7c\x01\xac\x03\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x09", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[47]; - } -abc_toplevel_consts_10_consts_7_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 46, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Clear the registry (for debugging or testing).", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -abc_toplevel_consts_10_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & abc_toplevel_consts_10_consts_7_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -abc_toplevel_consts_10_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__reset_registry._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -const_str__abc_registry_clear = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_registry_clear", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -abc_toplevel_consts_10_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ABCMeta._abc_registry_clear", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[11]; - } -abc_toplevel_consts_10_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 10, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0c\x1b\x98\x43\xd5\x0c\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -abc_toplevel_consts_10_consts_7_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_cls._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(26) -abc_toplevel_consts_10_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 13, - }, - .co_consts = & abc_toplevel_consts_10_consts_7_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_10_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 137, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 260, - .co_localsplusnames = & abc_toplevel_consts_10_consts_7_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__abc_registry_clear._ascii.ob_base, - .co_qualname = & abc_toplevel_consts_10_consts_7_qualname._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_10_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[45]; - } -abc_toplevel_consts_10_consts_8_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 44, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Clear the caches (for debugging or testing).", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -abc_toplevel_consts_10_consts_8_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & abc_toplevel_consts_10_consts_8_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -abc_toplevel_consts_10_consts_8_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__reset_caches._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str__abc_caches_clear = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc_caches_clear", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -abc_toplevel_consts_10_consts_8_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ABCMeta._abc_caches_clear", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[11]; - } -abc_toplevel_consts_10_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 10, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0c\x19\x98\x23\xd5\x0c\x1e", -}; -static - struct _PyCode_DEF(26) -abc_toplevel_consts_10_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 13, - }, - .co_consts = & abc_toplevel_consts_10_consts_8_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_10_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 141, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 261, - .co_localsplusnames = & abc_toplevel_consts_10_consts_7_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str__abc_caches_clear._ascii.ob_base, - .co_qualname = & abc_toplevel_consts_10_consts_8_qualname._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_10_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -abc_toplevel_consts_10_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & const_str_ABCMeta._ascii.ob_base, - & abc_toplevel_consts_10_consts_1._ascii.ob_base, - & abc_toplevel_consts_10_consts_2.ob_base.ob_base, - & abc_toplevel_consts_10_consts_3.ob_base.ob_base, - & abc_toplevel_consts_10_consts_4.ob_base.ob_base, - & abc_toplevel_consts_10_consts_5.ob_base.ob_base, - & abc_toplevel_consts_10_consts_6.ob_base.ob_base, - & abc_toplevel_consts_10_consts_7.ob_base.ob_base, - & abc_toplevel_consts_10_consts_8.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[12]; - }_object; - } -abc_toplevel_consts_10_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 12, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__new__), - & const_str_register._ascii.ob_base, - &_Py_ID(__instancecheck__), - &_Py_ID(__subclasscheck__), - & const_str__dump_registry._ascii.ob_base, - & const_str__abc_registry_clear._ascii.ob_base, - & const_str__abc_caches_clear._ascii.ob_base, - &_Py_ID(__classcell__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[44]; - } -abc_toplevel_consts_10_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 43, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x84\x00\xf1\x02\x0b\x09\x0c\xf4\x18\x03\x09\x17\xf2\x0a\x05\x09\x30\xf2\x0e\x02\x09\x35\xf2\x08\x02\x09\x35\xf3\x08\x0a\x09\x1d\xf2\x18\x02\x09\x21\xf6\x08\x02\x09\x1f", -}; -static - struct _PyCode_DEF(72) -abc_toplevel_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 36, - }, - .co_consts = & abc_toplevel_consts_10_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_10_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 92, - .co_nlocalsplus = 1, - .co_nlocals = 0, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 262, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[64]), - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_ABCMeta._ascii.ob_base, - .co_qualname = & const_str_ABCMeta._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_10_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x00\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x88\x00\x66\x01\x64\x02\x84\x08\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x04\x84\x00\x5a\x06\x64\x05\x84\x00\x5a\x07\x64\x09\x64\x06\x84\x01\x5a\x08\x64\x07\x84\x00\x5a\x09\x64\x08\x84\x00\x5a\x0a\x88\x00\x78\x01\x5a\x0b\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -abc_toplevel_consts_12 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_ABCMeta._ascii.ob_base, - & const_str_get_cache_token._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_abc = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "abc", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[668]; - } -abc_toplevel_consts_14_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 667, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x20\x74\x68\x65\x20\x73\x65\x74\x20\x6f\x66\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x6d\x65\x74\x68\x6f\x64\x73\x20\x6f\x66\x20\x61\x6e\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x63\x6c\x61\x73\x73\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x61\x20\x63\x6c\x61\x73\x73\x20\x68\x61\x73\x20\x68\x61\x64\x20\x6f\x6e\x65\x20\x6f\x66\x20\x69\x74\x73\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x6d\x65\x74\x68\x6f\x64\x73\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x20\x61\x66\x74\x65\x72\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x63\x6c\x61\x73\x73\x20\x77\x61\x73\x20\x63\x72\x65\x61\x74\x65\x64\x2c\x20\x74\x68\x65\x20\x6d\x65\x74\x68\x6f\x64\x20\x77\x69\x6c\x6c\x20\x6e\x6f\x74\x20\x62\x65\x20\x63\x6f\x6e\x73\x69\x64\x65\x72\x65\x64\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x20\x75\x6e\x74\x69\x6c\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\x63\x61\x6c\x6c\x65\x64\x2e\x20\x41\x6c\x74\x65\x72\x6e\x61\x74\x69\x76\x65\x6c\x79\x2c\x20\x69\x66\x20\x61\x20\x6e\x65\x77\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x6d\x65\x74\x68\x6f\x64\x20\x68\x61\x73\x20\x62\x65\x65\x6e\x0a\x20\x20\x20\x20\x61\x64\x64\x65\x64\x20\x74\x6f\x20\x74\x68\x65\x20\x63\x6c\x61\x73\x73\x2c\x20\x69\x74\x20\x77\x69\x6c\x6c\x20\x6f\x6e\x6c\x79\x20\x62\x65\x20\x63\x6f\x6e\x73\x69\x64\x65\x72\x65\x64\x20\x61\x6e\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x6d\x65\x74\x68\x6f\x64\x20\x6f\x66\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x63\x6c\x61\x73\x73\x20\x61\x66\x74\x65\x72\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\x63\x61\x6c\x6c\x65\x64\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x68\x6f\x75\x6c\x64\x20\x62\x65\x20\x63\x61\x6c\x6c\x65\x64\x20\x62\x65\x66\x6f\x72\x65\x20\x61\x6e\x79\x20\x75\x73\x65\x20\x69\x73\x20\x6d\x61\x64\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x63\x6c\x61\x73\x73\x2c\x0a\x20\x20\x20\x20\x75\x73\x75\x61\x6c\x6c\x79\x20\x69\x6e\x20\x63\x6c\x61\x73\x73\x20\x64\x65\x63\x6f\x72\x61\x74\x6f\x72\x73\x20\x74\x68\x61\x74\x20\x61\x64\x64\x20\x6d\x65\x74\x68\x6f\x64\x73\x20\x74\x6f\x20\x74\x68\x65\x20\x73\x75\x62\x6a\x65\x63\x74\x20\x63\x6c\x61\x73\x73\x2e\x0a\x0a\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x73\x20\x63\x6c\x73\x2c\x20\x74\x6f\x20\x61\x6c\x6c\x6f\x77\x20\x75\x73\x61\x67\x65\x20\x61\x73\x20\x61\x20\x63\x6c\x61\x73\x73\x20\x64\x65\x63\x6f\x72\x61\x74\x6f\x72\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x63\x6c\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x61\x6e\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x6f\x66\x20\x41\x42\x43\x4d\x65\x74\x61\x2c\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x68\x69\x6e\x67\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -abc_toplevel_consts_14_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & abc_toplevel_consts_14_consts_0._ascii.ob_base, - &_Py_ID(__abstractmethods__), - (PyObject *)& _Py_SINGLETON(tuple_empty), - Py_None, - &_Py_ID(__isabstractmethod__), - Py_False, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_frozenset = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "frozenset", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -abc_toplevel_consts_14_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & const_str_hasattr._ascii.ob_base, - & const_str_set._ascii.ob_base, - &_Py_ID(__bases__), - &_Py_ID(getattr), - &_Py_ID(add), - &_Py_ID(__dict__), - &_Py_ID(items), - & const_str_frozenset._ascii.ob_base, - &_Py_ID(__abstractmethods__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -const_str_update_abstractmethods = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "update_abstractmethods", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[179]; - } -abc_toplevel_consts_14_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 178, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x20\x00\x0c\x13\x90\x33\xd0\x18\x2d\xd4\x0b\x2e\xf0\x08\x00\x10\x13\x88\x0a\xe4\x10\x13\x93\x05\x80\x49\xf0\x06\x00\x11\x14\x97\x0d\x94\x0d\x88\x04\xdc\x14\x1b\x98\x44\xd0\x22\x37\xb8\x12\xd6\x14\x3c\x88\x44\xdc\x14\x1b\x98\x43\xa0\x14\xa0\x74\xd3\x14\x2c\x88\x45\xdc\x0f\x16\x90\x75\xd0\x1e\x34\xb0\x65\xd5\x0f\x3c\xd8\x10\x19\x97\x0d\x91\x0d\x98\x64\xd5\x10\x23\xf1\x07\x00\x15\x3d\xf0\x03\x00\x11\x1e\xf0\x0c\x00\x18\x1b\x97\x7c\x91\x7c\xd7\x17\x29\xd1\x17\x29\xd6\x17\x2b\x89\x0b\x88\x04\x88\x65\xdc\x0b\x12\x90\x35\xd0\x1a\x30\xb0\x25\xd5\x0b\x38\xd8\x0c\x15\x8f\x4d\x89\x4d\x98\x24\xd5\x0c\x1f\xf0\x05\x00\x18\x2c\xf4\x06\x00\x1f\x28\xa8\x09\xd3\x1e\x32\x80\x43\xd4\x04\x1b\xd8\x0b\x0e\x80\x4a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_abstracts = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "abstracts", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_scls = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "scls", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -abc_toplevel_consts_14_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_cls._ascii.ob_base, - & const_str_abstracts._ascii.ob_base, - & const_str_scls._ascii.ob_base, - &_Py_ID(name), - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(374) -abc_toplevel_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 187, - }, - .co_consts = & abc_toplevel_consts_14_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_14_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 146, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 263, - .co_localsplusnames = & abc_toplevel_consts_14_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_update_abstractmethods._ascii.ob_base, - .co_qualname = & const_str_update_abstractmethods._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_14_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x73\x02\x7c\x00\x53\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x40\x00\x00\x7d\x02\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x64\x01\x64\x02\xab\x03\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x2e\x00\x00\x7d\x03\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x03\x64\x03\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x04\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x04\x64\x05\xab\x03\x00\x00\x00\x00\x00\x00\x73\x01\x8c\x1e\x7c\x01\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x30\x04\x00\x8c\x42\x04\x00\x7c\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x24\x00\x00\x5c\x02\x00\x00\x7d\x03\x7d\x04\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x04\x64\x05\xab\x03\x00\x00\x00\x00\x00\x00\x73\x01\x8c\x14\x7c\x01\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x26\x04\x00\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x08\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_ABC = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ABC", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[87]; - } -abc_toplevel_consts_15_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 86, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x48\x65\x6c\x70\x65\x72\x20\x63\x6c\x61\x73\x73\x20\x74\x68\x61\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x61\x20\x73\x74\x61\x6e\x64\x61\x72\x64\x20\x77\x61\x79\x20\x74\x6f\x20\x63\x72\x65\x61\x74\x65\x20\x61\x6e\x20\x41\x42\x43\x20\x75\x73\x69\x6e\x67\x0a\x20\x20\x20\x20\x69\x6e\x68\x65\x72\x69\x74\x61\x6e\x63\x65\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -abc_toplevel_consts_15_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_ABC._ascii.ob_base, - & abc_toplevel_consts_15_consts_1._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -abc_toplevel_consts_15_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__slots__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[15]; - } -abc_toplevel_consts_15_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 14, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x02\x05\x08\xf0\x06\x00\x11\x13\x81\x49", -}; -static - struct _PyCode_DEF(20) -abc_toplevel_consts_15 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 10, - }, - .co_consts = & abc_toplevel_consts_15_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_15_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 184, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 264, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_ABC._ascii.ob_base, - .co_qualname = & const_str_ABC._ascii.ob_base, - .co_linetable = & abc_toplevel_consts_15_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x79\x03", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -abc_toplevel_consts_17 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(metaclass), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[19]; - }_object; - } -abc_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 19, - }, - .ob_item = { - & abc_toplevel_consts_0._ascii.ob_base, - & abc_toplevel_consts_1.ob_base.ob_base, - & abc_toplevel_consts_2.ob_base.ob_base, - & const_str_abstractclassmethod._ascii.ob_base, - & abc_toplevel_consts_4.ob_base.ob_base, - & const_str_abstractstaticmethod._ascii.ob_base, - & abc_toplevel_consts_6.ob_base.ob_base, - & const_str_abstractproperty._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & abc_toplevel_consts_9._object.ob_base.ob_base, - & abc_toplevel_consts_10.ob_base.ob_base, - & const_str_ABCMeta._ascii.ob_base, - & abc_toplevel_consts_12._object.ob_base.ob_base, - & const_str_abc._ascii.ob_base, - & abc_toplevel_consts_14.ob_base.ob_base, - & abc_toplevel_consts_15.ob_base.ob_base, - & const_str_ABC._ascii.ob_base, - & abc_toplevel_consts_17._object.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str__abc = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_abc", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str__py_abc = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_py_abc", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[24]; - }_object; - } -abc_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 24, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str_abstractmethod._ascii.ob_base, - & const_str_classmethod._ascii.ob_base, - & const_str_abstractclassmethod._ascii.ob_base, - & const_str_staticmethod._ascii.ob_base, - & const_str_abstractstaticmethod._ascii.ob_base, - & const_str_property._ascii.ob_base, - & const_str_abstractproperty._ascii.ob_base, - & const_str__abc._ascii.ob_base, - & const_str_get_cache_token._ascii.ob_base, - & const_str__abc_init._ascii.ob_base, - & const_str__abc_register._ascii.ob_base, - & const_str__abc_instancecheck._ascii.ob_base, - & const_str__abc_subclasscheck._ascii.ob_base, - & const_str__get_dump._ascii.ob_base, - & const_str__reset_registry._ascii.ob_base, - & const_str__reset_caches._ascii.ob_base, - &_Py_ID(type), - & const_str_ABCMeta._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - & const_str__py_abc._ascii.ob_base, - &_Py_ID(__module__), - & const_str_update_abstractmethods._ascii.ob_base, - & const_str_ABC._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[132]; - } -abc_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 131, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x08\x00\x01\x3a\xf2\x06\x12\x01\x13\xf4\x2a\x11\x01\x23\x98\x2b\xf4\x00\x11\x01\x23\xf4\x28\x11\x01\x23\x98\x3c\xf4\x00\x11\x01\x23\xf4\x28\x0d\x01\x20\x90\x78\xf4\x00\x0d\x01\x20\xf0\x20\x3b\x01\x1f\xf7\x02\x02\x05\x36\xf7\x00\x02\x05\x36\xf3\x00\x02\x05\x36\xf4\x0e\x33\x05\x1f\x90\x24\xf4\x00\x33\x05\x1f\xf2\x6c\x01\x23\x01\x0f\xf4\x4c\x01\x04\x01\x13\x90\x47\xf6\x00\x04\x01\x13\xf8\xf0\x41\x03\x00\x08\x13\xf2\x00\x02\x01\x1f\xdf\x04\x30\xd8\x19\x1e\x80\x47\xd6\x04\x16\xf0\x05\x02\x01\x1f\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -abc_toplevel_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\xa8\x14\x41\x17\x00\xc1\x17\x14\x41\x2e\x03\xc1\x2d\x01\x41\x2e\x03", -}; -static - struct _PyCode_DEF(226) -abc_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 113, - }, - .co_consts = & abc_toplevel_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = & abc_toplevel_exceptiontable.ob_base.ob_base, - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 265, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & abc_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & abc_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x84\x00\x5a\x01\x02\x00\x47\x00\x64\x02\x84\x00\x64\x03\x65\x02\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x03\x02\x00\x47\x00\x64\x04\x84\x00\x64\x05\x65\x04\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x05\x02\x00\x47\x00\x64\x06\x84\x00\x64\x07\x65\x06\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x07\x09\x00\x64\x08\x64\x09\x6c\x08\x6d\x09\x5a\x09\x6d\x0a\x5a\x0a\x6d\x0b\x5a\x0b\x6d\x0c\x5a\x0c\x6d\x0d\x5a\x0d\x6d\x0e\x5a\x0e\x6d\x0f\x5a\x0f\x6d\x10\x5a\x10\x01\x00\x02\x00\x47\x00\x64\x0a\x84\x00\x64\x0b\x65\x11\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x12\x64\x0e\x84\x00\x5a\x16\x02\x00\x47\x00\x64\x0f\x84\x00\x64\x10\x65\x12\xac\x11\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x17\x79\x12\x23\x00\x65\x13\x24\x00\x72\x12\x01\x00\x64\x08\x64\x0c\x6c\x14\x6d\x12\x5a\x12\x6d\x09\x5a\x09\x01\x00\x64\x0d\x65\x12\x5f\x15\x00\x00\x00\x00\x00\x00\x00\x00\x59\x00\x8c\x26\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_abc_toplevel(void) -{ - return Py_NewRef((PyObject *) &abc_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[159]; - } -codecs_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 158, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x63\x6f\x64\x65\x63\x73\x20\x2d\x2d\x20\x50\x79\x74\x68\x6f\x6e\x20\x43\x6f\x64\x65\x63\x20\x52\x65\x67\x69\x73\x74\x72\x79\x2c\x20\x41\x50\x49\x20\x61\x6e\x64\x20\x68\x65\x6c\x70\x65\x72\x73\x2e\x0a\x0a\x0a\x57\x72\x69\x74\x74\x65\x6e\x20\x62\x79\x20\x4d\x61\x72\x63\x2d\x41\x6e\x64\x72\x65\x20\x4c\x65\x6d\x62\x75\x72\x67\x20\x28\x6d\x61\x6c\x40\x6c\x65\x6d\x62\x75\x72\x67\x2e\x63\x6f\x6d\x29\x2e\x0a\x0a\x28\x63\x29\x20\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x43\x4e\x52\x49\x2c\x20\x41\x6c\x6c\x20\x52\x69\x67\x68\x74\x73\x20\x52\x65\x73\x65\x72\x76\x65\x64\x2e\x20\x4e\x4f\x20\x57\x41\x52\x52\x41\x4e\x54\x59\x2e\x0a\x0a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_3 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[42], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[38]; - } -codecs_toplevel_consts_4 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 37, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Failed to load the builtin codecs: %s", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_lookup = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "lookup", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_EncodedFile = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "EncodedFile", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_BOM = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_BOM_BE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM_BE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_BOM_LE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM_LE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_BOM32_BE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM32_BE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_BOM32_LE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM32_LE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_BOM64_BE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM64_BE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_BOM64_LE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM64_LE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_BOM_UTF8 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM_UTF8", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_BOM_UTF16 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM_UTF16", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_BOM_UTF16_LE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM_UTF16_LE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_BOM_UTF16_BE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM_UTF16_BE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_BOM_UTF32 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM_UTF32", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_BOM_UTF32_LE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM_UTF32_LE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_BOM_UTF32_BE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BOM_UTF32_BE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_CodecInfo = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "CodecInfo", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_Codec = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Codec", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_IncrementalEncoder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IncrementalEncoder", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_IncrementalDecoder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IncrementalDecoder", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_StreamReader = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_StreamWriter = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamWriter", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_StreamReaderWriter = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_StreamRecoder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_getencoder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getencoder", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_getdecoder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getdecoder", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -const_str_getincrementalencoder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getincrementalencoder", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -const_str_getincrementaldecoder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getincrementaldecoder", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_getreader = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getreader", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_getwriter = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getwriter", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_iterencode = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "iterencode", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_iterdecode = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "iterdecode", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_strict_errors = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "strict_errors", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_ignore_errors = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ignore_errors", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_replace_errors = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "replace_errors", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -const_str_xmlcharrefreplace_errors = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "xmlcharrefreplace_errors", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -const_str_backslashreplace_errors = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "backslashreplace_errors", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_namereplace_errors = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "namereplace_errors", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_register_error = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "register_error", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_lookup_error = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "lookup_error", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[44]; - }_object; - } -codecs_toplevel_consts_5 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 44, - }, - .ob_item = { - & const_str_register._ascii.ob_base, - & const_str_lookup._ascii.ob_base, - &_Py_ID(open), - & const_str_EncodedFile._ascii.ob_base, - & const_str_BOM._ascii.ob_base, - & const_str_BOM_BE._ascii.ob_base, - & const_str_BOM_LE._ascii.ob_base, - & const_str_BOM32_BE._ascii.ob_base, - & const_str_BOM32_LE._ascii.ob_base, - & const_str_BOM64_BE._ascii.ob_base, - & const_str_BOM64_LE._ascii.ob_base, - & const_str_BOM_UTF8._ascii.ob_base, - & const_str_BOM_UTF16._ascii.ob_base, - & const_str_BOM_UTF16_LE._ascii.ob_base, - & const_str_BOM_UTF16_BE._ascii.ob_base, - & const_str_BOM_UTF32._ascii.ob_base, - & const_str_BOM_UTF32_LE._ascii.ob_base, - & const_str_BOM_UTF32_BE._ascii.ob_base, - & const_str_CodecInfo._ascii.ob_base, - & const_str_Codec._ascii.ob_base, - & const_str_IncrementalEncoder._ascii.ob_base, - & const_str_IncrementalDecoder._ascii.ob_base, - & const_str_StreamReader._ascii.ob_base, - & const_str_StreamWriter._ascii.ob_base, - & const_str_StreamReaderWriter._ascii.ob_base, - & const_str_StreamRecoder._ascii.ob_base, - & const_str_getencoder._ascii.ob_base, - & const_str_getdecoder._ascii.ob_base, - & const_str_getincrementalencoder._ascii.ob_base, - & const_str_getincrementaldecoder._ascii.ob_base, - & const_str_getreader._ascii.ob_base, - & const_str_getwriter._ascii.ob_base, - &_Py_ID(encode), - &_Py_ID(decode), - & const_str_iterencode._ascii.ob_base, - & const_str_iterdecode._ascii.ob_base, - & const_str_strict_errors._ascii.ob_base, - & const_str_ignore_errors._ascii.ob_base, - & const_str_replace_errors._ascii.ob_base, - & const_str_xmlcharrefreplace_errors._ascii.ob_base, - & const_str_backslashreplace_errors._ascii.ob_base, - & const_str_namereplace_errors._ascii.ob_base, - & const_str_register_error._ascii.ob_base, - & const_str_lookup_error._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[4]; - } -codecs_toplevel_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 3, - }, - .ob_shash = -1, - .ob_sval = "\xef\xbb\xbf", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -codecs_toplevel_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = "\xff\xfe", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -codecs_toplevel_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = "\xfe\xff", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -codecs_toplevel_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\xff\xfe\x00\x00", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -codecs_toplevel_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x00\x00\xfe\xff", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[49]; - } -codecs_toplevel_consts_12_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 48, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Codec details when looking up the codec registry", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_12_consts_4 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(_is_text_encoding), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_incrementalencoder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "incrementalencoder", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_incrementaldecoder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "incrementaldecoder", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_streamwriter = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "streamwriter", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_streamreader = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "streamreader", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -codecs_toplevel_consts_12_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & const_str_tuple._ascii.ob_base, - &_Py_ID(__new__), - &_Py_ID(name), - &_Py_ID(encode), - &_Py_ID(decode), - & const_str_incrementalencoder._ascii.ob_base, - & const_str_incrementaldecoder._ascii.ob_base, - & const_str_streamwriter._ascii.ob_base, - & const_str_streamreader._ascii.ob_base, - &_Py_ID(_is_text_encoding), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -codecs_toplevel_consts_12_consts_5_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -codecs_toplevel_consts_12_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "CodecInfo.__new__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[102]; - } -codecs_toplevel_consts_12_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 101, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x10\x15\x8f\x7d\x89\x7d\x98\x53\xa0\x36\xa8\x36\xb0\x3c\xc0\x1c\xd0\x22\x4e\xd3\x0f\x4f\x88\x04\xd8\x14\x18\x88\x04\x8c\x09\xd8\x16\x1c\x88\x04\x8c\x0b\xd8\x16\x1c\x88\x04\x8c\x0b\xd8\x22\x34\x88\x04\xd4\x08\x1f\xd8\x22\x34\x88\x04\xd4\x08\x1f\xd8\x1c\x28\x88\x04\xd4\x08\x19\xd8\x1c\x28\x88\x04\xd4\x08\x19\xd8\x0b\x1c\xd0\x0b\x28\xd8\x25\x36\x88\x44\xd4\x0c\x22\xd8\x0f\x13\x88\x0b", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -codecs_toplevel_consts_12_consts_5_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & const_str_cls._ascii.ob_base, - &_Py_ID(encode), - &_Py_ID(decode), - & const_str_streamreader._ascii.ob_base, - & const_str_streamwriter._ascii.ob_base, - & const_str_incrementalencoder._ascii.ob_base, - & const_str_incrementaldecoder._ascii.ob_base, - &_Py_ID(name), - &_Py_ID(_is_text_encoding), - &_Py_ID(self), - }, - }, -}; -static - struct _PyCode_DEF(174) -codecs_toplevel_consts_12_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 87, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_12_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 8, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 1, - .co_framesize = 17 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 94, - .co_nlocalsplus = 10, - .co_nlocals = 10, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 266, - .co_localsplusnames = & codecs_toplevel_consts_12_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__new__), - .co_qualname = & codecs_toplevel_consts_12_consts_5_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_12_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x7c\x04\x66\x04\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x09\x7c\x07\x7c\x09\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x09\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x09\x5f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x7c\x09\x5f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x7c\x09\x5f\x06\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x7c\x09\x5f\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x09\x5f\x08\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x81\x07\x7c\x08\x7c\x09\x5f\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[38]; - } -codecs_toplevel_consts_12_consts_6_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 37, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "<%s.%s object for encoding %s at %#x>", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_12_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & codecs_toplevel_consts_12_consts_6_consts_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -codecs_toplevel_consts_12_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(__class__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(name), - &_Py_ID(id), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -codecs_toplevel_consts_12_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "CodecInfo.__repr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[59]; - } -codecs_toplevel_consts_12_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 58, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0f\x36\xd8\x11\x15\x97\x1e\x91\x1e\xd7\x11\x2a\xd1\x11\x2a\xa8\x44\xaf\x4e\xa9\x4e\xd7\x2c\x47\xd1\x2c\x47\xd8\x11\x15\x97\x19\x91\x19\x9c\x42\x98\x74\x9b\x48\xf0\x03\x01\x11\x26\xf1\x03\x02\x10\x26\xf0\x00\x02\x09\x26", -}; -static - struct _PyCode_DEF(138) -codecs_toplevel_consts_12_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 69, - }, - .co_consts = & codecs_toplevel_consts_12_consts_6_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_12_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 109, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 267, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__repr__), - .co_qualname = & codecs_toplevel_consts_12_consts_6_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_12_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x66\x04\x7a\x06\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -codecs_toplevel_consts_12_consts_7 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - Py_None, - Py_None, - Py_None, - Py_None, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -codecs_toplevel_consts_12_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_CodecInfo._ascii.ob_base, - & codecs_toplevel_consts_12_consts_1._ascii.ob_base, - Py_True, - Py_None, - & codecs_toplevel_consts_12_consts_4._object.ob_base.ob_base, - & codecs_toplevel_consts_12_consts_5.ob_base.ob_base, - & codecs_toplevel_consts_12_consts_6.ob_base.ob_base, - & codecs_toplevel_consts_12_consts_7._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -codecs_toplevel_consts_12_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(_is_text_encoding), - &_Py_ID(__new__), - &_Py_ID(__repr__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[38]; - } -codecs_toplevel_consts_12_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 37, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xd9\x04\x3a\xf0\x10\x00\x19\x1d\xd0\x04\x15\xe0\x45\x49\xd8\x3f\x43\xf0\x03\x0d\x05\x14\xe0\x1d\x21\xf4\x05\x0d\x05\x14\xf3\x1e\x03\x05\x26", -}; -static - struct _PyCode_DEF(44) -codecs_toplevel_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & codecs_toplevel_consts_12_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 83, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 268, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_CodecInfo._ascii.ob_base, - .co_qualname = & const_str_CodecInfo._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x09\x00\x09\x00\x64\x07\x64\x03\x64\x04\x9c\x01\x64\x05\x84\x03\x5a\x05\x64\x06\x84\x00\x5a\x06\x79\x03", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[1082]; - } -codecs_toplevel_consts_14_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 1081, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x44\x65\x66\x69\x6e\x65\x73\x20\x74\x68\x65\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x66\x6f\x72\x20\x73\x74\x61\x74\x65\x6c\x65\x73\x73\x20\x65\x6e\x63\x6f\x64\x65\x72\x73\x2f\x64\x65\x63\x6f\x64\x65\x72\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x2e\x65\x6e\x63\x6f\x64\x65\x28\x29\x2f\x2e\x64\x65\x63\x6f\x64\x65\x28\x29\x20\x6d\x65\x74\x68\x6f\x64\x73\x20\x6d\x61\x79\x20\x75\x73\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x20\x65\x72\x72\x6f\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x20\x73\x63\x68\x65\x6d\x65\x73\x20\x62\x79\x20\x70\x72\x6f\x76\x69\x64\x69\x6e\x67\x20\x74\x68\x65\x20\x65\x72\x72\x6f\x72\x73\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x2e\x20\x54\x68\x65\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x69\x6e\x67\x20\x76\x61\x6c\x75\x65\x73\x20\x61\x72\x65\x20\x70\x72\x65\x64\x65\x66\x69\x6e\x65\x64\x3a\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x73\x74\x72\x69\x63\x74\x27\x20\x2d\x20\x72\x61\x69\x73\x65\x20\x61\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x20\x65\x72\x72\x6f\x72\x20\x28\x6f\x72\x20\x61\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x69\x67\x6e\x6f\x72\x65\x27\x20\x2d\x20\x69\x67\x6e\x6f\x72\x65\x20\x74\x68\x65\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x20\x61\x6e\x64\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x72\x65\x70\x6c\x61\x63\x65\x27\x20\x2d\x20\x72\x65\x70\x6c\x61\x63\x65\x20\x77\x69\x74\x68\x20\x61\x20\x73\x75\x69\x74\x61\x62\x6c\x65\x20\x72\x65\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x79\x74\x68\x6f\x6e\x20\x77\x69\x6c\x6c\x20\x75\x73\x65\x20\x74\x68\x65\x20\x6f\x66\x66\x69\x63\x69\x61\x6c\x20\x55\x2b\x46\x46\x46\x44\x20\x52\x45\x50\x4c\x41\x43\x45\x4d\x45\x4e\x54\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x43\x48\x41\x52\x41\x43\x54\x45\x52\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x62\x75\x69\x6c\x74\x69\x6e\x20\x55\x6e\x69\x63\x6f\x64\x65\x20\x63\x6f\x64\x65\x63\x73\x20\x6f\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x63\x6f\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x27\x3f\x27\x20\x6f\x6e\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x73\x75\x72\x72\x6f\x67\x61\x74\x65\x65\x73\x63\x61\x70\x65\x27\x20\x2d\x20\x72\x65\x70\x6c\x61\x63\x65\x20\x77\x69\x74\x68\x20\x70\x72\x69\x76\x61\x74\x65\x20\x63\x6f\x64\x65\x20\x70\x6f\x69\x6e\x74\x73\x20\x55\x2b\x44\x43\x6e\x6e\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x78\x6d\x6c\x63\x68\x61\x72\x72\x65\x66\x72\x65\x70\x6c\x61\x63\x65\x27\x20\x2d\x20\x52\x65\x70\x6c\x61\x63\x65\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x61\x70\x70\x72\x6f\x70\x72\x69\x61\x74\x65\x20\x58\x4d\x4c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x20\x28\x6f\x6e\x6c\x79\x20\x66\x6f\x72\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x29\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x62\x61\x63\x6b\x73\x6c\x61\x73\x68\x72\x65\x70\x6c\x61\x63\x65\x27\x20\x20\x2d\x20\x52\x65\x70\x6c\x61\x63\x65\x20\x77\x69\x74\x68\x20\x62\x61\x63\x6b\x73\x6c\x61\x73\x68\x65\x64\x20\x65\x73\x63\x61\x70\x65\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x73\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x6e\x61\x6d\x65\x72\x65\x70\x6c\x61\x63\x65\x27\x20\x20\x20\x20\x20\x20\x20\x2d\x20\x52\x65\x70\x6c\x61\x63\x65\x20\x77\x69\x74\x68\x20\x5c\x4e\x7b\x2e\x2e\x2e\x7d\x20\x65\x73\x63\x61\x70\x65\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x6f\x6e\x6c\x79\x20\x66\x6f\x72\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x29\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x73\x65\x74\x20\x6f\x66\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x76\x61\x6c\x75\x65\x73\x20\x63\x61\x6e\x20\x62\x65\x20\x65\x78\x74\x65\x6e\x64\x65\x64\x20\x76\x69\x61\x20\x72\x65\x67\x69\x73\x74\x65\x72\x5f\x65\x72\x72\x6f\x72\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[548]; - } -codecs_toplevel_consts_14_consts_2_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 547, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x45\x6e\x63\x6f\x64\x65\x73\x20\x74\x68\x65\x20\x6f\x62\x6a\x65\x63\x74\x20\x69\x6e\x70\x75\x74\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x73\x20\x61\x20\x74\x75\x70\x6c\x65\x20\x28\x6f\x75\x74\x70\x75\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x62\x6a\x65\x63\x74\x2c\x20\x6c\x65\x6e\x67\x74\x68\x20\x63\x6f\x6e\x73\x75\x6d\x65\x64\x29\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x73\x20\x64\x65\x66\x69\x6e\x65\x73\x20\x74\x68\x65\x20\x65\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x20\x74\x6f\x20\x61\x70\x70\x6c\x79\x2e\x20\x49\x74\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x20\x74\x6f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x73\x74\x72\x69\x63\x74\x27\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x6d\x65\x74\x68\x6f\x64\x20\x6d\x61\x79\x20\x6e\x6f\x74\x20\x73\x74\x6f\x72\x65\x20\x73\x74\x61\x74\x65\x20\x69\x6e\x20\x74\x68\x65\x20\x43\x6f\x64\x65\x63\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x20\x55\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x53\x74\x72\x65\x61\x6d\x57\x72\x69\x74\x65\x72\x20\x66\x6f\x72\x20\x63\x6f\x64\x65\x63\x73\x20\x77\x68\x69\x63\x68\x20\x68\x61\x76\x65\x20\x74\x6f\x20\x6b\x65\x65\x70\x20\x73\x74\x61\x74\x65\x20\x69\x6e\x20\x6f\x72\x64\x65\x72\x20\x74\x6f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x6b\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x65\x66\x66\x69\x63\x69\x65\x6e\x74\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x65\x6e\x63\x6f\x64\x65\x72\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x62\x6c\x65\x20\x74\x6f\x20\x68\x61\x6e\x64\x6c\x65\x20\x7a\x65\x72\x6f\x20\x6c\x65\x6e\x67\x74\x68\x20\x69\x6e\x70\x75\x74\x20\x61\x6e\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x6e\x20\x65\x6d\x70\x74\x79\x20\x6f\x62\x6a\x65\x63\x74\x20\x6f\x66\x20\x74\x68\x65\x20\x6f\x75\x74\x70\x75\x74\x20\x6f\x62\x6a\x65\x63\x74\x20\x74\x79\x70\x65\x20\x69\x6e\x20\x74\x68\x69\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_14_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_14_consts_2_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_14_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_NotImplementedError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -codecs_toplevel_consts_14_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Codec.encode", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[11]; - } -codecs_toplevel_consts_14_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 10, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x22\x00\x0f\x22\xd0\x08\x21", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_14_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(input), - &_Py_ID(errors), - }, - }, -}; -static - struct _PyCode_DEF(14) -codecs_toplevel_consts_14_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & codecs_toplevel_consts_14_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_14_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 138, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 269, - .co_localsplusnames = & codecs_toplevel_consts_14_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(encode), - .co_qualname = & codecs_toplevel_consts_14_consts_2_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_14_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[755]; - } -codecs_toplevel_consts_14_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 754, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x44\x65\x63\x6f\x64\x65\x73\x20\x74\x68\x65\x20\x6f\x62\x6a\x65\x63\x74\x20\x69\x6e\x70\x75\x74\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x73\x20\x61\x20\x74\x75\x70\x6c\x65\x20\x28\x6f\x75\x74\x70\x75\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x62\x6a\x65\x63\x74\x2c\x20\x6c\x65\x6e\x67\x74\x68\x20\x63\x6f\x6e\x73\x75\x6d\x65\x64\x29\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x70\x75\x74\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x6e\x20\x6f\x62\x6a\x65\x63\x74\x20\x77\x68\x69\x63\x68\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x74\x68\x65\x20\x62\x66\x5f\x67\x65\x74\x72\x65\x61\x64\x62\x75\x66\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x75\x66\x66\x65\x72\x20\x73\x6c\x6f\x74\x2e\x20\x50\x79\x74\x68\x6f\x6e\x20\x73\x74\x72\x69\x6e\x67\x73\x2c\x20\x62\x75\x66\x66\x65\x72\x20\x6f\x62\x6a\x65\x63\x74\x73\x20\x61\x6e\x64\x20\x6d\x65\x6d\x6f\x72\x79\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x70\x65\x64\x20\x66\x69\x6c\x65\x73\x20\x61\x72\x65\x20\x65\x78\x61\x6d\x70\x6c\x65\x73\x20\x6f\x66\x20\x6f\x62\x6a\x65\x63\x74\x73\x20\x70\x72\x6f\x76\x69\x64\x69\x6e\x67\x20\x74\x68\x69\x73\x20\x73\x6c\x6f\x74\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x73\x20\x64\x65\x66\x69\x6e\x65\x73\x20\x74\x68\x65\x20\x65\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x20\x74\x6f\x20\x61\x70\x70\x6c\x79\x2e\x20\x49\x74\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x20\x74\x6f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x73\x74\x72\x69\x63\x74\x27\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x6d\x65\x74\x68\x6f\x64\x20\x6d\x61\x79\x20\x6e\x6f\x74\x20\x73\x74\x6f\x72\x65\x20\x73\x74\x61\x74\x65\x20\x69\x6e\x20\x74\x68\x65\x20\x43\x6f\x64\x65\x63\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x20\x55\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x53\x74\x72\x65\x61\x6d\x52\x65\x61\x64\x65\x72\x20\x66\x6f\x72\x20\x63\x6f\x64\x65\x63\x73\x20\x77\x68\x69\x63\x68\x20\x68\x61\x76\x65\x20\x74\x6f\x20\x6b\x65\x65\x70\x20\x73\x74\x61\x74\x65\x20\x69\x6e\x20\x6f\x72\x64\x65\x72\x20\x74\x6f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x6b\x65\x20\x64\x65\x63\x6f\x64\x69\x6e\x67\x20\x65\x66\x66\x69\x63\x69\x65\x6e\x74\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x64\x65\x63\x6f\x64\x65\x72\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x62\x6c\x65\x20\x74\x6f\x20\x68\x61\x6e\x64\x6c\x65\x20\x7a\x65\x72\x6f\x20\x6c\x65\x6e\x67\x74\x68\x20\x69\x6e\x70\x75\x74\x20\x61\x6e\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x6e\x20\x65\x6d\x70\x74\x79\x20\x6f\x62\x6a\x65\x63\x74\x20\x6f\x66\x20\x74\x68\x65\x20\x6f\x75\x74\x70\x75\x74\x20\x6f\x62\x6a\x65\x63\x74\x20\x74\x79\x70\x65\x20\x69\x6e\x20\x74\x68\x69\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_14_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_14_consts_3_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -codecs_toplevel_consts_14_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Codec.decode", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[11]; - } -codecs_toplevel_consts_14_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 10, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x2a\x00\x0f\x22\xd0\x08\x21", -}; -static - struct _PyCode_DEF(14) -codecs_toplevel_consts_14_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & codecs_toplevel_consts_14_consts_3_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_14_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 157, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 270, - .co_localsplusnames = & codecs_toplevel_consts_14_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(decode), - .co_qualname = & codecs_toplevel_consts_14_consts_3_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_14_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_14_consts_5 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(strict), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -codecs_toplevel_consts_14_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_Codec._ascii.ob_base, - & codecs_toplevel_consts_14_consts_1._ascii.ob_base, - & codecs_toplevel_consts_14_consts_2.ob_base.ob_base, - & codecs_toplevel_consts_14_consts_3.ob_base.ob_base, - Py_None, - & codecs_toplevel_consts_14_consts_5._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -codecs_toplevel_consts_14_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(encode), - &_Py_ID(decode), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -codecs_toplevel_consts_14_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x04\x15\x05\x08\xf3\x2c\x11\x05\x22\xf4\x26\x15\x05\x22", -}; -static - struct _PyCode_DEF(32) -codecs_toplevel_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 16, - }, - .co_consts = & codecs_toplevel_consts_14_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_14_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 114, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 271, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Codec._ascii.ob_base, - .co_qualname = & const_str_Codec._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_14_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x05\x64\x02\x84\x01\x5a\x04\x64\x05\x64\x03\x84\x01\x5a\x05\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[233]; - } -codecs_toplevel_consts_16_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 232, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x41\x6e\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x45\x6e\x63\x6f\x64\x65\x72\x20\x65\x6e\x63\x6f\x64\x65\x73\x20\x61\x6e\x20\x69\x6e\x70\x75\x74\x20\x69\x6e\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x73\x74\x65\x70\x73\x2e\x20\x54\x68\x65\x20\x69\x6e\x70\x75\x74\x20\x63\x61\x6e\x0a\x20\x20\x20\x20\x62\x65\x20\x70\x61\x73\x73\x65\x64\x20\x70\x69\x65\x63\x65\x20\x62\x79\x20\x70\x69\x65\x63\x65\x20\x74\x6f\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x65\x28\x29\x20\x6d\x65\x74\x68\x6f\x64\x2e\x20\x54\x68\x65\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x45\x6e\x63\x6f\x64\x65\x72\x0a\x20\x20\x20\x20\x72\x65\x6d\x65\x6d\x62\x65\x72\x73\x20\x74\x68\x65\x20\x73\x74\x61\x74\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x63\x61\x6c\x6c\x73\x20\x74\x6f\x20\x65\x6e\x63\x6f\x64\x65\x28\x29\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[245]; - } -codecs_toplevel_consts_16_consts_2_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 244, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x43\x72\x65\x61\x74\x65\x73\x20\x61\x6e\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x45\x6e\x63\x6f\x64\x65\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x45\x6e\x63\x6f\x64\x65\x72\x20\x6d\x61\x79\x20\x75\x73\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x20\x65\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x20\x73\x63\x68\x65\x6d\x65\x73\x20\x62\x79\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x76\x69\x64\x69\x6e\x67\x20\x74\x68\x65\x20\x65\x72\x72\x6f\x72\x73\x20\x6b\x65\x79\x77\x6f\x72\x64\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x2e\x20\x53\x65\x65\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x64\x6f\x63\x73\x74\x72\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x66\x20\x70\x6f\x73\x73\x69\x62\x6c\x65\x20\x76\x61\x6c\x75\x65\x73\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_16_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & codecs_toplevel_consts_16_consts_2_consts_0._ascii.ob_base, - &_Py_STR(empty), - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_16_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(errors), - &_Py_ID(buffer), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -codecs_toplevel_consts_16_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IncrementalEncoder.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -codecs_toplevel_consts_16_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x10\x00\x17\x1d\x88\x04\x8c\x0b\xd8\x16\x18\x88\x04\x8d\x0b", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_16_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(errors), - }, - }, -}; -static - struct _PyCode_DEF(32) -codecs_toplevel_consts_16_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 16, - }, - .co_consts = & codecs_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_16_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 186, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 272, - .co_localsplusnames = & codecs_toplevel_consts_16_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & codecs_toplevel_consts_16_consts_2_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_16_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[66]; - } -codecs_toplevel_consts_16_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 65, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x45\x6e\x63\x6f\x64\x65\x73\x20\x69\x6e\x70\x75\x74\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x73\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6c\x74\x69\x6e\x67\x20\x6f\x62\x6a\x65\x63\x74\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_16_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_16_consts_3_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -codecs_toplevel_consts_16_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IncrementalEncoder.encode", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[11]; - } -codecs_toplevel_consts_16_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 10, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x08\x00\x0f\x22\xd0\x08\x21", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_16_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(input), - &_Py_ID(final), - }, - }, -}; -static - struct _PyCode_DEF(14) -codecs_toplevel_consts_16_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & codecs_toplevel_consts_16_consts_3_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_14_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 197, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 273, - .co_localsplusnames = & codecs_toplevel_consts_16_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(encode), - .co_qualname = & codecs_toplevel_consts_16_consts_3_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_16_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[59]; - } -codecs_toplevel_consts_16_consts_4_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 58, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x65\x74\x73\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x65\x72\x20\x74\x6f\x20\x74\x68\x65\x20\x69\x6e\x69\x74\x69\x61\x6c\x20\x73\x74\x61\x74\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_16_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_16_consts_4_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -codecs_toplevel_consts_16_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IncrementalEncoder.reset", -}; -static - struct _PyCode_DEF(4) -codecs_toplevel_consts_16_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & codecs_toplevel_consts_16_consts_4_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 203, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 274, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(reset), - .co_qualname = & codecs_toplevel_consts_16_consts_4_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_external_toplevel_consts_54_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[59]; - } -codecs_toplevel_consts_16_consts_5_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 58, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x73\x74\x61\x74\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x65\x72\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_16_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_16_consts_5_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -codecs_toplevel_consts_16_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IncrementalEncoder.getstate", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[8]; - } -codecs_toplevel_consts_16_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 7, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x00\x10\x11", -}; -static - struct _PyCode_DEF(4) -codecs_toplevel_consts_16_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & codecs_toplevel_consts_16_consts_5_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 208, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 275, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(getstate), - .co_qualname = & codecs_toplevel_consts_16_consts_5_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_16_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[109]; - } -codecs_toplevel_consts_16_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 108, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x53\x65\x74\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x73\x74\x61\x74\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x65\x72\x2e\x20\x73\x74\x61\x74\x65\x20\x6d\x75\x73\x74\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x62\x79\x20\x67\x65\x74\x73\x74\x61\x74\x65\x28\x29\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_16_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_16_consts_6_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -codecs_toplevel_consts_16_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IncrementalEncoder.setstate", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_16_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - & const_str_state._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(4) -codecs_toplevel_consts_16_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & codecs_toplevel_consts_16_consts_6_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 214, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 276, - .co_localsplusnames = & codecs_toplevel_consts_16_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(setstate), - .co_qualname = & codecs_toplevel_consts_16_consts_6_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_external_toplevel_consts_54_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_16_consts_9 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - Py_False, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -codecs_toplevel_consts_16_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & const_str_IncrementalEncoder._ascii.ob_base, - & codecs_toplevel_consts_16_consts_1._ascii.ob_base, - & codecs_toplevel_consts_16_consts_2.ob_base.ob_base, - & codecs_toplevel_consts_16_consts_3.ob_base.ob_base, - & codecs_toplevel_consts_16_consts_4.ob_base.ob_base, - & codecs_toplevel_consts_16_consts_5.ob_base.ob_base, - & codecs_toplevel_consts_16_consts_6.ob_base.ob_base, - Py_None, - & codecs_toplevel_consts_14_consts_5._object.ob_base.ob_base, - & codecs_toplevel_consts_16_consts_9._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -codecs_toplevel_consts_16_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__init__), - &_Py_ID(encode), - &_Py_ID(reset), - &_Py_ID(getstate), - &_Py_ID(setstate), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[33]; - } -codecs_toplevel_consts_16_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 32, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x04\x05\x08\xf3\x0a\x09\x05\x19\xf3\x16\x04\x05\x22\xf2\x0c\x03\x05\x0c\xf2\x0a\x04\x05\x11\xf3\x0c\x04\x05\x0c", -}; -static - struct _PyCode_DEF(50) -codecs_toplevel_consts_16 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 25, - }, - .co_consts = & codecs_toplevel_consts_16_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_16_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 180, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 277, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_IncrementalEncoder._ascii.ob_base, - .co_qualname = & const_str_IncrementalEncoder._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_16_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x08\x64\x02\x84\x01\x5a\x04\x64\x09\x64\x03\x84\x01\x5a\x05\x64\x04\x84\x00\x5a\x06\x64\x05\x84\x00\x5a\x07\x64\x06\x84\x00\x5a\x08\x79\x07", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -const_str_BufferedIncrementalEncoder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalEncoder", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[193]; - } -codecs_toplevel_consts_18_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 192, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x20\x6f\x66\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x45\x6e\x63\x6f\x64\x65\x72\x20\x63\x61\x6e\x20\x62\x65\x20\x75\x73\x65\x64\x20\x61\x73\x20\x74\x68\x65\x20\x62\x61\x73\x65\x63\x6c\x61\x73\x73\x20\x66\x6f\x72\x20\x61\x6e\x0a\x20\x20\x20\x20\x69\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x20\x65\x6e\x63\x6f\x64\x65\x72\x20\x69\x66\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x65\x72\x20\x6d\x75\x73\x74\x20\x6b\x65\x65\x70\x20\x73\x6f\x6d\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x6f\x75\x74\x70\x75\x74\x20\x69\x6e\x20\x61\x0a\x20\x20\x20\x20\x62\x75\x66\x66\x65\x72\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x63\x61\x6c\x6c\x73\x20\x74\x6f\x20\x65\x6e\x63\x6f\x64\x65\x28\x29\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_18_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_IncrementalEncoder._ascii.ob_base, - &_Py_ID(__init__), - &_Py_ID(buffer), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[36]; - } -codecs_toplevel_consts_18_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 35, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalEncoder.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[26]; - } -codecs_toplevel_consts_18_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 25, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x08\x1a\xd7\x08\x23\xd1\x08\x23\xa0\x44\xa8\x26\xd4\x08\x31\xe0\x16\x18\x88\x04\x8d\x0b", -}; -static - struct _PyCode_DEF(62) -codecs_toplevel_consts_18_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 31, - }, - .co_consts = & importlib__bootstrap_external_toplevel_consts_68_consts_3_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_18_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 226, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 278, - .co_localsplusnames = & codecs_toplevel_consts_16_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & codecs_toplevel_consts_18_consts_2_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_18_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x64\x01\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__buffer_encode = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_buffer_encode", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[42]; - } -codecs_toplevel_consts_18_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 41, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalEncoder._buffer_encode", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[11]; - } -codecs_toplevel_consts_18_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 10, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x0f\x22\xd0\x08\x21", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_18_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(input), - &_Py_ID(errors), - &_Py_ID(final), - }, - }, -}; -static - struct _PyCode_DEF(14) -codecs_toplevel_consts_18_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_14_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 231, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 279, - .co_localsplusnames = & codecs_toplevel_consts_18_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str__buffer_encode._ascii.ob_base, - .co_qualname = & codecs_toplevel_consts_18_consts_3_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_18_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_18_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(buffer), - & const_str__buffer_encode._ascii.ob_base, - &_Py_ID(errors), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[34]; - } -codecs_toplevel_consts_18_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 33, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalEncoder.encode", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[64]; - } -codecs_toplevel_consts_18_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 63, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0f\x13\x8f\x7b\x89\x7b\x98\x55\xd1\x0f\x22\x88\x04\xd8\x1d\x21\xd7\x1d\x30\xd1\x1d\x30\xb0\x14\xb0\x74\xb7\x7b\xb1\x7b\xc0\x45\xd3\x1d\x4a\xd1\x08\x1a\x88\x16\x90\x18\xe0\x16\x1a\x98\x38\x98\x39\x90\x6f\x88\x04\x8c\x0b\xd8\x0f\x15\x88\x0d", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_result = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "result", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_consumed = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "consumed", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -codecs_toplevel_consts_18_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(input), - &_Py_ID(final), - &_Py_ID(data), - & const_str_result._ascii.ob_base, - & const_str_consumed._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(120) -codecs_toplevel_consts_18_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 60, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_18_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 236, - .co_nlocalsplus = 6, - .co_nlocals = 6, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 280, - .co_localsplusnames = & codecs_toplevel_consts_18_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_30_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(encode), - .co_qualname = & codecs_toplevel_consts_18_consts_4_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_18_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7a\x00\x00\x00\x7d\x03\x7c\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x03\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x04\x7d\x05\x7c\x03\x7c\x05\x64\x00\x1a\x00\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_18_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_IncrementalEncoder._ascii.ob_base, - &_Py_ID(reset), - &_Py_ID(buffer), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[33]; - } -codecs_toplevel_consts_18_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 32, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalEncoder.reset", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -codecs_toplevel_consts_18_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x08\x1a\xd7\x08\x20\xd1\x08\x20\xa0\x14\xd4\x08\x26\xd8\x16\x18\x88\x04\x8d\x0b", -}; -static - struct _PyCode_DEF(60) -codecs_toplevel_consts_18_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 30, - }, - .co_consts = & importlib__bootstrap_external_toplevel_consts_68_consts_3_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_18_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 244, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 281, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(reset), - .co_qualname = & codecs_toplevel_consts_18_consts_5_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_18_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x01\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_18_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(buffer), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[36]; - } -codecs_toplevel_consts_18_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 35, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalEncoder.getstate", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -codecs_toplevel_consts_18_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0f\x13\x8f\x7b\x89\x7b\xd2\x0f\x1f\x98\x61\xd0\x08\x1f", -}; -static - struct _PyCode_DEF(34) -codecs_toplevel_consts_18_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 17, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_18_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 248, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 282, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(getstate), - .co_qualname = & codecs_toplevel_consts_18_consts_6_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_18_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x01\x73\x02\x01\x00\x64\x01\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[36]; - } -codecs_toplevel_consts_18_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 35, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalEncoder.setstate", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[14]; - } -codecs_toplevel_consts_18_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 13, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x16\x1b\x92\x6b\x98\x72\x88\x04\x8d\x0b", -}; -static - struct _PyCode_DEF(26) -codecs_toplevel_consts_18_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 13, - }, - .co_consts = & importlib__bootstrap_external_toplevel_consts_68_consts_3_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_18_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 251, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 283, - .co_localsplusnames = & codecs_toplevel_consts_16_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(setstate), - .co_qualname = & codecs_toplevel_consts_18_consts_7_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_18_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x78\x01\x73\x02\x01\x00\x64\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -codecs_toplevel_consts_18_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & const_str_BufferedIncrementalEncoder._ascii.ob_base, - & codecs_toplevel_consts_18_consts_1._ascii.ob_base, - & codecs_toplevel_consts_18_consts_2.ob_base.ob_base, - & codecs_toplevel_consts_18_consts_3.ob_base.ob_base, - & codecs_toplevel_consts_18_consts_4.ob_base.ob_base, - & codecs_toplevel_consts_18_consts_5.ob_base.ob_base, - & codecs_toplevel_consts_18_consts_6.ob_base.ob_base, - & codecs_toplevel_consts_18_consts_7.ob_base.ob_base, - Py_None, - & codecs_toplevel_consts_14_consts_5._object.ob_base.ob_base, - & codecs_toplevel_consts_16_consts_9._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -codecs_toplevel_consts_18_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__init__), - & const_str__buffer_encode._ascii.ob_base, - &_Py_ID(encode), - &_Py_ID(reset), - &_Py_ID(getstate), - &_Py_ID(setstate), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[38]; - } -codecs_toplevel_consts_18_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 37, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x04\x05\x08\xf3\x0a\x03\x05\x19\xf2\x0a\x03\x05\x22\xf3\x0a\x06\x05\x16\xf2\x10\x02\x05\x19\xf2\x08\x01\x05\x20\xf3\x06\x01\x05\x22", -}; -static - struct _PyCode_DEF(56) -codecs_toplevel_consts_18 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & codecs_toplevel_consts_18_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_18_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 220, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 284, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_BufferedIncrementalEncoder._ascii.ob_base, - .co_qualname = & const_str_BufferedIncrementalEncoder._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_18_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x09\x64\x02\x84\x01\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x0a\x64\x04\x84\x01\x5a\x06\x64\x05\x84\x00\x5a\x07\x64\x06\x84\x00\x5a\x08\x64\x07\x84\x00\x5a\x09\x79\x08", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[233]; - } -codecs_toplevel_consts_20_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 232, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x41\x6e\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x44\x65\x63\x6f\x64\x65\x72\x20\x64\x65\x63\x6f\x64\x65\x73\x20\x61\x6e\x20\x69\x6e\x70\x75\x74\x20\x69\x6e\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x73\x74\x65\x70\x73\x2e\x20\x54\x68\x65\x20\x69\x6e\x70\x75\x74\x20\x63\x61\x6e\x0a\x20\x20\x20\x20\x62\x65\x20\x70\x61\x73\x73\x65\x64\x20\x70\x69\x65\x63\x65\x20\x62\x79\x20\x70\x69\x65\x63\x65\x20\x74\x6f\x20\x74\x68\x65\x20\x64\x65\x63\x6f\x64\x65\x28\x29\x20\x6d\x65\x74\x68\x6f\x64\x2e\x20\x54\x68\x65\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x44\x65\x63\x6f\x64\x65\x72\x0a\x20\x20\x20\x20\x72\x65\x6d\x65\x6d\x62\x65\x72\x73\x20\x74\x68\x65\x20\x73\x74\x61\x74\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x65\x63\x6f\x64\x69\x6e\x67\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x63\x61\x6c\x6c\x73\x20\x74\x6f\x20\x64\x65\x63\x6f\x64\x65\x28\x29\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[244]; - } -codecs_toplevel_consts_20_consts_2_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 243, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x43\x72\x65\x61\x74\x65\x20\x61\x6e\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x44\x65\x63\x6f\x64\x65\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x44\x65\x63\x6f\x64\x65\x72\x20\x6d\x61\x79\x20\x75\x73\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x20\x65\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x20\x73\x63\x68\x65\x6d\x65\x73\x20\x62\x79\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x76\x69\x64\x69\x6e\x67\x20\x74\x68\x65\x20\x65\x72\x72\x6f\x72\x73\x20\x6b\x65\x79\x77\x6f\x72\x64\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x2e\x20\x53\x65\x65\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x64\x6f\x63\x73\x74\x72\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x66\x20\x70\x6f\x73\x73\x69\x62\x6c\x65\x20\x76\x61\x6c\x75\x65\x73\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_20_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_20_consts_2_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_20_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(errors), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -codecs_toplevel_consts_20_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IncrementalDecoder.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[12]; - } -codecs_toplevel_consts_20_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 11, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x10\x00\x17\x1d\x88\x04\x8d\x0b", -}; -static - struct _PyCode_DEF(18) -codecs_toplevel_consts_20_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 9, - }, - .co_consts = & codecs_toplevel_consts_20_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_20_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 260, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 285, - .co_localsplusnames = & codecs_toplevel_consts_16_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & codecs_toplevel_consts_20_consts_2_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_20_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[65]; - } -codecs_toplevel_consts_20_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 64, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x44\x65\x63\x6f\x64\x65\x20\x69\x6e\x70\x75\x74\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x73\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6c\x74\x69\x6e\x67\x20\x6f\x62\x6a\x65\x63\x74\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_20_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_20_consts_3_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -codecs_toplevel_consts_20_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IncrementalDecoder.decode", -}; -static - struct _PyCode_DEF(14) -codecs_toplevel_consts_20_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & codecs_toplevel_consts_20_consts_3_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_14_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 270, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 286, - .co_localsplusnames = & codecs_toplevel_consts_16_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(decode), - .co_qualname = & codecs_toplevel_consts_20_consts_3_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_16_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[58]; - } -codecs_toplevel_consts_20_consts_4_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 57, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x65\x74\x20\x74\x68\x65\x20\x64\x65\x63\x6f\x64\x65\x72\x20\x74\x6f\x20\x74\x68\x65\x20\x69\x6e\x69\x74\x69\x61\x6c\x20\x73\x74\x61\x74\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_20_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_20_consts_4_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -codecs_toplevel_consts_20_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IncrementalDecoder.reset", -}; -static - struct _PyCode_DEF(4) -codecs_toplevel_consts_20_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & codecs_toplevel_consts_20_consts_4_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 276, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 287, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(reset), - .co_qualname = & codecs_toplevel_consts_20_consts_4_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_external_toplevel_consts_54_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[522]; - } -codecs_toplevel_consts_20_consts_5_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 521, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x73\x74\x61\x74\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x65\x63\x6f\x64\x65\x72\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x69\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x20\x28\x62\x75\x66\x66\x65\x72\x65\x64\x5f\x69\x6e\x70\x75\x74\x2c\x20\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x5f\x73\x74\x61\x74\x65\x5f\x69\x6e\x66\x6f\x29\x20\x74\x75\x70\x6c\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x75\x66\x66\x65\x72\x65\x64\x5f\x69\x6e\x70\x75\x74\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x20\x62\x79\x74\x65\x73\x20\x6f\x62\x6a\x65\x63\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x69\x6e\x67\x20\x62\x79\x74\x65\x73\x20\x74\x68\x61\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x65\x72\x65\x20\x70\x61\x73\x73\x65\x64\x20\x74\x6f\x20\x64\x65\x63\x6f\x64\x65\x28\x29\x20\x74\x68\x61\x74\x20\x68\x61\x76\x65\x20\x6e\x6f\x74\x20\x79\x65\x74\x20\x62\x65\x65\x6e\x20\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x5f\x73\x74\x61\x74\x65\x5f\x69\x6e\x66\x6f\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x20\x6e\x6f\x6e\x2d\x6e\x65\x67\x61\x74\x69\x76\x65\x20\x69\x6e\x74\x65\x67\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x70\x72\x65\x73\x65\x6e\x74\x69\x6e\x67\x20\x74\x68\x65\x20\x73\x74\x61\x74\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x65\x63\x6f\x64\x65\x72\x20\x57\x49\x54\x48\x4f\x55\x54\x20\x79\x65\x74\x20\x68\x61\x76\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x64\x20\x74\x68\x65\x20\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x6f\x66\x20\x62\x75\x66\x66\x65\x72\x65\x64\x5f\x69\x6e\x70\x75\x74\x2e\x20\x20\x49\x6e\x20\x74\x68\x65\x20\x69\x6e\x69\x74\x69\x61\x6c\x20\x73\x74\x61\x74\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x64\x20\x61\x66\x74\x65\x72\x20\x72\x65\x73\x65\x74\x28\x29\x2c\x20\x67\x65\x74\x73\x74\x61\x74\x65\x28\x29\x20\x6d\x75\x73\x74\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x62\x22\x22\x2c\x20\x30\x29\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_20_consts_5_consts_1 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(bytes_empty), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_20_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_20_consts_5_consts_0._ascii.ob_base, - & codecs_toplevel_consts_20_consts_5_consts_1._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -codecs_toplevel_consts_20_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IncrementalDecoder.getstate", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[8]; - } -codecs_toplevel_consts_20_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 7, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x18\x00\x10\x18", -}; -static - struct _PyCode_DEF(4) -codecs_toplevel_consts_20_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & codecs_toplevel_consts_20_consts_5_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 281, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 288, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(getstate), - .co_qualname = & codecs_toplevel_consts_20_consts_5_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_20_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[183]; - } -codecs_toplevel_consts_20_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 182, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x53\x65\x74\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x73\x74\x61\x74\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x65\x63\x6f\x64\x65\x72\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x74\x65\x20\x6d\x75\x73\x74\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6e\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x62\x79\x20\x67\x65\x74\x73\x74\x61\x74\x65\x28\x29\x2e\x20\x20\x54\x68\x65\x20\x65\x66\x66\x65\x63\x74\x20\x6f\x66\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x73\x74\x61\x74\x65\x28\x28\x62\x22\x22\x2c\x20\x30\x29\x29\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x65\x71\x75\x69\x76\x61\x6c\x65\x6e\x74\x20\x74\x6f\x20\x72\x65\x73\x65\x74\x28\x29\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_20_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_20_consts_6_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -codecs_toplevel_consts_20_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IncrementalDecoder.setstate", -}; -static - struct _PyCode_DEF(4) -codecs_toplevel_consts_20_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & codecs_toplevel_consts_20_consts_6_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 295, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 289, - .co_localsplusnames = & codecs_toplevel_consts_16_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(setstate), - .co_qualname = & codecs_toplevel_consts_20_consts_6_qualname._ascii.ob_base, - .co_linetable = & importlib__bootstrap_external_toplevel_consts_54_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -codecs_toplevel_consts_20_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & const_str_IncrementalDecoder._ascii.ob_base, - & codecs_toplevel_consts_20_consts_1._ascii.ob_base, - & codecs_toplevel_consts_20_consts_2.ob_base.ob_base, - & codecs_toplevel_consts_20_consts_3.ob_base.ob_base, - & codecs_toplevel_consts_20_consts_4.ob_base.ob_base, - & codecs_toplevel_consts_20_consts_5.ob_base.ob_base, - & codecs_toplevel_consts_20_consts_6.ob_base.ob_base, - Py_None, - & codecs_toplevel_consts_14_consts_5._object.ob_base.ob_base, - & codecs_toplevel_consts_16_consts_9._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -codecs_toplevel_consts_20_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__init__), - &_Py_ID(decode), - &_Py_ID(reset), - &_Py_ID(getstate), - &_Py_ID(setstate), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[33]; - } -codecs_toplevel_consts_20_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 32, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x04\x05\x08\xf3\x0a\x08\x05\x1d\xf3\x14\x04\x05\x22\xf2\x0c\x03\x05\x0c\xf2\x0a\x0c\x05\x18\xf3\x1c\x06\x05\x0c", -}; -static - struct _PyCode_DEF(50) -codecs_toplevel_consts_20 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 25, - }, - .co_consts = & codecs_toplevel_consts_20_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_20_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 254, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 290, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_IncrementalDecoder._ascii.ob_base, - .co_qualname = & const_str_IncrementalDecoder._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x08\x64\x02\x84\x01\x5a\x04\x64\x09\x64\x03\x84\x01\x5a\x05\x64\x04\x84\x00\x5a\x06\x64\x05\x84\x00\x5a\x07\x64\x06\x84\x00\x5a\x08\x79\x07", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -const_str_BufferedIncrementalDecoder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalDecoder", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[175]; - } -codecs_toplevel_consts_22_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 174, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x20\x6f\x66\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x44\x65\x63\x6f\x64\x65\x72\x20\x63\x61\x6e\x20\x62\x65\x20\x75\x73\x65\x64\x20\x61\x73\x20\x74\x68\x65\x20\x62\x61\x73\x65\x63\x6c\x61\x73\x73\x20\x66\x6f\x72\x20\x61\x6e\x0a\x20\x20\x20\x20\x69\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x20\x64\x65\x63\x6f\x64\x65\x72\x20\x69\x66\x20\x74\x68\x65\x20\x64\x65\x63\x6f\x64\x65\x72\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x62\x6c\x65\x20\x74\x6f\x20\x68\x61\x6e\x64\x6c\x65\x20\x69\x6e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x0a\x20\x20\x20\x20\x62\x79\x74\x65\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x73\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_22_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - (PyObject *)&_Py_SINGLETON(bytes_empty), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_22_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_IncrementalDecoder._ascii.ob_base, - &_Py_ID(__init__), - &_Py_ID(buffer), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[36]; - } -codecs_toplevel_consts_22_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 35, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalDecoder.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[26]; - } -codecs_toplevel_consts_22_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 25, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x08\x1a\xd7\x08\x23\xd1\x08\x23\xa0\x44\xa8\x26\xd4\x08\x31\xe0\x16\x19\x88\x04\x8d\x0b", -}; -static - struct _PyCode_DEF(62) -codecs_toplevel_consts_22_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 31, - }, - .co_consts = & codecs_toplevel_consts_22_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_22_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 309, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 291, - .co_localsplusnames = & codecs_toplevel_consts_16_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & codecs_toplevel_consts_22_consts_2_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_22_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x64\x01\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__buffer_decode = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_buffer_decode", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[42]; - } -codecs_toplevel_consts_22_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 41, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalDecoder._buffer_decode", -}; -static - struct _PyCode_DEF(14) -codecs_toplevel_consts_22_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_14_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 314, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 292, - .co_localsplusnames = & codecs_toplevel_consts_18_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str__buffer_decode._ascii.ob_base, - .co_qualname = & codecs_toplevel_consts_22_consts_3_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_18_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_22_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(buffer), - & const_str__buffer_decode._ascii.ob_base, - &_Py_ID(errors), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[34]; - } -codecs_toplevel_consts_22_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 33, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalDecoder.decode", -}; -static - struct _PyCode_DEF(120) -codecs_toplevel_consts_22_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 60, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_22_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 319, - .co_nlocalsplus = 6, - .co_nlocals = 6, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 293, - .co_localsplusnames = & codecs_toplevel_consts_18_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_30_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(decode), - .co_qualname = & codecs_toplevel_consts_22_consts_4_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_18_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7a\x00\x00\x00\x7d\x03\x7c\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x03\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x04\x7d\x05\x7c\x03\x7c\x05\x64\x00\x1a\x00\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_22_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_IncrementalDecoder._ascii.ob_base, - &_Py_ID(reset), - &_Py_ID(buffer), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[33]; - } -codecs_toplevel_consts_22_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 32, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalDecoder.reset", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -codecs_toplevel_consts_22_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x08\x1a\xd7\x08\x20\xd1\x08\x20\xa0\x14\xd4\x08\x26\xd8\x16\x19\x88\x04\x8d\x0b", -}; -static - struct _PyCode_DEF(60) -codecs_toplevel_consts_22_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 30, - }, - .co_consts = & codecs_toplevel_consts_22_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_22_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 327, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 294, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(reset), - .co_qualname = & codecs_toplevel_consts_22_consts_5_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_22_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x01\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[36]; - } -codecs_toplevel_consts_22_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 35, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalDecoder.getstate", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -codecs_toplevel_consts_22_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x10\x14\x97\x0b\x91\x0b\x98\x51\xd0\x0f\x1f\xd0\x08\x1f", -}; -static - struct _PyCode_DEF(30) -codecs_toplevel_consts_22_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 15, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_18_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 331, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 295, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(getstate), - .co_qualname = & codecs_toplevel_consts_22_consts_6_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_22_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x66\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[36]; - } -codecs_toplevel_consts_22_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 35, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIncrementalDecoder.setstate", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[14]; - } -codecs_toplevel_consts_22_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 13, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x16\x1b\x98\x41\x91\x68\x88\x04\x8d\x0b", -}; -static - struct _PyCode_DEF(24) -codecs_toplevel_consts_22_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 12, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_18_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 335, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 296, - .co_localsplusnames = & codecs_toplevel_consts_16_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(setstate), - .co_qualname = & codecs_toplevel_consts_22_consts_7_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_22_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x64\x01\x19\x00\x00\x00\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -codecs_toplevel_consts_22_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & const_str_BufferedIncrementalDecoder._ascii.ob_base, - & codecs_toplevel_consts_22_consts_1._ascii.ob_base, - & codecs_toplevel_consts_22_consts_2.ob_base.ob_base, - & codecs_toplevel_consts_22_consts_3.ob_base.ob_base, - & codecs_toplevel_consts_22_consts_4.ob_base.ob_base, - & codecs_toplevel_consts_22_consts_5.ob_base.ob_base, - & codecs_toplevel_consts_22_consts_6.ob_base.ob_base, - & codecs_toplevel_consts_22_consts_7.ob_base.ob_base, - Py_None, - & codecs_toplevel_consts_14_consts_5._object.ob_base.ob_base, - & codecs_toplevel_consts_16_consts_9._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -codecs_toplevel_consts_22_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__init__), - & const_str__buffer_decode._ascii.ob_base, - &_Py_ID(decode), - &_Py_ID(reset), - &_Py_ID(getstate), - &_Py_ID(setstate), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[38]; - } -codecs_toplevel_consts_22_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 37, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x04\x05\x08\xf3\x0a\x03\x05\x1a\xf2\x0a\x03\x05\x22\xf3\x0a\x06\x05\x16\xf2\x10\x02\x05\x1a\xf2\x08\x02\x05\x20\xf3\x08\x02\x05\x1f", -}; -static - struct _PyCode_DEF(56) -codecs_toplevel_consts_22 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & codecs_toplevel_consts_22_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_22_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 303, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 297, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_BufferedIncrementalDecoder._ascii.ob_base, - .co_qualname = & const_str_BufferedIncrementalDecoder._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_22_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x09\x64\x02\x84\x01\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x0a\x64\x04\x84\x01\x5a\x06\x64\x05\x84\x00\x5a\x07\x64\x06\x84\x00\x5a\x08\x64\x07\x84\x00\x5a\x09\x79\x08", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[888]; - } -codecs_toplevel_consts_24_consts_1_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 887, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x43\x72\x65\x61\x74\x65\x73\x20\x61\x20\x53\x74\x72\x65\x61\x6d\x57\x72\x69\x74\x65\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x65\x61\x6d\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x20\x66\x69\x6c\x65\x2d\x6c\x69\x6b\x65\x20\x6f\x62\x6a\x65\x63\x74\x20\x6f\x70\x65\x6e\x20\x66\x6f\x72\x20\x77\x72\x69\x74\x69\x6e\x67\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x53\x74\x72\x65\x61\x6d\x57\x72\x69\x74\x65\x72\x20\x6d\x61\x79\x20\x75\x73\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x20\x65\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x63\x68\x65\x6d\x65\x73\x20\x62\x79\x20\x70\x72\x6f\x76\x69\x64\x69\x6e\x67\x20\x74\x68\x65\x20\x65\x72\x72\x6f\x72\x73\x20\x6b\x65\x79\x77\x6f\x72\x64\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x2e\x20\x54\x68\x65\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x61\x72\x65\x20\x70\x72\x65\x64\x65\x66\x69\x6e\x65\x64\x3a\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x73\x74\x72\x69\x63\x74\x27\x20\x2d\x20\x72\x61\x69\x73\x65\x20\x61\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x20\x28\x6f\x72\x20\x61\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x69\x67\x6e\x6f\x72\x65\x27\x20\x2d\x20\x69\x67\x6e\x6f\x72\x65\x20\x74\x68\x65\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x20\x61\x6e\x64\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x72\x65\x70\x6c\x61\x63\x65\x27\x2d\x20\x72\x65\x70\x6c\x61\x63\x65\x20\x77\x69\x74\x68\x20\x61\x20\x73\x75\x69\x74\x61\x62\x6c\x65\x20\x72\x65\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x78\x6d\x6c\x63\x68\x61\x72\x72\x65\x66\x72\x65\x70\x6c\x61\x63\x65\x27\x20\x2d\x20\x52\x65\x70\x6c\x61\x63\x65\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x61\x70\x70\x72\x6f\x70\x72\x69\x61\x74\x65\x20\x58\x4d\x4c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x62\x61\x63\x6b\x73\x6c\x61\x73\x68\x72\x65\x70\x6c\x61\x63\x65\x27\x20\x20\x2d\x20\x52\x65\x70\x6c\x61\x63\x65\x20\x77\x69\x74\x68\x20\x62\x61\x63\x6b\x73\x6c\x61\x73\x68\x65\x64\x20\x65\x73\x63\x61\x70\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x73\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x6e\x61\x6d\x65\x72\x65\x70\x6c\x61\x63\x65\x27\x20\x20\x20\x20\x20\x20\x20\x2d\x20\x52\x65\x70\x6c\x61\x63\x65\x20\x77\x69\x74\x68\x20\x5c\x4e\x7b\x2e\x2e\x2e\x7d\x20\x65\x73\x63\x61\x70\x65\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x73\x65\x74\x20\x6f\x66\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x20\x76\x61\x6c\x75\x65\x73\x20\x63\x61\x6e\x20\x62\x65\x20\x65\x78\x74\x65\x6e\x64\x65\x64\x20\x76\x69\x61\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x5f\x65\x72\x72\x6f\x72\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_24_consts_1_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_24_consts_1_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_stream = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "stream", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_24_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_stream._ascii.ob_base, - &_Py_ID(errors), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -codecs_toplevel_consts_24_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamWriter.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -codecs_toplevel_consts_24_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x2c\x00\x17\x1d\x88\x04\x8c\x0b\xd8\x16\x1c\x88\x04\x8d\x0b", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_24_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_stream._ascii.ob_base, - &_Py_ID(errors), - }, - }, -}; -static - struct _PyCode_DEF(32) -codecs_toplevel_consts_24_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 16, - }, - .co_consts = & codecs_toplevel_consts_24_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 348, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 298, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & codecs_toplevel_consts_24_consts_1_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[63]; - } -codecs_toplevel_consts_24_consts_2_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 62, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x57\x72\x69\x74\x65\x73\x20\x74\x68\x65\x20\x6f\x62\x6a\x65\x63\x74\x27\x73\x20\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x65\x6e\x63\x6f\x64\x65\x64\x20\x74\x6f\x20\x73\x65\x6c\x66\x2e\x73\x74\x72\x65\x61\x6d\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_24_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_24_consts_2_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_24_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(encode), - &_Py_ID(errors), - & const_str_stream._ascii.ob_base, - &_Py_ID(write), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -codecs_toplevel_consts_24_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamWriter.write", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[47]; - } -codecs_toplevel_consts_24_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 46, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x00\x1a\x1e\x9f\x1b\x99\x1b\xa0\x56\xa8\x54\xaf\x5b\xa9\x5b\xd3\x19\x39\x89\x0e\x88\x04\x88\x68\xd8\x08\x0c\x8f\x0b\x89\x0b\xd7\x08\x19\xd1\x08\x19\x98\x24\xd5\x08\x1f", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_24_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(object), - &_Py_ID(data), - & const_str_consumed._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(120) -codecs_toplevel_consts_24_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 60, - }, - .co_consts = & codecs_toplevel_consts_24_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 373, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 299, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(write), - .co_qualname = & codecs_toplevel_consts_24_consts_2_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x02\x7d\x03\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[92]; - } -codecs_toplevel_consts_24_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 91, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x57\x72\x69\x74\x65\x73\x20\x74\x68\x65\x20\x63\x6f\x6e\x63\x61\x74\x65\x6e\x61\x74\x65\x64\x20\x6c\x69\x73\x74\x20\x6f\x66\x20\x73\x74\x72\x69\x6e\x67\x73\x20\x74\x6f\x20\x74\x68\x65\x20\x73\x74\x72\x65\x61\x6d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x73\x69\x6e\x67\x20\x2e\x77\x72\x69\x74\x65\x28\x29\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_24_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & codecs_toplevel_consts_24_consts_3_consts_0._ascii.ob_base, - &_Py_STR(empty), - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_24_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(write), - &_Py_ID(join), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_writelines = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "writelines", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -codecs_toplevel_consts_24_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamWriter.writelines", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[25]; - } -codecs_toplevel_consts_24_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 24, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x0a\x00\x09\x0d\x8f\x0a\x89\x0a\x90\x32\x97\x37\x91\x37\x98\x34\x93\x3d\xd5\x08\x21", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_24_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - & const_str_list._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(68) -codecs_toplevel_consts_24_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 34, - }, - .co_consts = & codecs_toplevel_consts_24_consts_3_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 380, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 300, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_writelines._ascii.ob_base, - .co_qualname = & codecs_toplevel_consts_24_consts_3_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[307]; - } -codecs_toplevel_consts_24_consts_4_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 306, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x52\x65\x73\x65\x74\x73\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x20\x62\x75\x66\x66\x65\x72\x73\x20\x75\x73\x65\x64\x20\x66\x6f\x72\x20\x6b\x65\x65\x70\x69\x6e\x67\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x20\x73\x74\x61\x74\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x43\x61\x6c\x6c\x69\x6e\x67\x20\x74\x68\x69\x73\x20\x6d\x65\x74\x68\x6f\x64\x20\x73\x68\x6f\x75\x6c\x64\x20\x65\x6e\x73\x75\x72\x65\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x64\x61\x74\x61\x20\x6f\x6e\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x75\x74\x70\x75\x74\x20\x69\x73\x20\x70\x75\x74\x20\x69\x6e\x74\x6f\x20\x61\x20\x63\x6c\x65\x61\x6e\x20\x73\x74\x61\x74\x65\x2c\x20\x74\x68\x61\x74\x20\x61\x6c\x6c\x6f\x77\x73\x20\x61\x70\x70\x65\x6e\x64\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x20\x6e\x65\x77\x20\x66\x72\x65\x73\x68\x20\x64\x61\x74\x61\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x68\x61\x76\x69\x6e\x67\x20\x74\x6f\x20\x72\x65\x73\x63\x61\x6e\x20\x74\x68\x65\x20\x77\x68\x6f\x6c\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x65\x61\x6d\x20\x74\x6f\x20\x72\x65\x63\x6f\x76\x65\x72\x20\x73\x74\x61\x74\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_24_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_24_consts_4_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -codecs_toplevel_consts_24_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamWriter.reset", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[8]; - } -codecs_toplevel_consts_24_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 7, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x14\x00\x09\x0d", -}; -static - struct _PyCode_DEF(4) -codecs_toplevel_consts_24_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & codecs_toplevel_consts_24_consts_4_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 387, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 301, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(reset), - .co_qualname = & codecs_toplevel_consts_24_consts_4_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_24_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_stream._ascii.ob_base, - &_Py_ID(seek), - &_Py_ID(reset), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -codecs_toplevel_consts_24_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamWriter.seek", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[52]; - } -codecs_toplevel_consts_24_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 51, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x08\x0c\x8f\x0b\x89\x0b\xd7\x08\x18\xd1\x08\x18\x98\x16\xa0\x16\xd4\x08\x28\xd8\x0b\x11\x90\x51\x8a\x3b\x98\x36\xa0\x51\x9a\x3b\xd8\x0c\x10\x8f\x4a\x89\x4a\x8d\x4c\xf0\x03\x00\x1c\x27\x88\x3b", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_whence = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "whence", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_24_consts_5_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(offset), - & const_str_whence._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(116) -codecs_toplevel_consts_24_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 58, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 399, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 302, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(seek), - .co_qualname = & codecs_toplevel_consts_24_consts_5_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x02\x64\x01\x6b\x28\x00\x00\x72\x17\x7c\x01\x64\x01\x6b\x28\x00\x00\x72\x11\x7c\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x79\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[64]; - } -codecs_toplevel_consts_24_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 63, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x49\x6e\x68\x65\x72\x69\x74\x20\x61\x6c\x6c\x20\x6f\x74\x68\x65\x72\x20\x6d\x65\x74\x68\x6f\x64\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x75\x6e\x64\x65\x72\x6c\x79\x69\x6e\x67\x20\x73\x74\x72\x65\x61\x6d\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_24_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_24_consts_6_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_24_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_stream._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -codecs_toplevel_consts_24_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamWriter.__getattr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[22]; - } -codecs_toplevel_consts_24_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 21, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf1\x0a\x00\x10\x17\x90\x74\x97\x7b\x91\x7b\xa0\x44\xd3\x0f\x29\xd0\x08\x29", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_24_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(name), - &_Py_ID(getattr), - }, - }, -}; -static - struct _PyCode_DEF(40) -codecs_toplevel_consts_24_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & codecs_toplevel_consts_24_consts_6_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 404, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 303, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__getattr__), - .co_qualname = & codecs_toplevel_consts_24_consts_6_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x02\x00\x7c\x02\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -codecs_toplevel_consts_24_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamWriter.__enter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[8]; - } -codecs_toplevel_consts_24_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 7, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0f\x13\x88\x0b", -}; -static - struct _PyCode_DEF(6) -codecs_toplevel_consts_24_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 3, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 411, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 304, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__enter__), - .co_qualname = & codecs_toplevel_consts_24_consts_7_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_24_consts_8_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_stream._ascii.ob_base, - &_Py_ID(close), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -codecs_toplevel_consts_24_consts_8_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamWriter.__exit__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -codecs_toplevel_consts_24_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x08\x0c\x8f\x0b\x89\x0b\xd7\x08\x19\xd1\x08\x19\xd5\x08\x1b", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_tb = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "tb", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_24_consts_8_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(type), - &_Py_ID(value), - & const_str_tb._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(56) -codecs_toplevel_consts_24_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 414, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 305, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__exit__), - .co_qualname = & codecs_toplevel_consts_24_consts_8_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -codecs_toplevel_consts_24_consts_9_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "can't serialize %s", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_24_consts_9_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & codecs_toplevel_consts_24_consts_9_consts_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_24_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_TypeError._ascii.ob_base, - &_Py_ID(__class__), - &_Py_ID(__name__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -codecs_toplevel_consts_24_consts_9_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamWriter.__reduce_ex__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -codecs_toplevel_consts_24_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0e\x17\xd0\x18\x2c\xa8\x74\xaf\x7e\xa9\x7e\xd7\x2f\x46\xd1\x2f\x46\xd1\x18\x46\xd3\x0e\x47\xd0\x08\x47", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_24_consts_9_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(proto), - }, - }, -}; -static - struct _PyCode_DEF(70) -codecs_toplevel_consts_24_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 35, - }, - .co_consts = & codecs_toplevel_consts_24_consts_9_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 417, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 306, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_9_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__reduce_ex__), - .co_qualname = & codecs_toplevel_consts_24_consts_9_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_24_consts_12 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -codecs_toplevel_consts_24_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str_StreamWriter._ascii.ob_base, - & codecs_toplevel_consts_24_consts_1.ob_base.ob_base, - & codecs_toplevel_consts_24_consts_2.ob_base.ob_base, - & codecs_toplevel_consts_24_consts_3.ob_base.ob_base, - & codecs_toplevel_consts_24_consts_4.ob_base.ob_base, - & codecs_toplevel_consts_24_consts_5.ob_base.ob_base, - & codecs_toplevel_consts_24_consts_6.ob_base.ob_base, - & codecs_toplevel_consts_24_consts_7.ob_base.ob_base, - & codecs_toplevel_consts_24_consts_8.ob_base.ob_base, - & codecs_toplevel_consts_24_consts_9.ob_base.ob_base, - Py_None, - & codecs_toplevel_consts_14_consts_5._object.ob_base.ob_base, - & codecs_toplevel_consts_24_consts_12._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -codecs_toplevel_consts_24_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__init__), - &_Py_ID(write), - & const_str_writelines._ascii.ob_base, - &_Py_ID(reset), - &_Py_ID(seek), - &_Py_ID(getattr), - &_Py_ID(__getattr__), - &_Py_ID(__enter__), - &_Py_ID(__exit__), - &_Py_ID(__reduce_ex__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[54]; - } -codecs_toplevel_consts_24_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 53, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf3\x04\x17\x05\x1d\xf2\x32\x05\x05\x20\xf2\x0e\x05\x05\x22\xf2\x0e\x0a\x05\x0d\xf3\x18\x03\x05\x19\xf0\x0c\x00\x1d\x24\xf3\x03\x05\x05\x2a\xf2\x0e\x01\x05\x14\xf2\x06\x01\x05\x1c\xf3\x06\x01\x05\x48\x01", -}; -static - struct _PyCode_DEF(74) -codecs_toplevel_consts_24 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 37, - }, - .co_consts = & codecs_toplevel_consts_24_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 346, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 307, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_StreamWriter._ascii.ob_base, - .co_qualname = & const_str_StreamWriter._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x0b\x64\x01\x84\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x04\x84\x00\x5a\x06\x64\x0c\x64\x05\x84\x01\x5a\x07\x65\x08\x66\x01\x64\x06\x84\x01\x5a\x09\x64\x07\x84\x00\x5a\x0a\x64\x08\x84\x00\x5a\x0b\x64\x09\x84\x00\x5a\x0c\x79\x0a", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[654]; - } -codecs_toplevel_consts_26_consts_1_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 653, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x43\x72\x65\x61\x74\x65\x73\x20\x61\x20\x53\x74\x72\x65\x61\x6d\x52\x65\x61\x64\x65\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x65\x61\x6d\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x20\x66\x69\x6c\x65\x2d\x6c\x69\x6b\x65\x20\x6f\x62\x6a\x65\x63\x74\x20\x6f\x70\x65\x6e\x20\x66\x6f\x72\x20\x72\x65\x61\x64\x69\x6e\x67\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x53\x74\x72\x65\x61\x6d\x52\x65\x61\x64\x65\x72\x20\x6d\x61\x79\x20\x75\x73\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x20\x65\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x63\x68\x65\x6d\x65\x73\x20\x62\x79\x20\x70\x72\x6f\x76\x69\x64\x69\x6e\x67\x20\x74\x68\x65\x20\x65\x72\x72\x6f\x72\x73\x20\x6b\x65\x79\x77\x6f\x72\x64\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x2e\x20\x54\x68\x65\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x61\x72\x65\x20\x70\x72\x65\x64\x65\x66\x69\x6e\x65\x64\x3a\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x73\x74\x72\x69\x63\x74\x27\x20\x2d\x20\x72\x61\x69\x73\x65\x20\x61\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x20\x28\x6f\x72\x20\x61\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x69\x67\x6e\x6f\x72\x65\x27\x20\x2d\x20\x69\x67\x6e\x6f\x72\x65\x20\x74\x68\x65\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x20\x61\x6e\x64\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x72\x65\x70\x6c\x61\x63\x65\x27\x2d\x20\x72\x65\x70\x6c\x61\x63\x65\x20\x77\x69\x74\x68\x20\x61\x20\x73\x75\x69\x74\x61\x62\x6c\x65\x20\x72\x65\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x62\x61\x63\x6b\x73\x6c\x61\x73\x68\x72\x65\x70\x6c\x61\x63\x65\x27\x20\x2d\x20\x52\x65\x70\x6c\x61\x63\x65\x20\x77\x69\x74\x68\x20\x62\x61\x63\x6b\x73\x6c\x61\x73\x68\x65\x64\x20\x65\x73\x63\x61\x70\x65\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x73\x3b\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x73\x65\x74\x20\x6f\x66\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x20\x76\x61\x6c\x75\x65\x73\x20\x63\x61\x6e\x20\x62\x65\x20\x65\x78\x74\x65\x6e\x64\x65\x64\x20\x76\x69\x61\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x5f\x65\x72\x72\x6f\x72\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_26_consts_1_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & codecs_toplevel_consts_26_consts_1_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_empty), - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_bytebuffer = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bytebuffer", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_charbuffertype = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "charbuffertype", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str__empty_charbuffer = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_empty_charbuffer", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_charbuffer = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "charbuffer", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_linebuffer = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "linebuffer", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -codecs_toplevel_consts_26_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_stream._ascii.ob_base, - &_Py_ID(errors), - & const_str_bytebuffer._ascii.ob_base, - & const_str_charbuffertype._ascii.ob_base, - & const_str__empty_charbuffer._ascii.ob_base, - & const_str_charbuffer._ascii.ob_base, - & const_str_linebuffer._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -codecs_toplevel_consts_26_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[63]; - } -codecs_toplevel_consts_26_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 62, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x24\x00\x17\x1d\x88\x04\x8c\x0b\xd8\x16\x1c\x88\x04\x8c\x0b\xd8\x1a\x1d\x88\x04\x8c\x0f\xd8\x21\x25\xd7\x21\x34\xd1\x21\x34\xd3\x21\x36\x88\x04\xd4\x08\x1e\xd8\x1a\x1e\xd7\x1a\x30\xd1\x1a\x30\x88\x04\x8c\x0f\xd8\x1a\x1e\x88\x04\x8d\x0f", -}; -static - struct _PyCode_DEF(136) -codecs_toplevel_consts_26_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 68, - }, - .co_consts = & codecs_toplevel_consts_26_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_26_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 426, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 308, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & codecs_toplevel_consts_26_consts_1_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_26_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x7c\x00\x5f\x06\x00\x00\x00\x00\x00\x00\x00\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -codecs_toplevel_consts_26_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.decode", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -codecs_toplevel_consts_26_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0e\x21\xd0\x08\x21", -}; -static - struct _PyCode_DEF(14) -codecs_toplevel_consts_26_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_14_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 451, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 309, - .co_localsplusnames = & codecs_toplevel_consts_14_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(decode), - .co_qualname = & codecs_toplevel_consts_26_consts_2_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_26_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[1261]; - } -codecs_toplevel_consts_26_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 1260, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x44\x65\x63\x6f\x64\x65\x73\x20\x64\x61\x74\x61\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x73\x74\x72\x65\x61\x6d\x20\x73\x65\x6c\x66\x2e\x73\x74\x72\x65\x61\x6d\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x73\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x75\x6c\x74\x69\x6e\x67\x20\x6f\x62\x6a\x65\x63\x74\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x73\x20\x69\x6e\x64\x69\x63\x61\x74\x65\x73\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x64\x65\x63\x6f\x64\x65\x64\x20\x63\x6f\x64\x65\x20\x70\x6f\x69\x6e\x74\x73\x20\x6f\x72\x20\x62\x79\x74\x65\x73\x20\x74\x6f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x2e\x20\x72\x65\x61\x64\x28\x29\x20\x77\x69\x6c\x6c\x20\x6e\x65\x76\x65\x72\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x6f\x72\x65\x20\x64\x61\x74\x61\x20\x74\x68\x61\x6e\x20\x72\x65\x71\x75\x65\x73\x74\x65\x64\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x75\x74\x20\x69\x74\x20\x6d\x69\x67\x68\x74\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x65\x73\x73\x2c\x20\x69\x66\x20\x74\x68\x65\x72\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x65\x6e\x6f\x75\x67\x68\x20\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x69\x7a\x65\x20\x69\x6e\x64\x69\x63\x61\x74\x65\x73\x20\x74\x68\x65\x20\x61\x70\x70\x72\x6f\x78\x69\x6d\x61\x74\x65\x20\x6d\x61\x78\x69\x6d\x75\x6d\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x64\x65\x63\x6f\x64\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x79\x74\x65\x73\x20\x6f\x72\x20\x63\x6f\x64\x65\x20\x70\x6f\x69\x6e\x74\x73\x20\x74\x6f\x20\x72\x65\x61\x64\x20\x66\x6f\x72\x20\x64\x65\x63\x6f\x64\x69\x6e\x67\x2e\x20\x54\x68\x65\x20\x64\x65\x63\x6f\x64\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x6e\x20\x6d\x6f\x64\x69\x66\x79\x20\x74\x68\x69\x73\x20\x73\x65\x74\x74\x69\x6e\x67\x20\x61\x73\x20\x61\x70\x70\x72\x6f\x70\x72\x69\x61\x74\x65\x2e\x20\x54\x68\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x76\x61\x6c\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2d\x31\x20\x69\x6e\x64\x69\x63\x61\x74\x65\x73\x20\x74\x6f\x20\x72\x65\x61\x64\x20\x61\x6e\x64\x20\x64\x65\x63\x6f\x64\x65\x20\x61\x73\x20\x6d\x75\x63\x68\x20\x61\x73\x20\x70\x6f\x73\x73\x69\x62\x6c\x65\x2e\x20\x20\x73\x69\x7a\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x20\x69\x6e\x74\x65\x6e\x64\x65\x64\x20\x74\x6f\x20\x70\x72\x65\x76\x65\x6e\x74\x20\x68\x61\x76\x69\x6e\x67\x20\x74\x6f\x20\x64\x65\x63\x6f\x64\x65\x20\x68\x75\x67\x65\x20\x66\x69\x6c\x65\x73\x20\x69\x6e\x20\x6f\x6e\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x65\x70\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x66\x20\x66\x69\x72\x73\x74\x6c\x69\x6e\x65\x20\x69\x73\x20\x74\x72\x75\x65\x2c\x20\x61\x6e\x64\x20\x61\x20\x55\x6e\x69\x63\x6f\x64\x65\x44\x65\x63\x6f\x64\x65\x45\x72\x72\x6f\x72\x20\x68\x61\x70\x70\x65\x6e\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x66\x74\x65\x72\x20\x74\x68\x65\x20\x66\x69\x72\x73\x74\x20\x6c\x69\x6e\x65\x20\x74\x65\x72\x6d\x69\x6e\x61\x74\x6f\x72\x20\x69\x6e\x20\x74\x68\x65\x20\x69\x6e\x70\x75\x74\x20\x6f\x6e\x6c\x79\x20\x74\x68\x65\x20\x66\x69\x72\x73\x74\x20\x6c\x69\x6e\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x2c\x20\x74\x68\x65\x20\x72\x65\x73\x74\x20\x6f\x66\x20\x74\x68\x65\x20\x69\x6e\x70\x75\x74\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x6b\x65\x70\x74\x20\x75\x6e\x74\x69\x6c\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x63\x61\x6c\x6c\x20\x74\x6f\x20\x72\x65\x61\x64\x28\x29\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x6d\x65\x74\x68\x6f\x64\x20\x73\x68\x6f\x75\x6c\x64\x20\x75\x73\x65\x20\x61\x20\x67\x72\x65\x65\x64\x79\x20\x72\x65\x61\x64\x20\x73\x74\x72\x61\x74\x65\x67\x79\x2c\x20\x6d\x65\x61\x6e\x69\x6e\x67\x20\x74\x68\x61\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x20\x73\x68\x6f\x75\x6c\x64\x20\x72\x65\x61\x64\x20\x61\x73\x20\x6d\x75\x63\x68\x20\x64\x61\x74\x61\x20\x61\x73\x20\x69\x73\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x77\x69\x74\x68\x69\x6e\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x69\x6e\x69\x74\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x73\x69\x7a\x65\x2c\x20\x65\x2e\x67\x2e\x20\x20\x69\x66\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x65\x6e\x64\x69\x6e\x67\x73\x20\x6f\x72\x20\x73\x74\x61\x74\x65\x20\x6d\x61\x72\x6b\x65\x72\x73\x20\x61\x72\x65\x20\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x20\x74\x68\x65\x20\x73\x74\x72\x65\x61\x6d\x2c\x20\x74\x68\x65\x73\x65\x20\x73\x68\x6f\x75\x6c\x64\x20\x62\x65\x20\x72\x65\x61\x64\x20\x74\x6f\x6f\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_26_consts_3_consts_4 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(keepends), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -codecs_toplevel_consts_26_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & codecs_toplevel_consts_26_consts_3_consts_0._ascii.ob_base, - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_True, - & codecs_toplevel_consts_26_consts_3_consts_4._object.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_splitlines = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "splitlines", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -codecs_toplevel_consts_26_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str_linebuffer._ascii.ob_base, - & const_str__empty_charbuffer._ascii.ob_base, - &_Py_ID(join), - & const_str_charbuffer._ascii.ob_base, - &_Py_ID(len), - & const_str_stream._ascii.ob_base, - &_Py_ID(read), - & const_str_bytebuffer._ascii.ob_base, - &_Py_ID(decode), - &_Py_ID(errors), - & const_str_UnicodeDecodeError._ascii.ob_base, - &_Py_ID(start), - & const_str_splitlines._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -codecs_toplevel_consts_26_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.read", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[409]; - } -codecs_toplevel_consts_26_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 408, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x38\x00\x0c\x10\x8f\x3f\x8a\x3f\xd8\x1e\x22\xd7\x1e\x34\xd1\x1e\x34\xd7\x1e\x39\xd1\x1e\x39\xb8\x24\xbf\x2f\xb9\x2f\xd3\x1e\x4a\x88\x44\x8c\x4f\xd8\x1e\x22\x88\x44\x8c\x4f\xe0\x0b\x10\x90\x31\x8a\x39\xf0\x06\x00\x15\x19\x88\x45\xf0\x06\x00\x0f\x13\xe0\x0f\x14\x98\x01\x8a\x7a\xdc\x13\x16\x90\x74\x97\x7f\x91\x7f\xd3\x13\x27\xa8\x35\xd2\x13\x30\xd8\x14\x19\xe0\x0f\x13\x90\x61\x8a\x78\xd8\x1a\x1e\x9f\x2b\x99\x2b\xd7\x1a\x2a\xd1\x1a\x2a\xd3\x1a\x2c\x91\x07\xe0\x1a\x1e\x9f\x2b\x99\x2b\xd7\x1a\x2a\xd1\x1a\x2a\xa8\x34\xd3\x1a\x30\x90\x07\xe0\x13\x17\x97\x3f\x91\x3f\xa0\x57\xd1\x13\x2c\x88\x44\xd9\x13\x17\xd8\x10\x15\xf0\x02\x0a\x0d\x1a\xd8\x29\x2d\xaf\x1b\xa9\x1b\xb0\x54\xb8\x34\xbf\x3b\xb9\x3b\xd3\x29\x47\xd1\x10\x26\x90\x08\x98\x2c\xf0\x16\x00\x1f\x23\xa0\x3c\xa0\x3d\xd0\x1e\x31\x88\x44\x8c\x4f\xe0\x0c\x10\x8f\x4f\x8a\x4f\x98\x78\xd1\x0c\x27\x8d\x4f\xe1\x13\x1a\xd8\x10\x15\xf0\x3f\x00\x0f\x13\xf0\x40\x01\x00\x0c\x11\x90\x31\x8a\x39\xe0\x15\x19\x97\x5f\x91\x5f\x88\x46\xd8\x1e\x22\xd7\x1e\x34\xd1\x1e\x34\x88\x44\x8c\x4f\xf0\x0a\x00\x10\x16\x88\x0d\xf0\x05\x00\x16\x1a\x97\x5f\x91\x5f\xa0\x56\xa0\x65\xd0\x15\x2c\x88\x46\xd8\x1e\x22\x9f\x6f\x99\x6f\xa8\x65\xa8\x66\xd0\x1e\x35\x88\x44\x8c\x4f\xd8\x0f\x15\x88\x0d\xf8\xf4\x31\x00\x14\x26\xf2\x00\x08\x0d\x1a\xd9\x13\x1c\xe0\x18\x1c\x9f\x0b\x99\x0b\xa0\x44\xa8\x1a\xa8\x23\xaf\x29\xa9\x29\xd0\x24\x34\xb0\x64\xb7\x6b\xb1\x6b\xd3\x18\x42\xf1\x03\x00\x15\x2b\x90\x48\x98\x6c\xe0\x1c\x24\xd7\x1c\x2f\xd1\x1c\x2f\xb8\x14\xd0\x1c\x2f\xd3\x1c\x3e\x90\x45\xdc\x17\x1a\x98\x35\x93\x7a\xa0\x31\x92\x7d\xd8\x18\x1d\xe0\x14\x19\xf4\x07\x00\x18\x25\xfb\xf0\x0b\x08\x0d\x1a\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[26]; - } -codecs_toplevel_consts_26_consts_3_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 25, - }, - .ob_shash = -1, - .ob_sval = "\xc2\x32\x1f\x44\x3d\x00\xc4\x3d\x09\x46\x20\x03\xc5\x06\x41\x10\x46\x1b\x03\xc6\x1b\x05\x46\x20\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_chars = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "chars", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_firstline = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "firstline", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_newdata = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "newdata", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_newchars = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "newchars", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_decodedbytes = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "decodedbytes", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_lines = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "lines", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -codecs_toplevel_consts_26_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(size), - & const_str_chars._ascii.ob_base, - & const_str_firstline._ascii.ob_base, - & const_str_newdata._ascii.ob_base, - &_Py_ID(data), - & const_str_newchars._ascii.ob_base, - & const_str_decodedbytes._ascii.ob_base, - & const_str_exc._ascii.ob_base, - & const_str_lines._ascii.ob_base, - & const_str_result._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(838) -codecs_toplevel_consts_26_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 419, - }, - .co_consts = & codecs_toplevel_consts_26_consts_3_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_26_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = & codecs_toplevel_consts_26_consts_3_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 17 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 454, - .co_nlocalsplus = 11, - .co_nlocals = 11, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 310, - .co_localsplusnames = & codecs_toplevel_consts_26_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_6_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(read), - .co_qualname = & codecs_toplevel_consts_26_consts_3_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_26_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x31\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x64\x02\x6b\x02\x00\x00\x72\x02\x7c\x01\x7d\x02\x09\x00\x7c\x02\x64\x02\x6b\x5c\x00\x00\x72\x19\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x02\x6b\x5c\x00\x00\x72\x01\x6e\x90\x7c\x01\x64\x02\x6b\x02\x00\x00\x72\x1b\x7c\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x04\x6e\x1b\x7c\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x04\x7c\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x7a\x00\x00\x00\x7d\x05\x7c\x05\x73\x01\x6e\x43\x09\x00\x7c\x00\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x7c\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x06\x7d\x07\x7c\x05\x7c\x07\x64\x01\x1a\x00\x7c\x00\x5f\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x78\x01\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x7a\x0d\x00\x00\x63\x02\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x73\x01\x6e\x01\x8c\xae\x7c\x02\x64\x02\x6b\x02\x00\x00\x72\x1f\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x0a\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\x53\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x02\x1a\x00\x7d\x0a\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x64\x01\x1a\x00\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\x53\x00\x23\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x5a\x7d\x08\x7c\x03\x72\x4d\x7c\x00\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x64\x01\x7c\x08\x6a\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x7c\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x06\x7d\x07\x7c\x06\x6a\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\xac\x04\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x09\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\xab\x01\x00\x00\x00\x00\x00\x00\x64\x05\x6b\x1a\x00\x00\x72\x02\x82\x00\x82\x00\x59\x00\x64\x01\x7d\x08\x7e\x08\x8c\xca\x64\x01\x7d\x08\x7e\x08\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[178]; - } -codecs_toplevel_consts_26_consts_5_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 177, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x52\x65\x61\x64\x20\x6f\x6e\x65\x20\x6c\x69\x6e\x65\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x69\x6e\x70\x75\x74\x20\x73\x74\x72\x65\x61\x6d\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x63\x6f\x64\x65\x64\x20\x64\x61\x74\x61\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x69\x7a\x65\x2c\x20\x69\x66\x20\x67\x69\x76\x65\x6e\x2c\x20\x69\x73\x20\x70\x61\x73\x73\x65\x64\x20\x61\x73\x20\x73\x69\x7a\x65\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x74\x6f\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x61\x64\x28\x29\x20\x6d\x65\x74\x68\x6f\x64\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_26_consts_5_consts_8 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_firstline._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_26_consts_5_consts_11 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(size), - & const_str_chars._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_8000 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 8000 }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -codecs_toplevel_consts_26_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - & codecs_toplevel_consts_26_consts_5_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - Py_None, - Py_False, - & codecs_toplevel_consts_26_consts_3_consts_4._object.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 72], - Py_True, - & codecs_toplevel_consts_26_consts_5_consts_8._object.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[13], - (PyObject *)&_Py_SINGLETON(bytes_characters[13]), - & codecs_toplevel_consts_26_consts_5_consts_11._object.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - & const_int_8000.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -codecs_toplevel_consts_26_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & const_str_linebuffer._ascii.ob_base, - &_Py_ID(len), - & const_str_charbuffer._ascii.ob_base, - & const_str_splitlines._ascii.ob_base, - & const_str__empty_charbuffer._ascii.ob_base, - &_Py_ID(read), - &_Py_ID(isinstance), - & const_str_str._ascii.ob_base, - & const_str_endswith._ascii.ob_base, - &_Py_ID(bytes), - &_Py_ID(join), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -codecs_toplevel_consts_26_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.readline", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[572]; - } -codecs_toplevel_consts_26_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 571, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x16\x00\x0c\x10\x8f\x3f\x8a\x3f\xd8\x13\x17\x97\x3f\x91\x3f\xa0\x31\xd1\x13\x25\x88\x44\xd8\x10\x14\x97\x0f\x91\x0f\xa0\x01\xd0\x10\x22\xdc\x0f\x12\x90\x34\x97\x3f\x91\x3f\xd3\x0f\x23\xa0\x71\xd2\x0f\x28\xf0\x06\x00\x23\x27\xa7\x2f\xa1\x2f\xb0\x21\xd1\x22\x34\x90\x04\x94\x0f\xd8\x22\x26\x90\x04\x94\x0f\xd9\x13\x1b\xd8\x17\x1b\x97\x7f\x91\x7f\xb0\x05\x90\x7f\xd3\x17\x36\xb0\x71\xd1\x17\x39\x90\x04\xd8\x13\x17\x88\x4b\xe0\x13\x17\x92\x3a\x98\x32\x88\x08\xd8\x0f\x13\xd7\x0f\x25\xd1\x0f\x25\x88\x04\xe0\x0e\x12\xd8\x13\x17\x97\x39\x91\x39\x98\x58\xb0\x14\x90\x39\xd3\x13\x36\x88\x44\xd9\x0f\x13\xf4\x08\x00\x15\x1f\x98\x74\xa4\x53\xd4\x14\x29\xa8\x64\xaf\x6d\xa9\x6d\xb8\x44\xd4\x2e\x41\xdc\x14\x1e\x98\x74\xa4\x55\xd4\x14\x2b\xb0\x04\xb7\x0d\xb1\x0d\xb8\x65\xd4\x30\x44\xd8\x14\x18\x98\x44\x9f\x49\x99\x49\xa8\x31\xb0\x41\x98\x49\xd3\x1c\x36\xd1\x14\x36\x90\x44\xe0\x0c\x10\x90\x44\x89\x4c\x88\x44\xd8\x14\x18\x97\x4f\x91\x4f\xa8\x54\x90\x4f\xd3\x14\x32\x88\x45\xd9\x0f\x14\xdc\x13\x16\x90\x75\x93\x3a\xa0\x01\x92\x3e\xf0\x06\x00\x1c\x21\xa0\x11\x99\x38\x90\x44\xd8\x18\x1d\x98\x61\x98\x08\xdc\x17\x1a\x98\x35\x93\x7a\xa0\x41\x92\x7e\xe0\x18\x1d\x98\x62\x9b\x09\xa0\x54\xa7\x5f\xa1\x5f\xd1\x18\x34\x9b\x09\xd8\x2a\x2f\x98\x04\x9c\x0f\xd8\x2a\x2e\x98\x04\x9d\x0f\xf0\x06\x00\x2b\x30\xb0\x01\xa9\x28\xb0\x54\xb7\x5f\xb1\x5f\xd1\x2a\x44\x98\x04\x9c\x0f\xd9\x1b\x23\xd8\x1f\x23\x9f\x7f\x99\x7f\xb8\x05\x98\x7f\xd3\x1f\x3e\xb8\x71\xd1\x1f\x41\x98\x04\xd8\x14\x19\xf0\x26\x00\x10\x14\x88\x0b\xf0\x25\x00\x20\x25\xa0\x51\x99\x78\x90\x0c\xd8\x22\x27\xa8\x01\xa1\x28\xd7\x22\x35\xd1\x22\x35\xb8\x75\xd0\x22\x35\xd3\x22\x45\xc0\x61\xd1\x22\x48\x90\x0f\xd8\x13\x1f\xa0\x3f\xd2\x13\x32\xe0\x26\x2a\xd7\x26\x3c\xd1\x26\x3c\xd7\x26\x41\xd1\x26\x41\xc0\x25\xc8\x01\xc8\x02\xc0\x29\xd3\x26\x4c\xd8\x26\x2a\xa7\x6f\xa1\x6f\xf1\x03\x01\x27\x36\x90\x44\x94\x4f\xe1\x17\x1f\xd8\x1f\x2b\x98\x04\xf0\x06\x00\x15\x1a\xf0\x10\x00\x10\x14\x88\x0b\xf0\x13\x00\x20\x2f\x98\x04\xd8\x14\x19\xf0\x10\x00\x10\x14\x88\x0b\xf1\x0d\x00\x14\x18\x98\x34\xd0\x1b\x2b\xd9\x13\x17\xa1\x08\xd8\x1b\x1f\x9f\x3f\x99\x3f\xb0\x45\x98\x3f\xd3\x1b\x3a\xb8\x31\xd1\x1b\x3d\x90\x44\xd8\x10\x15\xf0\x06\x00\x10\x14\x88\x0b\xf0\x05\x00\x10\x18\x98\x24\x8a\x7f\xd8\x10\x18\x98\x41\x91\x0d\x90\x08\xf1\x5d\x01\x00\x0f\x13", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_readsize = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "readsize", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_line0withend = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "line0withend", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_line0withoutend = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "line0withoutend", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -codecs_toplevel_consts_26_consts_5_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(size), - &_Py_ID(keepends), - &_Py_ID(line), - & const_str_readsize._ascii.ob_base, - &_Py_ID(data), - & const_str_lines._ascii.ob_base, - & const_str_line0withend._ascii.ob_base, - & const_str_line0withoutend._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(1062) -codecs_toplevel_consts_26_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 531, - }, - .co_consts = & codecs_toplevel_consts_26_consts_5_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_26_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 14 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 534, - .co_nlocalsplus = 9, - .co_nlocals = 9, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 311, - .co_localsplusnames = & codecs_toplevel_consts_26_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_61_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(readline), - .co_qualname = & codecs_toplevel_consts_26_consts_5_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_26_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x68\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x19\x00\x00\x00\x7d\x03\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x3d\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x64\x02\x6b\x28\x00\x00\x72\x1b\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x19\x00\x00\x00\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x73\x15\x7c\x03\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\xac\x05\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x19\x00\x00\x00\x7d\x03\x7c\x03\x53\x00\x7c\x01\x78\x01\x73\x02\x01\x00\x64\x06\x7d\x04\x7c\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x09\x00\x7c\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x64\x07\xac\x08\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x05\x7c\x05\x72\x58\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x11\x7c\x05\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\xab\x01\x00\x00\x00\x00\x00\x00\x73\x21\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x27\x7c\x05\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0a\xab\x01\x00\x00\x00\x00\x00\x00\x72\x16\x7c\x05\x7c\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x64\x02\xac\x0b\xab\x02\x00\x00\x00\x00\x00\x00\x7a\x0d\x00\x00\x7d\x05\x7c\x03\x7c\x05\x7a\x0d\x00\x00\x7d\x03\x7c\x03\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x07\xac\x05\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x06\x72\xd9\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x64\x02\x6b\x44\x00\x00\x72\x6d\x7c\x06\x64\x01\x19\x00\x00\x00\x7d\x03\x7c\x06\x64\x01\x3d\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x64\x02\x6b\x44\x00\x00\x72\x26\x7c\x06\x64\x0c\x78\x02\x78\x02\x19\x00\x00\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x0d\x00\x00\x63\x03\x63\x02\x3c\x00\x00\x00\x7c\x06\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x17\x7c\x06\x64\x01\x19\x00\x00\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x73\x15\x7c\x03\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\xac\x05\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x19\x00\x00\x00\x7d\x03\x09\x00\x7c\x03\x53\x00\x7c\x06\x64\x01\x19\x00\x00\x00\x7d\x07\x7c\x06\x64\x01\x19\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\xac\x05\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x19\x00\x00\x00\x7d\x08\x7c\x07\x7c\x08\x6b\x37\x00\x00\x72\x3c\x7c\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x64\x02\x64\x03\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x72\x05\x7c\x07\x7d\x03\x09\x00\x7c\x03\x53\x00\x7c\x08\x7d\x03\x09\x00\x7c\x03\x53\x00\x7c\x05\x72\x02\x7c\x01\x81\x1c\x7c\x03\x72\x17\x7c\x02\x73\x15\x7c\x03\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\xac\x05\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x19\x00\x00\x00\x7d\x03\x09\x00\x7c\x03\x53\x00\x7c\x04\x64\x0d\x6b\x02\x00\x00\x72\x05\x7c\x04\x64\x0e\x7a\x12\x00\x00\x7d\x04\x90\x01\x8c\x8b", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[340]; - } -codecs_toplevel_consts_26_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 339, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x52\x65\x61\x64\x20\x61\x6c\x6c\x20\x6c\x69\x6e\x65\x73\x20\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\x20\x6f\x6e\x20\x74\x68\x65\x20\x69\x6e\x70\x75\x74\x20\x73\x74\x72\x65\x61\x6d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x6d\x20\x61\x73\x20\x61\x20\x6c\x69\x73\x74\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4c\x69\x6e\x65\x20\x62\x72\x65\x61\x6b\x73\x20\x61\x72\x65\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x20\x75\x73\x69\x6e\x67\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x27\x73\x20\x64\x65\x63\x6f\x64\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x65\x74\x68\x6f\x64\x20\x61\x6e\x64\x20\x61\x72\x65\x20\x69\x6e\x63\x6c\x75\x64\x65\x64\x20\x69\x6e\x20\x74\x68\x65\x20\x6c\x69\x73\x74\x20\x65\x6e\x74\x72\x69\x65\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x69\x7a\x65\x68\x69\x6e\x74\x2c\x20\x69\x66\x20\x67\x69\x76\x65\x6e\x2c\x20\x69\x73\x20\x69\x67\x6e\x6f\x72\x65\x64\x20\x73\x69\x6e\x63\x65\x20\x74\x68\x65\x72\x65\x20\x69\x73\x20\x6e\x6f\x20\x65\x66\x66\x69\x63\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x61\x79\x20\x74\x6f\x20\x66\x69\x6e\x64\x69\x6e\x67\x20\x74\x68\x65\x20\x74\x72\x75\x65\x20\x65\x6e\x64\x2d\x6f\x66\x2d\x6c\x69\x6e\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_26_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_26_consts_6_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_26_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(read), - & const_str_splitlines._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_readlines = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "readlines", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -codecs_toplevel_consts_26_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.readlines", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[31]; - } -codecs_toplevel_consts_26_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 30, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x18\x00\x10\x14\x8f\x79\x89\x79\x8b\x7b\x88\x04\xd8\x0f\x13\x8f\x7f\x89\x7f\x98\x78\xd3\x0f\x28\xd0\x08\x28", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_26_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(sizehint), - &_Py_ID(keepends), - &_Py_ID(data), - }, - }, -}; -static - struct _PyCode_DEF(68) -codecs_toplevel_consts_26_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 34, - }, - .co_consts = & codecs_toplevel_consts_26_consts_6_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_26_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 609, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 312, - .co_localsplusnames = & codecs_toplevel_consts_26_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_readlines._ascii.ob_base, - .co_qualname = & codecs_toplevel_consts_26_consts_6_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_26_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x03\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[237]; - } -codecs_toplevel_consts_26_consts_7_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 236, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x52\x65\x73\x65\x74\x73\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x20\x62\x75\x66\x66\x65\x72\x73\x20\x75\x73\x65\x64\x20\x66\x6f\x72\x20\x6b\x65\x65\x70\x69\x6e\x67\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x20\x73\x74\x61\x74\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4e\x6f\x74\x65\x20\x74\x68\x61\x74\x20\x6e\x6f\x20\x73\x74\x72\x65\x61\x6d\x20\x72\x65\x70\x6f\x73\x69\x74\x69\x6f\x6e\x69\x6e\x67\x20\x73\x68\x6f\x75\x6c\x64\x20\x74\x61\x6b\x65\x20\x70\x6c\x61\x63\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x69\x73\x20\x6d\x65\x74\x68\x6f\x64\x20\x69\x73\x20\x70\x72\x69\x6d\x61\x72\x69\x6c\x79\x20\x69\x6e\x74\x65\x6e\x64\x65\x64\x20\x74\x6f\x20\x62\x65\x20\x61\x62\x6c\x65\x20\x74\x6f\x20\x72\x65\x63\x6f\x76\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x72\x6f\x6d\x20\x64\x65\x63\x6f\x64\x69\x6e\x67\x20\x65\x72\x72\x6f\x72\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_26_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & codecs_toplevel_consts_26_consts_7_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_empty), - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_26_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_bytebuffer._ascii.ob_base, - & const_str__empty_charbuffer._ascii.ob_base, - & const_str_charbuffer._ascii.ob_base, - & const_str_linebuffer._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -codecs_toplevel_consts_26_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.reset", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[32]; - } -codecs_toplevel_consts_26_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 31, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x12\x00\x1b\x1e\x88\x04\x8c\x0f\xd8\x1a\x1e\xd7\x1a\x30\xd1\x1a\x30\x88\x04\x8c\x0f\xd8\x1a\x1e\x88\x04\x8d\x0f", -}; -static - struct _PyCode_DEF(66) -codecs_toplevel_consts_26_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 33, - }, - .co_consts = & codecs_toplevel_consts_26_consts_7_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_26_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 624, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 313, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(reset), - .co_qualname = & codecs_toplevel_consts_26_consts_7_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_26_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[113]; - } -codecs_toplevel_consts_26_consts_8_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 112, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x53\x65\x74\x20\x74\x68\x65\x20\x69\x6e\x70\x75\x74\x20\x73\x74\x72\x65\x61\x6d\x27\x73\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x65\x74\x73\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x20\x62\x75\x66\x66\x65\x72\x73\x20\x75\x73\x65\x64\x20\x66\x6f\x72\x20\x6b\x65\x65\x70\x69\x6e\x67\x20\x73\x74\x61\x74\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_26_consts_8_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_26_consts_8_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -codecs_toplevel_consts_26_consts_8_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.seek", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[34]; - } -codecs_toplevel_consts_26_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 33, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x0a\x00\x09\x0d\x8f\x0b\x89\x0b\xd7\x08\x18\xd1\x08\x18\x98\x16\xa0\x16\xd4\x08\x28\xd8\x08\x0c\x8f\x0a\x89\x0a\x8d\x0c", -}; -static - struct _PyCode_DEF(92) -codecs_toplevel_consts_26_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 46, - }, - .co_consts = & codecs_toplevel_consts_26_consts_8_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 637, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 314, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(seek), - .co_qualname = & codecs_toplevel_consts_26_consts_8_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_26_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[53]; - } -codecs_toplevel_consts_26_consts_9_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 52, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " Return the next decoded line from the input stream.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_26_consts_9_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_26_consts_9_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_StopIteration = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StopIteration", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_26_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(readline), - & const_str_StopIteration._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -codecs_toplevel_consts_26_consts_9_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.__next__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -codecs_toplevel_consts_26_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x06\x00\x10\x14\x8f\x7d\x89\x7d\x8b\x7f\x88\x04\xd9\x0b\x0f\xd8\x13\x17\x88\x4b\xdc\x0e\x1b\xd0\x08\x1b", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_26_consts_9_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(line), - }, - }, -}; -static - struct _PyCode_DEF(54) -codecs_toplevel_consts_26_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & codecs_toplevel_consts_26_consts_9_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_26_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 645, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 315, - .co_localsplusnames = & codecs_toplevel_consts_26_consts_9_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__next__), - .co_qualname = & codecs_toplevel_consts_26_consts_9_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_26_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x72\x02\x7c\x01\x53\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -codecs_toplevel_consts_26_consts_10_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.__iter__", -}; -static - struct _PyCode_DEF(6) -codecs_toplevel_consts_26_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 3, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 653, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 316, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iter__), - .co_qualname = & codecs_toplevel_consts_26_consts_10_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -codecs_toplevel_consts_26_consts_11_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.__getattr__", -}; -static - struct _PyCode_DEF(40) -codecs_toplevel_consts_26_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & codecs_toplevel_consts_24_consts_6_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 656, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 317, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__getattr__), - .co_qualname = & codecs_toplevel_consts_26_consts_11_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x02\x00\x7c\x02\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -codecs_toplevel_consts_26_consts_12_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.__enter__", -}; -static - struct _PyCode_DEF(6) -codecs_toplevel_consts_26_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 3, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 663, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 318, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__enter__), - .co_qualname = & codecs_toplevel_consts_26_consts_12_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -codecs_toplevel_consts_26_consts_13_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.__exit__", -}; -static - struct _PyCode_DEF(56) -codecs_toplevel_consts_26_consts_13 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 666, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 319, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__exit__), - .co_qualname = & codecs_toplevel_consts_26_consts_13_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -codecs_toplevel_consts_26_consts_14_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReader.__reduce_ex__", -}; -static - struct _PyCode_DEF(70) -codecs_toplevel_consts_26_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 35, - }, - .co_consts = & codecs_toplevel_consts_24_consts_9_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 669, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 320, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_9_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__reduce_ex__), - .co_qualname = & codecs_toplevel_consts_26_consts_14_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_26_consts_16 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - Py_False, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[19]; - }_object; - } -codecs_toplevel_consts_26_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 19, - }, - .ob_item = { - & const_str_StreamReader._ascii.ob_base, - & codecs_toplevel_consts_26_consts_1.ob_base.ob_base, - & codecs_toplevel_consts_26_consts_2.ob_base.ob_base, - & codecs_toplevel_consts_26_consts_3.ob_base.ob_base, - Py_None, - & codecs_toplevel_consts_26_consts_5.ob_base.ob_base, - & codecs_toplevel_consts_26_consts_6.ob_base.ob_base, - & codecs_toplevel_consts_26_consts_7.ob_base.ob_base, - & codecs_toplevel_consts_26_consts_8.ob_base.ob_base, - & codecs_toplevel_consts_26_consts_9.ob_base.ob_base, - & codecs_toplevel_consts_26_consts_10.ob_base.ob_base, - & codecs_toplevel_consts_26_consts_11.ob_base.ob_base, - & codecs_toplevel_consts_26_consts_12.ob_base.ob_base, - & codecs_toplevel_consts_26_consts_13.ob_base.ob_base, - & codecs_toplevel_consts_26_consts_14.ob_base.ob_base, - & codecs_toplevel_consts_14_consts_5._object.ob_base.ob_base, - & codecs_toplevel_consts_26_consts_16._object.ob_base.ob_base, - & importlib__bootstrap_external_toplevel_consts_68_consts_2_consts._object.ob_base.ob_base, - & codecs_toplevel_consts_24_consts_12._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[19]; - }_object; - } -codecs_toplevel_consts_26_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 19, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - & const_str_str._ascii.ob_base, - & const_str_charbuffertype._ascii.ob_base, - &_Py_ID(__init__), - &_Py_ID(decode), - &_Py_ID(read), - &_Py_ID(readline), - & const_str_readlines._ascii.ob_base, - &_Py_ID(reset), - &_Py_ID(seek), - &_Py_ID(__next__), - &_Py_ID(__iter__), - &_Py_ID(getattr), - &_Py_ID(__getattr__), - &_Py_ID(__enter__), - &_Py_ID(__exit__), - &_Py_ID(__reduce_ex__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[83]; - } -codecs_toplevel_consts_26_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 82, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x15\x18\x80\x4e\xf3\x04\x17\x05\x1f\xf3\x32\x01\x05\x22\xf3\x06\x4e\x01\x05\x16\xf3\x60\x02\x49\x01\x05\x14\xf3\x56\x02\x0d\x05\x29\xf2\x1e\x0b\x05\x1f\xf3\x1a\x06\x05\x15\xf2\x10\x06\x05\x1c\xf2\x10\x01\x05\x14\xf0\x08\x00\x1d\x24\xf3\x03\x05\x05\x2a\xf2\x0e\x01\x05\x14\xf2\x06\x01\x05\x1c\xf3\x06\x01\x05\x48\x01", -}; -static - struct _PyCode_DEF(110) -codecs_toplevel_consts_26 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 55, - }, - .co_consts = & codecs_toplevel_consts_26_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_26_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 422, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 321, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_StreamReader._ascii.ob_base, - .co_qualname = & const_str_StreamReader._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_26_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x65\x03\x5a\x04\x64\x0f\x64\x01\x84\x01\x5a\x05\x64\x0f\x64\x02\x84\x01\x5a\x06\x64\x10\x64\x03\x84\x01\x5a\x07\x64\x11\x64\x05\x84\x01\x5a\x08\x64\x11\x64\x06\x84\x01\x5a\x09\x64\x07\x84\x00\x5a\x0a\x64\x12\x64\x08\x84\x01\x5a\x0b\x64\x09\x84\x00\x5a\x0c\x64\x0a\x84\x00\x5a\x0d\x65\x0e\x66\x01\x64\x0b\x84\x01\x5a\x0f\x64\x0c\x84\x00\x5a\x10\x64\x0d\x84\x00\x5a\x11\x64\x0e\x84\x00\x5a\x12\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[258]; - } -codecs_toplevel_consts_28_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 257, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x53\x74\x72\x65\x61\x6d\x52\x65\x61\x64\x65\x72\x57\x72\x69\x74\x65\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x73\x20\x61\x6c\x6c\x6f\x77\x20\x77\x72\x61\x70\x70\x69\x6e\x67\x20\x73\x74\x72\x65\x61\x6d\x73\x20\x77\x68\x69\x63\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x6f\x72\x6b\x20\x69\x6e\x20\x62\x6f\x74\x68\x20\x72\x65\x61\x64\x20\x61\x6e\x64\x20\x77\x72\x69\x74\x65\x20\x6d\x6f\x64\x65\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x64\x65\x73\x69\x67\x6e\x20\x69\x73\x20\x73\x75\x63\x68\x20\x74\x68\x61\x74\x20\x6f\x6e\x65\x20\x63\x61\x6e\x20\x75\x73\x65\x20\x74\x68\x65\x20\x66\x61\x63\x74\x6f\x72\x79\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x2e\x6c\x6f\x6f\x6b\x75\x70\x28\x29\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_unknown = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "unknown", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[339]; - } -codecs_toplevel_consts_28_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 338, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x43\x72\x65\x61\x74\x65\x73\x20\x61\x20\x53\x74\x72\x65\x61\x6d\x52\x65\x61\x64\x65\x72\x57\x72\x69\x74\x65\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x65\x61\x6d\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x20\x53\x74\x72\x65\x61\x6d\x2d\x6c\x69\x6b\x65\x20\x6f\x62\x6a\x65\x63\x74\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x61\x64\x65\x72\x2c\x20\x57\x72\x69\x74\x65\x72\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x66\x61\x63\x74\x6f\x72\x79\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x20\x6f\x72\x20\x63\x6c\x61\x73\x73\x65\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x76\x69\x64\x69\x6e\x67\x20\x74\x68\x65\x20\x53\x74\x72\x65\x61\x6d\x52\x65\x61\x64\x65\x72\x2c\x20\x53\x74\x72\x65\x61\x6d\x57\x72\x69\x74\x65\x72\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x72\x65\x73\x70\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x45\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x20\x69\x73\x20\x64\x6f\x6e\x65\x20\x69\x6e\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x77\x61\x79\x20\x61\x73\x20\x64\x65\x66\x69\x6e\x65\x64\x20\x66\x6f\x72\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x53\x74\x72\x65\x61\x6d\x57\x72\x69\x74\x65\x72\x2f\x52\x65\x61\x64\x65\x72\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_28_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_28_consts_3_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_reader = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "reader", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_writer = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "writer", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_28_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_stream._ascii.ob_base, - & const_str_reader._ascii.ob_base, - & const_str_writer._ascii.ob_base, - &_Py_ID(errors), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -codecs_toplevel_consts_28_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[47]; - } -codecs_toplevel_consts_28_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 46, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x1a\x00\x17\x1d\x88\x04\x8c\x0b\xd9\x16\x1c\x98\x56\xa0\x56\xd3\x16\x2c\x88\x04\x8c\x0b\xd9\x16\x1c\x98\x56\xa0\x56\xd3\x16\x2c\x88\x04\x8c\x0b\xd8\x16\x1c\x88\x04\x8d\x0b", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_Reader = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Reader", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_Writer = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Writer", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -codecs_toplevel_consts_28_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(self), - & const_str_stream._ascii.ob_base, - & const_str_Reader._ascii.ob_base, - & const_str_Writer._ascii.ob_base, - &_Py_ID(errors), - }, - }, -}; -static - struct _PyCode_DEF(88) -codecs_toplevel_consts_28_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 44, - }, - .co_consts = & codecs_toplevel_consts_28_consts_3_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_28_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 5, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 687, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 322, - .co_localsplusnames = & codecs_toplevel_consts_28_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & codecs_toplevel_consts_28_consts_3_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_28_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x7c\x02\x7c\x01\x7c\x04\xab\x02\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x7c\x03\x7c\x01\x7c\x04\xab\x02\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_28_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_reader._ascii.ob_base, - &_Py_ID(read), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -codecs_toplevel_consts_28_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.read", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -codecs_toplevel_consts_28_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0f\x13\x8f\x7b\x89\x7b\xd7\x0f\x1f\xd1\x0f\x1f\xa0\x04\xd3\x0f\x25\xd0\x08\x25", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_28_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(size), - }, - }, -}; -static - struct _PyCode_DEF(56) -codecs_toplevel_consts_28_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_28_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 705, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 323, - .co_localsplusnames = & codecs_toplevel_consts_28_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(read), - .co_qualname = & codecs_toplevel_consts_28_consts_4_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_28_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_28_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_reader._ascii.ob_base, - &_Py_ID(readline), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -codecs_toplevel_consts_28_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.readline", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -codecs_toplevel_consts_28_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0f\x13\x8f\x7b\x89\x7b\xd7\x0f\x23\xd1\x0f\x23\xa0\x44\xd3\x0f\x29\xd0\x08\x29", -}; -static - struct _PyCode_DEF(56) -codecs_toplevel_consts_28_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_28_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 709, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 324, - .co_localsplusnames = & codecs_toplevel_consts_28_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(readline), - .co_qualname = & codecs_toplevel_consts_28_consts_6_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_28_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_28_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_reader._ascii.ob_base, - & const_str_readlines._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -codecs_toplevel_consts_28_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.readlines", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -codecs_toplevel_consts_28_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0f\x13\x8f\x7b\x89\x7b\xd7\x0f\x24\xd1\x0f\x24\xa0\x58\xd3\x0f\x2e\xd0\x08\x2e", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_28_consts_7_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(sizehint), - }, - }, -}; -static - struct _PyCode_DEF(56) -codecs_toplevel_consts_28_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_28_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 713, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 325, - .co_localsplusnames = & codecs_toplevel_consts_28_consts_7_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_readlines._ascii.ob_base, - .co_qualname = & codecs_toplevel_consts_28_consts_7_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_28_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_28_consts_8_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(next), - & const_str_reader._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -codecs_toplevel_consts_28_consts_8_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.__next__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[20]; - } -codecs_toplevel_consts_28_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 19, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x10\x14\x90\x44\x97\x4b\x91\x4b\xd3\x0f\x20\xd0\x08\x20", -}; -static - struct _PyCode_DEF(44) -codecs_toplevel_consts_28_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & codecs_toplevel_consts_26_consts_9_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_28_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 717, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 326, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__next__), - .co_qualname = & codecs_toplevel_consts_28_consts_8_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_28_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -codecs_toplevel_consts_28_consts_9_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.__iter__", -}; -static - struct _PyCode_DEF(6) -codecs_toplevel_consts_28_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 3, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 722, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 327, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iter__), - .co_qualname = & codecs_toplevel_consts_28_consts_9_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_28_consts_10_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_writer._ascii.ob_base, - &_Py_ID(write), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -codecs_toplevel_consts_28_consts_10_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.write", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -codecs_toplevel_consts_28_consts_10_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0f\x13\x8f\x7b\x89\x7b\xd7\x0f\x20\xd1\x0f\x20\xa0\x14\xd3\x0f\x26\xd0\x08\x26", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_28_consts_10_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(data), - }, - }, -}; -static - struct _PyCode_DEF(56) -codecs_toplevel_consts_28_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_28_consts_10_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 725, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 328, - .co_localsplusnames = & codecs_toplevel_consts_28_consts_10_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(write), - .co_qualname = & codecs_toplevel_consts_28_consts_10_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_28_consts_10_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_28_consts_11_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_writer._ascii.ob_base, - & const_str_writelines._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[30]; - } -codecs_toplevel_consts_28_consts_11_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 29, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.writelines", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -codecs_toplevel_consts_28_consts_11_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0f\x13\x8f\x7b\x89\x7b\xd7\x0f\x25\xd1\x0f\x25\xa0\x64\xd3\x0f\x2b\xd0\x08\x2b", -}; -static - struct _PyCode_DEF(56) -codecs_toplevel_consts_28_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_28_consts_11_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 729, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 329, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_writelines._ascii.ob_base, - .co_qualname = & codecs_toplevel_consts_28_consts_11_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_28_consts_11_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_28_consts_12_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_reader._ascii.ob_base, - &_Py_ID(reset), - & const_str_writer._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -codecs_toplevel_consts_28_consts_12_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.reset", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[35]; - } -codecs_toplevel_consts_28_consts_12_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 34, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x08\x0c\x8f\x0b\x89\x0b\xd7\x08\x19\xd1\x08\x19\xd4\x08\x1b\xd8\x08\x0c\x8f\x0b\x89\x0b\xd7\x08\x19\xd1\x08\x19\xd5\x08\x1b", -}; -static - struct _PyCode_DEF(108) -codecs_toplevel_consts_28_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 54, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_28_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 733, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 330, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(reset), - .co_qualname = & codecs_toplevel_consts_28_consts_12_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_28_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -codecs_toplevel_consts_28_consts_13_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_stream._ascii.ob_base, - &_Py_ID(seek), - & const_str_reader._ascii.ob_base, - &_Py_ID(reset), - & const_str_writer._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -codecs_toplevel_consts_28_consts_13_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.seek", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[75]; - } -codecs_toplevel_consts_28_consts_13_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 74, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x08\x0c\x8f\x0b\x89\x0b\xd7\x08\x18\xd1\x08\x18\x98\x16\xa0\x16\xd4\x08\x28\xd8\x08\x0c\x8f\x0b\x89\x0b\xd7\x08\x19\xd1\x08\x19\xd4\x08\x1b\xd8\x0b\x11\x90\x51\x8a\x3b\x98\x36\xa0\x51\x9a\x3b\xd8\x0c\x10\x8f\x4b\x89\x4b\xd7\x0c\x1d\xd1\x0c\x1d\xd5\x0c\x1f\xf0\x03\x00\x1c\x27\x88\x3b", -}; -static - struct _PyCode_DEF(188) -codecs_toplevel_consts_28_consts_13 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 94, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_28_consts_13_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 738, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 331, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(seek), - .co_qualname = & codecs_toplevel_consts_28_consts_13_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_28_consts_13_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x02\x64\x01\x6b\x28\x00\x00\x72\x21\x7c\x01\x64\x01\x6b\x28\x00\x00\x72\x1b\x7c\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x79\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[31]; - } -codecs_toplevel_consts_28_consts_14_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 30, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.__getattr__", -}; -static - struct _PyCode_DEF(40) -codecs_toplevel_consts_28_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & codecs_toplevel_consts_24_consts_6_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 744, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 332, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__getattr__), - .co_qualname = & codecs_toplevel_consts_28_consts_14_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x02\x00\x7c\x02\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -codecs_toplevel_consts_28_consts_15_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.__enter__", -}; -static - struct _PyCode_DEF(6) -codecs_toplevel_consts_28_consts_15 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 3, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 753, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 333, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__enter__), - .co_qualname = & codecs_toplevel_consts_28_consts_15_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -codecs_toplevel_consts_28_consts_16_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.__exit__", -}; -static - struct _PyCode_DEF(56) -codecs_toplevel_consts_28_consts_16 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 756, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 334, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__exit__), - .co_qualname = & codecs_toplevel_consts_28_consts_16_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[33]; - } -codecs_toplevel_consts_28_consts_17_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 32, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamReaderWriter.__reduce_ex__", -}; -static - struct _PyCode_DEF(70) -codecs_toplevel_consts_28_consts_17 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 35, - }, - .co_consts = & codecs_toplevel_consts_24_consts_9_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 759, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 335, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_9_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__reduce_ex__), - .co_qualname = & codecs_toplevel_consts_28_consts_17_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_28_consts_19 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[22]; - }_object; - } -codecs_toplevel_consts_28_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 22, - }, - .ob_item = { - & const_str_StreamReaderWriter._ascii.ob_base, - & codecs_toplevel_consts_28_consts_1._ascii.ob_base, - & const_str_unknown._ascii.ob_base, - & codecs_toplevel_consts_28_consts_3.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_4.ob_base.ob_base, - Py_None, - & codecs_toplevel_consts_28_consts_6.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_7.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_8.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_9.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_10.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_11.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_12.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_13.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_14.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_15.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_16.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_17.ob_base.ob_base, - & codecs_toplevel_consts_14_consts_5._object.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_19._object.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - & codecs_toplevel_consts_24_consts_12._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[20]; - }_object; - } -codecs_toplevel_consts_28_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 20, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(encoding), - &_Py_ID(__init__), - &_Py_ID(read), - &_Py_ID(readline), - & const_str_readlines._ascii.ob_base, - &_Py_ID(__next__), - &_Py_ID(__iter__), - &_Py_ID(write), - & const_str_writelines._ascii.ob_base, - &_Py_ID(reset), - &_Py_ID(seek), - &_Py_ID(getattr), - &_Py_ID(__getattr__), - &_Py_ID(__enter__), - &_Py_ID(__exit__), - &_Py_ID(__reduce_ex__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[91]; - } -codecs_toplevel_consts_28_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 90, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x04\x07\x05\x08\xf0\x12\x00\x10\x19\x80\x48\xf3\x04\x10\x05\x1d\xf3\x24\x02\x05\x26\xf3\x08\x02\x05\x2a\xf3\x08\x02\x05\x2f\xf2\x08\x03\x05\x21\xf2\x0a\x01\x05\x14\xf2\x06\x02\x05\x27\xf2\x08\x02\x05\x2c\xf2\x08\x03\x05\x1c\xf3\x0a\x04\x05\x20\xf0\x0e\x00\x1d\x24\xf3\x03\x05\x05\x2a\xf2\x12\x01\x05\x14\xf2\x06\x01\x05\x1c\xf3\x06\x01\x05\x48\x01", -}; -static - struct _PyCode_DEF(118) -codecs_toplevel_consts_28 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 59, - }, - .co_consts = & codecs_toplevel_consts_28_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_28_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 674, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 336, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_StreamReaderWriter._ascii.ob_base, - .co_qualname = & const_str_StreamReaderWriter._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_28_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x64\x12\x64\x03\x84\x01\x5a\x05\x64\x13\x64\x04\x84\x01\x5a\x06\x64\x14\x64\x06\x84\x01\x5a\x07\x64\x14\x64\x07\x84\x01\x5a\x08\x64\x08\x84\x00\x5a\x09\x64\x09\x84\x00\x5a\x0a\x64\x0a\x84\x00\x5a\x0b\x64\x0b\x84\x00\x5a\x0c\x64\x0c\x84\x00\x5a\x0d\x64\x15\x64\x0d\x84\x01\x5a\x0e\x65\x0f\x66\x01\x64\x0e\x84\x01\x5a\x10\x64\x0f\x84\x00\x5a\x11\x64\x10\x84\x00\x5a\x12\x64\x11\x84\x00\x5a\x13\x79\x05", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[579]; - } -codecs_toplevel_consts_30_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 578, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x53\x74\x72\x65\x61\x6d\x52\x65\x63\x6f\x64\x65\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x73\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x20\x64\x61\x74\x61\x20\x66\x72\x6f\x6d\x20\x6f\x6e\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x74\x6f\x20\x61\x6e\x6f\x74\x68\x65\x72\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x79\x20\x75\x73\x65\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x6c\x65\x74\x65\x20\x73\x65\x74\x20\x6f\x66\x20\x41\x50\x49\x73\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x62\x79\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x64\x65\x63\x73\x2e\x6c\x6f\x6f\x6b\x75\x70\x28\x29\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x20\x74\x68\x65\x69\x72\x20\x74\x61\x73\x6b\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x44\x61\x74\x61\x20\x77\x72\x69\x74\x74\x65\x6e\x20\x74\x6f\x20\x74\x68\x65\x20\x53\x74\x72\x65\x61\x6d\x52\x65\x63\x6f\x64\x65\x72\x20\x69\x73\x20\x66\x69\x72\x73\x74\x20\x64\x65\x63\x6f\x64\x65\x64\x20\x69\x6e\x74\x6f\x20\x61\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x74\x65\x72\x6d\x65\x64\x69\x61\x74\x65\x20\x66\x6f\x72\x6d\x61\x74\x20\x28\x64\x65\x70\x65\x6e\x64\x69\x6e\x67\x20\x6f\x6e\x20\x74\x68\x65\x20\x22\x64\x65\x63\x6f\x64\x65\x22\x20\x63\x6f\x64\x65\x63\x29\x20\x61\x6e\x64\x20\x74\x68\x65\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x69\x74\x74\x65\x6e\x20\x74\x6f\x20\x74\x68\x65\x20\x75\x6e\x64\x65\x72\x6c\x79\x69\x6e\x67\x20\x73\x74\x72\x65\x61\x6d\x20\x75\x73\x69\x6e\x67\x20\x61\x6e\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x57\x72\x69\x74\x65\x72\x20\x63\x6c\x61\x73\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x49\x6e\x20\x74\x68\x65\x20\x6f\x74\x68\x65\x72\x20\x64\x69\x72\x65\x63\x74\x69\x6f\x6e\x2c\x20\x64\x61\x74\x61\x20\x69\x73\x20\x72\x65\x61\x64\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x75\x6e\x64\x65\x72\x6c\x79\x69\x6e\x67\x20\x73\x74\x72\x65\x61\x6d\x20\x75\x73\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x20\x52\x65\x61\x64\x65\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x61\x6e\x64\x20\x74\x68\x65\x6e\x20\x65\x6e\x63\x6f\x64\x65\x64\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x74\x6f\x20\x74\x68\x65\x20\x63\x61\x6c\x6c\x65\x72\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[746]; - } -codecs_toplevel_consts_30_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 745, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x43\x72\x65\x61\x74\x65\x73\x20\x61\x20\x53\x74\x72\x65\x61\x6d\x52\x65\x63\x6f\x64\x65\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x77\x68\x69\x63\x68\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x73\x20\x61\x20\x74\x77\x6f\x2d\x77\x61\x79\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x76\x65\x72\x73\x69\x6f\x6e\x3a\x20\x65\x6e\x63\x6f\x64\x65\x20\x61\x6e\x64\x20\x64\x65\x63\x6f\x64\x65\x20\x77\x6f\x72\x6b\x20\x6f\x6e\x20\x74\x68\x65\x20\x66\x72\x6f\x6e\x74\x65\x6e\x64\x20\x28\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x61\x74\x61\x20\x76\x69\x73\x69\x62\x6c\x65\x20\x74\x6f\x20\x2e\x72\x65\x61\x64\x28\x29\x20\x61\x6e\x64\x20\x2e\x77\x72\x69\x74\x65\x28\x29\x29\x20\x77\x68\x69\x6c\x65\x20\x52\x65\x61\x64\x65\x72\x20\x61\x6e\x64\x20\x57\x72\x69\x74\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x6f\x72\x6b\x20\x6f\x6e\x20\x74\x68\x65\x20\x62\x61\x63\x6b\x65\x6e\x64\x20\x28\x74\x68\x65\x20\x64\x61\x74\x61\x20\x69\x6e\x20\x73\x74\x72\x65\x61\x6d\x29\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x59\x6f\x75\x20\x63\x61\x6e\x20\x75\x73\x65\x20\x74\x68\x65\x73\x65\x20\x6f\x62\x6a\x65\x63\x74\x73\x20\x74\x6f\x20\x64\x6f\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x63\x6f\x64\x69\x6e\x67\x73\x20\x66\x72\x6f\x6d\x20\x65\x2e\x67\x2e\x20\x6c\x61\x74\x69\x6e\x2d\x31\x20\x74\x6f\x20\x75\x74\x66\x2d\x38\x20\x61\x6e\x64\x20\x62\x61\x63\x6b\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x65\x61\x6d\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x20\x66\x69\x6c\x65\x2d\x6c\x69\x6b\x65\x20\x6f\x62\x6a\x65\x63\x74\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x63\x6f\x64\x65\x20\x61\x6e\x64\x20\x64\x65\x63\x6f\x64\x65\x20\x6d\x75\x73\x74\x20\x61\x64\x68\x65\x72\x65\x20\x74\x6f\x20\x74\x68\x65\x20\x43\x6f\x64\x65\x63\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x3b\x20\x52\x65\x61\x64\x65\x72\x20\x61\x6e\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x72\x69\x74\x65\x72\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x66\x61\x63\x74\x6f\x72\x79\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x20\x6f\x72\x20\x63\x6c\x61\x73\x73\x65\x73\x20\x70\x72\x6f\x76\x69\x64\x69\x6e\x67\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x53\x74\x72\x65\x61\x6d\x52\x65\x61\x64\x65\x72\x20\x61\x6e\x64\x20\x53\x74\x72\x65\x61\x6d\x57\x72\x69\x74\x65\x72\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x73\x20\x72\x65\x73\x70\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x45\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x20\x69\x73\x20\x64\x6f\x6e\x65\x20\x69\x6e\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x77\x61\x79\x20\x61\x73\x20\x64\x65\x66\x69\x6e\x65\x64\x20\x66\x6f\x72\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x53\x74\x72\x65\x61\x6d\x57\x72\x69\x74\x65\x72\x2f\x52\x65\x61\x64\x65\x72\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_30_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_30_consts_3_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -codecs_toplevel_consts_30_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_stream._ascii.ob_base, - &_Py_ID(encode), - &_Py_ID(decode), - & const_str_reader._ascii.ob_base, - & const_str_writer._ascii.ob_base, - &_Py_ID(errors), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -codecs_toplevel_consts_30_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[61]; - } -codecs_toplevel_consts_30_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 60, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x2a\x00\x17\x1d\x88\x04\x8c\x0b\xd8\x16\x1c\x88\x04\x8c\x0b\xd8\x16\x1c\x88\x04\x8c\x0b\xd9\x16\x1c\x98\x56\xa0\x56\xd3\x16\x2c\x88\x04\x8c\x0b\xd9\x16\x1c\x98\x56\xa0\x56\xd3\x16\x2c\x88\x04\x8c\x0b\xd8\x16\x1c\x88\x04\x8d\x0b", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -codecs_toplevel_consts_30_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(self), - & const_str_stream._ascii.ob_base, - &_Py_ID(encode), - &_Py_ID(decode), - & const_str_Reader._ascii.ob_base, - & const_str_Writer._ascii.ob_base, - &_Py_ID(errors), - }, - }, -}; -static - struct _PyCode_DEF(116) -codecs_toplevel_consts_30_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 58, - }, - .co_consts = & codecs_toplevel_consts_30_consts_3_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_30_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 7, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 784, - .co_nlocalsplus = 7, - .co_nlocals = 7, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 337, - .co_localsplusnames = & codecs_toplevel_consts_30_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & codecs_toplevel_consts_30_consts_3_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_30_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x7c\x04\x7c\x01\x7c\x06\xab\x02\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x7c\x05\x7c\x01\x7c\x06\xab\x02\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x7c\x00\x5f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_30_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_reader._ascii.ob_base, - &_Py_ID(read), - &_Py_ID(encode), - &_Py_ID(errors), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -codecs_toplevel_consts_30_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.read", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[53]; - } -codecs_toplevel_consts_30_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 52, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0f\x13\x8f\x7b\x89\x7b\xd7\x0f\x1f\xd1\x0f\x1f\xa0\x04\xd3\x0f\x25\x88\x04\xd8\x1d\x21\x9f\x5b\x99\x5b\xa8\x14\xa8\x74\xaf\x7b\xa9\x7b\xd3\x1d\x3b\xd1\x08\x1a\x88\x04\x88\x6c\xd8\x0f\x13\x88\x0b", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_bytesencoded = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bytesencoded", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_30_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(size), - &_Py_ID(data), - & const_str_bytesencoded._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(122) -codecs_toplevel_consts_30_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 61, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_30_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 812, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 338, - .co_localsplusnames = & codecs_toplevel_consts_30_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(read), - .co_qualname = & codecs_toplevel_consts_30_consts_4_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_30_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x02\x7d\x03\x7c\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_30_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_reader._ascii.ob_base, - &_Py_ID(readline), - &_Py_ID(encode), - &_Py_ID(errors), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -codecs_toplevel_consts_30_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.readline", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[76]; - } -codecs_toplevel_consts_30_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 75, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0f\x88\x3c\xd8\x13\x17\x97\x3b\x91\x3b\xd7\x13\x27\xd1\x13\x27\xd3\x13\x29\x89\x44\xe0\x13\x17\x97\x3b\x91\x3b\xd7\x13\x27\xd1\x13\x27\xa8\x04\xd3\x13\x2d\x88\x44\xd8\x1d\x21\x9f\x5b\x99\x5b\xa8\x14\xa8\x74\xaf\x7b\xa9\x7b\xd3\x1d\x3b\xd1\x08\x1a\x88\x04\x88\x6c\xd8\x0f\x13\x88\x0b", -}; -static - struct _PyCode_DEF(180) -codecs_toplevel_consts_30_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 90, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_30_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 818, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 339, - .co_localsplusnames = & codecs_toplevel_consts_30_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(readline), - .co_qualname = & codecs_toplevel_consts_30_consts_6_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_30_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x80\x1b\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x6e\x1b\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x02\x7d\x03\x7c\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_30_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - Py_True, - & codecs_toplevel_consts_26_consts_3_consts_4._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -codecs_toplevel_consts_30_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_reader._ascii.ob_base, - &_Py_ID(read), - &_Py_ID(encode), - &_Py_ID(errors), - & const_str_splitlines._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -codecs_toplevel_consts_30_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.readlines", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[63]; - } -codecs_toplevel_consts_30_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 62, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0f\x13\x8f\x7b\x89\x7b\xd7\x0f\x1f\xd1\x0f\x1f\xd3\x0f\x21\x88\x04\xd8\x1d\x21\x9f\x5b\x99\x5b\xa8\x14\xa8\x74\xaf\x7b\xa9\x7b\xd3\x1d\x3b\xd1\x08\x1a\x88\x04\x88\x6c\xd8\x0f\x13\x8f\x7f\x89\x7f\xa8\x04\x88\x7f\xd3\x0f\x2d\xd0\x08\x2d", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_30_consts_7_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(sizehint), - &_Py_ID(data), - & const_str_bytesencoded._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(152) -codecs_toplevel_consts_30_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 76, - }, - .co_consts = & codecs_toplevel_consts_30_consts_7_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_30_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 827, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 340, - .co_localsplusnames = & codecs_toplevel_consts_30_consts_7_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_readlines._ascii.ob_base, - .co_qualname = & codecs_toplevel_consts_30_consts_7_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_30_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x02\x7d\x03\x7c\x02\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xac\x02\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_30_consts_8_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(next), - & const_str_reader._ascii.ob_base, - &_Py_ID(encode), - &_Py_ID(errors), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -codecs_toplevel_consts_30_consts_8_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.__next__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[49]; - } -codecs_toplevel_consts_30_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 48, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x10\x14\x90\x44\x97\x4b\x91\x4b\xd3\x0f\x20\x88\x04\xd8\x1d\x21\x9f\x5b\x99\x5b\xa8\x14\xa8\x74\xaf\x7b\xa9\x7b\xd3\x1d\x3b\xd1\x08\x1a\x88\x04\x88\x6c\xd8\x0f\x13\x88\x0b", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_30_consts_8_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(data), - & const_str_bytesencoded._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(110) -codecs_toplevel_consts_30_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 55, - }, - .co_consts = & codecs_toplevel_consts_26_consts_9_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_30_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 833, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 341, - .co_localsplusnames = & codecs_toplevel_consts_30_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__next__), - .co_qualname = & codecs_toplevel_consts_30_consts_8_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_30_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x01\x7d\x02\x7c\x01\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -codecs_toplevel_consts_30_consts_9_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.__iter__", -}; -static - struct _PyCode_DEF(6) -codecs_toplevel_consts_30_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 3, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 840, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 342, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iter__), - .co_qualname = & codecs_toplevel_consts_30_consts_9_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_30_consts_10_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(decode), - &_Py_ID(errors), - & const_str_writer._ascii.ob_base, - &_Py_ID(write), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -codecs_toplevel_consts_30_consts_10_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.write", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[49]; - } -codecs_toplevel_consts_30_consts_10_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 48, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x1d\x21\x9f\x5b\x99\x5b\xa8\x14\xa8\x74\xaf\x7b\xa9\x7b\xd3\x1d\x3b\xd1\x08\x1a\x88\x04\x88\x6c\xd8\x0f\x13\x8f\x7b\x89\x7b\xd7\x0f\x20\xd1\x0f\x20\xa0\x14\xd3\x0f\x26\xd0\x08\x26", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_bytesdecoded = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bytesdecoded", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_30_consts_10_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(data), - & const_str_bytesdecoded._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(118) -codecs_toplevel_consts_30_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 59, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_30_consts_10_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 843, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 343, - .co_localsplusnames = & codecs_toplevel_consts_30_consts_10_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(write), - .co_qualname = & codecs_toplevel_consts_30_consts_10_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_30_consts_10_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x01\x7d\x02\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -codecs_toplevel_consts_30_consts_11_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(join), - &_Py_ID(decode), - &_Py_ID(errors), - & const_str_writer._ascii.ob_base, - &_Py_ID(write), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -codecs_toplevel_consts_30_consts_11_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.writelines", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[62]; - } -codecs_toplevel_consts_30_consts_11_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 61, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0f\x12\x8f\x78\x89\x78\x98\x04\x8b\x7e\x88\x04\xd8\x1d\x21\x9f\x5b\x99\x5b\xa8\x14\xa8\x74\xaf\x7b\xa9\x7b\xd3\x1d\x3b\xd1\x08\x1a\x88\x04\x88\x6c\xd8\x0f\x13\x8f\x7b\x89\x7b\xd7\x0f\x20\xd1\x0f\x20\xa0\x14\xd3\x0f\x26\xd0\x08\x26", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_30_consts_11_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - & const_str_list._ascii.ob_base, - &_Py_ID(data), - & const_str_bytesdecoded._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(152) -codecs_toplevel_consts_30_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 76, - }, - .co_consts = & codecs_toplevel_consts_22_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_30_consts_11_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 848, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 344, - .co_localsplusnames = & codecs_toplevel_consts_30_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_writelines._ascii.ob_base, - .co_qualname = & codecs_toplevel_consts_30_consts_11_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_30_consts_11_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x02\x7d\x03\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -codecs_toplevel_consts_30_consts_12_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.reset", -}; -static - struct _PyCode_DEF(108) -codecs_toplevel_consts_30_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 54, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_28_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 854, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 345, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(reset), - .co_qualname = & codecs_toplevel_consts_30_consts_12_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_28_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_30_consts_13_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_reader._ascii.ob_base, - &_Py_ID(seek), - & const_str_writer._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -codecs_toplevel_consts_30_consts_13_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.seek", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[45]; - } -codecs_toplevel_consts_30_consts_13_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 44, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x06\x00\x09\x0d\x8f\x0b\x89\x0b\xd7\x08\x18\xd1\x08\x18\x98\x16\xa0\x16\xd4\x08\x28\xd8\x08\x0c\x8f\x0b\x89\x0b\xd7\x08\x18\xd1\x08\x18\x98\x16\xa0\x16\xd5\x08\x28", -}; -static - struct _PyCode_DEF(116) -codecs_toplevel_consts_30_consts_13 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 58, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_30_consts_13_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 859, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 346, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(seek), - .co_qualname = & codecs_toplevel_consts_30_consts_13_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_30_consts_13_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -codecs_toplevel_consts_30_consts_14_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.__getattr__", -}; -static - struct _PyCode_DEF(40) -codecs_toplevel_consts_30_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & codecs_toplevel_consts_24_consts_6_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 865, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 347, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__getattr__), - .co_qualname = & codecs_toplevel_consts_30_consts_14_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x02\x00\x7c\x02\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -codecs_toplevel_consts_30_consts_15_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.__enter__", -}; -static - struct _PyCode_DEF(6) -codecs_toplevel_consts_30_consts_15 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 3, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 872, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 348, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__enter__), - .co_qualname = & codecs_toplevel_consts_30_consts_15_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -codecs_toplevel_consts_30_consts_16_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.__exit__", -}; -static - struct _PyCode_DEF(56) -codecs_toplevel_consts_30_consts_16 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 875, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 349, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__exit__), - .co_qualname = & codecs_toplevel_consts_30_consts_16_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -codecs_toplevel_consts_30_consts_17_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StreamRecoder.__reduce_ex__", -}; -static - struct _PyCode_DEF(70) -codecs_toplevel_consts_30_consts_17 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 35, - }, - .co_consts = & codecs_toplevel_consts_24_consts_9_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_24_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 878, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 350, - .co_localsplusnames = & codecs_toplevel_consts_24_consts_9_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__reduce_ex__), - .co_qualname = & codecs_toplevel_consts_30_consts_17_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[22]; - }_object; - } -codecs_toplevel_consts_30_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 22, - }, - .ob_item = { - & const_str_StreamRecoder._ascii.ob_base, - & codecs_toplevel_consts_30_consts_1._ascii.ob_base, - & const_str_unknown._ascii.ob_base, - & codecs_toplevel_consts_30_consts_3.ob_base.ob_base, - & codecs_toplevel_consts_30_consts_4.ob_base.ob_base, - Py_None, - & codecs_toplevel_consts_30_consts_6.ob_base.ob_base, - & codecs_toplevel_consts_30_consts_7.ob_base.ob_base, - & codecs_toplevel_consts_30_consts_8.ob_base.ob_base, - & codecs_toplevel_consts_30_consts_9.ob_base.ob_base, - & codecs_toplevel_consts_30_consts_10.ob_base.ob_base, - & codecs_toplevel_consts_30_consts_11.ob_base.ob_base, - & codecs_toplevel_consts_30_consts_12.ob_base.ob_base, - & codecs_toplevel_consts_30_consts_13.ob_base.ob_base, - & codecs_toplevel_consts_30_consts_14.ob_base.ob_base, - & codecs_toplevel_consts_30_consts_15.ob_base.ob_base, - & codecs_toplevel_consts_30_consts_16.ob_base.ob_base, - & codecs_toplevel_consts_30_consts_17.ob_base.ob_base, - & codecs_toplevel_consts_14_consts_5._object.ob_base.ob_base, - & codecs_toplevel_consts_28_consts_19._object.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - & codecs_toplevel_consts_24_consts_12._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_data_encoding = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "data_encoding", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_file_encoding = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "file_encoding", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[21]; - }_object; - } -codecs_toplevel_consts_30_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 21, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - & const_str_data_encoding._ascii.ob_base, - & const_str_file_encoding._ascii.ob_base, - &_Py_ID(__init__), - &_Py_ID(read), - &_Py_ID(readline), - & const_str_readlines._ascii.ob_base, - &_Py_ID(__next__), - &_Py_ID(__iter__), - &_Py_ID(write), - & const_str_writelines._ascii.ob_base, - &_Py_ID(reset), - &_Py_ID(seek), - &_Py_ID(getattr), - &_Py_ID(__getattr__), - &_Py_ID(__enter__), - &_Py_ID(__exit__), - &_Py_ID(__reduce_ex__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[101]; - } -codecs_toplevel_consts_30_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 100, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x04\x0d\x05\x08\xf0\x1e\x00\x15\x1e\x80\x4d\xd8\x14\x1d\x80\x4d\xf0\x06\x00\x19\x21\xf3\x03\x1a\x05\x1d\xf3\x38\x04\x05\x14\xf3\x0c\x07\x05\x14\xf3\x12\x04\x05\x2e\xf2\x0c\x05\x05\x14\xf2\x0e\x01\x05\x14\xf2\x06\x03\x05\x27\xf2\x0a\x04\x05\x27\xf2\x0c\x03\x05\x1c\xf3\x0a\x04\x05\x29\xf0\x0e\x00\x1d\x24\xf3\x03\x05\x05\x2a\xf2\x0e\x01\x05\x14\xf2\x06\x01\x05\x1c\xf3\x06\x01\x05\x48\x01", -}; -static - struct _PyCode_DEF(124) -codecs_toplevel_consts_30 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 62, - }, - .co_consts = & codecs_toplevel_consts_30_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_30_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 764, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 351, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_StreamRecoder._ascii.ob_base, - .co_qualname = & const_str_StreamRecoder._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_30_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x64\x02\x5a\x05\x09\x00\x64\x12\x64\x03\x84\x01\x5a\x06\x64\x13\x64\x04\x84\x01\x5a\x07\x64\x14\x64\x06\x84\x01\x5a\x08\x64\x14\x64\x07\x84\x01\x5a\x09\x64\x08\x84\x00\x5a\x0a\x64\x09\x84\x00\x5a\x0b\x64\x0a\x84\x00\x5a\x0c\x64\x0b\x84\x00\x5a\x0d\x64\x0c\x84\x00\x5a\x0e\x64\x15\x64\x0d\x84\x01\x5a\x0f\x65\x10\x66\x01\x64\x0e\x84\x01\x5a\x11\x64\x0f\x84\x00\x5a\x12\x64\x10\x84\x00\x5a\x13\x64\x11\x84\x00\x5a\x14\x79\x05", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[1180]; - } -codecs_toplevel_consts_33_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 1179, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x4f\x70\x65\x6e\x20\x61\x6e\x20\x65\x6e\x63\x6f\x64\x65\x64\x20\x66\x69\x6c\x65\x20\x75\x73\x69\x6e\x67\x20\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x6d\x6f\x64\x65\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x20\x77\x72\x61\x70\x70\x65\x64\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x70\x72\x6f\x76\x69\x64\x69\x6e\x67\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x2f\x64\x65\x63\x6f\x64\x69\x6e\x67\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4e\x6f\x74\x65\x3a\x20\x54\x68\x65\x20\x77\x72\x61\x70\x70\x65\x64\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x77\x69\x6c\x6c\x20\x6f\x6e\x6c\x79\x20\x61\x63\x63\x65\x70\x74\x20\x74\x68\x65\x20\x6f\x62\x6a\x65\x63\x74\x20\x66\x6f\x72\x6d\x61\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x69\x6e\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x73\x2c\x20\x69\x2e\x65\x2e\x20\x55\x6e\x69\x63\x6f\x64\x65\x20\x6f\x62\x6a\x65\x63\x74\x73\x20\x66\x6f\x72\x20\x6d\x6f\x73\x74\x20\x62\x75\x69\x6c\x74\x69\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x64\x65\x63\x73\x2e\x20\x4f\x75\x74\x70\x75\x74\x20\x69\x73\x20\x61\x6c\x73\x6f\x20\x63\x6f\x64\x65\x63\x20\x64\x65\x70\x65\x6e\x64\x65\x6e\x74\x20\x61\x6e\x64\x20\x77\x69\x6c\x6c\x20\x75\x73\x75\x61\x6c\x6c\x79\x20\x62\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x55\x6e\x69\x63\x6f\x64\x65\x20\x61\x73\x20\x77\x65\x6c\x6c\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x49\x66\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x69\x73\x20\x6e\x6f\x74\x20\x4e\x6f\x6e\x65\x2c\x20\x74\x68\x65\x6e\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x64\x65\x72\x6c\x79\x69\x6e\x67\x20\x65\x6e\x63\x6f\x64\x65\x64\x20\x66\x69\x6c\x65\x73\x20\x61\x72\x65\x20\x61\x6c\x77\x61\x79\x73\x20\x6f\x70\x65\x6e\x65\x64\x20\x69\x6e\x20\x62\x69\x6e\x61\x72\x79\x20\x6d\x6f\x64\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x66\x69\x6c\x65\x20\x6d\x6f\x64\x65\x20\x69\x73\x20\x27\x72\x27\x2c\x20\x6d\x65\x61\x6e\x69\x6e\x67\x20\x74\x6f\x20\x6f\x70\x65\x6e\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x20\x69\x6e\x20\x72\x65\x61\x64\x20\x6d\x6f\x64\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x73\x70\x65\x63\x69\x66\x69\x65\x73\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x77\x68\x69\x63\x68\x20\x69\x73\x20\x74\x6f\x20\x62\x65\x20\x75\x73\x65\x64\x20\x66\x6f\x72\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x73\x20\x6d\x61\x79\x20\x62\x65\x20\x67\x69\x76\x65\x6e\x20\x74\x6f\x20\x64\x65\x66\x69\x6e\x65\x20\x74\x68\x65\x20\x65\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x2e\x20\x49\x74\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x20\x27\x73\x74\x72\x69\x63\x74\x27\x20\x77\x68\x69\x63\x68\x20\x63\x61\x75\x73\x65\x73\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x73\x20\x74\x6f\x20\x62\x65\x20\x72\x61\x69\x73\x65\x64\x20\x69\x6e\x20\x63\x61\x73\x65\x20\x61\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x65\x72\x72\x6f\x72\x20\x6f\x63\x63\x75\x72\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x75\x66\x66\x65\x72\x69\x6e\x67\x20\x68\x61\x73\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x6d\x65\x61\x6e\x69\x6e\x67\x20\x61\x73\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x62\x75\x69\x6c\x74\x69\x6e\x20\x6f\x70\x65\x6e\x28\x29\x20\x41\x50\x49\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x49\x74\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x20\x74\x6f\x20\x2d\x31\x20\x77\x68\x69\x63\x68\x20\x6d\x65\x61\x6e\x73\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x62\x75\x66\x66\x65\x72\x20\x73\x69\x7a\x65\x20\x77\x69\x6c\x6c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x20\x75\x73\x65\x64\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x77\x72\x61\x70\x70\x65\x64\x20\x66\x69\x6c\x65\x20\x6f\x62\x6a\x65\x63\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x61\x6e\x20\x65\x78\x74\x72\x61\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x2e\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x77\x68\x69\x63\x68\x20\x61\x6c\x6c\x6f\x77\x73\x20\x71\x75\x65\x72\x79\x69\x6e\x67\x20\x74\x68\x65\x20\x75\x73\x65\x64\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x2e\x20\x54\x68\x69\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x20\x69\x73\x20\x6f\x6e\x6c\x79\x20\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\x20\x69\x66\x20\x61\x6e\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x77\x61\x73\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x61\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_33_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_33_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[98], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -codecs_toplevel_consts_33_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(builtins), - &_Py_ID(open), - & const_str_lookup._ascii.ob_base, - & const_str_StreamReaderWriter._ascii.ob_base, - & const_str_streamreader._ascii.ob_base, - & const_str_streamwriter._ascii.ob_base, - &_Py_ID(encoding), - &_Py_ID(close), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[130]; - } -codecs_toplevel_consts_33_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 129, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x3e\x00\x08\x10\xd0\x07\x1b\xd8\x07\x0a\x90\x24\x81\x7f\xe0\x0f\x13\x90\x63\x89\x7a\x88\x04\xdc\x0b\x13\x8f\x3d\x89\x3d\x98\x18\xa0\x34\xa8\x19\xd3\x0b\x33\x80\x44\xd8\x07\x0f\xd0\x07\x17\xd8\x0f\x13\x88\x0b\xf0\x04\x08\x05\x0e\xdc\x0f\x15\x90\x68\xd3\x0f\x1f\x88\x04\xdc\x0e\x20\xa0\x14\xa0\x74\xd7\x27\x38\xd1\x27\x38\xb8\x24\xd7\x3a\x4b\xd1\x3a\x4b\xc8\x56\xd3\x0e\x54\x88\x03\xe0\x17\x1f\x88\x03\x8c\x0c\xd8\x0f\x12\x88\x0a\xf8\xf0\x02\x02\x05\x0e\xd8\x08\x0c\x8f\x0a\x89\x0a\x8c\x0c\xd8\x08\x0d\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[12]; - } -codecs_toplevel_consts_33_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 11, - }, - .ob_shash = -1, - .ob_sval = "\xa8\x35\x41\x1e\x00\xc1\x1e\x13\x41\x31\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_srw = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "srw", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -codecs_toplevel_consts_33_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(filename), - &_Py_ID(mode), - &_Py_ID(encoding), - &_Py_ID(errors), - &_Py_ID(buffering), - &_Py_ID(file), - & const_str_info._ascii.ob_base, - & const_str_srw._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(232) -codecs_toplevel_consts_33 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 116, - }, - .co_consts = & codecs_toplevel_consts_33_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_33_names._object.ob_base.ob_base, - .co_exceptiontable = & codecs_toplevel_consts_33_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 5, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 14 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 883, - .co_nlocalsplus = 8, - .co_nlocals = 8, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 352, - .co_localsplusnames = & codecs_toplevel_consts_33_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_13_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(open), - .co_qualname = &_Py_ID(open), - .co_linetable = & codecs_toplevel_consts_33_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x02\x81\x09\x64\x01\x7c\x01\x76\x01\x72\x05\x7c\x01\x64\x01\x7a\x00\x00\x00\x7d\x01\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x04\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x05\x7c\x02\x80\x02\x7c\x05\x53\x00\x09\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x7c\x06\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x04\x00\x00\x00\x00\x00\x00\x7d\x07\x7c\x02\x7c\x07\x5f\x06\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\x53\x00\x23\x00\x01\x00\x7c\x05\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x82\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[987]; - } -codecs_toplevel_consts_34_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 986, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x52\x65\x74\x75\x72\x6e\x20\x61\x20\x77\x72\x61\x70\x70\x65\x64\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x66\x69\x6c\x65\x20\x77\x68\x69\x63\x68\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x44\x61\x74\x61\x20\x77\x72\x69\x74\x74\x65\x6e\x20\x74\x6f\x20\x74\x68\x65\x20\x77\x72\x61\x70\x70\x65\x64\x20\x66\x69\x6c\x65\x20\x69\x73\x20\x64\x65\x63\x6f\x64\x65\x64\x20\x61\x63\x63\x6f\x72\x64\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x20\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x64\x61\x74\x61\x5f\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x74\x68\x65\x6e\x20\x65\x6e\x63\x6f\x64\x65\x64\x20\x74\x6f\x20\x74\x68\x65\x20\x75\x6e\x64\x65\x72\x6c\x79\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x65\x20\x75\x73\x69\x6e\x67\x20\x66\x69\x6c\x65\x5f\x65\x6e\x63\x6f\x64\x69\x6e\x67\x2e\x20\x54\x68\x65\x20\x69\x6e\x74\x65\x72\x6d\x65\x64\x69\x61\x74\x65\x20\x64\x61\x74\x61\x20\x74\x79\x70\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6c\x6c\x20\x75\x73\x75\x61\x6c\x6c\x79\x20\x62\x65\x20\x55\x6e\x69\x63\x6f\x64\x65\x20\x62\x75\x74\x20\x64\x65\x70\x65\x6e\x64\x73\x20\x6f\x6e\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x63\x6f\x64\x65\x63\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x42\x79\x74\x65\x73\x20\x72\x65\x61\x64\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x20\x61\x72\x65\x20\x64\x65\x63\x6f\x64\x65\x64\x20\x75\x73\x69\x6e\x67\x20\x66\x69\x6c\x65\x5f\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x74\x68\x65\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x73\x73\x65\x64\x20\x62\x61\x63\x6b\x20\x74\x6f\x20\x74\x68\x65\x20\x63\x61\x6c\x6c\x65\x72\x20\x65\x6e\x63\x6f\x64\x65\x64\x20\x75\x73\x69\x6e\x67\x20\x64\x61\x74\x61\x5f\x65\x6e\x63\x6f\x64\x69\x6e\x67\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x49\x66\x20\x66\x69\x6c\x65\x5f\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x69\x73\x20\x6e\x6f\x74\x20\x67\x69\x76\x65\x6e\x2c\x20\x69\x74\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x20\x74\x6f\x20\x64\x61\x74\x61\x5f\x65\x6e\x63\x6f\x64\x69\x6e\x67\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x73\x20\x6d\x61\x79\x20\x62\x65\x20\x67\x69\x76\x65\x6e\x20\x74\x6f\x20\x64\x65\x66\x69\x6e\x65\x20\x74\x68\x65\x20\x65\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x2e\x20\x49\x74\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x20\x27\x73\x74\x72\x69\x63\x74\x27\x20\x77\x68\x69\x63\x68\x20\x63\x61\x75\x73\x65\x73\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x73\x20\x74\x6f\x20\x62\x65\x20\x72\x61\x69\x73\x65\x64\x20\x69\x6e\x20\x63\x61\x73\x65\x20\x61\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x65\x72\x72\x6f\x72\x20\x6f\x63\x63\x75\x72\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x77\x72\x61\x70\x70\x65\x64\x20\x66\x69\x6c\x65\x20\x6f\x62\x6a\x65\x63\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x74\x77\x6f\x20\x65\x78\x74\x72\x61\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x2e\x64\x61\x74\x61\x5f\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x2e\x66\x69\x6c\x65\x5f\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x77\x68\x69\x63\x68\x20\x72\x65\x66\x6c\x65\x63\x74\x20\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x6e\x61\x6d\x65\x2e\x20\x54\x68\x65\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x20\x63\x61\x6e\x20\x62\x65\x20\x75\x73\x65\x64\x20\x66\x6f\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x74\x72\x6f\x73\x70\x65\x63\x74\x69\x6f\x6e\x20\x62\x79\x20\x50\x79\x74\x68\x6f\x6e\x20\x70\x72\x6f\x67\x72\x61\x6d\x73\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_34_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_34_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -codecs_toplevel_consts_34_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_lookup._ascii.ob_base, - & const_str_StreamRecoder._ascii.ob_base, - &_Py_ID(encode), - &_Py_ID(decode), - & const_str_streamreader._ascii.ob_base, - & const_str_streamwriter._ascii.ob_base, - & const_str_data_encoding._ascii.ob_base, - & const_str_file_encoding._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[107]; - } -codecs_toplevel_consts_34_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 106, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x32\x00\x08\x15\xd0\x07\x1c\xd8\x18\x25\x88\x0d\xdc\x10\x16\x90\x7d\xd3\x10\x25\x80\x49\xdc\x10\x16\x90\x7d\xd3\x10\x25\x80\x49\xdc\x09\x16\x90\x74\x98\x59\xd7\x1d\x2d\xd1\x1d\x2d\xa8\x79\xd7\x2f\x3f\xd1\x2f\x3f\xd8\x17\x20\xd7\x17\x2d\xd1\x17\x2d\xa8\x79\xd7\x2f\x45\xd1\x2f\x45\xc0\x76\xf3\x03\x01\x0a\x4f\x01\x80\x42\xf0\x06\x00\x18\x25\x80\x42\xd4\x04\x14\xd8\x17\x24\x80\x42\xd4\x04\x14\xd8\x0b\x0d\x80\x49", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_data_info = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "data_info", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_file_info = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "file_info", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_sr = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "sr", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -codecs_toplevel_consts_34_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(file), - & const_str_data_encoding._ascii.ob_base, - & const_str_file_encoding._ascii.ob_base, - &_Py_ID(errors), - & const_str_data_info._ascii.ob_base, - & const_str_file_info._ascii.ob_base, - & const_str_sr._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(198) -codecs_toplevel_consts_34 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 99, - }, - .co_consts = & codecs_toplevel_consts_34_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_34_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 15 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 932, - .co_nlocalsplus = 7, - .co_nlocals = 7, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 353, - .co_localsplusnames = & codecs_toplevel_consts_34_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_EncodedFile._ascii.ob_base, - .co_qualname = & const_str_EncodedFile._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_34_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x02\x80\x02\x7c\x01\x7d\x02\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x04\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x04\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x06\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x01\x7c\x06\x5f\x06\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x06\x5f\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[159]; - } -codecs_toplevel_consts_35_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 158, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x4c\x6f\x6f\x6b\x75\x70\x20\x75\x70\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x73\x20\x65\x6e\x63\x6f\x64\x65\x72\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x61\x69\x73\x65\x73\x20\x61\x20\x4c\x6f\x6f\x6b\x75\x70\x45\x72\x72\x6f\x72\x20\x69\x6e\x20\x63\x61\x73\x65\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x66\x6f\x75\x6e\x64\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_35_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_35_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_35_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_lookup._ascii.ob_base, - &_Py_ID(encode), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[22]; - } -codecs_toplevel_consts_35_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 21, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x10\x00\x0c\x12\x90\x28\xd3\x0b\x1b\xd7\x0b\x22\xd1\x0b\x22\xd0\x04\x22", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_35_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(encoding), - }, - }, -}; -static - struct _PyCode_DEF(44) -codecs_toplevel_consts_35 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & codecs_toplevel_consts_35_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_35_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 970, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 354, - .co_localsplusnames = & codecs_toplevel_consts_35_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_getencoder._ascii.ob_base, - .co_qualname = & const_str_getencoder._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_35_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[159]; - } -codecs_toplevel_consts_36_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 158, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x4c\x6f\x6f\x6b\x75\x70\x20\x75\x70\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x73\x20\x64\x65\x63\x6f\x64\x65\x72\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x61\x69\x73\x65\x73\x20\x61\x20\x4c\x6f\x6f\x6b\x75\x70\x45\x72\x72\x6f\x72\x20\x69\x6e\x20\x63\x61\x73\x65\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x66\x6f\x75\x6e\x64\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_36_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_36_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_36_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_lookup._ascii.ob_base, - &_Py_ID(decode), - }, - }, -}; -static - struct _PyCode_DEF(44) -codecs_toplevel_consts_36 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & codecs_toplevel_consts_36_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_36_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 980, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 355, - .co_localsplusnames = & codecs_toplevel_consts_35_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_getdecoder._ascii.ob_base, - .co_qualname = & const_str_getdecoder._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_35_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[248]; - } -codecs_toplevel_consts_37_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 247, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x4c\x6f\x6f\x6b\x75\x70\x20\x75\x70\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x73\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x45\x6e\x63\x6f\x64\x65\x72\x20\x63\x6c\x61\x73\x73\x20\x6f\x72\x20\x66\x61\x63\x74\x6f\x72\x79\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x61\x69\x73\x65\x73\x20\x61\x20\x4c\x6f\x6f\x6b\x75\x70\x45\x72\x72\x6f\x72\x20\x69\x6e\x20\x63\x61\x73\x65\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x66\x6f\x75\x6e\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x73\x20\x64\x6f\x65\x73\x6e\x27\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x20\x61\x6e\x20\x69\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x20\x65\x6e\x63\x6f\x64\x65\x72\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_37_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_37_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_LookupError = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LookupError", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_37_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_lookup._ascii.ob_base, - & const_str_incrementalencoder._ascii.ob_base, - & const_str_LookupError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[42]; - } -codecs_toplevel_consts_37_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 41, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x12\x00\x0f\x15\x90\x58\xd3\x0e\x1e\xd7\x0e\x31\xd1\x0e\x31\x80\x47\xd8\x07\x0e\x80\x7f\xdc\x0e\x19\x98\x28\xd3\x0e\x23\xd0\x08\x23\xd8\x0b\x12\x80\x4e", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_encoder = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "encoder", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_37_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(encoding), - & const_str_encoder._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(74) -codecs_toplevel_consts_37 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 37, - }, - .co_consts = & codecs_toplevel_consts_37_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_37_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 990, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 356, - .co_localsplusnames = & codecs_toplevel_consts_37_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_getincrementalencoder._ascii.ob_base, - .co_qualname = & const_str_getincrementalencoder._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_37_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x80\x0b\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x01\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[248]; - } -codecs_toplevel_consts_38_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 247, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x4c\x6f\x6f\x6b\x75\x70\x20\x75\x70\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x73\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x44\x65\x63\x6f\x64\x65\x72\x20\x63\x6c\x61\x73\x73\x20\x6f\x72\x20\x66\x61\x63\x74\x6f\x72\x79\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x61\x69\x73\x65\x73\x20\x61\x20\x4c\x6f\x6f\x6b\x75\x70\x45\x72\x72\x6f\x72\x20\x69\x6e\x20\x63\x61\x73\x65\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x66\x6f\x75\x6e\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x73\x20\x64\x6f\x65\x73\x6e\x27\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x20\x61\x6e\x20\x69\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x20\x64\x65\x63\x6f\x64\x65\x72\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_38_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_38_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -codecs_toplevel_consts_38_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_lookup._ascii.ob_base, - & const_str_incrementaldecoder._ascii.ob_base, - & const_str_LookupError._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_38_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(encoding), - &_Py_ID(decoder), - }, - }, -}; -static - struct _PyCode_DEF(74) -codecs_toplevel_consts_38 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 37, - }, - .co_consts = & codecs_toplevel_consts_38_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_38_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 1004, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 357, - .co_localsplusnames = & codecs_toplevel_consts_38_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_getincrementaldecoder._ascii.ob_base, - .co_qualname = & const_str_getincrementaldecoder._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_37_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x80\x0b\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x01\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[181]; - } -codecs_toplevel_consts_39_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 180, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x4c\x6f\x6f\x6b\x75\x70\x20\x75\x70\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x73\x20\x53\x74\x72\x65\x61\x6d\x52\x65\x61\x64\x65\x72\x20\x63\x6c\x61\x73\x73\x20\x6f\x72\x20\x66\x61\x63\x74\x6f\x72\x79\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x61\x69\x73\x65\x73\x20\x61\x20\x4c\x6f\x6f\x6b\x75\x70\x45\x72\x72\x6f\x72\x20\x69\x6e\x20\x63\x61\x73\x65\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x66\x6f\x75\x6e\x64\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_39_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_39_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_39_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_lookup._ascii.ob_base, - & const_str_streamreader._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[22]; - } -codecs_toplevel_consts_39_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 21, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x10\x00\x0c\x12\x90\x28\xd3\x0b\x1b\xd7\x0b\x28\xd1\x0b\x28\xd0\x04\x28", -}; -static - struct _PyCode_DEF(44) -codecs_toplevel_consts_39 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & codecs_toplevel_consts_39_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_39_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 1018, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 358, - .co_localsplusnames = & codecs_toplevel_consts_35_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_getreader._ascii.ob_base, - .co_qualname = & const_str_getreader._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_39_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[181]; - } -codecs_toplevel_consts_40_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 180, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x4c\x6f\x6f\x6b\x75\x70\x20\x75\x70\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x63\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x67\x69\x76\x65\x6e\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x73\x20\x53\x74\x72\x65\x61\x6d\x57\x72\x69\x74\x65\x72\x20\x63\x6c\x61\x73\x73\x20\x6f\x72\x20\x66\x61\x63\x74\x6f\x72\x79\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x61\x69\x73\x65\x73\x20\x61\x20\x4c\x6f\x6f\x6b\x75\x70\x45\x72\x72\x6f\x72\x20\x69\x6e\x20\x63\x61\x73\x65\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x66\x6f\x75\x6e\x64\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_40_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_40_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_40_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_lookup._ascii.ob_base, - & const_str_streamwriter._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(44) -codecs_toplevel_consts_40 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & codecs_toplevel_consts_40_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_40_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 1028, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 359, - .co_localsplusnames = & codecs_toplevel_consts_35_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_getwriter._ascii.ob_base, - .co_qualname = & const_str_getwriter._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_39_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[192]; - } -codecs_toplevel_consts_41_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 191, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x45\x6e\x63\x6f\x64\x69\x6e\x67\x20\x69\x74\x65\x72\x61\x74\x6f\x72\x2e\x0a\x0a\x20\x20\x20\x20\x45\x6e\x63\x6f\x64\x65\x73\x20\x74\x68\x65\x20\x69\x6e\x70\x75\x74\x20\x73\x74\x72\x69\x6e\x67\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x69\x74\x65\x72\x61\x74\x6f\x72\x20\x75\x73\x69\x6e\x67\x20\x61\x6e\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x45\x6e\x63\x6f\x64\x65\x72\x2e\x0a\x0a\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x73\x20\x61\x6e\x64\x20\x6b\x77\x61\x72\x67\x73\x20\x61\x72\x65\x20\x70\x61\x73\x73\x65\x64\x20\x74\x68\x72\x6f\x75\x67\x68\x20\x74\x6f\x20\x74\x68\x65\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x45\x6e\x63\x6f\x64\x65\x72\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_41_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & codecs_toplevel_consts_41_consts_0._ascii.ob_base, - &_Py_STR(empty), - Py_True, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_41_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_getincrementalencoder._ascii.ob_base, - &_Py_ID(encode), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[95]; - } -codecs_toplevel_consts_41_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 94, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xf0\x12\x00\x0f\x2e\xd4\x0e\x23\xa0\x48\xd3\x0e\x2d\xa8\x66\xd1\x0e\x3f\xb8\x06\xd1\x0e\x3f\x80\x47\xdb\x11\x19\x88\x05\xd8\x11\x18\x97\x1e\x91\x1e\xa0\x05\xd3\x11\x26\x88\x06\xda\x0b\x11\xd8\x12\x18\x8b\x4c\xf0\x07\x00\x12\x1a\xf0\x08\x00\x0e\x15\x8f\x5e\x89\x5e\x98\x42\xa0\x04\xd3\x0d\x25\x80\x46\xd9\x07\x0d\xd8\x0e\x14\x8b\x0c\xf0\x03\x00\x08\x0e\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[11]; - } -codecs_toplevel_consts_41_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 10, - }, - .ob_shash = -1, - .ob_sval = "\x82\x2b\x41\x0e\x01\xae\x20\x41\x0e\x01", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_iterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "iterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_output = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "output", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -codecs_toplevel_consts_41_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_iterator._ascii.ob_base, - &_Py_ID(encoding), - &_Py_ID(errors), - & const_str_kwargs._ascii.ob_base, - & const_str_encoder._ascii.ob_base, - &_Py_ID(input), - & const_str_output._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(160) -codecs_toplevel_consts_41 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 80, - }, - .co_consts = & codecs_toplevel_consts_41_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_41_names._object.ob_base.ob_base, - .co_exceptiontable = & codecs_toplevel_consts_41_exceptiontable.ob_base.ob_base, - .co_flags = 43, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1038, - .co_nlocalsplus = 7, - .co_nlocals = 7, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 360, - .co_localsplusnames = & codecs_toplevel_consts_41_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_iterencode._ascii.ob_base, - .co_qualname = & const_str_iterencode._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_41_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x02\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x02\x66\x01\x69\x00\x7c\x03\xa4\x01\x8e\x01\x7d\x04\x7c\x00\x44\x00\x5d\x1a\x00\x00\x7d\x05\x7c\x04\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x06\x73\x01\x8c\x17\x7c\x06\x96\x01\x97\x01\x01\x00\x8c\x1c\x04\x00\x7c\x04\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x06\x72\x05\x7c\x06\x96\x01\x97\x01\x01\x00\x79\x03\x79\x03\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[192]; - } -codecs_toplevel_consts_42_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 191, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x20\x20\x20\x20\x44\x65\x63\x6f\x64\x69\x6e\x67\x20\x69\x74\x65\x72\x61\x74\x6f\x72\x2e\x0a\x0a\x20\x20\x20\x20\x44\x65\x63\x6f\x64\x65\x73\x20\x74\x68\x65\x20\x69\x6e\x70\x75\x74\x20\x73\x74\x72\x69\x6e\x67\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x69\x74\x65\x72\x61\x74\x6f\x72\x20\x75\x73\x69\x6e\x67\x20\x61\x6e\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x44\x65\x63\x6f\x64\x65\x72\x2e\x0a\x0a\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x73\x20\x61\x6e\x64\x20\x6b\x77\x61\x72\x67\x73\x20\x61\x72\x65\x20\x70\x61\x73\x73\x65\x64\x20\x74\x68\x72\x6f\x75\x67\x68\x20\x74\x6f\x20\x74\x68\x65\x20\x49\x6e\x63\x72\x65\x6d\x65\x6e\x74\x61\x6c\x44\x65\x63\x6f\x64\x65\x72\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_42_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & codecs_toplevel_consts_42_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_empty), - Py_True, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_42_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_getincrementaldecoder._ascii.ob_base, - &_Py_ID(decode), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[95]; - } -codecs_toplevel_consts_42_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 94, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xf0\x12\x00\x0f\x2e\xd4\x0e\x23\xa0\x48\xd3\x0e\x2d\xa8\x66\xd1\x0e\x3f\xb8\x06\xd1\x0e\x3f\x80\x47\xdb\x11\x19\x88\x05\xd8\x11\x18\x97\x1e\x91\x1e\xa0\x05\xd3\x11\x26\x88\x06\xda\x0b\x11\xd8\x12\x18\x8b\x4c\xf0\x07\x00\x12\x1a\xf0\x08\x00\x0e\x15\x8f\x5e\x89\x5e\x98\x43\xa0\x14\xd3\x0d\x26\x80\x46\xd9\x07\x0d\xd8\x0e\x14\x8b\x0c\xf0\x03\x00\x08\x0e\xf9", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -codecs_toplevel_consts_42_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_iterator._ascii.ob_base, - &_Py_ID(encoding), - &_Py_ID(errors), - & const_str_kwargs._ascii.ob_base, - &_Py_ID(decoder), - &_Py_ID(input), - & const_str_output._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(160) -codecs_toplevel_consts_42 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 80, - }, - .co_consts = & codecs_toplevel_consts_42_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_42_names._object.ob_base.ob_base, - .co_exceptiontable = & codecs_toplevel_consts_41_exceptiontable.ob_base.ob_base, - .co_flags = 43, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1056, - .co_nlocalsplus = 7, - .co_nlocals = 7, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 361, - .co_localsplusnames = & codecs_toplevel_consts_42_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_iterdecode._ascii.ob_base, - .co_qualname = & const_str_iterdecode._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_42_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x02\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x02\x66\x01\x69\x00\x7c\x03\xa4\x01\x8e\x01\x7d\x04\x7c\x00\x44\x00\x5d\x1a\x00\x00\x7d\x05\x7c\x04\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x06\x73\x01\x8c\x17\x7c\x06\x96\x01\x97\x01\x01\x00\x8c\x1c\x04\x00\x7c\x04\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x06\x72\x05\x7c\x06\x96\x01\x97\x01\x01\x00\x79\x03\x79\x03\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[137]; - } -codecs_toplevel_consts_43_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 136, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x6d\x61\x6b\x65\x5f\x69\x64\x65\x6e\x74\x69\x74\x79\x5f\x64\x69\x63\x74\x28\x72\x6e\x67\x29\x20\x2d\x3e\x20\x64\x69\x63\x74\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x20\x61\x20\x64\x69\x63\x74\x69\x6f\x6e\x61\x72\x79\x20\x77\x68\x65\x72\x65\x20\x65\x6c\x65\x6d\x65\x6e\x74\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x72\x6e\x67\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x61\x72\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x70\x65\x64\x20\x74\x6f\x20\x74\x68\x65\x6d\x73\x65\x6c\x76\x65\x73\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_43_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & codecs_toplevel_consts_43_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_make_identity_dict = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "make_identity_dict", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[33]; - } -codecs_toplevel_consts_43_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 32, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf1\x10\x00\x1a\x1d\xd3\x0b\x1d\x99\x13\x90\x41\x88\x41\x88\x61\x89\x43\x98\x13\xd1\x0b\x1d\xd0\x04\x1d\xf9\xd2\x0b\x1d", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -codecs_toplevel_consts_43_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x85\x0a\x12\x04", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_rng = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "rng", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_43_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_rng._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - }, - }, -}; -static - struct _PyCode_DEF(46) -codecs_toplevel_consts_43 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & codecs_toplevel_consts_43_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = & codecs_toplevel_consts_43_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1076, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 362, - .co_localsplusnames = & codecs_toplevel_consts_43_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_make_identity_dict._ascii.ob_base, - .co_qualname = & const_str_make_identity_dict._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_43_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x44\x00\x8f\x01\x63\x02\x69\x00\x63\x02\x5d\x05\x00\x00\x7d\x01\x7c\x01\x7c\x01\x93\x02\x8c\x07\x04\x00\x63\x02\x7d\x01\x53\x00\x63\x02\x01\x00\x63\x02\x7d\x01\x77\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[387]; - } -codecs_toplevel_consts_44_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 386, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x43\x72\x65\x61\x74\x65\x73\x20\x61\x6e\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x6d\x61\x70\x20\x66\x72\x6f\x6d\x20\x61\x20\x64\x65\x63\x6f\x64\x69\x6e\x67\x20\x6d\x61\x70\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x49\x66\x20\x61\x20\x74\x61\x72\x67\x65\x74\x20\x6d\x61\x70\x70\x69\x6e\x67\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x65\x63\x6f\x64\x69\x6e\x67\x20\x6d\x61\x70\x20\x6f\x63\x63\x75\x72\x73\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x6d\x65\x73\x2c\x20\x74\x68\x65\x6e\x20\x74\x68\x61\x74\x20\x74\x61\x72\x67\x65\x74\x20\x69\x73\x20\x6d\x61\x70\x70\x65\x64\x20\x74\x6f\x20\x4e\x6f\x6e\x65\x20\x28\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x20\x6d\x61\x70\x70\x69\x6e\x67\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x75\x73\x69\x6e\x67\x20\x61\x6e\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x20\x77\x68\x65\x6e\x20\x65\x6e\x63\x6f\x75\x6e\x74\x65\x72\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x63\x68\x61\x72\x6d\x61\x70\x20\x63\x6f\x64\x65\x63\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x75\x72\x69\x6e\x67\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x6e\x65\x20\x65\x78\x61\x6d\x70\x6c\x65\x20\x77\x68\x65\x72\x65\x20\x74\x68\x69\x73\x20\x68\x61\x70\x70\x65\x6e\x73\x20\x69\x73\x20\x63\x70\x38\x37\x35\x2e\x70\x79\x20\x77\x68\x69\x63\x68\x20\x64\x65\x63\x6f\x64\x65\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x20\x74\x6f\x20\x5c\x75\x30\x30\x31\x61\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_44_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & codecs_toplevel_consts_44_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -codecs_toplevel_consts_44_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(items), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str_make_encoding_map = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "make_encoding_map", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[65]; - } -codecs_toplevel_consts_44_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 64, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x1a\x00\x09\x0b\x80\x41\xd8\x0f\x1b\xd7\x0f\x21\xd1\x0f\x21\xd6\x0f\x23\x89\x03\x88\x01\x88\x21\xd8\x0f\x10\x90\x41\x89\x76\xd8\x13\x14\x88\x41\x88\x61\x8a\x44\xe0\x13\x17\x88\x41\x88\x61\x8a\x44\xf0\x09\x00\x10\x24\xf0\x0a\x00\x0c\x0d\x80\x48", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_decoding_map = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "decoding_map", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_44_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_decoding_map._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[109], - (PyObject *)&_Py_SINGLETON(strings).ascii[107], - (PyObject *)&_Py_SINGLETON(strings).ascii[118], - }, - }, -}; -static - struct _PyCode_DEF(88) -codecs_toplevel_consts_44 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 44, - }, - .co_consts = & codecs_toplevel_consts_44_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_44_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 1086, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 363, - .co_localsplusnames = & codecs_toplevel_consts_44_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = & const_str_make_encoding_map._ascii.ob_base, - .co_qualname = & const_str_make_encoding_map._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_44_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x69\x00\x7d\x01\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x14\x00\x00\x5c\x02\x00\x00\x7d\x02\x7d\x03\x7c\x03\x7c\x01\x76\x01\x72\x06\x7c\x02\x7c\x01\x7c\x03\x3c\x00\x00\x00\x8c\x10\x64\x01\x7c\x01\x7c\x03\x3c\x00\x00\x00\x8c\x16\x04\x00\x7c\x01\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str_xmlcharrefreplace = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "xmlcharrefreplace", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str_backslashreplace = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "backslashreplace", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_namereplace = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "namereplace", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -codecs_toplevel_consts_50 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[114], - Py_None, - &_Py_ID(strict), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -codecs_toplevel_consts_51 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - &_Py_ID(strict), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[53]; - }_object; - } -codecs_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 53, - }, - .ob_item = { - & codecs_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & codecs_toplevel_consts_3._object.ob_base.ob_base, - & codecs_toplevel_consts_4._ascii.ob_base, - & codecs_toplevel_consts_5._object.ob_base.ob_base, - & codecs_toplevel_consts_6.ob_base.ob_base, - & codecs_toplevel_consts_7.ob_base.ob_base, - & codecs_toplevel_consts_8.ob_base.ob_base, - & codecs_toplevel_consts_9.ob_base.ob_base, - & codecs_toplevel_consts_10.ob_base.ob_base, - &_Py_ID(little), - & codecs_toplevel_consts_12.ob_base.ob_base, - & const_str_CodecInfo._ascii.ob_base, - & codecs_toplevel_consts_14.ob_base.ob_base, - & const_str_Codec._ascii.ob_base, - & codecs_toplevel_consts_16.ob_base.ob_base, - & const_str_IncrementalEncoder._ascii.ob_base, - & codecs_toplevel_consts_18.ob_base.ob_base, - & const_str_BufferedIncrementalEncoder._ascii.ob_base, - & codecs_toplevel_consts_20.ob_base.ob_base, - & const_str_IncrementalDecoder._ascii.ob_base, - & codecs_toplevel_consts_22.ob_base.ob_base, - & const_str_BufferedIncrementalDecoder._ascii.ob_base, - & codecs_toplevel_consts_24.ob_base.ob_base, - & const_str_StreamWriter._ascii.ob_base, - & codecs_toplevel_consts_26.ob_base.ob_base, - & const_str_StreamReader._ascii.ob_base, - & codecs_toplevel_consts_28.ob_base.ob_base, - & const_str_StreamReaderWriter._ascii.ob_base, - & codecs_toplevel_consts_30.ob_base.ob_base, - & const_str_StreamRecoder._ascii.ob_base, - &_Py_ID(strict), - & codecs_toplevel_consts_33.ob_base.ob_base, - & codecs_toplevel_consts_34.ob_base.ob_base, - & codecs_toplevel_consts_35.ob_base.ob_base, - & codecs_toplevel_consts_36.ob_base.ob_base, - & codecs_toplevel_consts_37.ob_base.ob_base, - & codecs_toplevel_consts_38.ob_base.ob_base, - & codecs_toplevel_consts_39.ob_base.ob_base, - & codecs_toplevel_consts_40.ob_base.ob_base, - & codecs_toplevel_consts_41.ob_base.ob_base, - & codecs_toplevel_consts_42.ob_base.ob_base, - & codecs_toplevel_consts_43.ob_base.ob_base, - & codecs_toplevel_consts_44.ob_base.ob_base, - &_Py_ID(ignore), - &_Py_ID(replace), - & const_str_xmlcharrefreplace._ascii.ob_base, - & const_str_backslashreplace._ascii.ob_base, - & const_str_namereplace._ascii.ob_base, - & codecs_toplevel_consts_50._object.ob_base.ob_base, - & codecs_toplevel_consts_51._object.ob_base.ob_base, - & codecs_toplevel_consts_14_consts_5._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str__codecs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_codecs", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_why = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "why", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_SystemError = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "SystemError", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str__false = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_false", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_encodings = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "encodings", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[57]; - }_object; - } -codecs_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 57, - }, - .ob_item = { - &_Py_ID(__doc__), - &_Py_ID(builtins), - & const_str_sys._ascii.ob_base, - & const_str__codecs._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - & const_str_why._ascii.ob_base, - & const_str_SystemError._ascii.ob_base, - &_Py_ID(__all__), - & const_str_BOM_UTF8._ascii.ob_base, - & const_str_BOM_LE._ascii.ob_base, - & const_str_BOM_UTF16_LE._ascii.ob_base, - & const_str_BOM_BE._ascii.ob_base, - & const_str_BOM_UTF16_BE._ascii.ob_base, - & const_str_BOM_UTF32_LE._ascii.ob_base, - & const_str_BOM_UTF32_BE._ascii.ob_base, - &_Py_ID(byteorder), - & const_str_BOM._ascii.ob_base, - & const_str_BOM_UTF16._ascii.ob_base, - & const_str_BOM_UTF32._ascii.ob_base, - & const_str_BOM32_LE._ascii.ob_base, - & const_str_BOM32_BE._ascii.ob_base, - & const_str_BOM64_LE._ascii.ob_base, - & const_str_BOM64_BE._ascii.ob_base, - & const_str_tuple._ascii.ob_base, - & const_str_CodecInfo._ascii.ob_base, - & const_str_Codec._ascii.ob_base, - &_Py_ID(object), - & const_str_IncrementalEncoder._ascii.ob_base, - & const_str_BufferedIncrementalEncoder._ascii.ob_base, - & const_str_IncrementalDecoder._ascii.ob_base, - & const_str_BufferedIncrementalDecoder._ascii.ob_base, - & const_str_StreamWriter._ascii.ob_base, - & const_str_StreamReader._ascii.ob_base, - & const_str_StreamReaderWriter._ascii.ob_base, - & const_str_StreamRecoder._ascii.ob_base, - &_Py_ID(open), - & const_str_EncodedFile._ascii.ob_base, - & const_str_getencoder._ascii.ob_base, - & const_str_getdecoder._ascii.ob_base, - & const_str_getincrementalencoder._ascii.ob_base, - & const_str_getincrementaldecoder._ascii.ob_base, - & const_str_getreader._ascii.ob_base, - & const_str_getwriter._ascii.ob_base, - & const_str_iterencode._ascii.ob_base, - & const_str_iterdecode._ascii.ob_base, - & const_str_make_identity_dict._ascii.ob_base, - & const_str_make_encoding_map._ascii.ob_base, - & const_str_lookup_error._ascii.ob_base, - & const_str_strict_errors._ascii.ob_base, - & const_str_ignore_errors._ascii.ob_base, - & const_str_replace_errors._ascii.ob_base, - & const_str_xmlcharrefreplace_errors._ascii.ob_base, - & const_str_backslashreplace_errors._ascii.ob_base, - & const_str_namereplace_errors._ascii.ob_base, - & const_str_LookupError._ascii.ob_base, - & const_str__false._ascii.ob_base, - & const_str_encodings._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[533]; - } -codecs_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 532, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x02\x07\x01\x04\xf3\x12\x00\x01\x10\xdb\x00\x0a\xf0\x08\x03\x01\x45\x01\xdc\x04\x19\xf2\x08\x0d\x0b\x2d\x80\x07\xf0\x30\x00\x0c\x1b\x80\x08\xf0\x06\x00\x19\x24\xd0\x00\x23\x80\x06\x88\x1c\xf0\x06\x00\x19\x24\xd0\x00\x23\x80\x06\x88\x1c\xf0\x06\x00\x10\x23\x80\x0c\xf0\x06\x00\x10\x23\x80\x0c\xe0\x03\x06\x87\x3d\x81\x3d\x90\x48\xd2\x03\x1c\xf0\x06\x00\x17\x23\xd0\x04\x22\x80\x43\x88\x29\xf0\x06\x00\x11\x1d\x81\x49\xf0\x0a\x00\x17\x23\xd0\x04\x22\x80\x43\x88\x29\xf0\x06\x00\x11\x1d\x80\x49\xf0\x06\x00\x0c\x18\x80\x08\xd8\x0b\x17\x80\x08\xd8\x0b\x17\x80\x08\xd8\x0b\x17\x80\x08\xf4\x0a\x1d\x01\x26\x90\x05\xf4\x00\x1d\x01\x26\xf7\x3e\x40\x01\x01\x22\xf1\x00\x40\x01\x01\x22\xf4\x44\x02\x26\x01\x0c\x98\x16\xf4\x00\x26\x01\x0c\xf4\x50\x01\x20\x01\x22\xd0\x21\x33\xf4\x00\x20\x01\x22\xf4\x44\x01\x2f\x01\x0c\x98\x16\xf4\x00\x2f\x01\x0c\xf4\x62\x01\x22\x01\x1f\xd0\x21\x33\xf4\x00\x22\x01\x1f\xf4\x56\x01\x48\x01\x01\x48\x01\x90\x35\xf4\x00\x48\x01\x01\x48\x01\xf4\x58\x02\x78\x03\x01\x48\x01\x90\x35\xf4\x00\x78\x03\x01\x48\x01\xf7\x78\x07\x56\x01\x01\x48\x01\xf1\x00\x56\x01\x01\x48\x01\xf7\x74\x02\x73\x01\x01\x48\x01\xf1\x00\x73\x01\x01\x48\x01\xf3\x6e\x03\x2f\x01\x0e\xf3\x62\x01\x22\x01\x0e\xf2\x4c\x01\x08\x01\x23\xf2\x14\x08\x01\x23\xf2\x14\x0c\x01\x13\xf2\x1c\x0c\x01\x13\xf2\x1c\x08\x01\x29\xf2\x14\x08\x01\x29\xf3\x14\x10\x01\x15\xf3\x24\x10\x01\x15\xf2\x28\x08\x01\x1e\xf2\x14\x13\x01\x0d\xf0\x2e\x0e\x01\x1e\xd9\x14\x20\xa0\x18\xd3\x14\x2a\x80\x4d\xd9\x14\x20\xa0\x18\xd3\x14\x2a\x80\x4d\xd9\x15\x21\xa0\x29\xd3\x15\x2c\x80\x4e\xd9\x1f\x2b\xd0\x2c\x3f\xd3\x1f\x40\xd0\x04\x1c\xd9\x1e\x2a\xd0\x2b\x3d\xd3\x1e\x3e\xd0\x04\x1b\xd9\x19\x25\xa0\x6d\xd3\x19\x34\xd0\x04\x16\xf0\x18\x00\x0a\x0b\x80\x06\xd9\x03\x09\xdc\x04\x14\xf0\x03\x00\x04\x0a\xf8\xf0\x6f\x22\x00\x08\x13\xf2\x00\x01\x01\x45\x01\xd9\x0a\x15\xd0\x16\x3d\xc0\x03\xd1\x16\x43\xd3\x0a\x44\xd0\x04\x44\xfb\xf0\x03\x01\x01\x45\x01\xfb\xf0\x56\x22\x00\x08\x13\xf2\x00\x07\x01\x1e\xe0\x14\x18\x80\x4d\xd8\x14\x18\x80\x4d\xd8\x15\x19\x80\x4e\xd8\x1f\x23\xd0\x04\x1c\xd8\x1e\x22\xd0\x04\x1b\xd8\x19\x1d\xd2\x04\x16\xf0\x0f\x07\x01\x1e\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[42]; - } -codecs_toplevel_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 41, - }, - .ob_shash = -1, - .ob_sval = "\x8c\x05\x44\x15\x00\xc3\x1b\x30\x44\x2d\x00\xc4\x15\x05\x44\x2a\x03\xc4\x1a\x0b\x44\x25\x03\xc4\x25\x05\x44\x2a\x03\xc4\x2d\x11\x45\x01\x03\xc5\x00\x01\x45\x01\x03", -}; -static - struct _PyCode_DEF(648) -codecs_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 324, - }, - .co_consts = & codecs_toplevel_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = & codecs_toplevel_exceptiontable.ob_base.ob_base, - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 364, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & codecs_toplevel_consts_12_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & codecs_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x64\x02\x6c\x01\x5a\x01\x64\x01\x64\x02\x6c\x02\x5a\x02\x09\x00\x64\x01\x64\x03\x6c\x03\xad\x02\x01\x00\x67\x00\x64\x05\xa2\x01\x5a\x07\x64\x06\x5a\x08\x64\x07\x78\x01\x5a\x09\x5a\x0a\x64\x08\x78\x01\x5a\x0b\x5a\x0c\x64\x09\x5a\x0d\x64\x0a\x5a\x0e\x65\x02\x6a\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0b\x6b\x28\x00\x00\x72\x07\x65\x0a\x78\x01\x5a\x10\x5a\x11\x65\x0d\x5a\x12\x6e\x06\x65\x0c\x78\x01\x5a\x10\x5a\x11\x65\x0e\x5a\x12\x65\x0a\x5a\x13\x65\x0c\x5a\x14\x65\x0d\x5a\x15\x65\x0e\x5a\x16\x02\x00\x47\x00\x64\x0c\x84\x00\x64\x0d\x65\x17\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x18\x02\x00\x47\x00\x64\x0e\x84\x00\x64\x0f\xab\x02\x00\x00\x00\x00\x00\x00\x5a\x19\x02\x00\x47\x00\x64\x10\x84\x00\x64\x11\x65\x1a\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x1b\x02\x00\x47\x00\x64\x12\x84\x00\x64\x13\x65\x1b\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x1c\x02\x00\x47\x00\x64\x14\x84\x00\x64\x15\x65\x1a\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x1d\x02\x00\x47\x00\x64\x16\x84\x00\x64\x17\x65\x1d\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x1e\x02\x00\x47\x00\x64\x18\x84\x00\x64\x19\x65\x19\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x1f\x02\x00\x47\x00\x64\x1a\x84\x00\x64\x1b\x65\x19\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x20\x02\x00\x47\x00\x64\x1c\x84\x00\x64\x1d\xab\x02\x00\x00\x00\x00\x00\x00\x5a\x21\x02\x00\x47\x00\x64\x1e\x84\x00\x64\x1f\xab\x02\x00\x00\x00\x00\x00\x00\x5a\x22\x64\x32\x64\x21\x84\x01\x5a\x23\x64\x33\x64\x22\x84\x01\x5a\x24\x64\x23\x84\x00\x5a\x25\x64\x24\x84\x00\x5a\x26\x64\x25\x84\x00\x5a\x27\x64\x26\x84\x00\x5a\x28\x64\x27\x84\x00\x5a\x29\x64\x28\x84\x00\x5a\x2a\x64\x34\x64\x29\x84\x01\x5a\x2b\x64\x34\x64\x2a\x84\x01\x5a\x2c\x64\x2b\x84\x00\x5a\x2d\x64\x2c\x84\x00\x5a\x2e\x09\x00\x02\x00\x65\x2f\x64\x20\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x30\x02\x00\x65\x2f\x64\x2d\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x31\x02\x00\x65\x2f\x64\x2e\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x32\x02\x00\x65\x2f\x64\x2f\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x33\x02\x00\x65\x2f\x64\x30\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x34\x02\x00\x65\x2f\x64\x31\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x35\x64\x01\x5a\x37\x65\x37\x72\x05\x64\x01\x64\x02\x6c\x38\x5a\x38\x79\x02\x79\x02\x23\x00\x65\x04\x24\x00\x72\x10\x5a\x05\x02\x00\x65\x06\x64\x04\x65\x05\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x64\x02\x5a\x05\x5b\x05\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x65\x36\x24\x00\x72\x0f\x01\x00\x64\x02\x5a\x30\x64\x02\x5a\x31\x64\x02\x5a\x32\x64\x02\x5a\x33\x64\x02\x5a\x34\x64\x02\x5a\x35\x59\x00\x8c\x35\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_codecs_toplevel(void) -{ - return Py_NewRef((PyObject *) &codecs_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[1474]; - } -io_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 1473, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x54\x68\x65\x20\x69\x6f\x20\x6d\x6f\x64\x75\x6c\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x74\x68\x65\x20\x50\x79\x74\x68\x6f\x6e\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x73\x20\x74\x6f\x20\x73\x74\x72\x65\x61\x6d\x20\x68\x61\x6e\x64\x6c\x69\x6e\x67\x2e\x20\x54\x68\x65\x0a\x62\x75\x69\x6c\x74\x69\x6e\x20\x6f\x70\x65\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\x64\x65\x66\x69\x6e\x65\x64\x20\x69\x6e\x20\x74\x68\x69\x73\x20\x6d\x6f\x64\x75\x6c\x65\x2e\x0a\x0a\x41\x74\x20\x74\x68\x65\x20\x74\x6f\x70\x20\x6f\x66\x20\x74\x68\x65\x20\x49\x2f\x4f\x20\x68\x69\x65\x72\x61\x72\x63\x68\x79\x20\x69\x73\x20\x74\x68\x65\x20\x61\x62\x73\x74\x72\x61\x63\x74\x20\x62\x61\x73\x65\x20\x63\x6c\x61\x73\x73\x20\x49\x4f\x42\x61\x73\x65\x2e\x20\x49\x74\x0a\x64\x65\x66\x69\x6e\x65\x73\x20\x74\x68\x65\x20\x62\x61\x73\x69\x63\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x74\x6f\x20\x61\x20\x73\x74\x72\x65\x61\x6d\x2e\x20\x4e\x6f\x74\x65\x2c\x20\x68\x6f\x77\x65\x76\x65\x72\x2c\x20\x74\x68\x61\x74\x20\x74\x68\x65\x72\x65\x20\x69\x73\x20\x6e\x6f\x0a\x73\x65\x70\x61\x72\x61\x74\x69\x6f\x6e\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x72\x65\x61\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x77\x72\x69\x74\x69\x6e\x67\x20\x74\x6f\x20\x73\x74\x72\x65\x61\x6d\x73\x3b\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x61\x72\x65\x0a\x61\x6c\x6c\x6f\x77\x65\x64\x20\x74\x6f\x20\x72\x61\x69\x73\x65\x20\x61\x6e\x20\x4f\x53\x45\x72\x72\x6f\x72\x20\x69\x66\x20\x74\x68\x65\x79\x20\x64\x6f\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x61\x20\x67\x69\x76\x65\x6e\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x2e\x0a\x0a\x45\x78\x74\x65\x6e\x64\x69\x6e\x67\x20\x49\x4f\x42\x61\x73\x65\x20\x69\x73\x20\x52\x61\x77\x49\x4f\x42\x61\x73\x65\x20\x77\x68\x69\x63\x68\x20\x64\x65\x61\x6c\x73\x20\x73\x69\x6d\x70\x6c\x79\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x72\x65\x61\x64\x69\x6e\x67\x20\x61\x6e\x64\x0a\x77\x72\x69\x74\x69\x6e\x67\x20\x6f\x66\x20\x72\x61\x77\x20\x62\x79\x74\x65\x73\x20\x74\x6f\x20\x61\x20\x73\x74\x72\x65\x61\x6d\x2e\x20\x46\x69\x6c\x65\x49\x4f\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x65\x73\x20\x52\x61\x77\x49\x4f\x42\x61\x73\x65\x20\x74\x6f\x20\x70\x72\x6f\x76\x69\x64\x65\x0a\x61\x6e\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x74\x6f\x20\x4f\x53\x20\x66\x69\x6c\x65\x73\x2e\x0a\x0a\x42\x75\x66\x66\x65\x72\x65\x64\x49\x4f\x42\x61\x73\x65\x20\x64\x65\x61\x6c\x73\x20\x77\x69\x74\x68\x20\x62\x75\x66\x66\x65\x72\x69\x6e\x67\x20\x6f\x6e\x20\x61\x20\x72\x61\x77\x20\x62\x79\x74\x65\x20\x73\x74\x72\x65\x61\x6d\x20\x28\x52\x61\x77\x49\x4f\x42\x61\x73\x65\x29\x2e\x20\x49\x74\x73\x0a\x73\x75\x62\x63\x6c\x61\x73\x73\x65\x73\x2c\x20\x42\x75\x66\x66\x65\x72\x65\x64\x57\x72\x69\x74\x65\x72\x2c\x20\x42\x75\x66\x66\x65\x72\x65\x64\x52\x65\x61\x64\x65\x72\x2c\x20\x61\x6e\x64\x20\x42\x75\x66\x66\x65\x72\x65\x64\x52\x57\x50\x61\x69\x72\x20\x62\x75\x66\x66\x65\x72\x0a\x73\x74\x72\x65\x61\x6d\x73\x20\x74\x68\x61\x74\x20\x61\x72\x65\x20\x72\x65\x61\x64\x61\x62\x6c\x65\x2c\x20\x77\x72\x69\x74\x61\x62\x6c\x65\x2c\x20\x61\x6e\x64\x20\x62\x6f\x74\x68\x20\x72\x65\x73\x70\x65\x63\x74\x69\x76\x65\x6c\x79\x2e\x0a\x42\x75\x66\x66\x65\x72\x65\x64\x52\x61\x6e\x64\x6f\x6d\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x61\x20\x62\x75\x66\x66\x65\x72\x65\x64\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x74\x6f\x20\x72\x61\x6e\x64\x6f\x6d\x20\x61\x63\x63\x65\x73\x73\x0a\x73\x74\x72\x65\x61\x6d\x73\x2e\x20\x42\x79\x74\x65\x73\x49\x4f\x20\x69\x73\x20\x61\x20\x73\x69\x6d\x70\x6c\x65\x20\x73\x74\x72\x65\x61\x6d\x20\x6f\x66\x20\x69\x6e\x2d\x6d\x65\x6d\x6f\x72\x79\x20\x62\x79\x74\x65\x73\x2e\x0a\x0a\x41\x6e\x6f\x74\x68\x65\x72\x20\x49\x4f\x42\x61\x73\x65\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x2c\x20\x54\x65\x78\x74\x49\x4f\x42\x61\x73\x65\x2c\x20\x64\x65\x61\x6c\x73\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x64\x65\x63\x6f\x64\x69\x6e\x67\x0a\x6f\x66\x20\x73\x74\x72\x65\x61\x6d\x73\x20\x69\x6e\x74\x6f\x20\x74\x65\x78\x74\x2e\x20\x54\x65\x78\x74\x49\x4f\x57\x72\x61\x70\x70\x65\x72\x2c\x20\x77\x68\x69\x63\x68\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x69\x74\x2c\x20\x69\x73\x20\x61\x20\x62\x75\x66\x66\x65\x72\x65\x64\x20\x74\x65\x78\x74\x0a\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x74\x6f\x20\x61\x20\x62\x75\x66\x66\x65\x72\x65\x64\x20\x72\x61\x77\x20\x73\x74\x72\x65\x61\x6d\x20\x28\x60\x42\x75\x66\x66\x65\x72\x65\x64\x49\x4f\x42\x61\x73\x65\x60\x29\x2e\x20\x46\x69\x6e\x61\x6c\x6c\x79\x2c\x20\x53\x74\x72\x69\x6e\x67\x49\x4f\x0a\x69\x73\x20\x61\x6e\x20\x69\x6e\x2d\x6d\x65\x6d\x6f\x72\x79\x20\x73\x74\x72\x65\x61\x6d\x20\x66\x6f\x72\x20\x74\x65\x78\x74\x2e\x0a\x0a\x41\x72\x67\x75\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x73\x20\x61\x72\x65\x20\x6e\x6f\x74\x20\x70\x61\x72\x74\x20\x6f\x66\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x2c\x20\x61\x6e\x64\x20\x6f\x6e\x6c\x79\x20\x74\x68\x65\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x0a\x6f\x66\x20\x6f\x70\x65\x6e\x28\x29\x20\x61\x72\x65\x20\x69\x6e\x74\x65\x6e\x64\x65\x64\x20\x74\x6f\x20\x62\x65\x20\x75\x73\x65\x64\x20\x61\x73\x20\x6b\x65\x79\x77\x6f\x72\x64\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x0a\x0a\x64\x61\x74\x61\x3a\x0a\x0a\x44\x45\x46\x41\x55\x4c\x54\x5f\x42\x55\x46\x46\x45\x52\x5f\x53\x49\x5a\x45\x0a\x0a\x20\x20\x20\x41\x6e\x20\x69\x6e\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x69\x6e\x67\x20\x74\x68\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x62\x75\x66\x66\x65\x72\x20\x73\x69\x7a\x65\x20\x75\x73\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x27\x73\x20\x62\x75\x66\x66\x65\x72\x65\x64\x0a\x20\x20\x20\x49\x2f\x4f\x20\x63\x6c\x61\x73\x73\x65\x73\x2e\x20\x6f\x70\x65\x6e\x28\x29\x20\x75\x73\x65\x73\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x27\x73\x20\x62\x6c\x6b\x73\x69\x7a\x65\x20\x28\x61\x73\x20\x6f\x62\x74\x61\x69\x6e\x65\x64\x20\x62\x79\x20\x6f\x73\x2e\x73\x74\x61\x74\x29\x20\x69\x66\x0a\x20\x20\x20\x70\x6f\x73\x73\x69\x62\x6c\x65\x2e\x0a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[236]; - } -io_toplevel_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 235, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Guido van Rossum , Mike Verdone , Mark Russell , Antoine Pitrou , Amaury Forgeot d'Arc , Benjamin Peterson ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_BlockingIOError = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BlockingIOError", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_IOBase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IOBase", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_RawIOBase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "RawIOBase", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_StringIO = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StringIO", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_BufferedIOBase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedIOBase", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_BufferedReader = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedReader", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_BufferedWriter = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedWriter", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_BufferedRWPair = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedRWPair", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_BufferedRandom = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BufferedRandom", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_TextIOBase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "TextIOBase", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -const_str_UnsupportedOperation = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "UnsupportedOperation", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_SEEK_SET = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "SEEK_SET", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_SEEK_CUR = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "SEEK_CUR", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_SEEK_END = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "SEEK_END", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -const_str_DEFAULT_BUFFER_SIZE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "DEFAULT_BUFFER_SIZE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_text_encoding = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "text_encoding", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[22]; - }_object; - } -io_toplevel_consts_2 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 22, - }, - .ob_item = { - & const_str_BlockingIOError._ascii.ob_base, - &_Py_ID(open), - & const_str_open_code._ascii.ob_base, - & const_str_IOBase._ascii.ob_base, - & const_str_RawIOBase._ascii.ob_base, - & const_str_FileIO._ascii.ob_base, - & const_str_BytesIO._ascii.ob_base, - & const_str_StringIO._ascii.ob_base, - & const_str_BufferedIOBase._ascii.ob_base, - & const_str_BufferedReader._ascii.ob_base, - & const_str_BufferedWriter._ascii.ob_base, - & const_str_BufferedRWPair._ascii.ob_base, - & const_str_BufferedRandom._ascii.ob_base, - & const_str_TextIOBase._ascii.ob_base, - &_Py_ID(TextIOWrapper), - & const_str_UnsupportedOperation._ascii.ob_base, - & const_str_SEEK_SET._ascii.ob_base, - & const_str_SEEK_CUR._ascii.ob_base, - & const_str_SEEK_END._ascii.ob_base, - & const_str_DEFAULT_BUFFER_SIZE._ascii.ob_base, - & const_str_text_encoding._ascii.ob_base, - & const_str_IncrementalNewlineDecoder._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -io_toplevel_consts_5 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - & const_str_DEFAULT_BUFFER_SIZE._ascii.ob_base, - & const_str_BlockingIOError._ascii.ob_base, - & const_str_UnsupportedOperation._ascii.ob_base, - &_Py_ID(open), - & const_str_open_code._ascii.ob_base, - & const_str_FileIO._ascii.ob_base, - & const_str_BytesIO._ascii.ob_base, - & const_str_StringIO._ascii.ob_base, - & const_str_BufferedReader._ascii.ob_base, - & const_str_BufferedWriter._ascii.ob_base, - & const_str_BufferedRWPair._ascii.ob_base, - & const_str_BufferedRandom._ascii.ob_base, - & const_str_IncrementalNewlineDecoder._ascii.ob_base, - & const_str_text_encoding._ascii.ob_base, - &_Py_ID(TextIOWrapper), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_io = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "io", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -io_toplevel_consts_9_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_IOBase._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str__IOBase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_IOBase", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -io_toplevel_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(_io), - & const_str__IOBase._ascii.ob_base, - &_Py_ID(__doc__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -io_toplevel_consts_9_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -io_toplevel_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xd8\x0e\x11\x8f\x6b\x89\x6b\xd7\x0e\x21\xd1\x0e\x21\x81\x47", -}; -static - struct _PyCode_DEF(56) -io_toplevel_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & io_toplevel_consts_9_consts._object.ob_base.ob_base, - .co_names = & io_toplevel_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 72, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 365, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & io_toplevel_consts_9_filename._ascii.ob_base, - .co_name = & const_str_IOBase._ascii.ob_base, - .co_qualname = & const_str_IOBase._ascii.ob_base, - .co_linetable = & io_toplevel_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x65\x03\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -io_toplevel_consts_12_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_RawIOBase._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str__RawIOBase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_RawIOBase", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -io_toplevel_consts_12_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(_io), - & const_str__RawIOBase._ascii.ob_base, - &_Py_ID(__doc__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -io_toplevel_consts_12_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xd8\x0e\x11\x8f\x6e\x89\x6e\xd7\x0e\x24\xd1\x0e\x24\x81\x47", -}; -static - struct _PyCode_DEF(56) -io_toplevel_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & io_toplevel_consts_12_consts._object.ob_base.ob_base, - .co_names = & io_toplevel_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 75, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 366, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & io_toplevel_consts_9_filename._ascii.ob_base, - .co_name = & const_str_RawIOBase._ascii.ob_base, - .co_qualname = & const_str_RawIOBase._ascii.ob_base, - .co_linetable = & io_toplevel_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x65\x03\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -io_toplevel_consts_14_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_BufferedIOBase._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str__BufferedIOBase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_BufferedIOBase", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -io_toplevel_consts_14_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(_io), - & const_str__BufferedIOBase._ascii.ob_base, - &_Py_ID(__doc__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[20]; - } -io_toplevel_consts_14_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 19, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xd8\x0e\x11\xd7\x0e\x21\xd1\x0e\x21\xd7\x0e\x29\xd1\x0e\x29\x81\x47", -}; -static - struct _PyCode_DEF(56) -io_toplevel_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & io_toplevel_consts_14_consts._object.ob_base.ob_base, - .co_names = & io_toplevel_consts_14_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 78, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 367, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & io_toplevel_consts_9_filename._ascii.ob_base, - .co_name = & const_str_BufferedIOBase._ascii.ob_base, - .co_qualname = & const_str_BufferedIOBase._ascii.ob_base, - .co_linetable = & io_toplevel_consts_14_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x65\x03\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -io_toplevel_consts_16_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_TextIOBase._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str__TextIOBase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_TextIOBase", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -io_toplevel_consts_16_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(_io), - & const_str__TextIOBase._ascii.ob_base, - &_Py_ID(__doc__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -io_toplevel_consts_16_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xd8\x0e\x11\x8f\x6f\x89\x6f\xd7\x0e\x25\xd1\x0e\x25\x81\x47", -}; -static - struct _PyCode_DEF(56) -io_toplevel_consts_16 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & io_toplevel_consts_16_consts._object.ob_base.ob_base, - .co_names = & io_toplevel_consts_16_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 81, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 368, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & io_toplevel_consts_9_filename._ascii.ob_base, - .co_name = & const_str_TextIOBase._ascii.ob_base, - .co_qualname = & const_str_TextIOBase._ascii.ob_base, - .co_linetable = & io_toplevel_consts_16_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x65\x03\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -io_toplevel_consts_18 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(_WindowsConsoleIO), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[19]; - }_object; - } -io_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 19, - }, - .ob_item = { - & io_toplevel_consts_0._ascii.ob_base, - & io_toplevel_consts_1._ascii.ob_base, - & io_toplevel_consts_2._object.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & io_toplevel_consts_5._object.ob_base.ob_base, - & const_str_io._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - & io_toplevel_consts_9.ob_base.ob_base, - & const_str_IOBase._ascii.ob_base, - & abc_toplevel_consts_17._object.ob_base.ob_base, - & io_toplevel_consts_12.ob_base.ob_base, - & const_str_RawIOBase._ascii.ob_base, - & io_toplevel_consts_14.ob_base.ob_base, - & const_str_BufferedIOBase._ascii.ob_base, - & io_toplevel_consts_16.ob_base.ob_base, - & const_str_TextIOBase._ascii.ob_base, - & io_toplevel_consts_18._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str___author__ = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "__author__", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_klass = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "klass", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[37]; - }_object; - } -io_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 37, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str___author__._ascii.ob_base, - &_Py_ID(__all__), - &_Py_ID(_io), - & const_str_abc._ascii.ob_base, - & const_str_DEFAULT_BUFFER_SIZE._ascii.ob_base, - & const_str_BlockingIOError._ascii.ob_base, - & const_str_UnsupportedOperation._ascii.ob_base, - &_Py_ID(open), - & const_str_open_code._ascii.ob_base, - & const_str_FileIO._ascii.ob_base, - & const_str_BytesIO._ascii.ob_base, - & const_str_StringIO._ascii.ob_base, - & const_str_BufferedReader._ascii.ob_base, - & const_str_BufferedWriter._ascii.ob_base, - & const_str_BufferedRWPair._ascii.ob_base, - & const_str_BufferedRandom._ascii.ob_base, - & const_str_IncrementalNewlineDecoder._ascii.ob_base, - & const_str_text_encoding._ascii.ob_base, - &_Py_ID(TextIOWrapper), - &_Py_ID(__module__), - & const_str_SEEK_SET._ascii.ob_base, - & const_str_SEEK_CUR._ascii.ob_base, - & const_str_SEEK_END._ascii.ob_base, - & const_str__IOBase._ascii.ob_base, - & const_str_ABCMeta._ascii.ob_base, - & const_str_IOBase._ascii.ob_base, - & const_str__RawIOBase._ascii.ob_base, - & const_str_RawIOBase._ascii.ob_base, - & const_str__BufferedIOBase._ascii.ob_base, - & const_str_BufferedIOBase._ascii.ob_base, - & const_str__TextIOBase._ascii.ob_base, - & const_str_TextIOBase._ascii.ob_base, - & const_str_register._ascii.ob_base, - & const_str_klass._ascii.ob_base, - &_Py_ID(_WindowsConsoleIO), - & const_str_ImportError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[304]; - } -io_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 303, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x02\x21\x01\x04\xf0\x48\x01\x05\x0f\x38\x80\x0a\xf2\x0e\x05\x0b\x50\x01\x80\x07\xf3\x10\x00\x01\x0b\xdb\x00\x0a\xf7\x04\x03\x01\x4a\x01\xf7\x00\x03\x01\x4a\x01\xf7\x00\x03\x01\x4a\x01\xf7\x00\x03\x01\x4a\x01\xf1\x00\x03\x01\x4a\x01\xf0\x0e\x00\x23\x27\xd0\x00\x14\xd4\x00\x1f\xf0\x06\x00\x0c\x0d\x80\x08\xd8\x0b\x0c\x80\x08\xd8\x0b\x0c\x80\x08\xf4\x0a\x01\x01\x22\x88\x53\x8f\x5b\x89\x5b\xa0\x43\xa7\x4b\xa1\x4b\xf5\x00\x01\x01\x22\xf4\x06\x01\x01\x25\x90\x03\x97\x0e\x91\x0e\xa0\x06\xf4\x00\x01\x01\x25\xf4\x06\x01\x01\x2a\x90\x53\xd7\x15\x28\xd1\x15\x28\xa8\x26\xf4\x00\x01\x01\x2a\xf4\x06\x01\x01\x26\x90\x13\x97\x1f\x91\x1f\xa0\x26\xf4\x00\x01\x01\x26\xf0\x06\x00\x01\x0a\xd7\x00\x12\xd1\x00\x12\x90\x36\xd4\x00\x1a\xe0\x0e\x15\x90\x7e\xa0\x7e\xb0\x7e\xd8\x0e\x1c\xf3\x03\x01\x0e\x1e\x80\x45\xe0\x04\x12\xd7\x04\x1b\xd1\x04\x1b\x98\x45\xd5\x04\x22\xf0\x05\x01\x0e\x1e\xf0\x08\x00\x0f\x17\x98\x0d\xd3\x0d\x26\x80\x45\xd8\x04\x0e\xd7\x04\x17\xd1\x04\x17\x98\x05\xd5\x04\x1e\xf0\x03\x00\x0e\x27\xe0\x04\x09\xf0\x04\x05\x01\x2a\xdd\x04\x25\xf0\x08\x00\x05\x0e\xd7\x04\x16\xd1\x04\x16\xd0\x17\x28\xd5\x04\x29\xf8\xf0\x07\x00\x08\x13\xf2\x00\x01\x01\x09\xd9\x04\x08\xf0\x03\x01\x01\x09\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -io_toplevel_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\xc3\x2d\x06\x44\x05\x00\xc4\x05\x05\x44\x0d\x03\xc4\x0c\x01\x44\x0d\x03", -}; -static - struct _PyCode_DEF(544) -io_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 272, - }, - .co_consts = & io_toplevel_consts._object.ob_base.ob_base, - .co_names = & io_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = & io_toplevel_exceptiontable.ob_base.ob_base, - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 369, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & io_toplevel_consts_9_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & io_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x5a\x01\x67\x00\x64\x02\xa2\x01\x5a\x02\x64\x03\x64\x04\x6c\x03\x5a\x03\x64\x03\x64\x04\x6c\x04\x5a\x04\x64\x03\x64\x05\x6c\x03\x6d\x05\x5a\x05\x6d\x06\x5a\x06\x6d\x07\x5a\x07\x6d\x08\x5a\x08\x6d\x09\x5a\x09\x6d\x0a\x5a\x0a\x6d\x0b\x5a\x0b\x6d\x0c\x5a\x0c\x6d\x0d\x5a\x0d\x6d\x0e\x5a\x0e\x6d\x0f\x5a\x0f\x6d\x10\x5a\x10\x6d\x11\x5a\x11\x6d\x12\x5a\x12\x6d\x13\x5a\x13\x01\x00\x64\x06\x65\x07\x5f\x14\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x5a\x15\x64\x07\x5a\x16\x64\x08\x5a\x17\x02\x00\x47\x00\x64\x09\x84\x00\x64\x0a\x65\x03\x6a\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x04\x6a\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x0b\xab\x04\x00\x00\x00\x00\x00\x00\x5a\x1a\x02\x00\x47\x00\x64\x0c\x84\x00\x64\x0d\x65\x03\x6a\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x1a\xab\x04\x00\x00\x00\x00\x00\x00\x5a\x1c\x02\x00\x47\x00\x64\x0e\x84\x00\x64\x0f\x65\x03\x6a\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x1a\xab\x04\x00\x00\x00\x00\x00\x00\x5a\x1e\x02\x00\x47\x00\x64\x10\x84\x00\x64\x11\x65\x03\x6a\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x1a\xab\x04\x00\x00\x00\x00\x00\x00\x5a\x20\x65\x1c\x6a\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x0a\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x0b\x65\x0d\x65\x0e\x65\x10\x65\x0f\x66\x05\x44\x00\x5d\x13\x00\x00\x5a\x22\x65\x1e\x6a\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x22\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x15\x04\x00\x65\x0c\x65\x13\x66\x02\x44\x00\x5d\x13\x00\x00\x5a\x22\x65\x20\x6a\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x22\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x15\x04\x00\x5b\x22\x09\x00\x64\x03\x64\x12\x6c\x03\x6d\x23\x5a\x23\x01\x00\x65\x1c\x6a\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x23\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x04\x23\x00\x65\x24\x24\x00\x72\x03\x01\x00\x59\x00\x79\x04\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_io_toplevel(void) -{ - return Py_NewRef((PyObject *) &io_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[107]; - } -_collections_abc_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 106, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x62\x73\x74\x72\x61\x63\x74\x20\x42\x61\x73\x65\x20\x43\x6c\x61\x73\x73\x65\x73\x20\x28\x41\x42\x43\x73\x29\x20\x66\x6f\x72\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x73\x2c\x20\x61\x63\x63\x6f\x72\x64\x69\x6e\x67\x20\x74\x6f\x20\x50\x45\x50\x20\x33\x31\x31\x39\x2e\x0a\x0a\x55\x6e\x69\x74\x20\x74\x65\x73\x74\x73\x20\x61\x72\x65\x20\x69\x6e\x20\x74\x65\x73\x74\x5f\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x73\x2e\x0a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_2 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_ABCMeta._ascii.ob_base, - & const_str_abstractmethod._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -_collections_abc_toplevel_consts_5_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str__f = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_f", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -_collections_abc_toplevel_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\x88\x24", -}; -static - struct _PyCode_DEF(4) -_collections_abc_toplevel_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 0 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 40, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 370, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__f._ascii.ob_base, - .co_qualname = & const_str__f._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_Awaitable = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Awaitable", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_Coroutine = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Coroutine", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_AsyncIterable = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncIterable", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_AsyncIterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncIterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_AsyncGenerator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncGenerator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_Hashable = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Hashable", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_Iterable = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Iterable", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_Iterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Iterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_Generator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Generator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_Reversible = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Reversible", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_Sized = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Sized", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_Container = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Container", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_Callable = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Callable", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_Collection = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Collection", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_Set = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_MutableSet = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSet", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_Mapping = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Mapping", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_MutableMapping = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableMapping", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_MappingView = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MappingView", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_KeysView = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "KeysView", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_ItemsView = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ItemsView", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_ValuesView = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ValuesView", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_Sequence = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Sequence", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_MutableSequence = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSequence", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_ByteString = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ByteString", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_Buffer = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Buffer", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[26]; - }_object; - } -_collections_abc_toplevel_consts_6 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 26, - }, - .ob_item = { - & const_str_Awaitable._ascii.ob_base, - & const_str_Coroutine._ascii.ob_base, - & const_str_AsyncIterable._ascii.ob_base, - & const_str_AsyncIterator._ascii.ob_base, - & const_str_AsyncGenerator._ascii.ob_base, - & const_str_Hashable._ascii.ob_base, - & const_str_Iterable._ascii.ob_base, - & const_str_Iterator._ascii.ob_base, - & const_str_Generator._ascii.ob_base, - & const_str_Reversible._ascii.ob_base, - & const_str_Sized._ascii.ob_base, - & const_str_Container._ascii.ob_base, - & const_str_Callable._ascii.ob_base, - & const_str_Collection._ascii.ob_base, - & const_str_Set._ascii.ob_base, - & const_str_MutableSet._ascii.ob_base, - & const_str_Mapping._ascii.ob_base, - & const_str_MutableMapping._ascii.ob_base, - & const_str_MappingView._ascii.ob_base, - & const_str_KeysView._ascii.ob_base, - & const_str_ItemsView._ascii.ob_base, - & const_str_ValuesView._ascii.ob_base, - & const_str_Sequence._ascii.ob_base, - & const_str_MutableSequence._ascii.ob_base, - & const_str_ByteString._ascii.ob_base, - & const_str_Buffer._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -_collections_abc_toplevel_consts_7 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "collections.abc", -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_1000 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 1000 }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[8]; - } -_collections_abc_toplevel_consts_13_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 7, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\x9b\x35", -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_13 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 35, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 88, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 371, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_lambda), - .co_qualname = &_Py_STR(anon_lambda), - .co_linetable = & _collections_abc_toplevel_consts_13_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x64\x00\x96\x00\x97\x01\x53\x00", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__coro = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_coro", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -_collections_abc_toplevel_consts_14_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\x90\x34\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -_collections_abc_toplevel_consts_14_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x82\x02\x04\x01", -}; -static - struct _PyCode_DEF(12) -_collections_abc_toplevel_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 6, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = & _collections_abc_toplevel_consts_14_exceptiontable.ob_base.ob_base, - .co_flags = 131, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 90, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 372, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__coro._ascii.ob_base, - .co_qualname = & const_str__coro._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_14_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str__ag = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ag", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -_collections_abc_toplevel_consts_15_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\x95\x15\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -_collections_abc_toplevel_consts_15_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x82\x07\x09\x01", -}; -static - struct _PyCode_DEF(22) -_collections_abc_toplevel_consts_15 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 11, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = & _collections_abc_toplevel_consts_15_exceptiontable.ob_base.ob_base, - .co_flags = 515, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 96, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 373, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__ag._ascii.ob_base, - .co_qualname = & const_str__ag._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_15_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x64\x00\xad\x04\x96\x01\x97\x01\x01\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str___mro__ = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "__mro__", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_16_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str___mro__._ascii.ob_base, - &_Py_ID(__dict__), - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__check_methods = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_check_methods", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[81]; - } -_collections_abc_toplevel_consts_16_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 80, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0a\x0b\x8f\x29\x89\x29\x80\x43\xdb\x12\x19\x88\x06\xdb\x11\x14\x88\x41\xd8\x0f\x15\x98\x11\x9f\x1a\x99\x1a\xd2\x0f\x23\xd8\x13\x14\x97\x3a\x91\x3a\x98\x66\xd1\x13\x25\xd0\x13\x2d\xdc\x1b\x29\xd4\x14\x29\xd9\x10\x15\xf0\x09\x00\x12\x15\xf4\x0c\x00\x14\x22\xd2\x0c\x21\xf0\x0f\x00\x13\x1a\xf0\x10\x00\x0c\x10", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_methods = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "methods", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_16_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[67], - & const_str_methods._ascii.ob_base, - &_Py_ID(mro), - &_Py_ID(method), - (PyObject *)&_Py_SINGLETON(strings).ascii[66], - }, - }, -}; -static - struct _PyCode_DEF(152) -_collections_abc_toplevel_consts_16 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 76, - }, - .co_consts = & importlib__bootstrap_external_toplevel_consts_68_consts_2_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_16_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 104, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 374, - .co_localsplusnames = & _collections_abc_toplevel_consts_16_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__check_methods._ascii.ob_base, - .co_qualname = & const_str__check_methods._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_16_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x01\x44\x00\x5d\x39\x00\x00\x7d\x03\x7c\x02\x44\x00\x5d\x2b\x00\x00\x7d\x04\x7c\x03\x7c\x04\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x73\x01\x8c\x12\x7c\x04\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x19\x00\x00\x00\x80\x0a\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x63\x02\x01\x00\x63\x02\x01\x00\x53\x00\x01\x00\x8c\x32\x04\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x63\x02\x01\x00\x53\x00\x04\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -_collections_abc_toplevel_consts_17_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Hashable.__hash__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -_collections_abc_toplevel_consts_17_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0f\x10", -}; -static - struct _PyCode_DEF(4) -_collections_abc_toplevel_consts_17_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 120, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 375, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__hash__), - .co_qualname = & _collections_abc_toplevel_consts_17_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_17_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_17_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - &_Py_ID(__hash__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_17_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_Hashable._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -_collections_abc_toplevel_consts_17_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Hashable.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[29]; - } -_collections_abc_toplevel_consts_17_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 28, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x28\x89\x3f\xdc\x13\x21\xa0\x21\xa0\x5a\xd3\x13\x30\xd0\x0c\x30\xdc\x0f\x1d\xd0\x08\x1d", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_17_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_cls._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[67], - }, - }, -}; -static - struct _PyCode_DEF(54) -_collections_abc_toplevel_consts_17_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & _collections_abc_toplevel_consts_17_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_17_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 124, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 376, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_17_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_17_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_17_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_Hashable._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_17_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_17_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -_collections_abc_toplevel_consts_17_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__hash__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[46]; - } -_collections_abc_toplevel_consts_17_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 45, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x13\xf1\x02\x01\x05\x11\xf3\x03\x00\x06\x14\xf0\x02\x01\x05\x11\xf0\x06\x00\x06\x11\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf1\x02\x03\x05\x1e", -}; -static - struct _PyCode_DEF(48) -_collections_abc_toplevel_consts_17 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 24, - }, - .co_consts = & _collections_abc_toplevel_consts_17_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_17_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 116, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 377, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Hashable._ascii.ob_base, - .co_qualname = & const_str_Hashable._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_17_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x65\x06\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -_collections_abc_toplevel_consts_20_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Awaitable.__await__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[10]; - } -_collections_abc_toplevel_consts_20_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 9, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xe4\x08\x0d\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -_collections_abc_toplevel_consts_20_consts_2_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x82\x06\x08\x01", -}; -static - struct _PyCode_DEF(20) -_collections_abc_toplevel_consts_20_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 10, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = & _collections_abc_toplevel_consts_20_consts_2_exceptiontable.ob_base.ob_base, - .co_flags = 35, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 135, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 378, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__await__), - .co_qualname = & _collections_abc_toplevel_consts_20_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_20_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x64\x00\x96\x01\x97\x01\x01\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_20_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - &_Py_ID(__await__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_20_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_Awaitable._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -_collections_abc_toplevel_consts_20_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Awaitable.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -_collections_abc_toplevel_consts_20_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x29\xd1\x0b\x1b\xdc\x13\x21\xa0\x21\xa0\x5b\xd3\x13\x31\xd0\x0c\x31\xdc\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(54) -_collections_abc_toplevel_consts_20_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & _collections_abc_toplevel_consts_20_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_20_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 139, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 379, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_20_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_20_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_20_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_Awaitable._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_20_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_20_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_GenericAlias = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "GenericAlias", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -_collections_abc_toplevel_consts_20_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__await__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - & const_str_GenericAlias._ascii.ob_base, - &_Py_ID(__class_getitem__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[59]; - } -_collections_abc_toplevel_consts_20_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 58, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x13\xf1\x02\x01\x05\x0e\xf3\x03\x00\x06\x14\xf0\x02\x01\x05\x0e\xf0\x06\x00\x06\x11\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf0\x02\x03\x05\x1e\xf1\x0a\x00\x19\x24\xa0\x4c\xd3\x18\x31\xd1\x04\x15", -}; -static - struct _PyCode_DEF(64) -_collections_abc_toplevel_consts_20 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 32, - }, - .co_consts = & _collections_abc_toplevel_consts_20_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_20_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 131, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 380, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Awaitable._ascii.ob_base, - .co_qualname = & const_str_Awaitable._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x65\x06\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x02\x00\x65\x06\x65\x08\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x09\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[100]; - } -_collections_abc_toplevel_consts_22_consts_2_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 99, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x65\x6e\x64\x20\x61\x20\x76\x61\x6c\x75\x65\x20\x69\x6e\x74\x6f\x20\x74\x68\x65\x20\x63\x6f\x72\x6f\x75\x74\x69\x6e\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x20\x6e\x65\x78\x74\x20\x79\x69\x65\x6c\x64\x65\x64\x20\x76\x61\x6c\x75\x65\x20\x6f\x72\x20\x72\x61\x69\x73\x65\x20\x53\x74\x6f\x70\x49\x74\x65\x72\x61\x74\x69\x6f\x6e\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_22_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_22_consts_2_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_22_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_StopIteration._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -_collections_abc_toplevel_consts_22_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Coroutine.send", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[11]; - } -_collections_abc_toplevel_consts_22_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 10, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0a\x00\x0f\x1c\xd0\x08\x1b", -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_22_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & _collections_abc_toplevel_consts_22_consts_2_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_22_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 152, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 381, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(send), - .co_qualname = & _collections_abc_toplevel_consts_22_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_22_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[104]; - } -_collections_abc_toplevel_consts_22_consts_4_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 103, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x61\x69\x73\x65\x20\x61\x6e\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x20\x69\x6e\x20\x74\x68\x65\x20\x63\x6f\x72\x6f\x75\x74\x69\x6e\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x20\x6e\x65\x78\x74\x20\x79\x69\x65\x6c\x64\x65\x64\x20\x76\x61\x6c\x75\x65\x20\x6f\x72\x20\x72\x61\x69\x73\x65\x20\x53\x74\x6f\x70\x49\x74\x65\x72\x61\x74\x69\x6f\x6e\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_22_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_22_consts_4_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_with_traceback = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "with_traceback", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_22_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_with_traceback._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -_collections_abc_toplevel_consts_22_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Coroutine.throw", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[53]; - } -_collections_abc_toplevel_consts_22_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 52, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x0a\x00\x0c\x0f\x88\x3b\xd8\x0f\x11\x88\x7a\xd8\x16\x19\x90\x09\xd9\x12\x15\x93\x25\x88\x43\xd8\x0b\x0d\x88\x3e\xd8\x12\x15\xd7\x12\x24\xd1\x12\x24\xa0\x52\xd3\x12\x28\x88\x43\xd8\x0e\x11\x88\x09", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_typ = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "typ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_val = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "val", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_22_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - & const_str_typ._ascii.ob_base, - & const_str_val._ascii.ob_base, - & const_str_tb._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(70) -_collections_abc_toplevel_consts_22_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 35, - }, - .co_consts = & _collections_abc_toplevel_consts_22_consts_4_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_22_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 159, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 382, - .co_localsplusnames = & _collections_abc_toplevel_consts_22_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(throw), - .co_qualname = & _collections_abc_toplevel_consts_22_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_22_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x02\x80\x0b\x7c\x03\x80\x02\x7c\x01\x82\x01\x02\x00\x7c\x01\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x03\x81\x11\x7c\x02\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x02\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[47]; - } -_collections_abc_toplevel_consts_22_consts_5_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 46, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x61\x69\x73\x65\x20\x47\x65\x6e\x65\x72\x61\x74\x6f\x72\x45\x78\x69\x74\x20\x69\x6e\x73\x69\x64\x65\x20\x63\x6f\x72\x6f\x75\x74\x69\x6e\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -_collections_abc_toplevel_consts_22_consts_5_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "coroutine ignored GeneratorExit", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_22_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & _collections_abc_toplevel_consts_22_consts_5_consts_0._ascii.ob_base, - & _collections_abc_toplevel_consts_22_consts_5_consts_1._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_GeneratorExit = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "GeneratorExit", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_22_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(throw), - & const_str_GeneratorExit._ascii.ob_base, - & const_str_RuntimeError._ascii.ob_base, - & const_str_StopIteration._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -_collections_abc_toplevel_consts_22_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Coroutine.close", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[60]; - } -_collections_abc_toplevel_consts_22_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 59, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x06\x05\x09\x42\x01\xd8\x0c\x10\x8f\x4a\x89\x4a\x94\x7d\xd4\x0c\x25\xf4\x08\x00\x13\x1f\xd0\x1f\x40\xd3\x12\x41\xd0\x0c\x41\xf8\xf4\x07\x00\x11\x1e\x9c\x7d\xd0\x0f\x2d\xf2\x00\x01\x09\x11\xd9\x0c\x10\xf0\x03\x01\x09\x11\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -_collections_abc_toplevel_consts_22_consts_5_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x82\x15\x22\x00\xa2\x0f\x34\x03\xb3\x01\x34\x03", -}; -static - struct _PyCode_DEF(110) -_collections_abc_toplevel_consts_22_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 55, - }, - .co_consts = & _collections_abc_toplevel_consts_22_consts_5_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_22_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_22_consts_5_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 172, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 383, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(close), - .co_qualname = & _collections_abc_toplevel_consts_22_consts_5_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_22_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x03\x01\x00\x59\x00\x79\x02\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_22_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - Py_None, - &_Py_ID(__await__), - &_Py_ID(send), - &_Py_ID(throw), - &_Py_ID(close), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_22_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_Coroutine._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -_collections_abc_toplevel_consts_22_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Coroutine.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[36]; - } -_collections_abc_toplevel_consts_22_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 35, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x29\xd1\x0b\x1b\xdc\x13\x21\xa0\x21\xa0\x5b\xb0\x26\xb8\x27\xc0\x37\xd3\x13\x4b\xd0\x0c\x4b\xdc\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(60) -_collections_abc_toplevel_consts_22_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 30, - }, - .co_consts = & _collections_abc_toplevel_consts_22_consts_6_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_22_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 182, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 384, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_22_consts_6_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_22_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0f\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\x64\x02\x64\x03\x64\x04\xab\x05\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -_collections_abc_toplevel_consts_22_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_Coroutine._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_22_consts_2.ob_base.ob_base, - Py_None, - & _collections_abc_toplevel_consts_22_consts_4.ob_base.ob_base, - & _collections_abc_toplevel_consts_22_consts_5.ob_base.ob_base, - & _collections_abc_toplevel_consts_22_consts_6.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_44_consts_10._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -_collections_abc_toplevel_consts_22_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(send), - &_Py_ID(throw), - &_Py_ID(close), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[72]; - } -_collections_abc_toplevel_consts_22_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 71, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x13\xf1\x02\x04\x05\x1c\xf3\x03\x00\x06\x14\xf0\x02\x04\x05\x1c\xf0\x0c\x00\x06\x14\xf2\x02\x0a\x05\x12\xf3\x03\x00\x06\x14\xf0\x02\x0a\x05\x12\xf2\x18\x08\x05\x42\x01\xf0\x14\x00\x06\x11\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf1\x02\x03\x05\x1e", -}; -static - struct _PyCode_DEF(72) -_collections_abc_toplevel_consts_22 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 36, - }, - .co_consts = & _collections_abc_toplevel_consts_22_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_22_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 148, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 385, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Coroutine._ascii.ob_base, - .co_qualname = & const_str_Coroutine._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_22_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x65\x04\x64\x07\x64\x04\x84\x01\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x06\x64\x05\x84\x00\x5a\x07\x65\x08\x64\x06\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x09\x79\x03", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_24_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_AsyncIterator._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -_collections_abc_toplevel_consts_24_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncIterable.__aiter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[11]; - } -_collections_abc_toplevel_consts_24_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 10, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0f\x1c\x8b\x7f\xd0\x08\x1e", -}; -static - struct _PyCode_DEF(22) -_collections_abc_toplevel_consts_24_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 11, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_24_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 196, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 386, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__aiter__), - .co_qualname = & _collections_abc_toplevel_consts_24_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_24_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_24_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - &_Py_ID(__aiter__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_24_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_AsyncIterable._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[31]; - } -_collections_abc_toplevel_consts_24_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 30, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncIterable.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -_collections_abc_toplevel_consts_24_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x2d\xd1\x0b\x1f\xdc\x13\x21\xa0\x21\xa0\x5b\xd3\x13\x31\xd0\x0c\x31\xdc\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(54) -_collections_abc_toplevel_consts_24_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & _collections_abc_toplevel_consts_24_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_24_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 200, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 387, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_24_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_24_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_24_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_AsyncIterable._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_24_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_24_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -_collections_abc_toplevel_consts_24_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__aiter__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - & const_str_GenericAlias._ascii.ob_base, - &_Py_ID(__class_getitem__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[59]; - } -_collections_abc_toplevel_consts_24_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 58, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x13\xf1\x02\x01\x05\x1f\xf3\x03\x00\x06\x14\xf0\x02\x01\x05\x1f\xf0\x06\x00\x06\x11\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf0\x02\x03\x05\x1e\xf1\x0a\x00\x19\x24\xa0\x4c\xd3\x18\x31\xd1\x04\x15", -}; -static - struct _PyCode_DEF(64) -_collections_abc_toplevel_consts_24 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 32, - }, - .co_consts = & _collections_abc_toplevel_consts_24_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_24_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 192, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 388, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_AsyncIterable._ascii.ob_base, - .co_qualname = & const_str_AsyncIterable._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_24_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x65\x06\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x02\x00\x65\x06\x65\x08\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x09\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[65]; - } -_collections_abc_toplevel_consts_26_consts_2_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 64, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return the next item or raise StopAsyncIteration when exhausted.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_26_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_26_consts_2_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_StopAsyncIteration = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "StopAsyncIteration", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_26_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_StopAsyncIteration._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -_collections_abc_toplevel_consts_26_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncIterator.__anext__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[15]; - } -_collections_abc_toplevel_consts_26_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 14, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xf4\x06\x00\x0f\x21\xd0\x08\x20\xf9", -}; -static - struct _PyCode_DEF(22) -_collections_abc_toplevel_consts_26_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 11, - }, - .co_consts = & _collections_abc_toplevel_consts_26_consts_2_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_26_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_15_exceptiontable.ob_base.ob_base, - .co_flags = 131, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 213, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 389, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__anext__), - .co_qualname = & _collections_abc_toplevel_consts_26_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_26_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -_collections_abc_toplevel_consts_26_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncIterator.__aiter__", -}; -static - struct _PyCode_DEF(6) -_collections_abc_toplevel_consts_26_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 3, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 218, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 390, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__aiter__), - .co_qualname = & _collections_abc_toplevel_consts_26_consts_3_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_26_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - &_Py_ID(__anext__), - &_Py_ID(__aiter__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_26_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_AsyncIterator._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[31]; - } -_collections_abc_toplevel_consts_26_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 30, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncIterator.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[32]; - } -_collections_abc_toplevel_consts_26_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 31, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x2d\xd1\x0b\x1f\xdc\x13\x21\xa0\x21\xa0\x5b\xb0\x2b\xd3\x13\x3e\xd0\x0c\x3e\xdc\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(56) -_collections_abc_toplevel_consts_26_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & _collections_abc_toplevel_consts_26_consts_4_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_26_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 221, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 391, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_26_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_26_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0d\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\x64\x02\xab\x03\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_26_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_AsyncIterator._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_26_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_26_consts_3.ob_base.ob_base, - & _collections_abc_toplevel_consts_26_consts_4.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -_collections_abc_toplevel_consts_26_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__anext__), - &_Py_ID(__aiter__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[51]; - } -_collections_abc_toplevel_consts_26_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 50, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x13\xf1\x02\x02\x05\x21\xf3\x03\x00\x06\x14\xf0\x02\x02\x05\x21\xf2\x08\x01\x05\x14\xf0\x06\x00\x06\x11\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf1\x02\x03\x05\x1e", -}; -static - struct _PyCode_DEF(54) -_collections_abc_toplevel_consts_26 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & _collections_abc_toplevel_consts_26_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_26_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 209, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 392, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_AsyncIterator._ascii.ob_base, - .co_qualname = & const_str_AsyncIterator._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_26_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x64\x03\x84\x00\x5a\x06\x65\x07\x64\x04\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x08\x79\x05", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[113]; - } -_collections_abc_toplevel_consts_28_consts_2_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 112, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x20\x69\x74\x65\x6d\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x61\x73\x79\x6e\x63\x68\x72\x6f\x6e\x6f\x75\x73\x20\x67\x65\x6e\x65\x72\x61\x74\x6f\x72\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x57\x68\x65\x6e\x20\x65\x78\x68\x61\x75\x73\x74\x65\x64\x2c\x20\x72\x61\x69\x73\x65\x20\x53\x74\x6f\x70\x41\x73\x79\x6e\x63\x49\x74\x65\x72\x61\x74\x69\x6f\x6e\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_28_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & _collections_abc_toplevel_consts_28_consts_2_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_asend = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "asend", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_28_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_asend._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -_collections_abc_toplevel_consts_28_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncGenerator.__anext__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -_collections_abc_toplevel_consts_28_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xf0\x08\x00\x16\x1a\x97\x5a\x91\x5a\xa0\x04\xd3\x15\x25\xd7\x0f\x25\xd0\x08\x25\xd0\x0f\x25\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -_collections_abc_toplevel_consts_28_consts_2_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x82\x15\x1e\x01\x97\x01\x1c\x04\x98\x05\x1e\x01", -}; -static - struct _PyCode_DEF(64) -_collections_abc_toplevel_consts_28_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 32, - }, - .co_consts = & _collections_abc_toplevel_consts_28_consts_2_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_28_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_28_consts_2_exceptiontable.ob_base.ob_base, - .co_flags = 131, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 232, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 393, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__anext__), - .co_qualname = & _collections_abc_toplevel_consts_28_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_28_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x83\x00\x64\x01\x7b\x03\x00\x00\x96\x02\x97\x03\x86\x05\x05\x00\x53\x00\x37\x00\x8c\x04\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[118]; - } -_collections_abc_toplevel_consts_28_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 117, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x65\x6e\x64\x20\x61\x20\x76\x61\x6c\x75\x65\x20\x69\x6e\x74\x6f\x20\x74\x68\x65\x20\x61\x73\x79\x6e\x63\x68\x72\x6f\x6e\x6f\x75\x73\x20\x67\x65\x6e\x65\x72\x61\x74\x6f\x72\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x20\x6e\x65\x78\x74\x20\x79\x69\x65\x6c\x64\x65\x64\x20\x76\x61\x6c\x75\x65\x20\x6f\x72\x20\x72\x61\x69\x73\x65\x20\x53\x74\x6f\x70\x41\x73\x79\x6e\x63\x49\x74\x65\x72\x61\x74\x69\x6f\x6e\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_28_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_28_consts_3_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -_collections_abc_toplevel_consts_28_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncGenerator.asend", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[15]; - } -_collections_abc_toplevel_consts_28_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 14, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xf4\x0a\x00\x0f\x21\xd0\x08\x20\xf9", -}; -static - struct _PyCode_DEF(22) -_collections_abc_toplevel_consts_28_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 11, - }, - .co_consts = & _collections_abc_toplevel_consts_28_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_26_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_15_exceptiontable.ob_base.ob_base, - .co_flags = 131, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 238, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 394, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_asend._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_28_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_28_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[122]; - } -_collections_abc_toplevel_consts_28_consts_5_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 121, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x61\x69\x73\x65\x20\x61\x6e\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x20\x69\x6e\x20\x74\x68\x65\x20\x61\x73\x79\x6e\x63\x68\x72\x6f\x6e\x6f\x75\x73\x20\x67\x65\x6e\x65\x72\x61\x74\x6f\x72\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x20\x6e\x65\x78\x74\x20\x79\x69\x65\x6c\x64\x65\x64\x20\x76\x61\x6c\x75\x65\x20\x6f\x72\x20\x72\x61\x69\x73\x65\x20\x53\x74\x6f\x70\x41\x73\x79\x6e\x63\x49\x74\x65\x72\x61\x74\x69\x6f\x6e\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_28_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_28_consts_5_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_athrow = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "athrow", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -_collections_abc_toplevel_consts_28_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncGenerator.athrow", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[57]; - } -_collections_abc_toplevel_consts_28_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 56, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xf0\x0a\x00\x0c\x0f\x88\x3b\xd8\x0f\x11\x88\x7a\xd8\x16\x19\x90\x09\xd9\x12\x15\x93\x25\x88\x43\xd8\x0b\x0d\x88\x3e\xd8\x12\x15\xd7\x12\x24\xd1\x12\x24\xa0\x52\xd3\x12\x28\x88\x43\xd8\x0e\x11\x88\x09\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -_collections_abc_toplevel_consts_28_consts_5_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x82\x23\x25\x01", -}; -static - struct _PyCode_DEF(78) -_collections_abc_toplevel_consts_28_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 39, - }, - .co_consts = & _collections_abc_toplevel_consts_28_consts_5_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_22_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_28_consts_5_exceptiontable.ob_base.ob_base, - .co_flags = 131, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 245, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 395, - .co_localsplusnames = & _collections_abc_toplevel_consts_22_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_athrow._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_28_consts_5_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_28_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x7c\x02\x80\x0b\x7c\x03\x80\x02\x7c\x01\x82\x01\x02\x00\x7c\x01\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x03\x81\x11\x7c\x02\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x02\x82\x01\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[45]; - } -_collections_abc_toplevel_consts_28_consts_6_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 44, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "asynchronous generator ignored GeneratorExit", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_28_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & _collections_abc_toplevel_consts_22_consts_5_consts_0._ascii.ob_base, - Py_None, - & _collections_abc_toplevel_consts_28_consts_6_consts_2._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_28_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_athrow._ascii.ob_base, - & const_str_GeneratorExit._ascii.ob_base, - & const_str_RuntimeError._ascii.ob_base, - & const_str_StopAsyncIteration._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_aclose = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "aclose", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -_collections_abc_toplevel_consts_28_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncGenerator.aclose", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[73]; - } -_collections_abc_toplevel_consts_28_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 72, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xf0\x06\x05\x09\x4f\x01\xd8\x12\x16\x97\x2b\x91\x2b\x9c\x6d\xd3\x12\x2c\xd7\x0c\x2c\xd0\x0c\x2c\xf4\x08\x00\x13\x1f\xd0\x1f\x4d\xd3\x12\x4e\xd0\x0c\x4e\xf0\x09\x00\x0d\x2d\xf9\xdc\x10\x1d\xd4\x1f\x31\xd0\x0f\x32\xf2\x00\x01\x09\x11\xd9\x0c\x10\xf0\x03\x01\x09\x11\xfc", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[48]; - } -_collections_abc_toplevel_consts_28_consts_6_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 47, - }, - .ob_shash = -1, - .ob_sval = "\x82\x01\x41\x03\x01\x84\x18\x2e\x00\x9c\x01\x2c\x04\x9d\x04\x2e\x00\xa1\x0b\x41\x03\x01\xac\x01\x2e\x00\xae\x0f\x41\x00\x03\xbd\x02\x41\x03\x01\xbf\x01\x41\x00\x03\xc1\x00\x03\x41\x03\x01", -}; -static - struct _PyCode_DEF(138) -_collections_abc_toplevel_consts_28_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 69, - }, - .co_consts = & _collections_abc_toplevel_consts_28_consts_6_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_28_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_28_consts_6_exceptiontable.ob_base.ob_base, - .co_flags = 131, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 258, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 396, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_aclose._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_28_consts_6_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_28_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x09\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x83\x00\x64\x01\x7b\x03\x00\x00\x96\x03\x97\x03\x86\x05\x05\x00\x01\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x37\x00\x8c\x0f\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_28_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - Py_None, - &_Py_ID(__aiter__), - &_Py_ID(__anext__), - & const_str_asend._ascii.ob_base, - & const_str_athrow._ascii.ob_base, - & const_str_aclose._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_28_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_AsyncGenerator._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -_collections_abc_toplevel_consts_28_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "AsyncGenerator.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[43]; - } -_collections_abc_toplevel_consts_28_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 42, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x2e\xd1\x0b\x20\xdc\x13\x21\xa0\x21\xa0\x5b\xb0\x2b\xd8\x22\x29\xa8\x38\xb0\x58\xf3\x03\x01\x14\x3f\xf0\x00\x01\x0d\x3f\xe4\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(62) -_collections_abc_toplevel_consts_28_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 31, - }, - .co_consts = & _collections_abc_toplevel_consts_28_consts_7_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_28_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 268, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 397, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_28_consts_7_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_28_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x10\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\x64\x02\x64\x03\x64\x04\x64\x05\xab\x06\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -_collections_abc_toplevel_consts_28_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & const_str_AsyncGenerator._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_28_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_28_consts_3.ob_base.ob_base, - Py_None, - & _collections_abc_toplevel_consts_28_consts_5.ob_base.ob_base, - & _collections_abc_toplevel_consts_28_consts_6.ob_base.ob_base, - & _collections_abc_toplevel_consts_28_consts_7.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_44_consts_10._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -_collections_abc_toplevel_consts_28_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - &_Py_ID(__anext__), - & const_str_abstractmethod._ascii.ob_base, - & const_str_asend._ascii.ob_base, - & const_str_athrow._ascii.ob_base, - & const_str_aclose._ascii.ob_base, - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[79]; - } -_collections_abc_toplevel_consts_28_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 78, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xf2\x04\x04\x05\x26\xf0\x0c\x00\x06\x14\xf1\x02\x04\x05\x21\xf3\x03\x00\x06\x14\xf0\x02\x04\x05\x21\xf0\x0c\x00\x06\x14\xf2\x02\x0a\x05\x12\xf3\x03\x00\x06\x14\xf0\x02\x0a\x05\x12\xf2\x18\x08\x05\x4f\x01\xf0\x14\x00\x06\x11\xf1\x02\x04\x05\x1e\xf3\x03\x00\x06\x11\xf1\x02\x04\x05\x1e", -}; -static - struct _PyCode_DEF(78) -_collections_abc_toplevel_consts_28 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 39, - }, - .co_consts = & _collections_abc_toplevel_consts_28_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_28_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 228, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 398, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_AsyncGenerator._ascii.ob_base, - .co_qualname = & const_str_AsyncGenerator._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_28_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x65\x05\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x06\x65\x05\x64\x08\x64\x05\x84\x01\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x64\x06\x84\x00\x5a\x08\x65\x09\x64\x07\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x0a\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -_collections_abc_toplevel_consts_30_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Iterable.__iter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[10]; - } -_collections_abc_toplevel_consts_30_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 9, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xe0\x0e\x13\xf9", -}; -static - struct _PyCode_DEF(12) -_collections_abc_toplevel_consts_30_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 6, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = & _collections_abc_toplevel_consts_14_exceptiontable.ob_base.ob_base, - .co_flags = 35, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 283, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 399, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iter__), - .co_qualname = & _collections_abc_toplevel_consts_30_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_30_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_30_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - &_Py_ID(__iter__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_30_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_Iterable._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -_collections_abc_toplevel_consts_30_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Iterable.__subclasshook__", -}; -static - struct _PyCode_DEF(54) -_collections_abc_toplevel_consts_30_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & _collections_abc_toplevel_consts_30_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_30_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 288, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 400, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_30_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_17_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_30_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_Iterable._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_30_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_30_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -_collections_abc_toplevel_consts_30_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__iter__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - & const_str_GenericAlias._ascii.ob_base, - &_Py_ID(__class_getitem__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[59]; - } -_collections_abc_toplevel_consts_30_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 58, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x13\xf1\x02\x02\x05\x17\xf3\x03\x00\x06\x14\xf0\x02\x02\x05\x17\xf0\x08\x00\x06\x11\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf0\x02\x03\x05\x1e\xf1\x0a\x00\x19\x24\xa0\x4c\xd3\x18\x31\xd1\x04\x15", -}; -static - struct _PyCode_DEF(64) -_collections_abc_toplevel_consts_30 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 32, - }, - .co_consts = & _collections_abc_toplevel_consts_30_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_30_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 279, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 401, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Iterable._ascii.ob_base, - .co_qualname = & const_str_Iterable._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_30_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x65\x06\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x02\x00\x65\x06\x65\x08\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x09\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[76]; - } -_collections_abc_toplevel_consts_32_consts_2_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 75, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return the next item from the iterator. When exhausted, raise StopIteration", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_32_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_32_consts_2_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -_collections_abc_toplevel_consts_32_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Iterator.__next__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[11]; - } -_collections_abc_toplevel_consts_32_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 10, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x0f\x1c\xd0\x08\x1b", -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_32_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & _collections_abc_toplevel_consts_32_consts_2_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_22_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 301, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 402, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__next__), - .co_qualname = & _collections_abc_toplevel_consts_32_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_32_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -_collections_abc_toplevel_consts_32_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Iterator.__iter__", -}; -static - struct _PyCode_DEF(6) -_collections_abc_toplevel_consts_32_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 3, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 306, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 403, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iter__), - .co_qualname = & _collections_abc_toplevel_consts_32_consts_3_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_24_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_32_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - &_Py_ID(__iter__), - &_Py_ID(__next__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_32_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_Iterator._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -_collections_abc_toplevel_consts_32_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Iterator.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[31]; - } -_collections_abc_toplevel_consts_32_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 30, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x28\x89\x3f\xdc\x13\x21\xa0\x21\xa0\x5a\xb0\x1a\xd3\x13\x3c\xd0\x0c\x3c\xdc\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(56) -_collections_abc_toplevel_consts_32_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & _collections_abc_toplevel_consts_32_consts_4_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_32_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 309, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 404, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_32_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_32_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0d\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\x64\x02\xab\x03\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_32_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_Iterator._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_32_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_32_consts_3.ob_base.ob_base, - & _collections_abc_toplevel_consts_32_consts_4.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -_collections_abc_toplevel_consts_32_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__next__), - &_Py_ID(__iter__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[51]; - } -_collections_abc_toplevel_consts_32_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 50, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x13\xf1\x02\x02\x05\x1c\xf3\x03\x00\x06\x14\xf0\x02\x02\x05\x1c\xf2\x08\x01\x05\x14\xf0\x06\x00\x06\x11\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf1\x02\x03\x05\x1e", -}; -static - struct _PyCode_DEF(54) -_collections_abc_toplevel_consts_32 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & _collections_abc_toplevel_consts_32_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_32_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 297, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 405, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Iterator._ascii.ob_base, - .co_qualname = & const_str_Iterator._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_32_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x64\x03\x84\x00\x5a\x06\x65\x07\x64\x04\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x08\x79\x05", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -_collections_abc_toplevel_consts_34_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Reversible.__reversed__", -}; -static - struct _PyCode_DEF(12) -_collections_abc_toplevel_consts_34_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 6, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = & _collections_abc_toplevel_consts_14_exceptiontable.ob_base.ob_base, - .co_flags = 35, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 336, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 406, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__reversed__), - .co_qualname = & _collections_abc_toplevel_consts_34_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_30_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_34_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - &_Py_ID(__reversed__), - &_Py_ID(__iter__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_34_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_Reversible._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -_collections_abc_toplevel_consts_34_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Reversible.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[32]; - } -_collections_abc_toplevel_consts_34_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 31, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x2a\xd1\x0b\x1c\xdc\x13\x21\xa0\x21\xa0\x5e\xb0\x5a\xd3\x13\x40\xd0\x0c\x40\xdc\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(56) -_collections_abc_toplevel_consts_34_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & _collections_abc_toplevel_consts_34_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_34_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 341, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 407, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_34_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_34_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0d\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\x64\x02\xab\x03\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_34_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_Reversible._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_34_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_34_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -_collections_abc_toplevel_consts_34_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__reversed__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[46]; - } -_collections_abc_toplevel_consts_34_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 45, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x13\xf1\x02\x02\x05\x17\xf3\x03\x00\x06\x14\xf0\x02\x02\x05\x17\xf0\x08\x00\x06\x11\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf1\x02\x03\x05\x1e", -}; -static - struct _PyCode_DEF(48) -_collections_abc_toplevel_consts_34 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 24, - }, - .co_consts = & _collections_abc_toplevel_consts_34_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_34_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 332, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 408, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Reversible._ascii.ob_base, - .co_qualname = & const_str_Reversible._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_34_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x65\x06\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[95]; - } -_collections_abc_toplevel_consts_36_consts_2_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 94, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x20\x69\x74\x65\x6d\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x67\x65\x6e\x65\x72\x61\x74\x6f\x72\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x57\x68\x65\x6e\x20\x65\x78\x68\x61\x75\x73\x74\x65\x64\x2c\x20\x72\x61\x69\x73\x65\x20\x53\x74\x6f\x70\x49\x74\x65\x72\x61\x74\x69\x6f\x6e\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_36_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & _collections_abc_toplevel_consts_36_consts_2_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_36_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(send), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -_collections_abc_toplevel_consts_36_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Generator.__next__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -_collections_abc_toplevel_consts_36_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x00\x10\x14\x8f\x79\x89\x79\x98\x14\x8b\x7f\xd0\x08\x1e", -}; -static - struct _PyCode_DEF(36) -_collections_abc_toplevel_consts_36_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 18, - }, - .co_consts = & _collections_abc_toplevel_consts_36_consts_2_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_36_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 352, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 409, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__next__), - .co_qualname = & _collections_abc_toplevel_consts_36_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_36_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[100]; - } -_collections_abc_toplevel_consts_36_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 99, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x65\x6e\x64\x20\x61\x20\x76\x61\x6c\x75\x65\x20\x69\x6e\x74\x6f\x20\x74\x68\x65\x20\x67\x65\x6e\x65\x72\x61\x74\x6f\x72\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x20\x6e\x65\x78\x74\x20\x79\x69\x65\x6c\x64\x65\x64\x20\x76\x61\x6c\x75\x65\x20\x6f\x72\x20\x72\x61\x69\x73\x65\x20\x53\x74\x6f\x70\x49\x74\x65\x72\x61\x74\x69\x6f\x6e\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_36_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_36_consts_3_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -_collections_abc_toplevel_consts_36_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Generator.send", -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_36_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & _collections_abc_toplevel_consts_36_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_22_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 358, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 410, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(send), - .co_qualname = & _collections_abc_toplevel_consts_36_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_22_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[104]; - } -_collections_abc_toplevel_consts_36_consts_5_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 103, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x61\x69\x73\x65\x20\x61\x6e\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x20\x69\x6e\x20\x74\x68\x65\x20\x67\x65\x6e\x65\x72\x61\x74\x6f\x72\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x20\x6e\x65\x78\x74\x20\x79\x69\x65\x6c\x64\x65\x64\x20\x76\x61\x6c\x75\x65\x20\x6f\x72\x20\x72\x61\x69\x73\x65\x20\x53\x74\x6f\x70\x49\x74\x65\x72\x61\x74\x69\x6f\x6e\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_36_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_36_consts_5_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -_collections_abc_toplevel_consts_36_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Generator.throw", -}; -static - struct _PyCode_DEF(70) -_collections_abc_toplevel_consts_36_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 35, - }, - .co_consts = & _collections_abc_toplevel_consts_36_consts_5_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_22_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 365, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 411, - .co_localsplusnames = & _collections_abc_toplevel_consts_22_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(throw), - .co_qualname = & _collections_abc_toplevel_consts_36_consts_5_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_22_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x02\x80\x0b\x7c\x03\x80\x02\x7c\x01\x82\x01\x02\x00\x7c\x01\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x03\x81\x11\x7c\x02\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x02\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[47]; - } -_collections_abc_toplevel_consts_36_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 46, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x61\x69\x73\x65\x20\x47\x65\x6e\x65\x72\x61\x74\x6f\x72\x45\x78\x69\x74\x20\x69\x6e\x73\x69\x64\x65\x20\x67\x65\x6e\x65\x72\x61\x74\x6f\x72\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -_collections_abc_toplevel_consts_36_consts_6_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "generator ignored GeneratorExit", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_36_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & _collections_abc_toplevel_consts_36_consts_6_consts_0._ascii.ob_base, - & _collections_abc_toplevel_consts_36_consts_6_consts_1._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -_collections_abc_toplevel_consts_36_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Generator.close", -}; -static - struct _PyCode_DEF(110) -_collections_abc_toplevel_consts_36_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 55, - }, - .co_consts = & _collections_abc_toplevel_consts_36_consts_6_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_22_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_22_consts_5_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 378, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 412, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(close), - .co_qualname = & _collections_abc_toplevel_consts_36_consts_6_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_22_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x03\x01\x00\x59\x00\x79\x02\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_36_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - Py_None, - &_Py_ID(__iter__), - &_Py_ID(__next__), - &_Py_ID(send), - &_Py_ID(throw), - &_Py_ID(close), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_36_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_Generator._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -_collections_abc_toplevel_consts_36_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Generator.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[43]; - } -_collections_abc_toplevel_consts_36_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 42, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x29\xd1\x0b\x1b\xdc\x13\x21\xa0\x21\xa0\x5a\xb0\x1a\xd8\x22\x28\xa8\x27\xb0\x37\xf3\x03\x01\x14\x3c\xf0\x00\x01\x0d\x3c\xe4\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(62) -_collections_abc_toplevel_consts_36_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 31, - }, - .co_consts = & _collections_abc_toplevel_consts_36_consts_7_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_36_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 388, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 413, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_36_consts_7_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_36_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x10\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\x64\x02\x64\x03\x64\x04\x64\x05\xab\x06\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -_collections_abc_toplevel_consts_36_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & const_str_Generator._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_36_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_36_consts_3.ob_base.ob_base, - Py_None, - & _collections_abc_toplevel_consts_36_consts_5.ob_base.ob_base, - & _collections_abc_toplevel_consts_36_consts_6.ob_base.ob_base, - & _collections_abc_toplevel_consts_36_consts_7.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_44_consts_10._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -_collections_abc_toplevel_consts_36_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - &_Py_ID(__next__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(send), - &_Py_ID(throw), - &_Py_ID(close), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[79]; - } -_collections_abc_toplevel_consts_36_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 78, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xf2\x04\x04\x05\x1f\xf0\x0c\x00\x06\x14\xf1\x02\x04\x05\x1c\xf3\x03\x00\x06\x14\xf0\x02\x04\x05\x1c\xf0\x0c\x00\x06\x14\xf2\x02\x0a\x05\x12\xf3\x03\x00\x06\x14\xf0\x02\x0a\x05\x12\xf2\x18\x08\x05\x42\x01\xf0\x14\x00\x06\x11\xf1\x02\x04\x05\x1e\xf3\x03\x00\x06\x11\xf1\x02\x04\x05\x1e", -}; -static - struct _PyCode_DEF(78) -_collections_abc_toplevel_consts_36 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 39, - }, - .co_consts = & _collections_abc_toplevel_consts_36_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_36_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 348, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 414, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Generator._ascii.ob_base, - .co_qualname = & const_str_Generator._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_36_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x65\x05\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x06\x65\x05\x64\x08\x64\x05\x84\x01\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x64\x06\x84\x00\x5a\x08\x65\x09\x64\x07\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x0a\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -_collections_abc_toplevel_consts_38_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Sized.__len__", -}; -static - struct _PyCode_DEF(4) -_collections_abc_toplevel_consts_38_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 403, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 415, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__len__), - .co_qualname = & _collections_abc_toplevel_consts_38_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_17_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_38_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - &_Py_ID(__len__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_38_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_Sized._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -_collections_abc_toplevel_consts_38_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Sized.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[29]; - } -_collections_abc_toplevel_consts_38_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 28, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x25\x89\x3c\xdc\x13\x21\xa0\x21\xa0\x59\xd3\x13\x2f\xd0\x0c\x2f\xdc\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(54) -_collections_abc_toplevel_consts_38_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & _collections_abc_toplevel_consts_38_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_38_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 407, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 416, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_38_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_38_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_38_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_Sized._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_38_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_38_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -_collections_abc_toplevel_consts_38_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__len__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - }, - }, -}; -static - struct _PyCode_DEF(48) -_collections_abc_toplevel_consts_38 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 24, - }, - .co_consts = & _collections_abc_toplevel_consts_38_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_38_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 399, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 417, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Sized._ascii.ob_base, - .co_qualname = & const_str_Sized._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_17_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x65\x06\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -_collections_abc_toplevel_consts_40_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Container.__contains__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -_collections_abc_toplevel_consts_40_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0f\x14", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_40_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - (PyObject *)&_Py_SINGLETON(strings).ascii[120], - }, - }, -}; -static - struct _PyCode_DEF(4) -_collections_abc_toplevel_consts_40_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_30_consts_4_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 418, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 418, - .co_localsplusnames = & _collections_abc_toplevel_consts_40_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__contains__), - .co_qualname = & _collections_abc_toplevel_consts_40_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_40_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_40_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - &_Py_ID(__contains__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_40_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_Container._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -_collections_abc_toplevel_consts_40_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Container.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -_collections_abc_toplevel_consts_40_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x29\xd1\x0b\x1b\xdc\x13\x21\xa0\x21\xa0\x5e\xd3\x13\x34\xd0\x0c\x34\xdc\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(54) -_collections_abc_toplevel_consts_40_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & _collections_abc_toplevel_consts_40_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_40_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 422, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 419, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_40_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_40_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_40_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_Container._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_40_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_40_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -_collections_abc_toplevel_consts_40_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__contains__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - & const_str_GenericAlias._ascii.ob_base, - &_Py_ID(__class_getitem__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[59]; - } -_collections_abc_toplevel_consts_40_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 58, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x13\xf1\x02\x01\x05\x15\xf3\x03\x00\x06\x14\xf0\x02\x01\x05\x15\xf0\x06\x00\x06\x11\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf0\x02\x03\x05\x1e\xf1\x0a\x00\x19\x24\xa0\x4c\xd3\x18\x31\xd1\x04\x15", -}; -static - struct _PyCode_DEF(64) -_collections_abc_toplevel_consts_40 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 32, - }, - .co_consts = & _collections_abc_toplevel_consts_40_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_40_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 414, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 420, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Container._ascii.ob_base, - .co_qualname = & const_str_Container._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_40_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x65\x06\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x02\x00\x65\x06\x65\x08\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x09\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_42_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - &_Py_ID(__len__), - &_Py_ID(__iter__), - &_Py_ID(__contains__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_42_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_Collection._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -_collections_abc_toplevel_consts_42_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Collection.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[34]; - } -_collections_abc_toplevel_consts_42_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 33, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x2a\xd1\x0b\x1c\xdc\x13\x21\xa0\x21\xa0\x69\xb0\x1a\xb8\x5e\xd3\x13\x4c\xd0\x0c\x4c\xdc\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(58) -_collections_abc_toplevel_consts_42_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 29, - }, - .co_consts = & _collections_abc_toplevel_consts_42_consts_2_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_42_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 435, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 421, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_42_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_42_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0e\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\x64\x02\x64\x03\xab\x04\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_42_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_Collection._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_42_consts_2.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_42_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[26]; - } -_collections_abc_toplevel_consts_42_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 25, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x10\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf1\x02\x03\x05\x1e", -}; -static - struct _PyCode_DEF(32) -_collections_abc_toplevel_consts_42 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 16, - }, - .co_consts = & _collections_abc_toplevel_consts_42_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_42_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 431, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 422, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Collection._ascii.ob_base, - .co_qualname = & const_str_Collection._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_42_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x79\x03", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -_collections_abc_toplevel_consts_44_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Buffer.__buffer__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -_collections_abc_toplevel_consts_44_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0e\x21\xd0\x08\x21", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_44_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(flags), - }, - }, -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_44_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_14_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 2, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 446, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 423, - .co_localsplusnames = & _collections_abc_toplevel_consts_44_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__buffer__), - .co_qualname = & _collections_abc_toplevel_consts_44_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_44_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_44_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - &_Py_ID(__buffer__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_44_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_Buffer._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -_collections_abc_toplevel_consts_44_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Buffer.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[29]; - } -_collections_abc_toplevel_consts_44_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 28, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x26\x89\x3d\xdc\x13\x21\xa0\x21\xa0\x5c\xd3\x13\x32\xd0\x0c\x32\xdc\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(54) -_collections_abc_toplevel_consts_44_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & _collections_abc_toplevel_consts_44_consts_5_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_44_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 450, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 424, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_44_consts_5_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_44_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -_collections_abc_toplevel_consts_44_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_Buffer._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - &_Py_ID(flags), - &_Py_ID(return), - & _collections_abc_toplevel_consts_44_consts_4.ob_base.ob_base, - & _collections_abc_toplevel_consts_44_consts_5.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -_collections_abc_toplevel_consts_44_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - & const_str_int._ascii.ob_base, - & const_str_memoryview._ascii.ob_base, - &_Py_ID(__buffer__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[60]; - } -_collections_abc_toplevel_consts_44_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 59, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x13\xf0\x02\x01\x05\x22\xa0\x03\xf0\x00\x01\x05\x22\xa8\x3a\xf2\x00\x01\x05\x22\xf3\x03\x00\x06\x14\xf0\x02\x01\x05\x22\xf0\x06\x00\x06\x11\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf1\x02\x03\x05\x1e", -}; -static - struct _PyCode_DEF(58) -_collections_abc_toplevel_consts_44 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 29, - }, - .co_consts = & _collections_abc_toplevel_consts_44_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_44_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 442, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 425, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Buffer._ascii.ob_base, - .co_qualname = & const_str_Buffer._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_44_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x65\x05\x64\x03\x65\x06\x66\x04\x64\x04\x84\x04\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x65\x08\x64\x05\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x09\x79\x06", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -const_str__CallableGenericAlias = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_CallableGenericAlias", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[253]; - } -_collections_abc_toplevel_consts_46_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 252, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x52\x65\x70\x72\x65\x73\x65\x6e\x74\x20\x60\x43\x61\x6c\x6c\x61\x62\x6c\x65\x5b\x61\x72\x67\x74\x79\x70\x65\x73\x2c\x20\x72\x65\x73\x75\x6c\x74\x74\x79\x70\x65\x5d\x60\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x73\x65\x74\x73\x20\x60\x60\x5f\x5f\x61\x72\x67\x73\x5f\x5f\x60\x60\x20\x74\x6f\x20\x61\x20\x74\x75\x70\x6c\x65\x20\x63\x6f\x6e\x74\x61\x69\x6e\x69\x6e\x67\x20\x74\x68\x65\x20\x66\x6c\x61\x74\x74\x65\x6e\x65\x64\x20\x60\x60\x61\x72\x67\x74\x79\x70\x65\x73\x60\x60\x0a\x20\x20\x20\x20\x66\x6f\x6c\x6c\x6f\x77\x65\x64\x20\x62\x79\x20\x60\x60\x72\x65\x73\x75\x6c\x74\x74\x79\x70\x65\x60\x60\x2e\x0a\x0a\x20\x20\x20\x20\x45\x78\x61\x6d\x70\x6c\x65\x3a\x20\x60\x60\x43\x61\x6c\x6c\x61\x62\x6c\x65\x5b\x5b\x69\x6e\x74\x2c\x20\x73\x74\x72\x5d\x2c\x20\x66\x6c\x6f\x61\x74\x5d\x60\x60\x20\x73\x65\x74\x73\x20\x60\x60\x5f\x5f\x61\x72\x67\x73\x5f\x5f\x60\x60\x20\x74\x6f\x0a\x20\x20\x20\x20\x60\x60\x28\x69\x6e\x74\x2c\x20\x73\x74\x72\x2c\x20\x66\x6c\x6f\x61\x74\x29\x60\x60\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[55]; - } -_collections_abc_toplevel_consts_46_consts_3_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 54, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Callable must be used as Callable[[arg, ...], result].", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[71]; - } -_collections_abc_toplevel_consts_46_consts_3_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 70, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Expected a list of types, an ellipsis, ParamSpec, or Concatenate. Got ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_46_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - & _collections_abc_toplevel_consts_46_consts_3_consts_2._ascii.ob_base, - & _collections_abc_toplevel_consts_46_consts_3_consts_3._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__is_param_expr = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_is_param_expr", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -_collections_abc_toplevel_consts_46_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_tuple._ascii.ob_base, - &_Py_ID(len), - & const_str_TypeError._ascii.ob_base, - & const_str_list._ascii.ob_base, - & const_str__is_param_expr._ascii.ob_base, - & const_str_super._ascii.ob_base, - &_Py_ID(__new__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[30]; - } -_collections_abc_toplevel_consts_46_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 29, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_CallableGenericAlias.__new__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[139]; - } -_collections_abc_toplevel_consts_46_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 138, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xdc\x10\x1a\x98\x34\xa4\x15\xd4\x10\x27\xac\x43\xb0\x04\xab\x49\xb8\x11\xaa\x4e\xdc\x12\x1b\xd8\x10\x48\xf3\x03\x01\x13\x4a\x01\xf0\x00\x01\x0d\x4a\x01\xe0\x1b\x1f\xd1\x08\x18\x88\x06\x90\x08\xdc\x0b\x15\x90\x66\x9c\x75\xa4\x64\x98\x6d\xd4\x0b\x2c\xd8\x13\x26\x90\x56\xd0\x13\x26\x98\x58\xd1\x13\x26\x89\x44\xdc\x11\x1f\xa0\x06\xd4\x11\x27\xdc\x12\x1b\xf0\x00\x01\x1f\x3e\xd8\x3e\x44\xb8\x58\xf0\x03\x01\x1d\x47\x01\xf3\x00\x01\x13\x48\x01\xf0\x00\x01\x0d\x48\x01\xe4\x0f\x14\x89\x77\x89\x7f\x98\x73\xa0\x46\xa8\x44\xd3\x0f\x31\xd0\x08\x31", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_t_args = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "t_args", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_t_result = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "t_result", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_46_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_cls._ascii.ob_base, - &_Py_ID(origin), - &_Py_ID(args), - & const_str_t_args._ascii.ob_base, - & const_str_t_result._ascii.ob_base, - &_Py_ID(__class__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[7]; - } -_collections_abc_toplevel_consts_46_consts_3_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 6, - }, - .ob_shash = -1, - .ob_sval = "\x20\x20\x20\x20\x20\x80", -}; -static - struct _PyCode_DEF(240) -_collections_abc_toplevel_consts_46_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 120, - }, - .co_consts = & _collections_abc_toplevel_consts_46_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_46_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 469, - .co_nlocalsplus = 6, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 426, - .co_localsplusnames = & _collections_abc_toplevel_consts_46_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & _collections_abc_toplevel_consts_46_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__new__), - .co_qualname = & _collections_abc_toplevel_consts_46_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_46_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x0e\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x6b\x28\x00\x00\x73\x0b\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x02\x5c\x02\x00\x00\x7d\x03\x7d\x04\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\xab\x02\x00\x00\x00\x00\x00\x00\x72\x08\x67\x00\x7c\x03\xa2\x01\x7c\x04\x91\x01\xad\x06\x7d\x02\x6e\x19\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x73\x0e\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x7c\x03\x9b\x00\x9d\x02\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x89\x05\x7c\x00\x8d\x1d\x00\x00\x7c\x00\x7c\x01\x7c\x02\xab\x03\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -_collections_abc_toplevel_consts_46_consts_4_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "collections.abc.Callable[[", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -_collections_abc_toplevel_consts_46_consts_4_consts_6 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "], ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -_collections_abc_toplevel_consts_46_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & _collections_abc_toplevel_consts_46_consts_4_consts_3._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_30_consts_5_consts_6._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - & _collections_abc_toplevel_consts_46_consts_4_consts_6._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[93], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str__type_repr = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_type_repr", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -_collections_abc_toplevel_consts_46_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(len), - &_Py_ID(__args__), - & const_str__is_param_expr._ascii.ob_base, - & const_str_super._ascii.ob_base, - &_Py_ID(__repr__), - &_Py_ID(join), - & const_str__type_repr._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[31]; - } -_collections_abc_toplevel_consts_46_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 30, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_CallableGenericAlias.__repr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[140]; - } -_collections_abc_toplevel_consts_46_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 139, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xdc\x0b\x0e\x88\x74\x8f\x7d\x89\x7d\xd3\x0b\x1d\xa0\x11\xd2\x0b\x22\xa4\x7e\xb0\x64\xb7\x6d\xb1\x6d\xc0\x41\xd1\x36\x46\xd4\x27\x47\xdc\x13\x18\x91\x37\xd1\x13\x23\xd3\x13\x25\xd0\x0c\x25\xf0\x02\x01\x13\x15\xd8\x15\x19\x97\x59\x91\x59\xb0\x74\xb7\x7d\xb1\x7d\xc0\x53\xc0\x62\xd1\x37\x49\xd3\x1f\x4a\xd1\x37\x49\xb0\x21\xa4\x0a\xa8\x31\xa5\x0d\xd0\x37\x49\xd1\x1f\x4a\xd3\x15\x4b\xd0\x14\x4c\xc8\x43\xdc\x13\x1d\x98\x64\x9f\x6d\x99\x6d\xa8\x42\xd1\x1e\x2f\xd3\x13\x30\xd0\x12\x31\xb0\x11\xf0\x05\x02\x11\x34\xf0\x00\x02\x09\x35\xf9\xda\x1f\x4a", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[7]; - } -_collections_abc_toplevel_consts_46_consts_4_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 6, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x1d\x12\x42\x12\x0a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_46_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - (PyObject *)&_Py_SINGLETON(strings).ascii[97], - &_Py_ID(__class__), - }, - }, -}; -static - struct _PyCode_DEF(302) -_collections_abc_toplevel_consts_46_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 151, - }, - .co_consts = & _collections_abc_toplevel_consts_46_consts_4_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_46_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_46_consts_4_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 9, - .co_firstlineno = 481, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 427, - .co_localsplusnames = & _collections_abc_toplevel_consts_46_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__repr__), - .co_qualname = & _collections_abc_toplevel_consts_46_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_46_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x6b\x28\x00\x00\x72\x26\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x72\x0e\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x89\x02\x7c\x00\x8d\x11\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x53\x00\x64\x03\x64\x04\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x64\x05\x1a\x00\x44\x00\x8f\x01\x63\x02\x67\x00\x63\x02\x5d\x0d\x00\x00\x7d\x01\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x91\x02\x8c\x0f\x04\x00\x63\x02\x7d\x01\xab\x01\x00\x00\x00\x00\x00\x00\x9b\x00\x64\x06\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x9b\x00\x64\x07\x9d\x05\x53\x00\x63\x02\x01\x00\x63\x02\x7d\x01\x77\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_46_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_46_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__args__), - &_Py_ID(len), - & const_str__is_param_expr._ascii.ob_base, - & const_str_list._ascii.ob_base, - & const_str__CallableGenericAlias._ascii.ob_base, - & const_str_Callable._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[33]; - } -_collections_abc_toplevel_consts_46_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 32, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_CallableGenericAlias.__reduce__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[74]; - } -_collections_abc_toplevel_consts_46_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 73, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0f\x13\x8f\x7d\x89\x7d\x88\x04\xdc\x10\x13\x90\x44\x93\x09\x98\x51\x92\x0e\xa4\x3e\xb0\x24\xb0\x71\xb1\x27\xd4\x23\x3a\xdc\x13\x17\x98\x04\x98\x53\x98\x62\x98\x09\x93\x3f\xa0\x44\xa8\x12\xa1\x48\xd0\x13\x2c\x88\x44\xdc\x0f\x24\xa4\x78\xb0\x14\xd0\x26\x36\xd0\x0f\x36\xd0\x08\x36", -}; -static - struct _PyCode_DEF(148) -_collections_abc_toplevel_consts_46_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 74, - }, - .co_consts = & _collections_abc_toplevel_consts_46_consts_5_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_46_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 488, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 428, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__reduce__), - .co_qualname = & _collections_abc_toplevel_consts_46_consts_5_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_46_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x6b\x28\x00\x00\x72\x0e\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x02\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x73\x13\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x00\x64\x03\x1a\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x03\x19\x00\x00\x00\x66\x02\x7d\x01\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x66\x02\x66\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_46_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -_collections_abc_toplevel_consts_46_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_tuple._ascii.ob_base, - & const_str_super._ascii.ob_base, - &_Py_ID(__getitem__), - &_Py_ID(__args__), - & const_str_list._ascii.ob_base, - & const_str__CallableGenericAlias._ascii.ob_base, - & const_str_Callable._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[34]; - } -_collections_abc_toplevel_consts_46_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 33, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_CallableGenericAlias.__getitem__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[111]; - } -_collections_abc_toplevel_consts_46_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 110, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xf4\x0a\x00\x10\x1a\x98\x24\xa4\x05\xd4\x0f\x26\xd8\x14\x18\x90\x37\x88\x44\xe4\x13\x18\x91\x37\xd1\x13\x26\xa0\x74\xd3\x13\x2c\xd7\x13\x35\xd1\x13\x35\x88\x08\xf4\x06\x00\x10\x1a\x98\x28\xa0\x31\x99\x2b\xac\x05\xac\x74\xa0\x7d\xd4\x0f\x35\xd8\x17\x1f\xa0\x02\x91\x7c\x88\x48\xd8\x15\x1d\x98\x63\x98\x72\x90\x5d\x88\x46\xd8\x18\x1e\xa0\x08\xd0\x17\x29\x88\x48\xdc\x0f\x24\xa4\x58\xac\x75\xb0\x58\xab\x7f\xd3\x0f\x3f\xd0\x08\x3f", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_new_args = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "new_args", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_46_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(item), - & const_str_new_args._ascii.ob_base, - & const_str_t_result._ascii.ob_base, - & const_str_t_args._ascii.ob_base, - &_Py_ID(__class__), - }, - }, -}; -static - struct _PyCode_DEF(220) -_collections_abc_toplevel_consts_46_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 110, - }, - .co_consts = & _collections_abc_toplevel_consts_46_consts_6_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_46_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 494, - .co_nlocalsplus = 6, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 429, - .co_localsplusnames = & _collections_abc_toplevel_consts_46_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & _collections_abc_toplevel_consts_46_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__getitem__), - .co_qualname = & _collections_abc_toplevel_consts_46_consts_6_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_46_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x03\x7c\x01\x66\x01\x7d\x01\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x89\x05\x7c\x00\x8d\x0d\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x64\x01\x19\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\xab\x02\x00\x00\x00\x00\x00\x00\x73\x0e\x7c\x02\x64\x02\x19\x00\x00\x00\x7d\x03\x7c\x02\x64\x00\x64\x02\x1a\x00\x7d\x04\x7c\x04\x7c\x03\x66\x02\x7d\x02\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -_collections_abc_toplevel_consts_46_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str__CallableGenericAlias._ascii.ob_base, - & _collections_abc_toplevel_consts_46_consts_1._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_46_consts_3.ob_base.ob_base, - & _collections_abc_toplevel_consts_46_consts_4.ob_base.ob_base, - & _collections_abc_toplevel_consts_46_consts_5.ob_base.ob_base, - & _collections_abc_toplevel_consts_46_consts_6.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -_collections_abc_toplevel_consts_46_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__slots__), - &_Py_ID(__new__), - &_Py_ID(__repr__), - &_Py_ID(__reduce__), - &_Py_ID(__getitem__), - &_Py_ID(__classcell__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[43]; - } -_collections_abc_toplevel_consts_46_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 42, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x84\x00\xf1\x02\x07\x05\x08\xf0\x12\x00\x11\x13\x80\x49\xf4\x04\x0a\x05\x32\xf4\x18\x05\x05\x35\xf2\x0e\x04\x05\x37\xf7\x0c\x0f\x05\x40\x01\xf0\x00\x0f\x05\x40\x01", -}; -static - struct _PyCode_DEF(64) -_collections_abc_toplevel_consts_46 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 32, - }, - .co_consts = & _collections_abc_toplevel_consts_46_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_46_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 457, - .co_nlocalsplus = 1, - .co_nlocals = 0, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 430, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[64]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__CallableGenericAlias._ascii.ob_base, - .co_qualname = & const_str__CallableGenericAlias._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_46_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x00\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x88\x00\x66\x01\x64\x03\x84\x08\x5a\x05\x88\x00\x66\x01\x64\x04\x84\x08\x5a\x06\x64\x05\x84\x00\x5a\x07\x88\x00\x66\x01\x64\x06\x84\x08\x5a\x08\x88\x00\x78\x01\x5a\x09\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[125]; - } -_collections_abc_toplevel_consts_48_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 124, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x43\x68\x65\x63\x6b\x73\x20\x69\x66\x20\x6f\x62\x6a\x20\x6d\x61\x74\x63\x68\x65\x73\x20\x65\x69\x74\x68\x65\x72\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x66\x20\x74\x79\x70\x65\x73\x2c\x20\x60\x60\x2e\x2e\x2e\x60\x60\x2c\x20\x60\x60\x50\x61\x72\x61\x6d\x53\x70\x65\x63\x60\x60\x20\x6f\x72\x0a\x20\x20\x20\x20\x60\x60\x5f\x43\x6f\x6e\x63\x61\x74\x65\x6e\x61\x74\x65\x47\x65\x6e\x65\x72\x69\x63\x41\x6c\x69\x61\x73\x60\x60\x20\x66\x72\x6f\x6d\x20\x74\x79\x70\x69\x6e\x67\x2e\x70\x79\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_ParamSpec = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ParamSpec", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -const_str__ConcatenateGenericAlias = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ConcatenateGenericAlias", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_48_consts_2 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_ParamSpec._ascii.ob_base, - & const_str__ConcatenateGenericAlias._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_typing = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "typing", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_48_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(__name__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[34]; - } -_collections_abc_toplevel_consts_48_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 33, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_is_param_expr..", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[28]; - } -_collections_abc_toplevel_consts_48_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 27, - }, - .ob_shash = -1, - .ob_sval = "\xf8\xe8\x00\xf8\x80\x00\xd0\x2d\x55\xc9\x75\xc0\x74\xa8\x63\xaf\x6c\xa9\x6c\xb8\x64\xd5\x2e\x42\xc9\x75\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -_collections_abc_toplevel_consts_48_consts_4_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x83\x19\x1c\x01", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_48_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & importlib__bootstrap_external_toplevel_consts_6_localsplusnames_0._ascii.ob_base, - &_Py_ID(name), - &_Py_ID(obj), - }, - }, -}; -static - struct _PyCode_DEF(60) -_collections_abc_toplevel_consts_48_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 30, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_48_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_48_consts_4_exceptiontable.ob_base.ob_base, - .co_flags = 51, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 521, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 431, - .co_localsplusnames = & _collections_abc_toplevel_consts_48_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_genexpr), - .co_qualname = & _collections_abc_toplevel_consts_48_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_48_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x4b\x00\x01\x00\x97\x00\x7c\x00\x5d\x13\x00\x00\x7d\x01\x89\x02\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6b\x28\x00\x00\x96\x01\x97\x01\x01\x00\x8c\x15\x04\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 3, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_48_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & _collections_abc_toplevel_consts_48_consts_0._ascii.ob_base, - Py_True, - & _collections_abc_toplevel_consts_48_consts_2._object.ob_base.ob_base, - & const_str_typing._ascii.ob_base, - & _collections_abc_toplevel_consts_48_consts_4.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_Ellipsis = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Ellipsis", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_48_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_Ellipsis._ascii.ob_base, - &_Py_ID(isinstance), - & const_str_list._ascii.ob_base, - &_Py_ID(type), - &_Py_ID(__module__), - & const_str_any._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[74]; - } -_collections_abc_toplevel_consts_48_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 73, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xf0\x08\x00\x08\x0b\x8c\x68\x81\x7f\xd8\x0f\x13\xdc\x07\x11\x90\x23\x94\x74\xd4\x07\x1c\xd8\x0f\x13\xdc\x0a\x0e\x88\x73\x8b\x29\x80\x43\xd8\x0c\x35\x80\x45\xd8\x0b\x0e\x8f\x3e\x89\x3e\x98\x58\xd1\x0b\x25\xd2\x0b\x55\xac\x23\xd3\x2d\x55\xc9\x75\xd3\x2d\x55\xd3\x2a\x55\xd0\x04\x55", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_names = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "names", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_48_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(obj), - & const_str_names._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(156) -_collections_abc_toplevel_consts_48 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 78, - }, - .co_consts = & _collections_abc_toplevel_consts_48_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_48_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 511, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 432, - .co_localsplusnames = & _collections_abc_toplevel_consts_48_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_26_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__is_param_expr._ascii.ob_base, - .co_qualname = & const_str__is_param_expr._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_48_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x00\x97\x00\x89\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x01\x79\x01\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x89\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x01\x79\x01\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x89\x00\xab\x01\x00\x00\x00\x00\x00\x00\x8a\x00\x64\x02\x7d\x01\x89\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x6b\x28\x00\x00\x78\x01\x72\x14\x01\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x66\x01\x64\x04\x84\x08\x7c\x01\x44\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[224]; - } -_collections_abc_toplevel_consts_49_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 223, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x72\x65\x70\x72\x28\x29\x20\x6f\x66\x20\x61\x6e\x20\x6f\x62\x6a\x65\x63\x74\x2c\x20\x73\x70\x65\x63\x69\x61\x6c\x2d\x63\x61\x73\x69\x6e\x67\x20\x74\x79\x70\x65\x73\x20\x28\x69\x6e\x74\x65\x72\x6e\x61\x6c\x20\x68\x65\x6c\x70\x65\x72\x29\x2e\x0a\x0a\x20\x20\x20\x20\x43\x6f\x70\x69\x65\x64\x20\x66\x72\x6f\x6d\x20\x3a\x6d\x6f\x64\x3a\x60\x74\x79\x70\x69\x6e\x67\x60\x20\x73\x69\x6e\x63\x65\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x73\x2e\x61\x62\x63\x0a\x20\x20\x20\x20\x73\x68\x6f\x75\x6c\x64\x6e\x27\x74\x20\x64\x65\x70\x65\x6e\x64\x20\x6f\x6e\x20\x74\x68\x61\x74\x20\x6d\x6f\x64\x75\x6c\x65\x2e\x0a\x20\x20\x20\x20\x28\x4b\x65\x65\x70\x20\x74\x68\x69\x73\x20\x72\x6f\x75\x67\x68\x6c\x79\x20\x69\x6e\x20\x73\x79\x6e\x63\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x74\x79\x70\x69\x6e\x67\x20\x76\x65\x72\x73\x69\x6f\x6e\x2e\x29\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -_collections_abc_toplevel_consts_49_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "...", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_49_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & _collections_abc_toplevel_consts_49_consts_0._ascii.ob_base, - &_Py_ID(builtins), - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - & _collections_abc_toplevel_consts_49_consts_3._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_FunctionType = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FunctionType", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_repr = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "repr", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -_collections_abc_toplevel_consts_49_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(isinstance), - &_Py_ID(type), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - & const_str_Ellipsis._ascii.ob_base, - & const_str_FunctionType._ascii.ob_base, - &_Py_ID(__name__), - & const_str_repr._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[108]; - } -_collections_abc_toplevel_consts_49_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 107, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0e\x00\x08\x12\x90\x23\x94\x74\xd4\x07\x1c\xd8\x0b\x0e\x8f\x3e\x89\x3e\x98\x5a\xd2\x0b\x27\xd8\x13\x16\xd7\x13\x23\xd1\x13\x23\xd0\x0c\x23\xd8\x12\x15\x97\x2e\x91\x2e\xd0\x11\x21\xa0\x11\xa0\x33\xd7\x23\x33\xd1\x23\x33\xd0\x22\x34\xd0\x0f\x35\xd0\x08\x35\xd8\x07\x0a\x8c\x68\x81\x7f\xd8\x0f\x14\xdc\x07\x11\x90\x23\x94\x7c\xd4\x07\x24\xd8\x0f\x12\x8f\x7c\x89\x7c\xd0\x08\x1b\xdc\x0b\x0f\x90\x03\x8b\x39\xd0\x04\x14", -}; -static - struct _PyCode_DEF(238) -_collections_abc_toplevel_consts_49 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 119, - }, - .co_consts = & _collections_abc_toplevel_consts_49_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_49_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 523, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 433, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__type_repr._ascii.ob_base, - .co_qualname = & const_str__type_repr._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_49_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x36\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x6b\x28\x00\x00\x72\x0c\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x64\x02\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x9d\x03\x53\x00\x7c\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x01\x79\x03\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x0c\x7c\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -_collections_abc_toplevel_consts_50_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Callable.__call__", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_50_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(args), - & const_str_kwds._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(4) -_collections_abc_toplevel_consts_50_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_30_consts_4_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 15, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 545, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 434, - .co_localsplusnames = & _collections_abc_toplevel_consts_50_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__call__), - .co_qualname = & _collections_abc_toplevel_consts_50_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_40_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_50_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - &_Py_ID(__call__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_50_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_Callable._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -_collections_abc_toplevel_consts_50_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Callable.__subclasshook__", -}; -static - struct _PyCode_DEF(54) -_collections_abc_toplevel_consts_50_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & _collections_abc_toplevel_consts_50_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_50_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 549, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 435, - .co_localsplusnames = & _collections_abc_toplevel_consts_17_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & _collections_abc_toplevel_consts_50_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_17_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_50_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_Callable._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_50_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_50_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -_collections_abc_toplevel_consts_50_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__call__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - & const_str__CallableGenericAlias._ascii.ob_base, - &_Py_ID(__class_getitem__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[60]; - } -_collections_abc_toplevel_consts_50_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 59, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x13\xf1\x02\x01\x05\x15\xf3\x03\x00\x06\x14\xf0\x02\x01\x05\x15\xf0\x06\x00\x06\x11\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf0\x02\x03\x05\x1e\xf1\x0a\x00\x19\x24\xd0\x24\x39\xd3\x18\x3a\xd1\x04\x15", -}; -static - struct _PyCode_DEF(64) -_collections_abc_toplevel_consts_50 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 32, - }, - .co_consts = & _collections_abc_toplevel_consts_50_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_50_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 541, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 436, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Callable._ascii.ob_base, - .co_qualname = & const_str_Callable._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_50_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x65\x06\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x02\x00\x65\x06\x65\x08\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x09\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[347]; - } -_collections_abc_toplevel_consts_52_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 346, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x20\x73\x65\x74\x20\x69\x73\x20\x61\x20\x66\x69\x6e\x69\x74\x65\x2c\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x63\x6c\x61\x73\x73\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x63\x6f\x6e\x63\x72\x65\x74\x65\x20\x67\x65\x6e\x65\x72\x69\x63\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x6f\x66\x20\x61\x6c\x6c\x0a\x20\x20\x20\x20\x6d\x65\x74\x68\x6f\x64\x73\x20\x65\x78\x63\x65\x70\x74\x20\x66\x6f\x72\x20\x5f\x5f\x63\x6f\x6e\x74\x61\x69\x6e\x73\x5f\x5f\x2c\x20\x5f\x5f\x69\x74\x65\x72\x5f\x5f\x20\x61\x6e\x64\x20\x5f\x5f\x6c\x65\x6e\x5f\x5f\x2e\x0a\x0a\x20\x20\x20\x20\x54\x6f\x20\x6f\x76\x65\x72\x72\x69\x64\x65\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x61\x72\x69\x73\x6f\x6e\x73\x20\x28\x70\x72\x65\x73\x75\x6d\x61\x62\x6c\x79\x20\x66\x6f\x72\x20\x73\x70\x65\x65\x64\x2c\x20\x61\x73\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x73\x65\x6d\x61\x6e\x74\x69\x63\x73\x20\x61\x72\x65\x20\x66\x69\x78\x65\x64\x29\x2c\x20\x72\x65\x64\x65\x66\x69\x6e\x65\x20\x5f\x5f\x6c\x65\x5f\x5f\x20\x61\x6e\x64\x20\x5f\x5f\x67\x65\x5f\x5f\x2c\x0a\x20\x20\x20\x20\x74\x68\x65\x6e\x20\x74\x68\x65\x20\x6f\x74\x68\x65\x72\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x73\x20\x77\x69\x6c\x6c\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x61\x6c\x6c\x79\x20\x66\x6f\x6c\x6c\x6f\x77\x20\x73\x75\x69\x74\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - Py_False, - Py_True, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_Set._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - &_Py_ID(len), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -_collections_abc_toplevel_consts_52_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__le__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[64]; - } -_collections_abc_toplevel_consts_52_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 63, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x19\x98\x25\xa4\x13\xd4\x0f\x25\xdc\x13\x21\xd0\x0c\x21\xdc\x0b\x0e\x88\x74\x8b\x39\x94\x73\x98\x35\x93\x7a\xd2\x0b\x21\xd8\x13\x18\xdb\x14\x18\x88\x44\xd8\x0f\x13\x98\x35\xd2\x0f\x20\xd9\x17\x1c\xf0\x05\x00\x15\x19\xf0\x06\x00\x10\x14", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_elem = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "elem", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_other._ascii.ob_base, - & const_str_elem._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(122) -_collections_abc_toplevel_consts_52_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 61, - }, - .co_consts = & _collections_abc_toplevel_consts_52_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_52_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 574, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 437, - .co_localsplusnames = & _collections_abc_toplevel_consts_52_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__le__), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x44\x00\x00\x72\x01\x79\x01\x7c\x00\x44\x00\x5d\x08\x00\x00\x7d\x02\x7c\x02\x7c\x01\x76\x01\x73\x01\x8c\x08\x01\x00\x79\x01\x04\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_Set._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - &_Py_ID(len), - &_Py_ID(__le__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -_collections_abc_toplevel_consts_52_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__lt__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[52]; - } -_collections_abc_toplevel_consts_52_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 51, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x19\x98\x25\xa4\x13\xd4\x0f\x25\xdc\x13\x21\xd0\x0c\x21\xdc\x0f\x12\x90\x34\x8b\x79\x9c\x33\x98\x75\x9b\x3a\xd1\x0f\x25\xd2\x0f\x3c\xa8\x24\xaf\x2b\xa9\x2b\xb0\x65\xd3\x2a\x3c\xd0\x08\x3c", -}; -static - struct _PyCode_DEF(130) -_collections_abc_toplevel_consts_52_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 65, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_52_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 584, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 438, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__lt__), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x02\x00\x00\x78\x01\x72\x11\x01\x00\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_Set._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - &_Py_ID(len), - &_Py_ID(__ge__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -_collections_abc_toplevel_consts_52_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__gt__", -}; -static - struct _PyCode_DEF(130) -_collections_abc_toplevel_consts_52_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 65, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_52_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 589, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 439, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__gt__), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_5_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x44\x00\x00\x78\x01\x72\x11\x01\x00\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -_collections_abc_toplevel_consts_52_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__ge__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[64]; - } -_collections_abc_toplevel_consts_52_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 63, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x19\x98\x25\xa4\x13\xd4\x0f\x25\xdc\x13\x21\xd0\x0c\x21\xdc\x0b\x0e\x88\x74\x8b\x39\x94\x73\x98\x35\x93\x7a\xd2\x0b\x21\xd8\x13\x18\xdb\x14\x19\x88\x44\xd8\x0f\x13\x98\x34\xd2\x0f\x1f\xd9\x17\x1c\xf0\x05\x00\x15\x1a\xf0\x06\x00\x10\x14", -}; -static - struct _PyCode_DEF(122) -_collections_abc_toplevel_consts_52_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 61, - }, - .co_consts = & _collections_abc_toplevel_consts_52_consts_3_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_52_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 594, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 440, - .co_localsplusnames = & _collections_abc_toplevel_consts_52_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__ge__), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_6_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x02\x00\x00\x72\x01\x79\x01\x7c\x01\x44\x00\x5d\x08\x00\x00\x7d\x02\x7c\x02\x7c\x00\x76\x01\x73\x01\x8c\x08\x01\x00\x79\x01\x04\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -_collections_abc_toplevel_consts_52_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__eq__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[52]; - } -_collections_abc_toplevel_consts_52_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 51, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x19\x98\x25\xa4\x13\xd4\x0f\x25\xdc\x13\x21\xd0\x0c\x21\xdc\x0f\x12\x90\x34\x8b\x79\x9c\x43\xa0\x05\x9b\x4a\xd1\x0f\x26\xd2\x0f\x3d\xa8\x34\xaf\x3b\xa9\x3b\xb0\x75\xd3\x2b\x3d\xd0\x08\x3d", -}; -static - struct _PyCode_DEF(130) -_collections_abc_toplevel_consts_52_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 65, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_52_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 604, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 441, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__eq__), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_7_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x78\x01\x72\x11\x01\x00\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[189]; - } -_collections_abc_toplevel_consts_52_consts_8_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 188, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x43\x6f\x6e\x73\x74\x72\x75\x63\x74\x20\x61\x6e\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x63\x6c\x61\x73\x73\x20\x66\x72\x6f\x6d\x20\x61\x6e\x79\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x20\x69\x6e\x70\x75\x74\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4d\x75\x73\x74\x20\x6f\x76\x65\x72\x72\x69\x64\x65\x20\x74\x68\x69\x73\x20\x6d\x65\x74\x68\x6f\x64\x20\x69\x66\x20\x74\x68\x65\x20\x63\x6c\x61\x73\x73\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x20\x73\x69\x67\x6e\x61\x74\x75\x72\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x61\x63\x63\x65\x70\x74\x20\x61\x6e\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x20\x66\x6f\x72\x20\x61\x6e\x20\x69\x6e\x70\x75\x74\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_8_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_52_consts_8_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__from_iterable = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_from_iterable", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -_collections_abc_toplevel_consts_52_consts_8_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set._from_iterable", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[14]; - } -_collections_abc_toplevel_consts_52_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 13, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf1\x0e\x00\x10\x13\x90\x32\x8b\x77\x88\x0e", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_it = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "it", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_8_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_cls._ascii.ob_base, - & const_str_it._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(18) -_collections_abc_toplevel_consts_52_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 9, - }, - .co_consts = & _collections_abc_toplevel_consts_52_consts_8_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 609, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 442, - .co_localsplusnames = & _collections_abc_toplevel_consts_52_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__from_iterable._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_52_consts_8_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x02\x00\x7c\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[31]; - } -_collections_abc_toplevel_consts_52_consts_9_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 30, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__and__..", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[25]; - } -_collections_abc_toplevel_consts_52_consts_9_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 24, - }, - .ob_shash = -1, - .ob_sval = "\xf8\xe8\x00\xf8\x80\x00\xd0\x22\x4d\xb1\x65\xa8\x55\xb8\x75\xc8\x04\xba\x7d\xa4\x35\xb1\x65\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -_collections_abc_toplevel_consts_52_consts_9_consts_1_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = "\x83\x09\x14\x01\x8d\x07\x14\x01", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_9_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & importlib__bootstrap_external_toplevel_consts_6_localsplusnames_0._ascii.ob_base, - &_Py_ID(value), - &_Py_ID(self), - }, - }, -}; -static - struct _PyCode_DEF(44) -_collections_abc_toplevel_consts_52_consts_9_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = & _collections_abc_toplevel_consts_52_consts_9_consts_1_exceptiontable.ob_base.ob_base, - .co_flags = 51, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 621, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 443, - .co_localsplusnames = & _collections_abc_toplevel_consts_52_consts_9_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_genexpr), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_9_consts_1_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_9_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x4b\x00\x01\x00\x97\x00\x7c\x00\x5d\x0b\x00\x00\x7d\x01\x7c\x01\x89\x02\x76\x00\x73\x01\x8c\x08\x7c\x01\x96\x01\x97\x01\x01\x00\x8c\x0d\x04\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 3, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_9_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & _collections_abc_toplevel_consts_52_consts_9_consts_1.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_Iterable._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - & const_str__from_iterable._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -_collections_abc_toplevel_consts_52_consts_9_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__and__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[43]; - } -_collections_abc_toplevel_consts_52_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 42, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xdc\x0f\x19\x98\x25\xa4\x18\xd4\x0f\x2a\xdc\x13\x21\xd0\x0c\x21\xd8\x0f\x13\xd7\x0f\x22\xd1\x0f\x22\xd3\x22\x4d\xb1\x65\xd3\x22\x4d\xd3\x0f\x4d\xd0\x08\x4d", -}; -static - struct _PyCode_DEF(100) -_collections_abc_toplevel_consts_52_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 50, - }, - .co_consts = & _collections_abc_toplevel_consts_52_consts_9_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_52_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 618, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 444, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_26_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__and__), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_9_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x00\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x89\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x66\x01\x64\x01\x84\x08\x7c\x01\x44\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[50]; - } -_collections_abc_toplevel_consts_52_consts_10_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 49, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return True if two sets have a null intersection.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_10_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & _collections_abc_toplevel_consts_52_consts_10_consts_0._ascii.ob_base, - Py_False, - Py_True, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_isdisjoint = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "isdisjoint", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -_collections_abc_toplevel_consts_52_consts_10_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.isdisjoint", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[28]; - } -_collections_abc_toplevel_consts_52_consts_10_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 27, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe3\x15\x1a\x88\x45\xd8\x0f\x14\x98\x04\x8a\x7d\xd9\x17\x1c\xf0\x05\x00\x16\x1b\xf0\x06\x00\x10\x14", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_10_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_other._ascii.ob_base, - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(30) -_collections_abc_toplevel_consts_52_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 15, - }, - .co_consts = & _collections_abc_toplevel_consts_52_consts_10_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 625, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 445, - .co_localsplusnames = & _collections_abc_toplevel_consts_52_consts_10_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_isdisjoint._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_52_consts_10_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_10_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x44\x00\x5d\x08\x00\x00\x7d\x02\x7c\x02\x7c\x00\x76\x00\x73\x01\x8c\x08\x01\x00\x79\x01\x04\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[30]; - } -_collections_abc_toplevel_consts_52_consts_11_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 29, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__or__..", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[26]; - } -_collections_abc_toplevel_consts_52_consts_11_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 25, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xd0\x10\x35\x99\x4d\x90\x71\xb3\x31\xa8\x61\x94\x11\xb0\x31\x90\x11\x99\x4d\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -_collections_abc_toplevel_consts_52_consts_11_consts_1_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x82\x13\x15\x01", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_11_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & importlib__bootstrap_external_toplevel_consts_6_localsplusnames_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[115], - (PyObject *)&_Py_SINGLETON(strings).ascii[101], - }, - }, -}; -static - struct _PyCode_DEF(46) -_collections_abc_toplevel_consts_52_consts_11_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = & _collections_abc_toplevel_consts_52_consts_11_consts_1_exceptiontable.ob_base.ob_base, - .co_flags = 51, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 635, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 446, - .co_localsplusnames = & _collections_abc_toplevel_consts_52_consts_11_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_genexpr), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_11_consts_1_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_11_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x7c\x00\x5d\x0d\x00\x00\x7d\x01\x7c\x01\x44\x00\x5d\x06\x00\x00\x7d\x02\x7c\x02\x96\x01\x97\x01\x01\x00\x8c\x08\x04\x00\x8c\x0f\x04\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_11_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & _collections_abc_toplevel_consts_52_consts_11_consts_1.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -_collections_abc_toplevel_consts_52_consts_11_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__or__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[50]; - } -_collections_abc_toplevel_consts_52_consts_11_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 49, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x19\x98\x25\xa4\x18\xd4\x0f\x2a\xdc\x13\x21\xd0\x0c\x21\xd9\x10\x35\x98\x54\xa0\x35\x99\x4d\xd3\x10\x35\x88\x05\xd8\x0f\x13\xd7\x0f\x22\xd1\x0f\x22\xa0\x35\xd3\x0f\x29\xd0\x08\x29", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_chain = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "chain", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_11_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_other._ascii.ob_base, - & const_str_chain._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(102) -_collections_abc_toplevel_consts_52_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 51, - }, - .co_consts = & _collections_abc_toplevel_consts_52_consts_11_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_52_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 632, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 447, - .co_localsplusnames = & _collections_abc_toplevel_consts_52_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__or__), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_11_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_11_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x64\x01\x84\x00\x7c\x00\x7c\x01\x66\x02\x44\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[31]; - } -_collections_abc_toplevel_consts_52_consts_12_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 30, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__sub__..", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[32]; - } -_collections_abc_toplevel_consts_52_consts_12_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 31, - }, - .ob_shash = -1, - .ob_sval = "\xf8\xe8\x00\xf8\x80\x00\xf0\x00\x01\x23\x3a\xb1\x64\xa8\x55\xd8\x26\x2b\xb0\x35\xd1\x26\x38\xf4\x03\x00\x24\x29\xb1\x64\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -_collections_abc_toplevel_consts_52_consts_12_consts_1_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x83\x10\x13\x01", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_12_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & importlib__bootstrap_external_toplevel_consts_6_localsplusnames_0._ascii.ob_base, - &_Py_ID(value), - & const_str_other._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(42) -_collections_abc_toplevel_consts_52_consts_12_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 21, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = & _collections_abc_toplevel_consts_52_consts_12_consts_1_exceptiontable.ob_base.ob_base, - .co_flags = 51, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 645, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 448, - .co_localsplusnames = & _collections_abc_toplevel_consts_52_consts_12_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_genexpr), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_12_consts_1_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_12_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x4b\x00\x01\x00\x97\x00\x7c\x00\x5d\x0a\x00\x00\x7d\x01\x7c\x01\x89\x02\x76\x01\x72\x04\x7c\x01\x96\x01\x97\x01\x01\x00\x8c\x0c\x04\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 3, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_12_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & _collections_abc_toplevel_consts_52_consts_12_consts_1.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_12_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_Set._ascii.ob_base, - & const_str_Iterable._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - & const_str__from_iterable._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -_collections_abc_toplevel_consts_52_consts_12_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__sub__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[77]; - } -_collections_abc_toplevel_consts_52_consts_12_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 76, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xdc\x0f\x19\x98\x25\xa4\x13\xd4\x0f\x25\xdc\x13\x1d\x98\x65\xa4\x58\xd4\x13\x2e\xdc\x17\x25\xd0\x10\x25\xd8\x14\x18\xd7\x14\x27\xd1\x14\x27\xa8\x05\xd3\x14\x2e\x88\x45\xd8\x0f\x13\xd7\x0f\x22\xd1\x0f\x22\xf3\x00\x01\x23\x3a\xb1\x64\xf3\x00\x01\x23\x3a\xf3\x00\x01\x10\x3a\xf0\x00\x01\x09\x3a", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -_collections_abc_toplevel_consts_52_consts_12_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = " `", -}; -static - struct _PyCode_DEF(166) -_collections_abc_toplevel_consts_52_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 83, - }, - .co_consts = & _collections_abc_toplevel_consts_52_consts_12_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_52_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 640, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 449, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & _collections_abc_toplevel_consts_52_consts_12_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__sub__), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_12_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x01\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x27\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\xab\x01\x00\x00\x00\x00\x00\x00\x8a\x01\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x01\x66\x01\x64\x01\x84\x08\x7c\x00\x44\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -_collections_abc_toplevel_consts_52_consts_13_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__rsub__..", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[32]; - } -_collections_abc_toplevel_consts_52_consts_13_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 31, - }, - .ob_shash = -1, - .ob_sval = "\xf8\xe8\x00\xf8\x80\x00\xf0\x00\x01\x23\x39\xb1\x65\xa8\x55\xd8\x26\x2b\xb0\x34\xd1\x26\x37\xf4\x03\x00\x24\x29\xb1\x65\xf9", -}; -static - struct _PyCode_DEF(42) -_collections_abc_toplevel_consts_52_consts_13_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 21, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = & _collections_abc_toplevel_consts_52_consts_12_consts_1_exceptiontable.ob_base.ob_base, - .co_flags = 51, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 653, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 450, - .co_localsplusnames = & _collections_abc_toplevel_consts_52_consts_9_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_genexpr), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_13_consts_1_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_13_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x4b\x00\x01\x00\x97\x00\x7c\x00\x5d\x0a\x00\x00\x7d\x01\x7c\x01\x89\x02\x76\x01\x72\x04\x7c\x01\x96\x01\x97\x01\x01\x00\x8c\x0c\x04\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 3, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_13_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & _collections_abc_toplevel_consts_52_consts_13_consts_1.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -_collections_abc_toplevel_consts_52_consts_13_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__rsub__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[77]; - } -_collections_abc_toplevel_consts_52_consts_13_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 76, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xdc\x0f\x19\x98\x25\xa4\x13\xd4\x0f\x25\xdc\x13\x1d\x98\x65\xa4\x58\xd4\x13\x2e\xdc\x17\x25\xd0\x10\x25\xd8\x14\x18\xd7\x14\x27\xd1\x14\x27\xa8\x05\xd3\x14\x2e\x88\x45\xd8\x0f\x13\xd7\x0f\x22\xd1\x0f\x22\xf3\x00\x01\x23\x39\xb1\x65\xf3\x00\x01\x23\x39\xf3\x00\x01\x10\x39\xf0\x00\x01\x09\x39", -}; -static - struct _PyCode_DEF(166) -_collections_abc_toplevel_consts_52_consts_13 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 83, - }, - .co_consts = & _collections_abc_toplevel_consts_52_consts_13_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_52_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 648, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 451, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_26_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__rsub__), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_13_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_13_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x00\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x27\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x89\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x89\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x66\x01\x64\x01\x84\x08\x7c\x01\x44\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -_collections_abc_toplevel_consts_52_consts_14_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set.__xor__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[64]; - } -_collections_abc_toplevel_consts_52_consts_14_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 63, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x19\x98\x25\xa4\x13\xd4\x0f\x25\xdc\x13\x1d\x98\x65\xa4\x58\xd4\x13\x2e\xdc\x17\x25\xd0\x10\x25\xd8\x14\x18\xd7\x14\x27\xd1\x14\x27\xa8\x05\xd3\x14\x2e\x88\x45\xd8\x10\x14\x90\x75\x91\x0c\xa0\x15\xa8\x14\xa1\x1c\xd1\x0f\x2e\xd0\x08\x2e", -}; -static - struct _PyCode_DEF(134) -_collections_abc_toplevel_consts_52_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 67, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_52_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 656, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 452, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__xor__), - .co_qualname = & _collections_abc_toplevel_consts_52_consts_14_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_14_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x27\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x7c\x01\x7a\x0a\x00\x00\x7c\x01\x7c\x00\x7a\x0a\x00\x00\x7a\x07\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[556]; - } -_collections_abc_toplevel_consts_52_consts_15_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 555, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x43\x6f\x6d\x70\x75\x74\x65\x20\x74\x68\x65\x20\x68\x61\x73\x68\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x61\x20\x73\x65\x74\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4e\x6f\x74\x65\x20\x74\x68\x61\x74\x20\x77\x65\x20\x64\x6f\x6e\x27\x74\x20\x64\x65\x66\x69\x6e\x65\x20\x5f\x5f\x68\x61\x73\x68\x5f\x5f\x3a\x20\x6e\x6f\x74\x20\x61\x6c\x6c\x20\x73\x65\x74\x73\x20\x61\x72\x65\x20\x68\x61\x73\x68\x61\x62\x6c\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x42\x75\x74\x20\x69\x66\x20\x79\x6f\x75\x20\x64\x65\x66\x69\x6e\x65\x20\x61\x20\x68\x61\x73\x68\x61\x62\x6c\x65\x20\x73\x65\x74\x20\x74\x79\x70\x65\x2c\x20\x69\x74\x73\x20\x5f\x5f\x68\x61\x73\x68\x5f\x5f\x20\x73\x68\x6f\x75\x6c\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x69\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x63\x6f\x6d\x70\x61\x74\x69\x62\x6c\x65\x20\x5f\x5f\x65\x71\x5f\x5f\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\x6c\x6c\x20\x73\x65\x74\x73\x20\x6f\x75\x67\x68\x74\x20\x74\x6f\x20\x63\x6f\x6d\x70\x61\x72\x65\x20\x65\x71\x75\x61\x6c\x20\x69\x66\x20\x74\x68\x65\x79\x20\x63\x6f\x6e\x74\x61\x69\x6e\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2c\x20\x72\x65\x67\x61\x72\x64\x6c\x65\x73\x73\x20\x6f\x66\x20\x68\x6f\x77\x20\x74\x68\x65\x79\x20\x61\x72\x65\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\x64\x2c\x20\x61\x6e\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x67\x61\x72\x64\x6c\x65\x73\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x6f\x72\x64\x65\x72\x20\x6f\x66\x20\x74\x68\x65\x20\x65\x6c\x65\x6d\x65\x6e\x74\x73\x3b\x20\x73\x6f\x20\x74\x68\x65\x72\x65\x27\x73\x20\x6e\x6f\x74\x20\x6d\x75\x63\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x72\x65\x65\x64\x6f\x6d\x20\x66\x6f\x72\x20\x5f\x5f\x65\x71\x5f\x5f\x20\x6f\x72\x20\x5f\x5f\x68\x61\x73\x68\x5f\x5f\x2e\x20\x20\x57\x65\x20\x6d\x61\x74\x63\x68\x20\x74\x68\x65\x20\x61\x6c\x67\x6f\x72\x69\x74\x68\x6d\x20\x75\x73\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x79\x20\x74\x68\x65\x20\x62\x75\x69\x6c\x74\x2d\x69\x6e\x20\x66\x72\x6f\x7a\x65\x6e\x73\x65\x74\x20\x74\x79\x70\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[3]; - } -const_int_1927868237 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 3), - .ob_digit = { 28493, 26065, 1 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_1927868237 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 854126413, 1 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_89869747 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 19891, 2742 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_89869747 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 89869747 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[3]; - } -const_int_3644798167 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 3), - .ob_digit = { 13527, 12926, 3 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_3644798167 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 423572695, 3 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_69069 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 3533, 2 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_69069 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 69069 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_907133923 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 17379, 27683 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_907133923 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 907133923 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_590923713 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 18369, 18033 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_590923713 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 590923713 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_15_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & _collections_abc_toplevel_consts_52_consts_15_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - & const_int_1927868237.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 16], - & const_int_89869747.ob_base, - & const_int_3644798167.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 11], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 25], - & const_int_69069.ob_base, - & const_int_907133923.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - & const_int_590923713.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_maxsize = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "maxsize", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_15_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - & const_str_maxsize._ascii.ob_base, - &_Py_ID(len), - & const_str_hash._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__hash = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_hash", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -_collections_abc_toplevel_consts_52_consts_15_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set._hash", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[200]; - } -_collections_abc_toplevel_consts_52_consts_15_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 199, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x1e\x00\x0f\x12\x8f\x6b\x89\x6b\x88\x03\xd8\x0f\x10\x90\x33\x89\x77\x98\x11\x89\x7b\x88\x04\xdc\x0c\x0f\x90\x04\x8b\x49\x88\x01\xd8\x0c\x16\x98\x21\x98\x61\x99\x25\xd1\x0c\x20\x88\x01\xd8\x08\x09\x88\x54\x89\x09\x88\x01\xdb\x11\x15\x88\x41\xdc\x11\x15\x90\x61\x93\x17\x88\x42\xd8\x0c\x0d\x90\x22\x98\x02\x98\x62\x99\x08\x91\x2f\xa0\x48\xd1\x12\x2c\xb0\x1a\xd1\x11\x3b\xd1\x0c\x3b\x88\x41\xd8\x0c\x0d\x90\x14\x89\x49\x89\x41\xf0\x07\x00\x12\x16\xf0\x08\x00\x09\x0a\x88\x61\x90\x32\x89\x67\x98\x21\x98\x72\x99\x27\xd1\x0d\x22\xd1\x08\x22\x88\x01\xd8\x0c\x0d\x90\x05\x89\x49\x98\x09\xd1\x0c\x21\x88\x01\xd8\x08\x09\x88\x54\x89\x09\x88\x01\xd8\x0b\x0c\x88\x73\x8a\x37\xd8\x0c\x0d\x90\x14\x98\x01\x91\x18\x89\x4d\x88\x41\xd8\x0b\x0c\x90\x02\x8a\x37\xd8\x10\x19\x88\x41\xd8\x0f\x10\x88\x08", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_MAX = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MAX", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_MASK = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MASK", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_hx = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "hx", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -_collections_abc_toplevel_consts_52_consts_15_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(self), - & const_str_MAX._ascii.ob_base, - & const_str_MASK._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[110], - (PyObject *)&_Py_SINGLETON(strings).ascii[104], - (PyObject *)&_Py_SINGLETON(strings).ascii[120], - & const_str_hx._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(276) -_collections_abc_toplevel_consts_52_consts_15 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 138, - }, - .co_consts = & _collections_abc_toplevel_consts_52_consts_15_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_52_consts_15_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 665, - .co_nlocalsplus = 7, - .co_nlocals = 7, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 453, - .co_localsplusnames = & _collections_abc_toplevel_consts_52_consts_15_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__hash._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_52_consts_15_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_consts_15_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x64\x01\x7c\x01\x7a\x05\x00\x00\x64\x02\x7a\x00\x00\x00\x7d\x02\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x03\x64\x03\x7c\x03\x64\x02\x7a\x00\x00\x00\x7a\x05\x00\x00\x7d\x04\x7c\x04\x7c\x02\x7a\x0e\x00\x00\x7d\x04\x7c\x00\x44\x00\x5d\x23\x00\x00\x7d\x05\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x04\x7c\x06\x7c\x06\x64\x04\x7a\x03\x00\x00\x7a\x0c\x00\x00\x64\x05\x7a\x0c\x00\x00\x64\x06\x7a\x05\x00\x00\x7a\x19\x00\x00\x7d\x04\x7c\x04\x7c\x02\x7a\x0e\x00\x00\x7d\x04\x8c\x25\x04\x00\x7c\x04\x7c\x04\x64\x07\x7a\x09\x00\x00\x7c\x04\x64\x08\x7a\x09\x00\x00\x7a\x0c\x00\x00\x7a\x19\x00\x00\x7d\x04\x7c\x04\x64\x09\x7a\x05\x00\x00\x64\x0a\x7a\x00\x00\x00\x7d\x04\x7c\x04\x7c\x02\x7a\x0e\x00\x00\x7d\x04\x7c\x04\x7c\x01\x6b\x44\x00\x00\x72\x08\x7c\x04\x7c\x02\x64\x02\x7a\x00\x00\x00\x7a\x17\x00\x00\x7d\x04\x7c\x04\x64\x0b\x6b\x28\x00\x00\x72\x02\x64\x0c\x7d\x04\x7c\x04\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[17]; - }_object; - } -_collections_abc_toplevel_consts_52_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 17, - }, - .ob_item = { - & const_str_Set._ascii.ob_base, - & _collections_abc_toplevel_consts_52_consts_1._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_52_consts_3.ob_base.ob_base, - & _collections_abc_toplevel_consts_52_consts_4.ob_base.ob_base, - & _collections_abc_toplevel_consts_52_consts_5.ob_base.ob_base, - & _collections_abc_toplevel_consts_52_consts_6.ob_base.ob_base, - & _collections_abc_toplevel_consts_52_consts_7.ob_base.ob_base, - & _collections_abc_toplevel_consts_52_consts_8.ob_base.ob_base, - & _collections_abc_toplevel_consts_52_consts_9.ob_base.ob_base, - & _collections_abc_toplevel_consts_52_consts_10.ob_base.ob_base, - & _collections_abc_toplevel_consts_52_consts_11.ob_base.ob_base, - & _collections_abc_toplevel_consts_52_consts_12.ob_base.ob_base, - & _collections_abc_toplevel_consts_52_consts_13.ob_base.ob_base, - & _collections_abc_toplevel_consts_52_consts_14.ob_base.ob_base, - & _collections_abc_toplevel_consts_52_consts_15.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[22]; - }_object; - } -_collections_abc_toplevel_consts_52_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 22, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__slots__), - &_Py_ID(__le__), - &_Py_ID(__lt__), - &_Py_ID(__gt__), - &_Py_ID(__ge__), - &_Py_ID(__eq__), - & const_str_classmethod._ascii.ob_base, - & const_str__from_iterable._ascii.ob_base, - &_Py_ID(__and__), - &_Py_ID(__rand__), - & const_str_isdisjoint._ascii.ob_base, - &_Py_ID(__or__), - &_Py_ID(__ror__), - &_Py_ID(__sub__), - &_Py_ID(__rsub__), - &_Py_ID(__xor__), - &_Py_ID(__rxor__), - & const_str__hash._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[117]; - } -_collections_abc_toplevel_consts_52_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 116, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x08\x05\x08\xf0\x14\x00\x11\x13\x80\x49\xf2\x04\x08\x05\x14\xf2\x14\x03\x05\x3d\xf2\x0a\x03\x05\x3d\xf2\x0a\x08\x05\x14\xf2\x14\x03\x05\x3e\xf0\x0a\x00\x06\x11\xf1\x02\x06\x05\x17\xf3\x03\x00\x06\x11\xf0\x02\x06\x05\x17\xf2\x10\x03\x05\x4e\x01\xf0\x0a\x00\x10\x17\x80\x48\xf2\x04\x05\x05\x14\xf2\x0e\x04\x05\x2a\xf0\x0c\x00\x0f\x15\x80\x47\xf2\x04\x06\x05\x3a\xf2\x10\x06\x05\x39\xf2\x10\x05\x05\x2f\xf0\x0e\x00\x10\x17\x80\x48\xf3\x04\x1f\x05\x11", -}; -static - struct _PyCode_DEF(120) -_collections_abc_toplevel_consts_52 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 60, - }, - .co_consts = & _collections_abc_toplevel_consts_52_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_52_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 561, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 454, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Set._ascii.ob_base, - .co_qualname = & const_str_Set._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_52_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x04\x84\x00\x5a\x06\x64\x05\x84\x00\x5a\x07\x64\x06\x84\x00\x5a\x08\x64\x07\x84\x00\x5a\x09\x65\x0a\x64\x08\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x0b\x64\x09\x84\x00\x5a\x0c\x65\x0c\x5a\x0d\x64\x0a\x84\x00\x5a\x0e\x64\x0b\x84\x00\x5a\x0f\x65\x0f\x5a\x10\x64\x0c\x84\x00\x5a\x11\x64\x0d\x84\x00\x5a\x12\x64\x0e\x84\x00\x5a\x13\x65\x13\x5a\x14\x64\x0f\x84\x00\x5a\x15\x79\x10", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[392]; - } -_collections_abc_toplevel_consts_54_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 391, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x20\x6d\x75\x74\x61\x62\x6c\x65\x20\x73\x65\x74\x20\x69\x73\x20\x61\x20\x66\x69\x6e\x69\x74\x65\x2c\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x63\x6c\x61\x73\x73\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x63\x6f\x6e\x63\x72\x65\x74\x65\x20\x67\x65\x6e\x65\x72\x69\x63\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x6f\x66\x20\x61\x6c\x6c\x0a\x20\x20\x20\x20\x6d\x65\x74\x68\x6f\x64\x73\x20\x65\x78\x63\x65\x70\x74\x20\x66\x6f\x72\x20\x5f\x5f\x63\x6f\x6e\x74\x61\x69\x6e\x73\x5f\x5f\x2c\x20\x5f\x5f\x69\x74\x65\x72\x5f\x5f\x2c\x20\x5f\x5f\x6c\x65\x6e\x5f\x5f\x2c\x0a\x20\x20\x20\x20\x61\x64\x64\x28\x29\x2c\x20\x61\x6e\x64\x20\x64\x69\x73\x63\x61\x72\x64\x28\x29\x2e\x0a\x0a\x20\x20\x20\x20\x54\x6f\x20\x6f\x76\x65\x72\x72\x69\x64\x65\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x61\x72\x69\x73\x6f\x6e\x73\x20\x28\x70\x72\x65\x73\x75\x6d\x61\x62\x6c\x79\x20\x66\x6f\x72\x20\x73\x70\x65\x65\x64\x2c\x20\x61\x73\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x73\x65\x6d\x61\x6e\x74\x69\x63\x73\x20\x61\x72\x65\x20\x66\x69\x78\x65\x64\x29\x2c\x20\x61\x6c\x6c\x20\x79\x6f\x75\x20\x68\x61\x76\x65\x20\x74\x6f\x20\x64\x6f\x20\x69\x73\x20\x72\x65\x64\x65\x66\x69\x6e\x65\x20\x5f\x5f\x6c\x65\x5f\x5f\x20\x61\x6e\x64\x0a\x20\x20\x20\x20\x74\x68\x65\x6e\x20\x74\x68\x65\x20\x6f\x74\x68\x65\x72\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x73\x20\x77\x69\x6c\x6c\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x61\x6c\x6c\x79\x20\x66\x6f\x6c\x6c\x6f\x77\x20\x73\x75\x69\x74\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -_collections_abc_toplevel_consts_54_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Add an element.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_54_consts_3_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -_collections_abc_toplevel_consts_54_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSet.add", -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_54_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & _collections_abc_toplevel_consts_54_consts_3_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_14_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 716, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 455, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(add), - .co_qualname = & _collections_abc_toplevel_consts_54_consts_3_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_18_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[57]; - } -_collections_abc_toplevel_consts_54_consts_4_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 56, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Remove an element. Do not raise an exception if absent.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_54_consts_4_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -_collections_abc_toplevel_consts_54_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSet.discard", -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_54_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & _collections_abc_toplevel_consts_54_consts_4_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_14_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 721, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 456, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(discard), - .co_qualname = & _collections_abc_toplevel_consts_54_consts_4_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_18_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[54]; - } -_collections_abc_toplevel_consts_54_consts_5_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 53, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Remove an element. If not a member, raise a KeyError.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & _collections_abc_toplevel_consts_54_consts_5_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_KeyError._ascii.ob_base, - &_Py_ID(discard), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -_collections_abc_toplevel_consts_54_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSet.remove", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[33]; - } -_collections_abc_toplevel_consts_54_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 32, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x10\x98\x04\xd1\x0b\x1c\xdc\x12\x1a\x98\x35\x93\x2f\xd0\x0c\x21\xd8\x08\x0c\x8f\x0c\x89\x0c\x90\x55\xd5\x08\x1b", -}; -static - struct _PyCode_DEF(68) -_collections_abc_toplevel_consts_54_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 34, - }, - .co_consts = & _collections_abc_toplevel_consts_54_consts_5_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_54_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 726, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 457, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_remove._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_54_consts_5_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_54_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x76\x01\x72\x0b\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[51]; - } -_collections_abc_toplevel_consts_54_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 50, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return the popped value. Raise KeyError if empty.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & _collections_abc_toplevel_consts_54_consts_6_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(iter), - &_Py_ID(next), - & const_str_StopIteration._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - &_Py_ID(discard), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -_collections_abc_toplevel_consts_54_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSet.pop", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[70]; - } -_collections_abc_toplevel_consts_54_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 69, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0d\x11\x90\x24\x8b\x5a\x88\x02\xf0\x02\x03\x09\x25\xdc\x14\x18\x98\x12\x93\x48\x88\x45\xf0\x06\x00\x09\x0d\x8f\x0c\x89\x0c\x90\x55\xd4\x08\x1b\xd8\x0f\x14\x88\x0c\xf8\xf4\x07\x00\x10\x1d\xf2\x00\x01\x09\x25\xdc\x12\x1a\xa0\x04\xd0\x0c\x24\xf0\x03\x01\x09\x25\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -_collections_abc_toplevel_consts_54_consts_6_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = "\x8d\x0b\x2b\x00\xab\x11\x3c\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_it._ascii.ob_base, - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(126) -_collections_abc_toplevel_consts_54_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 63, - }, - .co_consts = & _collections_abc_toplevel_consts_54_consts_6_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_54_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_54_consts_6_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 732, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 458, - .co_localsplusnames = & _collections_abc_toplevel_consts_54_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_pop._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_54_consts_6_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_54_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x09\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x02\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x08\x01\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x82\x02\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[55]; - } -_collections_abc_toplevel_consts_54_consts_7_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 54, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "This is slow (creates N new iterators!) but effective.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & _collections_abc_toplevel_consts_54_consts_7_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_pop._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -_collections_abc_toplevel_consts_54_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSet.clear", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[43]; - } -_collections_abc_toplevel_consts_54_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 42, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x04\x09\x11\xd8\x12\x16\xd8\x10\x14\x97\x08\x91\x08\x94\x0a\xf0\x03\x00\x13\x17\xf8\xe4\x0f\x17\xf2\x00\x01\x09\x11\xd9\x0c\x10\xf0\x03\x01\x09\x11\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -_collections_abc_toplevel_consts_54_consts_7_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x82\x12\x14\x00\x94\x09\x20\x03\x9f\x01\x20\x03", -}; -static - struct _PyCode_DEF(70) -_collections_abc_toplevel_consts_54_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 35, - }, - .co_consts = & _collections_abc_toplevel_consts_54_consts_7_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_54_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_54_consts_7_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 742, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 459, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(clear), - .co_qualname = & _collections_abc_toplevel_consts_54_consts_7_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_54_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x09\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x11\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_8_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(add), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -_collections_abc_toplevel_consts_54_consts_8_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSet.__ior__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[29]; - } -_collections_abc_toplevel_consts_54_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 28, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdb\x15\x17\x88\x45\xd8\x0c\x10\x8f\x48\x89\x48\x90\x55\x8d\x4f\xf0\x03\x00\x16\x18\xe0\x0f\x13\x88\x0b", -}; -static - struct _PyCode_DEF(54) -_collections_abc_toplevel_consts_54_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_54_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 750, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 460, - .co_localsplusnames = & _collections_abc_toplevel_consts_54_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__ior__), - .co_qualname = & _collections_abc_toplevel_consts_54_consts_8_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_54_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x44\x00\x5d\x13\x00\x00\x7d\x02\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x15\x04\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(discard), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -_collections_abc_toplevel_consts_54_consts_9_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSet.__iand__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[34]; - } -_collections_abc_toplevel_consts_54_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 33, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x16\x1a\x98\x52\x94\x69\x88\x45\xd8\x0c\x10\x8f\x4c\x89\x4c\x98\x15\xd5\x0c\x1f\xf0\x03\x00\x17\x20\xe0\x0f\x13\x88\x0b", -}; -static - struct _PyCode_DEF(60) -_collections_abc_toplevel_consts_54_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 30, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_54_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 755, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 461, - .co_localsplusnames = & _collections_abc_toplevel_consts_54_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iand__), - .co_qualname = & _collections_abc_toplevel_consts_54_consts_9_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_54_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x7c\x01\x7a\x0a\x00\x00\x44\x00\x5d\x13\x00\x00\x7d\x02\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x15\x04\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_10_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(clear), - &_Py_ID(isinstance), - & const_str_Set._ascii.ob_base, - & const_str__from_iterable._ascii.ob_base, - &_Py_ID(discard), - &_Py_ID(add), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -_collections_abc_toplevel_consts_54_consts_10_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSet.__ixor__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[101]; - } -_collections_abc_toplevel_consts_54_consts_10_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 100, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0b\x0d\x90\x14\x89\x3a\xd8\x0c\x10\x8f\x4a\x89\x4a\x8c\x4c\xf0\x12\x00\x10\x14\x88\x0b\xf4\x0f\x00\x14\x1e\x98\x62\xa4\x23\xd4\x13\x26\xd8\x15\x19\xd7\x15\x28\xd1\x15\x28\xa8\x12\xd3\x15\x2c\x90\x02\xdb\x19\x1b\x90\x05\xd8\x13\x18\x98\x44\x91\x3d\xd8\x14\x18\x97\x4c\x91\x4c\xa0\x15\xd5\x14\x27\xe0\x14\x18\x97\x48\x91\x48\x98\x55\x95\x4f\xf0\x09\x00\x1a\x1c\xf0\x0a\x00\x10\x14\x88\x0b", -}; -static - struct _PyCode_DEF(208) -_collections_abc_toplevel_consts_54_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 104, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_54_consts_10_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 760, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 462, - .co_localsplusnames = & _collections_abc_toplevel_consts_54_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__ixor__), - .co_qualname = & _collections_abc_toplevel_consts_54_consts_10_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_54_consts_10_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x75\x00\x72\x12\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x53\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x11\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x44\x00\x5d\x29\x00\x00\x7d\x02\x7c\x02\x7c\x00\x76\x00\x72\x12\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x19\x7c\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x2b\x04\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_54_consts_11_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(clear), - &_Py_ID(discard), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -_collections_abc_toplevel_consts_54_consts_11_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSet.__isub__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[55]; - } -_collections_abc_toplevel_consts_54_consts_11_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 54, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0b\x0d\x90\x14\x89\x3a\xd8\x0c\x10\x8f\x4a\x89\x4a\x8c\x4c\xf0\x08\x00\x10\x14\x88\x0b\xf3\x05\x00\x1a\x1c\x90\x05\xd8\x10\x14\x97\x0c\x91\x0c\x98\x55\xd5\x10\x23\xf0\x03\x00\x1a\x1c\xe0\x0f\x13\x88\x0b", -}; -static - struct _PyCode_DEF(98) -_collections_abc_toplevel_consts_54_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 49, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_54_consts_11_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 773, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 463, - .co_localsplusnames = & _collections_abc_toplevel_consts_54_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__isub__), - .co_qualname = & _collections_abc_toplevel_consts_54_consts_11_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_54_consts_11_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x75\x00\x72\x12\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x53\x00\x7c\x01\x44\x00\x5d\x13\x00\x00\x7d\x02\x7c\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x15\x04\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -_collections_abc_toplevel_consts_54_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str_MutableSet._ascii.ob_base, - & _collections_abc_toplevel_consts_54_consts_1._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_54_consts_3.ob_base.ob_base, - & _collections_abc_toplevel_consts_54_consts_4.ob_base.ob_base, - & _collections_abc_toplevel_consts_54_consts_5.ob_base.ob_base, - & _collections_abc_toplevel_consts_54_consts_6.ob_base.ob_base, - & _collections_abc_toplevel_consts_54_consts_7.ob_base.ob_base, - & _collections_abc_toplevel_consts_54_consts_8.ob_base.ob_base, - & _collections_abc_toplevel_consts_54_consts_9.ob_base.ob_base, - & _collections_abc_toplevel_consts_54_consts_10.ob_base.ob_base, - & _collections_abc_toplevel_consts_54_consts_11.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -_collections_abc_toplevel_consts_54_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(add), - &_Py_ID(discard), - & const_str_remove._ascii.ob_base, - & const_str_pop._ascii.ob_base, - &_Py_ID(clear), - &_Py_ID(__ior__), - &_Py_ID(__iand__), - &_Py_ID(__ixor__), - &_Py_ID(__isub__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[88]; - } -_collections_abc_toplevel_consts_54_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 87, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x09\x05\x08\xf0\x16\x00\x11\x13\x80\x49\xe0\x05\x13\xf1\x02\x02\x05\x22\xf3\x03\x00\x06\x14\xf0\x02\x02\x05\x22\xf0\x08\x00\x06\x14\xf1\x02\x02\x05\x22\xf3\x03\x00\x06\x14\xf0\x02\x02\x05\x22\xf2\x08\x04\x05\x1c\xf2\x0c\x08\x05\x15\xf2\x14\x06\x05\x11\xf2\x10\x03\x05\x14\xf2\x0a\x03\x05\x14\xf2\x0a\x0b\x05\x14\xf3\x1a\x06\x05\x14", -}; -static - struct _PyCode_DEF(94) -_collections_abc_toplevel_consts_54 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 47, - }, - .co_consts = & _collections_abc_toplevel_consts_54_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_54_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 702, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 464, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_MutableSet._ascii.ob_base, - .co_qualname = & const_str_MutableSet._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_54_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x65\x05\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x06\x65\x05\x64\x04\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x64\x05\x84\x00\x5a\x08\x64\x06\x84\x00\x5a\x09\x64\x07\x84\x00\x5a\x0a\x64\x08\x84\x00\x5a\x0b\x64\x09\x84\x00\x5a\x0c\x64\x0a\x84\x00\x5a\x0d\x64\x0b\x84\x00\x5a\x0e\x79\x0c", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[199]; - } -_collections_abc_toplevel_consts_56_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 198, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x20\x4d\x61\x70\x70\x69\x6e\x67\x20\x69\x73\x20\x61\x20\x67\x65\x6e\x65\x72\x69\x63\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x66\x6f\x72\x20\x61\x73\x73\x6f\x63\x69\x61\x74\x69\x6e\x67\x20\x6b\x65\x79\x2f\x76\x61\x6c\x75\x65\x0a\x20\x20\x20\x20\x70\x61\x69\x72\x73\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x63\x6c\x61\x73\x73\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x63\x6f\x6e\x63\x72\x65\x74\x65\x20\x67\x65\x6e\x65\x72\x69\x63\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x6f\x66\x20\x61\x6c\x6c\x0a\x20\x20\x20\x20\x6d\x65\x74\x68\x6f\x64\x73\x20\x65\x78\x63\x65\x70\x74\x20\x66\x6f\x72\x20\x5f\x5f\x67\x65\x74\x69\x74\x65\x6d\x5f\x5f\x2c\x20\x5f\x5f\x69\x74\x65\x72\x5f\x5f\x2c\x20\x61\x6e\x64\x20\x5f\x5f\x6c\x65\x6e\x5f\x5f\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_56_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_KeyError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -_collections_abc_toplevel_consts_56_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Mapping.__getitem__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[8]; - } -_collections_abc_toplevel_consts_56_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 7, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0e\x16\x88\x0e", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_56_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(key), - }, - }, -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_56_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_56_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 800, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 465, - .co_localsplusnames = & _collections_abc_toplevel_consts_56_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__getitem__), - .co_qualname = & _collections_abc_toplevel_consts_56_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_56_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[61]; - } -_collections_abc_toplevel_consts_56_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 60, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_56_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_56_consts_6_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -_collections_abc_toplevel_consts_56_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Mapping.get", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[38]; - } -_collections_abc_toplevel_consts_56_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 37, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x03\x09\x1b\xd8\x13\x17\x98\x03\x91\x39\xd0\x0c\x1c\xf8\xdc\x0f\x17\xf2\x00\x01\x09\x1b\xd8\x13\x1a\x8a\x4e\xf0\x03\x01\x09\x1b\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -_collections_abc_toplevel_consts_56_consts_6_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x82\x04\x07\x00\x87\x0b\x15\x03\x94\x01\x15\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_56_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(key), - &_Py_ID(default), - }, - }, -}; -static - struct _PyCode_DEF(48) -_collections_abc_toplevel_consts_56_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 24, - }, - .co_consts = & _collections_abc_toplevel_consts_56_consts_6_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_56_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_56_consts_6_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 804, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 466, - .co_localsplusnames = & _collections_abc_toplevel_consts_56_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(get), - .co_qualname = & _collections_abc_toplevel_consts_56_consts_6_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_56_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x7c\x00\x7c\x01\x19\x00\x00\x00\x53\x00\x23\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x7c\x02\x63\x02\x59\x00\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_56_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - Py_True, - Py_False, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -_collections_abc_toplevel_consts_56_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Mapping.__contains__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[40]; - } -_collections_abc_toplevel_consts_56_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 39, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x02\x05\x09\x18\xd8\x0c\x10\x90\x13\x8a\x49\xf0\x08\x00\x14\x18\xf8\xf4\x07\x00\x10\x18\xf2\x00\x01\x09\x19\xd9\x13\x18\xf0\x03\x01\x09\x19\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -_collections_abc_toplevel_consts_56_consts_7_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x82\x05\x08\x00\x88\x09\x14\x03\x93\x01\x14\x03", -}; -static - struct _PyCode_DEF(46) -_collections_abc_toplevel_consts_56_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & _collections_abc_toplevel_consts_56_consts_7_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_56_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_56_consts_7_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 811, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 467, - .co_localsplusnames = & _collections_abc_toplevel_consts_56_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__contains__), - .co_qualname = & _collections_abc_toplevel_consts_56_consts_7_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_56_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x7c\x00\x7c\x01\x19\x00\x00\x00\x01\x00\x79\x01\x23\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x02\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[59]; - } -_collections_abc_toplevel_consts_56_consts_8_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 58, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "D.keys() -> a set-like object providing a view on D's keys", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_56_consts_8_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_56_consts_8_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_56_consts_8_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_KeysView._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -_collections_abc_toplevel_consts_56_consts_8_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Mapping.keys", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -_collections_abc_toplevel_consts_56_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0f\x17\x98\x04\x8b\x7e\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(24) -_collections_abc_toplevel_consts_56_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 12, - }, - .co_consts = & _collections_abc_toplevel_consts_56_consts_8_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_56_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 819, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 468, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(keys), - .co_qualname = & _collections_abc_toplevel_consts_56_consts_8_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_56_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[61]; - } -_collections_abc_toplevel_consts_56_consts_9_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 60, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "D.items() -> a set-like object providing a view on D's items", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_56_consts_9_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_56_consts_9_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_56_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_ItemsView._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -_collections_abc_toplevel_consts_56_consts_9_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Mapping.items", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -_collections_abc_toplevel_consts_56_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0f\x18\x98\x14\x8b\x7f\xd0\x08\x1e", -}; -static - struct _PyCode_DEF(24) -_collections_abc_toplevel_consts_56_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 12, - }, - .co_consts = & _collections_abc_toplevel_consts_56_consts_9_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_56_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 823, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 469, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(items), - .co_qualname = & _collections_abc_toplevel_consts_56_consts_9_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_56_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[55]; - } -_collections_abc_toplevel_consts_56_consts_10_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 54, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "D.values() -> an object providing a view on D's values", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_56_consts_10_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_56_consts_10_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_56_consts_10_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_ValuesView._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -_collections_abc_toplevel_consts_56_consts_10_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Mapping.values", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[14]; - } -_collections_abc_toplevel_consts_56_consts_10_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 13, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0f\x19\x98\x24\xd3\x0f\x1f\xd0\x08\x1f", -}; -static - struct _PyCode_DEF(24) -_collections_abc_toplevel_consts_56_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 12, - }, - .co_consts = & _collections_abc_toplevel_consts_56_consts_10_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_56_consts_10_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 827, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 470, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(values), - .co_qualname = & _collections_abc_toplevel_consts_56_consts_10_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_56_consts_10_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_56_consts_11_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_Mapping._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - &_Py_ID(dict), - &_Py_ID(items), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -_collections_abc_toplevel_consts_56_consts_11_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Mapping.__eq__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[52]; - } -_collections_abc_toplevel_consts_56_consts_11_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 51, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x19\x98\x25\xa4\x17\xd4\x0f\x29\xdc\x13\x21\xd0\x0c\x21\xdc\x0f\x13\x90\x44\x97\x4a\x91\x4a\x93\x4c\xd3\x0f\x21\xa4\x54\xa8\x25\xaf\x2b\xa9\x2b\xab\x2d\xd3\x25\x38\xd1\x0f\x38\xd0\x08\x38", -}; -static - struct _PyCode_DEF(148) -_collections_abc_toplevel_consts_56_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 74, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_56_consts_11_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 831, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 471, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__eq__), - .co_qualname = & _collections_abc_toplevel_consts_56_consts_11_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_56_consts_11_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -_collections_abc_toplevel_consts_56_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str_Mapping._ascii.ob_base, - & _collections_abc_toplevel_consts_56_consts_1._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 64], - & _collections_abc_toplevel_consts_56_consts_4.ob_base.ob_base, - Py_None, - & _collections_abc_toplevel_consts_56_consts_6.ob_base.ob_base, - & _collections_abc_toplevel_consts_56_consts_7.ob_base.ob_base, - & _collections_abc_toplevel_consts_56_consts_8.ob_base.ob_base, - & _collections_abc_toplevel_consts_56_consts_9.ob_base.ob_base, - & _collections_abc_toplevel_consts_56_consts_10.ob_base.ob_base, - & _collections_abc_toplevel_consts_56_consts_11.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -_collections_abc_toplevel_consts_56_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__slots__), - &_Py_ID(__abc_tpflags__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__getitem__), - &_Py_ID(get), - &_Py_ID(__contains__), - &_Py_ID(keys), - &_Py_ID(items), - &_Py_ID(values), - &_Py_ID(__eq__), - &_Py_ID(__reversed__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[77]; - } -_collections_abc_toplevel_consts_56_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 76, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x05\x05\x08\xf0\x0e\x00\x11\x13\x80\x49\xf0\x06\x00\x17\x1d\x80\x4f\xe0\x05\x13\xf1\x02\x01\x05\x17\xf3\x03\x00\x06\x14\xf0\x02\x01\x05\x17\xf3\x06\x05\x05\x1b\xf2\x0e\x06\x05\x18\xf2\x10\x02\x05\x1e\xf2\x08\x02\x05\x1f\xf2\x08\x02\x05\x20\xf2\x08\x03\x05\x39\xf0\x0a\x00\x14\x18\x81\x4c", -}; -static - struct _PyCode_DEF(82) -_collections_abc_toplevel_consts_56 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 41, - }, - .co_consts = & _collections_abc_toplevel_consts_56_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_56_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 787, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 472, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Mapping._ascii.ob_base, - .co_qualname = & const_str_Mapping._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_56_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x64\x03\x5a\x05\x65\x06\x64\x04\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x64\x0c\x64\x06\x84\x01\x5a\x08\x64\x07\x84\x00\x5a\x09\x64\x08\x84\x00\x5a\x0a\x64\x09\x84\x00\x5a\x0b\x64\x0a\x84\x00\x5a\x0c\x64\x0b\x84\x00\x5a\x0d\x64\x05\x5a\x0e\x79\x05", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str__mapping = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_mapping", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_58_consts_1 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__mapping._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -_collections_abc_toplevel_consts_58_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MappingView.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[10]; - } -_collections_abc_toplevel_consts_58_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 9, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x18\x1f\x88\x04\x8d\x0d", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_58_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(mapping), - }, - }, -}; -static - struct _PyCode_DEF(18) -_collections_abc_toplevel_consts_58_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 9, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_58_consts_1._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 845, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 473, - .co_localsplusnames = & _collections_abc_toplevel_consts_58_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & _collections_abc_toplevel_consts_58_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_58_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_58_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(len), - & const_str__mapping._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -_collections_abc_toplevel_consts_58_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MappingView.__len__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -_collections_abc_toplevel_consts_58_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x12\x90\x34\x97\x3d\x91\x3d\xd3\x0f\x21\xd0\x08\x21", -}; -static - struct _PyCode_DEF(44) -_collections_abc_toplevel_consts_58_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_58_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 848, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 474, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__len__), - .co_qualname = & _collections_abc_toplevel_consts_58_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_58_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[39]; - } -_collections_abc_toplevel_consts_58_consts_4_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 38, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "{0.__class__.__name__}({0._mapping!r})", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_58_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & _collections_abc_toplevel_consts_58_consts_4_consts_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_58_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(format), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -_collections_abc_toplevel_consts_58_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MappingView.__repr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[20]; - } -_collections_abc_toplevel_consts_58_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 19, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0f\x37\xd7\x0f\x3e\xd1\x0f\x3e\xb8\x74\xd3\x0f\x44\xd0\x08\x44", -}; -static - struct _PyCode_DEF(36) -_collections_abc_toplevel_consts_58_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 18, - }, - .co_consts = & _collections_abc_toplevel_consts_58_consts_4_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_58_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 851, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 475, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__repr__), - .co_qualname = & _collections_abc_toplevel_consts_58_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_58_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_58_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_MappingView._ascii.ob_base, - & _collections_abc_toplevel_consts_58_consts_1._object.ob_base.ob_base, - & _collections_abc_toplevel_consts_58_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_58_consts_3.ob_base.ob_base, - & _collections_abc_toplevel_consts_58_consts_4.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -_collections_abc_toplevel_consts_58_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - &_Py_ID(__init__), - &_Py_ID(__len__), - &_Py_ID(__repr__), - & const_str_classmethod._ascii.ob_base, - & const_str_GenericAlias._ascii.ob_base, - &_Py_ID(__class_getitem__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[37]; - } -_collections_abc_toplevel_consts_58_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 36, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x1b\x80\x49\xf2\x04\x01\x05\x20\xf2\x06\x01\x05\x22\xf2\x06\x01\x05\x45\x01\xf1\x06\x00\x19\x24\xa0\x4c\xd3\x18\x31\xd1\x04\x15", -}; -static - struct _PyCode_DEF(50) -_collections_abc_toplevel_consts_58 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 25, - }, - .co_consts = & _collections_abc_toplevel_consts_58_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_58_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 841, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 476, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_MappingView._ascii.ob_base, - .co_qualname = & const_str_MappingView._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_58_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x04\x84\x00\x5a\x06\x02\x00\x65\x07\x65\x08\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x09\x79\x05", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_60_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_set._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -_collections_abc_toplevel_consts_60_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "KeysView._from_iterable", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[12]; - } -_collections_abc_toplevel_consts_60_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 11, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0f\x12\x90\x32\x8b\x77\x88\x0e", -}; -static - struct _PyCode_DEF(24) -_collections_abc_toplevel_consts_60_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 12, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_60_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 861, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 477, - .co_localsplusnames = & _collections_abc_toplevel_consts_52_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__from_iterable._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_60_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_60_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -_collections_abc_toplevel_consts_60_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "KeysView.__contains__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -_collections_abc_toplevel_consts_60_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0f\x12\x90\x64\x97\x6d\x91\x6d\xd0\x0f\x23\xd0\x08\x23", -}; -static - struct _PyCode_DEF(30) -_collections_abc_toplevel_consts_60_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 15, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_58_consts_1._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 865, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 478, - .co_localsplusnames = & _collections_abc_toplevel_consts_56_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__contains__), - .co_qualname = & _collections_abc_toplevel_consts_60_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_60_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -_collections_abc_toplevel_consts_60_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "KeysView.__iter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[20]; - } -_collections_abc_toplevel_consts_60_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 19, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xd8\x13\x17\x97\x3d\x91\x3d\xd7\x08\x20\xd2\x08\x20\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -_collections_abc_toplevel_consts_60_consts_4_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x82\x10\x1a\x01\x92\x01\x18\x04\x93\x06\x1a\x01", -}; -static - struct _PyCode_DEF(56) -_collections_abc_toplevel_consts_60_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_58_consts_1._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_60_consts_4_exceptiontable.ob_base.ob_base, - .co_flags = 35, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 868, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 479, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iter__), - .co_qualname = & _collections_abc_toplevel_consts_60_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_60_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x00\x64\x00\x7b\x03\x00\x00\x96\x02\x97\x02\x86\x05\x05\x00\x01\x00\x79\x00\x37\x00\x8c\x05\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_60_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_KeysView._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_60_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_60_consts_3.ob_base.ob_base, - & _collections_abc_toplevel_consts_60_consts_4.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -_collections_abc_toplevel_consts_60_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - & const_str_classmethod._ascii.ob_base, - & const_str__from_iterable._ascii.ob_base, - &_Py_ID(__contains__), - &_Py_ID(__iter__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[36]; - } -_collections_abc_toplevel_consts_60_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 35, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x10\xf1\x02\x01\x05\x17\xf3\x03\x00\x06\x11\xf0\x02\x01\x05\x17\xf2\x06\x01\x05\x24\xf3\x06\x01\x05\x21", -}; -static - struct _PyCode_DEF(44) -_collections_abc_toplevel_consts_60 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & _collections_abc_toplevel_consts_60_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_60_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 857, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 480, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_KeysView._ascii.ob_base, - .co_qualname = & const_str_KeysView._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_60_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x64\x03\x84\x00\x5a\x06\x64\x04\x84\x00\x5a\x07\x79\x05", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -_collections_abc_toplevel_consts_62_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ItemsView._from_iterable", -}; -static - struct _PyCode_DEF(24) -_collections_abc_toplevel_consts_62_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 12, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_60_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 879, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 481, - .co_localsplusnames = & _collections_abc_toplevel_consts_52_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__from_iterable._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_62_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_60_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_62_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__mapping._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -_collections_abc_toplevel_consts_62_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ItemsView.__contains__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[72]; - } -_collections_abc_toplevel_consts_62_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 71, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x15\x19\x89\x0a\x88\x03\x88\x55\xf0\x02\x05\x09\x2c\xd8\x10\x14\x97\x0d\x91\x0d\x98\x63\xd1\x10\x22\x88\x41\xf0\x08\x00\x14\x15\x98\x05\x90\x3a\xd2\x13\x2b\xa0\x11\xa0\x65\xa1\x1a\xd0\x0c\x2b\xf8\xf4\x07\x00\x10\x18\xf2\x00\x01\x09\x19\xd9\x13\x18\xf0\x03\x01\x09\x19\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -_collections_abc_toplevel_consts_62_consts_3_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x87\x0f\x21\x00\xa1\x09\x2d\x03\xac\x01\x2d\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_62_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(item), - &_Py_ID(key), - &_Py_ID(value), - (PyObject *)&_Py_SINGLETON(strings).ascii[118], - }, - }, -}; -static - struct _PyCode_DEF(96) -_collections_abc_toplevel_consts_62_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 48, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_30_consts_4_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_62_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_62_consts_3_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 883, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 482, - .co_localsplusnames = & _collections_abc_toplevel_consts_62_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__contains__), - .co_qualname = & _collections_abc_toplevel_consts_62_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_62_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x5c\x02\x00\x00\x7d\x02\x7d\x03\x09\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x19\x00\x00\x00\x7d\x04\x7c\x04\x7c\x03\x75\x00\x78\x01\x73\x05\x01\x00\x7c\x04\x7c\x03\x6b\x28\x00\x00\x53\x00\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -_collections_abc_toplevel_consts_62_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ItemsView.__iter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[41]; - } -_collections_abc_toplevel_consts_62_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 40, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xd8\x13\x17\x97\x3d\x94\x3d\x88\x43\xd8\x13\x16\x98\x04\x9f\x0d\x99\x0d\xa0\x63\xd1\x18\x2a\xd0\x12\x2b\xd3\x0c\x2b\xf1\x03\x00\x14\x21\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -_collections_abc_toplevel_consts_62_consts_4_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x82\x26\x28\x01", -}; -static - struct _PyCode_DEF(84) -_collections_abc_toplevel_consts_62_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 42, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_58_consts_1._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_62_consts_4_exceptiontable.ob_base.ob_base, - .co_flags = 35, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 892, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 483, - .co_localsplusnames = & _collections_abc_toplevel_consts_56_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iter__), - .co_qualname = & _collections_abc_toplevel_consts_62_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_62_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x15\x00\x00\x7d\x01\x7c\x01\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x19\x00\x00\x00\x66\x02\x96\x01\x97\x01\x01\x00\x8c\x17\x04\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_62_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_ItemsView._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_62_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_62_consts_3.ob_base.ob_base, - & _collections_abc_toplevel_consts_62_consts_4.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[36]; - } -_collections_abc_toplevel_consts_62_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 35, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xe0\x05\x10\xf1\x02\x01\x05\x17\xf3\x03\x00\x06\x11\xf0\x02\x01\x05\x17\xf2\x06\x07\x05\x2c\xf3\x12\x02\x05\x2c", -}; -static - struct _PyCode_DEF(44) -_collections_abc_toplevel_consts_62 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & _collections_abc_toplevel_consts_62_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_60_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 875, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 484, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_ItemsView._ascii.ob_base, - .co_qualname = & const_str_ItemsView._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_62_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x64\x03\x84\x00\x5a\x06\x64\x04\x84\x00\x5a\x07\x79\x05", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -_collections_abc_toplevel_consts_64_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ValuesView.__contains__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[52]; - } -_collections_abc_toplevel_consts_64_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 51, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x13\x17\x97\x3d\x94\x3d\x88\x43\xd8\x10\x14\x97\x0d\x91\x0d\x98\x63\xd1\x10\x22\x88\x41\xd8\x0f\x10\x90\x45\x89\x7a\x98\x51\xa0\x25\x9b\x5a\xd9\x17\x1b\xf0\x07\x00\x14\x21\xf0\x08\x00\x10\x15", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_64_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(value), - &_Py_ID(key), - (PyObject *)&_Py_SINGLETON(strings).ascii[118], - }, - }, -}; -static - struct _PyCode_DEF(90) -_collections_abc_toplevel_consts_64_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 45, - }, - .co_consts = & _collections_abc_toplevel_consts_56_consts_7_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_58_consts_1._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 904, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 485, - .co_localsplusnames = & _collections_abc_toplevel_consts_64_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__contains__), - .co_qualname = & _collections_abc_toplevel_consts_64_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_64_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x1c\x00\x00\x7d\x02\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x19\x00\x00\x00\x7d\x03\x7c\x03\x7c\x01\x75\x00\x73\x06\x7c\x03\x7c\x01\x6b\x28\x00\x00\x73\x01\x8c\x1c\x01\x00\x79\x01\x04\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -_collections_abc_toplevel_consts_64_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ValuesView.__iter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[36]; - } -_collections_abc_toplevel_consts_64_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 35, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xd8\x13\x17\x97\x3d\x94\x3d\x88\x43\xd8\x12\x16\x97\x2d\x91\x2d\xa0\x03\xd1\x12\x24\xd3\x0c\x24\xf1\x03\x00\x14\x21\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -_collections_abc_toplevel_consts_64_consts_3_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x82\x24\x26\x01", -}; -static - struct _PyCode_DEF(80) -_collections_abc_toplevel_consts_64_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 40, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_58_consts_1._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_64_consts_3_exceptiontable.ob_base.ob_base, - .co_flags = 35, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 911, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 486, - .co_localsplusnames = & _collections_abc_toplevel_consts_56_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iter__), - .co_qualname = & _collections_abc_toplevel_consts_64_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_64_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x13\x00\x00\x7d\x01\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x19\x00\x00\x00\x96\x01\x97\x01\x01\x00\x8c\x15\x04\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_64_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_ValuesView._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_64_consts_2.ob_base.ob_base, - & _collections_abc_toplevel_consts_64_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_64_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__slots__), - &_Py_ID(__contains__), - &_Py_ID(__iter__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -_collections_abc_toplevel_consts_64_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe0\x10\x12\x80\x49\xf2\x04\x05\x05\x15\xf3\x0e\x02\x05\x25", -}; -static - struct _PyCode_DEF(28) -_collections_abc_toplevel_consts_64 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 14, - }, - .co_consts = & _collections_abc_toplevel_consts_64_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_64_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 900, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 487, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_ValuesView._ascii.ob_base, - .co_qualname = & const_str_ValuesView._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_64_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[236]; - } -_collections_abc_toplevel_consts_66_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 235, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x20\x4d\x75\x74\x61\x62\x6c\x65\x4d\x61\x70\x70\x69\x6e\x67\x20\x69\x73\x20\x61\x20\x67\x65\x6e\x65\x72\x69\x63\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x66\x6f\x72\x20\x61\x73\x73\x6f\x63\x69\x61\x74\x69\x6e\x67\x0a\x20\x20\x20\x20\x6b\x65\x79\x2f\x76\x61\x6c\x75\x65\x20\x70\x61\x69\x72\x73\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x63\x6c\x61\x73\x73\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x63\x6f\x6e\x63\x72\x65\x74\x65\x20\x67\x65\x6e\x65\x72\x69\x63\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x6f\x66\x20\x61\x6c\x6c\x0a\x20\x20\x20\x20\x6d\x65\x74\x68\x6f\x64\x73\x20\x65\x78\x63\x65\x70\x74\x20\x66\x6f\x72\x20\x5f\x5f\x67\x65\x74\x69\x74\x65\x6d\x5f\x5f\x2c\x20\x5f\x5f\x73\x65\x74\x69\x74\x65\x6d\x5f\x5f\x2c\x20\x5f\x5f\x64\x65\x6c\x69\x74\x65\x6d\x5f\x5f\x2c\x0a\x20\x20\x20\x20\x5f\x5f\x69\x74\x65\x72\x5f\x5f\x2c\x20\x61\x6e\x64\x20\x5f\x5f\x6c\x65\x6e\x5f\x5f\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -_collections_abc_toplevel_consts_66_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableMapping.__setitem__", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(key), - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_66_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_56_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 930, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 488, - .co_localsplusnames = & _collections_abc_toplevel_consts_66_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__setitem__), - .co_qualname = & _collections_abc_toplevel_consts_66_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_56_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -_collections_abc_toplevel_consts_66_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableMapping.__delitem__", -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_66_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_56_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 934, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 489, - .co_localsplusnames = & _collections_abc_toplevel_consts_56_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__delitem__), - .co_qualname = & _collections_abc_toplevel_consts_66_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_56_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[170]; - } -_collections_abc_toplevel_consts_66_consts_5_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 169, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x44\x2e\x70\x6f\x70\x28\x6b\x5b\x2c\x64\x5d\x29\x20\x2d\x3e\x20\x76\x2c\x20\x72\x65\x6d\x6f\x76\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x6b\x65\x79\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x63\x6f\x72\x72\x65\x73\x70\x6f\x6e\x64\x69\x6e\x67\x20\x76\x61\x6c\x75\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x66\x20\x6b\x65\x79\x20\x69\x73\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64\x2c\x20\x64\x20\x69\x73\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x69\x66\x20\x67\x69\x76\x65\x6e\x2c\x20\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x4b\x65\x79\x45\x72\x72\x6f\x72\x20\x69\x73\x20\x72\x61\x69\x73\x65\x64\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_66_consts_5_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -const_str__MutableMapping__marker = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_MutableMapping__marker", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_KeyError._ascii.ob_base, - & const_str__MutableMapping__marker._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -_collections_abc_toplevel_consts_66_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableMapping.pop", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[68]; - } -_collections_abc_toplevel_consts_66_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 67, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x08\x09\x19\xd8\x14\x18\x98\x13\x91\x49\x88\x45\xf0\x0c\x00\x11\x15\x90\x53\x90\x09\xd8\x13\x18\x88\x4c\xf8\xf4\x0d\x00\x10\x18\xf2\x00\x03\x09\x1b\xd8\x0f\x16\x98\x24\x9f\x2d\x99\x2d\xd1\x0f\x27\xd8\x10\x15\xd8\x13\x1a\x8a\x4e\xf0\x07\x03\x09\x1b\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -_collections_abc_toplevel_consts_66_consts_5_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x82\x05\x0c\x00\x8c\x1a\x29\x03\xa8\x01\x29\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_5_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(key), - &_Py_ID(default), - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(88) -_collections_abc_toplevel_consts_66_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 44, - }, - .co_consts = & _collections_abc_toplevel_consts_66_consts_5_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_66_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_66_consts_5_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 940, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 490, - .co_localsplusnames = & _collections_abc_toplevel_consts_66_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_pop._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_66_consts_5_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_66_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x7c\x00\x7c\x01\x19\x00\x00\x00\x7d\x03\x7c\x00\x7c\x01\x3d\x00\x7c\x03\x53\x00\x23\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x14\x01\x00\x7c\x02\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x01\x82\x00\x7c\x02\x63\x02\x59\x00\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[132]; - } -_collections_abc_toplevel_consts_66_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 131, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x44\x2e\x70\x6f\x70\x69\x74\x65\x6d\x28\x29\x20\x2d\x3e\x20\x28\x6b\x2c\x20\x76\x29\x2c\x20\x72\x65\x6d\x6f\x76\x65\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x6f\x6d\x65\x20\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x70\x61\x69\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x20\x61\x20\x32\x2d\x74\x75\x70\x6c\x65\x3b\x20\x62\x75\x74\x20\x72\x61\x69\x73\x65\x20\x4b\x65\x79\x45\x72\x72\x6f\x72\x20\x69\x66\x20\x44\x20\x69\x73\x20\x65\x6d\x70\x74\x79\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & _collections_abc_toplevel_consts_66_consts_6_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(next), - &_Py_ID(iter), - & const_str_StopIteration._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_popitem = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "popitem", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -_collections_abc_toplevel_consts_66_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableMapping.popitem", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[75]; - } -_collections_abc_toplevel_consts_66_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 74, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x03\x09\x25\xdc\x12\x16\x94\x74\x98\x44\x93\x7a\xd3\x12\x22\x88\x43\xf0\x06\x00\x11\x15\x90\x53\x91\x09\x88\x05\xd8\x0c\x10\x90\x13\x88\x49\xd8\x0f\x12\x90\x45\x88\x7a\xd0\x08\x19\xf8\xf4\x09\x00\x10\x1d\xf2\x00\x01\x09\x25\xdc\x12\x1a\xa0\x04\xd0\x0c\x24\xf0\x03\x01\x09\x25\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -_collections_abc_toplevel_consts_66_consts_6_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = "\x82\x14\x22\x00\xa2\x11\x33\x03", -}; -static - struct _PyCode_DEF(108) -_collections_abc_toplevel_consts_66_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 54, - }, - .co_consts = & _collections_abc_toplevel_consts_66_consts_6_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_66_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_66_consts_6_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 954, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 491, - .co_localsplusnames = & _collections_abc_toplevel_consts_66_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_popitem._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_66_consts_6_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_66_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x7c\x01\x19\x00\x00\x00\x7d\x02\x7c\x00\x7c\x01\x3d\x00\x7c\x01\x7c\x02\x66\x02\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x08\x01\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x82\x02\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[45]; - } -_collections_abc_toplevel_consts_66_consts_7_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 44, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "D.clear() -> None. Remove all items from D.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & _collections_abc_toplevel_consts_66_consts_7_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_popitem._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -_collections_abc_toplevel_consts_66_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableMapping.clear", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[43]; - } -_collections_abc_toplevel_consts_66_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 42, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x04\x09\x11\xd8\x12\x16\xd8\x10\x14\x97\x0c\x91\x0c\x94\x0e\xf0\x03\x00\x13\x17\xf8\xe4\x0f\x17\xf2\x00\x01\x09\x11\xd9\x0c\x10\xf0\x03\x01\x09\x11\xfa", -}; -static - struct _PyCode_DEF(70) -_collections_abc_toplevel_consts_66_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 35, - }, - .co_consts = & _collections_abc_toplevel_consts_66_consts_7_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_66_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_54_consts_7_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 966, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 492, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(clear), - .co_qualname = & _collections_abc_toplevel_consts_66_consts_7_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_66_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x09\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x11\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[339]; - } -_collections_abc_toplevel_consts_66_consts_8_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 338, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x44\x2e\x75\x70\x64\x61\x74\x65\x28\x5b\x45\x2c\x20\x5d\x2a\x2a\x46\x29\x20\x2d\x3e\x20\x4e\x6f\x6e\x65\x2e\x20\x20\x55\x70\x64\x61\x74\x65\x20\x44\x20\x66\x72\x6f\x6d\x20\x6d\x61\x70\x70\x69\x6e\x67\x2f\x69\x74\x65\x72\x61\x62\x6c\x65\x20\x45\x20\x61\x6e\x64\x20\x46\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x66\x20\x45\x20\x70\x72\x65\x73\x65\x6e\x74\x20\x61\x6e\x64\x20\x68\x61\x73\x20\x61\x20\x2e\x6b\x65\x79\x73\x28\x29\x20\x6d\x65\x74\x68\x6f\x64\x2c\x20\x64\x6f\x65\x73\x3a\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x6b\x20\x69\x6e\x20\x45\x2e\x6b\x65\x79\x73\x28\x29\x3a\x20\x44\x5b\x6b\x5d\x20\x3d\x20\x45\x5b\x6b\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x66\x20\x45\x20\x70\x72\x65\x73\x65\x6e\x74\x20\x61\x6e\x64\x20\x6c\x61\x63\x6b\x73\x20\x2e\x6b\x65\x79\x73\x28\x29\x20\x6d\x65\x74\x68\x6f\x64\x2c\x20\x64\x6f\x65\x73\x3a\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6b\x2c\x20\x76\x29\x20\x69\x6e\x20\x45\x3a\x20\x44\x5b\x6b\x5d\x20\x3d\x20\x76\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x6e\x20\x65\x69\x74\x68\x65\x72\x20\x63\x61\x73\x65\x2c\x20\x74\x68\x69\x73\x20\x69\x73\x20\x66\x6f\x6c\x6c\x6f\x77\x65\x64\x20\x62\x79\x3a\x20\x66\x6f\x72\x20\x6b\x2c\x20\x76\x20\x69\x6e\x20\x46\x2e\x69\x74\x65\x6d\x73\x28\x29\x3a\x20\x44\x5b\x6b\x5d\x20\x3d\x20\x76\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_8_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & _collections_abc_toplevel_consts_66_consts_8_consts_0._ascii.ob_base, - &_Py_ID(keys), - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_8_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_Mapping._ascii.ob_base, - & const_str_hasattr._ascii.ob_base, - &_Py_ID(keys), - &_Py_ID(items), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -_collections_abc_toplevel_consts_66_consts_8_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableMapping.update", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[131]; - } -_collections_abc_toplevel_consts_66_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 130, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0c\x00\x0c\x16\x90\x65\x9c\x57\xd4\x0b\x25\xdb\x17\x1c\x90\x03\xd8\x1c\x21\xa0\x23\x99\x4a\x90\x04\x90\x53\x92\x09\xf1\x03\x00\x18\x1d\xe4\x0d\x14\x90\x55\x98\x46\xd4\x0d\x23\xd8\x17\x1c\x97\x7a\x91\x7a\x96\x7c\x90\x03\xd8\x1c\x21\xa0\x23\x99\x4a\x90\x04\x90\x53\x92\x09\xf1\x03\x00\x18\x24\xf3\x06\x00\x1f\x24\x91\x0a\x90\x03\x90\x55\xd8\x1c\x21\x90\x04\x90\x53\x92\x09\xf0\x03\x00\x1f\x24\xe0\x1a\x1e\x9f\x2a\x99\x2a\x9e\x2c\x89\x4a\x88\x43\x90\x15\xd8\x18\x1d\x88\x44\x90\x13\x8a\x49\xf1\x03\x00\x1b\x27", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_8_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(self), - & const_str_other._ascii.ob_base, - & const_str_kwds._ascii.ob_base, - &_Py_ID(key), - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(240) -_collections_abc_toplevel_consts_66_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 120, - }, - .co_consts = & _collections_abc_toplevel_consts_66_consts_8_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_66_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 11, - .co_argcount = 2, - .co_posonlyargcount = 2, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 974, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 493, - .co_localsplusnames = & _collections_abc_toplevel_consts_66_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_update._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_66_consts_8_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_66_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x10\x7c\x01\x44\x00\x5d\x0a\x00\x00\x7d\x03\x7c\x01\x7c\x03\x19\x00\x00\x00\x7c\x00\x7c\x03\x3c\x00\x00\x00\x8c\x0c\x04\x00\x6e\x39\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x72\x1e\x7c\x01\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x0a\x00\x00\x7d\x03\x7c\x01\x7c\x03\x19\x00\x00\x00\x7c\x00\x7c\x03\x3c\x00\x00\x00\x8c\x0c\x04\x00\x6e\x0f\x7c\x01\x44\x00\x5d\x0a\x00\x00\x5c\x02\x00\x00\x7d\x03\x7d\x04\x7c\x04\x7c\x00\x7c\x03\x3c\x00\x00\x00\x8c\x0c\x04\x00\x7c\x02\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x0a\x00\x00\x5c\x02\x00\x00\x7d\x03\x7d\x04\x7c\x04\x7c\x00\x7c\x03\x3c\x00\x00\x00\x8c\x0c\x04\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[65]; - } -_collections_abc_toplevel_consts_66_consts_10_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 64, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_10_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_66_consts_10_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -_collections_abc_toplevel_consts_66_consts_10_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableMapping.setdefault", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[47]; - } -_collections_abc_toplevel_consts_66_consts_10_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 46, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x03\x09\x20\xd8\x13\x17\x98\x03\x91\x39\xd0\x0c\x1c\xf8\xdc\x0f\x17\xf2\x00\x01\x09\x20\xd8\x18\x1f\x88\x44\x90\x13\x8a\x49\xd8\x0f\x16\x88\x0e\xf0\x05\x01\x09\x20\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -_collections_abc_toplevel_consts_66_consts_10_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x82\x04\x07\x00\x87\x0e\x19\x03\x98\x01\x19\x03", -}; -static - struct _PyCode_DEF(56) -_collections_abc_toplevel_consts_66_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & _collections_abc_toplevel_consts_66_consts_10_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_56_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_66_consts_10_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 992, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 494, - .co_localsplusnames = & _collections_abc_toplevel_consts_56_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_setdefault._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_66_consts_10_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_66_consts_10_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x7c\x00\x7c\x01\x19\x00\x00\x00\x53\x00\x23\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x09\x01\x00\x7c\x02\x7c\x00\x7c\x01\x3c\x00\x00\x00\x59\x00\x7c\x02\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_66_consts_11 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - (PyObject *)& _Py_SINGLETON(tuple_empty), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -_collections_abc_toplevel_consts_66_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str_MutableMapping._ascii.ob_base, - & _collections_abc_toplevel_consts_66_consts_1._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_66_consts_3.ob_base.ob_base, - & _collections_abc_toplevel_consts_66_consts_4.ob_base.ob_base, - & _collections_abc_toplevel_consts_66_consts_5.ob_base.ob_base, - & _collections_abc_toplevel_consts_66_consts_6.ob_base.ob_base, - & _collections_abc_toplevel_consts_66_consts_7.ob_base.ob_base, - & _collections_abc_toplevel_consts_66_consts_8.ob_base.ob_base, - Py_None, - & _collections_abc_toplevel_consts_66_consts_10.ob_base.ob_base, - & _collections_abc_toplevel_consts_66_consts_11._object.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -_collections_abc_toplevel_consts_66_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__setitem__), - &_Py_ID(__delitem__), - &_Py_ID(object), - & const_str__MutableMapping__marker._ascii.ob_base, - & const_str_pop._ascii.ob_base, - & const_str_popitem._ascii.ob_base, - &_Py_ID(clear), - & const_str_update._ascii.ob_base, - & const_str_setdefault._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[90]; - } -_collections_abc_toplevel_consts_66_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 89, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x06\x05\x08\xf0\x10\x00\x11\x13\x80\x49\xe0\x05\x13\xf1\x02\x01\x05\x17\xf3\x03\x00\x06\x14\xf0\x02\x01\x05\x17\xf0\x06\x00\x06\x14\xf1\x02\x01\x05\x17\xf3\x03\x00\x06\x14\xf0\x02\x01\x05\x17\xf1\x06\x00\x10\x16\x8b\x78\x80\x48\xe0\x1f\x27\xf3\x00\x0c\x05\x19\xf2\x1c\x0a\x05\x1a\xf2\x18\x06\x05\x11\xf3\x10\x10\x05\x1e\xf4\x24\x06\x05\x17", -}; -static - struct _PyCode_DEF(104) -_collections_abc_toplevel_consts_66 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 52, - }, - .co_consts = & _collections_abc_toplevel_consts_66_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_66_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 919, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 495, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_MutableMapping._ascii.ob_base, - .co_qualname = & const_str_MutableMapping._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_66_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x65\x05\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x06\x65\x05\x64\x04\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x02\x00\x65\x08\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x09\x65\x09\x66\x01\x64\x05\x84\x01\x5a\x0a\x64\x06\x84\x00\x5a\x0b\x64\x07\x84\x00\x5a\x0c\x64\x0b\x64\x08\x84\x01\x5a\x0d\x64\x0c\x64\x0a\x84\x01\x5a\x0e\x79\x09", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[139]; - } -_collections_abc_toplevel_consts_68_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 138, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x6c\x6c\x20\x74\x68\x65\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x73\x20\x6f\x6e\x20\x61\x20\x72\x65\x61\x64\x2d\x6f\x6e\x6c\x79\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x2e\x0a\x0a\x20\x20\x20\x20\x43\x6f\x6e\x63\x72\x65\x74\x65\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x65\x73\x20\x6d\x75\x73\x74\x20\x6f\x76\x65\x72\x72\x69\x64\x65\x20\x5f\x5f\x6e\x65\x77\x5f\x5f\x20\x6f\x72\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x2c\x0a\x20\x20\x20\x20\x5f\x5f\x67\x65\x74\x69\x74\x65\x6d\x5f\x5f\x2c\x20\x61\x6e\x64\x20\x5f\x5f\x6c\x65\x6e\x5f\x5f\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_IndexError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -_collections_abc_toplevel_consts_68_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Sequence.__getitem__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -_collections_abc_toplevel_consts_68_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0e\x18\xd0\x08\x18", -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_68_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_68_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 1018, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 496, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_66_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__getitem__), - .co_qualname = & _collections_abc_toplevel_consts_68_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_68_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -_collections_abc_toplevel_consts_68_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Sequence.__iter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[67]; - } -_collections_abc_toplevel_consts_68_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 66, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xd8\x0c\x0d\x88\x01\xf0\x02\x06\x09\x13\xd8\x12\x16\xd8\x14\x18\x98\x11\x91\x47\x90\x01\xd8\x16\x17\x92\x07\xd8\x10\x11\x90\x51\x91\x06\x90\x01\xf0\x07\x00\x13\x17\xf8\xf4\x08\x00\x10\x1a\xf2\x00\x01\x09\x13\xd9\x0c\x12\xf0\x03\x01\x09\x13\xfc", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[25]; - } -_collections_abc_toplevel_consts_68_consts_5_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 24, - }, - .ob_shash = -1, - .ob_sval = "\x82\x03\x25\x01\x86\x10\x16\x00\x96\x09\x22\x03\x9f\x02\x25\x01\xa1\x01\x22\x03\xa2\x03\x25\x01", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_5_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - (PyObject *)&_Py_SINGLETON(strings).ascii[118], - }, - }, -}; -static - struct _PyCode_DEF(78) -_collections_abc_toplevel_consts_68_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 39, - }, - .co_consts = & _collections_abc_toplevel_consts_68_consts_5_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_68_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_68_consts_5_exceptiontable.ob_base.ob_base, - .co_flags = 35, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 1022, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 497, - .co_localsplusnames = & _collections_abc_toplevel_consts_68_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iter__), - .co_qualname = & _collections_abc_toplevel_consts_68_consts_5_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_68_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x64\x01\x7d\x01\x09\x00\x09\x00\x7c\x00\x7c\x01\x19\x00\x00\x00\x7d\x02\x7c\x02\x96\x02\x97\x01\x01\x00\x7c\x01\x64\x02\x7a\x0d\x00\x00\x7d\x01\x8c\x0f\x23\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x00\x77\x00\x78\x03\x59\x00\x77\x01\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -_collections_abc_toplevel_consts_68_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Sequence.__contains__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[34]; - } -_collections_abc_toplevel_consts_68_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 33, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdb\x11\x15\x88\x41\xd8\x0f\x10\x90\x45\x89\x7a\x98\x51\xa0\x25\x9b\x5a\xd9\x17\x1b\xf0\x05\x00\x12\x16\xf0\x06\x00\x10\x15", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(value), - (PyObject *)&_Py_SINGLETON(strings).ascii[118], - }, - }, -}; -static - struct _PyCode_DEF(40) -_collections_abc_toplevel_consts_68_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & _collections_abc_toplevel_consts_56_consts_7_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 1032, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 498, - .co_localsplusnames = & _collections_abc_toplevel_consts_68_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__contains__), - .co_qualname = & _collections_abc_toplevel_consts_68_consts_6_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_68_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x44\x00\x5d\x0d\x00\x00\x7d\x02\x7c\x02\x7c\x01\x75\x00\x73\x06\x7c\x02\x7c\x01\x6b\x28\x00\x00\x73\x01\x8c\x0d\x01\x00\x79\x01\x04\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_range = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "range", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(reversed), - & const_str_range._ascii.ob_base, - &_Py_ID(len), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -_collections_abc_toplevel_consts_68_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Sequence.__reversed__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[40]; - } -_collections_abc_toplevel_consts_68_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 39, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xdc\x11\x19\x9c\x25\xa4\x03\xa0\x44\xa3\x09\xd3\x1a\x2a\xd6\x11\x2b\x88\x41\xd8\x12\x16\x90\x71\x91\x27\x8b\x4d\xf1\x03\x00\x12\x2c\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -_collections_abc_toplevel_consts_68_consts_7_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x82\x2b\x2d\x01", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_7_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - }, - }, -}; -static - struct _PyCode_DEF(94) -_collections_abc_toplevel_consts_68_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 47, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_68_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_68_consts_7_exceptiontable.ob_base.ob_base, - .co_flags = 35, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 1038, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 499, - .co_localsplusnames = & _collections_abc_toplevel_consts_68_consts_7_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__reversed__), - .co_qualname = & _collections_abc_toplevel_consts_68_consts_7_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_68_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x09\x00\x00\x7d\x01\x7c\x00\x7c\x01\x19\x00\x00\x00\x96\x01\x97\x01\x01\x00\x8c\x0b\x04\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[231]; - } -_collections_abc_toplevel_consts_68_consts_9_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 230, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x2e\x69\x6e\x64\x65\x78\x28\x76\x61\x6c\x75\x65\x2c\x20\x5b\x73\x74\x61\x72\x74\x2c\x20\x5b\x73\x74\x6f\x70\x5d\x5d\x29\x20\x2d\x3e\x20\x69\x6e\x74\x65\x67\x65\x72\x20\x2d\x2d\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x69\x72\x73\x74\x20\x69\x6e\x64\x65\x78\x20\x6f\x66\x20\x76\x61\x6c\x75\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x61\x69\x73\x65\x73\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x20\x69\x66\x20\x74\x68\x65\x20\x76\x61\x6c\x75\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x70\x72\x65\x73\x65\x6e\x74\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x53\x75\x70\x70\x6f\x72\x74\x69\x6e\x67\x20\x73\x74\x61\x72\x74\x20\x61\x6e\x64\x20\x73\x74\x6f\x70\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x69\x73\x20\x6f\x70\x74\x69\x6f\x6e\x61\x6c\x2c\x20\x62\x75\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x63\x6f\x6d\x6d\x65\x6e\x64\x65\x64\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_9_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & _collections_abc_toplevel_consts_68_consts_9_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_max._ascii.ob_base, - &_Py_ID(len), - & const_str_IndexError._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -_collections_abc_toplevel_consts_68_consts_9_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Sequence.index", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[172]; - } -_collections_abc_toplevel_consts_68_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 171, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x0e\x00\x0c\x11\xd0\x0b\x1c\xa0\x15\xa8\x11\xa2\x19\xdc\x14\x17\x9c\x03\x98\x44\x9b\x09\xa0\x45\xd1\x18\x29\xa8\x31\xd3\x14\x2d\x88\x45\xd8\x0b\x0f\xd0\x0b\x1b\xa0\x04\xa0\x71\xa2\x08\xd8\x0c\x10\x94\x43\x98\x04\x93\x49\xd1\x0c\x1d\x88\x44\xe0\x0c\x11\x88\x01\xd8\x0e\x12\x88\x6c\x98\x61\xa0\x24\x9a\x68\xf0\x02\x03\x0d\x16\xd8\x14\x18\x98\x11\x91\x47\x90\x01\xf0\x06\x00\x10\x11\x90\x45\x89\x7a\x98\x51\xa0\x25\x9a\x5a\xd8\x17\x18\x90\x08\xd8\x0c\x0d\x90\x11\x89\x46\x88\x41\xf0\x0f\x00\x0f\x13\x89\x6c\x98\x61\xa0\x24\x9b\x68\xf4\x10\x00\x0f\x19\xd0\x08\x18\xf8\xf4\x0b\x00\x14\x1e\xf2\x00\x01\x0d\x16\xd8\x10\x15\xf4\x08\x00\x0f\x19\xd0\x08\x18\xf0\x0b\x01\x0d\x16\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -_collections_abc_toplevel_consts_68_consts_9_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\xbf\x05\x41\x23\x00\xc1\x23\x09\x41\x34\x03\xc1\x33\x01\x41\x34\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_stop = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "stop", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_9_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(value), - &_Py_ID(start), - & const_str_stop._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - (PyObject *)&_Py_SINGLETON(strings).ascii[118], - }, - }, -}; -static - struct _PyCode_DEF(238) -_collections_abc_toplevel_consts_68_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 119, - }, - .co_consts = & _collections_abc_toplevel_consts_68_consts_9_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_68_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_68_consts_9_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1042, - .co_nlocalsplus = 6, - .co_nlocals = 6, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 500, - .co_localsplusnames = & _collections_abc_toplevel_consts_68_consts_9_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_30_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_index._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_68_consts_9_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_68_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x02\x81\x1d\x7c\x02\x64\x01\x6b\x02\x00\x00\x72\x18\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x02\x7a\x00\x00\x00\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x03\x81\x13\x7c\x03\x64\x01\x6b\x02\x00\x00\x72\x0e\x7c\x03\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7a\x0d\x00\x00\x7d\x03\x7c\x02\x7d\x04\x7c\x03\x81\x05\x7c\x04\x7c\x03\x6b\x02\x00\x00\x72\x1f\x09\x00\x7c\x00\x7c\x04\x19\x00\x00\x00\x7d\x05\x7c\x05\x7c\x01\x75\x00\x73\x05\x7c\x05\x7c\x01\x6b\x28\x00\x00\x72\x02\x7c\x04\x53\x00\x7c\x04\x64\x02\x7a\x0d\x00\x00\x7d\x04\x7c\x03\x80\x01\x8c\x19\x7c\x04\x7c\x03\x6b\x02\x00\x00\x72\x01\x8c\x1f\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x08\x01\x00\x59\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[67]; - } -_collections_abc_toplevel_consts_68_consts_10_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 66, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S.count(value) -> integer -- return number of occurrences of value", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[34]; - } -_collections_abc_toplevel_consts_68_consts_10_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 33, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Sequence.count..", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[31]; - } -_collections_abc_toplevel_consts_68_consts_10_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 30, - }, - .ob_shash = -1, - .ob_sval = "\xf8\xe8\x00\xf8\x80\x00\xd0\x12\x3f\x99\x64\x98\x11\xa0\x61\xa8\x35\xa1\x6a\xb0\x41\xb8\x15\xb3\x4a\x94\x31\x99\x64\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -_collections_abc_toplevel_consts_68_consts_10_consts_1_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = "\x83\x0e\x19\x01\x92\x07\x19\x01", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_10_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & importlib__bootstrap_external_toplevel_consts_6_localsplusnames_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[118], - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(54) -_collections_abc_toplevel_consts_68_consts_10_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & importlib__bootstrap_external_toplevel_consts_6_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = & _collections_abc_toplevel_consts_68_consts_10_consts_1_exceptiontable.ob_base.ob_base, - .co_flags = 51, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 1067, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 501, - .co_localsplusnames = & _collections_abc_toplevel_consts_68_consts_10_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_genexpr), - .co_qualname = & _collections_abc_toplevel_consts_68_consts_10_consts_1_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_68_consts_10_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x4b\x00\x01\x00\x97\x00\x7c\x00\x5d\x10\x00\x00\x7d\x01\x7c\x01\x89\x02\x75\x00\x73\x06\x7c\x01\x89\x02\x6b\x28\x00\x00\x73\x01\x8c\x0d\x64\x00\x96\x01\x97\x01\x01\x00\x8c\x12\x04\x00\x79\x01\xad\x03\x77\x01", - ._co_firsttraceable = 3, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_10_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & _collections_abc_toplevel_consts_68_consts_10_consts_0._ascii.ob_base, - & _collections_abc_toplevel_consts_68_consts_10_consts_1.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_sum = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "sum", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_10_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_sum._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -_collections_abc_toplevel_consts_68_consts_10_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Sequence.count", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[21]; - } -_collections_abc_toplevel_consts_68_consts_10_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 20, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xe4\x0f\x12\xd3\x12\x3f\x99\x64\xd3\x12\x3f\xd3\x0f\x3f\xd0\x08\x3f", -}; -static - struct _PyCode_DEF(44) -_collections_abc_toplevel_consts_68_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & _collections_abc_toplevel_consts_68_consts_10_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_68_consts_10_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 1065, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 502, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & _collections_abc_toplevel_consts_52_consts_12_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(count), - .co_qualname = & _collections_abc_toplevel_consts_68_consts_10_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_68_consts_10_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x01\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x88\x01\x66\x01\x64\x01\x84\x08\x7c\x00\x44\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_68_consts_11 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[12]; - }_object; - } -_collections_abc_toplevel_consts_68_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 12, - }, - .ob_item = { - & const_str_Sequence._ascii.ob_base, - & _collections_abc_toplevel_consts_68_consts_1._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 32], - & _collections_abc_toplevel_consts_68_consts_4.ob_base.ob_base, - & _collections_abc_toplevel_consts_68_consts_5.ob_base.ob_base, - & _collections_abc_toplevel_consts_68_consts_6.ob_base.ob_base, - & _collections_abc_toplevel_consts_68_consts_7.ob_base.ob_base, - Py_None, - & _collections_abc_toplevel_consts_68_consts_9.ob_base.ob_base, - & _collections_abc_toplevel_consts_68_consts_10.ob_base.ob_base, - & _collections_abc_toplevel_consts_68_consts_11._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -_collections_abc_toplevel_consts_68_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__slots__), - &_Py_ID(__abc_tpflags__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__getitem__), - &_Py_ID(__iter__), - &_Py_ID(__contains__), - &_Py_ID(__reversed__), - & const_str_index._ascii.ob_base, - &_Py_ID(count), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[66]; - } -_collections_abc_toplevel_consts_68_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 65, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x04\x05\x08\xf0\x0c\x00\x11\x13\x80\x49\xf0\x06\x00\x17\x1d\x80\x4f\xe0\x05\x13\xf1\x02\x01\x05\x19\xf3\x03\x00\x06\x14\xf0\x02\x01\x05\x19\xf2\x06\x08\x05\x13\xf2\x14\x04\x05\x15\xf2\x0c\x02\x05\x1a\xf3\x08\x15\x05\x19\xf3\x2e\x02\x05\x40\x01", -}; -static - struct _PyCode_DEF(72) -_collections_abc_toplevel_consts_68 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 36, - }, - .co_consts = & _collections_abc_toplevel_consts_68_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_68_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1006, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 503, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_Sequence._ascii.ob_base, - .co_qualname = & const_str_Sequence._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_68_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x64\x03\x5a\x05\x65\x06\x64\x04\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x64\x05\x84\x00\x5a\x08\x64\x06\x84\x00\x5a\x09\x64\x07\x84\x00\x5a\x0a\x64\x0b\x64\x09\x84\x01\x5a\x0b\x64\x0a\x84\x00\x5a\x0c\x79\x08", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -const_str__DeprecateByteStringMeta = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_DeprecateByteStringMeta", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -_collections_abc_toplevel_consts_70_consts_1_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "collections.abc.ByteString", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_70_consts_1_consts_4 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 3], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 14], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_70_consts_1_consts_5 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_remove._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_70_consts_1_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - Py_None, - & const_str_ByteString._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & _collections_abc_toplevel_consts_70_consts_1_consts_3._ascii.ob_base, - & _collections_abc_toplevel_consts_70_consts_1_consts_4._object.ob_base.ob_base, - & _collections_abc_toplevel_consts_70_consts_1_consts_5._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str__deprecated = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_deprecated", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_70_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(warnings), - & const_str__deprecated._ascii.ob_base, - & const_str_super._ascii.ob_base, - &_Py_ID(__new__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[33]; - } -_collections_abc_toplevel_consts_70_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 32, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_DeprecateByteStringMeta.__new__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[68]; - } -_collections_abc_toplevel_consts_70_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 67, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xd8\x0b\x0f\x90\x3c\xd2\x0b\x1f\xdb\x0c\x1b\xe0\x0c\x14\xd7\x0c\x20\xd1\x0c\x20\xd8\x10\x2c\xd8\x17\x1e\xf0\x05\x00\x0d\x21\xf4\x00\x03\x0d\x0e\xf4\x08\x00\x10\x15\x89\x77\x89\x7f\x98\x73\xa0\x44\xa8\x25\xb0\x19\xd1\x0f\x45\xb8\x66\xd1\x0f\x45\xd0\x08\x45", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -_collections_abc_toplevel_consts_70_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_cls._ascii.ob_base, - &_Py_ID(name), - & const_str_bases._ascii.ob_base, - & const_str_namespace._ascii.ob_base, - & const_str_kwargs._ascii.ob_base, - &_Py_ID(warnings), - &_Py_ID(__class__), - }, - }, -}; -static - struct _PyCode_DEF(98) -_collections_abc_toplevel_consts_70_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 49, - }, - .co_consts = & _collections_abc_toplevel_consts_70_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_70_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 11, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 13 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 1075, - .co_nlocalsplus = 7, - .co_nlocals = 6, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 504, - .co_localsplusnames = & _collections_abc_toplevel_consts_70_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & abc_toplevel_consts_10_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__new__), - .co_qualname = & _collections_abc_toplevel_consts_70_consts_1_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_70_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x7c\x01\x64\x01\x6b\x37\x00\x00\x72\x17\x64\x02\x64\x00\x6c\x00\x7d\x05\x7c\x05\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x64\x04\xac\x05\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x89\x06\x7c\x00\x8d\x0c\x00\x00\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x66\x04\x69\x00\x7c\x04\xa4\x01\x8e\x01\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_collections_abc_toplevel_consts_70_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & _collections_abc_toplevel_consts_70_consts_1_consts_3._ascii.ob_base, - & _collections_abc_toplevel_consts_70_consts_1_consts_4._object.ob_base.ob_base, - & _collections_abc_toplevel_consts_70_consts_1_consts_5._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_70_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(warnings), - & const_str__deprecated._ascii.ob_base, - & const_str_super._ascii.ob_base, - &_Py_ID(__instancecheck__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[43]; - } -_collections_abc_toplevel_consts_70_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 42, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_DeprecateByteStringMeta.__instancecheck__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[50]; - } -_collections_abc_toplevel_consts_70_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 49, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xdb\x08\x17\xe0\x08\x10\xd7\x08\x1c\xd1\x08\x1c\xd8\x0c\x28\xd8\x13\x1a\xf0\x05\x00\x09\x1d\xf4\x00\x03\x09\x0a\xf4\x08\x00\x10\x15\x89\x77\xd1\x0f\x28\xa8\x18\xd3\x0f\x32\xd0\x08\x32", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_70_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_cls._ascii.ob_base, - & const_str_instance._ascii.ob_base, - &_Py_ID(warnings), - &_Py_ID(__class__), - }, - }, -}; -static - struct _PyCode_DEF(80) -_collections_abc_toplevel_consts_70_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 40, - }, - .co_consts = & _collections_abc_toplevel_consts_70_consts_2_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_70_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 1085, - .co_nlocalsplus = 4, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 505, - .co_localsplusnames = & _collections_abc_toplevel_consts_70_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__instancecheck__), - .co_qualname = & _collections_abc_toplevel_consts_70_consts_2_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_70_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x64\x01\x64\x00\x6c\x00\x7d\x02\x7c\x02\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x64\x03\xac\x04\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x89\x03\x7c\x00\x8d\x0d\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_70_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str__DeprecateByteStringMeta._ascii.ob_base, - & _collections_abc_toplevel_consts_70_consts_1.ob_base.ob_base, - & _collections_abc_toplevel_consts_70_consts_2.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_collections_abc_toplevel_consts_70_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__new__), - &_Py_ID(__instancecheck__), - &_Py_ID(__classcell__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[20]; - } -_collections_abc_toplevel_consts_70_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 19, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x84\x00\xf4\x02\x08\x05\x46\x01\xf7\x14\x07\x05\x33\xf0\x00\x07\x05\x33", -}; -static - struct _PyCode_DEF(40) -_collections_abc_toplevel_consts_70 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & _collections_abc_toplevel_consts_70_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_70_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1074, - .co_nlocalsplus = 1, - .co_nlocals = 0, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 506, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[64]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__DeprecateByteStringMeta._ascii.ob_base, - .co_qualname = & const_str__DeprecateByteStringMeta._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_70_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x00\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x88\x00\x66\x01\x64\x01\x84\x08\x5a\x03\x88\x00\x66\x01\x64\x02\x84\x08\x5a\x04\x88\x00\x78\x01\x5a\x05\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[78]; - } -_collections_abc_toplevel_consts_72_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 77, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x54\x68\x69\x73\x20\x75\x6e\x69\x66\x69\x65\x73\x20\x62\x79\x74\x65\x73\x20\x61\x6e\x64\x20\x62\x79\x74\x65\x61\x72\x72\x61\x79\x2e\x0a\x0a\x20\x20\x20\x20\x58\x58\x58\x20\x53\x68\x6f\x75\x6c\x64\x20\x61\x64\x64\x20\x61\x6c\x6c\x20\x74\x68\x65\x69\x72\x20\x6d\x65\x74\x68\x6f\x64\x73\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_72_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_ByteString._ascii.ob_base, - & _collections_abc_toplevel_consts_72_consts_1._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - Py_None, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[15]; - } -_collections_abc_toplevel_consts_72_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 14, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x03\x05\x08\xf0\x0a\x00\x11\x13\x81\x49", -}; -static - struct _PyCode_DEF(20) -_collections_abc_toplevel_consts_72 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 10, - }, - .co_consts = & _collections_abc_toplevel_consts_72_consts._object.ob_base.ob_base, - .co_names = & abc_toplevel_consts_15_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 1094, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 507, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_ByteString._ascii.ob_base, - .co_qualname = & const_str_ByteString._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_72_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x79\x03", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[175]; - } -_collections_abc_toplevel_consts_74_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 174, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x6c\x6c\x20\x74\x68\x65\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x73\x20\x6f\x6e\x20\x61\x20\x72\x65\x61\x64\x2d\x77\x72\x69\x74\x65\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x2e\x0a\x0a\x20\x20\x20\x20\x43\x6f\x6e\x63\x72\x65\x74\x65\x20\x73\x75\x62\x63\x6c\x61\x73\x73\x65\x73\x20\x6d\x75\x73\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x20\x5f\x5f\x6e\x65\x77\x5f\x5f\x20\x6f\x72\x20\x5f\x5f\x69\x6e\x69\x74\x5f\x5f\x2c\x0a\x20\x20\x20\x20\x5f\x5f\x67\x65\x74\x69\x74\x65\x6d\x5f\x5f\x2c\x20\x5f\x5f\x73\x65\x74\x69\x74\x65\x6d\x5f\x5f\x2c\x20\x5f\x5f\x64\x65\x6c\x69\x74\x65\x6d\x5f\x5f\x2c\x20\x5f\x5f\x6c\x65\x6e\x5f\x5f\x2c\x20\x61\x6e\x64\x20\x69\x6e\x73\x65\x72\x74\x28\x29\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -_collections_abc_toplevel_consts_74_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSequence.__setitem__", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_index._ascii.ob_base, - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_74_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_68_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 1115, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 508, - .co_localsplusnames = & _collections_abc_toplevel_consts_74_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__setitem__), - .co_qualname = & _collections_abc_toplevel_consts_74_consts_3_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_68_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -_collections_abc_toplevel_consts_74_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSequence.__delitem__", -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_74_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_68_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 1119, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 509, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_66_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__delitem__), - .co_qualname = & _collections_abc_toplevel_consts_74_consts_4_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_68_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[52]; - } -_collections_abc_toplevel_consts_74_consts_5_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 51, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S.insert(index, value) -- insert value before index", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_74_consts_5_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -_collections_abc_toplevel_consts_74_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSequence.insert", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[11]; - } -_collections_abc_toplevel_consts_74_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 10, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x0f\x19\xd0\x08\x18", -}; -static - struct _PyCode_DEF(14) -_collections_abc_toplevel_consts_74_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & _collections_abc_toplevel_consts_74_consts_5_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_68_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 1123, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 510, - .co_localsplusnames = & _collections_abc_toplevel_consts_74_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_insert._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_74_consts_5_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_74_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[59]; - } -_collections_abc_toplevel_consts_74_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 58, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S.append(value) -- append value to the end of the sequence", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & _collections_abc_toplevel_consts_74_consts_6_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_insert._ascii.ob_base, - &_Py_ID(len), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -_collections_abc_toplevel_consts_74_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSequence.append", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[21]; - } -_collections_abc_toplevel_consts_74_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 20, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x08\x0c\x8f\x0b\x89\x0b\x94\x43\x98\x04\x93\x49\x98\x75\xd5\x08\x25", -}; -static - struct _PyCode_DEF(58) -_collections_abc_toplevel_consts_74_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 29, - }, - .co_consts = & _collections_abc_toplevel_consts_74_consts_6_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_74_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1128, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 511, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(append), - .co_qualname = & _collections_abc_toplevel_consts_74_consts_6_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_74_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[45]; - } -_collections_abc_toplevel_consts_74_consts_7_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 44, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S.clear() -> None -- remove all items from S", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & _collections_abc_toplevel_consts_74_consts_7_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_pop._ascii.ob_base, - & const_str_IndexError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -_collections_abc_toplevel_consts_74_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSequence.clear", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[43]; - } -_collections_abc_toplevel_consts_74_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 42, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x04\x09\x11\xd8\x12\x16\xd8\x10\x14\x97\x08\x91\x08\x94\x0a\xf0\x03\x00\x13\x17\xf8\xe4\x0f\x19\xf2\x00\x01\x09\x11\xd9\x0c\x10\xf0\x03\x01\x09\x11\xfa", -}; -static - struct _PyCode_DEF(70) -_collections_abc_toplevel_consts_74_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 35, - }, - .co_consts = & _collections_abc_toplevel_consts_74_consts_7_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_74_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_54_consts_7_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 1132, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 512, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(clear), - .co_qualname = & _collections_abc_toplevel_consts_74_consts_7_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_74_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x09\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x11\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[34]; - } -_collections_abc_toplevel_consts_74_consts_8_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 33, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S.reverse() -- reverse *IN PLACE*", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_8_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & _collections_abc_toplevel_consts_74_consts_8_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_8_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(len), - & const_str_range._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -_collections_abc_toplevel_consts_74_consts_8_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSequence.reverse", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[74]; - } -_collections_abc_toplevel_consts_74_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 73, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0c\x0f\x90\x04\x8b\x49\x88\x01\xdc\x11\x16\x90\x71\x98\x21\x91\x74\x96\x1b\x88\x41\xd8\x23\x27\xa8\x01\xa8\x21\xa9\x03\xa8\x41\xa9\x05\xa1\x3b\xb0\x04\xb0\x51\xb1\x07\xd0\x0c\x20\x88\x44\x90\x11\x89\x47\x90\x54\x98\x21\x98\x41\x99\x23\x98\x61\x99\x25\x92\x5b\xf1\x03\x00\x12\x1d", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_8_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - (PyObject *)&_Py_SINGLETON(strings).ascii[110], - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - }, - }, -}; -static - struct _PyCode_DEF(122) -_collections_abc_toplevel_consts_74_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 61, - }, - .co_consts = & _collections_abc_toplevel_consts_74_consts_8_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_74_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1140, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 513, - .co_localsplusnames = & _collections_abc_toplevel_consts_74_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(reverse), - .co_qualname = & _collections_abc_toplevel_consts_74_consts_8_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_74_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\x7a\x02\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x1f\x00\x00\x7d\x02\x7c\x00\x7c\x01\x7c\x02\x7a\x0a\x00\x00\x64\x02\x7a\x0a\x00\x00\x19\x00\x00\x00\x7c\x00\x7c\x02\x19\x00\x00\x00\x63\x02\x7c\x00\x7c\x02\x3c\x00\x00\x00\x7c\x00\x7c\x01\x7c\x02\x7a\x0a\x00\x00\x64\x02\x7a\x0a\x00\x00\x3c\x00\x00\x00\x8c\x21\x04\x00\x79\x03", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[78]; - } -_collections_abc_toplevel_consts_74_consts_9_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 77, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S.extend(iterable) -- extend sequence by appending elements from the iterable", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_9_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & _collections_abc_toplevel_consts_74_consts_9_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_list._ascii.ob_base, - &_Py_ID(append), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -_collections_abc_toplevel_consts_74_consts_9_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSequence.extend", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[40]; - } -_collections_abc_toplevel_consts_74_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 39, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x11\x90\x54\x89\x3e\xdc\x15\x19\x98\x26\x93\x5c\x88\x46\xdb\x11\x17\x88\x41\xd8\x0c\x10\x8f\x4b\x89\x4b\x98\x01\x8d\x4e\xf1\x03\x00\x12\x18", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_9_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(values), - (PyObject *)&_Py_SINGLETON(strings).ascii[118], - }, - }, -}; -static - struct _PyCode_DEF(82) -_collections_abc_toplevel_consts_74_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 41, - }, - .co_consts = & _collections_abc_toplevel_consts_74_consts_9_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_74_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 1146, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 514, - .co_localsplusnames = & _collections_abc_toplevel_consts_74_consts_9_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(extend), - .co_qualname = & _collections_abc_toplevel_consts_74_consts_9_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_74_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x75\x00\x72\x0b\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x44\x00\x5d\x13\x00\x00\x7d\x02\x7c\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x15\x04\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[154]; - } -_collections_abc_toplevel_consts_74_consts_10_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 153, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x2e\x70\x6f\x70\x28\x5b\x69\x6e\x64\x65\x78\x5d\x29\x20\x2d\x3e\x20\x69\x74\x65\x6d\x20\x2d\x2d\x20\x72\x65\x6d\x6f\x76\x65\x20\x61\x6e\x64\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x74\x65\x6d\x20\x61\x74\x20\x69\x6e\x64\x65\x78\x20\x28\x64\x65\x66\x61\x75\x6c\x74\x20\x6c\x61\x73\x74\x29\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x61\x69\x73\x65\x20\x49\x6e\x64\x65\x78\x45\x72\x72\x6f\x72\x20\x69\x66\x20\x6c\x69\x73\x74\x20\x69\x73\x20\x65\x6d\x70\x74\x79\x20\x6f\x72\x20\x69\x6e\x64\x65\x78\x20\x69\x73\x20\x6f\x75\x74\x20\x6f\x66\x20\x72\x61\x6e\x67\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_10_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & _collections_abc_toplevel_consts_74_consts_10_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -_collections_abc_toplevel_consts_74_consts_10_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSequence.pop", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[26]; - } -_collections_abc_toplevel_consts_74_consts_10_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 25, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x00\x0d\x11\x90\x15\x89\x4b\x88\x01\xd8\x0c\x10\x90\x15\x88\x4b\xd8\x0f\x10\x88\x08", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_10_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_index._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[118], - }, - }, -}; -static - struct _PyCode_DEF(22) -_collections_abc_toplevel_consts_74_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 11, - }, - .co_consts = & _collections_abc_toplevel_consts_74_consts_10_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1153, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 515, - .co_localsplusnames = & _collections_abc_toplevel_consts_74_consts_10_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_pop._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_74_consts_10_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_74_consts_10_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x7c\x01\x19\x00\x00\x00\x7d\x02\x7c\x00\x7c\x01\x3d\x00\x7c\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[119]; - } -_collections_abc_toplevel_consts_74_consts_11_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 118, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x2e\x72\x65\x6d\x6f\x76\x65\x28\x76\x61\x6c\x75\x65\x29\x20\x2d\x2d\x20\x72\x65\x6d\x6f\x76\x65\x20\x66\x69\x72\x73\x74\x20\x6f\x63\x63\x75\x72\x72\x65\x6e\x63\x65\x20\x6f\x66\x20\x76\x61\x6c\x75\x65\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x61\x69\x73\x65\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x20\x69\x66\x20\x74\x68\x65\x20\x76\x61\x6c\x75\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x70\x72\x65\x73\x65\x6e\x74\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_11_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & _collections_abc_toplevel_consts_74_consts_11_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_11_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_index._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -_collections_abc_toplevel_consts_74_consts_11_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSequence.remove", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[22]; - } -_collections_abc_toplevel_consts_74_consts_11_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 21, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x00\x0d\x11\x90\x14\x97\x1a\x91\x1a\x98\x45\xd3\x11\x22\xd1\x0c\x23", -}; -static - struct _PyCode_DEF(40) -_collections_abc_toplevel_consts_74_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & _collections_abc_toplevel_consts_74_consts_11_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_74_consts_11_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 1161, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 516, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_remove._ascii.ob_base, - .co_qualname = & _collections_abc_toplevel_consts_74_consts_11_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_74_consts_11_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x3d\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_12_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(extend), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -_collections_abc_toplevel_consts_74_consts_12_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MutableSequence.__iadd__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[20]; - } -_collections_abc_toplevel_consts_74_consts_12_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 19, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x08\x0c\x8f\x0b\x89\x0b\x90\x46\xd4\x08\x1b\xd8\x0f\x13\x88\x0b", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_collections_abc_toplevel_consts_74_consts_12_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(values), - }, - }, -}; -static - struct _PyCode_DEF(40) -_collections_abc_toplevel_consts_74_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_74_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 1167, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 517, - .co_localsplusnames = & _collections_abc_toplevel_consts_74_consts_12_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iadd__), - .co_qualname = & _collections_abc_toplevel_consts_74_consts_12_qualname._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_74_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -_collections_abc_toplevel_consts_74_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - & const_str_MutableSequence._ascii.ob_base, - & _collections_abc_toplevel_consts_74_consts_1._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_74_consts_3.ob_base.ob_base, - & _collections_abc_toplevel_consts_74_consts_4.ob_base.ob_base, - & _collections_abc_toplevel_consts_74_consts_5.ob_base.ob_base, - & _collections_abc_toplevel_consts_74_consts_6.ob_base.ob_base, - & _collections_abc_toplevel_consts_74_consts_7.ob_base.ob_base, - & _collections_abc_toplevel_consts_74_consts_8.ob_base.ob_base, - & _collections_abc_toplevel_consts_74_consts_9.ob_base.ob_base, - & _collections_abc_toplevel_consts_74_consts_10.ob_base.ob_base, - & _collections_abc_toplevel_consts_74_consts_11.ob_base.ob_base, - & _collections_abc_toplevel_consts_74_consts_12.ob_base.ob_base, - Py_None, - & codecs_toplevel_consts_28_consts_19._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[16]; - }_object; - } -_collections_abc_toplevel_consts_74_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 16, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__slots__), - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__setitem__), - &_Py_ID(__delitem__), - & const_str_insert._ascii.ob_base, - &_Py_ID(append), - &_Py_ID(clear), - &_Py_ID(reverse), - &_Py_ID(extend), - & const_str_pop._ascii.ob_base, - & const_str_remove._ascii.ob_base, - &_Py_ID(__iadd__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[108]; - } -_collections_abc_toplevel_consts_74_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 107, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x04\x05\x08\xf0\x0c\x00\x11\x13\x80\x49\xe0\x05\x13\xf1\x02\x01\x05\x19\xf3\x03\x00\x06\x14\xf0\x02\x01\x05\x19\xf0\x06\x00\x06\x14\xf1\x02\x01\x05\x19\xf3\x03\x00\x06\x14\xf0\x02\x01\x05\x19\xf0\x06\x00\x06\x14\xf1\x02\x02\x05\x19\xf3\x03\x00\x06\x14\xf0\x02\x02\x05\x19\xf2\x08\x02\x05\x26\xf2\x08\x06\x05\x11\xf2\x10\x04\x05\x38\xf2\x0c\x05\x05\x1b\xf3\x0e\x06\x05\x11\xf2\x10\x04\x05\x24\xf3\x0c\x02\x05\x14", -}; -static - struct _PyCode_DEF(112) -_collections_abc_toplevel_consts_74 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 56, - }, - .co_consts = & _collections_abc_toplevel_consts_74_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_consts_74_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1106, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 518, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_MutableSequence._ascii.ob_base, - .co_qualname = & const_str_MutableSequence._ascii.ob_base, - .co_linetable = & _collections_abc_toplevel_consts_74_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x65\x05\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x06\x65\x05\x64\x04\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x65\x05\x64\x05\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x08\x64\x06\x84\x00\x5a\x09\x64\x07\x84\x00\x5a\x0a\x64\x08\x84\x00\x5a\x0b\x64\x09\x84\x00\x5a\x0c\x64\x0e\x64\x0a\x84\x01\x5a\x0d\x64\x0b\x84\x00\x5a\x0e\x64\x0c\x84\x00\x5a\x0f\x79\x0d", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[76]; - }_object; - } -_collections_abc_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 76, - }, - .ob_item = { - & _collections_abc_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & _collections_abc_toplevel_consts_2._object.ob_base.ob_base, - Py_None, - Py_Ellipsis, - & _collections_abc_toplevel_consts_5.ob_base.ob_base, - & _collections_abc_toplevel_consts_6._object.ob_base.ob_base, - & _collections_abc_toplevel_consts_7._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_empty), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - & const_int_1000.ob_base, - &_Py_STR(empty), - (PyObject *)& _Py_SINGLETON(tuple_empty), - & _collections_abc_toplevel_consts_13.ob_base.ob_base, - & _collections_abc_toplevel_consts_14.ob_base.ob_base, - & _collections_abc_toplevel_consts_15.ob_base.ob_base, - & _collections_abc_toplevel_consts_16.ob_base.ob_base, - & _collections_abc_toplevel_consts_17.ob_base.ob_base, - & const_str_Hashable._ascii.ob_base, - & abc_toplevel_consts_17._object.ob_base.ob_base, - & _collections_abc_toplevel_consts_20.ob_base.ob_base, - & const_str_Awaitable._ascii.ob_base, - & _collections_abc_toplevel_consts_22.ob_base.ob_base, - & const_str_Coroutine._ascii.ob_base, - & _collections_abc_toplevel_consts_24.ob_base.ob_base, - & const_str_AsyncIterable._ascii.ob_base, - & _collections_abc_toplevel_consts_26.ob_base.ob_base, - & const_str_AsyncIterator._ascii.ob_base, - & _collections_abc_toplevel_consts_28.ob_base.ob_base, - & const_str_AsyncGenerator._ascii.ob_base, - & _collections_abc_toplevel_consts_30.ob_base.ob_base, - & const_str_Iterable._ascii.ob_base, - & _collections_abc_toplevel_consts_32.ob_base.ob_base, - & const_str_Iterator._ascii.ob_base, - & _collections_abc_toplevel_consts_34.ob_base.ob_base, - & const_str_Reversible._ascii.ob_base, - & _collections_abc_toplevel_consts_36.ob_base.ob_base, - & const_str_Generator._ascii.ob_base, - & _collections_abc_toplevel_consts_38.ob_base.ob_base, - & const_str_Sized._ascii.ob_base, - & _collections_abc_toplevel_consts_40.ob_base.ob_base, - & const_str_Container._ascii.ob_base, - & _collections_abc_toplevel_consts_42.ob_base.ob_base, - & const_str_Collection._ascii.ob_base, - & _collections_abc_toplevel_consts_44.ob_base.ob_base, - & const_str_Buffer._ascii.ob_base, - & _collections_abc_toplevel_consts_46.ob_base.ob_base, - & const_str__CallableGenericAlias._ascii.ob_base, - & _collections_abc_toplevel_consts_48.ob_base.ob_base, - & _collections_abc_toplevel_consts_49.ob_base.ob_base, - & _collections_abc_toplevel_consts_50.ob_base.ob_base, - & const_str_Callable._ascii.ob_base, - & _collections_abc_toplevel_consts_52.ob_base.ob_base, - & const_str_Set._ascii.ob_base, - & _collections_abc_toplevel_consts_54.ob_base.ob_base, - & const_str_MutableSet._ascii.ob_base, - & _collections_abc_toplevel_consts_56.ob_base.ob_base, - & const_str_Mapping._ascii.ob_base, - & _collections_abc_toplevel_consts_58.ob_base.ob_base, - & const_str_MappingView._ascii.ob_base, - & _collections_abc_toplevel_consts_60.ob_base.ob_base, - & const_str_KeysView._ascii.ob_base, - & _collections_abc_toplevel_consts_62.ob_base.ob_base, - & const_str_ItemsView._ascii.ob_base, - & _collections_abc_toplevel_consts_64.ob_base.ob_base, - & const_str_ValuesView._ascii.ob_base, - & _collections_abc_toplevel_consts_66.ob_base.ob_base, - & const_str_MutableMapping._ascii.ob_base, - & _collections_abc_toplevel_consts_68.ob_base.ob_base, - & const_str_Sequence._ascii.ob_base, - & _collections_abc_toplevel_consts_70.ob_base.ob_base, - & const_str__DeprecateByteStringMeta._ascii.ob_base, - & _collections_abc_toplevel_consts_72.ob_base.ob_base, - & const_str_ByteString._ascii.ob_base, - & _collections_abc_toplevel_consts_74.ob_base.ob_base, - & const_str_MutableSequence._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_EllipsisType = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "EllipsisType", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_bytes_iterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bytes_iterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_bytearray_iterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bytearray_iterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str_dict_keyiterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dict_keyiterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_dict_valueiterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dict_valueiterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str_dict_itemiterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dict_itemiterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_list_iterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "list_iterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -const_str_list_reverseiterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "list_reverseiterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_range_iterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "range_iterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_longrange_iterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "longrange_iterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_set_iterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "set_iterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_str_iterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "str_iterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_tuple_iterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "tuple_iterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_zip = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "zip", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_zip_iterator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "zip_iterator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_dict_keys = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dict_keys", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_dict_values = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dict_values", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_dict_items = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dict_items", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_mappingproxy = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "mappingproxy", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_generator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "generator", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_coroutine = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "coroutine", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_async_generator = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "async_generator", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[85]; - }_object; - } -_collections_abc_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 85, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str_abc._ascii.ob_base, - & const_str_ABCMeta._ascii.ob_base, - & const_str_abstractmethod._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(type), - & const_str_list._ascii.ob_base, - & const_str_int._ascii.ob_base, - & const_str_GenericAlias._ascii.ob_base, - & const_str_EllipsisType._ascii.ob_base, - & const_str__f._ascii.ob_base, - & const_str_FunctionType._ascii.ob_base, - &_Py_ID(__all__), - &_Py_ID(__name__), - &_Py_ID(iter), - & const_str_bytes_iterator._ascii.ob_base, - & const_str_bytearray._ascii.ob_base, - & const_str_bytearray_iterator._ascii.ob_base, - &_Py_ID(keys), - & const_str_dict_keyiterator._ascii.ob_base, - &_Py_ID(values), - & const_str_dict_valueiterator._ascii.ob_base, - &_Py_ID(items), - & const_str_dict_itemiterator._ascii.ob_base, - & const_str_list_iterator._ascii.ob_base, - &_Py_ID(reversed), - & const_str_list_reverseiterator._ascii.ob_base, - & const_str_range._ascii.ob_base, - & const_str_range_iterator._ascii.ob_base, - & const_str_longrange_iterator._ascii.ob_base, - & const_str_set._ascii.ob_base, - & const_str_set_iterator._ascii.ob_base, - & const_str_str_iterator._ascii.ob_base, - & const_str_tuple_iterator._ascii.ob_base, - & const_str_zip._ascii.ob_base, - & const_str_zip_iterator._ascii.ob_base, - & const_str_dict_keys._ascii.ob_base, - & const_str_dict_values._ascii.ob_base, - & const_str_dict_items._ascii.ob_base, - &_Py_ID(__dict__), - & const_str_mappingproxy._ascii.ob_base, - & const_str_generator._ascii.ob_base, - & const_str__coro._ascii.ob_base, - & const_str_coroutine._ascii.ob_base, - &_Py_ID(close), - & const_str__ag._ascii.ob_base, - & const_str_async_generator._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_Hashable._ascii.ob_base, - & const_str_Awaitable._ascii.ob_base, - & const_str_Coroutine._ascii.ob_base, - & const_str_register._ascii.ob_base, - & const_str_AsyncIterable._ascii.ob_base, - & const_str_AsyncIterator._ascii.ob_base, - & const_str_AsyncGenerator._ascii.ob_base, - & const_str_Iterable._ascii.ob_base, - & const_str_Iterator._ascii.ob_base, - & const_str_Reversible._ascii.ob_base, - & const_str_Generator._ascii.ob_base, - & const_str_Sized._ascii.ob_base, - & const_str_Container._ascii.ob_base, - & const_str_Collection._ascii.ob_base, - & const_str_Buffer._ascii.ob_base, - & const_str__CallableGenericAlias._ascii.ob_base, - & const_str__is_param_expr._ascii.ob_base, - & const_str__type_repr._ascii.ob_base, - & const_str_Callable._ascii.ob_base, - & const_str_Set._ascii.ob_base, - & const_str_frozenset._ascii.ob_base, - & const_str_MutableSet._ascii.ob_base, - & const_str_Mapping._ascii.ob_base, - & const_str_MappingView._ascii.ob_base, - & const_str_KeysView._ascii.ob_base, - & const_str_ItemsView._ascii.ob_base, - & const_str_ValuesView._ascii.ob_base, - & const_str_MutableMapping._ascii.ob_base, - &_Py_ID(dict), - & const_str_Sequence._ascii.ob_base, - & const_str_tuple._ascii.ob_base, - & const_str_str._ascii.ob_base, - & const_str_memoryview._ascii.ob_base, - & const_str__DeprecateByteStringMeta._ascii.ob_base, - & const_str_ByteString._ascii.ob_base, - &_Py_ID(bytes), - & const_str_MutableSequence._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[1282]; - } -_collections_abc_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 1281, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x08\x03\x01\x04\xf7\x3e\x00\x01\x28\xdb\x00\x0a\xe1\x0f\x13\x90\x44\x98\x13\x91\x49\x8b\x7f\x80\x0c\xd9\x0f\x13\x90\x43\x8b\x79\x80\x0c\xda\x00\x0e\xd9\x0f\x13\x90\x42\x8b\x78\x80\x0c\xd8\x04\x06\xf2\x04\x09\x0b\x0d\x80\x07\xf0\x1e\x00\x0c\x1d\x80\x08\xf1\x12\x00\x12\x16\x91\x64\x98\x33\x93\x69\x93\x1f\x80\x0e\xd9\x15\x19\x99\x24\x99\x79\x9b\x7b\xd3\x1a\x2b\xd3\x15\x2c\xd0\x00\x12\xe1\x13\x17\x99\x04\x98\x52\x9f\x57\x99\x57\x9b\x59\x9b\x0f\xd3\x13\x28\xd0\x00\x10\xd9\x15\x19\x99\x24\x98\x72\x9f\x79\x99\x79\x9b\x7b\xd3\x1a\x2b\xd3\x15\x2c\xd0\x00\x12\xd9\x14\x18\x99\x14\x98\x62\x9f\x68\x99\x68\x9b\x6a\xd3\x19\x29\xd3\x14\x2a\xd0\x00\x11\xd9\x10\x14\x91\x54\x98\x22\x93\x58\x93\x0e\x80\x0d\xd9\x17\x1b\x99\x44\xa1\x18\xa8\x22\xa3\x1c\xd3\x1c\x2e\xd3\x17\x2f\xd0\x00\x14\xd9\x11\x15\x91\x64\x99\x35\xa0\x11\x9b\x38\x93\x6e\xd3\x11\x25\x80\x0e\xd9\x15\x19\x99\x24\x99\x75\xa0\x51\xa8\x24\xa1\x59\xd3\x1f\x2f\xd3\x1a\x30\xd3\x15\x31\xd0\x00\x12\xd9\x0f\x13\x91\x44\x99\x13\x9b\x15\x93\x4b\xd3\x0f\x20\x80\x0c\xd9\x0f\x13\x91\x44\x98\x12\x93\x48\x8b\x7e\x80\x0c\xd9\x11\x15\x91\x64\x98\x32\x93\x68\x93\x1e\x80\x0e\xd9\x0f\x13\x91\x44\x99\x13\x9b\x15\x93\x4b\xd3\x0f\x20\x80\x0c\xe1\x0c\x10\x90\x12\x97\x17\x91\x17\x93\x19\x8b\x4f\x80\x09\xd9\x0e\x12\x90\x32\x97\x39\x91\x39\x93\x3b\xd3\x0e\x1f\x80\x0b\xd9\x0d\x11\x90\x22\x97\x28\x91\x28\x93\x2a\xd3\x0d\x1d\x80\x0a\xe1\x0f\x13\x90\x44\x97\x4d\x91\x4d\xd3\x0f\x22\x80\x0c\xd9\x0c\x10\x92\x2f\xd3\x11\x24\xd3\x0c\x25\x80\x09\xe2\x00\x17\xd9\x08\x0d\x8b\x07\x80\x05\xd9\x0c\x10\x90\x15\x8b\x4b\x80\x09\xd8\x00\x05\x87\x0b\x81\x0b\x84\x0d\xd8\x04\x09\xe2\x00\x16\xd9\x06\x09\x83\x65\x80\x03\xd9\x12\x16\x90\x73\x93\x29\x80\x0f\xd8\x04\x07\xf2\x0a\x0a\x01\x10\xf4\x18\x0c\x01\x1e\x98\x17\xf5\x00\x0c\x01\x1e\xf4\x1e\x0e\x01\x32\x98\x27\xf5\x00\x0e\x01\x32\xf4\x22\x26\x01\x1e\x90\x09\xf4\x00\x26\x01\x1e\xf0\x52\x01\x00\x01\x0a\xd7\x00\x12\xd1\x00\x12\x90\x39\xd4\x00\x1d\xf4\x06\x0e\x01\x32\x98\x67\xf5\x00\x0e\x01\x32\xf4\x22\x10\x01\x1e\x90\x4d\xf4\x00\x10\x01\x1e\xf4\x26\x2d\x01\x1e\x90\x5d\xf4\x00\x2d\x01\x1e\xf0\x60\x01\x00\x01\x0f\xd7\x00\x17\xd1\x00\x17\x98\x0f\xd4\x00\x28\xf4\x06\x0f\x01\x32\x98\x17\xf5\x00\x0f\x01\x32\xf4\x24\x10\x01\x1e\x88\x78\xf4\x00\x10\x01\x1e\xf0\x26\x00\x01\x09\xd7\x00\x11\xd1\x00\x11\x90\x2e\xd4\x00\x21\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\xd0\x12\x24\xd4\x00\x25\xe0\x00\x08\xd7\x00\x11\xd1\x00\x11\xd0\x12\x22\xd4\x00\x23\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\xd0\x12\x24\xd4\x00\x25\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\xd0\x12\x23\xd4\x00\x24\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\x90\x2d\xd4\x00\x20\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\xd0\x12\x26\xd4\x00\x27\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\x90\x2e\xd4\x00\x21\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\xd0\x12\x24\xd4\x00\x25\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\x90\x2c\xd4\x00\x1f\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\x90\x2c\xd4\x00\x1f\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\x90\x2e\xd4\x00\x21\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\x90\x2c\xd4\x00\x1f\xf4\x06\x0d\x01\x1e\x90\x18\xf4\x00\x0d\x01\x1e\xf4\x20\x2d\x01\x1e\x90\x08\xf4\x00\x2d\x01\x1e\xf0\x60\x01\x00\x01\x0a\xd7\x00\x12\xd1\x00\x12\x90\x39\xd4\x00\x1d\xf4\x06\x0c\x01\x1e\x90\x67\xf5\x00\x0c\x01\x1e\xf4\x1e\x0e\x01\x32\x98\x27\xf5\x00\x0e\x01\x32\xf4\x22\x08\x01\x1e\x90\x15\x98\x08\xa0\x29\xf4\x00\x08\x01\x1e\xf4\x16\x0c\x01\x1e\x90\x77\xf5\x00\x0c\x01\x1e\xf4\x1e\x34\x01\x40\x01\x98\x4c\xf4\x00\x34\x01\x40\x01\xf2\x6c\x01\x0a\x01\x56\x01\xf2\x18\x0f\x01\x15\xf4\x24\x0e\x01\x3b\x98\x17\xf5\x00\x0e\x01\x3b\xf4\x28\x47\x02\x01\x11\x88\x2a\xf4\x00\x47\x02\x01\x11\xf0\x54\x04\x00\x01\x04\x87\x0c\x81\x0c\x88\x59\xd4\x00\x17\xf4\x06\x4d\x01\x01\x14\x90\x13\xf4\x00\x4d\x01\x01\x14\xf0\x60\x02\x00\x01\x0b\xd7\x00\x13\xd1\x00\x13\x90\x43\xd4\x00\x18\xf4\x0a\x31\x01\x18\x88\x6a\xf4\x00\x31\x01\x18\xf0\x66\x01\x00\x01\x08\xd7\x00\x10\xd1\x00\x10\x90\x1c\xd4\x00\x1e\xf4\x06\x0d\x01\x32\x90\x25\xf4\x00\x0d\x01\x32\xf4\x20\x0c\x01\x21\x88\x7b\x98\x43\xf4\x00\x0c\x01\x21\xf0\x1e\x00\x01\x09\xd7\x00\x11\xd1\x00\x11\x90\x29\xd4\x00\x1c\xf4\x06\x13\x01\x2c\x90\x0b\x98\x53\xf4\x00\x13\x01\x2c\xf0\x2c\x00\x01\x0a\xd7\x00\x12\xd1\x00\x12\x90\x3a\xd4\x00\x1e\xf4\x06\x0d\x01\x25\x90\x1b\x98\x6a\xf4\x00\x0d\x01\x25\xf0\x20\x00\x01\x0b\xd7\x00\x13\xd1\x00\x13\x90\x4b\xd4\x00\x20\xf4\x06\x4f\x01\x01\x17\x90\x57\xf4\x00\x4f\x01\x01\x17\xf0\x64\x02\x00\x01\x0f\xd7\x00\x17\xd1\x00\x17\x98\x04\xd4\x00\x1d\xf4\x0a\x3d\x01\x40\x01\x88\x7a\x98\x3a\xf4\x00\x3d\x01\x40\x01\xf0\x7e\x01\x00\x01\x09\xd7\x00\x11\xd1\x00\x11\x90\x25\xd4\x00\x18\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\x90\x23\xd4\x00\x16\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\x90\x25\xd4\x00\x18\xd8\x00\x08\xd7\x00\x11\xd1\x00\x11\x90\x2a\xd4\x00\x1d\xf4\x04\x12\x01\x33\x98\x77\xf4\x00\x12\x01\x33\xf4\x28\x06\x01\x13\x90\x18\xd0\x25\x3d\xf5\x00\x06\x01\x13\xf0\x10\x00\x01\x0b\xd7\x00\x13\xd1\x00\x13\x90\x45\xd4\x00\x1a\xd8\x00\x0a\xd7\x00\x13\xd1\x00\x13\x90\x49\xd4\x00\x1e\xf4\x06\x3f\x01\x14\x90\x68\xf4\x00\x3f\x01\x14\xf0\x44\x02\x00\x01\x10\xd7\x00\x18\xd1\x00\x18\x98\x14\xd4\x00\x1e\xd8\x00\x0f\xd7\x00\x18\xd1\x00\x18\x98\x19\xd5\x00\x23", -}; -static - struct _PyCode_DEF(2650) -_collections_abc_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 1325, - }, - .co_consts = & _collections_abc_toplevel_consts._object.ob_base.ob_base, - .co_names = & _collections_abc_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 519, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _collections_abc_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & _collections_abc_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x64\x02\x6c\x01\x6d\x02\x5a\x02\x6d\x03\x5a\x03\x01\x00\x64\x01\x64\x03\x6c\x04\x5a\x04\x02\x00\x65\x05\x65\x06\x65\x07\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x08\x02\x00\x65\x05\x64\x04\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x09\x64\x05\x84\x00\x5a\x0a\x02\x00\x65\x05\x65\x0a\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x0b\x5b\x0a\x67\x00\x64\x06\xa2\x01\x5a\x0c\x64\x07\x5a\x0d\x02\x00\x65\x05\x02\x00\x65\x0e\x64\x08\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x0f\x02\x00\x65\x05\x02\x00\x65\x0e\x02\x00\x65\x10\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x11\x02\x00\x65\x05\x02\x00\x65\x0e\x69\x00\x6a\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x13\x02\x00\x65\x05\x02\x00\x65\x0e\x69\x00\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x15\x02\x00\x65\x05\x02\x00\x65\x0e\x69\x00\x6a\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x17\x02\x00\x65\x05\x02\x00\x65\x0e\x67\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x18\x02\x00\x65\x05\x02\x00\x65\x0e\x02\x00\x65\x19\x67\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x1a\x02\x00\x65\x05\x02\x00\x65\x0e\x02\x00\x65\x1b\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x1c\x02\x00\x65\x05\x02\x00\x65\x0e\x02\x00\x65\x1b\x64\x09\x64\x0a\x7a\x03\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x1d\x02\x00\x65\x05\x02\x00\x65\x0e\x02\x00\x65\x1e\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x1f\x02\x00\x65\x05\x02\x00\x65\x0e\x64\x0b\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x20\x02\x00\x65\x05\x02\x00\x65\x0e\x64\x0c\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x21\x02\x00\x65\x05\x02\x00\x65\x0e\x02\x00\x65\x22\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x23\x02\x00\x65\x05\x69\x00\x6a\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x24\x02\x00\x65\x05\x69\x00\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x25\x02\x00\x65\x05\x69\x00\x6a\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x26\x02\x00\x65\x05\x65\x05\x6a\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x28\x02\x00\x65\x05\x02\x00\x64\x0d\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x29\x64\x0e\x84\x00\x5a\x2a\x02\x00\x65\x2a\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x2a\x02\x00\x65\x05\x65\x2a\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x2b\x65\x2a\x6a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x5b\x2a\x64\x0f\x84\x00\x5a\x2d\x02\x00\x65\x2d\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x2d\x02\x00\x65\x05\x65\x2d\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x2e\x5b\x2d\x64\x10\x84\x00\x5a\x2f\x02\x00\x47\x00\x64\x11\x84\x00\x64\x12\x65\x02\xac\x13\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x30\x02\x00\x47\x00\x64\x14\x84\x00\x64\x15\x65\x02\xac\x13\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x31\x02\x00\x47\x00\x64\x16\x84\x00\x64\x17\x65\x31\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x32\x65\x32\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x2b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x18\x84\x00\x64\x19\x65\x02\xac\x13\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x34\x02\x00\x47\x00\x64\x1a\x84\x00\x64\x1b\x65\x34\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x35\x02\x00\x47\x00\x64\x1c\x84\x00\x64\x1d\x65\x35\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x36\x65\x36\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x2e\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x1e\x84\x00\x64\x1f\x65\x02\xac\x13\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x37\x02\x00\x47\x00\x64\x20\x84\x00\x64\x21\x65\x37\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x38\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x0f\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x11\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x13\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x15\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x17\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x18\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x1a\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x1c\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x1d\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x1f\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x20\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x21\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x38\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x23\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x22\x84\x00\x64\x23\x65\x37\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x39\x02\x00\x47\x00\x64\x24\x84\x00\x64\x25\x65\x38\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x3a\x65\x3a\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x29\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x26\x84\x00\x64\x27\x65\x02\xac\x13\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x3b\x02\x00\x47\x00\x64\x28\x84\x00\x64\x29\x65\x02\xac\x13\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x3c\x02\x00\x47\x00\x64\x2a\x84\x00\x64\x2b\x65\x3b\x65\x37\x65\x3c\xab\x05\x00\x00\x00\x00\x00\x00\x5a\x3d\x02\x00\x47\x00\x64\x2c\x84\x00\x64\x2d\x65\x02\xac\x13\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x3e\x02\x00\x47\x00\x64\x2e\x84\x00\x64\x2f\x65\x08\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x3f\x64\x30\x84\x00\x5a\x40\x64\x31\x84\x00\x5a\x41\x02\x00\x47\x00\x64\x32\x84\x00\x64\x33\x65\x02\xac\x13\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x42\x02\x00\x47\x00\x64\x34\x84\x00\x64\x35\x65\x3d\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x43\x65\x43\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x44\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x36\x84\x00\x64\x37\x65\x43\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x45\x65\x45\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x1e\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x38\x84\x00\x64\x39\x65\x3d\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x46\x65\x46\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x28\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x3a\x84\x00\x64\x3b\x65\x3b\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x47\x02\x00\x47\x00\x64\x3c\x84\x00\x64\x3d\x65\x47\x65\x43\xab\x04\x00\x00\x00\x00\x00\x00\x5a\x48\x65\x48\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x24\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x3e\x84\x00\x64\x3f\x65\x47\x65\x43\xab\x04\x00\x00\x00\x00\x00\x00\x5a\x49\x65\x49\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x26\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x40\x84\x00\x64\x41\x65\x47\x65\x3d\xab\x04\x00\x00\x00\x00\x00\x00\x5a\x4a\x65\x4a\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x25\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x42\x84\x00\x64\x43\x65\x46\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x4b\x65\x4b\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x4c\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x44\x84\x00\x64\x45\x65\x39\x65\x3d\xab\x04\x00\x00\x00\x00\x00\x00\x5a\x4d\x65\x4d\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x4e\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x4d\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x4f\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x4d\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x1b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x4d\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x50\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x46\x84\x00\x64\x47\x65\x02\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x51\x02\x00\x47\x00\x64\x48\x84\x00\x64\x49\x65\x4d\x65\x51\xac\x13\xab\x04\x00\x00\x00\x00\x00\x00\x5a\x52\x65\x52\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x53\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x52\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x10\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x47\x00\x64\x4a\x84\x00\x64\x4b\x65\x4d\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x54\x65\x54\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x06\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x54\x6a\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x10\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x03", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get__collections_abc_toplevel(void) -{ - return Py_NewRef((PyObject *) &_collections_abc_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[62]; - } -_sitebuiltins_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 61, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x54\x68\x65\x20\x6f\x62\x6a\x65\x63\x74\x73\x20\x75\x73\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x73\x69\x74\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x74\x6f\x20\x61\x64\x64\x20\x63\x75\x73\x74\x6f\x6d\x20\x62\x75\x69\x6c\x74\x69\x6e\x73\x2e\x0a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_Quitter = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Quitter", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_eof = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "eof", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_sitebuiltins_toplevel_consts_3_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(name), - & const_str_eof._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -_sitebuiltins_toplevel_consts_3_consts_1_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -_sitebuiltins_toplevel_consts_3_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Quitter.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[17]; - } -_sitebuiltins_toplevel_consts_3_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 16, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x14\x18\x88\x04\x8c\x09\xd8\x13\x16\x88\x04\x8d\x08", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -_sitebuiltins_toplevel_consts_3_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(name), - & const_str_eof._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(32) -_sitebuiltins_toplevel_consts_3_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 16, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _sitebuiltins_toplevel_consts_3_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 14, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 520, - .co_localsplusnames = & _sitebuiltins_toplevel_consts_3_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & _sitebuiltins_toplevel_consts_3_consts_1_qualname._ascii.ob_base, - .co_linetable = & _sitebuiltins_toplevel_consts_3_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -_sitebuiltins_toplevel_consts_3_consts_2_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Use ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -_sitebuiltins_toplevel_consts_3_consts_2_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "() or ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -_sitebuiltins_toplevel_consts_3_consts_2_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " to exit", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_sitebuiltins_toplevel_consts_3_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - & _sitebuiltins_toplevel_consts_3_consts_2_consts_1._ascii.ob_base, - & _sitebuiltins_toplevel_consts_3_consts_2_consts_2._ascii.ob_base, - & _sitebuiltins_toplevel_consts_3_consts_2_consts_3._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -_sitebuiltins_toplevel_consts_3_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Quitter.__repr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[22]; - } -_sitebuiltins_toplevel_consts_3_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 21, - }, - .ob_shash = -1, - .ob_sval = "\x81\x00\xd8\x2b\x2f\xaf\x39\xab\x39\xb0\x64\xb7\x68\xb3\x68\xd0\x0f\x3f\xd0\x08\x3f", -}; -static - struct _PyCode_DEF(60) -_sitebuiltins_toplevel_consts_3_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 30, - }, - .co_consts = & _sitebuiltins_toplevel_consts_3_consts_2_consts._object.ob_base.ob_base, - .co_names = & _sitebuiltins_toplevel_consts_3_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 17, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 521, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__repr__), - .co_qualname = & _sitebuiltins_toplevel_consts_3_consts_2_qualname._ascii.ob_base, - .co_linetable = & _sitebuiltins_toplevel_consts_3_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x01\x64\x02\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x01\x64\x03\x9d\x05\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_SystemExit = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "SystemExit", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_sitebuiltins_toplevel_consts_3_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - &_Py_ID(stdin), - &_Py_ID(close), - & const_str_SystemExit._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -_sitebuiltins_toplevel_consts_3_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Quitter.__call__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[56]; - } -_sitebuiltins_toplevel_consts_3_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 55, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x06\x03\x09\x11\xdc\x0c\x0f\x8f\x49\x89\x49\x8f\x4f\x89\x4f\xd4\x0c\x1d\xf4\x06\x00\x0f\x19\x98\x14\xd3\x0e\x1e\xd0\x08\x1e\xf8\xf0\x05\x01\x09\x11\xd8\x0c\x10\xdc\x0e\x18\x98\x14\xd3\x0e\x1e\xd0\x08\x1e\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -_sitebuiltins_toplevel_consts_3_consts_4_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = "\x82\x1e\x2b\x00\xab\x02\x39\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_sitebuiltins_toplevel_consts_3_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(code), - }, - }, -}; -static - struct _PyCode_DEF(120) -_sitebuiltins_toplevel_consts_3_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 60, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & _sitebuiltins_toplevel_consts_3_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & _sitebuiltins_toplevel_consts_3_consts_4_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 19, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 522, - .co_localsplusnames = & _sitebuiltins_toplevel_consts_3_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__call__), - .co_qualname = & _sitebuiltins_toplevel_consts_3_consts_4_qualname._ascii.ob_base, - .co_linetable = & _sitebuiltins_toplevel_consts_3_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x23\x00\x01\x00\x59\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_sitebuiltins_toplevel_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_Quitter._ascii.ob_base, - & _sitebuiltins_toplevel_consts_3_consts_1.ob_base.ob_base, - & _sitebuiltins_toplevel_consts_3_consts_2.ob_base.ob_base, - Py_None, - & _sitebuiltins_toplevel_consts_3_consts_4.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_sitebuiltins_toplevel_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__init__), - &_Py_ID(__repr__), - &_Py_ID(__call__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -_sitebuiltins_toplevel_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf2\x02\x02\x05\x17\xf2\x06\x01\x05\x40\x01\xf4\x04\x07\x05\x1f", -}; -static - struct _PyCode_DEF(32) -_sitebuiltins_toplevel_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 16, - }, - .co_consts = & _sitebuiltins_toplevel_consts_3_consts._object.ob_base.ob_base, - .co_names = & _sitebuiltins_toplevel_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 13, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 523, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = & const_str_Quitter._ascii.ob_base, - .co_qualname = & const_str_Quitter._ascii.ob_base, - .co_linetable = & _sitebuiltins_toplevel_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x84\x00\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x05\x64\x04\x84\x01\x5a\x05\x79\x03", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str__Printer = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Printer", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[111]; - } -_sitebuiltins_toplevel_consts_5_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 110, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x69\x6e\x74\x65\x72\x61\x63\x74\x69\x76\x65\x20\x70\x72\x6f\x6d\x70\x74\x20\x6f\x62\x6a\x65\x63\x74\x73\x20\x66\x6f\x72\x20\x70\x72\x69\x6e\x74\x69\x6e\x67\x20\x74\x68\x65\x20\x6c\x69\x63\x65\x6e\x73\x65\x20\x74\x65\x78\x74\x2c\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x66\x0a\x20\x20\x20\x20\x63\x6f\x6e\x74\x72\x69\x62\x75\x74\x6f\x72\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x6e\x6f\x74\x69\x63\x65\x2e", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_os = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "os", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__Printer__name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Printer__name", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__Printer__data = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Printer__data", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str__Printer__lines = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Printer__lines", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -const_str__Printer__filenames = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Printer__filenames", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str__Printer__name._ascii.ob_base, - & const_str__Printer__data._ascii.ob_base, - & const_str__Printer__lines._ascii.ob_base, - &_Py_ID(path), - &_Py_ID(join), - & const_str__Printer__filenames._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -_sitebuiltins_toplevel_consts_5_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Printer.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[92]; - } -_sitebuiltins_toplevel_consts_5_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 91, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdb\x08\x11\xd8\x16\x1a\x88\x04\x8c\x0b\xd8\x16\x1a\x88\x04\x8c\x0b\xd8\x17\x1b\x88\x04\x8c\x0c\xe1\x27\x2b\xf4\x03\x02\x1c\x33\xd9\x27\x2b\xa0\x03\xdb\x2c\x31\xa0\x08\xf0\x05\x00\x1d\x1f\x9f\x47\x99\x47\x9f\x4c\x99\x4c\xa8\x13\xa8\x68\xd5\x1c\x37\xe0\x2c\x31\xf0\x05\x00\x1d\x38\xd8\x27\x2b\xf2\x03\x02\x1c\x33\x88\x04\xd5\x08\x18\xf9\xf3\x00\x02\x1c\x33", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -_sitebuiltins_toplevel_consts_5_consts_3_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\x9f\x2a\x41\x13\x06", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_dirs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dirs", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_dir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dir", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(name), - &_Py_ID(data), - & const_str_files._ascii.ob_base, - & const_str_dirs._ascii.ob_base, - & const_str_os._ascii.ob_base, - & const_str_dir._ascii.ob_base, - &_Py_ID(filename), - }, - }, -}; -static - struct _PyCode_DEF(178) -_sitebuiltins_toplevel_consts_5_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 89, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = & _sitebuiltins_toplevel_consts_5_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = & _sitebuiltins_toplevel_consts_5_consts_3_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 5, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 17 + FRAME_SPECIALS_SIZE, - .co_stacksize = 9, - .co_firstlineno = 35, - .co_nlocalsplus = 8, - .co_nlocals = 8, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 524, - .co_localsplusnames = & _sitebuiltins_toplevel_consts_5_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_13_localspluskinds.ob_base.ob_base, - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & _sitebuiltins_toplevel_consts_5_consts_3_qualname._ascii.ob_base, - .co_linetable = & _sitebuiltins_toplevel_consts_5_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x64\x00\x6c\x00\x7d\x05\x7c\x01\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x44\x00\x8f\x06\x8f\x07\x63\x03\x67\x00\x63\x02\x5d\x25\x00\x00\x7d\x06\x7c\x03\x44\x00\x5d\x1e\x00\x00\x7d\x07\x7c\x05\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x7c\x07\xab\x02\x00\x00\x00\x00\x00\x00\x91\x03\x8c\x20\x04\x00\x8c\x27\x04\x00\x63\x03\x7d\x07\x7d\x06\x7c\x00\x5f\x06\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x63\x02\x01\x00\x63\x03\x7d\x07\x7d\x06\x77\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - &_Py_STR(utf_8), - & codecs_toplevel_consts_35_localsplusnames._object.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[10], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_split = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "split", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str__Printer__linecnt = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Printer__linecnt", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & const_str__Printer__lines._ascii.ob_base, - & const_str__Printer__filenames._ascii.ob_base, - &_Py_ID(open), - &_Py_ID(read), - & const_str_OSError._ascii.ob_base, - & const_str__Printer__data._ascii.ob_base, - & const_str_split._ascii.ob_base, - &_Py_ID(len), - & const_str__Printer__linecnt._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str___setup = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "__setup", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -_sitebuiltins_toplevel_consts_5_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Printer.__setup", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[144]; - } -_sitebuiltins_toplevel_consts_5_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 143, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0b\x0f\x8f\x3c\x8a\x3c\xd8\x0c\x12\xd8\x0f\x13\x88\x04\xd8\x18\x1c\xd7\x18\x28\xd4\x18\x28\x88\x48\xf0\x02\x05\x0d\x15\xdc\x15\x19\x98\x28\xa8\x57\xd5\x15\x35\xb8\x12\xd8\x1b\x1d\x9f\x37\x99\x37\x9b\x39\x90\x44\xf7\x03\x00\x16\x36\xe1\x10\x15\xf0\x09\x00\x19\x29\xf1\x0e\x00\x10\x14\xd8\x13\x17\x97\x3b\x91\x3b\x88\x44\xd8\x17\x1b\x97\x7a\x91\x7a\xa0\x24\xd3\x17\x27\x88\x04\x8c\x0c\xdc\x19\x1c\x98\x54\x9f\x5c\x99\x5c\xd3\x19\x2a\x88\x04\x8d\x0e\xf7\x11\x00\x16\x36\xd0\x15\x35\xfb\xf4\x06\x00\x14\x1b\xf2\x00\x01\x0d\x15\xd9\x10\x14\xf0\x03\x01\x0d\x15\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[40]; - } -_sitebuiltins_toplevel_consts_5_consts_4_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 39, - }, - .ob_shash = -1, - .ob_sval = "\xa0\x0d\x42\x14\x02\xad\x11\x42\x08\x05\xbe\x08\x42\x14\x02\xc2\x08\x05\x42\x11\x09\xc2\x0d\x07\x42\x14\x02\xc2\x14\x09\x42\x20\x05\xc2\x1f\x01\x42\x20\x05", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(data), - &_Py_ID(filename), - & const_str_fp._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(326) -_sitebuiltins_toplevel_consts_5_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 163, - }, - .co_consts = & _sitebuiltins_toplevel_consts_5_consts_4_consts._object.ob_base.ob_base, - .co_names = & _sitebuiltins_toplevel_consts_5_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & _sitebuiltins_toplevel_consts_5_consts_4_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 44, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 525, - .co_localsplusnames = & _sitebuiltins_toplevel_consts_5_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = & const_str___setup._ascii.ob_base, - .co_qualname = & _sitebuiltins_toplevel_consts_5_consts_4_qualname._ascii.ob_base, - .co_linetable = & _sitebuiltins_toplevel_consts_5_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x01\x79\x00\x64\x00\x7d\x01\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x2a\x00\x00\x7d\x02\x09\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x64\x01\xac\x02\xab\x02\x00\x00\x00\x00\x00\x00\x35\x00\x7d\x03\x7c\x03\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x64\x00\x64\x00\x64\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x6e\x01\x04\x00\x7c\x01\x73\x0c\x7c\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x08\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x8c\x4b\x78\x03\x59\x00\x77\x01\x23\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x8c\x83\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[34]; - } -_sitebuiltins_toplevel_consts_5_consts_5_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 33, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Type %s() to see the full %s text", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - (PyObject *)&_Py_SINGLETON(strings).ascii[10], - & _sitebuiltins_toplevel_consts_5_consts_5_consts_2._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str__Printer__setup = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Printer__setup", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_MAXLINES = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MAXLINES", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str__Printer__setup._ascii.ob_base, - &_Py_ID(len), - & const_str__Printer__lines._ascii.ob_base, - & const_str_MAXLINES._ascii.ob_base, - &_Py_ID(join), - & const_str__Printer__name._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -_sitebuiltins_toplevel_consts_5_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Printer.__repr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[74]; - } -_sitebuiltins_toplevel_consts_5_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 73, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x08\x0c\x8f\x0c\x89\x0c\x8c\x0e\xdc\x0b\x0e\x88\x74\x8f\x7c\x89\x7c\xd3\x0b\x1c\xa0\x04\xa7\x0d\xa1\x0d\xd2\x0b\x2d\xd8\x13\x17\x97\x39\x91\x39\x98\x54\x9f\x5c\x99\x5c\xd3\x13\x2a\xd0\x0c\x2a\xe0\x13\x36\xb8\x34\xbf\x3b\xb9\x3b\xb8\x2e\xc8\x11\xd1\x3a\x4a\xd1\x13\x4b\xd0\x0c\x4b", -}; -static - struct _PyCode_DEF(194) -_sitebuiltins_toplevel_consts_5_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 97, - }, - .co_consts = & _sitebuiltins_toplevel_consts_5_consts_5_consts._object.ob_base.ob_base, - .co_names = & _sitebuiltins_toplevel_consts_5_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 60, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 526, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__repr__), - .co_qualname = & _sitebuiltins_toplevel_consts_5_consts_5_qualname._ascii.ob_base, - .co_linetable = & _sitebuiltins_toplevel_consts_5_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x1a\x00\x00\x72\x1b\x64\x01\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x64\x02\x7c\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x01\x64\x03\x7a\x05\x00\x00\x7a\x06\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[49]; - } -_sitebuiltins_toplevel_consts_5_consts_6_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 48, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Hit Return for more, or q (and Return) to quit: ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts_6_consts_3 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_STR(empty), - (PyObject *)&_Py_SINGLETON(strings).ascii[113], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - Py_None, - & _sitebuiltins_toplevel_consts_5_consts_6_consts_1._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & _sitebuiltins_toplevel_consts_5_consts_6_consts_3._object.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[113], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str__Printer__setup._ascii.ob_base, - & const_str_range._ascii.ob_base, - & const_str_MAXLINES._ascii.ob_base, - & const_str_print._ascii.ob_base, - & const_str__Printer__lines._ascii.ob_base, - &_Py_ID(input), - & const_str_IndexError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -_sitebuiltins_toplevel_consts_5_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Printer.__call__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[164]; - } -_sitebuiltins_toplevel_consts_5_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 163, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x08\x0c\x8f\x0c\x89\x0c\x8c\x0e\xd8\x11\x43\x88\x06\xd8\x11\x12\x88\x06\xd8\x0e\x0f\xf0\x02\x0d\x0d\x1a\xdc\x19\x1e\x98\x76\xa0\x76\xb0\x04\xb7\x0d\xb1\x0d\xd1\x27\x3d\xd6\x19\x3e\x90\x41\xdc\x14\x19\x98\x24\x9f\x2c\x99\x2c\xa0\x71\x99\x2f\xd5\x14\x2a\xf1\x03\x00\x1a\x3f\xf0\x0a\x00\x11\x17\x98\x24\x9f\x2d\x99\x2d\xd1\x10\x27\x90\x06\xd8\x16\x1a\x90\x03\xd8\x16\x19\x90\x6b\xdc\x1a\x1f\xa0\x06\x9b\x2d\x90\x43\xd8\x17\x1a\xa0\x29\xd1\x17\x2b\xd8\x1e\x22\x98\x03\xf0\x07\x00\x17\x1a\x91\x6b\xf0\x08\x00\x14\x17\x98\x23\x92\x3a\xd8\x14\x19\xf0\x1d\x00\x0f\x10\xf8\xf4\x08\x00\x14\x1e\xf2\x00\x01\x0d\x16\xd9\x10\x15\xf0\x03\x01\x0d\x16\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -_sitebuiltins_toplevel_consts_5_consts_6_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x97\x36\x41\x3c\x00\xc1\x3c\x09\x42\x08\x03\xc2\x07\x01\x42\x08\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_prompt = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "prompt", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(self), - & const_str_prompt._ascii.ob_base, - &_Py_ID(lineno), - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - &_Py_ID(key), - }, - }, -}; -static - struct _PyCode_DEF(278) -_sitebuiltins_toplevel_consts_5_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 139, - }, - .co_consts = & _sitebuiltins_toplevel_consts_5_consts_6_consts._object.ob_base.ob_base, - .co_names = & _sitebuiltins_toplevel_consts_5_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = & _sitebuiltins_toplevel_consts_5_consts_6_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 67, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 527, - .co_localsplusnames = & _sitebuiltins_toplevel_consts_5_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__call__), - .co_qualname = & _sitebuiltins_toplevel_consts_5_consts_6_qualname._ascii.ob_base, - .co_linetable = & _sitebuiltins_toplevel_consts_5_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x64\x01\x7d\x01\x64\x02\x7d\x02\x09\x00\x09\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x02\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x1a\x00\x00\x7d\x03\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x1c\x04\x00\x09\x00\x7c\x02\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x0d\x00\x00\x7d\x02\x64\x00\x7d\x04\x7c\x04\x80\x14\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x04\x7c\x04\x64\x03\x76\x01\x72\x02\x64\x00\x7d\x04\x7c\x04\x80\x01\x8c\x14\x7c\x04\x64\x04\x6b\x28\x00\x00\x72\x01\x79\x00\x8c\x66\x23\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts_8 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)& _Py_SINGLETON(tuple_empty), - (PyObject *)& _Py_SINGLETON(tuple_empty), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -_sitebuiltins_toplevel_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & const_str__Printer._ascii.ob_base, - & _sitebuiltins_toplevel_consts_5_consts_1._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 23], - & _sitebuiltins_toplevel_consts_5_consts_3.ob_base.ob_base, - & _sitebuiltins_toplevel_consts_5_consts_4.ob_base.ob_base, - & _sitebuiltins_toplevel_consts_5_consts_5.ob_base.ob_base, - & _sitebuiltins_toplevel_consts_5_consts_6.ob_base.ob_base, - Py_None, - & _sitebuiltins_toplevel_consts_5_consts_8._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -_sitebuiltins_toplevel_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - & const_str_MAXLINES._ascii.ob_base, - &_Py_ID(__init__), - & const_str__Printer__setup._ascii.ob_base, - &_Py_ID(__repr__), - &_Py_ID(__call__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[36]; - } -_sitebuiltins_toplevel_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 35, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x01\x05\x2e\xf0\x06\x00\x10\x12\x80\x48\xf3\x04\x07\x05\x33\xf2\x12\x0e\x05\x2b\xf2\x20\x05\x05\x4c\x01\xf3\x0e\x12\x05\x1a", -}; -static - struct _PyCode_DEF(46) -_sitebuiltins_toplevel_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & _sitebuiltins_toplevel_consts_5_consts._object.ob_base.ob_base, - .co_names = & _sitebuiltins_toplevel_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 29, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 528, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = & const_str__Printer._ascii.ob_base, - .co_qualname = & const_str__Printer._ascii.ob_base, - .co_linetable = & _sitebuiltins_toplevel_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x5a\x04\x64\x08\x64\x03\x84\x01\x5a\x05\x64\x04\x84\x00\x5a\x06\x64\x05\x84\x00\x5a\x07\x64\x06\x84\x00\x5a\x08\x79\x07", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str__Helper = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Helper", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[308]; - } -_sitebuiltins_toplevel_consts_7_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 307, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x44\x65\x66\x69\x6e\x65\x20\x74\x68\x65\x20\x62\x75\x69\x6c\x74\x69\x6e\x20\x27\x68\x65\x6c\x70\x27\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x69\x73\x20\x61\x20\x77\x72\x61\x70\x70\x65\x72\x20\x61\x72\x6f\x75\x6e\x64\x20\x70\x79\x64\x6f\x63\x2e\x68\x65\x6c\x70\x20\x74\x68\x61\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x61\x20\x68\x65\x6c\x70\x66\x75\x6c\x20\x6d\x65\x73\x73\x61\x67\x65\x0a\x20\x20\x20\x20\x77\x68\x65\x6e\x20\x27\x68\x65\x6c\x70\x27\x20\x69\x73\x20\x74\x79\x70\x65\x64\x20\x61\x74\x20\x74\x68\x65\x20\x50\x79\x74\x68\x6f\x6e\x20\x69\x6e\x74\x65\x72\x61\x63\x74\x69\x76\x65\x20\x70\x72\x6f\x6d\x70\x74\x2e\x0a\x0a\x20\x20\x20\x20\x43\x61\x6c\x6c\x69\x6e\x67\x20\x68\x65\x6c\x70\x28\x29\x20\x61\x74\x20\x74\x68\x65\x20\x50\x79\x74\x68\x6f\x6e\x20\x70\x72\x6f\x6d\x70\x74\x20\x73\x74\x61\x72\x74\x73\x20\x61\x6e\x20\x69\x6e\x74\x65\x72\x61\x63\x74\x69\x76\x65\x20\x68\x65\x6c\x70\x20\x73\x65\x73\x73\x69\x6f\x6e\x2e\x0a\x20\x20\x20\x20\x43\x61\x6c\x6c\x69\x6e\x67\x20\x68\x65\x6c\x70\x28\x74\x68\x69\x6e\x67\x29\x20\x70\x72\x69\x6e\x74\x73\x20\x68\x65\x6c\x70\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x70\x79\x74\x68\x6f\x6e\x20\x6f\x62\x6a\x65\x63\x74\x20\x27\x74\x68\x69\x6e\x67\x27\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[73]; - } -_sitebuiltins_toplevel_consts_7_consts_2_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 72, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Type help() for interactive help, or help(object) for help about object.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_sitebuiltins_toplevel_consts_7_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & _sitebuiltins_toplevel_consts_7_consts_2_consts_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -_sitebuiltins_toplevel_consts_7_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Helper.__repr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[8]; - } -_sitebuiltins_toplevel_consts_7_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 7, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x02\x01\x10\x38", -}; -static - struct _PyCode_DEF(4) -_sitebuiltins_toplevel_consts_7_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & _sitebuiltins_toplevel_consts_7_consts_2_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 98, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 529, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__repr__), - .co_qualname = & _sitebuiltins_toplevel_consts_7_consts_2_qualname._ascii.ob_base, - .co_linetable = & _sitebuiltins_toplevel_consts_7_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_pydoc = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pydoc", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_help = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "help", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -_sitebuiltins_toplevel_consts_7_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_pydoc._ascii.ob_base, - & const_str_help._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -_sitebuiltins_toplevel_consts_7_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Helper.__call__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[28]; - } -_sitebuiltins_toplevel_consts_7_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 27, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdb\x08\x14\xd8\x0f\x19\x88\x75\x8f\x7a\x89\x7a\x98\x34\xd0\x0f\x28\xa0\x34\xd1\x0f\x28\xd0\x08\x28", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -_sitebuiltins_toplevel_consts_7_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(args), - & const_str_kwds._ascii.ob_base, - & const_str_pydoc._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(46) -_sitebuiltins_toplevel_consts_7_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = & _sitebuiltins_toplevel_consts_7_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 15, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 101, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 530, - .co_localsplusnames = & _sitebuiltins_toplevel_consts_7_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = &_Py_ID(__call__), - .co_qualname = & _sitebuiltins_toplevel_consts_7_consts_3_qualname._ascii.ob_base, - .co_linetable = & _sitebuiltins_toplevel_consts_7_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x64\x00\x6c\x00\x7d\x03\x02\x00\x7c\x03\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x69\x00\x7c\x02\xa4\x01\x8e\x01\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -_sitebuiltins_toplevel_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str__Helper._ascii.ob_base, - & _sitebuiltins_toplevel_consts_7_consts_1._ascii.ob_base, - & _sitebuiltins_toplevel_consts_7_consts_2.ob_base.ob_base, - & _sitebuiltins_toplevel_consts_7_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_sitebuiltins_toplevel_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__repr__), - &_Py_ID(__call__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -_sitebuiltins_toplevel_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x07\x05\x08\xf2\x12\x02\x05\x38\xf3\x06\x02\x05\x29", -}; -static - struct _PyCode_DEF(28) -_sitebuiltins_toplevel_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 14, - }, - .co_consts = & _sitebuiltins_toplevel_consts_7_consts._object.ob_base.ob_base, - .co_names = & _sitebuiltins_toplevel_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 88, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 531, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = & const_str__Helper._ascii.ob_base, - .co_qualname = & const_str__Helper._ascii.ob_base, - .co_linetable = & _sitebuiltins_toplevel_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -_sitebuiltins_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & _sitebuiltins_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & _sitebuiltins_toplevel_consts_3.ob_base.ob_base, - & const_str_Quitter._ascii.ob_base, - & _sitebuiltins_toplevel_consts_5.ob_base.ob_base, - & const_str__Printer._ascii.ob_base, - & _sitebuiltins_toplevel_consts_7.ob_base.ob_base, - & const_str__Helper._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -_sitebuiltins_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str_sys._ascii.ob_base, - &_Py_ID(object), - & const_str_Quitter._ascii.ob_base, - & const_str__Printer._ascii.ob_base, - & const_str__Helper._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[53]; - } -_sitebuiltins_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 52, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x02\x02\x01\x04\xf3\x14\x00\x01\x0b\xf4\x04\x0d\x01\x1f\x88\x66\xf4\x00\x0d\x01\x1f\xf4\x20\x38\x01\x1a\x88\x76\xf4\x00\x38\x01\x1a\xf4\x76\x01\x0f\x01\x29\x88\x66\xf5\x00\x0f\x01\x29", -}; -static - struct _PyCode_DEF(82) -_sitebuiltins_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 41, - }, - .co_consts = & _sitebuiltins_toplevel_consts._object.ob_base.ob_base, - .co_names = & _sitebuiltins_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 532, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & _sitebuiltins_toplevel_consts_3_consts_1_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & _sitebuiltins_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x64\x02\x6c\x01\x5a\x01\x02\x00\x47\x00\x64\x03\x84\x00\x64\x04\x65\x02\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x03\x02\x00\x47\x00\x64\x05\x84\x00\x64\x06\x65\x02\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x04\x02\x00\x47\x00\x64\x07\x84\x00\x64\x08\x65\x02\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x05\x79\x02", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get__sitebuiltins_toplevel(void) -{ - return Py_NewRef((PyObject *) &_sitebuiltins_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[153]; - } -genericpath_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 152, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x50\x61\x74\x68\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x73\x20\x63\x6f\x6d\x6d\x6f\x6e\x20\x74\x6f\x20\x6d\x6f\x72\x65\x20\x74\x68\x61\x6e\x20\x6f\x6e\x65\x20\x4f\x53\x0a\x44\x6f\x20\x6e\x6f\x74\x20\x75\x73\x65\x20\x64\x69\x72\x65\x63\x74\x6c\x79\x2e\x20\x20\x54\x68\x65\x20\x4f\x53\x20\x73\x70\x65\x63\x69\x66\x69\x63\x20\x6d\x6f\x64\x75\x6c\x65\x73\x20\x69\x6d\x70\x6f\x72\x74\x20\x74\x68\x65\x20\x61\x70\x70\x72\x6f\x70\x72\x69\x61\x74\x65\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x69\x73\x20\x6d\x6f\x64\x75\x6c\x65\x20\x74\x68\x65\x6d\x73\x65\x6c\x76\x65\x73\x2e\x0a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_commonprefix = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "commonprefix", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_exists = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "exists", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_getatime = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getatime", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_getctime = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getctime", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_getmtime = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getmtime", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_getsize = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getsize", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_isdir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "isdir", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_isfile = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "isfile", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_islink = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "islink", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_samefile = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "samefile", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_sameopenfile = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "sameopenfile", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_samestat = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "samestat", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_ALLOW_MISSING = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ALLOW_MISSING", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -genericpath_toplevel_consts_3 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str_commonprefix._ascii.ob_base, - & const_str_exists._ascii.ob_base, - & const_str_getatime._ascii.ob_base, - & const_str_getctime._ascii.ob_base, - & const_str_getmtime._ascii.ob_base, - & const_str_getsize._ascii.ob_base, - & const_str_isdir._ascii.ob_base, - & const_str_isfile._ascii.ob_base, - & const_str_islink._ascii.ob_base, - & const_str_samefile._ascii.ob_base, - & const_str_sameopenfile._ascii.ob_base, - & const_str_samestat._ascii.ob_base, - & const_str_ALLOW_MISSING._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[69]; - } -genericpath_toplevel_consts_4_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 68, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Test whether a path exists. Returns False for broken symbolic links", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -genericpath_toplevel_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & genericpath_toplevel_consts_4_consts_0._ascii.ob_base, - Py_False, - Py_True, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -genericpath_toplevel_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -genericpath_toplevel_consts_4_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[49]; - } -genericpath_toplevel_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 48, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x03\x05\x15\xdc\x08\x0a\x8f\x07\x89\x07\x90\x04\x8c\x0d\xf0\x06\x00\x0c\x10\xf8\xf4\x05\x00\x0d\x14\x94\x5a\xd0\x0b\x20\xf2\x00\x01\x05\x15\xd9\x0f\x14\xf0\x03\x01\x05\x15\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -genericpath_toplevel_consts_4_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x82\x15\x18\x00\x98\x0f\x2a\x03\xa9\x01\x2a\x03", -}; -static - struct _PyCode_DEF(90) -genericpath_toplevel_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 45, - }, - .co_consts = & genericpath_toplevel_consts_4_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & genericpath_toplevel_consts_4_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 16, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 533, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_exists._ascii.ob_base, - .co_qualname = & const_str_exists._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x02\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[38]; - } -genericpath_toplevel_consts_5_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 37, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Test whether a path is a regular file", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -genericpath_toplevel_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & genericpath_toplevel_consts_5_consts_0._ascii.ob_base, - Py_False, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_ISREG = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISREG", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -genericpath_toplevel_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - & const_str_S_ISREG._ascii.ob_base, - & const_str_st_mode._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[67]; - } -genericpath_toplevel_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 66, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x03\x05\x15\xdc\x0d\x0f\x8f\x57\x89\x57\x90\x54\x8b\x5d\x88\x02\xf4\x06\x00\x0c\x10\x8f\x3c\x89\x3c\x98\x02\x9f\x0a\x99\x0a\xd3\x0b\x23\xd0\x04\x23\xf8\xf4\x05\x00\x0d\x14\x94\x5a\xd0\x0b\x20\xf2\x00\x01\x05\x15\xd9\x0f\x14\xf0\x03\x01\x05\x15\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[16]; - } -genericpath_toplevel_consts_5_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 15, - }, - .ob_shash = -1, - .ob_sval = "\x82\x15\x36\x00\xb6\x0f\x41\x08\x03\xc1\x07\x01\x41\x08\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -genericpath_toplevel_consts_5_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(path), - & const_str_st._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(150) -genericpath_toplevel_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 75, - }, - .co_consts = & genericpath_toplevel_consts_5_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = & genericpath_toplevel_consts_5_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 27, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 534, - .co_localsplusnames = & genericpath_toplevel_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_isfile._ascii.ob_base, - .co_qualname = & const_str_isfile._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[61]; - } -genericpath_toplevel_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 60, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return true if the pathname refers to an existing directory.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -genericpath_toplevel_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & genericpath_toplevel_consts_6_consts_0._ascii.ob_base, - Py_False, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_ISDIR = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISDIR", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -genericpath_toplevel_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - & const_str_S_ISDIR._ascii.ob_base, - & const_str_st_mode._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[67]; - } -genericpath_toplevel_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 66, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x03\x05\x15\xdc\x0d\x0f\x8f\x57\x89\x57\x90\x51\x8b\x5a\x88\x02\xf4\x06\x00\x0c\x10\x8f\x3c\x89\x3c\x98\x02\x9f\x0a\x99\x0a\xd3\x0b\x23\xd0\x04\x23\xf8\xf4\x05\x00\x0d\x14\x94\x5a\xd0\x0b\x20\xf2\x00\x01\x05\x15\xd9\x0f\x14\xf0\x03\x01\x05\x15\xfa", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -genericpath_toplevel_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[115], - & const_str_st._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(150) -genericpath_toplevel_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 75, - }, - .co_consts = & genericpath_toplevel_consts_6_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = & genericpath_toplevel_consts_5_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 39, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 535, - .co_localsplusnames = & genericpath_toplevel_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_isdir._ascii.ob_base, - .co_qualname = & const_str_isdir._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[39]; - } -genericpath_toplevel_consts_7_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 38, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Test whether a path is a symbolic link", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -genericpath_toplevel_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & genericpath_toplevel_consts_7_consts_0._ascii.ob_base, - Py_False, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_lstat = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "lstat", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_ISLNK = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISLNK", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -genericpath_toplevel_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_lstat._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - & const_str_AttributeError._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_S_ISLNK._ascii.ob_base, - & const_str_st_mode._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[69]; - } -genericpath_toplevel_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 68, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x03\x05\x15\xdc\x0d\x0f\x8f\x58\x89\x58\x90\x64\x8b\x5e\x88\x02\xf4\x06\x00\x0c\x10\x8f\x3c\x89\x3c\x98\x02\x9f\x0a\x99\x0a\xd3\x0b\x23\xd0\x04\x23\xf8\xf4\x05\x00\x0d\x14\x94\x5a\xa4\x1e\xd0\x0b\x30\xf2\x00\x01\x05\x15\xd9\x0f\x14\xf0\x03\x01\x05\x15\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[16]; - } -genericpath_toplevel_consts_7_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 15, - }, - .ob_shash = -1, - .ob_sval = "\x82\x15\x36\x00\xb6\x14\x41\x0d\x03\xc1\x0c\x01\x41\x0d\x03", -}; -static - struct _PyCode_DEF(160) -genericpath_toplevel_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 80, - }, - .co_consts = & genericpath_toplevel_consts_7_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = & genericpath_toplevel_consts_7_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 51, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 536, - .co_localsplusnames = & genericpath_toplevel_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_islink._ascii.ob_base, - .co_qualname = & const_str_islink._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x66\x03\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[50]; - } -genericpath_toplevel_consts_8_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 49, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return the size of a file, reported by os.stat().", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -genericpath_toplevel_consts_8_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & genericpath_toplevel_consts_8_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -genericpath_toplevel_consts_8_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_st_size._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -genericpath_toplevel_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x0d\x8f\x37\x89\x37\x90\x38\xd3\x0b\x1c\xd7\x0b\x24\xd1\x0b\x24\xd0\x04\x24", -}; -static - struct _PyCode_DEF(64) -genericpath_toplevel_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 32, - }, - .co_consts = & genericpath_toplevel_consts_8_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 60, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 537, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_39_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_getsize._ascii.ob_base, - .co_qualname = & const_str_getsize._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[68]; - } -genericpath_toplevel_consts_9_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 67, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return the last modification time of a file, reported by os.stat().", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -genericpath_toplevel_consts_9_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & genericpath_toplevel_consts_9_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -genericpath_toplevel_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_st_mtime._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -genericpath_toplevel_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x0d\x8f\x37\x89\x37\x90\x38\xd3\x0b\x1c\xd7\x0b\x25\xd1\x0b\x25\xd0\x04\x25", -}; -static - struct _PyCode_DEF(64) -genericpath_toplevel_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 32, - }, - .co_consts = & genericpath_toplevel_consts_9_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 65, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 538, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_39_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_getmtime._ascii.ob_base, - .co_qualname = & const_str_getmtime._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[62]; - } -genericpath_toplevel_consts_10_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 61, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return the last access time of a file, reported by os.stat().", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -genericpath_toplevel_consts_10_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & genericpath_toplevel_consts_10_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_st_atime = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "st_atime", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -genericpath_toplevel_consts_10_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_st_atime._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(64) -genericpath_toplevel_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 32, - }, - .co_consts = & genericpath_toplevel_consts_10_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_10_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 70, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 539, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_39_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_getatime._ascii.ob_base, - .co_qualname = & const_str_getatime._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[66]; - } -genericpath_toplevel_consts_11_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 65, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return the metadata change time of a file, reported by os.stat().", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -genericpath_toplevel_consts_11_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & genericpath_toplevel_consts_11_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_st_ctime = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "st_ctime", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -genericpath_toplevel_consts_11_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_st_ctime._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(64) -genericpath_toplevel_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 32, - }, - .co_consts = & genericpath_toplevel_consts_11_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_11_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 75, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 540, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_39_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_getctime._ascii.ob_base, - .co_qualname = & const_str_getctime._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[72]; - } -genericpath_toplevel_consts_12_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 71, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Given a list of pathnames, returns the longest common leading component", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -genericpath_toplevel_consts_12_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & genericpath_toplevel_consts_12_consts_0._ascii.ob_base, - &_Py_STR(empty), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_min = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "min", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_enumerate = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "enumerate", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -genericpath_toplevel_consts_12_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_list._ascii.ob_base, - & const_str_tuple._ascii.ob_base, - & const_str_map._ascii.ob_base, - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - & const_str_min._ascii.ob_base, - & const_str_max._ascii.ob_base, - & const_str_enumerate._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[114]; - } -genericpath_toplevel_consts_12_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 113, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe1\x0b\x0c\x90\x52\xf4\x0a\x00\x0c\x16\x90\x61\x98\x01\x91\x64\x9c\x54\xa4\x35\x98\x4d\xd4\x0b\x2a\xdc\x0c\x11\x94\x23\x94\x62\x97\x69\x91\x69\xa0\x11\xd3\x12\x23\xd3\x0c\x24\x88\x01\xdc\x09\x0c\x88\x51\x8b\x16\x80\x42\xdc\x09\x0c\x88\x51\x8b\x16\x80\x42\xdc\x10\x19\x98\x22\x96\x0d\x89\x04\x88\x01\x88\x31\xd8\x0b\x0c\x90\x02\x90\x31\x91\x05\x8b\x3a\xd8\x13\x15\x90\x62\x90\x71\x90\x36\x8a\x4d\xf0\x05\x00\x11\x1e\xf0\x06\x00\x0c\x0e\x80\x49", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_s1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "s1", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_s2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "s2", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -genericpath_toplevel_consts_12_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[109], - & const_str_s1._ascii.ob_base, - & const_str_s2._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - (PyObject *)&_Py_SINGLETON(strings).ascii[99], - }, - }, -}; -static - struct _PyCode_DEF(244) -genericpath_toplevel_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 122, - }, - .co_consts = & genericpath_toplevel_consts_12_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 81, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 541, - .co_localsplusnames = & genericpath_toplevel_consts_12_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_commonprefix._ascii.ob_base, - .co_qualname = & const_str_commonprefix._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x73\x01\x79\x01\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x02\x19\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\xab\x02\x00\x00\x00\x00\x00\x00\x73\x23\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x14\x00\x00\x5c\x02\x00\x00\x7d\x03\x7d\x04\x7c\x04\x7c\x02\x7c\x03\x19\x00\x00\x00\x6b\x37\x00\x00\x73\x01\x8c\x0f\x7c\x01\x64\x03\x7c\x03\x1a\x00\x63\x02\x01\x00\x53\x00\x04\x00\x7c\x01\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[54]; - } -genericpath_toplevel_consts_13_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 53, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Test whether two stat buffers reference the same file", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -genericpath_toplevel_consts_13_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & genericpath_toplevel_consts_13_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_st_ino = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "st_ino", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_st_dev = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "st_dev", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -genericpath_toplevel_consts_13_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_st_ino._ascii.ob_base, - & const_str_st_dev._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[45]; - } -genericpath_toplevel_consts_13_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 44, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0c\x0e\x8f\x49\x89\x49\x98\x12\x9f\x19\x99\x19\xd1\x0c\x22\xf2\x00\x01\x0d\x23\xd8\x0c\x0e\x8f\x49\x89\x49\x98\x12\x9f\x19\x99\x19\xd1\x0c\x22\xf0\x03\x01\x05\x24", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -genericpath_toplevel_consts_13_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_s1._ascii.ob_base, - & const_str_s2._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(106) -genericpath_toplevel_consts_13 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 53, - }, - .co_consts = & genericpath_toplevel_consts_13_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_13_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 99, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 542, - .co_localsplusnames = & genericpath_toplevel_consts_13_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_samestat._ascii.ob_base, - .co_qualname = & const_str_samestat._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_13_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x78\x01\x72\x19\x01\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[214]; - } -genericpath_toplevel_consts_14_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 213, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x54\x65\x73\x74\x20\x77\x68\x65\x74\x68\x65\x72\x20\x74\x77\x6f\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x73\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x61\x63\x74\x75\x61\x6c\x20\x66\x69\x6c\x65\x20\x6f\x72\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x0a\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x69\x73\x20\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x64\x65\x76\x69\x63\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x61\x6e\x64\x20\x69\x2d\x6e\x6f\x64\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x61\x6e\x64\x0a\x20\x20\x20\x20\x72\x61\x69\x73\x65\x73\x20\x61\x6e\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x20\x69\x66\x20\x61\x6e\x20\x6f\x73\x2e\x73\x74\x61\x74\x28\x29\x20\x63\x61\x6c\x6c\x20\x6f\x6e\x20\x65\x69\x74\x68\x65\x72\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x66\x61\x69\x6c\x73\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -genericpath_toplevel_consts_14_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & genericpath_toplevel_consts_14_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -genericpath_toplevel_consts_14_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_samestat._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[44]; - } -genericpath_toplevel_consts_14_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 43, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0c\x00\x0a\x0c\x8f\x17\x89\x17\x90\x12\x8b\x1b\x80\x42\xdc\x09\x0b\x8f\x17\x89\x17\x90\x12\x8b\x1b\x80\x42\xdc\x0b\x13\x90\x42\x98\x02\xd3\x0b\x1b\xd0\x04\x1b", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_f1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "f1", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_f2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "f2", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -genericpath_toplevel_consts_14_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_f1._ascii.ob_base, - & const_str_f2._ascii.ob_base, - & const_str_s1._ascii.ob_base, - & const_str_s2._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(110) -genericpath_toplevel_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 55, - }, - .co_consts = & genericpath_toplevel_consts_14_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_14_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 106, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 543, - .co_localsplusnames = & genericpath_toplevel_consts_14_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_samefile._ascii.ob_base, - .co_qualname = & const_str_samefile._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_14_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x03\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x03\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[59]; - } -genericpath_toplevel_consts_15_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 58, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Test whether two open file objects reference the same file", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -genericpath_toplevel_consts_15_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & genericpath_toplevel_consts_15_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_fstat = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fstat", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -genericpath_toplevel_consts_15_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fstat._ascii.ob_base, - & const_str_samestat._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[42]; - } -genericpath_toplevel_consts_15_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 41, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x09\x0b\x8f\x18\x89\x18\x90\x23\x8b\x1d\x80\x42\xdc\x09\x0b\x8f\x18\x89\x18\x90\x23\x8b\x1d\x80\x42\xdc\x0b\x13\x90\x42\x98\x02\xd3\x0b\x1b\xd0\x04\x1b", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_fp1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fp1", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_fp2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fp2", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -genericpath_toplevel_consts_15_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_fp1._ascii.ob_base, - & const_str_fp2._ascii.ob_base, - & const_str_s1._ascii.ob_base, - & const_str_s2._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(110) -genericpath_toplevel_consts_15 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 55, - }, - .co_consts = & genericpath_toplevel_consts_15_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_15_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 119, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 544, - .co_localsplusnames = & genericpath_toplevel_consts_15_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_sameopenfile._ascii.ob_base, - .co_qualname = & const_str_sameopenfile._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_15_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x03\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x03\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[165]; - } -genericpath_toplevel_consts_16_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 164, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x70\x6c\x69\x74\x20\x74\x68\x65\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x66\x72\x6f\x6d\x20\x61\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x2e\x0a\x0a\x20\x20\x20\x20\x45\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x69\x73\x20\x65\x76\x65\x72\x79\x74\x68\x69\x6e\x67\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x6c\x61\x73\x74\x20\x64\x6f\x74\x20\x74\x6f\x20\x74\x68\x65\x20\x65\x6e\x64\x2c\x20\x69\x67\x6e\x6f\x72\x69\x6e\x67\x0a\x20\x20\x20\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x64\x6f\x74\x73\x2e\x20\x20\x52\x65\x74\x75\x72\x6e\x73\x20\x22\x28\x72\x6f\x6f\x74\x2c\x20\x65\x78\x74\x29\x22\x3b\x20\x65\x78\x74\x20\x6d\x61\x79\x20\x62\x65\x20\x65\x6d\x70\x74\x79\x2e", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -genericpath_toplevel_consts_16_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & genericpath_toplevel_consts_16_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -genericpath_toplevel_consts_16_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_rfind._ascii.ob_base, - & const_str_max._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str__splitext = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_splitext", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[163]; - } -genericpath_toplevel_consts_16_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 162, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x0e\x00\x10\x11\x8f\x77\x89\x77\x90\x73\x8b\x7c\x80\x48\xd9\x07\x0d\xd8\x16\x17\x97\x67\x91\x67\x98\x66\x93\x6f\x88\x0b\xdc\x13\x16\x90\x78\xa0\x1b\xd3\x13\x2d\x88\x08\xe0\x0f\x10\x8f\x77\x89\x77\x90\x76\x8b\x7f\x80\x48\xd8\x07\x0f\x90\x28\xd2\x07\x1a\xe0\x18\x20\xa0\x31\x99\x0c\x88\x0d\xd8\x0e\x1b\x98\x68\xd2\x0e\x26\xd8\x0f\x10\x90\x1d\x98\x7d\xa8\x51\x99\x7f\xd0\x0f\x2f\xb0\x36\xd2\x0f\x39\xd8\x17\x18\x98\x19\x98\x28\x90\x7c\xa0\x51\xa0\x78\xa0\x79\xa0\x5c\xd0\x17\x31\xd0\x10\x31\xd8\x0c\x19\x98\x51\xd1\x0c\x1e\x88\x4d\xf0\x07\x00\x0f\x1c\x98\x68\xd3\x0e\x26\xf0\x0a\x00\x0c\x0d\x88\x61\x90\x02\x90\x11\x88\x65\x88\x38\x80\x4f", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_altsep = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "altsep", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_extsep = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "extsep", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_sepIndex = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "sepIndex", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_altsepIndex = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "altsepIndex", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_dotIndex = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dotIndex", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_filenameIndex = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "filenameIndex", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -genericpath_toplevel_consts_16_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - &_Py_ID(sep), - & const_str_altsep._ascii.ob_base, - & const_str_extsep._ascii.ob_base, - & const_str_sepIndex._ascii.ob_base, - & const_str_altsepIndex._ascii.ob_base, - & const_str_dotIndex._ascii.ob_base, - & const_str_filenameIndex._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(240) -genericpath_toplevel_consts_16 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 120, - }, - .co_consts = & genericpath_toplevel_consts_16_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_16_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 133, - .co_nlocalsplus = 8, - .co_nlocals = 8, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 545, - .co_localsplusnames = & genericpath_toplevel_consts_16_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_13_localspluskinds.ob_base.ob_base, - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str__splitext._ascii.ob_base, - .co_qualname = & const_str__splitext._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_16_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x04\x7c\x02\x72\x1d\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x7c\x05\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x04\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x06\x7c\x04\x6b\x44\x00\x00\x72\x2a\x7c\x04\x64\x01\x7a\x00\x00\x00\x7d\x07\x7c\x07\x7c\x06\x6b\x02\x00\x00\x72\x20\x7c\x00\x7c\x07\x7c\x07\x64\x01\x7a\x00\x00\x00\x1a\x00\x7c\x03\x6b\x37\x00\x00\x72\x0a\x7c\x00\x64\x02\x7c\x06\x1a\x00\x7c\x00\x7c\x06\x64\x02\x1a\x00\x66\x02\x53\x00\x7c\x07\x64\x01\x7a\x0d\x00\x00\x7d\x07\x7c\x07\x7c\x06\x6b\x02\x00\x00\x72\x01\x8c\x20\x7c\x00\x7c\x00\x64\x02\x64\x03\x1a\x00\x66\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[60]; - } -genericpath_toplevel_consts_17_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 59, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "() argument must be str, bytes, or os.PathLike object, not ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[47]; - } -genericpath_toplevel_consts_17_consts_4 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 46, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Can't mix strings and bytes in path components", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -genericpath_toplevel_consts_17_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - Py_None, - Py_False, - Py_True, - & genericpath_toplevel_consts_17_consts_3._ascii.ob_base, - & genericpath_toplevel_consts_17_consts_4._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -genericpath_toplevel_consts_17_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_str._ascii.ob_base, - &_Py_ID(bytes), - & const_str_TypeError._ascii.ob_base, - &_Py_ID(__class__), - &_Py_ID(__name__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__check_arg_types = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_check_arg_types", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[130]; - } -genericpath_toplevel_consts_17_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 129, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x18\x1d\xd0\x04\x1d\x80\x46\x88\x58\xdb\x0d\x11\x88\x01\xdc\x0b\x15\x90\x61\x9c\x13\xd4\x0b\x1d\xd8\x15\x19\x89\x46\xdc\x0d\x17\x98\x01\x9c\x35\xd4\x0d\x21\xd8\x17\x1b\x89\x48\xe4\x12\x1b\x98\x78\x98\x6a\xf0\x00\x01\x29\x37\xd8\x37\x38\xb7\x7b\xb1\x7b\xd7\x37\x4b\xd1\x37\x4b\xd0\x36\x4e\xf0\x03\x01\x1d\x50\x01\xf3\x00\x01\x13\x51\x01\xd8\x56\x5a\xf0\x03\x01\x0d\x5b\x01\xf0\x0d\x00\x0e\x12\xf1\x10\x00\x08\x0e\x91\x28\xdc\x0e\x17\xd0\x18\x48\xd3\x0e\x49\xc8\x74\xd0\x08\x53\xf0\x03\x00\x13\x1b\x80\x76", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_funcname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "funcname", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_hasstr = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "hasstr", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_hasbytes = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "hasbytes", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -genericpath_toplevel_consts_17_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_funcname._ascii.ob_base, - &_Py_ID(args), - & const_str_hasstr._ascii.ob_base, - & const_str_hasbytes._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[115], - }, - }, -}; -static - struct _PyCode_DEF(208) -genericpath_toplevel_consts_17 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 104, - }, - .co_consts = & genericpath_toplevel_consts_17_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_17_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 156, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 546, - .co_localsplusnames = & genericpath_toplevel_consts_17_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str__check_arg_types._ascii.ob_base, - .co_qualname = & const_str__check_arg_types._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_17_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x78\x01\x7d\x02\x7d\x03\x7c\x01\x44\x00\x5d\x4c\x00\x00\x7d\x04\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x03\x64\x02\x7d\x02\x8c\x16\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x03\x64\x02\x7d\x03\x8c\x29\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x9b\x00\x64\x03\x7c\x04\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x02\x9d\x03\xab\x01\x00\x00\x00\x00\x00\x00\x64\x00\x82\x02\x04\x00\x7c\x02\x72\x0f\x7c\x03\x72\x0c\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\xab\x01\x00\x00\x00\x00\x00\x00\x64\x00\x82\x02\x79\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[37]; - } -genericpath_toplevel_consts_18_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 36, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Special value for use in realpath().", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -genericpath_toplevel_consts_18_consts_2_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "os.path.ALLOW_MISSING", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -genericpath_toplevel_consts_18_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & genericpath_toplevel_consts_18_consts_2_consts_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -genericpath_toplevel_consts_18_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ALLOW_MISSING.__repr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -genericpath_toplevel_consts_18_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0f\x26", -}; -static - struct _PyCode_DEF(4) -genericpath_toplevel_consts_18_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & genericpath_toplevel_consts_18_consts_2_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 173, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 547, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = &_Py_ID(__repr__), - .co_qualname = & genericpath_toplevel_consts_18_consts_2_qualname._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_18_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -genericpath_toplevel_consts_18_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(__class__), - &_Py_ID(__name__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -genericpath_toplevel_consts_18_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ALLOW_MISSING.__reduce__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -genericpath_toplevel_consts_18_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0f\x13\x8f\x7e\x89\x7e\xd7\x0f\x26\xd1\x0f\x26\xd0\x08\x26", -}; -static - struct _PyCode_DEF(46) -genericpath_toplevel_consts_18_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_18_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 175, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 548, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = &_Py_ID(__reduce__), - .co_qualname = & genericpath_toplevel_consts_18_consts_3_qualname._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_18_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -genericpath_toplevel_consts_18_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_ALLOW_MISSING._ascii.ob_base, - & genericpath_toplevel_consts_18_consts_1._ascii.ob_base, - & genericpath_toplevel_consts_18_consts_2.ob_base.ob_base, - & genericpath_toplevel_consts_18_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -genericpath_toplevel_consts_18_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__repr__), - &_Py_ID(__reduce__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[16]; - } -genericpath_toplevel_consts_18_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 15, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe1\x04\x2e\xf2\x02\x01\x05\x27\xf3\x04\x01\x05\x27", -}; -static - struct _PyCode_DEF(28) -genericpath_toplevel_consts_18 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 14, - }, - .co_consts = & genericpath_toplevel_consts_18_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_consts_18_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 170, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 549, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = & const_str_ALLOW_MISSING._ascii.ob_base, - .co_qualname = & const_str_ALLOW_MISSING._ascii.ob_base, - .co_linetable = & genericpath_toplevel_consts_18_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[20]; - }_object; - } -genericpath_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 20, - }, - .ob_item = { - & genericpath_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & genericpath_toplevel_consts_3._object.ob_base.ob_base, - & genericpath_toplevel_consts_4.ob_base.ob_base, - & genericpath_toplevel_consts_5.ob_base.ob_base, - & genericpath_toplevel_consts_6.ob_base.ob_base, - & genericpath_toplevel_consts_7.ob_base.ob_base, - & genericpath_toplevel_consts_8.ob_base.ob_base, - & genericpath_toplevel_consts_9.ob_base.ob_base, - & genericpath_toplevel_consts_10.ob_base.ob_base, - & genericpath_toplevel_consts_11.ob_base.ob_base, - & genericpath_toplevel_consts_12.ob_base.ob_base, - & genericpath_toplevel_consts_13.ob_base.ob_base, - & genericpath_toplevel_consts_14.ob_base.ob_base, - & genericpath_toplevel_consts_15.ob_base.ob_base, - & genericpath_toplevel_consts_16.ob_base.ob_base, - & genericpath_toplevel_consts_17.ob_base.ob_base, - & genericpath_toplevel_consts_18.ob_base.ob_base, - & const_str_ALLOW_MISSING._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[21]; - }_object; - } -genericpath_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 21, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str_os._ascii.ob_base, - & const_str_stat._ascii.ob_base, - &_Py_ID(__all__), - & const_str_exists._ascii.ob_base, - & const_str_isfile._ascii.ob_base, - & const_str_isdir._ascii.ob_base, - & const_str_islink._ascii.ob_base, - & const_str_getsize._ascii.ob_base, - & const_str_getmtime._ascii.ob_base, - & const_str_getatime._ascii.ob_base, - & const_str_getctime._ascii.ob_base, - & const_str_commonprefix._ascii.ob_base, - & const_str_samestat._ascii.ob_base, - & const_str_samefile._ascii.ob_base, - & const_str_sameopenfile._ascii.ob_base, - & const_str__splitext._ascii.ob_base, - & const_str__check_arg_types._ascii.ob_base, - &_Py_ID(object), - &_Py_ID(__new__), - & const_str_ALLOW_MISSING._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[126]; - } -genericpath_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 125, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x02\x04\x01\x04\xf3\x0a\x00\x01\x0a\xdb\x00\x0b\xf2\x04\x02\x0b\x28\x80\x07\xf2\x0e\x06\x01\x10\xf2\x16\x06\x01\x24\xf2\x18\x06\x01\x24\xf2\x18\x06\x01\x24\xf2\x12\x02\x01\x25\xf2\x0a\x02\x01\x26\xf2\x0a\x02\x01\x26\xf2\x0a\x02\x01\x26\xf2\x0c\x0e\x01\x0e\xf2\x24\x03\x01\x24\xf2\x0e\x08\x01\x1c\xf2\x1a\x04\x01\x1c\xf2\x1c\x15\x01\x14\xf2\x2e\x0b\x01\x54\x01\xf0\x1c\x00\x02\x08\x87\x1e\x81\x1e\xf7\x02\x05\x01\x27\xf0\x00\x05\x01\x27\xf3\x03\x00\x02\x10\xf1\x02\x05\x01\x27", -}; -static - struct _PyCode_DEF(166) -genericpath_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 83, - }, - .co_consts = & genericpath_toplevel_consts._object.ob_base.ob_base, - .co_names = & genericpath_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 550, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & genericpath_toplevel_consts_4_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & genericpath_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x64\x02\x6c\x01\x5a\x01\x64\x01\x64\x02\x6c\x02\x5a\x02\x67\x00\x64\x03\xa2\x01\x5a\x03\x64\x04\x84\x00\x5a\x04\x64\x05\x84\x00\x5a\x05\x64\x06\x84\x00\x5a\x06\x64\x07\x84\x00\x5a\x07\x64\x08\x84\x00\x5a\x08\x64\x09\x84\x00\x5a\x09\x64\x0a\x84\x00\x5a\x0a\x64\x0b\x84\x00\x5a\x0b\x64\x0c\x84\x00\x5a\x0c\x64\x0d\x84\x00\x5a\x0d\x64\x0e\x84\x00\x5a\x0e\x64\x0f\x84\x00\x5a\x0f\x64\x10\x84\x00\x5a\x10\x64\x11\x84\x00\x5a\x11\x65\x12\x6a\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x47\x00\x64\x12\x84\x00\x64\x13\xab\x02\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x14\x79\x02", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_genericpath_toplevel(void) -{ - return Py_NewRef((PyObject *) &genericpath_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[145]; - } -ntpath_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 144, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x43\x6f\x6d\x6d\x6f\x6e\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x6d\x61\x6e\x69\x70\x75\x6c\x61\x74\x69\x6f\x6e\x73\x2c\x20\x57\x69\x6e\x64\x6f\x77\x73\x4e\x54\x2f\x39\x35\x20\x76\x65\x72\x73\x69\x6f\x6e\x2e\x0a\x0a\x49\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x69\x6d\x70\x6f\x72\x74\x69\x6e\x67\x20\x74\x68\x69\x73\x20\x6d\x6f\x64\x75\x6c\x65\x20\x64\x69\x72\x65\x63\x74\x6c\x79\x2c\x20\x69\x6d\x70\x6f\x72\x74\x20\x6f\x73\x20\x61\x6e\x64\x20\x72\x65\x66\x65\x72\x20\x74\x6f\x20\x74\x68\x69\x73\x0a\x6d\x6f\x64\x75\x6c\x65\x20\x61\x73\x20\x6f\x73\x2e\x70\x61\x74\x68\x2e\x0a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -ntpath_toplevel_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "..", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -ntpath_toplevel_consts_6 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = ".;C:\\bin", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_nul = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "nul", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_normcase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "normcase", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_isabs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "isabs", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_splitdrive = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "splitdrive", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_splitroot = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "splitroot", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_splitext = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "splitext", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_lexists = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "lexists", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_ismount = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ismount", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_expanduser = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "expanduser", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_expandvars = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "expandvars", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_normpath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "normpath", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_abspath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "abspath", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_curdir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "curdir", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_pardir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pardir", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_pathsep = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pathsep", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_defpath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "defpath", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_devnull = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "devnull", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_realpath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "realpath", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -const_str_supports_unicode_filenames = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "supports_unicode_filenames", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_relpath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "relpath", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_commonpath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "commonpath", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_isjunction = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "isjunction", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[41]; - }_object; - } -ntpath_toplevel_consts_11 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 41, - }, - .ob_item = { - & const_str_normcase._ascii.ob_base, - & const_str_isabs._ascii.ob_base, - &_Py_ID(join), - & const_str_splitdrive._ascii.ob_base, - & const_str_splitroot._ascii.ob_base, - & const_str_split._ascii.ob_base, - & const_str_splitext._ascii.ob_base, - & const_str_basename._ascii.ob_base, - & const_str_dirname._ascii.ob_base, - & const_str_commonprefix._ascii.ob_base, - & const_str_getsize._ascii.ob_base, - & const_str_getmtime._ascii.ob_base, - & const_str_getatime._ascii.ob_base, - & const_str_getctime._ascii.ob_base, - & const_str_islink._ascii.ob_base, - & const_str_exists._ascii.ob_base, - & const_str_lexists._ascii.ob_base, - & const_str_isdir._ascii.ob_base, - & const_str_isfile._ascii.ob_base, - & const_str_ismount._ascii.ob_base, - & const_str_expanduser._ascii.ob_base, - & const_str_expandvars._ascii.ob_base, - & const_str_normpath._ascii.ob_base, - & const_str_abspath._ascii.ob_base, - & const_str_curdir._ascii.ob_base, - & const_str_pardir._ascii.ob_base, - &_Py_ID(sep), - & const_str_pathsep._ascii.ob_base, - & const_str_defpath._ascii.ob_base, - & const_str_altsep._ascii.ob_base, - & const_str_extsep._ascii.ob_base, - & const_str_devnull._ascii.ob_base, - & const_str_realpath._ascii.ob_base, - & const_str_supports_unicode_filenames._ascii.ob_base, - & const_str_relpath._ascii.ob_base, - & const_str_samefile._ascii.ob_base, - & const_str_sameopenfile._ascii.ob_base, - & const_str_samestat._ascii.ob_base, - & const_str_commonpath._ascii.ob_base, - & const_str_isjunction._ascii.ob_base, - & const_str_ALLOW_MISSING._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -ntpath_toplevel_consts_12_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = "\\/", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -ntpath_toplevel_consts_12_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\\/", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -ntpath_toplevel_consts_12_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & ntpath_toplevel_consts_12_consts_1.ob_base.ob_base, - & ntpath_toplevel_consts_12_consts_2._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -ntpath_toplevel_consts_12_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(isinstance), - &_Py_ID(bytes), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -ntpath_toplevel_consts_12_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str__get_bothseps = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_bothseps", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -ntpath_toplevel_consts_12_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xd8\x0f\x15\xe0\x0f\x14", -}; -static - struct _PyCode_DEF(38) -ntpath_toplevel_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 19, - }, - .co_consts = & ntpath_toplevel_consts_12_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 36, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 551, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str__get_bothseps._ascii.ob_base, - .co_qualname = & const_str__get_bothseps._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x01\x79\x01\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_LCMapStringEx = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LCMapStringEx", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -const_str_LOCALE_NAME_INVARIANT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LOCALE_NAME_INVARIANT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_LCMAP_LOWERCASE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LCMAP_LOWERCASE", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -ntpath_toplevel_consts_13 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_LCMapStringEx._ascii.ob_base, - & const_str_LOCALE_NAME_INVARIANT._ascii.ob_base, - & const_str_LCMAP_LOWERCASE._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[111]; - } -ntpath_toplevel_consts_14_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 110, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x4e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x20\x63\x61\x73\x65\x20\x6f\x66\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4d\x61\x6b\x65\x73\x20\x61\x6c\x6c\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x20\x6c\x6f\x77\x65\x72\x63\x61\x73\x65\x20\x61\x6e\x64\x20\x61\x6c\x6c\x20\x73\x6c\x61\x73\x68\x65\x73\x20\x69\x6e\x74\x6f\x20\x62\x61\x63\x6b\x73\x6c\x61\x73\x68\x65\x73\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_surrogateescape = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "surrogateescape", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -ntpath_toplevel_consts_14_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & ntpath_toplevel_consts_14_consts_0._ascii.ob_base, - & const_str_surrogateescape._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - (PyObject *)&_Py_SINGLETON(strings).ascii[92], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -const_str_getfilesystemencoding = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getfilesystemencoding", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__LCMapStringEx = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_LCMapStringEx", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -const_str__LOCALE_NAME_INVARIANT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_LOCALE_NAME_INVARIANT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__LCMAP_LOWERCASE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_LCMAP_LOWERCASE", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[12]; - }_object; - } -ntpath_toplevel_consts_14_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 12, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_sys._ascii.ob_base, - & const_str_getfilesystemencoding._ascii.ob_base, - &_Py_ID(decode), - &_Py_ID(replace), - & const_str__LCMapStringEx._ascii.ob_base, - & const_str__LOCALE_NAME_INVARIANT._ascii.ob_base, - & const_str__LCMAP_LOWERCASE._ascii.ob_base, - &_Py_ID(encode), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[149]; - } -ntpath_toplevel_consts_14_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 148, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0a\x00\x0d\x0f\x8f\x49\x89\x49\x90\x61\x8b\x4c\x88\x01\xd9\x0f\x10\xd8\x13\x14\x88\x48\xdc\x0b\x15\x90\x61\x9c\x15\xd4\x0b\x1f\xdc\x17\x1a\xd7\x17\x30\xd1\x17\x30\xd3\x17\x32\x88\x48\xd8\x10\x11\x97\x08\x91\x08\x98\x18\xd0\x23\x34\xd3\x10\x35\xd7\x10\x3d\xd1\x10\x3d\xb8\x63\xc0\x34\xd3\x10\x48\x88\x41\xdc\x10\x1e\xd4\x1f\x35\xdc\x1f\x2f\xb0\x11\xf3\x03\x01\x11\x34\x88\x41\xe0\x13\x14\x97\x38\x91\x38\x98\x48\xd0\x26\x37\xd3\x13\x38\xd0\x0c\x38\xe4\x13\x21\xd4\x22\x38\xdc\x22\x32\xd8\x22\x23\xa7\x29\xa1\x29\xa8\x43\xb0\x14\xd3\x22\x36\xf3\x05\x02\x14\x38\xf0\x00\x02\x0d\x38", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -ntpath_toplevel_consts_14_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[115], - &_Py_ID(encoding), - }, - }, -}; -static - struct _PyCode_DEF(344) -ntpath_toplevel_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 172, - }, - .co_consts = & ntpath_toplevel_consts_14_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_14_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 52, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 552, - .co_localsplusnames = & ntpath_toplevel_consts_14_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_normcase._ascii.ob_base, - .co_qualname = & const_str_normcase._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_14_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x7c\x00\x73\x02\x7c\x00\x53\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x5d\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x64\x03\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x00\x7c\x00\x6a\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x64\x03\xab\x02\x00\x00\x00\x00\x00\x00\xab\x03\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -ntpath_toplevel_consts_15_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & ntpath_toplevel_consts_14_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - (PyObject *)&_Py_SINGLETON(strings).ascii[92], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_fsencode = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fsencode", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_fsdecode = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fsdecode", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -ntpath_toplevel_consts_15_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_fsencode._ascii.ob_base, - & const_str_fsdecode._ascii.ob_base, - &_Py_ID(replace), - & const_str_lower._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[99]; - } -ntpath_toplevel_consts_15_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 98, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0a\x00\x0d\x0f\x8f\x49\x89\x49\x90\x61\x8b\x4c\x88\x01\xdc\x0b\x15\x90\x61\x9c\x15\xd4\x0b\x1f\xdc\x13\x15\x97\x3b\x91\x3b\x9c\x72\x9f\x7b\x99\x7b\xa8\x31\x9b\x7e\xd7\x1f\x35\xd1\x1f\x35\xb0\x63\xb8\x34\xd3\x1f\x40\xd7\x1f\x46\xd1\x1f\x46\xd3\x1f\x48\xd3\x13\x49\xd0\x0c\x49\xd8\x0f\x10\x8f\x79\x89\x79\x98\x13\x98\x64\xd3\x0f\x23\xd7\x0f\x29\xd1\x0f\x29\xd3\x0f\x2b\xd0\x08\x2b", -}; -static - struct _PyCode_DEF(280) -ntpath_toplevel_consts_15 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 140, - }, - .co_consts = & ntpath_toplevel_consts_15_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_15_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 71, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 553, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_normcase._ascii.ob_base, - .co_qualname = & const_str_normcase._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_15_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x46\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x7c\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -ntpath_toplevel_consts_16_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Test whether a path is absolute", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -ntpath_toplevel_consts_16_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = ":\\", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -ntpath_toplevel_consts_16_consts_6 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = ":\\", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[12]; - }_object; - } -ntpath_toplevel_consts_16_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 12, - }, - .ob_item = { - & ntpath_toplevel_consts_16_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[92]), - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - & ntpath_toplevel_consts_16_consts_3.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[92], - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - & ntpath_toplevel_consts_16_consts_6._ascii.ob_base, - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 3], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - Py_True, - Py_False, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -ntpath_toplevel_consts_16_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - &_Py_ID(replace), - & const_str_startswith._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[111]; - } -ntpath_toplevel_consts_16_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 110, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x08\x0a\x8f\x09\x89\x09\x90\x21\x8b\x0c\x80\x41\xdc\x07\x11\x90\x21\x94\x55\xd4\x07\x1b\xd8\x0e\x13\x88\x03\xd8\x11\x15\x88\x06\xd8\x14\x1a\x89\x09\xe0\x0e\x12\x88\x03\xd8\x11\x14\x88\x06\xd8\x14\x19\x88\x09\xd8\x08\x09\x88\x22\x88\x31\x88\x05\x8f\x0d\x89\x0d\x90\x66\x98\x63\xd3\x08\x22\x80\x41\xf0\x06\x00\x08\x09\x87\x7c\x81\x7c\x90\x43\xd4\x07\x18\x98\x41\x9f\x4c\x99\x4c\xa8\x19\xb0\x41\xd4\x1c\x36\xd8\x0f\x13\xd8\x0b\x10", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_colon_sep = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "colon_sep", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -ntpath_toplevel_consts_16_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[115], - &_Py_ID(sep), - & const_str_altsep._ascii.ob_base, - & const_str_colon_sep._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(218) -ntpath_toplevel_consts_16 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 109, - }, - .co_consts = & ntpath_toplevel_consts_16_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_16_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 88, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 554, - .co_localsplusnames = & ntpath_toplevel_consts_16_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_isabs._ascii.ob_base, - .co_qualname = & const_str_isabs._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_16_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x07\x64\x01\x7d\x01\x64\x02\x7d\x02\x64\x03\x7d\x03\x6e\x06\x64\x04\x7d\x01\x64\x05\x7d\x02\x64\x06\x7d\x03\x7c\x00\x64\x07\x64\x08\x1a\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x00\x7c\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x73\x12\x7c\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x64\x09\xab\x02\x00\x00\x00\x00\x00\x00\x72\x01\x79\x0a\x79\x0b", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -ntpath_toplevel_consts_17_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - Py_None, - (PyObject *)&_Py_SINGLETON(bytes_characters[92]), - & ntpath_toplevel_consts_12_consts_1.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[58]), - (PyObject *)&_Py_SINGLETON(strings).ascii[92], - & ntpath_toplevel_consts_12_consts_2._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[58], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - &_Py_ID(join), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_BytesWarning = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "BytesWarning", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_genericpath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "genericpath", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[12]; - }_object; - } -ntpath_toplevel_consts_17_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 12, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_splitroot._ascii.ob_base, - & const_str_map._ascii.ob_base, - & const_str_lower._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - & const_str_AttributeError._ascii.ob_base, - & const_str_BytesWarning._ascii.ob_base, - & const_str_genericpath._ascii.ob_base, - & const_str__check_arg_types._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[352]; - } -ntpath_toplevel_consts_17_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 351, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0b\x0d\x8f\x39\x89\x39\x90\x54\x8b\x3f\x80\x44\xdc\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xd8\x0e\x13\x88\x03\xd8\x0f\x15\x88\x04\xd8\x10\x14\x89\x05\xe0\x0e\x12\x88\x03\xd8\x0f\x14\x88\x04\xd8\x10\x13\x88\x05\xf0\x02\x21\x05\x0e\xd9\x0f\x14\xd8\x0c\x10\x90\x12\x90\x21\x88\x48\x90\x73\x8a\x4e\xdc\x31\x3a\xb8\x34\xb3\x1f\xd1\x08\x2e\x88\x0c\x90\x6b\xa0\x3b\xdc\x11\x14\x94\x52\x97\x59\x91\x59\xa0\x05\xd6\x11\x26\x88\x41\xdc\x26\x2f\xb0\x01\xa3\x6c\xd1\x0c\x23\x88\x47\x90\x56\x98\x56\xd9\x0f\x15\xe1\x13\x1a\xa1\x2c\xd8\x23\x2a\x90\x4c\xd8\x1e\x24\x90\x0b\xd8\x1e\x24\x90\x0b\xd8\x10\x18\xd9\x11\x18\x98\x57\xa8\x0c\xd2\x1d\x34\xd8\x13\x1a\x97\x3d\x91\x3d\x93\x3f\xa0\x6c\xd7\x26\x38\xd1\x26\x38\xd3\x26\x3a\xd2\x13\x3a\xe0\x23\x2a\x90\x4c\xd8\x22\x28\x90\x4b\xd8\x22\x28\x90\x4b\xd8\x14\x1c\xe0\x1f\x26\x90\x0c\xe1\x0f\x1a\x98\x7b\xa8\x32\x99\x7f\xb0\x64\xd1\x1f\x3a\xd8\x1e\x29\xa8\x43\xd1\x1e\x2f\x90\x0b\xd8\x1a\x25\xa8\x06\xd1\x1a\x2e\x89\x4b\xf0\x2b\x00\x12\x27\xf1\x2e\x00\x0d\x18\xa1\x0b\xd9\x0c\x18\x98\x5c\xa8\x22\xa8\x23\xd0\x1d\x2e\xb0\x65\xb8\x64\xb1\x6c\xd1\x1d\x42\xd8\x13\x1f\xa0\x23\xd1\x13\x25\xa8\x0b\xd1\x13\x33\xd0\x0c\x33\xd8\x0f\x1b\x98\x6b\xd1\x0f\x29\xa8\x4b\xd1\x0f\x37\xd0\x08\x37\xf8\xdc\x0c\x15\x94\x7e\xa4\x7c\xd0\x0b\x34\xf2\x00\x02\x05\x0e\xdc\x08\x13\xd7\x08\x24\xd1\x08\x24\xa0\x56\xa8\x54\xd0\x08\x3a\xb0\x45\xd3\x08\x3a\xd8\x08\x0d\xf0\x05\x02\x05\x0e\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -ntpath_toplevel_consts_17_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\xb4\x42\x2f\x43\x2c\x00\xc3\x24\x07\x43\x2c\x00\xc3\x2c\x2d\x44\x19\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_paths = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "paths", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_seps = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "seps", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_colon = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "colon", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_result_drive = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "result_drive", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_result_root = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "result_root", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_result_path = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "result_path", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_p_drive = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "p_drive", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_p_root = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "p_root", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_p_path = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "p_path", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[12]; - }_object; - } -ntpath_toplevel_consts_17_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 12, - }, - .ob_item = { - &_Py_ID(path), - & const_str_paths._ascii.ob_base, - &_Py_ID(sep), - & const_str_seps._ascii.ob_base, - & const_str_colon._ascii.ob_base, - & const_str_result_drive._ascii.ob_base, - & const_str_result_root._ascii.ob_base, - & const_str_result_path._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - & const_str_p_drive._ascii.ob_base, - & const_str_p_root._ascii.ob_base, - & const_str_p_path._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(568) -ntpath_toplevel_consts_17 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 284, - }, - .co_consts = & ntpath_toplevel_consts_17_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_17_names._object.ob_base.ob_base, - .co_exceptiontable = & ntpath_toplevel_consts_17_exceptiontable.ob_base.ob_base, - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 17 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 108, - .co_nlocalsplus = 12, - .co_nlocals = 12, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 555, - .co_localsplusnames = & ntpath_toplevel_consts_17_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_external_toplevel_consts_36_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = &_Py_ID(join), - .co_qualname = &_Py_ID(join), - .co_linetable = & ntpath_toplevel_consts_17_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x07\x64\x01\x7d\x02\x64\x02\x7d\x03\x64\x03\x7d\x04\x6e\x06\x64\x04\x7d\x02\x64\x05\x7d\x03\x64\x06\x7d\x04\x09\x00\x7c\x01\x73\x08\x7c\x00\x64\x00\x64\x07\x1a\x00\x7c\x02\x7a\x00\x00\x00\x01\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x05\x7d\x06\x7d\x07\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x62\x00\x00\x7d\x08\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x09\x7d\x0a\x7d\x0b\x7c\x0a\x72\x0b\x7c\x09\x73\x02\x7c\x05\x73\x02\x7c\x09\x7d\x05\x7c\x0a\x7d\x06\x7c\x0b\x7d\x07\x8c\x1f\x7c\x09\x72\x2f\x7c\x09\x7c\x05\x6b\x37\x00\x00\x72\x2a\x7c\x09\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\x07\x7c\x09\x7d\x05\x7c\x0a\x7d\x06\x7c\x0b\x7d\x07\x8c\x4e\x7c\x09\x7d\x05\x7c\x07\x72\x0c\x7c\x07\x64\x08\x19\x00\x00\x00\x7c\x03\x76\x01\x72\x05\x7c\x07\x7c\x02\x7a\x00\x00\x00\x7d\x07\x7c\x07\x7c\x0b\x7a\x00\x00\x00\x7d\x07\x8c\x64\x04\x00\x7c\x07\x72\x16\x7c\x06\x73\x14\x7c\x05\x72\x12\x7c\x05\x64\x08\x64\x00\x1a\x00\x7c\x04\x7c\x03\x7a\x00\x00\x00\x76\x01\x72\x08\x7c\x05\x7c\x02\x7a\x00\x00\x00\x7c\x07\x7a\x00\x00\x00\x53\x00\x7c\x05\x7c\x06\x7a\x00\x00\x00\x7c\x07\x7a\x00\x00\x00\x53\x00\x23\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x66\x03\x24\x00\x72\x19\x01\x00\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x7c\x00\x67\x02\x7c\x01\xa2\x01\xad\x06\x8e\x00\x01\x00\x82\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[731]; - } -ntpath_toplevel_consts_18_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 730, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x70\x6c\x69\x74\x20\x61\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x69\x6e\x74\x6f\x20\x64\x72\x69\x76\x65\x2f\x55\x4e\x43\x20\x73\x68\x61\x72\x65\x70\x6f\x69\x6e\x74\x20\x61\x6e\x64\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x20\x70\x61\x74\x68\x20\x73\x70\x65\x63\x69\x66\x69\x65\x72\x73\x2e\x0a\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x73\x20\x61\x20\x32\x2d\x74\x75\x70\x6c\x65\x20\x28\x64\x72\x69\x76\x65\x5f\x6f\x72\x5f\x75\x6e\x63\x2c\x20\x70\x61\x74\x68\x29\x3b\x20\x65\x69\x74\x68\x65\x72\x20\x70\x61\x72\x74\x20\x6d\x61\x79\x20\x62\x65\x20\x65\x6d\x70\x74\x79\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x79\x6f\x75\x20\x61\x73\x73\x69\x67\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x73\x70\x6c\x69\x74\x64\x72\x69\x76\x65\x28\x70\x29\x0a\x20\x20\x20\x20\x49\x74\x20\x69\x73\x20\x61\x6c\x77\x61\x79\x73\x20\x74\x72\x75\x65\x20\x74\x68\x61\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x75\x6c\x74\x5b\x30\x5d\x20\x2b\x20\x72\x65\x73\x75\x6c\x74\x5b\x31\x5d\x20\x3d\x3d\x20\x70\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x74\x68\x65\x20\x70\x61\x74\x68\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x64\x20\x61\x20\x64\x72\x69\x76\x65\x20\x6c\x65\x74\x74\x65\x72\x2c\x20\x64\x72\x69\x76\x65\x5f\x6f\x72\x5f\x75\x6e\x63\x20\x77\x69\x6c\x6c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x20\x65\x76\x65\x72\x79\x74\x68\x69\x6e\x67\x0a\x20\x20\x20\x20\x75\x70\x20\x74\x6f\x20\x61\x6e\x64\x20\x69\x6e\x63\x6c\x75\x64\x69\x6e\x67\x20\x74\x68\x65\x20\x63\x6f\x6c\x6f\x6e\x2e\x20\x20\x65\x2e\x67\x2e\x20\x73\x70\x6c\x69\x74\x64\x72\x69\x76\x65\x28\x22\x63\x3a\x2f\x64\x69\x72\x22\x29\x20\x72\x65\x74\x75\x72\x6e\x73\x20\x28\x22\x63\x3a\x22\x2c\x20\x22\x2f\x64\x69\x72\x22\x29\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x74\x68\x65\x20\x70\x61\x74\x68\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x64\x20\x61\x20\x55\x4e\x43\x20\x70\x61\x74\x68\x2c\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x5f\x6f\x72\x5f\x75\x6e\x63\x20\x77\x69\x6c\x6c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x20\x74\x68\x65\x20\x68\x6f\x73\x74\x20\x6e\x61\x6d\x65\x0a\x20\x20\x20\x20\x61\x6e\x64\x20\x73\x68\x61\x72\x65\x20\x75\x70\x20\x74\x6f\x20\x62\x75\x74\x20\x6e\x6f\x74\x20\x69\x6e\x63\x6c\x75\x64\x69\x6e\x67\x20\x74\x68\x65\x20\x66\x6f\x75\x72\x74\x68\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x2e\x0a\x20\x20\x20\x20\x65\x2e\x67\x2e\x20\x73\x70\x6c\x69\x74\x64\x72\x69\x76\x65\x28\x22\x2f\x2f\x68\x6f\x73\x74\x2f\x63\x6f\x6d\x70\x75\x74\x65\x72\x2f\x64\x69\x72\x22\x29\x20\x72\x65\x74\x75\x72\x6e\x73\x20\x28\x22\x2f\x2f\x68\x6f\x73\x74\x2f\x63\x6f\x6d\x70\x75\x74\x65\x72\x22\x2c\x20\x22\x2f\x64\x69\x72\x22\x29\x0a\x0a\x20\x20\x20\x20\x50\x61\x74\x68\x73\x20\x63\x61\x6e\x6e\x6f\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x20\x62\x6f\x74\x68\x20\x61\x20\x64\x72\x69\x76\x65\x20\x6c\x65\x74\x74\x65\x72\x20\x61\x6e\x64\x20\x61\x20\x55\x4e\x43\x20\x70\x61\x74\x68\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_18_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & ntpath_toplevel_consts_18_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_18_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_splitroot._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[36]; - } -ntpath_toplevel_consts_18_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 35, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x26\x00\x19\x22\xa0\x21\x9b\x0c\xd1\x04\x15\x80\x45\x88\x34\x90\x14\xd8\x0b\x10\x90\x24\x98\x14\x91\x2b\xd0\x0b\x1d\xd0\x04\x1d", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_drive = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "drive", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -ntpath_toplevel_consts_18_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - & const_str_drive._ascii.ob_base, - & const_str_root._ascii.ob_base, - & const_str_tail._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(46) -ntpath_toplevel_consts_18 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & ntpath_toplevel_consts_18_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_18_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 157, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 556, - .co_localsplusnames = & ntpath_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_splitdrive._ascii.ob_base, - .co_qualname = & const_str_splitdrive._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_18_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x01\x7d\x02\x7d\x03\x7c\x01\x7c\x02\x7c\x03\x7a\x00\x00\x00\x66\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[511]; - } -ntpath_toplevel_consts_19_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 510, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x70\x6c\x69\x74\x20\x61\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x69\x6e\x74\x6f\x20\x64\x72\x69\x76\x65\x2c\x20\x72\x6f\x6f\x74\x20\x61\x6e\x64\x20\x74\x61\x69\x6c\x2e\x20\x54\x68\x65\x20\x64\x72\x69\x76\x65\x20\x69\x73\x20\x64\x65\x66\x69\x6e\x65\x64\x0a\x20\x20\x20\x20\x65\x78\x61\x63\x74\x6c\x79\x20\x61\x73\x20\x69\x6e\x20\x73\x70\x6c\x69\x74\x64\x72\x69\x76\x65\x28\x29\x2e\x20\x4f\x6e\x20\x57\x69\x6e\x64\x6f\x77\x73\x2c\x20\x74\x68\x65\x20\x72\x6f\x6f\x74\x20\x6d\x61\x79\x20\x62\x65\x20\x61\x20\x73\x69\x6e\x67\x6c\x65\x20\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x20\x6f\x72\x20\x61\x6e\x20\x65\x6d\x70\x74\x79\x20\x73\x74\x72\x69\x6e\x67\x2e\x20\x54\x68\x65\x20\x74\x61\x69\x6c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x61\x6e\x79\x74\x68\x69\x6e\x67\x20\x61\x66\x74\x65\x72\x20\x74\x68\x65\x20\x72\x6f\x6f\x74\x2e\x0a\x20\x20\x20\x20\x46\x6f\x72\x20\x65\x78\x61\x6d\x70\x6c\x65\x3a\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x6c\x69\x74\x72\x6f\x6f\x74\x28\x27\x2f\x2f\x73\x65\x72\x76\x65\x72\x2f\x73\x68\x61\x72\x65\x2f\x27\x29\x20\x3d\x3d\x20\x28\x27\x2f\x2f\x73\x65\x72\x76\x65\x72\x2f\x73\x68\x61\x72\x65\x27\x2c\x20\x27\x2f\x27\x2c\x20\x27\x27\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x6c\x69\x74\x72\x6f\x6f\x74\x28\x27\x43\x3a\x2f\x55\x73\x65\x72\x73\x2f\x42\x61\x72\x6e\x65\x79\x27\x29\x20\x3d\x3d\x20\x28\x27\x43\x3a\x27\x2c\x20\x27\x2f\x27\x2c\x20\x27\x55\x73\x65\x72\x73\x2f\x42\x61\x72\x6e\x65\x79\x27\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x6c\x69\x74\x72\x6f\x6f\x74\x28\x27\x43\x3a\x2f\x2f\x2f\x73\x70\x61\x6d\x2f\x2f\x2f\x68\x61\x6d\x27\x29\x20\x3d\x3d\x20\x28\x27\x43\x3a\x27\x2c\x20\x27\x2f\x27\x2c\x20\x27\x2f\x2f\x73\x70\x61\x6d\x2f\x2f\x2f\x68\x61\x6d\x27\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x6c\x69\x74\x72\x6f\x6f\x74\x28\x27\x57\x69\x6e\x64\x6f\x77\x73\x2f\x6e\x6f\x74\x65\x70\x61\x64\x27\x29\x20\x3d\x3d\x20\x28\x27\x27\x2c\x20\x27\x27\x2c\x20\x27\x57\x69\x6e\x64\x6f\x77\x73\x2f\x6e\x6f\x74\x65\x70\x61\x64\x27\x29\x0a\x20\x20\x20\x20", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -ntpath_toplevel_consts_19_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = "\\\\?\\UNC\\", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -ntpath_toplevel_consts_19_consts_9 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\\\\?\\UNC\\", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[17]; - }_object; - } -ntpath_toplevel_consts_19_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 17, - }, - .ob_item = { - & ntpath_toplevel_consts_19_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[92]), - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - (PyObject *)&_Py_SINGLETON(bytes_characters[58]), - & ntpath_toplevel_consts_19_consts_4.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_empty), - (PyObject *)&_Py_SINGLETON(strings).ascii[92], - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - (PyObject *)&_Py_SINGLETON(strings).ascii[58], - & ntpath_toplevel_consts_19_consts_9._ascii.ob_base, - &_Py_STR(empty), - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 8], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 3], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_upper = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "upper", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_find = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "find", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -ntpath_toplevel_consts_19_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - &_Py_ID(replace), - & const_str_upper._ascii.ob_base, - & const_str_find._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[392]; - } -ntpath_toplevel_consts_19_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 391, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x16\x00\x09\x0b\x8f\x09\x89\x09\x90\x21\x8b\x0c\x80\x41\xdc\x07\x11\x90\x21\x94\x55\xd4\x07\x1b\xd8\x0e\x13\x88\x03\xd8\x11\x15\x88\x06\xd8\x10\x14\x88\x05\xd8\x15\x24\x88\x0a\xd8\x10\x13\x89\x05\xe0\x0e\x12\x88\x03\xd8\x11\x14\x88\x06\xd8\x10\x13\x88\x05\xd8\x15\x23\x88\x0a\xd8\x10\x12\x88\x05\xd8\x0c\x0d\x8f\x49\x89\x49\x90\x66\x98\x63\xd3\x0c\x22\x80\x45\xd8\x07\x0c\x88\x52\x88\x61\x80\x79\x90\x43\xd2\x07\x17\xd8\x0b\x10\x90\x11\x90\x31\x88\x3a\x98\x13\xd2\x0b\x1c\xf0\x06\x00\x1a\x1f\x98\x72\xa0\x01\x98\x19\x9f\x1f\x99\x1f\xd3\x19\x2a\xa8\x6a\xd2\x19\x38\x91\x41\xb8\x61\x88\x45\xd8\x14\x19\x97\x4a\x91\x4a\x98\x73\xa0\x45\xd3\x14\x2a\x88\x45\xd8\x0f\x14\x98\x02\x8a\x7b\xd8\x17\x18\x98\x25\xa0\x15\x90\x7f\xd0\x10\x26\xd8\x15\x1a\x97\x5a\x91\x5a\xa0\x03\xa0\x55\xa8\x51\xa1\x59\xd3\x15\x2f\x88\x46\xd8\x0f\x15\x98\x12\x8a\x7c\xd8\x17\x18\x98\x25\xa0\x15\x90\x7f\xd0\x10\x26\xd8\x13\x14\x90\x57\x90\x66\x90\x3a\x98\x71\xa0\x16\xa8\x06\xb0\x11\xa9\x0a\xd0\x1f\x33\xb0\x51\xb0\x76\xc0\x01\xb1\x7a\xb0\x7b\xb0\x5e\xd0\x13\x43\xd0\x0c\x43\xf0\x06\x00\x14\x19\x98\x21\x98\x42\x98\x51\x98\x25\xa0\x11\xa0\x31\xa0\x32\xa0\x15\xd0\x13\x26\xd0\x0c\x26\xd8\x09\x0e\x88\x71\x90\x11\x88\x1a\x90\x75\xd2\x09\x1c\xd8\x0b\x10\x90\x11\x90\x31\x88\x3a\x98\x13\xd2\x0b\x1c\xe0\x13\x14\x90\x52\x90\x61\x90\x35\x98\x21\x98\x41\x98\x61\x98\x26\xa0\x21\xa0\x41\xa0\x42\xa0\x25\xd0\x13\x27\xd0\x0c\x27\xf0\x06\x00\x14\x15\x90\x52\x90\x61\x90\x35\x98\x25\xa0\x11\xa0\x31\xa0\x32\xa0\x15\xd0\x13\x26\xd0\x0c\x26\xf0\x06\x00\x10\x15\x90\x65\x98\x51\x88\x7f\xd0\x08\x1e", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_unc_prefix = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "unc_prefix", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_empty = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "empty", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_normp = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "normp", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_index2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "index2", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -ntpath_toplevel_consts_19_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - &_Py_ID(sep), - & const_str_altsep._ascii.ob_base, - & const_str_colon._ascii.ob_base, - & const_str_unc_prefix._ascii.ob_base, - & const_str_empty._ascii.ob_base, - & const_str_normp._ascii.ob_base, - &_Py_ID(start), - & const_str_index._ascii.ob_base, - & const_str_index2._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(510) -ntpath_toplevel_consts_19 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 255, - }, - .co_consts = & ntpath_toplevel_consts_19_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_19_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 15 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 180, - .co_nlocalsplus = 10, - .co_nlocals = 10, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 557, - .co_localsplusnames = & ntpath_toplevel_consts_19_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_splitroot._ascii.ob_base, - .co_qualname = & const_str_splitroot._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_19_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x0b\x64\x01\x7d\x01\x64\x02\x7d\x02\x64\x03\x7d\x03\x64\x04\x7d\x04\x64\x05\x7d\x05\x6e\x0a\x64\x06\x7d\x01\x64\x07\x7d\x02\x64\x08\x7d\x03\x64\x09\x7d\x04\x64\x0a\x7d\x05\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x06\x64\x0b\x64\x0c\x1a\x00\x7c\x01\x6b\x28\x00\x00\x72\x7c\x7c\x06\x64\x0c\x64\x0d\x1a\x00\x7c\x01\x6b\x28\x00\x00\x72\x69\x7c\x06\x64\x0b\x64\x0e\x1a\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x6b\x28\x00\x00\x72\x02\x64\x0e\x6e\x01\x64\x0d\x7d\x07\x7c\x06\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x07\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x08\x7c\x08\x64\x0f\x6b\x28\x00\x00\x72\x05\x7c\x00\x7c\x05\x7c\x05\x66\x03\x53\x00\x7c\x06\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x08\x64\x0c\x7a\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x09\x7c\x09\x64\x0f\x6b\x28\x00\x00\x72\x05\x7c\x00\x7c\x05\x7c\x05\x66\x03\x53\x00\x7c\x00\x64\x0b\x7c\x09\x1a\x00\x7c\x00\x7c\x09\x7c\x09\x64\x0c\x7a\x00\x00\x00\x1a\x00\x7c\x00\x7c\x09\x64\x0c\x7a\x00\x00\x00\x64\x0b\x1a\x00\x66\x03\x53\x00\x7c\x05\x7c\x00\x64\x0b\x64\x0c\x1a\x00\x7c\x00\x64\x0c\x64\x0b\x1a\x00\x66\x03\x53\x00\x7c\x06\x64\x0c\x64\x0d\x1a\x00\x7c\x03\x6b\x28\x00\x00\x72\x21\x7c\x06\x64\x0d\x64\x10\x1a\x00\x7c\x01\x6b\x28\x00\x00\x72\x0e\x7c\x00\x64\x0b\x64\x0d\x1a\x00\x7c\x00\x64\x0d\x64\x10\x1a\x00\x7c\x00\x64\x10\x64\x0b\x1a\x00\x66\x03\x53\x00\x7c\x00\x64\x0b\x64\x0d\x1a\x00\x7c\x05\x7c\x00\x64\x0d\x64\x0b\x1a\x00\x66\x03\x53\x00\x7c\x05\x7c\x05\x7c\x00\x66\x03\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[127]; - } -ntpath_toplevel_consts_20_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 126, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x70\x6c\x69\x74\x20\x61\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x2e\x0a\x0a\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x20\x74\x75\x70\x6c\x65\x20\x28\x68\x65\x61\x64\x2c\x20\x74\x61\x69\x6c\x29\x20\x77\x68\x65\x72\x65\x20\x74\x61\x69\x6c\x20\x69\x73\x20\x65\x76\x65\x72\x79\x74\x68\x69\x6e\x67\x20\x61\x66\x74\x65\x72\x20\x74\x68\x65\x20\x66\x69\x6e\x61\x6c\x20\x73\x6c\x61\x73\x68\x2e\x0a\x20\x20\x20\x20\x45\x69\x74\x68\x65\x72\x20\x70\x61\x72\x74\x20\x6d\x61\x79\x20\x62\x65\x20\x65\x6d\x70\x74\x79\x2e", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -ntpath_toplevel_consts_20_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & ntpath_toplevel_consts_20_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -ntpath_toplevel_consts_20_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - & const_str__get_bothseps._ascii.ob_base, - & const_str_splitroot._ascii.ob_base, - &_Py_ID(len), - & const_str_rstrip._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[149]; - } -ntpath_toplevel_consts_20_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 148, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0a\x00\x09\x0b\x8f\x09\x89\x09\x90\x21\x8b\x0c\x80\x41\xdc\x0b\x18\x98\x11\xd3\x0b\x1b\x80\x44\xdc\x0e\x17\x98\x01\x8b\x6c\x81\x47\x80\x41\x80\x71\x88\x21\xe4\x08\x0b\x88\x41\x8b\x06\x80\x41\xd9\x0a\x0b\x90\x01\x90\x21\x90\x41\x91\x23\x91\x06\x98\x64\xd1\x10\x22\xd8\x08\x09\x88\x51\x89\x06\x88\x01\xf1\x03\x00\x0b\x0c\x90\x01\x90\x21\x90\x41\x91\x23\x91\x06\x98\x64\xd2\x10\x22\xe0\x11\x12\x90\x32\x90\x41\x90\x15\x98\x01\x98\x21\x98\x22\x98\x05\x88\x24\x80\x44\xd8\x0b\x0c\x88\x71\x89\x35\x90\x34\x97\x3b\x91\x3b\x98\x74\xd3\x13\x24\xd1\x0b\x24\xa0\x64\xd0\x0b\x2a\xd0\x04\x2a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -ntpath_toplevel_consts_20_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - & const_str_seps._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[100], - (PyObject *)&_Py_SINGLETON(strings).ascii[114], - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - & const_str_head._ascii.ob_base, - & const_str_tail._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(248) -ntpath_toplevel_consts_20 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 124, - }, - .co_consts = & ntpath_toplevel_consts_20_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_20_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 237, - .co_nlocalsplus = 7, - .co_nlocals = 7, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 558, - .co_localsplusnames = & ntpath_toplevel_consts_20_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_split._ascii.ob_base, - .co_qualname = & const_str_split._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x02\x7d\x03\x7d\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x04\x7c\x04\x72\x1c\x7c\x00\x7c\x04\x64\x01\x7a\x0a\x00\x00\x19\x00\x00\x00\x7c\x01\x76\x01\x72\x12\x7c\x04\x64\x01\x7a\x17\x00\x00\x7d\x04\x7c\x04\x72\x0b\x7c\x00\x7c\x04\x64\x01\x7a\x0a\x00\x00\x19\x00\x00\x00\x7c\x01\x76\x01\x72\x01\x8c\x12\x7c\x00\x64\x02\x7c\x04\x1a\x00\x7c\x00\x7c\x04\x64\x02\x1a\x00\x7d\x06\x7d\x05\x7c\x02\x7c\x03\x7a\x00\x00\x00\x7c\x05\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x7c\x06\x66\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -ntpath_toplevel_consts_21_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - Py_None, - (PyObject *)&_Py_SINGLETON(bytes_characters[92]), - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - (PyObject *)&_Py_SINGLETON(bytes_characters[46]), - (PyObject *)&_Py_SINGLETON(strings).ascii[92], - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -ntpath_toplevel_consts_21_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_genericpath._ascii.ob_base, - & const_str__splitext._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[72]; - } -ntpath_toplevel_consts_21_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 71, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x08\x0a\x8f\x09\x89\x09\x90\x21\x8b\x0c\x80\x41\xdc\x07\x11\x90\x21\x94\x55\xd4\x07\x1b\xdc\x0f\x1a\xd7\x0f\x24\xd1\x0f\x24\xa0\x51\xa8\x05\xa8\x74\xb0\x54\xd3\x0f\x3a\xd0\x08\x3a\xe4\x0f\x1a\xd7\x0f\x24\xd1\x0f\x24\xa0\x51\xa8\x04\xa8\x63\xb0\x33\xd3\x0f\x37\xd0\x08\x37", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_21_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - }, - }, -}; -static - struct _PyCode_DEF(172) -ntpath_toplevel_consts_21 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 86, - }, - .co_consts = & ntpath_toplevel_consts_21_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_21_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 258, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 559, - .co_localsplusnames = & ntpath_toplevel_consts_21_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_splitext._ascii.ob_base, - .co_qualname = & const_str_splitext._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_21_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x18\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x01\x64\x02\x64\x03\xab\x04\x00\x00\x00\x00\x00\x00\x53\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x04\x64\x05\x64\x06\xab\x04\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[42]; - } -ntpath_toplevel_consts_22_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 41, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Returns the final component of a pathname", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -ntpath_toplevel_consts_22_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & ntpath_toplevel_consts_22_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_22_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_split._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[17]; - } -ntpath_toplevel_consts_22_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 16, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x10\x90\x11\x8b\x38\x90\x41\x89\x3b\xd0\x04\x16", -}; -static - struct _PyCode_DEF(30) -ntpath_toplevel_consts_22 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 15, - }, - .co_consts = & ntpath_toplevel_consts_22_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_22_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 269, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 560, - .co_localsplusnames = & ntpath_toplevel_consts_21_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_basename._ascii.ob_base, - .co_qualname = & const_str_basename._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_22_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x19\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[46]; - } -ntpath_toplevel_consts_23_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 45, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Returns the directory component of a pathname", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -ntpath_toplevel_consts_23_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & ntpath_toplevel_consts_23_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - }, - }, -}; -static - struct _PyCode_DEF(30) -ntpath_toplevel_consts_23 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 15, - }, - .co_consts = & ntpath_toplevel_consts_23_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_22_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 276, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 561, - .co_localsplusnames = & ntpath_toplevel_consts_21_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_dirname._ascii.ob_base, - .co_qualname = & const_str_dirname._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_22_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x19\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_st_reparse_tag = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "st_reparse_tag", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[34]; - } -ntpath_toplevel_consts_25_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 33, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Test whether a path is a junction", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -ntpath_toplevel_consts_25_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & ntpath_toplevel_consts_25_consts_0._ascii.ob_base, - Py_False, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -const_str_IO_REPARSE_TAG_MOUNT_POINT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "IO_REPARSE_TAG_MOUNT_POINT", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -ntpath_toplevel_consts_25_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_lstat._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - & const_str_AttributeError._ascii.ob_base, - & const_str_bool._ascii.ob_base, - & const_str_st_reparse_tag._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_IO_REPARSE_TAG_MOUNT_POINT._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[78]; - } -ntpath_toplevel_consts_25_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 77, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x03\x09\x19\xdc\x11\x13\x97\x18\x91\x18\x98\x24\x93\x1e\x88\x42\xf4\x06\x00\x10\x14\x90\x42\xd7\x14\x25\xd1\x14\x25\xac\x14\xd7\x29\x48\xd1\x29\x48\xd1\x14\x48\xd3\x0f\x49\xd0\x08\x49\xf8\xf4\x05\x00\x11\x18\x9c\x1a\xa4\x5e\xd0\x0f\x34\xf2\x00\x01\x09\x19\xd9\x13\x18\xf0\x03\x01\x09\x19\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[16]; - } -ntpath_toplevel_consts_25_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 15, - }, - .ob_shash = -1, - .ob_sval = "\x82\x15\x3d\x00\xbd\x14\x41\x14\x03\xc1\x13\x01\x41\x14\x03", -}; -static - struct _PyCode_DEF(174) -ntpath_toplevel_consts_25 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 87, - }, - .co_consts = & ntpath_toplevel_consts_25_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_25_names._object.ob_base.ob_base, - .co_exceptiontable = & ntpath_toplevel_consts_25_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 284, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 562, - .co_localsplusnames = & genericpath_toplevel_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_isjunction._ascii.ob_base, - .co_qualname = & const_str_isjunction._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_25_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x66\x03\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -ntpath_toplevel_consts_26_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[17]; - } -ntpath_toplevel_consts_26_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 16, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x08\x0a\x8f\x09\x89\x09\x90\x24\x8c\x0f\xd8\x0f\x14", -}; -static - struct _PyCode_DEF(46) -ntpath_toplevel_consts_26 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & ntpath_toplevel_consts_25_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_26_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 292, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 563, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_isjunction._ascii.ob_base, - .co_qualname = & const_str_isjunction._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_26_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[68]; - } -ntpath_toplevel_consts_27_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 67, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Test whether a path exists. Returns True for broken symbolic links", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -ntpath_toplevel_consts_27_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & ntpath_toplevel_consts_27_consts_0._ascii.ob_base, - Py_False, - Py_True, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -ntpath_toplevel_consts_27_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_lstat._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[51]; - } -ntpath_toplevel_consts_27_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 50, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x03\x05\x15\xdc\x0d\x0f\x8f\x58\x89\x58\x90\x64\x8b\x5e\x88\x02\xf0\x06\x00\x0c\x10\xf8\xf4\x05\x00\x0d\x14\x94\x5a\xd0\x0b\x20\xf2\x00\x01\x05\x15\xd9\x0f\x14\xf0\x03\x01\x05\x15\xfa", -}; -static - struct _PyCode_DEF(90) -ntpath_toplevel_consts_27 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 45, - }, - .co_consts = & ntpath_toplevel_consts_27_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_27_names._object.ob_base.ob_base, - .co_exceptiontable = & genericpath_toplevel_consts_4_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 300, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 564, - .co_localsplusnames = & genericpath_toplevel_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_lexists._ascii.ob_base, - .co_qualname = & const_str_lexists._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_27_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x79\x02\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str__getvolumepathname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_getvolumepathname", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_28 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__getvolumepathname._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[98]; - } -ntpath_toplevel_consts_29_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 97, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x54\x65\x73\x74\x20\x77\x68\x65\x74\x68\x65\x72\x20\x61\x20\x70\x61\x74\x68\x20\x69\x73\x20\x61\x20\x6d\x6f\x75\x6e\x74\x20\x70\x6f\x69\x6e\x74\x20\x28\x61\x20\x64\x72\x69\x76\x65\x20\x72\x6f\x6f\x74\x2c\x20\x74\x68\x65\x20\x72\x6f\x6f\x74\x20\x6f\x66\x20\x61\x0a\x20\x20\x20\x20\x73\x68\x61\x72\x65\x2c\x20\x6f\x72\x20\x61\x20\x6d\x6f\x75\x6e\x74\x65\x64\x20\x76\x6f\x6c\x75\x6d\x65\x29", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -ntpath_toplevel_consts_29_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & ntpath_toplevel_consts_29_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_True, - Py_False, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -ntpath_toplevel_consts_29_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - & const_str__get_bothseps._ascii.ob_base, - & const_str_abspath._ascii.ob_base, - & const_str_splitroot._ascii.ob_base, - & const_str__getvolumepathname._ascii.ob_base, - & const_str_rstrip._ascii.ob_base, - & const_str_casefold._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[146]; - } -ntpath_toplevel_consts_29_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 145, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x0c\x0e\x8f\x39\x89\x39\x90\x54\x8b\x3f\x80\x44\xdc\x0b\x18\x98\x14\xd3\x0b\x1e\x80\x44\xdc\x0b\x12\x90\x34\x8b\x3d\x80\x44\xdc\x18\x21\xa0\x24\x9b\x0f\xd1\x04\x15\x80\x45\x88\x34\x90\x14\xd9\x07\x0c\x90\x15\x90\x71\x91\x18\x98\x54\xd1\x11\x21\xd8\x13\x17\x88\x78\x88\x0f\xd9\x07\x0b\x91\x44\xd8\x0f\x13\xe5\x07\x19\xd8\x0c\x10\x8f\x4b\x89\x4b\x98\x04\xd3\x0c\x1d\x88\x01\xdc\x0b\x1d\x98\x64\xd3\x0b\x23\xd7\x0b\x2a\xd1\x0b\x2a\xa8\x34\xd3\x0b\x30\x88\x01\xd8\x0f\x10\x8f\x7a\x89\x7a\x8b\x7c\x98\x71\x9f\x7a\x99\x7a\x9b\x7c\xd1\x0f\x2b\xd0\x08\x2b\xe0\x0f\x14", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -ntpath_toplevel_consts_29_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(path), - & const_str_seps._ascii.ob_base, - & const_str_drive._ascii.ob_base, - & const_str_root._ascii.ob_base, - & const_str_rest._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[120], - (PyObject *)&_Py_SINGLETON(strings).ascii[121], - }, - }, -}; -static - struct _PyCode_DEF(318) -ntpath_toplevel_consts_29 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 159, - }, - .co_consts = & ntpath_toplevel_consts_29_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_29_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 322, - .co_nlocalsplus = 7, - .co_nlocals = 7, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 565, - .co_localsplusnames = & ntpath_toplevel_consts_29_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_ismount._ascii.ob_base, - .co_qualname = & const_str_ismount._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_29_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x02\x7d\x03\x7d\x04\x7c\x02\x72\x0a\x7c\x02\x64\x01\x19\x00\x00\x00\x7c\x01\x76\x00\x72\x03\x7c\x04\x0c\x00\x53\x00\x7c\x03\x72\x03\x7c\x04\x73\x01\x79\x02\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x72\x4c\x7c\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x05\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x53\x00\x79\x03", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[77]; - } -ntpath_toplevel_consts_30_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 76, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x45\x78\x70\x61\x6e\x64\x20\x7e\x20\x61\x6e\x64\x20\x7e\x75\x73\x65\x72\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x73\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x75\x73\x65\x72\x20\x6f\x72\x20\x24\x48\x4f\x4d\x45\x20\x69\x73\x20\x75\x6e\x6b\x6e\x6f\x77\x6e\x2c\x20\x64\x6f\x20\x6e\x6f\x74\x68\x69\x6e\x67\x2e", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_USERPROFILE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "USERPROFILE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_HOMEPATH = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HOMEPATH", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_HOMEDRIVE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HOMEDRIVE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_USERNAME = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "USERNAME", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -ntpath_toplevel_consts_30_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & ntpath_toplevel_consts_30_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[126]), - (PyObject *)&_Py_SINGLETON(strings).ascii[126], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - & const_str_USERPROFILE._ascii.ob_base, - & const_str_HOMEPATH._ascii.ob_base, - & const_str_HOMEDRIVE._ascii.ob_base, - &_Py_STR(empty), - & const_str_USERNAME._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -ntpath_toplevel_consts_30_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_startswith._ascii.ob_base, - &_Py_ID(len), - & const_str__get_bothseps._ascii.ob_base, - & const_str_environ._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - &_Py_ID(join), - & const_str_fsdecode._ascii.ob_base, - &_Py_ID(get), - & const_str_basename._ascii.ob_base, - & const_str_dirname._ascii.ob_base, - & const_str_fsencode._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[380]; - } -ntpath_toplevel_consts_30_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 379, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x08\x00\x0c\x0e\x8f\x39\x89\x39\x90\x54\x8b\x3f\x80\x44\xdc\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xd8\x10\x14\x89\x05\xe0\x10\x13\x88\x05\xd8\x0b\x0f\x8f\x3f\x89\x3f\x98\x35\xd4\x0b\x21\xd8\x0f\x13\x88\x0b\xd8\x0b\x0c\x8c\x63\x90\x24\x8b\x69\x80\x71\x80\x41\xd8\x0a\x0b\x88\x61\x8a\x25\x90\x44\x98\x11\x91\x47\xa4\x3d\xb0\x14\xd3\x23\x36\xd1\x14\x36\xd8\x08\x09\x88\x51\x89\x06\x88\x01\xf0\x03\x00\x0b\x0c\x88\x61\x8a\x25\x90\x44\x98\x11\x91\x47\xa4\x3d\xb0\x14\xd3\x23\x36\xd2\x14\x36\xf0\x06\x00\x08\x15\x9c\x02\x9f\x0a\x99\x0a\xd1\x07\x22\xdc\x13\x15\x97\x3a\x91\x3a\x98\x6d\xd1\x13\x2c\x89\x08\xd8\x0d\x17\x9c\x32\x9f\x3a\x99\x3a\xd1\x0d\x25\xd8\x0f\x13\x88\x0b\xf0\x04\x03\x09\x17\xdc\x14\x16\x97\x4a\x91\x4a\x98\x7b\xd1\x14\x2b\x88\x45\xf4\x06\x00\x14\x18\x98\x05\x9c\x72\x9f\x7a\x99\x7a\xa8\x2a\xd1\x1f\x35\xd3\x13\x36\x88\x08\xe0\x07\x08\x88\x41\x82\x76\xd8\x16\x1a\x98\x31\x98\x51\x90\x69\x88\x0b\xdc\x0b\x15\x90\x6b\xa4\x35\xd4\x0b\x29\xdc\x1a\x1c\x9f\x2b\x99\x2b\xa0\x6b\xd3\x1a\x32\x88\x4b\xdc\x17\x19\x97\x7a\x91\x7a\x97\x7e\x91\x7e\xa0\x6a\xd3\x17\x31\x88\x0c\xe0\x0b\x16\x98\x2c\xd2\x0b\x26\xf0\x0c\x00\x10\x1c\x9c\x78\xa8\x08\xd3\x1f\x31\xd2\x0f\x31\xd8\x17\x1b\x90\x0b\xdc\x17\x1b\x9c\x47\xa0\x48\xd3\x1c\x2d\xa8\x7b\xd3\x17\x3b\x88\x48\xe4\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xdc\x13\x15\x97\x3b\x91\x3b\x98\x78\xd3\x13\x28\x88\x08\xe0\x0b\x13\x90\x64\x98\x31\x98\x32\x90\x68\xd1\x0b\x1e\xd0\x04\x1e\xf8\xf4\x2f\x00\x10\x18\xf2\x00\x01\x09\x17\xd8\x14\x16\x8a\x45\xf0\x03\x01\x09\x17\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -ntpath_toplevel_consts_30_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\xc2\x36\x13\x46\x0b\x00\xc6\x0b\x0b\x46\x19\x03\xc6\x18\x01\x46\x19\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_tilde = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "tilde", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_userhome = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "userhome", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_target_user = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "target_user", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_current_user = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "current_user", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -ntpath_toplevel_consts_30_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(path), - & const_str_tilde._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - (PyObject *)&_Py_SINGLETON(strings).ascii[110], - & const_str_userhome._ascii.ob_base, - & const_str_drive._ascii.ob_base, - & const_str_target_user._ascii.ob_base, - & const_str_current_user._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(824) -ntpath_toplevel_consts_30 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 412, - }, - .co_consts = & ntpath_toplevel_consts_30_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_30_names._object.ob_base.ob_base, - .co_exceptiontable = & ntpath_toplevel_consts_30_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 13 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 351, - .co_nlocalsplus = 8, - .co_nlocals = 8, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 566, - .co_localsplusnames = & ntpath_toplevel_consts_30_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_13_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_expanduser._ascii.ob_base, - .co_qualname = & const_str_expanduser._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_30_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x03\x64\x01\x7d\x01\x6e\x02\x64\x02\x7d\x01\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x73\x02\x7c\x00\x53\x00\x64\x03\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x03\x7d\x02\x7c\x02\x7c\x03\x6b\x02\x00\x00\x72\x2b\x7c\x00\x7c\x02\x19\x00\x00\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x76\x01\x72\x1b\x7c\x02\x64\x03\x7a\x0d\x00\x00\x7d\x02\x7c\x02\x7c\x03\x6b\x02\x00\x00\x72\x11\x7c\x00\x7c\x02\x19\x00\x00\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x76\x01\x72\x01\x8c\x1b\x64\x04\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x72\x14\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x19\x00\x00\x00\x7d\x04\x6e\x45\x64\x05\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x01\x72\x02\x7c\x00\x53\x00\x09\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\x19\x00\x00\x00\x7d\x05\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\x19\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x04\x7c\x02\x64\x03\x6b\x37\x00\x00\x72\x73\x7c\x00\x64\x03\x7c\x02\x1a\x00\x7d\x06\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x15\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x07\x7c\x06\x7c\x07\x6b\x37\x00\x00\x72\x25\x7c\x07\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\x02\x7c\x00\x53\x00\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x04\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x15\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x04\x7c\x04\x7c\x00\x7c\x02\x64\x09\x1a\x00\x7a\x00\x00\x00\x53\x00\x23\x00\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x64\x07\x7d\x05\x59\x00\x8c\xcf\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[103]; - } -ntpath_toplevel_consts_31_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 102, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x45\x78\x70\x61\x6e\x64\x20\x73\x68\x65\x6c\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x66\x6f\x72\x6d\x73\x20\x24\x76\x61\x72\x2c\x20\x24\x7b\x76\x61\x72\x7d\x20\x61\x6e\x64\x20\x25\x76\x61\x72\x25\x2e\x0a\x0a\x20\x20\x20\x20\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x20\x61\x72\x65\x20\x6c\x65\x66\x74\x20\x75\x6e\x63\x68\x61\x6e\x67\x65\x64\x2e", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -ntpath_toplevel_consts_31_consts_5 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_-", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_environb = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "environb", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[18]; - }_object; - } -ntpath_toplevel_consts_31_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 18, - }, - .ob_item = { - & ntpath_toplevel_consts_31_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[36]), - (PyObject *)&_Py_SINGLETON(bytes_characters[37]), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & ntpath_toplevel_consts_31_consts_5._ascii.ob_base, - & const_str_ascii._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[39]), - (PyObject *)&_Py_SINGLETON(bytes_characters[123]), - (PyObject *)&_Py_SINGLETON(bytes_characters[125]), - & const_str_environb._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[36], - (PyObject *)&_Py_SINGLETON(strings).ascii[37], - (PyObject *)&_Py_SINGLETON(strings).ascii[39], - (PyObject *)&_Py_SINGLETON(strings).ascii[123], - (PyObject *)&_Py_SINGLETON(strings).ascii[125], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_ascii_letters = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ascii_letters", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_digits = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "digits", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -ntpath_toplevel_consts_31_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - &_Py_ID(string), - & const_str_ascii_letters._ascii.ob_base, - & const_str_digits._ascii.ob_base, - &_Py_ID(getattr), - & const_str_environ._ascii.ob_base, - &_Py_ID(len), - & const_str_index._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - & const_str_fsencode._ascii.ob_base, - & const_str_fsdecode._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[1097]; - } -ntpath_toplevel_consts_31_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 1096, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x08\x00\x0c\x0e\x8f\x39\x89\x39\x90\x54\x8b\x3f\x80\x44\xdc\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xd8\x0b\x0f\x90\x74\xd1\x0b\x1b\xa0\x04\xa8\x44\xd1\x20\x30\xd8\x13\x17\x88\x4b\xdb\x08\x15\xdc\x13\x18\x98\x16\xd7\x19\x2d\xd1\x19\x2d\xb0\x06\xb7\x0d\xb1\x0d\xd1\x19\x3d\xc0\x04\xd1\x19\x44\xc0\x67\xd3\x13\x4e\x88\x08\xd8\x10\x15\x88\x05\xd8\x12\x16\x88\x07\xd8\x10\x14\x88\x05\xd8\x11\x15\x88\x06\xd8\x11\x15\x88\x06\xdc\x12\x19\x9c\x22\x98\x6a\xa8\x24\xd3\x12\x2f\x89\x07\xe0\x0b\x0e\x90\x64\x89\x3f\x98\x73\xa8\x24\x99\x7f\xd8\x13\x17\x88\x4b\xdb\x08\x15\xd8\x13\x19\xd7\x13\x27\xd1\x13\x27\xa8\x26\xaf\x2d\xa9\x2d\xd1\x13\x37\xb8\x24\xd1\x13\x3e\x88\x08\xd8\x10\x14\x88\x05\xd8\x12\x15\x88\x07\xd8\x10\x13\x88\x05\xd8\x11\x14\x88\x06\xd8\x11\x14\x88\x06\xdc\x12\x14\x97\x2a\x91\x2a\x88\x07\xd8\x0a\x0e\x88\x72\x90\x01\x88\x28\x80\x43\xd8\x0c\x0d\x80\x45\xdc\x0e\x11\x90\x24\x8b\x69\x80\x47\xd8\x0a\x0f\x90\x27\x8b\x2f\xd8\x0c\x10\x90\x15\x90\x75\x98\x51\x91\x77\xd0\x0c\x1f\x88\x01\xd8\x0b\x0c\x90\x05\x8a\x3a\xd8\x13\x17\x98\x05\xa0\x01\x99\x09\x98\x0a\xd0\x13\x23\x88\x44\xdc\x16\x19\x98\x24\x93\x69\x88\x47\xf0\x02\x05\x0d\x24\xd8\x18\x1c\x9f\x0a\x99\x0a\xa0\x31\x9b\x0d\x90\x05\xd8\x10\x13\x90\x71\x98\x34\xa0\x0a\xa0\x15\xa8\x11\xa1\x19\xd0\x1b\x2b\xd1\x17\x2b\xd1\x10\x2b\x92\x03\xf0\x08\x00\x0e\x0f\x90\x27\x8a\x5c\xd8\x0f\x13\x90\x45\x98\x41\x91\x49\x98\x65\xa0\x61\x99\x69\xd0\x0f\x28\xa8\x47\xd2\x0f\x33\xd8\x10\x13\x90\x71\x91\x08\x90\x03\xd8\x10\x15\x98\x11\x91\x0a\x92\x05\xe0\x17\x1b\x98\x45\xa0\x21\x99\x47\x98\x48\x90\x7e\x90\x04\xdc\x1a\x1d\x98\x64\x9b\x29\x90\x07\xf0\x02\x0e\x11\x21\xd8\x1c\x20\x9f\x4a\x99\x4a\xa0\x77\xd3\x1c\x2f\x90\x45\xf0\x0a\x00\x1b\x1f\x98\x76\xa0\x05\x98\x2c\x90\x43\xf0\x02\x06\x15\x38\xd8\x1b\x22\x98\x3f\xdc\x24\x26\xa7\x4b\xa1\x4b\xb4\x02\xb7\x0a\xb1\x0a\xbc\x32\xbf\x3b\xb9\x3b\xc0\x73\xd3\x3b\x4b\xd1\x30\x4c\xd3\x24\x4d\x99\x45\xe0\x24\x2b\xa8\x43\xa1\x4c\x98\x45\xf0\x06\x00\x15\x18\x98\x35\x91\x4c\x92\x43\xd8\x0d\x0e\x90\x26\x8b\x5b\xd8\x0f\x13\x90\x45\x98\x41\x91\x49\x98\x65\xa0\x61\x99\x69\xd0\x0f\x28\xa8\x46\xd2\x0f\x32\xd8\x10\x13\x90\x71\x91\x08\x90\x03\xd8\x10\x15\x98\x11\x91\x0a\x92\x05\xd8\x11\x15\x90\x65\x98\x61\x91\x69\xa0\x05\xa8\x01\xa1\x09\xd0\x11\x2a\xa8\x65\xd2\x11\x33\xd8\x17\x1b\x98\x45\xa0\x21\x99\x47\x98\x48\x90\x7e\x90\x04\xdc\x1a\x1d\x98\x64\x9b\x29\x90\x07\xf0\x02\x0e\x11\x21\xd8\x1c\x20\x9f\x4a\x99\x4a\xa0\x76\xd3\x1c\x2e\x90\x45\xf0\x0a\x00\x1b\x1f\x98\x76\xa0\x05\x98\x2c\x90\x43\xf0\x02\x06\x15\x3e\xd8\x1b\x22\x98\x3f\xdc\x24\x26\xa7\x4b\xa1\x4b\xb4\x02\xb7\x0a\xb1\x0a\xbc\x32\xbf\x3b\xb9\x3b\xc0\x73\xd3\x3b\x4b\xd1\x30\x4c\xd3\x24\x4d\x99\x45\xe0\x24\x2b\xa8\x43\xa1\x4c\x98\x45\xf0\x06\x00\x15\x18\x98\x35\x91\x4c\x91\x43\xe0\x16\x1a\x98\x32\x98\x41\x90\x68\x90\x03\xd8\x10\x15\x98\x11\x91\x0a\x90\x05\xd8\x14\x18\x98\x15\x98\x75\xa0\x71\x99\x79\xd0\x14\x29\x90\x01\xd9\x16\x17\x98\x41\xa0\x18\x99\x4d\xd8\x14\x17\x98\x31\x91\x48\x90\x43\xd8\x14\x19\x98\x51\x91\x4a\x90\x45\xd8\x18\x1c\x98\x55\xa0\x35\xa8\x31\xa1\x39\xd0\x18\x2d\x90\x41\xf1\x07\x00\x17\x18\x98\x41\xa0\x18\x9a\x4d\xf0\x08\x06\x11\x29\xd8\x17\x1e\x90\x7f\xdc\x20\x22\xa7\x0b\xa1\x0b\xac\x42\xaf\x4a\xa9\x4a\xb4\x72\xb7\x7b\xb1\x7b\xc0\x33\xd3\x37\x47\xd1\x2c\x48\xd3\x20\x49\x99\x05\xe0\x20\x27\xa8\x03\xa1\x0c\x98\x05\xf0\x06\x00\x11\x14\x90\x75\x91\x0c\x90\x03\xd9\x13\x14\xd8\x14\x19\x98\x51\x91\x4a\x91\x45\xe0\x0c\x0f\x90\x31\x89\x48\x88\x43\xd8\x08\x0d\x90\x11\x89\x0a\x88\x05\xf0\x57\x02\x00\x0b\x10\x90\x27\x8c\x2f\xf0\x58\x02\x00\x0c\x0f\x80\x4a\xf8\xf4\x49\x02\x00\x14\x1e\xf2\x00\x02\x0d\x24\xd8\x10\x13\x90\x71\x98\x34\x91\x78\x91\x0f\x90\x03\xd8\x18\x1f\xa0\x21\x99\x0b\x92\x05\xf0\x05\x02\x0d\x24\xfb\xf4\x2c\x00\x1c\x24\xf2\x00\x01\x15\x38\xd8\x20\x27\xa8\x23\xa1\x0d\xb0\x07\xd1\x20\x37\x9b\x05\xf0\x03\x01\x15\x38\xfb\xf4\x15\x00\x18\x22\xf2\x00\x02\x11\x28\xd8\x14\x17\x98\x37\xa0\x54\x99\x3e\xd1\x14\x29\x90\x43\xd8\x1c\x23\xa0\x61\x99\x4b\x92\x45\xf0\x05\x02\x11\x28\xfb\xf4\x40\x01\x00\x1c\x24\xf2\x00\x01\x15\x3e\xd8\x20\x26\xa8\x15\xa1\x0e\xb0\x13\xd1\x20\x34\xb0\x76\xd1\x20\x3d\x9a\x05\xf0\x03\x01\x15\x3e\xfb\xf4\x15\x00\x18\x22\xf2\x00\x02\x11\x28\xd8\x14\x17\x98\x36\xa0\x45\x99\x3e\xa8\x44\xd1\x1b\x30\xd1\x14\x30\x90\x43\xd8\x1c\x23\xa0\x61\x99\x4b\x92\x45\xf0\x05\x02\x11\x28\xfb\xf4\x34\x00\x18\x20\xf2\x00\x01\x11\x29\xd8\x1c\x22\xa0\x53\x99\x4c\x92\x45\xf0\x03\x01\x11\x29\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[112]; - } -ntpath_toplevel_consts_31_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 111, - }, - .ob_shash = -1, - .ob_sval = "\xc3\x33\x1f\x4b\x19\x00\xc5\x07\x11\x4c\x0d\x00\xc5\x1e\x41\x01\x4b\x35\x00\xc7\x28\x11\x4d\x03\x00\xc7\x3f\x41\x01\x4c\x29\x00\xc9\x38\x41\x01\x4d\x22\x00\xcb\x19\x16\x4b\x32\x03\xcb\x31\x01\x4b\x32\x03\xcb\x35\x11\x4c\x0a\x03\xcc\x09\x01\x4c\x0a\x03\xcc\x0d\x16\x4c\x26\x03\xcc\x25\x01\x4c\x26\x03\xcc\x29\x14\x4d\x00\x03\xcc\x3f\x01\x4d\x00\x03\xcd\x03\x19\x4d\x1f\x03\xcd\x1e\x01\x4d\x1f\x03\xcd\x22\x0e\x4d\x33\x03\xcd\x32\x01\x4d\x33\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_varchars = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "varchars", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_quote = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "quote", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_percent = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "percent", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_brace = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "brace", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_rbrace = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "rbrace", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_dollar = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dollar", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_res = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "res", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_pathlen = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pathlen", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_var = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "var", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -ntpath_toplevel_consts_31_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - &_Py_ID(path), - &_Py_ID(string), - & const_str_varchars._ascii.ob_base, - & const_str_quote._ascii.ob_base, - & const_str_percent._ascii.ob_base, - & const_str_brace._ascii.ob_base, - & const_str_rbrace._ascii.ob_base, - & const_str_dollar._ascii.ob_base, - & const_str_environ._ascii.ob_base, - & const_str_res._ascii.ob_base, - & const_str_index._ascii.ob_base, - & const_str_pathlen._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[99], - & const_str_var._ascii.ob_base, - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(1772) -ntpath_toplevel_consts_31 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 886, - }, - .co_consts = & ntpath_toplevel_consts_31_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_31_names._object.ob_base.ob_base, - .co_exceptiontable = & ntpath_toplevel_consts_31_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 21 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 412, - .co_nlocalsplus = 15, - .co_nlocals = 15, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 567, - .co_localsplusnames = & ntpath_toplevel_consts_31_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_external_toplevel_consts_56_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_expandvars._ascii.ob_base, - .co_qualname = & const_str_expandvars._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_31_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x50\x64\x01\x7c\x00\x76\x01\x72\x06\x64\x02\x7c\x00\x76\x01\x72\x02\x7c\x00\x53\x00\x64\x03\x64\x04\x6c\x04\x7d\x01\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x64\x05\x7a\x00\x00\x00\x64\x06\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x02\x64\x07\x7d\x03\x64\x02\x7d\x04\x64\x08\x7d\x05\x64\x09\x7d\x06\x64\x01\x7d\x07\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0a\x64\x04\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x08\x6e\x44\x64\x0b\x7c\x00\x76\x01\x72\x06\x64\x0c\x7c\x00\x76\x01\x72\x02\x7c\x00\x53\x00\x64\x03\x64\x04\x6c\x04\x7d\x01\x7c\x01\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x64\x05\x7a\x00\x00\x00\x7d\x02\x64\x0d\x7d\x03\x64\x0c\x7d\x04\x64\x0e\x7d\x05\x64\x0f\x7d\x06\x64\x0b\x7d\x07\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x08\x7c\x00\x64\x04\x64\x03\x1a\x00\x7d\x09\x64\x03\x7d\x0a\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0b\x7c\x0a\x7c\x0b\x6b\x02\x00\x00\x90\x02\x72\x05\x7c\x00\x7c\x0a\x7c\x0a\x64\x10\x7a\x00\x00\x00\x1a\x00\x7d\x0c\x7c\x0c\x7c\x03\x6b\x28\x00\x00\x72\x35\x7c\x00\x7c\x0a\x64\x10\x7a\x00\x00\x00\x64\x04\x1a\x00\x7d\x00\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0b\x09\x00\x7c\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0c\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0a\x7c\x09\x7c\x0c\x7c\x00\x64\x04\x7c\x0a\x64\x10\x7a\x00\x00\x00\x1a\x00\x7a\x00\x00\x00\x7a\x0d\x00\x00\x7d\x09\x90\x01\x6e\xb7\x7c\x0c\x7c\x04\x6b\x28\x00\x00\x72\x8d\x7c\x00\x7c\x0a\x64\x10\x7a\x00\x00\x00\x7c\x0a\x64\x11\x7a\x00\x00\x00\x1a\x00\x7c\x04\x6b\x28\x00\x00\x72\x0c\x7c\x09\x7c\x0c\x7a\x0d\x00\x00\x7d\x09\x7c\x0a\x64\x10\x7a\x0d\x00\x00\x7d\x0a\x90\x01\x6e\x98\x7c\x00\x7c\x0a\x64\x10\x7a\x00\x00\x00\x64\x04\x1a\x00\x7d\x00\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0b\x09\x00\x7c\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0a\x7c\x00\x64\x04\x7c\x0a\x1a\x00\x7d\x0d\x09\x00\x7c\x08\x80\x3a\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0e\x6e\x05\x7c\x08\x7c\x0d\x19\x00\x00\x00\x7d\x0e\x7c\x09\x7c\x0e\x7a\x0d\x00\x00\x7d\x09\x90\x01\x6e\x25\x7c\x0c\x7c\x07\x6b\x28\x00\x00\x90\x01\x72\x1a\x7c\x00\x7c\x0a\x64\x10\x7a\x00\x00\x00\x7c\x0a\x64\x11\x7a\x00\x00\x00\x1a\x00\x7c\x07\x6b\x28\x00\x00\x72\x0c\x7c\x09\x7c\x0c\x7a\x0d\x00\x00\x7d\x09\x7c\x0a\x64\x10\x7a\x0d\x00\x00\x7d\x0a\x90\x01\x6e\x05\x7c\x00\x7c\x0a\x64\x10\x7a\x00\x00\x00\x7c\x0a\x64\x11\x7a\x00\x00\x00\x1a\x00\x7c\x05\x6b\x28\x00\x00\x72\x72\x7c\x00\x7c\x0a\x64\x11\x7a\x00\x00\x00\x64\x04\x1a\x00\x7d\x00\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0b\x09\x00\x7c\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0a\x7c\x00\x64\x04\x7c\x0a\x1a\x00\x7d\x0d\x09\x00\x7c\x08\x80\x3a\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0e\x6e\x05\x7c\x08\x7c\x0d\x19\x00\x00\x00\x7d\x0e\x7c\x09\x7c\x0e\x7a\x0d\x00\x00\x7d\x09\x6e\x85\x7c\x00\x64\x04\x64\x03\x1a\x00\x7d\x0d\x7c\x0a\x64\x10\x7a\x0d\x00\x00\x7d\x0a\x7c\x00\x7c\x0a\x7c\x0a\x64\x10\x7a\x00\x00\x00\x1a\x00\x7d\x0c\x7c\x0c\x72\x1d\x7c\x0c\x7c\x02\x76\x00\x72\x19\x7c\x0d\x7c\x0c\x7a\x0d\x00\x00\x7d\x0d\x7c\x0a\x64\x10\x7a\x0d\x00\x00\x7d\x0a\x7c\x00\x7c\x0a\x7c\x0a\x64\x10\x7a\x00\x00\x00\x1a\x00\x7d\x0c\x7c\x0c\x72\x05\x7c\x0c\x7c\x02\x76\x00\x72\x01\x8c\x19\x09\x00\x7c\x08\x80\x3a\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0e\x6e\x05\x7c\x08\x7c\x0d\x19\x00\x00\x00\x7d\x0e\x7c\x09\x7c\x0e\x7a\x0d\x00\x00\x7d\x09\x7c\x0c\x72\x0b\x7c\x0a\x64\x10\x7a\x17\x00\x00\x7d\x0a\x6e\x05\x7c\x09\x7c\x0c\x7a\x0d\x00\x00\x7d\x09\x7c\x0a\x64\x10\x7a\x0d\x00\x00\x7d\x0a\x7c\x0a\x7c\x0b\x6b\x02\x00\x00\x72\x02\x90\x02\x8c\x05\x7c\x09\x53\x00\x23\x00\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x10\x01\x00\x7c\x09\x7c\x0c\x7c\x00\x7a\x00\x00\x00\x7a\x0d\x00\x00\x7d\x09\x7c\x0b\x64\x10\x7a\x0a\x00\x00\x7d\x0a\x59\x00\x8c\x26\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x0c\x01\x00\x7c\x04\x7c\x0d\x7a\x00\x00\x00\x7c\x04\x7a\x00\x00\x00\x7d\x0e\x59\x00\x90\x01\x8c\x6a\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x10\x01\x00\x7c\x09\x7c\x04\x7c\x00\x7a\x00\x00\x00\x7a\x0d\x00\x00\x7d\x09\x7c\x0b\x64\x10\x7a\x0a\x00\x00\x7d\x0a\x59\x00\x8c\x5a\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x0e\x01\x00\x7c\x07\x7c\x05\x7a\x00\x00\x00\x7c\x0d\x7a\x00\x00\x00\x7c\x06\x7a\x00\x00\x00\x7d\x0e\x59\x00\x8c\xff\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x13\x01\x00\x7c\x09\x7c\x07\x7c\x05\x7a\x00\x00\x00\x7c\x00\x7a\x00\x00\x00\x7a\x0d\x00\x00\x7d\x09\x7c\x0b\x64\x10\x7a\x0a\x00\x00\x7d\x0a\x59\x00\x8c\x93\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x08\x01\x00\x7c\x07\x7c\x0d\x7a\x00\x00\x00\x7d\x0e\x59\x00\x8c\xb9\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__path_normpath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_path_normpath", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_32 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__path_normpath._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[49]; - } -ntpath_toplevel_consts_33_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 48, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Normalize path, eliminating double slashes, etc.", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -ntpath_toplevel_consts_33_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = "..", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -ntpath_toplevel_consts_33_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & ntpath_toplevel_consts_33_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[92]), - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - (PyObject *)&_Py_SINGLETON(bytes_characters[46]), - & ntpath_toplevel_consts_33_consts_4.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[92], - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - & ntpath_toplevel_consts_2._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -ntpath_toplevel_consts_33_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - &_Py_ID(replace), - & const_str_splitroot._ascii.ob_base, - & const_str_split._ascii.ob_base, - &_Py_ID(len), - &_Py_ID(append), - &_Py_ID(join), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[308]; - } -ntpath_toplevel_consts_33_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 307, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0f\x11\x8f\x79\x89\x79\x98\x14\x8b\x7f\x88\x04\xdc\x0b\x15\x90\x64\x9c\x45\xd4\x0b\x22\xd8\x12\x17\x88\x43\xd8\x15\x19\x88\x46\xd8\x15\x19\x88\x46\xd8\x15\x1a\x89\x46\xe0\x12\x16\x88\x43\xd8\x15\x18\x88\x46\xd8\x15\x18\x88\x46\xd8\x15\x19\x88\x46\xd8\x0f\x13\x8f\x7c\x89\x7c\x98\x46\xa0\x43\xd3\x0f\x28\x88\x04\xdc\x1c\x25\xa0\x64\x9b\x4f\xd1\x08\x19\x88\x05\x88\x74\x90\x54\xd8\x11\x16\x98\x14\x91\x1c\x88\x06\xd8\x10\x14\x97\x0a\x91\x0a\x98\x33\x93\x0f\x88\x05\xd8\x0c\x0d\x88\x01\xd8\x0e\x0f\x94\x23\x90\x65\x93\x2a\x8a\x6e\xd8\x13\x18\x98\x11\x92\x38\x98\x75\xa0\x51\x99\x78\xa8\x36\xd2\x1f\x31\xd8\x14\x19\x98\x21\x91\x48\xd8\x11\x16\x90\x71\x91\x18\x98\x56\xd2\x11\x23\xd8\x13\x14\x90\x71\x92\x35\x98\x55\xa0\x31\xa0\x51\xa1\x33\x99\x5a\xa8\x36\xd2\x1d\x31\xd8\x18\x1d\x98\x61\xa0\x01\x99\x63\xa0\x21\xa0\x41\xa1\x23\x98\x67\x98\x0e\xd8\x14\x15\x98\x11\x91\x46\x91\x41\xd8\x15\x16\x98\x21\x92\x56\xa1\x04\xd8\x18\x1d\x98\x61\x99\x08\xe0\x14\x15\x98\x11\x91\x46\x91\x41\xe0\x10\x11\x90\x51\x91\x06\x90\x01\xf0\x19\x00\x0f\x10\x94\x23\x90\x65\x93\x2a\x8b\x6e\xf1\x1c\x00\x10\x16\x99\x65\xd8\x0c\x11\x8f\x4c\x89\x4c\x98\x16\xd4\x0c\x20\xd8\x0f\x15\x98\x03\x9f\x08\x99\x08\xa0\x15\x9b\x0f\xd1\x0f\x27\xd0\x08\x27", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_comps = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "comps", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -ntpath_toplevel_consts_33_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(path), - &_Py_ID(sep), - & const_str_altsep._ascii.ob_base, - & const_str_curdir._ascii.ob_base, - & const_str_pardir._ascii.ob_base, - & const_str_drive._ascii.ob_base, - & const_str_root._ascii.ob_base, - & const_str_prefix._ascii.ob_base, - & const_str_comps._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - }, - }, -}; -static - struct _PyCode_DEF(524) -ntpath_toplevel_consts_33 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 262, - }, - .co_consts = & ntpath_toplevel_consts_33_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_33_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 14 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 528, - .co_nlocalsplus = 10, - .co_nlocals = 10, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 568, - .co_localsplusnames = & ntpath_toplevel_consts_33_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_normpath._ascii.ob_base, - .co_qualname = & const_str_normpath._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_33_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x09\x64\x01\x7d\x01\x64\x02\x7d\x02\x64\x03\x7d\x03\x64\x04\x7d\x04\x6e\x08\x64\x05\x7d\x01\x64\x06\x7d\x02\x64\x07\x7d\x03\x64\x08\x7d\x04\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x05\x7d\x06\x7d\x00\x7c\x05\x7c\x06\x7a\x00\x00\x00\x7d\x07\x7c\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x08\x64\x09\x7d\x09\x7c\x09\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x02\x00\x00\x72\x5f\x7c\x08\x7c\x09\x19\x00\x00\x00\x72\x08\x7c\x08\x7c\x09\x19\x00\x00\x00\x7c\x03\x6b\x28\x00\x00\x72\x04\x7c\x08\x7c\x09\x3d\x00\x6e\x3f\x7c\x08\x7c\x09\x19\x00\x00\x00\x7c\x04\x6b\x28\x00\x00\x72\x32\x7c\x09\x64\x09\x6b\x44\x00\x00\x72\x1c\x7c\x08\x7c\x09\x64\x0a\x7a\x0a\x00\x00\x19\x00\x00\x00\x7c\x04\x6b\x37\x00\x00\x72\x11\x7c\x08\x7c\x09\x64\x0a\x7a\x0a\x00\x00\x7c\x09\x64\x0a\x7a\x00\x00\x00\x85\x02\x3d\x00\x7c\x09\x64\x0a\x7a\x17\x00\x00\x7d\x09\x6e\x16\x7c\x09\x64\x09\x6b\x28\x00\x00\x72\x06\x7c\x06\x72\x04\x7c\x08\x7c\x09\x3d\x00\x6e\x0b\x7c\x09\x64\x0a\x7a\x0d\x00\x00\x7d\x09\x6e\x05\x7c\x09\x64\x0a\x7a\x0d\x00\x00\x7d\x09\x7c\x09\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x02\x00\x00\x72\x01\x8c\x5f\x7c\x07\x73\x13\x7c\x08\x73\x11\x7c\x08\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x07\x7c\x01\x6a\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\xab\x01\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__getfullpathname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_getfullpathname", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_34 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__getfullpathname._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[39]; - } -ntpath_toplevel_consts_35_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 38, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return the absolute version of a path.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -ntpath_toplevel_consts_35_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & ntpath_toplevel_consts_35_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[92]), - (PyObject *)&_Py_SINGLETON(strings).ascii[92], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_getcwdb = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getcwdb", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -ntpath_toplevel_consts_35_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str__getfullpathname._ascii.ob_base, - & const_str_normpath._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - & const_str_isabs._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_getcwdb._ascii.ob_base, - & const_str_getcwd._ascii.ob_base, - & const_str_splitroot._ascii.ob_base, - &_Py_ID(join), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[240]; - } -ntpath_toplevel_consts_35_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 239, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x04\x09\x11\xdc\x13\x23\xa4\x48\xa8\x54\xa3\x4e\xd3\x13\x33\xd0\x0c\x33\xf8\xdc\x10\x17\x9c\x1a\xd0\x0f\x24\xf2\x00\x02\x09\x11\xe1\x0c\x10\xf0\x05\x02\x09\x11\xfa\xf4\x06\x00\x10\x12\x8f\x79\x89\x79\x98\x14\x8b\x7f\x88\x04\xdc\x0f\x14\x90\x54\x8c\x7b\xdc\x0f\x19\x98\x24\xa4\x05\xd4\x0f\x26\xd8\x16\x1b\x90\x03\xdc\x19\x1b\x9f\x1a\x99\x1a\x91\x06\xe0\x16\x1a\x90\x03\xdc\x19\x1b\x9f\x19\x99\x19\x90\x06\xdc\x20\x29\xa8\x24\xa3\x0f\xd1\x0c\x1d\x88\x45\x90\x34\x98\x14\xe1\x0f\x14\x99\x04\xf0\x02\x04\x11\x2e\xdc\x1b\x1f\xd4\x20\x30\xb0\x15\xb8\x14\xb1\x1c\xd3\x20\x3e\xc0\x04\xd3\x1b\x45\x90\x44\xf4\x0c\x00\x10\x18\x98\x04\x8b\x7e\xd0\x08\x1d\xf8\xf4\x0b\x00\x19\x20\xa4\x1a\xd0\x17\x2c\xf2\x00\x02\x11\x2e\xe0\x1b\x20\xa0\x33\x99\x3b\xa8\x14\xd1\x1b\x2d\x91\x44\xf4\x06\x00\x10\x18\x98\x04\x8b\x7e\xd0\x08\x1d\xf0\x0b\x02\x11\x2e\xfa\xf4\x08\x00\x18\x1c\x99\x46\x9b\x48\xa0\x64\xd3\x17\x2b\x90\x04\xdc\x0f\x17\x98\x04\x8b\x7e\xd0\x08\x1d", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[31]; - } -ntpath_toplevel_consts_35_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 30, - }, - .ob_shash = -1, - .ob_sval = "\x82\x13\x16\x00\x96\x0f\x28\x03\xa7\x01\x28\x03\xc2\x14\x18\x42\x37\x00\xc2\x37\x17\x43\x1b\x03\xc3\x1a\x01\x43\x1b\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -ntpath_toplevel_consts_35_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(path), - &_Py_ID(sep), - & const_str_getcwd._ascii.ob_base, - & const_str_drive._ascii.ob_base, - & const_str_root._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(500) -ntpath_toplevel_consts_35 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 250, - }, - .co_consts = & ntpath_toplevel_consts_35_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_35_names._object.ob_base.ob_base, - .co_exceptiontable = & ntpath_toplevel_consts_35_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 582, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 569, - .co_localsplusnames = & ntpath_toplevel_consts_35_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_abspath._ascii.ob_base, - .co_qualname = & const_str_abspath._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_35_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x03\x01\x00\x59\x00\x6e\x04\x77\x00\x78\x03\x59\x00\x77\x01\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x73\xa4\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x13\x64\x01\x7d\x01\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x6e\x12\x64\x02\x7d\x01\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x03\x7d\x04\x7d\x00\x7c\x03\x73\x02\x7c\x04\x72\x4b\x09\x00\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x04\x7a\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x15\x01\x00\x7c\x03\x7c\x01\x7a\x00\x00\x00\x7c\x00\x7a\x00\x00\x00\x7d\x00\x59\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x7c\x02\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_36_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & ntpath_toplevel_consts_35_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -ntpath_toplevel_consts_36_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - & const_str_isabs._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_getcwdb._ascii.ob_base, - & const_str_getcwd._ascii.ob_base, - &_Py_ID(join), - & const_str_normpath._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[76]; - } -ntpath_toplevel_consts_36_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 75, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0f\x11\x8f\x79\x89\x79\x98\x14\x8b\x7f\x88\x04\xdc\x0f\x14\x90\x54\x8c\x7b\xdc\x0f\x19\x98\x24\xa4\x05\xd4\x0f\x26\xdc\x16\x18\x97\x6a\x91\x6a\x93\x6c\x91\x03\xe4\x16\x18\x97\x69\x91\x69\x93\x6b\x90\x03\xdc\x13\x17\x98\x03\x98\x54\x93\x3f\x88\x44\xdc\x0f\x17\x98\x04\x8b\x7e\xd0\x08\x1d", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -ntpath_toplevel_consts_36_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(path), - &_Py_ID(cwd), - }, - }, -}; -static - struct _PyCode_DEF(226) -ntpath_toplevel_consts_36 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 113, - }, - .co_consts = & ntpath_toplevel_consts_36_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_36_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 570, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 570, - .co_localsplusnames = & ntpath_toplevel_consts_36_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_abspath._ascii.ob_base, - .co_qualname = & const_str_abspath._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_36_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x73\x45\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x15\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x6e\x14\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str__getfinalpathname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_getfinalpathname", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_readlink = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "readlink", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -ntpath_toplevel_consts_37 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__getfinalpathname._ascii.ob_base, - & const_str_readlink._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_4390 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 4390 }, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_4392 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 4392 }, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_4393 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 4393 }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[12]; - }_object; - } -ntpath_toplevel_consts_38_consts_1 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 12, - }, - .ob_item = { - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 3], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 5], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 21], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 32], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 50], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 67], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 87], - & const_int_4390.ob_base, - & const_int_4392.ob_base, - & const_int_4393.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -ntpath_toplevel_consts_38_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & ntpath_toplevel_consts_38_consts_1._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str__nt_readlink = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_nt_readlink", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_winerror = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "winerror", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -ntpath_toplevel_consts_38_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & const_str_set._ascii.ob_base, - & const_str_normcase._ascii.ob_base, - &_Py_ID(add), - & const_str__nt_readlink._ascii.ob_base, - & const_str_isabs._ascii.ob_base, - & const_str_islink._ascii.ob_base, - & const_str_normpath._ascii.ob_base, - &_Py_ID(join), - & const_str_dirname._ascii.ob_base, - & const_str_winerror._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__readlink_deep = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_readlink_deep", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[208]; - } -ntpath_toplevel_consts_38_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 207, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x1e\x00\x1c\x4c\x01\xd0\x08\x18\xe4\x0f\x12\x8b\x75\x88\x04\xdc\x0e\x16\x90\x74\x8b\x6e\xa0\x44\xd1\x0e\x28\xd8\x0c\x10\x8f\x48\x89\x48\x94\x58\x98\x64\x93\x5e\xd4\x0c\x24\xf0\x02\x13\x0d\x16\xd8\x1b\x1f\x90\x08\xdc\x17\x23\xa0\x44\xd3\x17\x29\x90\x04\xf4\x06\x00\x18\x1d\x98\x54\x94\x7b\xf4\x08\x00\x1c\x22\xa0\x28\xd4\x1b\x2b\xd8\x1f\x27\x98\x04\xd8\x18\x1d\xf0\x12\x00\x10\x14\x88\x0b\xf4\x11\x00\x1c\x24\xa4\x44\xac\x17\xb0\x18\xd3\x29\x3a\xb8\x44\xd3\x24\x41\xd3\x1b\x42\x90\x44\xf4\x1d\x00\x0f\x17\x90\x74\x8b\x6e\xa0\x44\xd2\x0e\x28\xf0\x2c\x00\x10\x14\x88\x0b\xf8\xf0\x0f\x00\x14\x21\xf2\x00\x03\x0d\x16\xd8\x13\x15\x97\x3b\x91\x3b\xd0\x22\x32\xd1\x13\x32\xdb\x14\x19\xf0\x0a\x00\x10\x14\x88\x0b\xf0\x09\x00\x11\x16\xfb\xdc\x13\x1d\xf2\x00\x02\x0d\x16\xe0\x10\x15\xd8\x0f\x13\x88\x0b\xf0\x07\x02\x0d\x16\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[42]; - } -ntpath_toplevel_consts_38_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 41, - }, - .ob_shash = -1, - .ob_sval = "\xb5\x25\x42\x0b\x00\xc1\x1d\x1e\x42\x0b\x00\xc2\x0b\x05\x42\x35\x03\xc2\x10\x0e\x42\x25\x03\xc2\x24\x01\x42\x25\x03\xc2\x25\x0c\x42\x35\x03\xc2\x34\x01\x42\x35\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_ignored_error = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ignored_error", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str_allowed_winerror = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "allowed_winerror", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_seen = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "seen", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_old_path = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "old_path", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_ex = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ex", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -ntpath_toplevel_consts_38_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(path), - & const_str_ignored_error._ascii.ob_base, - & const_str_allowed_winerror._ascii.ob_base, - & const_str_seen._ascii.ob_base, - & const_str_old_path._ascii.ob_base, - & const_str_ex._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(368) -ntpath_toplevel_consts_38 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 184, - }, - .co_consts = & ntpath_toplevel_consts_38_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_38_names._object.ob_base.ob_base, - .co_exceptiontable = & ntpath_toplevel_consts_38_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 13 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 616, - .co_nlocalsplus = 6, - .co_nlocals = 6, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 571, - .co_localsplusnames = & ntpath_toplevel_consts_38_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_30_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str__readlink_deep._ascii.ob_base, - .co_qualname = & const_str__readlink_deep._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_38_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x7d\x02\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x03\x76\x01\x72\x6f\x7c\x03\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x7c\x00\x7d\x04\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x73\x2e\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x73\x05\x7c\x04\x7d\x00\x09\x00\x7c\x00\x53\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x03\x76\x01\x72\x01\x8c\x6f\x7c\x00\x53\x00\x23\x00\x7c\x01\x24\x00\x72\x1a\x7d\x05\x7c\x05\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x76\x00\x72\x06\x59\x00\x64\x00\x7d\x05\x7e\x05\x7c\x00\x53\x00\x82\x00\x64\x00\x7d\x05\x7e\x05\x77\x01\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x04\x01\x00\x59\x00\x7c\x00\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_1920 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 1920 }, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_1921 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 1921 }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -ntpath_toplevel_consts_39_consts_1 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 3], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 5], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 21], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 32], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 50], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 53], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 65], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 67], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 87], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 123], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 161], - & const_int_1920.ob_base, - & const_int_1921.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_39_consts_3 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_ignored_error._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -ntpath_toplevel_consts_39_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - & ntpath_toplevel_consts_39_consts_1._object.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & ntpath_toplevel_consts_39_consts_3._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -ntpath_toplevel_consts_39_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str__getfinalpathname._ascii.ob_base, - &_Py_ID(join), - & const_str_winerror._ascii.ob_base, - & const_str__readlink_deep._ascii.ob_base, - & const_str_split._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -const_str__getfinalpathname_nonstrict = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_getfinalpathname_nonstrict", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[229]; - } -ntpath_toplevel_consts_39_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 228, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x24\x00\x1c\x58\x01\xd0\x08\x18\xf0\x08\x00\x10\x14\x90\x42\x90\x51\x88\x78\x88\x04\xd9\x0e\x12\xf0\x02\x17\x0d\x3a\xdc\x17\x28\xa8\x14\xd3\x17\x2e\x90\x04\xd9\x2b\x2f\x94\x74\x98\x44\xa0\x24\xd3\x17\x27\xd0\x10\x39\xb0\x54\xd0\x10\x39\xf0\x2c\x00\x10\x14\x88\x0b\xf8\xf0\x2b\x00\x14\x21\xf2\x00\x14\x0d\x3a\xd8\x13\x15\x97\x3b\x91\x3b\xd0\x26\x36\xd1\x13\x36\xd8\x14\x19\xf0\x02\x0a\x11\x19\xf4\x08\x00\x20\x2e\xa8\x64\xd8\x3c\x49\xf4\x03\x01\x20\x4b\x01\x90\x48\xe0\x17\x1f\xa0\x34\xd2\x17\x27\xd9\x37\x3b\x9c\x74\xa0\x48\xa8\x64\xd4\x1f\x33\xc0\x18\xd5\x18\x49\xf0\x03\x00\x18\x28\xf8\xe0\x17\x24\xf2\x00\x02\x11\x19\xe1\x14\x18\xf0\x05\x02\x11\x19\xfa\xf4\x06\x00\x1e\x23\xa0\x34\x9b\x5b\x91\x0a\x90\x04\x90\x64\xf1\x08\x00\x14\x18\xa1\x04\xd8\x1b\x1f\xa0\x24\x99\x3b\xd5\x14\x26\xd9\x2b\x2f\x94\x74\x98\x44\xa0\x24\xd4\x17\x27\xb0\x54\x95\x04\xfb\xf0\x29\x14\x0d\x3a\xfa\xf2\x09\x00\x0f\x13\xf8", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[78]; - } -ntpath_toplevel_consts_39_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 77, - }, - .ob_shash = -1, - .ob_sval = "\x8b\x18\x28\x00\xa4\x01\x28\x00\xa8\x05\x42\x26\x03\xad\x0f\x42\x21\x03\xbd\x21\x41\x25\x02\xc1\x1e\x01\x42\x26\x03\xc1\x24\x01\x42\x21\x03\xc1\x25\x05\x41\x2d\x05\xc1\x2a\x02\x42\x21\x03\xc1\x2c\x01\x41\x2d\x05\xc1\x2d\x19\x42\x21\x03\xc2\x06\x01\x42\x26\x03\xc2\x0c\x10\x42\x21\x03\xc2\x21\x05\x42\x26\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_new_path = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "new_path", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -ntpath_toplevel_consts_39_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(path), - & const_str_ignored_error._ascii.ob_base, - & const_str_allowed_winerror._ascii.ob_base, - & const_str_tail._ascii.ob_base, - & const_str_ex._ascii.ob_base, - & const_str_new_path._ascii.ob_base, - &_Py_ID(name), - }, - }, -}; -static - struct _PyCode_DEF(346) -ntpath_toplevel_consts_39 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 173, - }, - .co_consts = & ntpath_toplevel_consts_39_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_39_names._object.ob_base.ob_base, - .co_exceptiontable = & ntpath_toplevel_consts_39_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 658, - .co_nlocalsplus = 7, - .co_nlocals = 7, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 572, - .co_localsplusnames = & ntpath_toplevel_consts_39_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str__getfinalpathname_nonstrict._ascii.ob_base, - .co_qualname = & const_str__getfinalpathname_nonstrict._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_39_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x7d\x02\x7c\x00\x64\x00\x64\x02\x1a\x00\x7d\x03\x7c\x00\x72\x1c\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x7c\x03\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x03\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x7c\x00\x53\x00\x7c\x03\x53\x00\x23\x00\x7c\x01\x24\x00\x72\x79\x7d\x04\x7c\x04\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x76\x01\x72\x01\x82\x00\x09\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xac\x03\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x05\x7c\x05\x7c\x00\x6b\x37\x00\x00\x72\x15\x7c\x03\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x7c\x03\xab\x02\x00\x00\x00\x00\x00\x00\x6e\x01\x7c\x05\x63\x02\x59\x00\x64\x00\x7d\x04\x7e\x04\x53\x00\x6e\x0b\x23\x00\x7c\x01\x24\x00\x72\x03\x01\x00\x59\x00\x6e\x04\x77\x00\x78\x03\x59\x00\x77\x01\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x00\x7d\x06\x7c\x00\x72\x0c\x7c\x06\x73\x0a\x7c\x00\x7c\x03\x7a\x00\x00\x00\x63\x02\x59\x00\x64\x00\x7d\x04\x7e\x04\x53\x00\x7c\x03\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x7c\x03\xab\x02\x00\x00\x00\x00\x00\x00\x6e\x01\x7c\x06\x7d\x03\x59\x00\x64\x00\x7d\x04\x7e\x04\x6e\x08\x64\x00\x7d\x04\x7e\x04\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x7c\x00\x72\x01\x8c\xa2\x8c\x87", - ._co_firsttraceable = 0, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -ntpath_toplevel_consts_42_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\\\\?\\", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -ntpath_toplevel_consts_42_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = "\\\\", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[8]; - } -ntpath_toplevel_consts_42_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 7, - }, - .ob_shash = -1, - .ob_sval = "\\\\.\\NUL", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -ntpath_toplevel_consts_42_consts_5 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\\\\?\\", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -ntpath_toplevel_consts_42_consts_8 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\\\\.\\NUL", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -ntpath_toplevel_consts_42_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - Py_None, - & ntpath_toplevel_consts_42_consts_1.ob_base.ob_base, - & ntpath_toplevel_consts_19_consts_4.ob_base.ob_base, - & ntpath_toplevel_consts_42_consts_3.ob_base.ob_base, - & ntpath_toplevel_consts_42_consts_4.ob_base.ob_base, - & ntpath_toplevel_consts_42_consts_5._ascii.ob_base, - & ntpath_toplevel_consts_19_consts_9._ascii.ob_base, - & importlib__bootstrap_external_toplevel_consts_22_consts_6._ascii.ob_base, - & ntpath_toplevel_consts_42_consts_8._ascii.ob_base, - Py_True, - (PyObject *)& _Py_SINGLETON(tuple_empty), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & ntpath_toplevel_consts_39_consts_3._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[21]; - }_object; - } -ntpath_toplevel_consts_42_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 21, - }, - .ob_item = { - & const_str_normpath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_os._ascii.ob_base, - & const_str_getcwdb._ascii.ob_base, - & const_str_normcase._ascii.ob_base, - & const_str_fsencode._ascii.ob_base, - & const_str_devnull._ascii.ob_base, - & const_str_getcwd._ascii.ob_base, - & const_str_startswith._ascii.ob_base, - & const_str_ALLOW_MISSING._ascii.ob_base, - & const_str_FileNotFoundError._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_isabs._ascii.ob_base, - &_Py_ID(join), - & const_str__getfinalpathname._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - & const_str_str._ascii.ob_base, - & const_str_winerror._ascii.ob_base, - & const_str__getfinalpathname_nonstrict._ascii.ob_base, - &_Py_ID(len), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[465]; - } -ntpath_toplevel_consts_42_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 464, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x17\x98\x04\x8b\x7e\x88\x04\xdc\x0b\x15\x90\x64\x9c\x45\xd4\x0b\x22\xd8\x15\x1f\x88\x46\xd8\x19\x28\x88\x4a\xd8\x1d\x24\x88\x4e\xdc\x12\x14\x97\x2a\x91\x2a\x93\x2c\x88\x43\xe4\x0f\x17\x98\x04\x8b\x7e\xa4\x18\xac\x22\xaf\x2b\xa9\x2b\xb4\x67\xd3\x2a\x3e\xd3\x21\x3f\xd2\x0f\x3f\xd8\x17\x24\xe0\x15\x1e\x88\x46\xd8\x19\x27\x88\x4a\xd8\x1d\x23\x88\x4e\xdc\x12\x14\x97\x29\x91\x29\x93\x2b\x88\x43\xe4\x0f\x17\x98\x04\x8b\x7e\xa4\x18\xac\x27\xd3\x21\x32\xd2\x0f\x32\xd8\x17\x23\xd8\x15\x19\x97\x5f\x91\x5f\xa0\x56\xd3\x15\x2c\x88\x0a\xe0\x0b\x11\x94\x5d\xd1\x0b\x22\xdc\x1c\x2d\x88\x4d\xd8\x15\x19\x89\x46\xd9\x0d\x13\xd8\x1c\x1e\x89\x4d\xe4\x1c\x23\x88\x4d\xe1\x0f\x19\xa4\x25\xa8\x04\xa4\x2b\xdc\x13\x17\x98\x03\x98\x54\x93\x3f\x88\x44\xf0\x02\x0e\x09\x4c\x01\xdc\x13\x24\xa0\x54\xd3\x13\x2a\x88\x44\xd8\x1f\x20\xd0\x0c\x1c\xf1\x20\x00\x10\x1a\x98\x64\x9f\x6f\x99\x6f\xa8\x66\xd4\x1e\x35\xf0\x06\x00\x10\x14\x8f\x7f\x89\x7f\x98\x7a\xd4\x0f\x2a\xd8\x18\x26\xa8\x14\xac\x63\xb0\x2a\xab\x6f\xd0\x2e\x3e\xd0\x29\x3f\xd1\x18\x3f\x91\x05\xe0\x18\x1c\x9c\x53\xa0\x16\x9b\x5b\x98\x5c\xd0\x18\x2a\x90\x05\xf0\x04\x0b\x0d\x21\xdc\x13\x24\xa0\x55\xd3\x13\x2b\xa8\x74\xd2\x13\x33\xd8\x1b\x20\x90\x44\xf0\x14\x00\x10\x14\x88\x0b\x88\x74\x88\x0b\xf8\xf4\x47\x01\x00\x10\x1a\xf2\x00\x07\x09\x22\xf1\x0a\x00\x10\x16\xdc\x16\x1d\x9c\x63\xa0\x22\x9b\x67\xd3\x16\x26\xa8\x44\xd0\x10\x30\xdc\x13\x1b\x98\x44\x93\x3e\x8d\x44\xfb\xd8\x0f\x1c\xf2\x00\x03\x09\x4c\x01\xd8\x1f\x21\x9f\x7b\x99\x7b\xd0\x0c\x1c\xdc\x13\x2e\xa8\x74\xd8\x3d\x4a\xf4\x03\x01\x14\x4c\x01\x8d\x44\xfb\xf0\x05\x03\x09\x4c\x01\xfb\xf4\x24\x00\x14\x1e\xf2\x00\x03\x0d\x15\xf3\x06\x00\x11\x15\xf0\x0c\x00\x10\x14\x88\x0b\xfb\xf4\x0b\x00\x14\x1b\xf2\x00\x04\x0d\x21\xf0\x06\x00\x14\x16\x97\x3b\x91\x3b\xd0\x22\x32\xd2\x13\x32\xd8\x1b\x20\x90\x44\xfb\xd8\x0f\x13\x88\x0b\xfb\xf0\x0b\x04\x0d\x21\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[67]; - } -ntpath_toplevel_consts_42_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 66, - }, - .ob_shash = -1, - .ob_sval = "\xc3\x22\x0d\x45\x08\x00\xc4\x34\x10\x46\x26\x00\xc5\x08\x09\x46\x23\x03\xc5\x11\x22\x45\x38\x03\xc5\x38\x08\x46\x23\x03\xc6\x00\x19\x46\x1e\x03\xc6\x1e\x05\x46\x23\x03\xc6\x26\x09\x47\x1d\x03\xc6\x35\x0c\x47\x1d\x03\xc7\x01\x11\x47\x18\x03\xc7\x18\x05\x47\x1d\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_new_unc_prefix = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "new_unc_prefix", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_had_prefix = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "had_prefix", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str_initial_winerror = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "initial_winerror", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_spath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "spath", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -ntpath_toplevel_consts_42_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - &_Py_ID(path), - &_Py_ID(strict), - & const_str_prefix._ascii.ob_base, - & const_str_unc_prefix._ascii.ob_base, - & const_str_new_unc_prefix._ascii.ob_base, - &_Py_ID(cwd), - & const_str_had_prefix._ascii.ob_base, - & const_str_ignored_error._ascii.ob_base, - & const_str_initial_winerror._ascii.ob_base, - & const_str_ex._ascii.ob_base, - & const_str_spath._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(960) -ntpath_toplevel_consts_42 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 480, - }, - .co_consts = & ntpath_toplevel_consts_42_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_42_names._object.ob_base.ob_base, - .co_exceptiontable = & ntpath_toplevel_consts_42_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 1, - .co_framesize = 17 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 708, - .co_nlocalsplus = 11, - .co_nlocals = 11, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 573, - .co_localsplusnames = & ntpath_toplevel_consts_42_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_6_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_realpath._ascii.ob_base, - .co_qualname = & const_str_realpath._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_42_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x49\x64\x01\x7d\x02\x64\x02\x7d\x03\x64\x03\x7d\x04\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x72\x37\x79\x04\x64\x05\x7d\x02\x64\x06\x7d\x03\x64\x07\x7d\x04\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x72\x01\x79\x08\x7c\x00\x6a\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x01\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x09\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x07\x64\x09\x7d\x01\x6e\x0b\x7c\x01\x72\x03\x64\x0a\x7d\x07\x6e\x06\x74\x18\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x07\x7c\x06\x73\x17\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x73\x0c\x74\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x00\x09\x00\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x64\x0b\x7d\x08\x7c\x06\x73\x55\x7c\x00\x6a\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x72\x44\x7c\x00\x6a\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x72\x12\x7c\x04\x7c\x00\x74\x29\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x64\x00\x1a\x00\x7a\x00\x00\x00\x7d\x0a\x6e\x0e\x7c\x00\x74\x29\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x64\x00\x1a\x00\x7d\x0a\x09\x00\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x6b\x28\x00\x00\x72\x02\x7c\x0a\x7d\x00\x7c\x00\x53\x00\x7c\x00\x53\x00\x23\x00\x74\x20\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x2c\x7d\x09\x7c\x01\x72\x15\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x74\x23\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x64\x00\x82\x02\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x59\x00\x64\x00\x7d\x09\x7e\x09\x8c\x89\x64\x00\x7d\x09\x7e\x09\x77\x01\x7c\x07\x24\x00\x72\x23\x7d\x09\x7c\x09\x6a\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x08\x74\x27\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x07\xac\x0c\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x00\x59\x00\x64\x00\x7d\x09\x7e\x09\x8c\xaf\x64\x00\x7d\x09\x7e\x09\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x20\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x0b\x7d\x09\x59\x00\x64\x00\x7d\x09\x7e\x09\x7c\x00\x53\x00\x64\x00\x7d\x09\x7e\x09\x77\x01\x74\x18\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x1c\x7d\x09\x7c\x09\x6a\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x08\x6b\x28\x00\x00\x72\x02\x7c\x0a\x7d\x00\x59\x00\x64\x00\x7d\x09\x7e\x09\x7c\x00\x53\x00\x64\x00\x7d\x09\x7e\x09\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_43_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_abspath._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -ntpath_toplevel_consts_43_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x16\x90\x74\x8b\x7d\xd0\x08\x1c", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -ntpath_toplevel_consts_43_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(path), - &_Py_ID(strict), - }, - }, -}; -static - struct _PyCode_DEF(24) -ntpath_toplevel_consts_43 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 12, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_43_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 1, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 613, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 574, - .co_localsplusnames = & ntpath_toplevel_consts_43_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_realpath._ascii.ob_base, - .co_qualname = & const_str_realpath._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_43_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[36]; - } -ntpath_toplevel_consts_45_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 35, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return a relative version of a path", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -ntpath_toplevel_consts_45_consts_8 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "no path specified", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -ntpath_toplevel_consts_45_consts_9 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "path is on mount ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -ntpath_toplevel_consts_45_consts_10 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = ", start on mount ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[14]; - }_object; - } -ntpath_toplevel_consts_45_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 14, - }, - .ob_item = { - & ntpath_toplevel_consts_45_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[92]), - (PyObject *)&_Py_SINGLETON(bytes_characters[46]), - & ntpath_toplevel_consts_33_consts_4.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[92], - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - & ntpath_toplevel_consts_2._ascii.ob_base, - Py_None, - & ntpath_toplevel_consts_45_consts_8._ascii.ob_base, - & ntpath_toplevel_consts_45_consts_9._ascii.ob_base, - & ntpath_toplevel_consts_45_consts_10._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - & const_str_relpath._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[19]; - }_object; - } -ntpath_toplevel_consts_45_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 19, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_ValueError._ascii.ob_base, - & const_str_abspath._ascii.ob_base, - & const_str_normpath._ascii.ob_base, - & const_str_splitroot._ascii.ob_base, - & const_str_normcase._ascii.ob_base, - & const_str_split._ascii.ob_base, - & const_str_zip._ascii.ob_base, - &_Py_ID(len), - &_Py_ID(join), - & const_str_TypeError._ascii.ob_base, - & const_str_AttributeError._ascii.ob_base, - & const_str_BytesWarning._ascii.ob_base, - & const_str_DeprecationWarning._ascii.ob_base, - & const_str_genericpath._ascii.ob_base, - & const_str__check_arg_types._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[437]; - } -ntpath_toplevel_consts_45_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 436, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x0d\x8f\x39\x89\x39\x90\x54\x8b\x3f\x80\x44\xdc\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xd8\x0e\x13\x88\x03\xd8\x11\x15\x88\x06\xd8\x11\x16\x89\x06\xe0\x0e\x12\x88\x03\xd8\x11\x14\x88\x06\xd8\x11\x15\x88\x06\xe0\x07\x0c\x80\x7d\xd8\x10\x16\x88\x05\xe1\x0b\x0f\xdc\x0e\x18\xd0\x19\x2c\xd3\x0e\x2d\xd0\x08\x2d\xe4\x0c\x0e\x8f\x49\x89\x49\x90\x65\xd3\x0c\x1c\x80\x45\xf0\x02\x18\x05\x0e\xdc\x14\x1b\x9c\x48\xa0\x55\x9b\x4f\xd3\x14\x2c\x88\x09\xdc\x13\x1a\x9c\x38\xa0\x44\x9b\x3e\xd3\x13\x2a\x88\x08\xdc\x25\x2e\xa8\x79\xd3\x25\x39\xd1\x08\x22\x88\x0b\x90\x51\x98\x0a\xdc\x23\x2c\xa8\x58\xd3\x23\x36\xd1\x08\x20\x88\x0a\x90\x41\x90\x79\xdc\x0b\x13\x90\x4b\xd3\x0b\x20\xa4\x48\xa8\x5a\xd3\x24\x38\xd2\x0b\x38\xdd\x12\x1c\xda\x10\x1a\x99\x4b\xf0\x03\x01\x1e\x29\xf3\x00\x01\x13\x2a\xf0\x00\x01\x0d\x2a\xf0\x06\x00\x22\x2c\xd7\x21\x31\xd1\x21\x31\xb0\x23\xd4\x21\x36\xd3\x15\x3c\xd1\x21\x36\x98\x41\xba\x21\x92\x61\xd0\x21\x36\x88\x0a\xd0\x15\x3c\xd8\x20\x29\xa7\x0f\xa1\x0f\xb0\x03\xd4\x20\x34\xd3\x14\x3a\xd1\x20\x34\x98\x31\xba\x01\x92\x51\xd0\x20\x34\x88\x09\xd0\x14\x3a\xe0\x0c\x0d\x88\x01\xdc\x16\x19\x98\x2a\xa0\x69\xd6\x16\x30\x89\x46\x88\x42\x90\x02\xdc\x0f\x17\x98\x02\x8b\x7c\x9c\x78\xa8\x02\x9b\x7c\xd2\x0f\x2b\xd9\x10\x15\xd8\x0c\x0d\x90\x11\x89\x46\x89\x41\xf0\x07\x00\x17\x31\xf0\x0a\x00\x15\x1b\x90\x38\x9c\x73\xa0\x3a\x9b\x7f\xa8\x71\xd1\x1f\x30\xd1\x13\x31\xb0\x49\xb8\x61\xb8\x62\xb0\x4d\xd1\x13\x41\x88\x08\xd9\x0f\x17\xd8\x13\x19\x88\x4d\xdc\x0f\x13\x90\x58\x88\x7f\xd0\x08\x1e\xf9\xf2\x19\x00\x16\x3d\xf9\xda\x14\x3a\xf8\xf4\x18\x00\x0d\x16\x94\x7a\xa4\x3e\xb4\x3c\xd4\x41\x53\xd0\x0b\x54\xf2\x00\x02\x05\x0e\xdc\x08\x13\xd7\x08\x24\xd1\x08\x24\xa0\x59\xb0\x04\xb0\x65\xd4\x08\x3c\xd8\x08\x0d\xf0\x05\x02\x05\x0e\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[63]; - } -ntpath_toplevel_consts_45_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 62, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x1a\x42\x01\x45\x2c\x00\xc3\x1b\x07\x45\x22\x04\xc3\x23\x04\x45\x22\x04\xc3\x27\x15\x45\x2c\x00\xc3\x3c\x07\x45\x27\x04\xc4\x04\x04\x45\x27\x04\xc4\x08\x41\x11\x45\x2c\x00\xc5\x1a\x07\x45\x2c\x00\xc5\x22\x0a\x45\x2c\x00\xc5\x2c\x37\x46\x23\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_start_abs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "start_abs", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_path_abs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "path_abs", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_start_drive = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "start_drive", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_start_rest = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "start_rest", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_path_drive = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "path_drive", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_path_rest = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "path_rest", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_start_list = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "start_list", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_path_list = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "path_list", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_e1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "e1", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_e2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "e2", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_rel_list = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "rel_list", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[19]; - }_object; - } -ntpath_toplevel_consts_45_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 19, - }, - .ob_item = { - &_Py_ID(path), - &_Py_ID(start), - &_Py_ID(sep), - & const_str_curdir._ascii.ob_base, - & const_str_pardir._ascii.ob_base, - & const_str_start_abs._ascii.ob_base, - & const_str_path_abs._ascii.ob_base, - & const_str_start_drive._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[95], - & const_str_start_rest._ascii.ob_base, - & const_str_path_drive._ascii.ob_base, - & const_str_path_rest._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[120], - & const_str_start_list._ascii.ob_base, - & const_str_path_list._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - & const_str_e1._ascii.ob_base, - & const_str_e2._ascii.ob_base, - & const_str_rel_list._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[20]; - } -ntpath_toplevel_consts_45_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 19, - }, - .ob_shash = -1, - .ob_sval = " ", -}; -static - struct _PyCode_DEF(844) -ntpath_toplevel_consts_45 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 422, - }, - .co_consts = & ntpath_toplevel_consts_45_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_45_names._object.ob_base.ob_base, - .co_exceptiontable = & ntpath_toplevel_consts_45_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 26 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 782, - .co_nlocalsplus = 19, - .co_nlocals = 19, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 575, - .co_localsplusnames = & ntpath_toplevel_consts_45_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & ntpath_toplevel_consts_45_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_relpath._ascii.ob_base, - .co_qualname = & const_str_relpath._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_45_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x07\x64\x01\x7d\x02\x64\x02\x7d\x03\x64\x03\x7d\x04\x6e\x06\x64\x04\x7d\x02\x64\x05\x7d\x03\x64\x06\x7d\x04\x7c\x01\x80\x02\x7c\x03\x7d\x01\x7c\x00\x73\x0b\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x09\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x07\x7d\x08\x7d\x09\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x0a\x7d\x08\x7d\x0b\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\xab\x01\x00\x00\x00\x00\x00\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\x11\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x7c\x0a\x9b\x02\x64\x0a\x7c\x07\x9b\x02\x9d\x04\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x09\x6a\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x8f\x0c\x63\x02\x67\x00\x63\x02\x5d\x07\x00\x00\x7d\x0c\x7c\x0c\x73\x01\x8c\x06\x7c\x0c\x91\x02\x8c\x09\x04\x00\x7d\x0d\x7d\x0c\x7c\x0b\x6a\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x8f\x0c\x63\x02\x67\x00\x63\x02\x5d\x07\x00\x00\x7d\x0c\x7c\x0c\x73\x01\x8c\x06\x7c\x0c\x91\x02\x8c\x09\x04\x00\x7d\x0e\x7d\x0c\x64\x0b\x7d\x0f\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\x7c\x0e\xab\x02\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x23\x00\x00\x5c\x02\x00\x00\x7d\x10\x7d\x11\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x10\xab\x01\x00\x00\x00\x00\x00\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x11\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\x02\x01\x00\x6e\x07\x7c\x0f\x64\x0c\x7a\x0d\x00\x00\x7d\x0f\x8c\x25\x04\x00\x7c\x04\x67\x01\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x0f\x7a\x0a\x00\x00\x7a\x05\x00\x00\x7c\x0e\x7c\x0f\x64\x07\x1a\x00\x7a\x00\x00\x00\x7d\x12\x7c\x12\x73\x02\x7c\x03\x53\x00\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x12\x8e\x00\x53\x00\x63\x02\x01\x00\x63\x02\x7d\x0c\x77\x00\x63\x02\x01\x00\x63\x02\x7d\x0c\x77\x00\x23\x00\x74\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x74\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x74\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x74\x20\x00\x00\x00\x00\x00\x00\x00\x00\x66\x05\x24\x00\x72\x19\x01\x00\x74\x23\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0d\x7c\x00\x7c\x01\xab\x03\x00\x00\x00\x00\x00\x00\x01\x00\x82\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[69]; - } -ntpath_toplevel_consts_46_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 68, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Given a sequence of path names, returns the longest common sub-path.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[38]; - } -ntpath_toplevel_consts_46_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 37, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "commonpath() arg is an empty sequence", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[38]; - } -ntpath_toplevel_consts_46_consts_10 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 37, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Can't mix absolute and relative paths", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -ntpath_toplevel_consts_46_consts_11 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Paths don't have the same drive", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[14]; - }_object; - } -ntpath_toplevel_consts_46_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 14, - }, - .ob_item = { - & ntpath_toplevel_consts_46_consts_0._ascii.ob_base, - & ntpath_toplevel_consts_46_consts_1._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_Py_SINGLETON(bytes_characters[92]), - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - (PyObject *)&_Py_SINGLETON(bytes_characters[46]), - (PyObject *)&_Py_SINGLETON(strings).ascii[92], - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - & ntpath_toplevel_consts_46_consts_10._ascii.ob_base, - & ntpath_toplevel_consts_46_consts_11._ascii.ob_base, - Py_None, - & const_str_commonpath._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[20]; - }_object; - } -ntpath_toplevel_consts_46_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 20, - }, - .ob_item = { - & const_str_ValueError._ascii.ob_base, - & const_str_tuple._ascii.ob_base, - & const_str_map._ascii.ob_base, - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_splitroot._ascii.ob_base, - &_Py_ID(replace), - & const_str_lower._ascii.ob_base, - & const_str_split._ascii.ob_base, - &_Py_ID(len), - & const_str_min._ascii.ob_base, - & const_str_max._ascii.ob_base, - & const_str_enumerate._ascii.ob_base, - &_Py_ID(join), - & const_str_TypeError._ascii.ob_base, - & const_str_AttributeError._ascii.ob_base, - & const_str_genericpath._ascii.ob_base, - & const_str__check_arg_types._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[558]; - } -ntpath_toplevel_consts_46_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 557, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf1\x06\x00\x0c\x11\xdc\x0e\x18\xd0\x19\x40\xd3\x0e\x41\xd0\x08\x41\xe4\x0c\x11\x94\x23\x94\x62\x97\x69\x91\x69\xa0\x15\xd3\x12\x27\xd3\x0c\x28\x80\x45\xdc\x07\x11\x90\x25\x98\x01\x91\x28\x9c\x45\xd4\x07\x22\xd8\x0e\x13\x88\x03\xd8\x11\x15\x88\x06\xd8\x11\x15\x89\x06\xe0\x0e\x12\x88\x03\xd8\x11\x14\x88\x06\xd8\x11\x14\x88\x06\xf0\x04\x1e\x05\x0e\xd9\x4a\x4f\xd3\x16\x50\xc9\x25\xc0\x51\x94\x79\xa0\x11\xa7\x19\xa1\x19\xa8\x36\xb0\x33\xd3\x21\x37\xd7\x21\x3d\xd1\x21\x3d\xd3\x21\x3f\xd5\x17\x40\xc8\x25\x88\x0b\xd0\x16\x50\xd9\x33\x3e\xd5\x16\x3f\xb1\x3b\xa9\x07\xa8\x01\xa8\x31\xa8\x61\x90\x71\x97\x77\x91\x77\x98\x73\x95\x7c\xb0\x3b\x88\x0b\xd2\x16\x3f\xe4\x0b\x0e\xa1\x1b\xd5\x0f\x2d\xa1\x1b\x91\x67\x90\x61\x98\x11\x98\x41\x92\x01\xa0\x1b\xd3\x0f\x2d\xd3\x0b\x2e\xb0\x21\xd2\x0b\x33\xdc\x12\x1c\xd0\x1d\x44\xd3\x12\x45\xd0\x0c\x45\xf4\x0a\x00\x0c\x0f\xa1\x1b\xd5\x0f\x2d\xa1\x1b\x91\x67\x90\x61\x98\x11\x98\x41\x92\x01\xa0\x1b\xd3\x0f\x2d\xd3\x0b\x2e\xb0\x21\xd2\x0b\x33\xdc\x12\x1c\xd0\x1d\x3e\xd3\x12\x3f\xd0\x0c\x3f\xe4\x1c\x25\xa0\x65\xa8\x41\xa1\x68\xd7\x26\x36\xd1\x26\x36\xb0\x76\xb8\x73\xd3\x26\x43\xd3\x1c\x44\xd1\x08\x19\x88\x05\x88\x74\x90\x54\xd8\x11\x15\x97\x1a\x91\x1a\x98\x43\x93\x1f\x88\x06\xd9\x1d\x23\xd3\x11\x39\x99\x56\x98\x01\xa2\x71\xa8\x51\xb0\x26\xab\x5b\x92\x21\x98\x56\x88\x06\xd0\x11\x39\xe1\x44\x4f\xd4\x16\x50\xc1\x4b\xb8\x71\xa1\x31\xd3\x17\x3a\xa1\x31\x98\x61\xaa\x01\xa8\x61\xb0\x36\xab\x6b\x9a\x01\xa0\x31\xd3\x17\x3a\xc0\x4b\x88\x0b\xd1\x16\x50\xdc\x0d\x10\x90\x1b\xd3\x0d\x1d\x88\x02\xdc\x0d\x10\x90\x1b\xd3\x0d\x1d\x88\x02\xdc\x14\x1d\x98\x62\x96\x4d\x89\x44\x88\x41\x88\x71\xd8\x0f\x10\x90\x42\x90\x71\x91\x45\x8b\x7a\xd8\x19\x1f\xa0\x02\xa0\x11\x98\x1a\x90\x06\xd9\x10\x15\xf0\x07\x00\x15\x22\xf0\x0a\x00\x16\x1c\x98\x48\x9c\x53\xa0\x12\x9b\x57\xd0\x15\x25\x88\x46\xe0\x0f\x14\x90\x74\x89\x7c\x98\x63\x9f\x68\x99\x68\xa0\x76\xd3\x1e\x2e\xd1\x0f\x2e\xd0\x08\x2e\xf9\xf2\x35\x00\x17\x51\x01\xf9\xdc\x16\x3f\xf9\xe4\x0f\x2d\xf9\xf4\x0c\x00\x10\x2e\xf9\xf2\x0a\x00\x12\x3a\xf9\xe2\x17\x3a\xf9\xd3\x16\x50\xf8\xf4\x16\x00\x0d\x16\x94\x7e\xd0\x0b\x26\xf2\x00\x02\x05\x0e\xdc\x08\x13\xd7\x08\x24\xd1\x08\x24\xa0\x5c\xd0\x08\x3a\xb0\x45\xd3\x08\x3a\xd8\x08\x0d\xf0\x05\x02\x05\x0e\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[146]; - } -ntpath_toplevel_consts_46_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 145, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x12\x04\x48\x06\x00\xc1\x16\x30\x47\x1c\x04\xc2\x06\x08\x48\x06\x00\xc2\x0e\x1c\x47\x21\x08\xc2\x2a\x0f\x48\x06\x00\xc2\x39\x0d\x47\x28\x0c\xc3\x06\x22\x48\x06\x00\xc3\x28\x0d\x47\x2f\x0c\xc3\x35\x41\x0e\x48\x06\x00\xc5\x03\x07\x47\x36\x04\xc5\x0b\x05\x47\x36\x04\xc5\x11\x04\x47\x36\x04\xc5\x15\x07\x48\x06\x00\xc5\x1c\x09\x48\x00\x06\xc5\x25\x07\x47\x3b\x0c\xc5\x2d\x05\x47\x3b\x0c\xc5\x33\x04\x47\x3b\x0c\xc5\x37\x05\x48\x00\x06\xc5\x3c\x32\x48\x06\x00\xc6\x2f\x2c\x48\x06\x00\xc7\x1c\x1f\x48\x06\x00\xc7\x3b\x05\x48\x00\x06\xc8\x00\x06\x48\x06\x00\xc8\x06\x27\x48\x2d\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_drivesplits = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "drivesplits", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_split_paths = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "split_paths", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_common = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "common", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[18]; - }_object; - } -ntpath_toplevel_consts_46_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 18, - }, - .ob_item = { - & const_str_paths._ascii.ob_base, - &_Py_ID(sep), - & const_str_altsep._ascii.ob_base, - & const_str_curdir._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - & const_str_drivesplits._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[100], - (PyObject *)&_Py_SINGLETON(strings).ascii[114], - & const_str_split_paths._ascii.ob_base, - & const_str_drive._ascii.ob_base, - & const_str_root._ascii.ob_base, - &_Py_ID(path), - & const_str_common._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[99], - (PyObject *)&_Py_SINGLETON(strings).ascii[115], - & const_str_s1._ascii.ob_base, - & const_str_s2._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -ntpath_toplevel_consts_46_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = " ", -}; -static - struct _PyCode_DEF(1120) -ntpath_toplevel_consts_46 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 560, - }, - .co_consts = & ntpath_toplevel_consts_46_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_46_names._object.ob_base.ob_base, - .co_exceptiontable = & ntpath_toplevel_consts_46_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 28 + FRAME_SPECIALS_SIZE, - .co_stacksize = 10, - .co_firstlineno = 838, - .co_nlocalsplus = 18, - .co_nlocals = 18, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 576, - .co_localsplusnames = & ntpath_toplevel_consts_46_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & ntpath_toplevel_consts_46_localspluskinds.ob_base.ob_base, - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_commonpath._ascii.ob_base, - .co_qualname = & const_str_commonpath._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_46_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x73\x0b\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x02\x19\x00\x00\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x07\x64\x03\x7d\x01\x64\x04\x7d\x02\x64\x05\x7d\x03\x6e\x06\x64\x06\x7d\x01\x64\x07\x7d\x02\x64\x08\x7d\x03\x09\x00\x7c\x00\x44\x00\x8f\x04\x63\x02\x67\x00\x63\x02\x5d\x2b\x00\x00\x7d\x04\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x6a\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x91\x02\x8c\x2d\x04\x00\x7d\x05\x7d\x04\x7c\x05\x44\x00\x8f\x06\x8f\x07\x8f\x04\x63\x04\x67\x00\x63\x02\x5d\x17\x00\x00\x5c\x03\x00\x00\x7d\x06\x7d\x07\x7d\x04\x7c\x04\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x91\x02\x8c\x19\x04\x00\x7d\x08\x7d\x07\x7d\x06\x7d\x04\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x44\x00\x8f\x06\x8f\x07\x8f\x04\x63\x04\x68\x00\x63\x02\x5d\x08\x00\x00\x5c\x03\x00\x00\x7d\x06\x7d\x07\x7d\x04\x7c\x07\x92\x02\x8c\x0a\x04\x00\x63\x04\x7d\x04\x7d\x07\x7d\x06\xab\x01\x00\x00\x00\x00\x00\x00\x64\x09\x6b\x37\x00\x00\x72\x0b\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0a\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x44\x00\x8f\x06\x8f\x07\x8f\x04\x63\x04\x68\x00\x63\x02\x5d\x08\x00\x00\x5c\x03\x00\x00\x7d\x06\x7d\x07\x7d\x04\x7c\x06\x92\x02\x8c\x0a\x04\x00\x63\x04\x7d\x04\x7d\x07\x7d\x06\xab\x01\x00\x00\x00\x00\x00\x00\x64\x09\x6b\x37\x00\x00\x72\x0b\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x02\x19\x00\x00\x00\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x09\x7d\x0a\x7d\x0b\x7c\x0b\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0c\x7c\x0c\x44\x00\x8f\x0d\x63\x02\x67\x00\x63\x02\x5d\x0d\x00\x00\x7d\x0d\x7c\x0d\x73\x01\x8c\x06\x7c\x0d\x7c\x03\x6b\x37\x00\x00\x73\x01\x8c\x0c\x7c\x0d\x91\x02\x8c\x0f\x04\x00\x7d\x0c\x7d\x0d\x7c\x08\x44\x00\x8f\x0e\x8f\x0d\x63\x03\x67\x00\x63\x02\x5d\x1b\x00\x00\x7d\x0e\x7c\x0e\x44\x00\x8f\x0d\x63\x02\x67\x00\x63\x02\x5d\x0d\x00\x00\x7d\x0d\x7c\x0d\x73\x01\x8c\x06\x7c\x0d\x7c\x03\x6b\x37\x00\x00\x73\x01\x8c\x0c\x7c\x0d\x91\x02\x8c\x0f\x04\x00\x63\x02\x7d\x0d\x91\x02\x8c\x1d\x04\x00\x7d\x08\x7d\x0e\x7d\x0d\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0f\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x10\x74\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0f\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x14\x00\x00\x5c\x02\x00\x00\x7d\x11\x7d\x0d\x7c\x0d\x7c\x10\x7c\x11\x19\x00\x00\x00\x6b\x37\x00\x00\x73\x01\x8c\x0f\x7c\x0c\x64\x0c\x7c\x11\x1a\x00\x7d\x0c\x01\x00\x6e\x0f\x04\x00\x7c\x0c\x64\x0c\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0f\xab\x01\x00\x00\x00\x00\x00\x00\x1a\x00\x7d\x0c\x7c\x09\x7c\x0a\x7a\x00\x00\x00\x7c\x01\x6a\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0c\xab\x01\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x53\x00\x63\x02\x01\x00\x63\x02\x7d\x04\x77\x00\x63\x02\x01\x00\x63\x04\x7d\x04\x7d\x07\x7d\x06\x77\x00\x63\x02\x01\x00\x63\x04\x7d\x04\x7d\x07\x7d\x06\x77\x00\x63\x02\x01\x00\x63\x04\x7d\x04\x7d\x07\x7d\x06\x77\x00\x63\x02\x01\x00\x63\x02\x7d\x0d\x77\x00\x63\x02\x01\x00\x63\x02\x7d\x0d\x77\x00\x63\x02\x01\x00\x63\x03\x7d\x0d\x7d\x0e\x77\x00\x23\x00\x74\x20\x00\x00\x00\x00\x00\x00\x00\x00\x74\x22\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x18\x01\x00\x74\x25\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0d\x67\x01\x7c\x00\xa2\x01\xad\x06\x8e\x00\x01\x00\x82\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_47 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__path_isdir._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_48 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__path_isfile._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str__path_islink = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_path_islink", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_49 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__path_islink._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str__path_exists = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_path_exists", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_50 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__path_exists._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__path_isdevdrive = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_path_isdevdrive", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -ntpath_toplevel_consts_51 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__path_isdevdrive._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[65]; - } -ntpath_toplevel_consts_52_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 64, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Determines whether the specified path is on a Windows Dev Drive.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -ntpath_toplevel_consts_52_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & ntpath_toplevel_consts_52_consts_0._ascii.ob_base, - Py_False, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -ntpath_toplevel_consts_52_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str__path_isdevdrive._ascii.ob_base, - & const_str_abspath._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_isdevdrive = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "isdevdrive", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[41]; - } -ntpath_toplevel_consts_52_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 40, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x03\x09\x19\xdc\x13\x23\xa4\x47\xa8\x44\xa3\x4d\xd3\x13\x32\xd0\x0c\x32\xf8\xdc\x0f\x16\xf2\x00\x01\x09\x19\xd9\x13\x18\xf0\x03\x01\x09\x19\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -ntpath_toplevel_consts_52_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x82\x13\x16\x00\x96\x09\x22\x03\xa1\x01\x22\x03", -}; -static - struct _PyCode_DEF(74) -ntpath_toplevel_consts_52 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 37, - }, - .co_consts = & ntpath_toplevel_consts_52_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_52_names._object.ob_base.ob_base, - .co_exceptiontable = & ntpath_toplevel_consts_52_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 908, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 577, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_isdevdrive._ascii.ob_base, - .co_qualname = & const_str_isdevdrive._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_52_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[8]; - } -ntpath_toplevel_consts_53_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 7, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x06\x00\x10\x15", -}; -static - struct _PyCode_DEF(4) -ntpath_toplevel_consts_53 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & ntpath_toplevel_consts_52_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 903, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 578, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = & const_str_isdevdrive._ascii.ob_base, - .co_qualname = & const_str_isdevdrive._ascii.ob_base, - .co_linetable = & ntpath_toplevel_consts_53_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[55]; - }_object; - } -ntpath_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 55, - }, - .ob_item = { - & ntpath_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - & ntpath_toplevel_consts_2._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[92], - (PyObject *)&_Py_SINGLETON(strings).ascii[59], - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - & ntpath_toplevel_consts_6._ascii.ob_base, - & const_str_nul._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & codecs_toplevel_consts_3._object.ob_base.ob_base, - & ntpath_toplevel_consts_11._object.ob_base.ob_base, - & ntpath_toplevel_consts_12.ob_base.ob_base, - & ntpath_toplevel_consts_13._object.ob_base.ob_base, - & ntpath_toplevel_consts_14.ob_base.ob_base, - & ntpath_toplevel_consts_15.ob_base.ob_base, - & ntpath_toplevel_consts_16.ob_base.ob_base, - & ntpath_toplevel_consts_17.ob_base.ob_base, - & ntpath_toplevel_consts_18.ob_base.ob_base, - & ntpath_toplevel_consts_19.ob_base.ob_base, - & ntpath_toplevel_consts_20.ob_base.ob_base, - & ntpath_toplevel_consts_21.ob_base.ob_base, - & ntpath_toplevel_consts_22.ob_base.ob_base, - & ntpath_toplevel_consts_23.ob_base.ob_base, - & const_str_st_reparse_tag._ascii.ob_base, - & ntpath_toplevel_consts_25.ob_base.ob_base, - & ntpath_toplevel_consts_26.ob_base.ob_base, - & ntpath_toplevel_consts_27.ob_base.ob_base, - & ntpath_toplevel_consts_28._object.ob_base.ob_base, - & ntpath_toplevel_consts_29.ob_base.ob_base, - & ntpath_toplevel_consts_30.ob_base.ob_base, - & ntpath_toplevel_consts_31.ob_base.ob_base, - & ntpath_toplevel_consts_32._object.ob_base.ob_base, - & ntpath_toplevel_consts_33.ob_base.ob_base, - & ntpath_toplevel_consts_34._object.ob_base.ob_base, - & ntpath_toplevel_consts_35.ob_base.ob_base, - & ntpath_toplevel_consts_36.ob_base.ob_base, - & ntpath_toplevel_consts_37._object.ob_base.ob_base, - & ntpath_toplevel_consts_38.ob_base.ob_base, - & ntpath_toplevel_consts_39.ob_base.ob_base, - Py_False, - & codecs_toplevel_consts_14_consts_5._object.ob_base.ob_base, - & ntpath_toplevel_consts_42.ob_base.ob_base, - & ntpath_toplevel_consts_43.ob_base.ob_base, - Py_True, - & ntpath_toplevel_consts_45.ob_base.ob_base, - & ntpath_toplevel_consts_46.ob_base.ob_base, - & ntpath_toplevel_consts_47._object.ob_base.ob_base, - & ntpath_toplevel_consts_48._object.ob_base.ob_base, - & ntpath_toplevel_consts_49._object.ob_base.ob_base, - & ntpath_toplevel_consts_50._object.ob_base.ob_base, - & ntpath_toplevel_consts_51._object.ob_base.ob_base, - & ntpath_toplevel_consts_52.ob_base.ob_base, - & ntpath_toplevel_consts_53.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str__winapi = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_winapi", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_stat_result = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "stat_result", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[66]; - }_object; - } -ntpath_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 66, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str_curdir._ascii.ob_base, - & const_str_pardir._ascii.ob_base, - & const_str_extsep._ascii.ob_base, - &_Py_ID(sep), - & const_str_pathsep._ascii.ob_base, - & const_str_altsep._ascii.ob_base, - & const_str_defpath._ascii.ob_base, - & const_str_devnull._ascii.ob_base, - & const_str_os._ascii.ob_base, - & const_str_sys._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_genericpath._ascii.ob_base, - &_Py_ID(__all__), - & const_str__get_bothseps._ascii.ob_base, - & const_str__winapi._ascii.ob_base, - & const_str_LCMapStringEx._ascii.ob_base, - & const_str__LCMapStringEx._ascii.ob_base, - & const_str_LOCALE_NAME_INVARIANT._ascii.ob_base, - & const_str__LOCALE_NAME_INVARIANT._ascii.ob_base, - & const_str_LCMAP_LOWERCASE._ascii.ob_base, - & const_str__LCMAP_LOWERCASE._ascii.ob_base, - & const_str_normcase._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - & const_str_isabs._ascii.ob_base, - &_Py_ID(join), - & const_str_splitdrive._ascii.ob_base, - & const_str_splitroot._ascii.ob_base, - & const_str_split._ascii.ob_base, - & const_str_splitext._ascii.ob_base, - & const_str__splitext._ascii.ob_base, - & const_str_basename._ascii.ob_base, - & const_str_dirname._ascii.ob_base, - & const_str_hasattr._ascii.ob_base, - & const_str_stat_result._ascii.ob_base, - & const_str_isjunction._ascii.ob_base, - & const_str_lexists._ascii.ob_base, - &_Py_ID(nt), - & const_str__getvolumepathname._ascii.ob_base, - & const_str_ismount._ascii.ob_base, - & const_str_expanduser._ascii.ob_base, - & const_str_expandvars._ascii.ob_base, - & const_str__path_normpath._ascii.ob_base, - & const_str_normpath._ascii.ob_base, - & const_str__getfullpathname._ascii.ob_base, - & const_str_abspath._ascii.ob_base, - & const_str__getfinalpathname._ascii.ob_base, - & const_str_readlink._ascii.ob_base, - & const_str__nt_readlink._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str__readlink_deep._ascii.ob_base, - & const_str__getfinalpathname_nonstrict._ascii.ob_base, - & const_str_realpath._ascii.ob_base, - & const_str_supports_unicode_filenames._ascii.ob_base, - & const_str_relpath._ascii.ob_base, - & const_str_commonpath._ascii.ob_base, - & const_str__path_isdir._ascii.ob_base, - & const_str_isdir._ascii.ob_base, - & const_str__path_isfile._ascii.ob_base, - & const_str_isfile._ascii.ob_base, - & const_str__path_islink._ascii.ob_base, - & const_str_islink._ascii.ob_base, - & const_str__path_exists._ascii.ob_base, - & const_str_exists._ascii.ob_base, - & const_str__path_isdevdrive._ascii.ob_base, - & const_str_isdevdrive._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[498]; - } -ntpath_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 497, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x04\x04\x01\x04\xf0\x12\x00\x0a\x0d\x80\x06\xd8\x09\x0d\x80\x06\xd8\x09\x0c\x80\x06\xd8\x06\x0a\x80\x03\xd8\x0a\x0d\x80\x07\xd8\x09\x0c\x80\x06\xd8\x0a\x15\x80\x07\xd8\x0a\x0f\x80\x07\xe3\x00\x09\xdb\x00\x0a\xdb\x00\x0b\xdb\x00\x12\xdc\x00\x19\xf2\x06\x07\x0b\x1c\x80\x07\xf2\x12\x04\x01\x15\xf0\x14\x21\x01\x2c\xf7\x02\x03\x05\x2d\xf1\x00\x03\x05\x2d\xf2\x0a\x11\x05\x38\xf2\x48\x01\x10\x01\x11\xf2\x28\x2b\x01\x0e\xf2\x62\x01\x14\x01\x1e\xf2\x2e\x31\x01\x1f\xf2\x72\x01\x0d\x01\x2b\xf2\x2a\x05\x01\x38\xf0\x0c\x00\x14\x1f\xd7\x13\x28\xd1\x13\x28\xd7\x13\x30\xd1\x13\x30\x80\x08\xd4\x00\x10\xf2\x0a\x02\x01\x17\xf2\x0e\x02\x01\x17\xf1\x0e\x00\x04\x0b\x88\x32\x8f\x3e\x89\x3e\xd0\x1b\x2b\xd4\x03\x2c\xf3\x02\x06\x05\x4a\x01\xf2\x10\x03\x05\x15\xf2\x10\x06\x01\x10\xf0\x24\x03\x01\x1e\xdd\x04\x25\xf2\x06\x11\x01\x15\xf2\x3a\x2d\x01\x1f\xf2\x7a\x01\x6a\x01\x01\x0f\xf0\x60\x03\x26\x01\x28\xdd\x04\x2d\xf0\x52\x01\x29\x01\x1e\xdd\x04\x23\xf2\x1e\x19\x05\x1e\xf0\x36\x67\x02\x01\x14\xdf\x04\x3e\xf0\x0c\x00\x2c\x33\xf3\x00\x28\x05\x14\xf0\x54\x01\x00\x39\x40\x01\xf3\x00\x30\x05\x14\xf0\x64\x01\x00\x22\x27\xf4\x00\x44\x01\x05\x14\xf0\x50\x02\x00\x1e\x22\xd0\x00\x1a\xf3\x04\x2b\x01\x0e\xf2\x70\x01\x2e\x01\x0e\xf0\x62\x01\x0a\x01\x09\xf5\x08\x00\x05\x28\xdd\x04\x29\xdd\x04\x29\xdd\x04\x29\xf0\x0c\x0d\x01\x19\xdd\x04\x23\xf3\x0e\x05\x05\x19\xf8\xf0\x4d\x1a\x00\x08\x13\xf2\x00\x09\x01\x2c\xf4\x02\x08\x05\x2c\xf0\x03\x09\x01\x2c\xfb\xf0\x74\x07\x00\x08\x13\xf2\x00\x01\x01\x1e\xd8\x19\x1d\xd2\x04\x16\xf0\x03\x01\x01\x1e\xfb\xf0\x5e\x06\x00\x08\x13\xf2\x00\x23\x01\x28\xf4\x02\x22\x05\x28\xf0\x03\x23\x01\x28\xfb\xf0\x54\x01\x00\x08\x13\xf2\x00\x0a\x01\x1e\xf4\x02\x09\x05\x1e\xf0\x03\x0a\x01\x1e\xfb\xf0\x54\x01\x00\x08\x13\xf2\x00\x03\x01\x1d\xe0\x21\x26\xf6\x00\x01\x05\x1d\xf0\x05\x03\x01\x1d\xfb\xf0\x78\x08\x00\x08\x13\xf2\x00\x02\x01\x09\xe1\x04\x08\xf0\x05\x02\x01\x09\xfb\xf0\x0e\x00\x08\x13\xf2\x00\x04\x01\x15\xf4\x02\x03\x05\x15\xf0\x03\x04\x01\x15\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[126]; - } -ntpath_toplevel_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 125, - }, - .ob_shash = -1, - .ob_sval = "\xb0\x0d\x43\x34\x00\xc2\x0e\x06\x44\x02\x00\xc2\x1e\x06\x44\x0f\x00\xc2\x25\x06\x44\x1d\x00\xc2\x2f\x08\x44\x2b\x00\xc3\x11\x18\x44\x3c\x00\xc3\x2a\x06\x45\x07\x00\xc3\x34\x08\x43\x3f\x03\xc3\x3e\x01\x43\x3f\x03\xc4\x02\x07\x44\x0c\x03\xc4\x0b\x01\x44\x0c\x03\xc4\x0f\x08\x44\x1a\x03\xc4\x19\x01\x44\x1a\x03\xc4\x1d\x08\x44\x28\x03\xc4\x27\x01\x44\x28\x03\xc4\x2b\x0b\x44\x39\x03\xc4\x38\x01\x44\x39\x03\xc4\x3c\x05\x45\x04\x03\xc5\x03\x01\x45\x04\x03\xc5\x07\x08\x45\x12\x03\xc5\x11\x01\x45\x12\x03", -}; -static - struct _PyCode_DEF(682) -ntpath_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 341, - }, - .co_consts = & ntpath_toplevel_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = & ntpath_toplevel_exceptiontable.ob_base.ob_base, - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 579, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & ntpath_toplevel_consts_12_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & ntpath_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x5a\x01\x64\x02\x5a\x02\x64\x01\x5a\x03\x64\x03\x5a\x04\x64\x04\x5a\x05\x64\x05\x5a\x06\x64\x06\x5a\x07\x64\x07\x5a\x08\x64\x08\x64\x09\x6c\x09\x5a\x09\x64\x08\x64\x09\x6c\x0a\x5a\x0a\x64\x08\x64\x09\x6c\x0b\x5a\x0b\x64\x08\x64\x09\x6c\x0c\x5a\x0c\x64\x08\x64\x0a\x6c\x0c\xad\x02\x01\x00\x67\x00\x64\x0b\xa2\x01\x5a\x0d\x64\x0c\x84\x00\x5a\x0e\x09\x00\x64\x08\x64\x0d\x6c\x0f\x6d\x10\x5a\x11\x6d\x12\x5a\x13\x6d\x14\x5a\x15\x01\x00\x64\x0e\x84\x00\x5a\x16\x64\x10\x84\x00\x5a\x18\x64\x11\x84\x00\x5a\x19\x64\x12\x84\x00\x5a\x1a\x64\x13\x84\x00\x5a\x1b\x64\x14\x84\x00\x5a\x1c\x64\x15\x84\x00\x5a\x1d\x65\x0c\x6a\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x1d\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x16\x84\x00\x5a\x1f\x64\x17\x84\x00\x5a\x20\x02\x00\x65\x21\x65\x09\x6a\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x18\xab\x02\x00\x00\x00\x00\x00\x00\x72\x04\x64\x19\x84\x00\x5a\x23\x6e\x03\x64\x1a\x84\x00\x5a\x23\x64\x1b\x84\x00\x5a\x24\x09\x00\x64\x08\x64\x1c\x6c\x25\x6d\x26\x5a\x26\x01\x00\x64\x1d\x84\x00\x5a\x27\x64\x1e\x84\x00\x5a\x28\x64\x1f\x84\x00\x5a\x29\x09\x00\x64\x08\x64\x20\x6c\x25\x6d\x2a\x5a\x2b\x01\x00\x09\x00\x64\x08\x64\x22\x6c\x25\x6d\x2c\x5a\x2c\x01\x00\x64\x23\x84\x00\x5a\x2d\x09\x00\x64\x08\x64\x25\x6c\x25\x6d\x2e\x5a\x2e\x6d\x2f\x5a\x30\x01\x00\x65\x31\x66\x01\x64\x26\x84\x01\x5a\x32\x65\x31\x66\x01\x64\x27\x84\x01\x5a\x33\x64\x28\x64\x29\x9c\x01\x64\x2a\x84\x02\x5a\x34\x64\x2c\x5a\x35\x64\x36\x64\x2d\x84\x01\x5a\x36\x64\x2e\x84\x00\x5a\x37\x09\x00\x64\x08\x64\x2f\x6c\x25\x6d\x38\x5a\x39\x01\x00\x64\x08\x64\x30\x6c\x25\x6d\x3a\x5a\x3b\x01\x00\x64\x08\x64\x31\x6c\x25\x6d\x3c\x5a\x3d\x01\x00\x64\x08\x64\x32\x6c\x25\x6d\x3e\x5a\x3f\x01\x00\x09\x00\x64\x08\x64\x33\x6c\x25\x6d\x40\x5a\x40\x01\x00\x64\x34\x84\x00\x5a\x41\x79\x09\x23\x00\x65\x17\x24\x00\x72\x06\x01\x00\x64\x0f\x84\x00\x5a\x16\x59\x00\x8c\xc1\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x65\x17\x24\x00\x72\x05\x01\x00\x64\x09\x5a\x26\x59\x00\x8c\x77\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x65\x17\x24\x00\x72\x06\x01\x00\x64\x21\x84\x00\x5a\x2b\x59\x00\x8c\x75\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x65\x17\x24\x00\x72\x06\x01\x00\x64\x24\x84\x00\x5a\x2d\x59\x00\x8c\x79\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x65\x17\x24\x00\x72\x09\x01\x00\x64\x28\x64\x29\x9c\x01\x64\x2b\x84\x02\x5a\x34\x59\x00\x8c\x71\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x65\x17\x24\x00\x72\x03\x01\x00\x59\x00\x8c\x5a\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x65\x17\x24\x00\x72\x06\x01\x00\x64\x35\x84\x00\x5a\x41\x59\x00\x79\x09\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_ntpath_toplevel(void) -{ - return Py_NewRef((PyObject *) &ntpath_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[474]; - } -posixpath_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 473, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x43\x6f\x6d\x6d\x6f\x6e\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x73\x20\x6f\x6e\x20\x50\x6f\x73\x69\x78\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x73\x2e\x0a\x0a\x49\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x69\x6d\x70\x6f\x72\x74\x69\x6e\x67\x20\x74\x68\x69\x73\x20\x6d\x6f\x64\x75\x6c\x65\x20\x64\x69\x72\x65\x63\x74\x6c\x79\x2c\x20\x69\x6d\x70\x6f\x72\x74\x20\x6f\x73\x20\x61\x6e\x64\x20\x72\x65\x66\x65\x72\x20\x74\x6f\x0a\x74\x68\x69\x73\x20\x6d\x6f\x64\x75\x6c\x65\x20\x61\x73\x20\x6f\x73\x2e\x70\x61\x74\x68\x2e\x20\x20\x54\x68\x65\x20\x22\x6f\x73\x2e\x70\x61\x74\x68\x22\x20\x6e\x61\x6d\x65\x20\x69\x73\x20\x61\x6e\x20\x61\x6c\x69\x61\x73\x20\x66\x6f\x72\x20\x74\x68\x69\x73\x0a\x6d\x6f\x64\x75\x6c\x65\x20\x6f\x6e\x20\x50\x6f\x73\x69\x78\x20\x73\x79\x73\x74\x65\x6d\x73\x3b\x20\x6f\x6e\x20\x6f\x74\x68\x65\x72\x20\x73\x79\x73\x74\x65\x6d\x73\x20\x28\x65\x2e\x67\x2e\x20\x57\x69\x6e\x64\x6f\x77\x73\x29\x2c\x0a\x6f\x73\x2e\x70\x61\x74\x68\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x73\x20\x69\x6e\x20\x61\x20\x6d\x61\x6e\x6e\x65\x72\x20\x73\x70\x65\x63\x69\x66\x69\x63\x20\x74\x6f\x20\x74\x68\x61\x74\x0a\x70\x6c\x61\x74\x66\x6f\x72\x6d\x2c\x20\x61\x6e\x64\x20\x69\x73\x20\x61\x6e\x20\x61\x6c\x69\x61\x73\x20\x74\x6f\x20\x61\x6e\x6f\x74\x68\x65\x72\x20\x6d\x6f\x64\x75\x6c\x65\x20\x28\x65\x2e\x67\x2e\x20\x6e\x74\x70\x61\x74\x68\x29\x2e\x0a\x0a\x53\x6f\x6d\x65\x20\x6f\x66\x20\x74\x68\x69\x73\x20\x63\x61\x6e\x20\x61\x63\x74\x75\x61\x6c\x6c\x79\x20\x62\x65\x20\x75\x73\x65\x66\x75\x6c\x20\x6f\x6e\x20\x6e\x6f\x6e\x2d\x50\x6f\x73\x69\x78\x20\x73\x79\x73\x74\x65\x6d\x73\x20\x74\x6f\x6f\x2c\x20\x65\x2e\x67\x2e\x0a\x66\x6f\x72\x20\x6d\x61\x6e\x69\x70\x75\x6c\x61\x74\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x6f\x66\x20\x55\x52\x4c\x73\x2e\x0a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -posixpath_toplevel_consts_5 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "/bin:/usr/bin", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -posixpath_toplevel_consts_7 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "/dev/null", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[41]; - }_object; - } -posixpath_toplevel_consts_10 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 41, - }, - .ob_item = { - & const_str_normcase._ascii.ob_base, - & const_str_isabs._ascii.ob_base, - &_Py_ID(join), - & const_str_splitdrive._ascii.ob_base, - & const_str_splitroot._ascii.ob_base, - & const_str_split._ascii.ob_base, - & const_str_splitext._ascii.ob_base, - & const_str_basename._ascii.ob_base, - & const_str_dirname._ascii.ob_base, - & const_str_commonprefix._ascii.ob_base, - & const_str_getsize._ascii.ob_base, - & const_str_getmtime._ascii.ob_base, - & const_str_getatime._ascii.ob_base, - & const_str_getctime._ascii.ob_base, - & const_str_islink._ascii.ob_base, - & const_str_exists._ascii.ob_base, - & const_str_lexists._ascii.ob_base, - & const_str_isdir._ascii.ob_base, - & const_str_isfile._ascii.ob_base, - & const_str_ismount._ascii.ob_base, - & const_str_expanduser._ascii.ob_base, - & const_str_expandvars._ascii.ob_base, - & const_str_normpath._ascii.ob_base, - & const_str_abspath._ascii.ob_base, - & const_str_samefile._ascii.ob_base, - & const_str_sameopenfile._ascii.ob_base, - & const_str_samestat._ascii.ob_base, - & const_str_curdir._ascii.ob_base, - & const_str_pardir._ascii.ob_base, - &_Py_ID(sep), - & const_str_pathsep._ascii.ob_base, - & const_str_defpath._ascii.ob_base, - & const_str_altsep._ascii.ob_base, - & const_str_extsep._ascii.ob_base, - & const_str_devnull._ascii.ob_base, - & const_str_realpath._ascii.ob_base, - & const_str_supports_unicode_filenames._ascii.ob_base, - & const_str_relpath._ascii.ob_base, - & const_str_commonpath._ascii.ob_base, - & const_str_isjunction._ascii.ob_base, - & const_str_ALLOW_MISSING._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -posixpath_toplevel_consts_11_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -posixpath_toplevel_consts_11_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str__get_sep = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_sep", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -posixpath_toplevel_consts_11_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xd8\x0f\x13\xe0\x0f\x12", -}; -static - struct _PyCode_DEF(38) -posixpath_toplevel_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 19, - }, - .co_consts = & posixpath_toplevel_consts_11_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 41, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 580, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str__get_sep._ascii.ob_base, - .co_qualname = & const_str__get_sep._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_11_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x01\x79\x01\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[55]; - } -posixpath_toplevel_consts_12_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 54, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Normalize case of pathname. Has no effect under Posix", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -posixpath_toplevel_consts_12_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & posixpath_toplevel_consts_12_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[17]; - } -posixpath_toplevel_consts_12_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 16, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x0d\x8f\x39\x89\x39\x90\x51\x8b\x3c\xd0\x04\x17", -}; -static - struct _PyCode_DEF(44) -posixpath_toplevel_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & posixpath_toplevel_consts_12_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_26_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 52, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 581, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_normcase._ascii.ob_base, - .co_qualname = & const_str_normcase._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -posixpath_toplevel_consts_13_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & ntpath_toplevel_consts_16_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -posixpath_toplevel_consts_13_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - & const_str__get_sep._ascii.ob_base, - & const_str_startswith._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[40]; - } -posixpath_toplevel_consts_13_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 39, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x08\x0a\x8f\x09\x89\x09\x90\x21\x8b\x0c\x80\x41\xdc\x0a\x12\x90\x31\x8b\x2b\x80\x43\xd8\x0b\x0c\x8f\x3c\x89\x3c\x98\x03\xd3\x0b\x1c\xd0\x04\x1c", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -posixpath_toplevel_consts_13_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[115], - &_Py_ID(sep), - }, - }, -}; -static - struct _PyCode_DEF(100) -posixpath_toplevel_consts_13 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 50, - }, - .co_consts = & posixpath_toplevel_consts_13_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_13_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 60, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 582, - .co_localsplusnames = & posixpath_toplevel_consts_13_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_isabs._ascii.ob_base, - .co_qualname = & const_str_isabs._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_13_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[231]; - } -posixpath_toplevel_consts_14_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 230, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x4a\x6f\x69\x6e\x20\x74\x77\x6f\x20\x6f\x72\x20\x6d\x6f\x72\x65\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x2c\x20\x69\x6e\x73\x65\x72\x74\x69\x6e\x67\x20\x27\x2f\x27\x20\x61\x73\x20\x6e\x65\x65\x64\x65\x64\x2e\x0a\x20\x20\x20\x20\x49\x66\x20\x61\x6e\x79\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x69\x73\x20\x61\x6e\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x20\x70\x61\x74\x68\x2c\x20\x61\x6c\x6c\x20\x70\x72\x65\x76\x69\x6f\x75\x73\x20\x70\x61\x74\x68\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x0a\x20\x20\x20\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x64\x69\x73\x63\x61\x72\x64\x65\x64\x2e\x20\x20\x41\x6e\x20\x65\x6d\x70\x74\x79\x20\x6c\x61\x73\x74\x20\x70\x61\x72\x74\x20\x77\x69\x6c\x6c\x20\x72\x65\x73\x75\x6c\x74\x20\x69\x6e\x20\x61\x20\x70\x61\x74\x68\x20\x74\x68\x61\x74\x0a\x20\x20\x20\x20\x65\x6e\x64\x73\x20\x77\x69\x74\x68\x20\x61\x20\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x2e", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -posixpath_toplevel_consts_14_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & posixpath_toplevel_consts_14_consts_0._ascii.ob_base, - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - &_Py_ID(join), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -posixpath_toplevel_consts_14_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - & const_str__get_sep._ascii.ob_base, - & const_str_map._ascii.ob_base, - & const_str_startswith._ascii.ob_base, - & const_str_endswith._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - & const_str_AttributeError._ascii.ob_base, - & const_str_BytesWarning._ascii.ob_base, - & const_str_genericpath._ascii.ob_base, - & const_str__check_arg_types._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[182]; - } -posixpath_toplevel_consts_14_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 181, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0a\x00\x09\x0b\x8f\x09\x89\x09\x90\x21\x8b\x0c\x80\x41\xdc\x0a\x12\x90\x31\x8b\x2b\x80\x43\xd8\x0b\x0c\x80\x44\xf0\x02\x0c\x05\x0e\xd9\x0f\x10\xd8\x0c\x10\x90\x12\x90\x21\x88\x48\x90\x73\x8a\x4e\xdc\x11\x14\x94\x52\x97\x59\x91\x59\xa0\x01\xd6\x11\x22\x88\x41\xd8\x0f\x10\x8f\x7c\x89\x7c\x98\x43\xd4\x0f\x20\xd8\x17\x18\x91\x04\xd9\x15\x19\x98\x54\x9f\x5d\x99\x5d\xa8\x33\xd4\x1d\x2f\xd8\x10\x14\x98\x01\x91\x09\x91\x04\xe0\x10\x14\x98\x03\x98\x61\x99\x07\x91\x0f\x91\x04\xf1\x0d\x00\x12\x23\xf0\x14\x00\x0c\x10\x80\x4b\xf8\xf4\x07\x00\x0d\x16\x94\x7e\xa4\x7c\xd0\x0b\x34\xf2\x00\x02\x05\x0e\xdc\x08\x13\xd7\x08\x24\xd1\x08\x24\xa0\x56\xa8\x51\xd0\x08\x33\xb0\x11\xd3\x08\x33\xd8\x08\x0d\xf0\x05\x02\x05\x0e\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -posixpath_toplevel_consts_14_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\xa4\x41\x1e\x42\x05\x00\xc2\x05\x2d\x42\x32\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -posixpath_toplevel_consts_14_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[97], - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - &_Py_ID(sep), - &_Py_ID(path), - (PyObject *)&_Py_SINGLETON(strings).ascii[98], - }, - }, -}; -static - struct _PyCode_DEF(362) -posixpath_toplevel_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 181, - }, - .co_consts = & posixpath_toplevel_consts_14_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_14_names._object.ob_base.ob_base, - .co_exceptiontable = & posixpath_toplevel_consts_14_exceptiontable.ob_base.ob_base, - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 71, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 583, - .co_localsplusnames = & posixpath_toplevel_consts_14_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = &_Py_ID(join), - .co_qualname = &_Py_ID(join), - .co_linetable = & posixpath_toplevel_consts_14_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x00\x7d\x03\x09\x00\x7c\x01\x73\x08\x7c\x03\x64\x01\x64\x02\x1a\x00\x7c\x02\x7a\x00\x00\x00\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x37\x00\x00\x7d\x04\x7c\x04\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x72\x03\x7c\x04\x7d\x03\x8c\x17\x7c\x03\x72\x11\x7c\x03\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x72\x06\x7c\x03\x7c\x04\x7a\x0d\x00\x00\x7d\x03\x8c\x30\x7c\x03\x7c\x02\x7c\x04\x7a\x00\x00\x00\x7a\x0d\x00\x00\x7d\x03\x8c\x39\x04\x00\x09\x00\x7c\x03\x53\x00\x23\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\x66\x03\x24\x00\x72\x19\x01\x00\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x7c\x00\x67\x02\x7c\x01\xa2\x01\xad\x06\x8e\x00\x01\x00\x82\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[129]; - } -posixpath_toplevel_consts_15_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 128, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x70\x6c\x69\x74\x20\x61\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x2e\x20\x20\x52\x65\x74\x75\x72\x6e\x73\x20\x74\x75\x70\x6c\x65\x20\x22\x28\x68\x65\x61\x64\x2c\x20\x74\x61\x69\x6c\x29\x22\x20\x77\x68\x65\x72\x65\x20\x22\x74\x61\x69\x6c\x22\x20\x69\x73\x0a\x20\x20\x20\x20\x65\x76\x65\x72\x79\x74\x68\x69\x6e\x67\x20\x61\x66\x74\x65\x72\x20\x74\x68\x65\x20\x66\x69\x6e\x61\x6c\x20\x73\x6c\x61\x73\x68\x2e\x20\x20\x45\x69\x74\x68\x65\x72\x20\x70\x61\x72\x74\x20\x6d\x61\x79\x20\x62\x65\x20\x65\x6d\x70\x74\x79\x2e", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -posixpath_toplevel_consts_15_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & posixpath_toplevel_consts_15_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -posixpath_toplevel_consts_15_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - & const_str__get_sep._ascii.ob_base, - & const_str_rfind._ascii.ob_base, - &_Py_ID(len), - & const_str_rstrip._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[108]; - } -posixpath_toplevel_consts_15_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 107, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x09\x0b\x8f\x09\x89\x09\x90\x21\x8b\x0c\x80\x41\xdc\x0a\x12\x90\x31\x8b\x2b\x80\x43\xd8\x08\x09\x8f\x07\x89\x07\x90\x03\x8b\x0c\x90\x71\xd1\x08\x18\x80\x41\xd8\x11\x12\x90\x32\x90\x41\x90\x15\x98\x01\x98\x21\x98\x22\x98\x05\x88\x24\x80\x44\xd9\x07\x0b\x90\x04\x98\x03\x9c\x43\xa0\x04\x9b\x49\x99\x0d\xd2\x10\x25\xd8\x0f\x13\x8f\x7b\x89\x7b\x98\x33\xd3\x0f\x1f\x88\x04\xd8\x0b\x0f\x90\x14\x88\x3a\xd0\x04\x15", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -posixpath_toplevel_consts_15_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - &_Py_ID(sep), - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - & const_str_head._ascii.ob_base, - & const_str_tail._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(206) -posixpath_toplevel_consts_15 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 103, - }, - .co_consts = & posixpath_toplevel_consts_15_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_15_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 100, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 584, - .co_localsplusnames = & posixpath_toplevel_consts_15_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_split._ascii.ob_base, - .co_qualname = & const_str_split._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_15_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x7a\x00\x00\x00\x7d\x02\x7c\x00\x64\x02\x7c\x02\x1a\x00\x7c\x00\x7c\x02\x64\x02\x1a\x00\x7d\x04\x7d\x03\x7c\x03\x72\x22\x7c\x03\x7c\x01\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7a\x05\x00\x00\x6b\x37\x00\x00\x72\x11\x7c\x03\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x03\x7c\x04\x66\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -posixpath_toplevel_consts_16_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - Py_None, - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - (PyObject *)&_Py_SINGLETON(bytes_characters[46]), - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[69]; - } -posixpath_toplevel_consts_16_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 68, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x08\x0a\x8f\x09\x89\x09\x90\x21\x8b\x0c\x80\x41\xdc\x07\x11\x90\x21\x94\x55\xd4\x07\x1b\xd8\x0e\x12\x88\x03\xd8\x11\x15\x89\x06\xe0\x0e\x11\x88\x03\xd8\x11\x14\x88\x06\xdc\x0b\x16\xd7\x0b\x20\xd1\x0b\x20\xa0\x11\xa0\x43\xa8\x14\xa8\x76\xd3\x0b\x36\xd0\x04\x36", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -posixpath_toplevel_consts_16_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - &_Py_ID(sep), - & const_str_extsep._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(142) -posixpath_toplevel_consts_16 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 71, - }, - .co_consts = & posixpath_toplevel_consts_16_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_21_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 117, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 585, - .co_localsplusnames = & posixpath_toplevel_consts_16_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_splitext._ascii.ob_base, - .co_qualname = & const_str_splitext._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_16_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x05\x64\x01\x7d\x01\x64\x02\x7d\x02\x6e\x04\x64\x03\x7d\x01\x64\x04\x7d\x02\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x64\x00\x7c\x02\xab\x04\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[75]; - } -posixpath_toplevel_consts_17_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 74, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x70\x6c\x69\x74\x20\x61\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x69\x6e\x74\x6f\x20\x64\x72\x69\x76\x65\x20\x61\x6e\x64\x20\x70\x61\x74\x68\x2e\x20\x4f\x6e\x20\x50\x6f\x73\x69\x78\x2c\x20\x64\x72\x69\x76\x65\x20\x69\x73\x20\x61\x6c\x77\x61\x79\x73\x0a\x20\x20\x20\x20\x65\x6d\x70\x74\x79\x2e", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -posixpath_toplevel_consts_17_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & posixpath_toplevel_consts_17_consts_0._ascii.ob_base, - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[33]; - } -posixpath_toplevel_consts_17_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 32, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x09\x0b\x8f\x09\x89\x09\x90\x21\x8b\x0c\x80\x41\xd8\x0b\x0c\x88\x52\x88\x61\x88\x35\x90\x21\x88\x38\x80\x4f", -}; -static - struct _PyCode_DEF(58) -posixpath_toplevel_consts_17 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 29, - }, - .co_consts = & posixpath_toplevel_consts_17_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_26_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 131, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 586, - .co_localsplusnames = & ntpath_toplevel_consts_21_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_splitdrive._ascii.ob_base, - .co_qualname = & const_str_splitdrive._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_17_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x7c\x00\x64\x01\x64\x02\x1a\x00\x7c\x00\x66\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[422]; - } -posixpath_toplevel_consts_18_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 421, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x53\x70\x6c\x69\x74\x20\x61\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x69\x6e\x74\x6f\x20\x64\x72\x69\x76\x65\x2c\x20\x72\x6f\x6f\x74\x20\x61\x6e\x64\x20\x74\x61\x69\x6c\x2e\x20\x4f\x6e\x20\x50\x6f\x73\x69\x78\x2c\x20\x64\x72\x69\x76\x65\x20\x69\x73\x20\x61\x6c\x77\x61\x79\x73\x0a\x20\x20\x20\x20\x65\x6d\x70\x74\x79\x3b\x20\x74\x68\x65\x20\x72\x6f\x6f\x74\x20\x6d\x61\x79\x20\x62\x65\x20\x65\x6d\x70\x74\x79\x2c\x20\x61\x20\x73\x69\x6e\x67\x6c\x65\x20\x73\x6c\x61\x73\x68\x2c\x20\x6f\x72\x20\x74\x77\x6f\x20\x73\x6c\x61\x73\x68\x65\x73\x2e\x20\x54\x68\x65\x20\x74\x61\x69\x6c\x0a\x20\x20\x20\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x61\x6e\x79\x74\x68\x69\x6e\x67\x20\x61\x66\x74\x65\x72\x20\x74\x68\x65\x20\x72\x6f\x6f\x74\x2e\x20\x46\x6f\x72\x20\x65\x78\x61\x6d\x70\x6c\x65\x3a\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x6c\x69\x74\x72\x6f\x6f\x74\x28\x27\x66\x6f\x6f\x2f\x62\x61\x72\x27\x29\x20\x3d\x3d\x20\x28\x27\x27\x2c\x20\x27\x27\x2c\x20\x27\x66\x6f\x6f\x2f\x62\x61\x72\x27\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x6c\x69\x74\x72\x6f\x6f\x74\x28\x27\x2f\x66\x6f\x6f\x2f\x62\x61\x72\x27\x29\x20\x3d\x3d\x20\x28\x27\x27\x2c\x20\x27\x2f\x27\x2c\x20\x27\x66\x6f\x6f\x2f\x62\x61\x72\x27\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x6c\x69\x74\x72\x6f\x6f\x74\x28\x27\x2f\x2f\x66\x6f\x6f\x2f\x62\x61\x72\x27\x29\x20\x3d\x3d\x20\x28\x27\x27\x2c\x20\x27\x2f\x2f\x27\x2c\x20\x27\x66\x6f\x6f\x2f\x62\x61\x72\x27\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x6c\x69\x74\x72\x6f\x6f\x74\x28\x27\x2f\x2f\x2f\x66\x6f\x6f\x2f\x62\x61\x72\x27\x29\x20\x3d\x3d\x20\x28\x27\x27\x2c\x20\x27\x2f\x27\x2c\x20\x27\x2f\x2f\x66\x6f\x6f\x2f\x62\x61\x72\x27\x29\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -posixpath_toplevel_consts_18_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & posixpath_toplevel_consts_18_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - (PyObject *)&_Py_SINGLETON(bytes_empty), - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - &_Py_STR(empty), - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 3], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -posixpath_toplevel_consts_18_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[144]; - } -posixpath_toplevel_consts_18_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 143, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x14\x00\x09\x0b\x8f\x09\x89\x09\x90\x21\x8b\x0c\x80\x41\xdc\x07\x11\x90\x21\x94\x55\xd4\x07\x1b\xd8\x0e\x12\x88\x03\xd8\x10\x13\x89\x05\xe0\x0e\x11\x88\x03\xd8\x10\x12\x88\x05\xd8\x07\x08\x88\x12\x88\x21\x80\x75\x90\x03\x82\x7c\xe0\x0f\x14\x90\x65\x98\x51\x88\x7f\xd0\x08\x1e\xd8\x09\x0a\x88\x31\x88\x51\x88\x16\x90\x33\x8a\x1d\x98\x21\x98\x41\x98\x61\x98\x26\xa0\x43\x9a\x2d\xe0\x0f\x14\x90\x63\x98\x31\x98\x51\x98\x52\x98\x35\xd0\x0f\x20\xd0\x08\x20\xf0\x08\x00\x10\x15\x90\x61\x98\x02\x98\x11\x90\x65\x98\x51\x98\x71\x98\x72\x98\x55\xd0\x0f\x22\xd0\x08\x22", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -posixpath_toplevel_consts_18_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - &_Py_ID(sep), - & const_str_empty._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(190) -posixpath_toplevel_consts_18 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 95, - }, - .co_consts = & posixpath_toplevel_consts_18_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_18_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 138, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 587, - .co_localsplusnames = & posixpath_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_splitroot._ascii.ob_base, - .co_qualname = & const_str_splitroot._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_18_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x05\x64\x01\x7d\x01\x64\x02\x7d\x02\x6e\x04\x64\x03\x7d\x01\x64\x04\x7d\x02\x7c\x00\x64\x05\x64\x06\x1a\x00\x7c\x01\x6b\x37\x00\x00\x72\x05\x7c\x02\x7c\x02\x7c\x00\x66\x03\x53\x00\x7c\x00\x64\x06\x64\x07\x1a\x00\x7c\x01\x6b\x37\x00\x00\x73\x08\x7c\x00\x64\x07\x64\x08\x1a\x00\x7c\x01\x6b\x28\x00\x00\x72\x08\x7c\x02\x7c\x01\x7c\x00\x64\x06\x64\x05\x1a\x00\x66\x03\x53\x00\x7c\x02\x7c\x00\x64\x05\x64\x07\x1a\x00\x7c\x00\x64\x07\x64\x05\x1a\x00\x66\x03\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -posixpath_toplevel_consts_19_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & ntpath_toplevel_consts_22_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -posixpath_toplevel_consts_19_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - & const_str__get_sep._ascii.ob_base, - & const_str_rfind._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[54]; - } -posixpath_toplevel_consts_19_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 53, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x08\x0a\x8f\x09\x89\x09\x90\x21\x8b\x0c\x80\x41\xdc\x0a\x12\x90\x31\x8b\x2b\x80\x43\xd8\x08\x09\x8f\x07\x89\x07\x90\x03\x8b\x0c\x90\x71\xd1\x08\x18\x80\x41\xd8\x0b\x0c\x88\x51\x88\x52\x88\x35\x80\x4c", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -posixpath_toplevel_consts_19_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - &_Py_ID(sep), - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - }, - }, -}; -static - struct _PyCode_DEF(116) -posixpath_toplevel_consts_19 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 58, - }, - .co_consts = & posixpath_toplevel_consts_19_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_19_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 169, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 588, - .co_localsplusnames = & posixpath_toplevel_consts_19_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_basename._ascii.ob_base, - .co_qualname = & const_str_basename._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_19_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x7a\x00\x00\x00\x7d\x02\x7c\x00\x7c\x02\x64\x02\x1a\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -posixpath_toplevel_consts_20_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & ntpath_toplevel_consts_23_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - Py_None, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[91]; - } -posixpath_toplevel_consts_20_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 90, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x08\x0a\x8f\x09\x89\x09\x90\x21\x8b\x0c\x80\x41\xdc\x0a\x12\x90\x31\x8b\x2b\x80\x43\xd8\x08\x09\x8f\x07\x89\x07\x90\x03\x8b\x0c\x90\x71\xd1\x08\x18\x80\x41\xd8\x0b\x0c\x88\x52\x88\x61\x88\x35\x80\x44\xd9\x07\x0b\x90\x04\x98\x03\x9c\x43\xa0\x04\x9b\x49\x99\x0d\xd2\x10\x25\xd8\x0f\x13\x8f\x7b\x89\x7b\x98\x33\xd3\x0f\x1f\x88\x04\xd8\x0b\x0f\x80\x4b", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -posixpath_toplevel_consts_20_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - &_Py_ID(sep), - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - & const_str_head._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(192) -posixpath_toplevel_consts_20 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 96, - }, - .co_consts = & posixpath_toplevel_consts_20_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_15_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 179, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 589, - .co_localsplusnames = & posixpath_toplevel_consts_20_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_dirname._ascii.ob_base, - .co_qualname = & const_str_dirname._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x7a\x00\x00\x00\x7d\x02\x7c\x00\x64\x02\x7c\x02\x1a\x00\x7d\x03\x7c\x03\x72\x22\x7c\x03\x7c\x01\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7a\x05\x00\x00\x6b\x37\x00\x00\x72\x11\x7c\x03\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x03\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[82]; - } -posixpath_toplevel_consts_21_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 81, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x54\x65\x73\x74\x20\x77\x68\x65\x74\x68\x65\x72\x20\x61\x20\x70\x61\x74\x68\x20\x69\x73\x20\x61\x20\x6a\x75\x6e\x63\x74\x69\x6f\x6e\x0a\x20\x20\x20\x20\x4a\x75\x6e\x63\x74\x69\x6f\x6e\x73\x20\x61\x72\x65\x20\x6e\x6f\x74\x20\x61\x20\x70\x61\x72\x74\x20\x6f\x66\x20\x70\x6f\x73\x69\x78\x20\x73\x65\x6d\x61\x6e\x74\x69\x63\x73", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -posixpath_toplevel_consts_21_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & posixpath_toplevel_consts_21_consts_0._ascii.ob_base, - Py_False, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -posixpath_toplevel_consts_21_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x05\x07\x87\x49\x81\x49\x88\x64\x84\x4f\xd8\x0b\x10", -}; -static - struct _PyCode_DEF(46) -posixpath_toplevel_consts_21 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & posixpath_toplevel_consts_21_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_26_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 192, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 590, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_isjunction._ascii.ob_base, - .co_qualname = & const_str_isjunction._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_21_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[49]; - } -posixpath_toplevel_consts_22_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 48, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x03\x05\x15\xdc\x08\x0a\x8f\x08\x89\x08\x90\x14\x8c\x0e\xf0\x06\x00\x0c\x10\xf8\xf4\x05\x00\x0d\x14\x94\x5a\xd0\x0b\x20\xf2\x00\x01\x05\x15\xd9\x0f\x14\xf0\x03\x01\x05\x15\xfa", -}; -static - struct _PyCode_DEF(90) -posixpath_toplevel_consts_22 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 45, - }, - .co_consts = & ntpath_toplevel_consts_27_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_27_names._object.ob_base.ob_base, - .co_exceptiontable = & genericpath_toplevel_consts_4_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 201, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 591, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_lexists._ascii.ob_base, - .co_qualname = & const_str_lexists._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_22_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x02\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[37]; - } -posixpath_toplevel_consts_23_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 36, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Test whether a path is a mount point", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -posixpath_toplevel_consts_23_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & posixpath_toplevel_consts_23_consts_0._ascii.ob_base, - Py_False, - & ntpath_toplevel_consts_33_consts_4.ob_base.ob_base, - & ntpath_toplevel_consts_2._ascii.ob_base, - Py_True, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[14]; - }_object; - } -posixpath_toplevel_consts_23_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 14, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_lstat._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_S_ISLNK._ascii.ob_base, - & const_str_st_mode._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - &_Py_ID(join), - & const_str_realpath._ascii.ob_base, - & const_str_st_dev._ascii.ob_base, - & const_str_st_ino._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[228]; - } -posixpath_toplevel_consts_23_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 227, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x08\x05\x19\xdc\x0d\x0f\x8f\x58\x89\x58\x90\x64\x8b\x5e\x88\x02\xf4\x0c\x00\x0c\x10\x8f\x3c\x89\x3c\x98\x02\x9f\x0a\x99\x0a\xd4\x0b\x23\xd8\x13\x18\xe4\x0b\x0d\x8f\x39\x89\x39\x90\x54\x8b\x3f\x80\x44\xdc\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xdc\x11\x15\x90\x64\x98\x45\xd3\x11\x22\x89\x06\xe4\x11\x15\x90\x64\x98\x44\xd3\x11\x21\x88\x06\xdc\x0d\x15\x90\x66\xd3\x0d\x1d\x80\x46\xf0\x02\x03\x05\x15\xdc\x0d\x0f\x8f\x58\x89\x58\x90\x66\xd3\x0d\x1d\x88\x02\xf0\x08\x00\x0c\x0e\x8f\x39\x89\x39\x80\x44\xd8\x0b\x0d\x8f\x39\x89\x39\x80\x44\xd8\x07\x0b\x88\x74\x82\x7c\xd8\x0f\x13\xd8\x0b\x0d\x8f\x39\x89\x39\x80\x44\xd8\x0b\x0d\x8f\x39\x89\x39\x80\x44\xd8\x07\x0b\x88\x74\x82\x7c\xd8\x0f\x13\xd8\x0b\x10\xf8\xf4\x37\x00\x0d\x14\x94\x5a\xd0\x0b\x20\xf2\x00\x02\x05\x15\xe1\x0f\x14\xf0\x05\x02\x05\x15\xfb\xf4\x20\x00\x0d\x14\x94\x5a\xd0\x0b\x20\xf2\x00\x01\x05\x15\xd9\x0f\x14\xf0\x03\x01\x05\x15\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[36]; - } -posixpath_toplevel_consts_23_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 35, - }, - .ob_shash = -1, - .ob_sval = "\x82\x15\x43\x13\x00\xc2\x01\x15\x43\x28\x00\xc3\x13\x0f\x43\x25\x03\xc3\x24\x01\x43\x25\x03\xc3\x28\x0f\x43\x3a\x03\xc3\x39\x01\x43\x3a\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_dev1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dev1", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_dev2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dev2", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_ino1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ino1", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_ino2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ino2", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -posixpath_toplevel_consts_23_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(path), - & const_str_s1._ascii.ob_base, - &_Py_ID(parent), - & const_str_s2._ascii.ob_base, - & const_str_dev1._ascii.ob_base, - & const_str_dev2._ascii.ob_base, - & const_str_ino1._ascii.ob_base, - & const_str_ino2._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(506) -posixpath_toplevel_consts_23 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 253, - }, - .co_consts = & posixpath_toplevel_consts_23_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_23_names._object.ob_base.ob_base, - .co_exceptiontable = & posixpath_toplevel_consts_23_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 213, - .co_nlocalsplus = 8, - .co_nlocals = 8, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 592, - .co_localsplusnames = & posixpath_toplevel_consts_23_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_13_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_ismount._ascii.ob_base, - .co_qualname = & const_str_ismount._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_23_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x72\x01\x79\x01\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x0d\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x02\x6e\x0c\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x03\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x01\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x04\x7c\x03\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x7c\x04\x7c\x05\x6b\x37\x00\x00\x72\x01\x79\x04\x7c\x01\x6a\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x03\x6a\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x07\x7c\x06\x7c\x07\x6b\x28\x00\x00\x72\x01\x79\x04\x79\x01\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[80]; - } -posixpath_toplevel_consts_24_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 79, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x45\x78\x70\x61\x6e\x64\x20\x7e\x20\x61\x6e\x64\x20\x7e\x75\x73\x65\x72\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x69\x6f\x6e\x73\x2e\x20\x20\x49\x66\x20\x75\x73\x65\x72\x20\x6f\x72\x20\x24\x48\x4f\x4d\x45\x20\x69\x73\x20\x75\x6e\x6b\x6e\x6f\x77\x6e\x2c\x0a\x20\x20\x20\x20\x64\x6f\x20\x6e\x6f\x74\x68\x69\x6e\x67\x2e", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_HOME = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HOME", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_vxworks = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "vxworks", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -posixpath_toplevel_consts_24_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & posixpath_toplevel_consts_24_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[126]), - (PyObject *)&_Py_SINGLETON(strings).ascii[126], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & const_str_HOME._ascii.ob_base, - Py_None, - & const_str_vxworks._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_pwd = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pwd", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_getpwuid = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getpwuid", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_getuid = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getuid", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_pw_dir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pw_dir", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_getpwnam = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getpwnam", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[21]; - }_object; - } -posixpath_toplevel_consts_24_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 21, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_startswith._ascii.ob_base, - & const_str__get_sep._ascii.ob_base, - & const_str_find._ascii.ob_base, - &_Py_ID(len), - & const_str_environ._ascii.ob_base, - & const_str_pwd._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - & const_str_getpwuid._ascii.ob_base, - & const_str_getuid._ascii.ob_base, - & const_str_pw_dir._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - & const_str_fsdecode._ascii.ob_base, - & const_str_getpwnam._ascii.ob_base, - & const_str_sys._ascii.ob_base, - & const_str_platform._ascii.ob_base, - & const_str_fsencode._ascii.ob_base, - & const_str_rstrip._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[427]; - } -posixpath_toplevel_consts_24_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 426, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x0c\x0e\x8f\x39\x89\x39\x90\x54\x8b\x3f\x80\x44\xdc\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xd8\x10\x14\x89\x05\xe0\x10\x13\x88\x05\xd8\x0b\x0f\x8f\x3f\x89\x3f\x98\x35\xd4\x0b\x21\xd8\x0f\x13\x88\x0b\xdc\x0a\x12\x90\x34\x8b\x2e\x80\x43\xd8\x08\x0c\x8f\x09\x89\x09\x90\x23\x90\x71\xd3\x08\x19\x80\x41\xd8\x07\x08\x88\x31\x82\x75\xdc\x0c\x0f\x90\x04\x8b\x49\x88\x01\xd8\x07\x08\x88\x41\x82\x76\xd8\x0b\x11\x9c\x12\x9f\x1a\x99\x1a\xd1\x0b\x23\xf0\x02\x04\x0d\x1c\xdb\x10\x1a\xf0\x08\x05\x0d\x1c\xd8\x1b\x1e\x9f\x3c\x99\x3c\xac\x02\xaf\x09\xa9\x09\xab\x0b\xd3\x1b\x34\xd7\x1b\x3b\xd1\x1b\x3b\x91\x08\xf4\x0c\x00\x18\x1a\x97\x7a\x91\x7a\xa0\x26\xd1\x17\x29\x89\x48\xf0\x04\x04\x09\x18\xdb\x0c\x16\xf0\x08\x00\x10\x14\x90\x41\x90\x61\x88\x79\x88\x04\xdc\x0b\x15\x90\x64\x9c\x45\xd4\x0b\x22\xdc\x13\x15\x97\x3b\x91\x3b\x98\x74\xd3\x13\x24\x88\x44\xf0\x02\x05\x09\x18\xd8\x14\x17\x97\x4c\x91\x4c\xa0\x14\xd3\x14\x26\x88\x45\xf0\x0a\x00\x14\x19\x97\x3c\x91\x3c\x88\x08\xe0\x07\x0f\xd0\x07\x17\x9c\x43\x9f\x4c\x99\x4c\xa8\x49\xd2\x1c\x35\xd8\x0f\x13\x88\x0b\xdc\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xdc\x13\x15\x97\x3b\x91\x3b\x98\x78\xd3\x13\x28\x88\x08\xd8\x0f\x13\x89\x04\xe0\x0f\x12\x88\x04\xd8\x0f\x17\x8f\x7f\x89\x7f\x98\x74\xd3\x0f\x24\x80\x48\xd8\x0c\x14\x90\x74\x98\x41\x98\x42\x90\x78\xd1\x0c\x1f\xd2\x0b\x28\xa0\x44\xd0\x04\x28\xf8\xf4\x49\x01\x00\x14\x1f\xf2\x00\x02\x0d\x1c\xe0\x17\x1b\x92\x0b\xf0\x05\x02\x0d\x1c\xfb\xf4\x0a\x00\x14\x1c\xf2\x00\x03\x0d\x1c\xf0\x06\x00\x18\x1c\x92\x0b\xf0\x07\x03\x0d\x1c\xfb\xf4\x12\x00\x10\x1b\xf2\x00\x02\x09\x18\xe0\x13\x17\x8a\x4b\xf0\x05\x02\x09\x18\xfb\xf4\x10\x00\x10\x18\xf2\x00\x03\x09\x18\xf0\x06\x00\x14\x18\x8a\x4b\xf0\x07\x03\x09\x18\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[73]; - } -posixpath_toplevel_consts_24_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 72, - }, - .ob_shash = -1, - .ob_sval = "\xc2\x03\x04\x45\x35\x00\xc2\x08\x2d\x46\x06\x00\xc3\x0b\x04\x46\x17\x00\xc3\x3a\x11\x46\x28\x00\xc5\x35\x0b\x46\x03\x03\xc6\x02\x01\x46\x03\x03\xc6\x06\x0b\x46\x14\x03\xc6\x13\x01\x46\x14\x03\xc6\x17\x0b\x46\x25\x03\xc6\x24\x01\x46\x25\x03\xc6\x28\x0b\x46\x36\x03\xc6\x35\x01\x46\x36\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_pwent = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pwent", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -posixpath_toplevel_consts_24_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(path), - & const_str_tilde._ascii.ob_base, - &_Py_ID(sep), - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - & const_str_pwd._ascii.ob_base, - & const_str_userhome._ascii.ob_base, - &_Py_ID(name), - & const_str_pwent._ascii.ob_base, - & const_str_root._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(882) -posixpath_toplevel_consts_24 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 441, - }, - .co_consts = & posixpath_toplevel_consts_24_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_24_names._object.ob_base.ob_base, - .co_exceptiontable = & posixpath_toplevel_consts_24_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 13 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 256, - .co_nlocalsplus = 9, - .co_nlocals = 9, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 593, - .co_localsplusnames = & posixpath_toplevel_consts_24_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_61_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_expanduser._ascii.ob_base, - .co_qualname = & const_str_expanduser._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_24_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x03\x64\x01\x7d\x01\x6e\x02\x64\x02\x7d\x01\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x73\x02\x7c\x00\x53\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x64\x03\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x03\x64\x04\x6b\x02\x00\x00\x72\x0b\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x03\x64\x03\x6b\x28\x00\x00\x72\x5a\x64\x05\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x01\x72\x34\x09\x00\x64\x04\x64\x06\x6c\x09\x7d\x04\x09\x00\x7c\x04\x6a\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x6e\x61\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\x19\x00\x00\x00\x7d\x05\x6e\x4d\x09\x00\x64\x04\x64\x06\x6c\x09\x7d\x04\x7c\x00\x64\x03\x7c\x03\x1a\x00\x7d\x06\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x15\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x09\x00\x7c\x04\x6a\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x07\x7c\x07\x6a\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x7c\x05\x80\x15\x74\x22\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x07\x6b\x28\x00\x00\x72\x02\x7c\x00\x53\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x18\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x05\x64\x08\x7d\x08\x6e\x02\x64\x09\x7d\x08\x7c\x05\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x05\x7c\x05\x7c\x00\x7c\x03\x64\x06\x1a\x00\x7a\x00\x00\x00\x78\x01\x73\x02\x01\x00\x7c\x08\x53\x00\x23\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x7c\x00\x63\x02\x59\x00\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x7c\x00\x63\x02\x59\x00\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x7c\x00\x63\x02\x59\x00\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x7c\x00\x63\x02\x59\x00\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[91]; - } -posixpath_toplevel_consts_25_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 90, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x45\x78\x70\x61\x6e\x64\x20\x73\x68\x65\x6c\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x20\x6f\x66\x20\x66\x6f\x72\x6d\x20\x24\x76\x61\x72\x20\x61\x6e\x64\x20\x24\x7b\x76\x61\x72\x7d\x2e\x20\x20\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x0a\x20\x20\x20\x20\x61\x72\x65\x20\x6c\x65\x66\x74\x20\x75\x6e\x63\x68\x61\x6e\x67\x65\x64\x2e", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -posixpath_toplevel_consts_25_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\\$(\\w+|\\{[^}]*\\})", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -posixpath_toplevel_consts_25_consts_9 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\\$(\\w+|\\{[^}]*\\})", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[14]; - }_object; - } -posixpath_toplevel_consts_25_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 14, - }, - .ob_item = { - & posixpath_toplevel_consts_25_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[36]), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & posixpath_toplevel_consts_25_consts_4.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[123]), - (PyObject *)&_Py_SINGLETON(bytes_characters[125]), - & const_str_environb._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[36], - & posixpath_toplevel_consts_25_consts_9._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[123], - (PyObject *)&_Py_SINGLETON(strings).ascii[125], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str__varprogb = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_varprogb", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_re = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "re", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_ASCII = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ASCII", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str__varprog = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_varprog", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_span = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "span", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_group = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "group", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[20]; - }_object; - } -posixpath_toplevel_consts_25_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 20, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str__varprogb._ascii.ob_base, - & const_str_re._ascii.ob_base, - & const_str_compile._ascii.ob_base, - & const_str_ASCII._ascii.ob_base, - & const_str_search._ascii.ob_base, - &_Py_ID(getattr), - & const_str__varprog._ascii.ob_base, - & const_str_environ._ascii.ob_base, - & const_str_span._ascii.ob_base, - & const_str_group._ascii.ob_base, - & const_str_startswith._ascii.ob_base, - & const_str_endswith._ascii.ob_base, - & const_str_fsencode._ascii.ob_base, - & const_str_fsdecode._ascii.ob_base, - &_Py_ID(len), - & const_str_KeyError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[393]; - } -posixpath_toplevel_consts_25_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 392, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x0c\x0e\x8f\x39\x89\x39\x90\x54\x8b\x3f\x80\x44\xe4\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xd8\x0b\x0f\x90\x74\xd1\x0b\x1b\xd8\x13\x17\x88\x4b\xdd\x0f\x18\xdb\x0c\x15\xd8\x18\x1a\x9f\x0a\x99\x0a\xd0\x23\x38\xb8\x22\xbf\x28\xb9\x28\xd3\x18\x43\x88\x49\xdc\x11\x1a\xd7\x11\x21\xd1\x11\x21\x88\x06\xd8\x10\x14\x88\x05\xd8\x0e\x12\x88\x03\xdc\x12\x19\x9c\x22\x98\x6a\xa8\x24\xd3\x12\x2f\x89\x07\xe0\x0b\x0e\x90\x64\x89\x3f\xd8\x13\x17\x88\x4b\xdd\x0f\x17\xdb\x0c\x15\xd8\x17\x19\x97\x7a\x91\x7a\xd0\x22\x36\xb8\x02\xbf\x08\xb9\x08\xd3\x17\x41\x88\x48\xdc\x11\x19\x97\x1f\x91\x1f\x88\x06\xd8\x10\x13\x88\x05\xd8\x0e\x11\x88\x03\xdc\x12\x14\x97\x2a\x91\x2a\x88\x07\xd8\x08\x09\x80\x41\xd8\x0a\x0e\xd9\x0c\x12\x90\x34\x98\x11\x8b\x4f\x88\x01\xd9\x0f\x10\xd8\x0c\x11\xf0\x22\x00\x0c\x10\x80\x4b\xf0\x21\x00\x10\x11\x8f\x76\x89\x76\x90\x61\x8b\x79\x89\x04\x88\x01\x88\x31\xd8\x0f\x10\x8f\x77\x89\x77\x90\x71\x8b\x7a\x88\x04\xd8\x0b\x0f\x8f\x3f\x89\x3f\x98\x35\xd4\x0b\x21\xa0\x64\xa7\x6d\xa1\x6d\xb0\x43\xd4\x26\x38\xd8\x13\x17\x98\x01\x98\x22\x90\x3a\x88\x44\xf0\x02\x0b\x09\x19\xd8\x0f\x16\x88\x7f\xdc\x18\x1a\x9f\x0b\x99\x0b\xa4\x42\xa7\x4a\xa1\x4a\xac\x72\xaf\x7b\xa9\x7b\xb8\x34\xd3\x2f\x40\xd1\x24\x41\xd3\x18\x42\x91\x05\xe0\x18\x1f\xa0\x04\x99\x0d\x90\x05\xf0\x08\x00\x14\x18\x98\x01\x98\x02\x90\x38\x88\x44\xd8\x13\x17\x98\x02\x98\x11\x90\x38\x98\x65\xd1\x13\x23\x88\x44\xdc\x10\x13\x90\x44\x93\x09\x88\x41\xd8\x0c\x10\x90\x44\x89\x4c\x88\x44\xf0\x27\x00\x0b\x0f\xf8\xf4\x1a\x00\x10\x18\xf2\x00\x01\x09\x12\xd8\x10\x11\x8a\x41\xf0\x03\x01\x09\x12\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[20]; - } -posixpath_toplevel_consts_25_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 19, - }, - .ob_shash = -1, - .ob_sval = "\xc4\x26\x41\x01\x46\x05\x00\xc6\x05\x0b\x46\x13\x03\xc6\x12\x01\x46\x13\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[12]; - }_object; - } -posixpath_toplevel_consts_25_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 12, - }, - .ob_item = { - &_Py_ID(path), - & const_str_re._ascii.ob_base, - & const_str_search._ascii.ob_base, - &_Py_ID(start), - &_Py_ID(end), - & const_str_environ._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - (PyObject *)&_Py_SINGLETON(strings).ascii[109], - (PyObject *)&_Py_SINGLETON(strings).ascii[106], - &_Py_ID(name), - &_Py_ID(value), - & const_str_tail._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(812) -posixpath_toplevel_consts_25 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 406, - }, - .co_consts = & posixpath_toplevel_consts_25_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_25_names._object.ob_base.ob_base, - .co_exceptiontable = & posixpath_toplevel_consts_25_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 18 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 320, - .co_nlocalsplus = 12, - .co_nlocals = 12, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 594, - .co_localsplusnames = & posixpath_toplevel_consts_25_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_external_toplevel_consts_36_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_expandvars._ascii.ob_base, - .co_qualname = & const_str_expandvars._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_25_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x52\x64\x01\x7c\x00\x76\x01\x72\x02\x7c\x00\x53\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x73\x20\x64\x02\x64\x03\x6c\x05\x7d\x01\x7c\x01\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x01\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x61\x04\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x64\x05\x7d\x03\x64\x06\x7d\x04\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x07\x64\x03\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x05\x6e\x50\x64\x08\x7c\x00\x76\x01\x72\x02\x7c\x00\x53\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x73\x20\x64\x02\x64\x03\x6c\x05\x7d\x01\x7c\x01\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x7c\x01\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x61\x0a\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x64\x0a\x7d\x03\x64\x0b\x7d\x04\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x64\x02\x7d\x06\x09\x00\x02\x00\x7c\x02\x7c\x00\x7c\x06\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x07\x7c\x07\x73\x03\x09\x00\x7c\x00\x53\x00\x7c\x07\x6a\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x06\x7d\x08\x7c\x07\x6a\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0c\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x09\x7c\x09\x6a\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x72\x16\x7c\x09\x6a\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x72\x05\x7c\x09\x64\x0c\x64\x0d\x1a\x00\x7d\x09\x09\x00\x7c\x05\x80\x3a\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\xab\x01\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0a\x6e\x05\x7c\x05\x7c\x09\x19\x00\x00\x00\x7d\x0a\x7c\x00\x7c\x08\x64\x03\x1a\x00\x7d\x0b\x7c\x00\x64\x03\x7c\x06\x1a\x00\x7c\x0a\x7a\x00\x00\x00\x7d\x00\x74\x25\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x00\x7c\x0b\x7a\x0d\x00\x00\x7d\x00\x8c\xba\x23\x00\x74\x26\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x7c\x08\x7d\x06\x59\x00\x8c\x0e\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -posixpath_toplevel_consts_27_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & ntpath_toplevel_consts_33_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - (PyObject *)&_Py_SINGLETON(bytes_empty), - (PyObject *)&_Py_SINGLETON(bytes_characters[46]), - & ntpath_toplevel_consts_33_consts_4.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - &_Py_STR(empty), - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - & ntpath_toplevel_consts_2._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -posixpath_toplevel_consts_27_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_splitroot._ascii.ob_base, - & const_str_split._ascii.ob_base, - &_Py_ID(append), - & const_str_pop._ascii.ob_base, - &_Py_ID(join), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[223]; - } -posixpath_toplevel_consts_27_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 222, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0f\x11\x8f\x79\x89\x79\x98\x14\x8b\x7f\x88\x04\xdc\x0b\x15\x90\x64\x9c\x45\xd4\x0b\x22\xd8\x12\x16\x88\x43\xd8\x14\x17\x88\x45\xd8\x12\x16\x88\x43\xd8\x15\x1a\x89\x46\xe0\x12\x15\x88\x43\xd8\x14\x16\x88\x45\xd8\x12\x15\x88\x43\xd8\x15\x19\x88\x46\xd8\x0b\x0f\x90\x35\x8a\x3d\xd8\x13\x16\x88\x4a\xdc\x23\x2c\xa8\x54\xa3\x3f\xd1\x08\x20\x88\x01\x88\x3f\x98\x44\xd8\x10\x14\x97\x0a\x91\x0a\x98\x33\x93\x0f\x88\x05\xd8\x14\x16\x88\x09\xdb\x14\x19\x88\x44\xd8\x0f\x13\x98\x05\x98\x73\x90\x7c\xd1\x0f\x23\xd8\x10\x18\xd8\x10\x14\x98\x06\x92\x0e\xa1\x7f\xb9\x79\xd9\x12\x1b\xa0\x09\xa8\x22\xa1\x0d\xb0\x16\xd2\x20\x37\xd8\x10\x19\xd7\x10\x20\xd1\x10\x20\xa0\x14\xd5\x10\x26\xda\x11\x1a\xd8\x10\x19\x97\x0d\x91\x0d\x95\x0f\xf0\x0f\x00\x15\x1a\xf0\x10\x00\x11\x1a\x88\x05\xd8\x0f\x1e\xa0\x13\xa7\x18\xa1\x18\xa8\x25\xa3\x1f\xd1\x0f\x30\x88\x04\xd8\x0f\x13\x8a\x7b\x90\x73\xd0\x08\x1a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_dotdot = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dotdot", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_initial_slashes = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "initial_slashes", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_new_comps = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "new_comps", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_comp = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "comp", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -posixpath_toplevel_consts_27_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(path), - &_Py_ID(sep), - & const_str_empty._ascii.ob_base, - & const_str_dot._ascii.ob_base, - & const_str_dotdot._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[95], - & const_str_initial_slashes._ascii.ob_base, - & const_str_comps._ascii.ob_base, - & const_str_new_comps._ascii.ob_base, - & const_str_comp._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(388) -posixpath_toplevel_consts_27 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 194, - }, - .co_consts = & posixpath_toplevel_consts_27_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_27_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 14 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 377, - .co_nlocalsplus = 10, - .co_nlocals = 10, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 595, - .co_localsplusnames = & posixpath_toplevel_consts_27_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_normpath._ascii.ob_base, - .co_qualname = & const_str_normpath._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_27_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x09\x64\x01\x7d\x01\x64\x02\x7d\x02\x64\x03\x7d\x03\x64\x04\x7d\x04\x6e\x08\x64\x05\x7d\x01\x64\x06\x7d\x02\x64\x07\x7d\x03\x64\x08\x7d\x04\x7c\x00\x7c\x02\x6b\x28\x00\x00\x72\x02\x7c\x03\x53\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x05\x7d\x06\x7d\x00\x7c\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x07\x67\x00\x7d\x08\x7c\x07\x44\x00\x5d\x41\x00\x00\x7d\x09\x7c\x09\x7c\x02\x7c\x03\x66\x02\x76\x00\x72\x01\x8c\x0a\x7c\x09\x7c\x04\x6b\x37\x00\x00\x73\x0e\x7c\x06\x73\x02\x7c\x08\x72\x0a\x7c\x08\x72\x1a\x7c\x08\x64\x09\x19\x00\x00\x00\x7c\x04\x6b\x28\x00\x00\x72\x12\x7c\x08\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x2f\x7c\x08\x73\x01\x8c\x32\x7c\x08\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x43\x04\x00\x7c\x08\x7d\x07\x7c\x06\x7c\x01\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\xab\x01\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x7d\x00\x7c\x00\x78\x01\x73\x02\x01\x00\x7c\x03\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -posixpath_toplevel_consts_28_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return an absolute path.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -posixpath_toplevel_consts_28_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & posixpath_toplevel_consts_28_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[76]; - } -posixpath_toplevel_consts_28_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 75, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x0d\x8f\x39\x89\x39\x90\x54\x8b\x3f\x80\x44\xdc\x0b\x10\x90\x14\x8c\x3b\xdc\x0b\x15\x90\x64\x9c\x45\xd4\x0b\x22\xdc\x12\x14\x97\x2a\x91\x2a\x93\x2c\x89\x43\xe4\x12\x14\x97\x29\x91\x29\x93\x2b\x88\x43\xdc\x0f\x13\x90\x43\x98\x14\x8b\x7f\x88\x04\xdc\x0b\x13\x90\x44\x8b\x3e\xd0\x04\x19", -}; -static - struct _PyCode_DEF(226) -posixpath_toplevel_consts_28 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 113, - }, - .co_consts = & posixpath_toplevel_consts_28_consts._object.ob_base.ob_base, - .co_names = & ntpath_toplevel_consts_36_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 408, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 596, - .co_localsplusnames = & ntpath_toplevel_consts_36_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_abspath._ascii.ob_base, - .co_qualname = & const_str_abspath._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_28_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x73\x45\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x15\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x6e\x14\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[109]; - } -posixpath_toplevel_consts_31_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 108, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x63\x61\x6e\x6f\x6e\x69\x63\x61\x6c\x20\x70\x61\x74\x68\x20\x6f\x66\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x2c\x20\x65\x6c\x69\x6d\x69\x6e\x61\x74\x69\x6e\x67\x20\x61\x6e\x79\x0a\x73\x79\x6d\x62\x6f\x6c\x69\x63\x20\x6c\x69\x6e\x6b\x73\x20\x65\x6e\x63\x6f\x75\x6e\x74\x65\x72\x65\x64\x20\x69\x6e\x20\x74\x68\x65\x20\x70\x61\x74\x68\x2e", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -posixpath_toplevel_consts_31_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & posixpath_toplevel_consts_31_consts_0._ascii.ob_base, - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str__joinrealpath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_joinrealpath", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -posixpath_toplevel_consts_31_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - & const_str__joinrealpath._ascii.ob_base, - & const_str_abspath._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[55]; - } -posixpath_toplevel_consts_31_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 54, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x10\x12\x8f\x79\x89\x79\x98\x18\xd3\x0f\x22\x80\x48\xdc\x0f\x1c\x98\x58\xa0\x62\xa0\x71\x98\x5c\xa8\x38\xb0\x56\xb8\x52\xd3\x0f\x40\x81\x48\x80\x44\x88\x22\xdc\x0b\x12\x90\x34\x8b\x3d\xd0\x04\x18", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -const_str_ok = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ok", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -posixpath_toplevel_consts_31_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(filename), - &_Py_ID(strict), - &_Py_ID(path), - & const_str_ok._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(106) -posixpath_toplevel_consts_31 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 53, - }, - .co_consts = & posixpath_toplevel_consts_31_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_31_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 1, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 423, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 597, - .co_localsplusnames = & posixpath_toplevel_consts_31_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_realpath._ascii.ob_base, - .co_qualname = & const_str_realpath._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_31_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x01\x64\x02\x1a\x00\x7c\x00\x7c\x01\x69\x00\xab\x04\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x02\x7d\x03\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -posixpath_toplevel_consts_32_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - Py_None, - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - (PyObject *)&_Py_SINGLETON(bytes_characters[46]), - & ntpath_toplevel_consts_33_consts_4.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - & ntpath_toplevel_consts_2._ascii.ob_base, - (PyObject *)& _Py_SINGLETON(tuple_empty), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - Py_False, - Py_True, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[17]; - }_object; - } -posixpath_toplevel_consts_32_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 17, - }, - .ob_item = { - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_os._ascii.ob_base, - & const_str_getcwd._ascii.ob_base, - & const_str_ALLOW_MISSING._ascii.ob_base, - & const_str_FileNotFoundError._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_isabs._ascii.ob_base, - & const_str_partition._ascii.ob_base, - & const_str_split._ascii.ob_base, - &_Py_ID(join), - & const_str_lstat._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_S_ISLNK._ascii.ob_base, - & const_str_st_mode._ascii.ob_base, - & const_str__joinrealpath._ascii.ob_base, - & const_str_readlink._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[424]; - } -posixpath_toplevel_consts_32_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 423, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xd8\x0e\x12\x88\x03\xd8\x11\x15\x88\x06\xd8\x11\x16\x89\x06\xe0\x0e\x11\x88\x03\xd8\x11\x14\x88\x06\xd8\x11\x15\x88\x06\xdc\x11\x13\x97\x19\x91\x19\x88\x06\xd8\x07\x0d\x94\x1d\xd1\x07\x1e\xdc\x18\x29\x89\x0d\xd9\x09\x0f\xd8\x18\x1a\x89\x0d\xe4\x18\x1f\x88\x0d\xe0\x0f\x13\x80\x48\xe4\x07\x0c\x88\x54\x84\x7b\xd8\x0f\x13\x90\x41\x90\x42\x88\x78\x88\x04\xd8\x0f\x12\x88\x04\xe2\x0a\x0e\xd8\x18\x1c\x9f\x0e\x99\x0e\xa0\x73\xd3\x18\x2b\x89\x0d\x88\x04\x88\x61\x90\x14\xd9\x0f\x13\x90\x74\x98\x76\x92\x7e\xe0\x0c\x14\xd8\x0b\x0f\x90\x36\x8a\x3e\xe1\x0f\x13\xdc\x1d\x22\xa0\x34\x9b\x5b\x91\x0a\x90\x04\x90\x64\xd8\x13\x17\x98\x36\x92\x3e\xdc\x1b\x1f\xa0\x04\xa0\x66\xa8\x66\xd3\x1b\x35\x91\x44\xe0\x17\x1d\x90\x04\xd8\x0c\x14\xdc\x12\x16\x90\x74\x98\x54\xd3\x12\x22\x88\x07\xf0\x02\x05\x09\x2f\xdc\x11\x13\x97\x18\x91\x18\x98\x27\xd3\x11\x22\x88\x42\xf4\x08\x00\x17\x1b\x97\x6c\x91\x6c\xa0\x32\xa7\x3a\xa1\x3a\xd3\x16\x2e\x88\x47\xd9\x0f\x16\xd8\x13\x1a\x88\x44\xd8\x0c\x14\xe0\x0b\x12\x90\x64\x89\x3f\xe0\x13\x17\x98\x07\x91\x3d\x88\x44\xd8\x0f\x13\xd0\x0f\x1f\xe0\x10\x18\xe1\x0f\x15\xe4\x10\x12\x97\x07\x91\x07\x98\x07\xd5\x10\x20\xf4\x06\x00\x18\x1c\x98\x47\xa0\x54\xd3\x17\x2a\xa8\x45\xd0\x17\x31\xd0\x10\x31\xd8\x18\x1c\x88\x04\x88\x57\x89\x0d\xdc\x13\x20\xa0\x14\xa4\x72\xa7\x7b\xa1\x7b\xb0\x37\xd3\x27\x3b\xb8\x56\xc0\x54\xd3\x13\x4a\x89\x08\x88\x04\x88\x62\xd9\x0f\x11\xdc\x13\x17\x98\x04\x98\x64\xd3\x13\x23\xa0\x55\xd0\x13\x2a\xd0\x0c\x2a\xd8\x18\x1c\x88\x04\x88\x57\x89\x0d\xf3\x55\x01\x00\x0b\x0f\xf0\x58\x01\x00\x0c\x10\x90\x14\x88\x3a\xd0\x04\x15\xf8\xf0\x37\x00\x10\x1d\xf2\x00\x01\x09\x1c\xd8\x16\x1b\x8a\x47\xf0\x03\x01\x09\x1c\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -posixpath_toplevel_consts_32_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\xc2\x34\x15\x45\x25\x00\xc5\x25\x07\x45\x2f\x03\xc5\x2e\x01\x45\x2f\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_maxlinks = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "maxlinks", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_newpath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "newpath", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_is_link = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "is_link", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[16]; - }_object; - } -posixpath_toplevel_consts_32_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 16, - }, - .ob_item = { - &_Py_ID(path), - & const_str_rest._ascii.ob_base, - &_Py_ID(strict), - & const_str_seen._ascii.ob_base, - &_Py_ID(sep), - & const_str_curdir._ascii.ob_base, - & const_str_pardir._ascii.ob_base, - & const_str_getcwd._ascii.ob_base, - & const_str_ignored_error._ascii.ob_base, - & const_str_maxlinks._ascii.ob_base, - &_Py_ID(name), - (PyObject *)&_Py_SINGLETON(strings).ascii[95], - & const_str_newpath._ascii.ob_base, - & const_str_st._ascii.ob_base, - & const_str_is_link._ascii.ob_base, - & const_str_ok._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[17]; - } -posixpath_toplevel_consts_32_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 16, - }, - .ob_shash = -1, - .ob_sval = " ", -}; -static - struct _PyCode_DEF(740) -posixpath_toplevel_consts_32 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 370, - }, - .co_consts = & posixpath_toplevel_consts_32_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_32_names._object.ob_base.ob_base, - .co_exceptiontable = & posixpath_toplevel_consts_32_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 22 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 432, - .co_nlocalsplus = 16, - .co_nlocals = 16, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 598, - .co_localsplusnames = & posixpath_toplevel_consts_32_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & posixpath_toplevel_consts_32_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str__joinrealpath._ascii.ob_base, - .co_qualname = & const_str__joinrealpath._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_32_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x07\x64\x01\x7d\x04\x64\x02\x7d\x05\x64\x03\x7d\x06\x6e\x16\x64\x04\x7d\x04\x64\x05\x7d\x05\x64\x06\x7d\x06\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x07\x7c\x02\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x07\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x08\x6e\x0b\x7c\x02\x72\x03\x64\x07\x7d\x08\x6e\x06\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x08\x64\x00\x7d\x09\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x72\x07\x7c\x01\x64\x08\x64\x00\x1a\x00\x7d\x01\x7c\x04\x7d\x00\x7c\x01\x90\x01\x72\x02\x7c\x01\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x0a\x7d\x0b\x7d\x01\x7c\x0a\x72\x05\x7c\x0a\x7c\x05\x6b\x28\x00\x00\x72\x01\x8c\x20\x7c\x0a\x7c\x06\x6b\x28\x00\x00\x72\x26\x7c\x00\x72\x21\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x00\x7d\x0a\x7c\x0a\x7c\x06\x6b\x28\x00\x00\x72\x10\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x06\x7c\x06\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x00\x6e\x02\x7c\x06\x7d\x00\x8c\x4b\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x0a\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x0c\x09\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0c\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0d\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\x6a\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0e\x7c\x0e\x73\x03\x7c\x0c\x7d\x00\x8c\x91\x7c\x0c\x7c\x03\x76\x00\x72\x2e\x7c\x03\x7c\x0c\x19\x00\x00\x00\x7d\x00\x7c\x00\x81\x01\x8c\x9d\x7c\x02\x72\x16\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0c\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x0e\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0c\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x64\x09\x66\x02\x53\x00\x64\x00\x7c\x03\x7c\x0c\x3c\x00\x00\x00\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0c\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x03\xab\x04\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x00\x7d\x0f\x7c\x0f\x73\x0e\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x64\x09\x66\x02\x53\x00\x7c\x00\x7c\x03\x7c\x0c\x3c\x00\x00\x00\x7c\x01\x72\x02\x90\x01\x8c\x02\x7c\x00\x64\x0a\x66\x02\x53\x00\x23\x00\x7c\x08\x24\x00\x72\x05\x01\x00\x64\x09\x7d\x0e\x59\x00\x8c\x86\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -posixpath_toplevel_consts_34_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & ntpath_toplevel_consts_45_consts_0._ascii.ob_base, - & ntpath_toplevel_consts_45_consts_8._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(bytes_characters[46]), - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - & ntpath_toplevel_consts_33_consts_4.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - & ntpath_toplevel_consts_2._ascii.ob_base, - Py_None, - & const_str_relpath._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[16]; - }_object; - } -posixpath_toplevel_consts_34_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 16, - }, - .ob_item = { - & const_str_ValueError._ascii.ob_base, - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_abspath._ascii.ob_base, - & const_str_split._ascii.ob_base, - &_Py_ID(len), - & const_str_commonprefix._ascii.ob_base, - &_Py_ID(join), - & const_str_TypeError._ascii.ob_base, - & const_str_AttributeError._ascii.ob_base, - & const_str_BytesWarning._ascii.ob_base, - & const_str_DeprecationWarning._ascii.ob_base, - & const_str_genericpath._ascii.ob_base, - & const_str__check_arg_types._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[307]; - } -posixpath_toplevel_consts_34_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 306, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf1\x06\x00\x0c\x10\xdc\x0e\x18\xd0\x19\x2c\xd3\x0e\x2d\xd0\x08\x2d\xe4\x0b\x0d\x8f\x39\x89\x39\x90\x54\x8b\x3f\x80\x44\xdc\x07\x11\x90\x24\x9c\x05\xd4\x07\x1e\xd8\x11\x15\x88\x06\xd8\x0e\x12\x88\x03\xd8\x11\x16\x89\x06\xe0\x11\x14\x88\x06\xd8\x0e\x11\x88\x03\xd8\x11\x15\x88\x06\xe0\x07\x0c\x80\x7d\xd8\x10\x16\x89\x05\xe4\x10\x12\x97\x09\x91\x09\x98\x25\xd3\x10\x20\x88\x05\xf0\x04\x0c\x05\x0e\xdc\x21\x28\xa8\x15\xa3\x1e\xd7\x21\x35\xd1\x21\x35\xb0\x63\xd4\x21\x3a\xd3\x15\x40\xd1\x21\x3a\x98\x41\xba\x61\x92\x61\xd0\x21\x3a\x88\x0a\xd0\x15\x40\xdc\x20\x27\xa8\x04\xa3\x0d\xd7\x20\x33\xd1\x20\x33\xb0\x43\xd4\x20\x38\xd3\x14\x3e\xd1\x20\x38\x98\x31\xba\x41\x92\x51\xd0\x20\x38\x88\x09\xd0\x14\x3e\xe4\x0c\x0f\x94\x0c\x98\x6a\xa8\x29\xd0\x1d\x34\xd3\x10\x35\xd3\x0c\x36\x88\x01\xe0\x14\x1a\x90\x38\x9c\x73\xa0\x3a\x9b\x7f\xa8\x71\xd1\x1f\x30\xd1\x13\x31\xb0\x49\xb8\x61\xb8\x62\xb0\x4d\xd1\x13\x41\x88\x08\xd9\x0f\x17\xd8\x13\x19\x88\x4d\xdc\x0f\x13\x90\x58\x88\x7f\xd0\x08\x1e\xf9\xf2\x11\x00\x16\x41\x01\xf9\xda\x14\x3e\xf8\xf4\x10\x00\x0d\x16\x94\x7e\xa4\x7c\xd4\x35\x47\xd0\x0b\x48\xf2\x00\x02\x05\x0e\xdc\x08\x13\xd7\x08\x24\xd1\x08\x24\xa0\x59\xb0\x04\xb0\x65\xd4\x08\x3c\xd8\x08\x0d\xf0\x05\x02\x05\x0e\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[61]; - } -posixpath_toplevel_consts_34_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 60, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x1b\x1c\x43\x33\x00\xc1\x37\x07\x43\x29\x04\xc1\x3f\x04\x43\x29\x04\xc2\x03\x1e\x43\x33\x00\xc2\x21\x07\x43\x2e\x04\xc2\x29\x04\x43\x2e\x04\xc2\x2d\x33\x43\x33\x00\xc3\x21\x07\x43\x33\x00\xc3\x29\x0a\x43\x33\x00\xc3\x33\x32\x44\x25\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -posixpath_toplevel_consts_34_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(path), - &_Py_ID(start), - & const_str_curdir._ascii.ob_base, - &_Py_ID(sep), - & const_str_pardir._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[120], - & const_str_start_list._ascii.ob_base, - & const_str_path_list._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - & const_str_rel_list._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(592) -posixpath_toplevel_consts_34 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 296, - }, - .co_consts = & posixpath_toplevel_consts_34_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_34_names._object.ob_base.ob_base, - .co_exceptiontable = & posixpath_toplevel_consts_34_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 16 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 504, - .co_nlocalsplus = 10, - .co_nlocals = 10, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 599, - .co_localsplusnames = & posixpath_toplevel_consts_34_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_relpath._ascii.ob_base, - .co_qualname = & const_str_relpath._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_34_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x73\x0b\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x07\x64\x02\x7d\x02\x64\x03\x7d\x03\x64\x04\x7d\x04\x6e\x06\x64\x05\x7d\x02\x64\x06\x7d\x03\x64\x07\x7d\x04\x7c\x01\x80\x03\x7c\x02\x7d\x01\x6e\x15\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x09\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x8f\x05\x63\x02\x67\x00\x63\x02\x5d\x07\x00\x00\x7d\x05\x7c\x05\x73\x01\x8c\x06\x7c\x05\x91\x02\x8c\x09\x04\x00\x7d\x06\x7d\x05\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x8f\x05\x63\x02\x67\x00\x63\x02\x5d\x07\x00\x00\x7d\x05\x7c\x05\x73\x01\x8c\x06\x7c\x05\x91\x02\x8c\x09\x04\x00\x7d\x07\x7d\x05\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x7c\x07\x67\x02\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x08\x7c\x04\x67\x01\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x08\x7a\x0a\x00\x00\x7a\x05\x00\x00\x7c\x07\x7c\x08\x64\x08\x1a\x00\x7a\x00\x00\x00\x7d\x09\x7c\x09\x73\x02\x7c\x02\x53\x00\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\x8e\x00\x53\x00\x63\x02\x01\x00\x63\x02\x7d\x05\x77\x00\x63\x02\x01\x00\x63\x02\x7d\x05\x77\x00\x23\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x74\x18\x00\x00\x00\x00\x00\x00\x00\x00\x74\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x66\x04\x24\x00\x72\x19\x01\x00\x74\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x7c\x00\x7c\x01\xab\x03\x00\x00\x00\x00\x00\x00\x01\x00\x82\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[30]; - } -posixpath_toplevel_consts_35_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 29, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "commonpath..", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[29]; - } -posixpath_toplevel_consts_35_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 28, - }, - .ob_shash = -1, - .ob_sval = "\xf8\xe8\x00\xf8\x80\x00\xd0\x18\x35\xa9\x75\xa8\x21\x98\x11\x98\x32\x98\x41\x98\x15\xa0\x23\x9d\x1c\xa9\x75\xf9", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -posixpath_toplevel_consts_35_consts_7_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & importlib__bootstrap_external_toplevel_consts_6_localsplusnames_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - &_Py_ID(sep), - }, - }, -}; -static - struct _PyCode_DEF(46) -posixpath_toplevel_consts_35_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & zipimport_toplevel_consts_25_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = & importlib__bootstrap_external_toplevel_consts_64_consts_7_consts_2_exceptiontable.ob_base.ob_base, - .co_flags = 51, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 563, - .co_nlocalsplus = 3, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 600, - .co_localsplusnames = & posixpath_toplevel_consts_35_consts_7_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_genexpr), - .co_qualname = & posixpath_toplevel_consts_35_consts_7_qualname._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_35_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x4b\x00\x01\x00\x97\x00\x7c\x00\x5d\x0c\x00\x00\x7d\x01\x7c\x01\x64\x00\x64\x01\x1a\x00\x89\x02\x6b\x28\x00\x00\x96\x01\x97\x01\x01\x00\x8c\x0e\x04\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 3, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -posixpath_toplevel_consts_35_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & ntpath_toplevel_consts_46_consts_0._ascii.ob_base, - & ntpath_toplevel_consts_46_consts_1._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_Py_SINGLETON(bytes_characters[47]), - (PyObject *)&_Py_SINGLETON(bytes_characters[46]), - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - & posixpath_toplevel_consts_35_consts_7.ob_base.ob_base, - & ntpath_toplevel_consts_46_consts_10._ascii.ob_base, - Py_None, - & const_str_commonpath._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[17]; - }_object; - } -posixpath_toplevel_consts_35_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 17, - }, - .ob_item = { - & const_str_ValueError._ascii.ob_base, - & const_str_tuple._ascii.ob_base, - & const_str_map._ascii.ob_base, - & const_str_os._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_split._ascii.ob_base, - & const_str_set._ascii.ob_base, - & const_str_min._ascii.ob_base, - & const_str_max._ascii.ob_base, - & const_str_enumerate._ascii.ob_base, - &_Py_ID(join), - & const_str_TypeError._ascii.ob_base, - & const_str_AttributeError._ascii.ob_base, - & const_str_genericpath._ascii.ob_base, - & const_str__check_arg_types._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[374]; - } -posixpath_toplevel_consts_35_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 373, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xf1\x06\x00\x0c\x11\xdc\x0e\x18\xd0\x19\x40\xd3\x0e\x41\xd0\x08\x41\xe4\x0c\x11\x94\x23\x94\x62\x97\x69\x91\x69\xa0\x15\xd3\x12\x27\xd3\x0c\x28\x80\x45\xdc\x07\x11\x90\x25\x98\x01\x91\x28\x9c\x45\xd4\x07\x22\xd8\x0e\x12\x88\x03\xd8\x11\x15\x89\x06\xe0\x0e\x11\x88\x03\xd8\x11\x14\x88\x06\xf0\x04\x15\x05\x0e\xd9\x33\x38\xd3\x16\x39\xb1\x35\xa8\x34\x90\x74\x97\x7a\x91\x7a\xa0\x23\x95\x7f\xb0\x35\x88\x0b\xd0\x16\x39\xf0\x04\x03\x09\x50\x01\xdc\x15\x18\xd3\x18\x35\xa9\x75\xd3\x18\x35\xd3\x15\x35\x89\x46\x88\x45\xf1\x08\x00\x45\x01\x50\x01\xd4\x16\x50\xc1\x4b\xb8\x71\xa1\x31\xd3\x17\x3a\xa1\x31\x98\x61\xaa\x01\xa8\x61\xb0\x36\xab\x6b\x9a\x01\xa0\x31\xd3\x17\x3a\xc0\x4b\x88\x0b\xd1\x16\x50\xdc\x0d\x10\x90\x1b\xd3\x0d\x1d\x88\x02\xdc\x0d\x10\x90\x1b\xd3\x0d\x1d\x88\x02\xd8\x11\x13\x88\x06\xdc\x14\x1d\x98\x62\x96\x4d\x89\x44\x88\x41\x88\x71\xd8\x0f\x10\x90\x42\x90\x71\x91\x45\x8b\x7a\xd8\x19\x1b\x98\x42\x98\x51\x98\x16\x90\x06\xd9\x10\x15\xf0\x07\x00\x15\x22\xf1\x0a\x00\x19\x1e\x91\x13\xa0\x33\xa0\x72\xa8\x01\xa0\x37\x88\x06\xd8\x0f\x15\x98\x03\x9f\x08\x99\x08\xa0\x16\xd3\x18\x28\xd1\x0f\x28\xd0\x08\x28\xf9\xf2\x23\x00\x17\x3a\xf8\xf4\x08\x00\x10\x1a\xf2\x00\x01\x09\x50\x01\xdc\x12\x1c\xd0\x1d\x44\xd3\x12\x45\xc8\x34\xd0\x0c\x4f\xf0\x03\x01\x09\x50\x01\xfc\xf2\x06\x00\x18\x3b\xf9\xd3\x16\x50\xf8\xf4\x16\x00\x0d\x16\x94\x7e\xd0\x0b\x26\xf2\x00\x02\x05\x0e\xdc\x08\x13\xd7\x08\x24\xd1\x08\x24\xa0\x5c\xd0\x08\x3a\xb0\x45\xd3\x08\x3a\xd8\x08\x0d\xf0\x05\x02\x05\x0e\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[109]; - } -posixpath_toplevel_consts_35_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 108, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x0f\x04\x44\x2c\x00\xc1\x13\x18\x44\x03\x04\xc1\x2b\x02\x44\x2c\x00\xc1\x2e\x16\x44\x08\x00\xc2\x04\x05\x44\x2c\x00\xc2\x09\x09\x44\x26\x06\xc2\x12\x07\x44\x21\x0c\xc2\x1a\x05\x44\x21\x0c\xc2\x20\x04\x44\x21\x0c\xc2\x24\x05\x44\x26\x06\xc2\x29\x34\x44\x2c\x00\xc3\x1e\x24\x44\x2c\x00\xc4\x03\x05\x44\x2c\x00\xc4\x08\x16\x44\x1e\x03\xc4\x1e\x03\x44\x2c\x00\xc4\x21\x05\x44\x26\x06\xc4\x26\x06\x44\x2c\x00\xc4\x2c\x27\x45\x13\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -posixpath_toplevel_consts_35_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str_paths._ascii.ob_base, - & const_str_curdir._ascii.ob_base, - &_Py_ID(path), - & const_str_split_paths._ascii.ob_base, - & const_str_isabs._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[115], - (PyObject *)&_Py_SINGLETON(strings).ascii[99], - & const_str_s1._ascii.ob_base, - & const_str_s2._ascii.ob_base, - & const_str_common._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[105], - & const_str_prefix._ascii.ob_base, - &_Py_ID(sep), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[14]; - } -posixpath_toplevel_consts_35_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 13, - }, - .ob_shash = -1, - .ob_sval = " @", -}; -static - struct _PyCode_DEF(684) -posixpath_toplevel_consts_35 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 342, - }, - .co_consts = & posixpath_toplevel_consts_35_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_consts_35_names._object.ob_base.ob_base, - .co_exceptiontable = & posixpath_toplevel_consts_35_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 22 + FRAME_SPECIALS_SIZE, - .co_stacksize = 9, - .co_firstlineno = 545, - .co_nlocalsplus = 13, - .co_nlocals = 12, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 601, - .co_localsplusnames = & posixpath_toplevel_consts_35_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & posixpath_toplevel_consts_35_localspluskinds.ob_base.ob_base, - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_commonpath._ascii.ob_base, - .co_qualname = & const_str_commonpath._ascii.ob_base, - .co_linetable = & posixpath_toplevel_consts_35_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x0c\x97\x00\x7c\x00\x73\x0b\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x02\x19\x00\x00\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x05\x64\x03\x8a\x0c\x64\x04\x7d\x01\x6e\x04\x64\x05\x8a\x0c\x64\x06\x7d\x01\x09\x00\x7c\x00\x44\x00\x8f\x02\x63\x02\x67\x00\x63\x02\x5d\x13\x00\x00\x7d\x02\x7c\x02\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x0c\xab\x01\x00\x00\x00\x00\x00\x00\x91\x02\x8c\x15\x04\x00\x7d\x03\x7d\x02\x09\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x88\x0c\x66\x01\x64\x07\x84\x08\x7c\x00\x44\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x01\x00\x00\x7d\x04\x7c\x03\x44\x00\x8f\x05\x8f\x06\x63\x03\x67\x00\x63\x02\x5d\x1b\x00\x00\x7d\x05\x7c\x05\x44\x00\x8f\x06\x63\x02\x67\x00\x63\x02\x5d\x0d\x00\x00\x7d\x06\x7c\x06\x73\x01\x8c\x06\x7c\x06\x7c\x01\x6b\x37\x00\x00\x73\x01\x8c\x0c\x7c\x06\x91\x02\x8c\x0f\x04\x00\x63\x02\x7d\x06\x91\x02\x8c\x1d\x04\x00\x7d\x03\x7d\x05\x7d\x06\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x07\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x08\x7c\x07\x7d\x09\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x14\x00\x00\x5c\x02\x00\x00\x7d\x0a\x7d\x06\x7c\x06\x7c\x08\x7c\x0a\x19\x00\x00\x00\x6b\x37\x00\x00\x73\x01\x8c\x0f\x7c\x07\x64\x09\x7c\x0a\x1a\x00\x7d\x09\x01\x00\x6e\x01\x04\x00\x7c\x04\x72\x02\x89\x0c\x6e\x04\x89\x0c\x64\x09\x64\x02\x1a\x00\x7d\x0b\x7c\x0b\x89\x0c\x6a\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\xab\x01\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x53\x00\x63\x02\x01\x00\x63\x02\x7d\x02\x77\x00\x23\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x0d\x01\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\xab\x01\x00\x00\x00\x00\x00\x00\x64\x09\x82\x02\x77\x00\x78\x03\x59\x00\x77\x01\x63\x02\x01\x00\x63\x02\x7d\x06\x77\x00\x63\x02\x01\x00\x63\x03\x7d\x06\x7d\x05\x77\x00\x23\x00\x74\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x74\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x18\x01\x00\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0a\x67\x01\x7c\x00\xa2\x01\xad\x06\x8e\x00\x01\x00\x82\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[37]; - }_object; - } -posixpath_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 37, - }, - .ob_item = { - & posixpath_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - & ntpath_toplevel_consts_2._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - (PyObject *)&_Py_SINGLETON(strings).ascii[58], - & posixpath_toplevel_consts_5._ascii.ob_base, - Py_None, - & posixpath_toplevel_consts_7._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & codecs_toplevel_consts_3._object.ob_base.ob_base, - & posixpath_toplevel_consts_10._object.ob_base.ob_base, - & posixpath_toplevel_consts_11.ob_base.ob_base, - & posixpath_toplevel_consts_12.ob_base.ob_base, - & posixpath_toplevel_consts_13.ob_base.ob_base, - & posixpath_toplevel_consts_14.ob_base.ob_base, - & posixpath_toplevel_consts_15.ob_base.ob_base, - & posixpath_toplevel_consts_16.ob_base.ob_base, - & posixpath_toplevel_consts_17.ob_base.ob_base, - & posixpath_toplevel_consts_18.ob_base.ob_base, - & posixpath_toplevel_consts_19.ob_base.ob_base, - & posixpath_toplevel_consts_20.ob_base.ob_base, - & posixpath_toplevel_consts_21.ob_base.ob_base, - & posixpath_toplevel_consts_22.ob_base.ob_base, - & posixpath_toplevel_consts_23.ob_base.ob_base, - & posixpath_toplevel_consts_24.ob_base.ob_base, - & posixpath_toplevel_consts_25.ob_base.ob_base, - & ntpath_toplevel_consts_32._object.ob_base.ob_base, - & posixpath_toplevel_consts_27.ob_base.ob_base, - & posixpath_toplevel_consts_28.ob_base.ob_base, - Py_False, - & codecs_toplevel_consts_14_consts_5._object.ob_base.ob_base, - & posixpath_toplevel_consts_31.ob_base.ob_base, - & posixpath_toplevel_consts_32.ob_base.ob_base, - & const_str_darwin._ascii.ob_base, - & posixpath_toplevel_consts_34.ob_base.ob_base, - & posixpath_toplevel_consts_35.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[43]; - }_object; - } -posixpath_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 43, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str_curdir._ascii.ob_base, - & const_str_pardir._ascii.ob_base, - & const_str_extsep._ascii.ob_base, - &_Py_ID(sep), - & const_str_pathsep._ascii.ob_base, - & const_str_defpath._ascii.ob_base, - & const_str_altsep._ascii.ob_base, - & const_str_devnull._ascii.ob_base, - & const_str_os._ascii.ob_base, - & const_str_sys._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_genericpath._ascii.ob_base, - &_Py_ID(__all__), - & const_str__get_sep._ascii.ob_base, - & const_str_normcase._ascii.ob_base, - & const_str_isabs._ascii.ob_base, - &_Py_ID(join), - & const_str_split._ascii.ob_base, - & const_str_splitext._ascii.ob_base, - & const_str__splitext._ascii.ob_base, - & const_str_splitdrive._ascii.ob_base, - & const_str_splitroot._ascii.ob_base, - & const_str_basename._ascii.ob_base, - & const_str_dirname._ascii.ob_base, - & const_str_isjunction._ascii.ob_base, - & const_str_lexists._ascii.ob_base, - & const_str_ismount._ascii.ob_base, - & const_str_expanduser._ascii.ob_base, - & const_str__varprog._ascii.ob_base, - & const_str__varprogb._ascii.ob_base, - & const_str_expandvars._ascii.ob_base, - &_Py_ID(posix), - & const_str__path_normpath._ascii.ob_base, - & const_str_normpath._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - & const_str_abspath._ascii.ob_base, - & const_str_realpath._ascii.ob_base, - & const_str__joinrealpath._ascii.ob_base, - & const_str_platform._ascii.ob_base, - & const_str_supports_unicode_filenames._ascii.ob_base, - & const_str_relpath._ascii.ob_base, - & const_str_commonpath._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[269]; - } -posixpath_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 268, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x02\x0a\x01\x04\xf0\x1e\x00\x0a\x0d\x80\x06\xd8\x09\x0d\x80\x06\xd8\x09\x0c\x80\x06\xd8\x06\x09\x80\x03\xd8\x0a\x0d\x80\x07\xd8\x0a\x19\x80\x07\xd8\x09\x0d\x80\x06\xd8\x0a\x15\x80\x07\xe3\x00\x09\xdb\x00\x0a\xdb\x00\x0b\xdb\x00\x12\xdc\x00\x19\xf2\x04\x07\x0b\x38\x80\x07\xf2\x14\x04\x01\x13\xf2\x16\x02\x01\x18\xf2\x10\x04\x01\x1d\xf2\x16\x15\x01\x10\xf2\x3a\x09\x01\x16\xf2\x22\x08\x01\x37\xf0\x12\x00\x14\x1f\xd7\x13\x28\xd1\x13\x28\xd7\x13\x30\xd1\x13\x30\x80\x08\xd4\x00\x10\xf2\x0a\x04\x01\x14\xf2\x0e\x1a\x01\x23\xf2\x3e\x05\x01\x11\xf2\x14\x08\x01\x10\xf2\x1a\x04\x01\x11\xf2\x12\x06\x01\x10\xf2\x18\x1f\x01\x11\xf2\x56\x01\x36\x01\x29\xf0\x7a\x01\x00\x0c\x10\x80\x08\xd8\x0c\x10\x80\x09\xf2\x04\x2e\x01\x10\xf0\x6a\x01\x20\x01\x1b\xdd\x04\x30\xf2\x44\x01\x09\x01\x1a\xf0\x1e\x00\x22\x27\xf4\x00\x05\x01\x19\xf2\x12\x43\x01\x01\x16\xf0\x4c\x02\x00\x1f\x22\x9f\x6c\x99\x6c\xa8\x68\xd1\x1e\x36\xd0\x00\x1a\xf3\x04\x21\x01\x0e\xf3\x52\x01\x23\x01\x0e\xf8\xf0\x53\x05\x00\x08\x13\xf2\x00\x1d\x01\x1b\xf4\x02\x1c\x05\x1b\xf0\x03\x1d\x01\x1b\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -posixpath_toplevel_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x39\x06\x42\x22\x00\xc2\x22\x08\x42\x2d\x03\xc2\x2c\x01\x42\x2d\x03", -}; -static - struct _PyCode_DEF(352) -posixpath_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 176, - }, - .co_consts = & posixpath_toplevel_consts._object.ob_base.ob_base, - .co_names = & posixpath_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = & posixpath_toplevel_exceptiontable.ob_base.ob_base, - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 602, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & posixpath_toplevel_consts_11_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & posixpath_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x5a\x01\x64\x02\x5a\x02\x64\x01\x5a\x03\x64\x03\x5a\x04\x64\x04\x5a\x05\x64\x05\x5a\x06\x64\x06\x5a\x07\x64\x07\x5a\x08\x64\x08\x64\x06\x6c\x09\x5a\x09\x64\x08\x64\x06\x6c\x0a\x5a\x0a\x64\x08\x64\x06\x6c\x0b\x5a\x0b\x64\x08\x64\x06\x6c\x0c\x5a\x0c\x64\x08\x64\x09\x6c\x0c\xad\x02\x01\x00\x67\x00\x64\x0a\xa2\x01\x5a\x0d\x64\x0b\x84\x00\x5a\x0e\x64\x0c\x84\x00\x5a\x0f\x64\x0d\x84\x00\x5a\x10\x64\x0e\x84\x00\x5a\x11\x64\x0f\x84\x00\x5a\x12\x64\x10\x84\x00\x5a\x13\x65\x0c\x6a\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x13\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x11\x84\x00\x5a\x15\x64\x12\x84\x00\x5a\x16\x64\x13\x84\x00\x5a\x17\x64\x14\x84\x00\x5a\x18\x64\x15\x84\x00\x5a\x19\x64\x16\x84\x00\x5a\x1a\x64\x17\x84\x00\x5a\x1b\x64\x18\x84\x00\x5a\x1c\x64\x06\x61\x1d\x64\x06\x61\x1e\x64\x19\x84\x00\x5a\x1f\x09\x00\x64\x08\x64\x1a\x6c\x20\x6d\x21\x5a\x22\x01\x00\x64\x1c\x84\x00\x5a\x24\x64\x1d\x64\x1e\x9c\x01\x64\x1f\x84\x02\x5a\x25\x64\x20\x84\x00\x5a\x26\x65\x0a\x6a\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x21\x6b\x28\x00\x00\x5a\x28\x64\x24\x64\x22\x84\x01\x5a\x29\x64\x23\x84\x00\x5a\x2a\x79\x06\x23\x00\x65\x23\x24\x00\x72\x06\x01\x00\x64\x1b\x84\x00\x5a\x22\x59\x00\x8c\x2d\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_posixpath_toplevel(void) -{ - return Py_NewRef((PyObject *) &posixpath_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[1103]; - } -os_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 1102, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x4f\x53\x20\x72\x6f\x75\x74\x69\x6e\x65\x73\x20\x66\x6f\x72\x20\x4e\x54\x20\x6f\x72\x20\x50\x6f\x73\x69\x78\x20\x64\x65\x70\x65\x6e\x64\x69\x6e\x67\x20\x6f\x6e\x20\x77\x68\x61\x74\x20\x73\x79\x73\x74\x65\x6d\x20\x77\x65\x27\x72\x65\x20\x6f\x6e\x2e\x0a\x0a\x54\x68\x69\x73\x20\x65\x78\x70\x6f\x72\x74\x73\x3a\x0a\x20\x20\x2d\x20\x61\x6c\x6c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x20\x66\x72\x6f\x6d\x20\x70\x6f\x73\x69\x78\x20\x6f\x72\x20\x6e\x74\x2c\x20\x65\x2e\x67\x2e\x20\x75\x6e\x6c\x69\x6e\x6b\x2c\x20\x73\x74\x61\x74\x2c\x20\x65\x74\x63\x2e\x0a\x20\x20\x2d\x20\x6f\x73\x2e\x70\x61\x74\x68\x20\x69\x73\x20\x65\x69\x74\x68\x65\x72\x20\x70\x6f\x73\x69\x78\x70\x61\x74\x68\x20\x6f\x72\x20\x6e\x74\x70\x61\x74\x68\x0a\x20\x20\x2d\x20\x6f\x73\x2e\x6e\x61\x6d\x65\x20\x69\x73\x20\x65\x69\x74\x68\x65\x72\x20\x27\x70\x6f\x73\x69\x78\x27\x20\x6f\x72\x20\x27\x6e\x74\x27\x0a\x20\x20\x2d\x20\x6f\x73\x2e\x63\x75\x72\x64\x69\x72\x20\x69\x73\x20\x61\x20\x73\x74\x72\x69\x6e\x67\x20\x72\x65\x70\x72\x65\x73\x65\x6e\x74\x69\x6e\x67\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x28\x61\x6c\x77\x61\x79\x73\x20\x27\x2e\x27\x29\x0a\x20\x20\x2d\x20\x6f\x73\x2e\x70\x61\x72\x64\x69\x72\x20\x69\x73\x20\x61\x20\x73\x74\x72\x69\x6e\x67\x20\x72\x65\x70\x72\x65\x73\x65\x6e\x74\x69\x6e\x67\x20\x74\x68\x65\x20\x70\x61\x72\x65\x6e\x74\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x28\x61\x6c\x77\x61\x79\x73\x20\x27\x2e\x2e\x27\x29\x0a\x20\x20\x2d\x20\x6f\x73\x2e\x73\x65\x70\x20\x69\x73\x20\x74\x68\x65\x20\x28\x6f\x72\x20\x61\x20\x6d\x6f\x73\x74\x20\x63\x6f\x6d\x6d\x6f\x6e\x29\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x20\x28\x27\x2f\x27\x20\x6f\x72\x20\x27\x5c\x5c\x27\x29\x0a\x20\x20\x2d\x20\x6f\x73\x2e\x65\x78\x74\x73\x65\x70\x20\x69\x73\x20\x74\x68\x65\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x20\x28\x61\x6c\x77\x61\x79\x73\x20\x27\x2e\x27\x29\x0a\x20\x20\x2d\x20\x6f\x73\x2e\x61\x6c\x74\x73\x65\x70\x20\x69\x73\x20\x74\x68\x65\x20\x61\x6c\x74\x65\x72\x6e\x61\x74\x65\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x20\x28\x4e\x6f\x6e\x65\x20\x6f\x72\x20\x27\x2f\x27\x29\x0a\x20\x20\x2d\x20\x6f\x73\x2e\x70\x61\x74\x68\x73\x65\x70\x20\x69\x73\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x20\x75\x73\x65\x64\x20\x69\x6e\x20\x24\x50\x41\x54\x48\x20\x65\x74\x63\x0a\x20\x20\x2d\x20\x6f\x73\x2e\x6c\x69\x6e\x65\x73\x65\x70\x20\x69\x73\x20\x74\x68\x65\x20\x6c\x69\x6e\x65\x20\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x20\x69\x6e\x20\x74\x65\x78\x74\x20\x66\x69\x6c\x65\x73\x20\x28\x27\x5c\x72\x27\x20\x6f\x72\x20\x27\x5c\x6e\x27\x20\x6f\x72\x20\x27\x5c\x72\x5c\x6e\x27\x29\x0a\x20\x20\x2d\x20\x6f\x73\x2e\x64\x65\x66\x70\x61\x74\x68\x20\x69\x73\x20\x74\x68\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x73\x65\x61\x72\x63\x68\x20\x70\x61\x74\x68\x20\x66\x6f\x72\x20\x65\x78\x65\x63\x75\x74\x61\x62\x6c\x65\x73\x0a\x20\x20\x2d\x20\x6f\x73\x2e\x64\x65\x76\x6e\x75\x6c\x6c\x20\x69\x73\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x20\x70\x61\x74\x68\x20\x6f\x66\x20\x74\x68\x65\x20\x6e\x75\x6c\x6c\x20\x64\x65\x76\x69\x63\x65\x20\x28\x27\x2f\x64\x65\x76\x2f\x6e\x75\x6c\x6c\x27\x2c\x20\x65\x74\x63\x2e\x29\x0a\x0a\x50\x72\x6f\x67\x72\x61\x6d\x73\x20\x74\x68\x61\x74\x20\x69\x6d\x70\x6f\x72\x74\x20\x61\x6e\x64\x20\x75\x73\x65\x20\x27\x6f\x73\x27\x20\x73\x74\x61\x6e\x64\x20\x61\x20\x62\x65\x74\x74\x65\x72\x20\x63\x68\x61\x6e\x63\x65\x20\x6f\x66\x20\x62\x65\x69\x6e\x67\x0a\x70\x6f\x72\x74\x61\x62\x6c\x65\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x20\x70\x6c\x61\x74\x66\x6f\x72\x6d\x73\x2e\x20\x20\x4f\x66\x20\x63\x6f\x75\x72\x73\x65\x2c\x20\x74\x68\x65\x79\x20\x6d\x75\x73\x74\x20\x74\x68\x65\x6e\x0a\x6f\x6e\x6c\x79\x20\x75\x73\x65\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x20\x74\x68\x61\x74\x20\x61\x72\x65\x20\x64\x65\x66\x69\x6e\x65\x64\x20\x62\x79\x20\x61\x6c\x6c\x20\x70\x6c\x61\x74\x66\x6f\x72\x6d\x73\x20\x28\x65\x2e\x67\x2e\x2c\x20\x75\x6e\x6c\x69\x6e\x6b\x0a\x61\x6e\x64\x20\x6f\x70\x65\x6e\x64\x69\x72\x29\x2c\x20\x61\x6e\x64\x20\x6c\x65\x61\x76\x65\x20\x61\x6c\x6c\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x6d\x61\x6e\x69\x70\x75\x6c\x61\x74\x69\x6f\x6e\x20\x74\x6f\x20\x6f\x73\x2e\x70\x61\x74\x68\x0a\x28\x65\x2e\x67\x2e\x2c\x20\x73\x70\x6c\x69\x74\x20\x61\x6e\x64\x20\x6a\x6f\x69\x6e\x29\x2e\x0a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_3 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__check_methods._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_linesep = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "linesep", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_get_exec_path = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "get_exec_path", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_fdopen = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fdopen", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[18]; - }_object; - } -os_toplevel_consts_4 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 18, - }, - .ob_item = { - & const_str_altsep._ascii.ob_base, - & const_str_curdir._ascii.ob_base, - & const_str_pardir._ascii.ob_base, - &_Py_ID(sep), - & const_str_pathsep._ascii.ob_base, - & const_str_linesep._ascii.ob_base, - & const_str_defpath._ascii.ob_base, - &_Py_ID(name), - &_Py_ID(path), - & const_str_devnull._ascii.ob_base, - & const_str_SEEK_SET._ascii.ob_base, - & const_str_SEEK_CUR._ascii.ob_base, - & const_str_SEEK_END._ascii.ob_base, - & const_str_fsencode._ascii.ob_base, - & const_str_fsdecode._ascii.ob_base, - & const_str_get_exec_path._ascii.ob_base, - & const_str_fdopen._ascii.ob_base, - & const_str_extsep._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(globals), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -os_toplevel_consts_5_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str__exists = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_exists", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[16]; - } -os_toplevel_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 15, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0b\x0f\x94\x37\x93\x39\xd0\x0b\x1c\xd0\x04\x1c", -}; -static - struct _PyCode_DEF(26) -os_toplevel_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 13, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 41, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 603, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__exists._ascii.ob_base, - .co_qualname = & const_str__exists._ascii.ob_base, - .co_linetable = & os_toplevel_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x76\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_Py_SINGLETON(strings).ascii[95], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_list._ascii.ob_base, - &_Py_ID(__all__), - & const_str_AttributeError._ascii.ob_base, - & const_str_dir._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str__get_exports_list = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_exports_list", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[73]; - } -os_toplevel_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 72, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x02\x03\x05\x37\xdc\x0f\x13\x90\x46\x97\x4e\x91\x4e\xd3\x0f\x23\xd0\x08\x23\xf8\xdc\x0b\x19\xf2\x00\x01\x05\x37\xdc\x1b\x1e\x98\x76\x9c\x3b\xd3\x0f\x36\x99\x3b\x90\x61\xa8\x21\xa8\x41\xa9\x24\xb0\x23\xab\x2b\x92\x01\x99\x3b\xf9\xd4\x0f\x36\xd2\x08\x36\xf0\x03\x01\x05\x37\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[31]; - } -os_toplevel_consts_6_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 30, - }, - .ob_shash = -1, - .ob_sval = "\x82\x14\x17\x00\x97\x16\x41\x0b\x03\xad\x0d\x41\x00\x06\xbb\x04\x41\x00\x06\xbf\x09\x41\x0b\x03\xc1\x0a\x01\x41\x0b\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(module), - (PyObject *)&_Py_SINGLETON(strings).ascii[110], - }, - }, -}; -static - struct _PyCode_DEF(156) -os_toplevel_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 78, - }, - .co_consts = & os_toplevel_consts_6_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_6_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 44, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 604, - .co_localsplusnames = & os_toplevel_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__get_exports_list._ascii.ob_base, - .co_qualname = & const_str__get_exports_list._ascii.ob_base, - .co_linetable = & os_toplevel_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x2b\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x8f\x01\x63\x02\x67\x00\x63\x02\x5d\x0d\x00\x00\x7d\x01\x7c\x01\x64\x01\x19\x00\x00\x00\x64\x02\x6b\x37\x00\x00\x73\x01\x8c\x0c\x7c\x01\x91\x02\x8c\x0f\x04\x00\x6e\x05\x63\x02\x01\x00\x63\x02\x7d\x01\x77\x00\x63\x02\x7d\x01\x63\x02\x59\x00\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__exit = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_exit", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_10 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__exit._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str__have_functions = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_have_functions", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_12 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__have_functions._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -os_toplevel_consts_14 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0d\x0a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -os_toplevel_consts_15 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "no os specific module found", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -os_toplevel_consts_16 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "os.path", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -os_toplevel_consts_17 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_curdir._ascii.ob_base, - & const_str_pardir._ascii.ob_base, - &_Py_ID(sep), - & const_str_pathsep._ascii.ob_base, - & const_str_defpath._ascii.ob_base, - & const_str_extsep._ascii.ob_base, - & const_str_altsep._ascii.ob_base, - & const_str_devnull._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str__globals = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_globals", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str__set = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_set", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_19_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str__globals._ascii.ob_base, - & const_str__have_functions._ascii.ob_base, - & const_str__set._ascii.ob_base, - &_Py_ID(add), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str__add = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_add", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[40]; - } -os_toplevel_consts_19_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 39, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0c\x0e\x94\x28\x89\x4e\xa0\x13\xac\x0f\xd1\x21\x37\xdc\x0c\x10\x8f\x48\x89\x48\x94\x58\x98\x62\x91\x5c\xd5\x0c\x22\xf0\x03\x00\x22\x38\x88\x4e", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_19_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_str._ascii.ob_base, - & const_str_fn._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(96) -os_toplevel_consts_19 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 48, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_19_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 104, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 605, - .co_localsplusnames = & os_toplevel_consts_19_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__add._ascii.ob_base, - .co_qualname = & const_str__add._ascii.ob_base, - .co_linetable = & os_toplevel_consts_19_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x72\x26\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x72\x1d\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x79\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_HAVE_FACCESSAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FACCESSAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_HAVE_FCHMODAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FCHMODAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_chmod = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "chmod", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_HAVE_FCHOWNAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FCHOWNAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_chown = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "chown", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_HAVE_FSTATAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FSTATAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_HAVE_FUTIMESAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FUTIMESAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_utime = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "utime", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_HAVE_LINKAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_LINKAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_link = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "link", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_HAVE_MKDIRAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_MKDIRAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_HAVE_MKFIFOAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_MKFIFOAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_mkfifo = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "mkfifo", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_HAVE_MKNODAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_MKNODAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_mknod = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "mknod", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_HAVE_OPENAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_OPENAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_HAVE_READLINKAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_READLINKAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_HAVE_RENAMEAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_RENAMEAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_rename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "rename", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_HAVE_SYMLINKAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_SYMLINKAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_symlink = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "symlink", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_HAVE_UNLINKAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_UNLINKAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_rmdir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "rmdir", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_HAVE_UTIMENSAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_UTIMENSAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_HAVE_FCHDIR = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FCHDIR", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_chdir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "chdir", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_HAVE_FCHMOD = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FCHMOD", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_HAVE_FCHOWN = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FCHOWN", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_HAVE_FDOPENDIR = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FDOPENDIR", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_scandir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "scandir", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_HAVE_FEXECVE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FEXECVE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_execve = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "execve", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_HAVE_FTRUNCATE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FTRUNCATE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_HAVE_FUTIMENS = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FUTIMENS", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_HAVE_FUTIMES = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FUTIMES", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_HAVE_FPATHCONF = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FPATHCONF", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_pathconf = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pathconf", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_statvfs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "statvfs", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_fstatvfs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fstatvfs", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_HAVE_FSTATVFS = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_FSTATVFS", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_HAVE_LCHFLAGS = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_LCHFLAGS", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_chflags = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "chflags", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_HAVE_LCHMOD = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_LCHMOD", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_lchown = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "lchown", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_HAVE_LCHOWN = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_LCHOWN", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_HAVE_LUTIMES = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_LUTIMES", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_HAVE_LSTAT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "HAVE_LSTAT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_MS_WINDOWS = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "MS_WINDOWS", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[396]; - } -os_toplevel_consts_79_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 395, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x6d\x61\x6b\x65\x64\x69\x72\x73\x28\x6e\x61\x6d\x65\x20\x5b\x2c\x20\x6d\x6f\x64\x65\x3d\x30\x6f\x37\x37\x37\x5d\x5b\x2c\x20\x65\x78\x69\x73\x74\x5f\x6f\x6b\x3d\x46\x61\x6c\x73\x65\x5d\x29\x0a\x0a\x20\x20\x20\x20\x53\x75\x70\x65\x72\x2d\x6d\x6b\x64\x69\x72\x3b\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x6c\x65\x61\x66\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x61\x6e\x64\x20\x61\x6c\x6c\x20\x69\x6e\x74\x65\x72\x6d\x65\x64\x69\x61\x74\x65\x20\x6f\x6e\x65\x73\x2e\x20\x20\x57\x6f\x72\x6b\x73\x20\x6c\x69\x6b\x65\x0a\x20\x20\x20\x20\x6d\x6b\x64\x69\x72\x2c\x20\x65\x78\x63\x65\x70\x74\x20\x74\x68\x61\x74\x20\x61\x6e\x79\x20\x69\x6e\x74\x65\x72\x6d\x65\x64\x69\x61\x74\x65\x20\x70\x61\x74\x68\x20\x73\x65\x67\x6d\x65\x6e\x74\x20\x28\x6e\x6f\x74\x20\x6a\x75\x73\x74\x20\x74\x68\x65\x20\x72\x69\x67\x68\x74\x6d\x6f\x73\x74\x29\x0a\x20\x20\x20\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x63\x72\x65\x61\x74\x65\x64\x20\x69\x66\x20\x69\x74\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x65\x78\x69\x73\x74\x2e\x20\x49\x66\x20\x74\x68\x65\x20\x74\x61\x72\x67\x65\x74\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x61\x6c\x72\x65\x61\x64\x79\x0a\x20\x20\x20\x20\x65\x78\x69\x73\x74\x73\x2c\x20\x72\x61\x69\x73\x65\x20\x61\x6e\x20\x4f\x53\x45\x72\x72\x6f\x72\x20\x69\x66\x20\x65\x78\x69\x73\x74\x5f\x6f\x6b\x20\x69\x73\x20\x46\x61\x6c\x73\x65\x2e\x20\x4f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x6e\x6f\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x20\x69\x73\x0a\x20\x20\x20\x20\x72\x61\x69\x73\x65\x64\x2e\x20\x20\x54\x68\x69\x73\x20\x69\x73\x20\x72\x65\x63\x75\x72\x73\x69\x76\x65\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_exist_ok = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "exist_ok", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_79_consts_1 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_exist_ok._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_79_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & os_toplevel_consts_79_consts_0._ascii.ob_base, - & os_toplevel_consts_79_consts_1._object.ob_base.ob_base, - & const_str_ASCII._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_makedirs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "makedirs", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -os_toplevel_consts_79_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - &_Py_ID(path), - & const_str_split._ascii.ob_base, - & const_str_exists._ascii.ob_base, - & const_str_makedirs._ascii.ob_base, - & const_str_FileExistsError._ascii.ob_base, - & const_str_curdir._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_mkdir._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_isdir._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[189]; - } -os_toplevel_consts_79_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 188, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x14\x00\x12\x16\x97\x1a\x91\x1a\x98\x44\xd3\x11\x21\x81\x4a\x80\x44\x88\x24\xd9\x0b\x0f\xdc\x15\x19\x97\x5a\x91\x5a\xa0\x04\xd3\x15\x25\x89\x0a\x88\x04\x88\x64\xd9\x07\x0b\x91\x04\x9c\x54\x9f\x5b\x99\x5b\xa8\x14\xd4\x1d\x2e\xf0\x02\x04\x09\x11\xdc\x0c\x14\x90\x54\xa0\x48\xd5\x0c\x2d\xf4\x08\x00\x10\x16\x88\x04\xdc\x0b\x15\x90\x64\x9c\x45\xd4\x0b\x22\xdc\x13\x18\x9c\x16\xa0\x17\xd3\x13\x29\x88\x44\xd8\x0b\x0f\x90\x34\x8a\x3c\xd8\x0c\x12\xf0\x02\x06\x05\x12\xdc\x08\x0d\x88\x64\x90\x44\xd5\x08\x19\xf8\xf4\x13\x00\x10\x1f\xf2\x00\x02\x09\x11\xe1\x0c\x10\xf0\x05\x02\x09\x11\xfb\xf4\x14\x00\x0c\x13\xf2\x00\x04\x05\x12\xf1\x06\x00\x10\x18\x9c\x74\x9f\x7a\x99\x7a\xa8\x24\xd4\x1f\x2f\xd8\x0c\x11\xf1\x03\x00\x20\x30\xf0\x07\x04\x05\x12\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[37]; - } -os_toplevel_consts_79_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 36, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x0d\x0d\x42\x14\x00\xc2\x07\x0c\x42\x23\x00\xc2\x14\x09\x42\x20\x03\xc2\x1f\x01\x42\x20\x03\xc2\x23\x21\x43\x07\x03\xc3\x06\x01\x43\x07\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_cdir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "cdir", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -os_toplevel_consts_79_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(name), - &_Py_ID(mode), - & const_str_exist_ok._ascii.ob_base, - & const_str_head._ascii.ob_base, - & const_str_tail._ascii.ob_base, - & const_str_cdir._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(404) -os_toplevel_consts_79 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 202, - }, - .co_consts = & os_toplevel_consts_79_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_79_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_79_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 200, - .co_nlocalsplus = 6, - .co_nlocals = 6, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 606, - .co_localsplusnames = & os_toplevel_consts_79_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_30_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_makedirs._ascii.ob_base, - .co_qualname = & const_str_makedirs._ascii.ob_base, - .co_linetable = & os_toplevel_consts_79_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x03\x7d\x04\x7c\x04\x73\x18\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x03\x7d\x04\x7c\x03\x72\x51\x7c\x04\x72\x4f\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x73\x3a\x09\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x02\xac\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x10\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x05\x7c\x04\x7c\x05\x6b\x28\x00\x00\x72\x01\x79\x03\x09\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x03\x23\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x8c\x45\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x1b\x01\x00\x7c\x02\x72\x15\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x73\x01\x82\x00\x59\x00\x79\x03\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[429]; - } -os_toplevel_consts_80_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 428, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x72\x65\x6d\x6f\x76\x65\x64\x69\x72\x73\x28\x6e\x61\x6d\x65\x29\x0a\x0a\x20\x20\x20\x20\x53\x75\x70\x65\x72\x2d\x72\x6d\x64\x69\x72\x3b\x20\x72\x65\x6d\x6f\x76\x65\x20\x61\x20\x6c\x65\x61\x66\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x61\x6e\x64\x20\x61\x6c\x6c\x20\x65\x6d\x70\x74\x79\x20\x69\x6e\x74\x65\x72\x6d\x65\x64\x69\x61\x74\x65\x0a\x20\x20\x20\x20\x6f\x6e\x65\x73\x2e\x20\x20\x57\x6f\x72\x6b\x73\x20\x6c\x69\x6b\x65\x20\x72\x6d\x64\x69\x72\x20\x65\x78\x63\x65\x70\x74\x20\x74\x68\x61\x74\x2c\x20\x69\x66\x20\x74\x68\x65\x20\x6c\x65\x61\x66\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x73\x0a\x20\x20\x20\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x20\x72\x65\x6d\x6f\x76\x65\x64\x2c\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x63\x6f\x72\x72\x65\x73\x70\x6f\x6e\x64\x69\x6e\x67\x20\x74\x6f\x20\x72\x69\x67\x68\x74\x6d\x6f\x73\x74\x20\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x73\x65\x67\x6d\x65\x6e\x74\x73\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x70\x72\x75\x6e\x65\x64\x20\x61\x77\x61\x79\x20\x75\x6e\x74\x69\x6c\x20\x65\x69\x74\x68\x65\x72\x20\x74\x68\x65\x20\x77\x68\x6f\x6c\x65\x20\x70\x61\x74\x68\x20\x69\x73\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x75\x6d\x65\x64\x20\x6f\x72\x20\x61\x6e\x20\x65\x72\x72\x6f\x72\x20\x6f\x63\x63\x75\x72\x73\x2e\x20\x20\x45\x72\x72\x6f\x72\x73\x20\x64\x75\x72\x69\x6e\x67\x20\x74\x68\x69\x73\x20\x6c\x61\x74\x74\x65\x72\x20\x70\x68\x61\x73\x65\x20\x61\x72\x65\x0a\x20\x20\x20\x20\x69\x67\x6e\x6f\x72\x65\x64\x20\x2d\x2d\x20\x74\x68\x65\x79\x20\x67\x65\x6e\x65\x72\x61\x6c\x6c\x79\x20\x6d\x65\x61\x6e\x20\x74\x68\x61\x74\x20\x61\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x77\x61\x73\x20\x6e\x6f\x74\x20\x65\x6d\x70\x74\x79\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_80_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & os_toplevel_consts_80_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_80_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_rmdir._ascii.ob_base, - &_Py_ID(path), - & const_str_split._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_removedirs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "removedirs", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[121]; - } -os_toplevel_consts_80_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 120, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x16\x00\x05\x0a\x88\x24\x84\x4b\xdc\x11\x15\x97\x1a\x91\x1a\x98\x44\xd3\x11\x21\x81\x4a\x80\x44\x88\x24\xd9\x0b\x0f\xdc\x15\x19\x97\x5a\x91\x5a\xa0\x04\xd3\x15\x25\x89\x0a\x88\x04\x88\x64\xd9\x0a\x0e\x91\x34\xf0\x02\x03\x09\x12\xdc\x0c\x11\x90\x24\x8c\x4b\xf4\x06\x00\x16\x1a\x97\x5a\x91\x5a\xa0\x04\xd3\x15\x25\x89\x0a\x88\x04\x88\x64\xf1\x0b\x00\x0b\x0f\x93\x34\x88\x24\x90\x34\x88\x24\xf8\xf4\x06\x00\x10\x17\xf2\x00\x01\x09\x12\xd9\x0c\x11\xf0\x03\x01\x09\x12\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -os_toplevel_consts_80_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x03\x0b\x41\x2f\x00\xc1\x2f\x09\x41\x3b\x03\xc1\x3a\x01\x41\x3b\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_80_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(name), - & const_str_head._ascii.ob_base, - & const_str_tail._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(252) -os_toplevel_consts_80 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 126, - }, - .co_consts = & os_toplevel_consts_80_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_80_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_80_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 232, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 607, - .co_localsplusnames = & os_toplevel_consts_80_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_removedirs._ascii.ob_base, - .co_qualname = & const_str_removedirs._ascii.ob_base, - .co_linetable = & os_toplevel_consts_80_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x01\x7d\x02\x7c\x02\x73\x18\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x01\x7d\x02\x7c\x01\x72\x2e\x7c\x02\x72\x2b\x09\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x01\x7d\x02\x7c\x01\x72\x04\x7c\x02\x72\x01\x8c\x29\x79\x01\x79\x01\x79\x01\x79\x01\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[573]; - } -os_toplevel_consts_81_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 572, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x72\x65\x6e\x61\x6d\x65\x73\x28\x6f\x6c\x64\x2c\x20\x6e\x65\x77\x29\x0a\x0a\x20\x20\x20\x20\x53\x75\x70\x65\x72\x2d\x72\x65\x6e\x61\x6d\x65\x3b\x20\x63\x72\x65\x61\x74\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x61\x73\x20\x6e\x65\x63\x65\x73\x73\x61\x72\x79\x20\x61\x6e\x64\x20\x64\x65\x6c\x65\x74\x65\x20\x61\x6e\x79\x20\x6c\x65\x66\x74\x0a\x20\x20\x20\x20\x65\x6d\x70\x74\x79\x2e\x20\x20\x57\x6f\x72\x6b\x73\x20\x6c\x69\x6b\x65\x20\x72\x65\x6e\x61\x6d\x65\x2c\x20\x65\x78\x63\x65\x70\x74\x20\x63\x72\x65\x61\x74\x69\x6f\x6e\x20\x6f\x66\x20\x61\x6e\x79\x20\x69\x6e\x74\x65\x72\x6d\x65\x64\x69\x61\x74\x65\x0a\x20\x20\x20\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x6e\x65\x65\x64\x65\x64\x20\x74\x6f\x20\x6d\x61\x6b\x65\x20\x74\x68\x65\x20\x6e\x65\x77\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x67\x6f\x6f\x64\x20\x69\x73\x20\x61\x74\x74\x65\x6d\x70\x74\x65\x64\x0a\x20\x20\x20\x20\x66\x69\x72\x73\x74\x2e\x20\x20\x41\x66\x74\x65\x72\x20\x74\x68\x65\x20\x72\x65\x6e\x61\x6d\x65\x2c\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x63\x6f\x72\x72\x65\x73\x70\x6f\x6e\x64\x69\x6e\x67\x20\x74\x6f\x20\x72\x69\x67\x68\x74\x6d\x6f\x73\x74\x0a\x20\x20\x20\x20\x70\x61\x74\x68\x20\x73\x65\x67\x6d\x65\x6e\x74\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x6f\x6c\x64\x20\x6e\x61\x6d\x65\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x70\x72\x75\x6e\x65\x64\x20\x75\x6e\x74\x69\x6c\x20\x65\x69\x74\x68\x65\x72\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x77\x68\x6f\x6c\x65\x20\x70\x61\x74\x68\x20\x69\x73\x20\x63\x6f\x6e\x73\x75\x6d\x65\x64\x20\x6f\x72\x20\x61\x20\x6e\x6f\x6e\x65\x6d\x70\x74\x79\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x73\x20\x66\x6f\x75\x6e\x64\x2e\x0a\x0a\x20\x20\x20\x20\x4e\x6f\x74\x65\x3a\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x61\x6e\x20\x66\x61\x69\x6c\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x6e\x65\x77\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x73\x74\x72\x75\x63\x74\x75\x72\x65\x20\x6d\x61\x64\x65\x0a\x20\x20\x20\x20\x69\x66\x20\x79\x6f\x75\x20\x6c\x61\x63\x6b\x20\x70\x65\x72\x6d\x69\x73\x73\x69\x6f\x6e\x73\x20\x6e\x65\x65\x64\x65\x64\x20\x74\x6f\x20\x75\x6e\x6c\x69\x6e\x6b\x20\x74\x68\x65\x20\x6c\x65\x61\x66\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x6f\x72\x0a\x20\x20\x20\x20\x66\x69\x6c\x65\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_81_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & os_toplevel_consts_81_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -os_toplevel_consts_81_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(path), - & const_str_split._ascii.ob_base, - & const_str_exists._ascii.ob_base, - & const_str_makedirs._ascii.ob_base, - & const_str_rename._ascii.ob_base, - & const_str_removedirs._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_renames = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "renames", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[117]; - } -os_toplevel_consts_81_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 116, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x1e\x00\x12\x16\x97\x1a\x91\x1a\x98\x43\x93\x1f\x81\x4a\x80\x44\x88\x24\xd9\x07\x0b\x91\x04\x9c\x54\x9f\x5b\x99\x5b\xa8\x14\xd4\x1d\x2e\xdc\x08\x10\x90\x14\x8c\x0e\xdc\x04\x0a\x88\x33\x90\x03\xd4\x04\x14\xdc\x11\x15\x97\x1a\x91\x1a\x98\x43\x93\x1f\x81\x4a\x80\x44\x88\x24\xd9\x07\x0b\x91\x04\xf0\x02\x03\x09\x11\xdc\x0c\x16\x90\x74\xd5\x0c\x1c\xf0\x05\x00\x11\x15\x80\x74\xf8\xf4\x06\x00\x10\x17\xf2\x00\x01\x09\x11\xd9\x0c\x10\xf0\x03\x01\x09\x11\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -os_toplevel_consts_81_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x26\x0b\x41\x34\x00\xc1\x34\x09\x42\x00\x03\xc1\x3f\x01\x42\x00\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_81_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_old._ascii.ob_base, - & const_str_new._ascii.ob_base, - & const_str_head._ascii.ob_base, - & const_str_tail._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(262) -os_toplevel_consts_81 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 131, - }, - .co_consts = & os_toplevel_consts_81_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_81_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_81_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 254, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 608, - .co_localsplusnames = & os_toplevel_consts_81_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_renames._ascii.ob_base, - .co_qualname = & const_str_renames._ascii.ob_base, - .co_linetable = & os_toplevel_consts_81_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x02\x7d\x03\x7c\x02\x72\x22\x7c\x03\x72\x20\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x73\x0b\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x02\x7d\x03\x7c\x02\x72\x10\x7c\x03\x72\x0d\x09\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01\x79\x01\x79\x01\x23\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_82 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_makedirs._ascii.ob_base, - & const_str_removedirs._ascii.ob_base, - & const_str_renames._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[2877]; - } -os_toplevel_consts_83_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2876, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x44\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x74\x72\x65\x65\x20\x67\x65\x6e\x65\x72\x61\x74\x6f\x72\x2e\x0a\x0a\x20\x20\x20\x20\x46\x6f\x72\x20\x65\x61\x63\x68\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x74\x72\x65\x65\x20\x72\x6f\x6f\x74\x65\x64\x20\x61\x74\x20\x74\x6f\x70\x20\x28\x69\x6e\x63\x6c\x75\x64\x69\x6e\x67\x20\x74\x6f\x70\x0a\x20\x20\x20\x20\x69\x74\x73\x65\x6c\x66\x2c\x20\x62\x75\x74\x20\x65\x78\x63\x6c\x75\x64\x69\x6e\x67\x20\x27\x2e\x27\x20\x61\x6e\x64\x20\x27\x2e\x2e\x27\x29\x2c\x20\x79\x69\x65\x6c\x64\x73\x20\x61\x20\x33\x2d\x74\x75\x70\x6c\x65\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x72\x70\x61\x74\x68\x2c\x20\x64\x69\x72\x6e\x61\x6d\x65\x73\x2c\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x73\x0a\x0a\x20\x20\x20\x20\x64\x69\x72\x70\x61\x74\x68\x20\x69\x73\x20\x61\x20\x73\x74\x72\x69\x6e\x67\x2c\x20\x74\x68\x65\x20\x70\x61\x74\x68\x20\x74\x6f\x20\x74\x68\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x2e\x20\x20\x64\x69\x72\x6e\x61\x6d\x65\x73\x20\x69\x73\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x66\x0a\x20\x20\x20\x20\x74\x68\x65\x20\x6e\x61\x6d\x65\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x73\x75\x62\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x69\x6e\x20\x64\x69\x72\x70\x61\x74\x68\x20\x28\x69\x6e\x63\x6c\x75\x64\x69\x6e\x67\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x74\x6f\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x2c\x0a\x20\x20\x20\x20\x61\x6e\x64\x20\x65\x78\x63\x6c\x75\x64\x69\x6e\x67\x20\x27\x2e\x27\x20\x61\x6e\x64\x20\x27\x2e\x2e\x27\x29\x2e\x0a\x20\x20\x20\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x73\x20\x69\x73\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x66\x20\x74\x68\x65\x20\x6e\x61\x6d\x65\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x6e\x6f\x6e\x2d\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x66\x69\x6c\x65\x73\x20\x69\x6e\x20\x64\x69\x72\x70\x61\x74\x68\x2e\x0a\x20\x20\x20\x20\x4e\x6f\x74\x65\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x6e\x61\x6d\x65\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x6c\x69\x73\x74\x73\x20\x61\x72\x65\x20\x6a\x75\x73\x74\x20\x6e\x61\x6d\x65\x73\x2c\x20\x77\x69\x74\x68\x20\x6e\x6f\x20\x70\x61\x74\x68\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x2e\x0a\x20\x20\x20\x20\x54\x6f\x20\x67\x65\x74\x20\x61\x20\x66\x75\x6c\x6c\x20\x70\x61\x74\x68\x20\x28\x77\x68\x69\x63\x68\x20\x62\x65\x67\x69\x6e\x73\x20\x77\x69\x74\x68\x20\x74\x6f\x70\x29\x20\x74\x6f\x20\x61\x20\x66\x69\x6c\x65\x20\x6f\x72\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x6e\x0a\x20\x20\x20\x20\x64\x69\x72\x70\x61\x74\x68\x2c\x20\x64\x6f\x20\x6f\x73\x2e\x70\x61\x74\x68\x2e\x6a\x6f\x69\x6e\x28\x64\x69\x72\x70\x61\x74\x68\x2c\x20\x6e\x61\x6d\x65\x29\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x6f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x61\x72\x67\x20\x27\x74\x6f\x70\x64\x6f\x77\x6e\x27\x20\x69\x73\x20\x74\x72\x75\x65\x20\x6f\x72\x20\x6e\x6f\x74\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x2c\x20\x74\x68\x65\x20\x74\x72\x69\x70\x6c\x65\x20\x66\x6f\x72\x20\x61\x0a\x20\x20\x20\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x73\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x64\x20\x62\x65\x66\x6f\x72\x65\x20\x74\x68\x65\x20\x74\x72\x69\x70\x6c\x65\x73\x20\x66\x6f\x72\x20\x61\x6e\x79\x20\x6f\x66\x20\x69\x74\x73\x20\x73\x75\x62\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x0a\x20\x20\x20\x20\x28\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x61\x72\x65\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x64\x20\x74\x6f\x70\x20\x64\x6f\x77\x6e\x29\x2e\x20\x20\x49\x66\x20\x74\x6f\x70\x64\x6f\x77\x6e\x20\x69\x73\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x65\x20\x74\x72\x69\x70\x6c\x65\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x61\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x73\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x64\x20\x61\x66\x74\x65\x72\x20\x74\x68\x65\x20\x74\x72\x69\x70\x6c\x65\x73\x20\x66\x6f\x72\x20\x61\x6c\x6c\x20\x6f\x66\x20\x69\x74\x73\x0a\x20\x20\x20\x20\x73\x75\x62\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x28\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x61\x72\x65\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x64\x20\x62\x6f\x74\x74\x6f\x6d\x20\x75\x70\x29\x2e\x0a\x0a\x20\x20\x20\x20\x57\x68\x65\x6e\x20\x74\x6f\x70\x64\x6f\x77\x6e\x20\x69\x73\x20\x74\x72\x75\x65\x2c\x20\x74\x68\x65\x20\x63\x61\x6c\x6c\x65\x72\x20\x63\x61\x6e\x20\x6d\x6f\x64\x69\x66\x79\x20\x74\x68\x65\x20\x64\x69\x72\x6e\x61\x6d\x65\x73\x20\x6c\x69\x73\x74\x20\x69\x6e\x2d\x70\x6c\x61\x63\x65\x0a\x20\x20\x20\x20\x28\x65\x2e\x67\x2e\x2c\x20\x76\x69\x61\x20\x64\x65\x6c\x20\x6f\x72\x20\x73\x6c\x69\x63\x65\x20\x61\x73\x73\x69\x67\x6e\x6d\x65\x6e\x74\x29\x2c\x20\x61\x6e\x64\x20\x77\x61\x6c\x6b\x20\x77\x69\x6c\x6c\x20\x6f\x6e\x6c\x79\x20\x72\x65\x63\x75\x72\x73\x65\x20\x69\x6e\x74\x6f\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x73\x75\x62\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x77\x68\x6f\x73\x65\x20\x6e\x61\x6d\x65\x73\x20\x72\x65\x6d\x61\x69\x6e\x20\x69\x6e\x20\x64\x69\x72\x6e\x61\x6d\x65\x73\x3b\x20\x74\x68\x69\x73\x20\x63\x61\x6e\x20\x62\x65\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x70\x72\x75\x6e\x65\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x73\x65\x61\x72\x63\x68\x2c\x20\x6f\x72\x20\x74\x6f\x20\x69\x6d\x70\x6f\x73\x65\x20\x61\x20\x73\x70\x65\x63\x69\x66\x69\x63\x20\x6f\x72\x64\x65\x72\x20\x6f\x66\x20\x76\x69\x73\x69\x74\x69\x6e\x67\x2e\x20\x20\x4d\x6f\x64\x69\x66\x79\x69\x6e\x67\x20\x64\x69\x72\x6e\x61\x6d\x65\x73\x20\x77\x68\x65\x6e\x0a\x20\x20\x20\x20\x74\x6f\x70\x64\x6f\x77\x6e\x20\x69\x73\x20\x66\x61\x6c\x73\x65\x20\x68\x61\x73\x20\x6e\x6f\x20\x65\x66\x66\x65\x63\x74\x20\x6f\x6e\x20\x74\x68\x65\x20\x62\x65\x68\x61\x76\x69\x6f\x72\x20\x6f\x66\x20\x6f\x73\x2e\x77\x61\x6c\x6b\x28\x29\x2c\x20\x73\x69\x6e\x63\x65\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x69\x6e\x20\x64\x69\x72\x6e\x61\x6d\x65\x73\x20\x68\x61\x76\x65\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x62\x65\x65\x6e\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x74\x69\x6d\x65\x20\x64\x69\x72\x6e\x61\x6d\x65\x73\x0a\x20\x20\x20\x20\x69\x74\x73\x65\x6c\x66\x20\x69\x73\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x64\x2e\x20\x4e\x6f\x20\x6d\x61\x74\x74\x65\x72\x20\x74\x68\x65\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x74\x6f\x70\x64\x6f\x77\x6e\x2c\x20\x74\x68\x65\x20\x6c\x69\x73\x74\x20\x6f\x66\x0a\x20\x20\x20\x20\x73\x75\x62\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x69\x73\x20\x72\x65\x74\x72\x69\x65\x76\x65\x64\x20\x62\x65\x66\x6f\x72\x65\x20\x74\x68\x65\x20\x74\x75\x70\x6c\x65\x73\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x61\x6e\x64\x20\x69\x74\x73\x0a\x20\x20\x20\x20\x73\x75\x62\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x61\x72\x65\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x64\x2e\x0a\x0a\x20\x20\x20\x20\x42\x79\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x65\x72\x72\x6f\x72\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x6f\x73\x2e\x73\x63\x61\x6e\x64\x69\x72\x28\x29\x20\x63\x61\x6c\x6c\x20\x61\x72\x65\x20\x69\x67\x6e\x6f\x72\x65\x64\x2e\x20\x20\x49\x66\x0a\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x61\x72\x67\x20\x27\x6f\x6e\x65\x72\x72\x6f\x72\x27\x20\x69\x73\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x2c\x20\x69\x74\x20\x73\x68\x6f\x75\x6c\x64\x20\x62\x65\x20\x61\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x3b\x20\x69\x74\x0a\x20\x20\x20\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x63\x61\x6c\x6c\x65\x64\x20\x77\x69\x74\x68\x20\x6f\x6e\x65\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x2c\x20\x61\x6e\x20\x4f\x53\x45\x72\x72\x6f\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x20\x20\x49\x74\x20\x63\x61\x6e\x0a\x20\x20\x20\x20\x72\x65\x70\x6f\x72\x74\x20\x74\x68\x65\x20\x65\x72\x72\x6f\x72\x20\x74\x6f\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x77\x61\x6c\x6b\x2c\x20\x6f\x72\x20\x72\x61\x69\x73\x65\x20\x74\x68\x65\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x0a\x20\x20\x20\x20\x74\x6f\x20\x61\x62\x6f\x72\x74\x20\x74\x68\x65\x20\x77\x61\x6c\x6b\x2e\x20\x20\x4e\x6f\x74\x65\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x20\x69\x73\x20\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\x20\x61\x73\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x20\x6f\x62\x6a\x65\x63\x74\x2e\x0a\x0a\x20\x20\x20\x20\x42\x79\x20\x64\x65\x66\x61\x75\x6c\x74\x2c\x20\x6f\x73\x2e\x77\x61\x6c\x6b\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x66\x6f\x6c\x6c\x6f\x77\x20\x73\x79\x6d\x62\x6f\x6c\x69\x63\x20\x6c\x69\x6e\x6b\x73\x20\x74\x6f\x20\x73\x75\x62\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x6f\x6e\x0a\x20\x20\x20\x20\x73\x79\x73\x74\x65\x6d\x73\x20\x74\x68\x61\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x74\x68\x65\x6d\x2e\x20\x20\x49\x6e\x20\x6f\x72\x64\x65\x72\x20\x74\x6f\x20\x67\x65\x74\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x61\x6c\x69\x74\x79\x2c\x20\x73\x65\x74\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x27\x66\x6f\x6c\x6c\x6f\x77\x6c\x69\x6e\x6b\x73\x27\x20\x74\x6f\x20\x74\x72\x75\x65\x2e\x0a\x0a\x20\x20\x20\x20\x43\x61\x75\x74\x69\x6f\x6e\x3a\x20\x20\x69\x66\x20\x79\x6f\x75\x20\x70\x61\x73\x73\x20\x61\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x20\x70\x61\x74\x68\x6e\x61\x6d\x65\x20\x66\x6f\x72\x20\x74\x6f\x70\x2c\x20\x64\x6f\x6e\x27\x74\x20\x63\x68\x61\x6e\x67\x65\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x77\x6f\x72\x6b\x69\x6e\x67\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x72\x65\x73\x75\x6d\x70\x74\x69\x6f\x6e\x73\x20\x6f\x66\x20\x77\x61\x6c\x6b\x2e\x20\x20\x77\x61\x6c\x6b\x20\x6e\x65\x76\x65\x72\x0a\x20\x20\x20\x20\x63\x68\x61\x6e\x67\x65\x73\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x2c\x20\x61\x6e\x64\x20\x61\x73\x73\x75\x6d\x65\x73\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x63\x6c\x69\x65\x6e\x74\x20\x64\x6f\x65\x73\x6e\x27\x74\x0a\x20\x20\x20\x20\x65\x69\x74\x68\x65\x72\x2e\x0a\x0a\x20\x20\x20\x20\x45\x78\x61\x6d\x70\x6c\x65\x3a\x0a\x0a\x20\x20\x20\x20\x69\x6d\x70\x6f\x72\x74\x20\x6f\x73\x0a\x20\x20\x20\x20\x66\x72\x6f\x6d\x20\x6f\x73\x2e\x70\x61\x74\x68\x20\x69\x6d\x70\x6f\x72\x74\x20\x6a\x6f\x69\x6e\x2c\x20\x67\x65\x74\x73\x69\x7a\x65\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x72\x6f\x6f\x74\x2c\x20\x64\x69\x72\x73\x2c\x20\x66\x69\x6c\x65\x73\x20\x69\x6e\x20\x6f\x73\x2e\x77\x61\x6c\x6b\x28\x27\x70\x79\x74\x68\x6f\x6e\x2f\x4c\x69\x62\x2f\x78\x6d\x6c\x27\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x69\x6e\x74\x28\x72\x6f\x6f\x74\x2c\x20\x22\x63\x6f\x6e\x73\x75\x6d\x65\x73\x20\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x69\x6e\x74\x28\x73\x75\x6d\x28\x67\x65\x74\x73\x69\x7a\x65\x28\x6a\x6f\x69\x6e\x28\x72\x6f\x6f\x74\x2c\x20\x6e\x61\x6d\x65\x29\x29\x20\x66\x6f\x72\x20\x6e\x61\x6d\x65\x20\x69\x6e\x20\x66\x69\x6c\x65\x73\x29\x2c\x20\x65\x6e\x64\x3d\x22\x20\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x69\x6e\x74\x28\x22\x62\x79\x74\x65\x73\x20\x69\x6e\x22\x2c\x20\x6c\x65\x6e\x28\x66\x69\x6c\x65\x73\x29\x2c\x20\x22\x6e\x6f\x6e\x2d\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x66\x69\x6c\x65\x73\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x27\x5f\x5f\x70\x79\x63\x61\x63\x68\x65\x5f\x5f\x27\x20\x69\x6e\x20\x64\x69\x72\x73\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x72\x73\x2e\x72\x65\x6d\x6f\x76\x65\x28\x27\x5f\x5f\x70\x79\x63\x61\x63\x68\x65\x5f\x5f\x27\x29\x20\x20\x23\x20\x64\x6f\x6e\x27\x74\x20\x76\x69\x73\x69\x74\x20\x5f\x5f\x70\x79\x63\x61\x63\x68\x65\x5f\x5f\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -os_toplevel_consts_83_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "os.walk", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_83_consts_5 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(follow_symlinks), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -os_toplevel_consts_83_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & os_toplevel_consts_83_consts_0._ascii.ob_base, - & os_toplevel_consts_83_consts_1._ascii.ob_base, - Py_None, - Py_False, - Py_True, - & os_toplevel_consts_83_consts_5._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_audit = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "audit", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -const_str__walk_symlinks_as_files = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_walk_symlinks_as_files", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_is_dir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "is_dir", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_is_junction = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "is_junction", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_is_symlink = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "is_symlink", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[20]; - }_object; - } -os_toplevel_consts_83_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 20, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - & const_str_audit._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(path), - & const_str_islink._ascii.ob_base, - &_Py_ID(join), - & const_str_pop._ascii.ob_base, - &_Py_ID(isinstance), - & const_str_tuple._ascii.ob_base, - & const_str_scandir._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - &_Py_ID(next), - & const_str_StopIteration._ascii.ob_base, - & const_str__walk_symlinks_as_files._ascii.ob_base, - & const_str_is_dir._ascii.ob_base, - & const_str_is_junction._ascii.ob_base, - &_Py_ID(append), - &_Py_ID(name), - & const_str_is_symlink._ascii.ob_base, - &_Py_ID(reversed), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_walk = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "walk", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[598]; - } -os_toplevel_consts_83_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 597, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xf4\x78\x01\x00\x05\x08\x87\x49\x81\x49\x88\x69\x98\x13\x98\x67\xa0\x77\xb0\x0b\xd4\x04\x3c\xe4\x0d\x13\x90\x43\x8b\x5b\x88\x4d\x80\x45\xdc\x13\x17\x97\x3b\x91\x3b\xa4\x04\xa7\x09\xa1\x09\x88\x44\x80\x46\xd9\x0a\x0f\xd8\x0e\x13\x8f\x69\x89\x69\x8b\x6b\x88\x03\xdc\x0b\x15\x90\x63\x9c\x35\xd4\x0b\x21\xd8\x12\x15\x8a\x49\xd8\x0c\x14\xe0\x0f\x11\x88\x04\xd8\x12\x14\x88\x07\xd8\x14\x16\x88\x09\xf0\x0e\x05\x09\x15\xdc\x19\x20\xa0\x13\x9b\x1c\x88\x4a\xf0\x0c\x00\x10\x15\x88\x04\xda\x0d\x17\xd8\x12\x16\xf0\x02\x09\x11\x1a\xf0\x02\x03\x15\x1e\xdc\x20\x24\xa0\x5a\xd3\x20\x30\x99\x05\xf0\x12\x08\x11\x23\xd8\x17\x22\xd4\x26\x3d\xd1\x17\x3d\xd8\x21\x26\xa7\x1c\xa1\x1c\xb8\x65\xa0\x1c\xd3\x21\x44\xd2\x21\x60\xc8\x55\xd7\x4d\x5e\xd1\x4d\x5e\xd3\x4d\x60\xd0\x49\x60\x99\x06\xe0\x21\x26\xa7\x1c\xa1\x1c\xa3\x1e\x98\x06\xf1\x0c\x00\x14\x1a\xd8\x14\x18\x97\x4b\x91\x4b\xa0\x05\xa7\x0a\xa1\x0a\xd5\x14\x2b\xe0\x14\x1b\x97\x4e\x91\x4e\xa0\x35\xa7\x3a\xa1\x3a\xd4\x14\x2e\xe1\x17\x1e\xa1\x36\xf1\x06\x00\x18\x23\xd8\x24\x28\x99\x09\xf0\x04\x06\x19\x2f\xd8\x29\x2e\xd7\x29\x39\xd1\x29\x39\xd3\x29\x3b\x98\x4a\xf0\x0c\x00\x29\x33\xa0\x4e\x98\x09\xe1\x17\x20\xd8\x18\x21\xd7\x18\x28\xd1\x18\x28\xa8\x15\xaf\x1a\xa9\x1a\xd4\x18\x34\xf0\x57\x01\x00\x13\x17\xf8\xf0\x31\x00\x0b\x10\xf8\xf4\x22\x00\x10\x17\xf2\x00\x03\x09\x15\xd8\x0f\x16\xd0\x0f\x22\xd9\x10\x17\x98\x05\x94\x0e\xdd\x0c\x14\xfb\xf0\x07\x03\x09\x15\xfb\xf4\x16\x00\x1c\x29\xf2\x00\x01\x15\x1e\xd9\x18\x1d\xf0\x03\x01\x15\x1e\xfb\xe4\x17\x1e\xf2\x00\x04\x11\x1a\xd8\x17\x1e\xd0\x17\x2a\xd9\x18\x1f\xa0\x05\x9c\x0e\xd8\x1b\x1f\x90\x44\xdc\x14\x19\xfb\xf0\x09\x04\x11\x1a\xfb\xf4\x16\x00\x18\x1f\xf2\x00\x03\x11\x23\xf0\x06\x00\x1e\x23\x92\x46\xf0\x07\x03\x11\x23\xfb\xf4\x24\x00\x20\x27\xf2\x00\x04\x19\x2f\xf0\x08\x00\x2a\x2f\x9a\x4a\xf0\x09\x04\x19\x2f\xfa\xf7\x49\x01\x00\x0e\x18\x8f\x5a\x89\x5a\xfa\xf1\x5a\x01\x00\x0c\x10\xd9\x0c\x14\xe1\x0b\x12\xe0\x12\x15\x90\x74\x98\x57\xd0\x12\x24\xd2\x0c\x24\xe4\x1b\x23\xa0\x44\x9e\x3e\x90\x07\xd9\x1b\x1f\xa0\x03\xa0\x57\xd3\x1b\x2d\x90\x08\xf1\x0a\x00\x14\x1f\xa1\x66\xa8\x58\xd5\x26\x36\xd8\x14\x19\x97\x4c\x91\x4c\xa0\x18\xd5\x14\x2a\xf1\x0f\x00\x1c\x2a\xf0\x14\x00\x0d\x12\x8f\x4c\x89\x4c\x98\x23\x98\x74\xa0\x57\xd0\x19\x2d\xd4\x0c\x2e\xe4\x1c\x24\xa0\x59\xd6\x1c\x2f\x90\x08\xd8\x10\x15\x97\x0c\x91\x0c\x98\x58\xd5\x10\x26\xf0\x03\x00\x1d\x30\xf3\x6f\x02\x00\x0b\x10\xfb", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[231]; - } -os_toplevel_consts_83_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 230, - }, - .ob_shash = -1, - .ob_sval = "\x82\x41\x33\x49\x11\x01\xc1\x36\x0b\x45\x0a\x00\xc2\x01\x04\x49\x11\x01\xc2\x05\x02\x47\x07\x03\xc2\x09\x0b\x45\x2b\x02\xc2\x14\x01\x47\x07\x03\xc2\x16\x3e\x46\x1c\x02\xc3\x14\x41\x02\x47\x07\x03\xc4\x17\x10\x46\x2d\x02\xc4\x27\x21\x47\x07\x03\xc5\x08\x02\x49\x11\x01\xc5\x0a\x09\x45\x28\x03\xc5\x13\x0a\x45\x23\x03\xc5\x1d\x06\x49\x11\x01\xc5\x23\x05\x45\x28\x03\xc5\x28\x03\x49\x11\x01\xc5\x2b\x09\x45\x37\x05\xc5\x34\x01\x45\x3a\x02\xc5\x35\x01\x47\x07\x03\xc5\x36\x01\x45\x37\x05\xc5\x37\x03\x45\x3a\x02\xc5\x3a\x09\x46\x19\x05\xc6\x03\x0c\x46\x14\x05\xc6\x0f\x05\x47\x07\x03\xc6\x14\x05\x46\x19\x05\xc6\x19\x03\x47\x07\x03\xc6\x1c\x0b\x46\x2a\x05\xc6\x27\x02\x47\x07\x03\xc6\x29\x01\x46\x2a\x05\xc6\x2a\x03\x47\x07\x03\xc6\x2d\x0b\x46\x3b\x05\xc6\x38\x02\x47\x07\x03\xc6\x3a\x01\x46\x3b\x05\xc6\x3b\x03\x47\x07\x03\xc6\x3e\x09\x49\x11\x01\xc7\x07\x05\x47\x10\x07\xc7\x0c\x35\x49\x11\x01\xc8\x02\x41\x0b\x49\x11\x01", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_topdown = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "topdown", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_onerror = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "onerror", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_followlinks = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "followlinks", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_stack = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "stack", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_nondirs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "nondirs", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_walk_dirs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "walk_dirs", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_scandir_it = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "scandir_it", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_error = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "error", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_cont = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "cont", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_walk_into = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "walk_into", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[19]; - }_object; - } -os_toplevel_consts_83_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 19, - }, - .ob_item = { - &_Py_ID(top), - & const_str_topdown._ascii.ob_base, - & const_str_onerror._ascii.ob_base, - & const_str_followlinks._ascii.ob_base, - & const_str_stack._ascii.ob_base, - & const_str_islink._ascii.ob_base, - &_Py_ID(join), - & const_str_dirs._ascii.ob_base, - & const_str_nondirs._ascii.ob_base, - & const_str_walk_dirs._ascii.ob_base, - & const_str_scandir_it._ascii.ob_base, - & const_str_error._ascii.ob_base, - & const_str_cont._ascii.ob_base, - & const_str_entry._ascii.ob_base, - & const_str_is_dir._ascii.ob_base, - & const_str_walk_into._ascii.ob_base, - & const_str_is_symlink._ascii.ob_base, - & const_str_dirname._ascii.ob_base, - & const_str_new_path._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(1190) -os_toplevel_consts_83 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 595, - }, - .co_consts = & os_toplevel_consts_83_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_83_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_83_exceptiontable.ob_base.ob_base, - .co_flags = 35, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 26 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 286, - .co_nlocalsplus = 19, - .co_nlocals = 19, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 609, - .co_localsplusnames = & os_toplevel_consts_83_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & ntpath_toplevel_consts_45_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_walk._ascii.ob_base, - .co_qualname = & const_str_walk._ascii.ob_base, - .co_linetable = & os_toplevel_consts_83_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x7c\x01\x7c\x02\x7c\x03\xab\x05\x00\x00\x00\x00\x00\x00\x01\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x67\x01\x7d\x04\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x06\x7d\x05\x7c\x04\x72\xff\x7c\x04\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x05\x7c\x00\x96\x01\x97\x01\x01\x00\x8c\x27\x67\x00\x7d\x07\x67\x00\x7d\x08\x67\x00\x7d\x09\x09\x00\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0a\x64\x03\x7d\x0c\x7c\x0a\x35\x00\x01\x00\x09\x00\x09\x00\x09\x00\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0d\x09\x00\x09\x00\x7c\x03\x74\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x26\x7c\x0d\x6a\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\xac\x05\xab\x01\x00\x00\x00\x00\x00\x00\x78\x01\x72\x11\x01\x00\x7c\x0d\x6a\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x7d\x0e\x6e\x10\x7c\x0d\x6a\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x0e\x7c\x0e\x72\x1c\x7c\x07\x6a\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\x6a\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x1b\x7c\x08\x6a\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\x6a\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x73\x38\x7c\x0e\x72\x36\x7c\x03\x72\x03\x64\x04\x7d\x0f\x6e\x14\x09\x00\x7c\x0d\x6a\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x10\x7c\x10\x0c\x00\x7d\x0f\x7c\x0f\x72\x1b\x7c\x09\x6a\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\xc1\x79\x02\x79\x02\x23\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x15\x7d\x0b\x7c\x02\x81\x08\x02\x00\x7c\x02\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x59\x00\x64\x02\x7d\x0b\x7e\x0b\x90\x01\x8c\x1b\x64\x02\x7d\x0b\x7e\x0b\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x18\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x6e\x48\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x16\x7d\x0b\x7c\x02\x81\x08\x02\x00\x7c\x02\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x04\x7d\x0c\x59\x00\x64\x02\x7d\x0b\x7e\x0b\x6e\x2a\x64\x02\x7d\x0b\x7e\x0b\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x64\x03\x7d\x0e\x59\x00\x8c\xd5\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x64\x03\x7d\x10\x59\x00\x8c\x93\x77\x00\x78\x03\x59\x00\x77\x01\x64\x02\x64\x02\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x0c\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x6e\x03\x78\x03\x59\x00\x77\x01\x7c\x0c\x72\x02\x90\x01\x8c\x8f\x7c\x01\x72\x3d\x7c\x00\x7c\x07\x7c\x08\x66\x03\x96\x01\x97\x01\x01\x00\x74\x27\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x27\x00\x00\x7d\x11\x02\x00\x7c\x06\x7c\x00\x7c\x11\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x12\x7c\x03\x73\x09\x02\x00\x7c\x05\x7c\x12\xab\x01\x00\x00\x00\x00\x00\x00\x72\x01\x8c\x17\x7c\x04\x6a\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x12\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x29\x04\x00\x6e\x35\x7c\x04\x6a\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x07\x7c\x08\x66\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x27\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x13\x00\x00\x7d\x12\x7c\x04\x6a\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x12\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x15\x04\x00\x7c\x04\x72\x02\x90\x02\x8c\x05\x90\x01\x8c\x09\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_85 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(follow_symlinks), - &_Py_ID(dir_fd), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[1305]; - } -os_toplevel_consts_86_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 1304, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x44\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x74\x72\x65\x65\x20\x67\x65\x6e\x65\x72\x61\x74\x6f\x72\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x69\x73\x20\x62\x65\x68\x61\x76\x65\x73\x20\x65\x78\x61\x63\x74\x6c\x79\x20\x6c\x69\x6b\x65\x20\x77\x61\x6c\x6b\x28\x29\x2c\x20\x65\x78\x63\x65\x70\x74\x20\x74\x68\x61\x74\x20\x69\x74\x20\x79\x69\x65\x6c\x64\x73\x20\x61\x20\x34\x2d\x74\x75\x70\x6c\x65\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x72\x70\x61\x74\x68\x2c\x20\x64\x69\x72\x6e\x61\x6d\x65\x73\x2c\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x73\x2c\x20\x64\x69\x72\x66\x64\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x60\x64\x69\x72\x70\x61\x74\x68\x60\x2c\x20\x60\x64\x69\x72\x6e\x61\x6d\x65\x73\x60\x20\x61\x6e\x64\x20\x60\x66\x69\x6c\x65\x6e\x61\x6d\x65\x73\x60\x20\x61\x72\x65\x20\x69\x64\x65\x6e\x74\x69\x63\x61\x6c\x20\x74\x6f\x20\x77\x61\x6c\x6b\x28\x29\x20\x6f\x75\x74\x70\x75\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x64\x20\x60\x64\x69\x72\x66\x64\x60\x20\x69\x73\x20\x61\x20\x66\x69\x6c\x65\x20\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x20\x72\x65\x66\x65\x72\x72\x69\x6e\x67\x20\x74\x6f\x20\x74\x68\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x60\x64\x69\x72\x70\x61\x74\x68\x60\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x61\x64\x76\x61\x6e\x74\x61\x67\x65\x20\x6f\x66\x20\x66\x77\x61\x6c\x6b\x28\x29\x20\x6f\x76\x65\x72\x20\x77\x61\x6c\x6b\x28\x29\x20\x69\x73\x20\x74\x68\x61\x74\x20\x69\x74\x27\x73\x20\x73\x61\x66\x65\x20\x61\x67\x61\x69\x6e\x73\x74\x20\x73\x79\x6d\x6c\x69\x6e\x6b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x63\x65\x73\x20\x28\x77\x68\x65\x6e\x20\x66\x6f\x6c\x6c\x6f\x77\x5f\x73\x79\x6d\x6c\x69\x6e\x6b\x73\x20\x69\x73\x20\x46\x61\x6c\x73\x65\x29\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x49\x66\x20\x64\x69\x72\x5f\x66\x64\x20\x69\x73\x20\x6e\x6f\x74\x20\x4e\x6f\x6e\x65\x2c\x20\x69\x74\x20\x73\x68\x6f\x75\x6c\x64\x20\x62\x65\x20\x61\x20\x66\x69\x6c\x65\x20\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x20\x6f\x70\x65\x6e\x20\x74\x6f\x20\x61\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x64\x20\x74\x6f\x70\x20\x73\x68\x6f\x75\x6c\x64\x20\x62\x65\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x3b\x20\x74\x6f\x70\x20\x77\x69\x6c\x6c\x20\x74\x68\x65\x6e\x20\x62\x65\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x20\x74\x6f\x20\x74\x68\x61\x74\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x64\x69\x72\x5f\x66\x64\x20\x69\x73\x20\x61\x6c\x77\x61\x79\x73\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x66\x6f\x72\x20\x66\x77\x61\x6c\x6b\x2e\x29\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x43\x61\x75\x74\x69\x6f\x6e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x53\x69\x6e\x63\x65\x20\x66\x77\x61\x6c\x6b\x28\x29\x20\x79\x69\x65\x6c\x64\x73\x20\x66\x69\x6c\x65\x20\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x73\x2c\x20\x74\x68\x6f\x73\x65\x20\x61\x72\x65\x20\x6f\x6e\x6c\x79\x20\x76\x61\x6c\x69\x64\x20\x75\x6e\x74\x69\x6c\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x69\x74\x65\x72\x61\x74\x69\x6f\x6e\x20\x73\x74\x65\x70\x2c\x20\x73\x6f\x20\x79\x6f\x75\x20\x73\x68\x6f\x75\x6c\x64\x20\x64\x75\x70\x28\x29\x20\x74\x68\x65\x6d\x20\x69\x66\x20\x79\x6f\x75\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x6b\x65\x65\x70\x20\x74\x68\x65\x6d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x61\x20\x6c\x6f\x6e\x67\x65\x72\x20\x70\x65\x72\x69\x6f\x64\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x45\x78\x61\x6d\x70\x6c\x65\x3a\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6d\x70\x6f\x72\x74\x20\x6f\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x72\x6f\x6f\x74\x2c\x20\x64\x69\x72\x73\x2c\x20\x66\x69\x6c\x65\x73\x2c\x20\x72\x6f\x6f\x74\x66\x64\x20\x69\x6e\x20\x6f\x73\x2e\x66\x77\x61\x6c\x6b\x28\x27\x70\x79\x74\x68\x6f\x6e\x2f\x4c\x69\x62\x2f\x78\x6d\x6c\x27\x29\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x69\x6e\x74\x28\x72\x6f\x6f\x74\x2c\x20\x22\x63\x6f\x6e\x73\x75\x6d\x65\x73\x22\x2c\x20\x65\x6e\x64\x3d\x22\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x69\x6e\x74\x28\x73\x75\x6d\x28\x6f\x73\x2e\x73\x74\x61\x74\x28\x6e\x61\x6d\x65\x2c\x20\x64\x69\x72\x5f\x66\x64\x3d\x72\x6f\x6f\x74\x66\x64\x29\x2e\x73\x74\x5f\x73\x69\x7a\x65\x20\x66\x6f\x72\x20\x6e\x61\x6d\x65\x20\x69\x6e\x20\x66\x69\x6c\x65\x73\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x3d\x22\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x69\x6e\x74\x28\x22\x62\x79\x74\x65\x73\x20\x69\x6e\x22\x2c\x20\x6c\x65\x6e\x28\x66\x69\x6c\x65\x73\x29\x2c\x20\x22\x6e\x6f\x6e\x2d\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x66\x69\x6c\x65\x73\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x27\x5f\x5f\x70\x79\x63\x61\x63\x68\x65\x5f\x5f\x27\x20\x69\x6e\x20\x64\x69\x72\x73\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x72\x73\x2e\x72\x65\x6d\x6f\x76\x65\x28\x27\x5f\x5f\x70\x79\x63\x61\x63\x68\x65\x5f\x5f\x27\x29\x20\x20\x23\x20\x64\x6f\x6e\x27\x74\x20\x76\x69\x73\x69\x74\x20\x5f\x5f\x70\x79\x63\x61\x63\x68\x65\x5f\x5f\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -os_toplevel_consts_86_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "os.fwalk", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_86_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & os_toplevel_consts_86_consts_0._ascii.ob_base, - & os_toplevel_consts_86_consts_1._ascii.ob_base, - Py_True, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str__fwalk_walk = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_fwalk_walk", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str__fwalk = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_fwalk", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str__fwalk_close = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_fwalk_close", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -os_toplevel_consts_86_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - & const_str_audit._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - & const_str__fwalk_walk._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str__fwalk._ascii.ob_base, - & const_str_pop._ascii.ob_base, - & const_str__fwalk_close._ascii.ob_base, - &_Py_ID(close), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_fwalk = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fwalk", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[199]; - } -os_toplevel_consts_86_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 198, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xf4\x42\x01\x00\x09\x0c\x8f\x09\x89\x09\x90\x2a\x98\x63\xa0\x37\xa8\x47\xb0\x5f\xc0\x66\xd4\x08\x4d\xdc\x0e\x14\x90\x53\x8b\x6b\x88\x03\xdc\x12\x1d\xa0\x04\xa0\x66\xa8\x63\xb0\x33\xb8\x04\xd0\x1f\x3d\xd0\x11\x3e\xd0\x10\x3f\x88\x05\xdc\x12\x1c\x98\x53\xa4\x25\xd3\x12\x28\x88\x07\xf0\x02\x08\x09\x21\xd9\x12\x17\xdc\x1b\x21\xa0\x25\xa8\x17\xb0\x27\xb8\x37\xc0\x4f\xd3\x1b\x54\xd7\x10\x54\xd0\x10\x54\xf2\x03\x00\x13\x18\xf1\x08\x00\x13\x18\xd8\x20\x25\xa7\x09\xa1\x09\xa3\x0b\x91\x0d\x90\x06\x98\x05\xd8\x13\x19\x9c\x5c\xd2\x13\x29\xdc\x14\x19\x98\x25\x94\x4c\xf4\x07\x00\x13\x18\xf0\x07\x00\x11\x55\x01\xf9\xf1\x06\x00\x13\x18\xd8\x20\x25\xa7\x09\xa1\x09\xa3\x0b\x91\x0d\x90\x06\x98\x05\xd8\x13\x19\x9c\x5c\xd2\x13\x29\xdc\x14\x19\x98\x25\x94\x4c\xf4\x07\x00\x13\x18\xfc", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[61]; - } -os_toplevel_consts_86_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 60, - }, - .ob_shash = -1, - .ob_sval = "\x82\x41\x04\x43\x05\x01\xc1\x07\x14\x42\x13\x00\xc1\x1b\x01\x42\x11\x04\xc1\x1c\x06\x42\x13\x00\xc1\x23\x2b\x43\x05\x01\xc2\x0f\x02\x43\x05\x01\xc2\x11\x01\x42\x13\x00\xc2\x13\x2c\x43\x02\x03\xc3\x00\x02\x43\x02\x03\xc3\x02\x03\x43\x05\x01", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_isbytes = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "isbytes", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_action = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "action", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -os_toplevel_consts_86_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(top), - & const_str_topdown._ascii.ob_base, - & const_str_onerror._ascii.ob_base, - &_Py_ID(follow_symlinks), - &_Py_ID(dir_fd), - & const_str_stack._ascii.ob_base, - & const_str_isbytes._ascii.ob_base, - & const_str_action._ascii.ob_base, - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(398) -os_toplevel_consts_86 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 199, - }, - .co_consts = & os_toplevel_consts_86_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_86_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_86_exceptiontable.ob_base.ob_base, - .co_flags = 35, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 2, - .co_framesize = 17 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 444, - .co_nlocalsplus = 9, - .co_nlocals = 9, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 610, - .co_localsplusnames = & os_toplevel_consts_86_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_61_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_fwalk._ascii.ob_base, - .co_qualname = & const_str_fwalk._ascii.ob_base, - .co_linetable = & os_toplevel_consts_86_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x7c\x04\xab\x06\x00\x00\x00\x00\x00\x00\x01\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x7c\x04\x7c\x00\x7c\x00\x64\x03\x66\x05\x66\x02\x67\x01\x7d\x05\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x06\x09\x00\x7c\x05\x72\x1a\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x7c\x06\x7c\x01\x7c\x02\x7c\x03\xab\x05\x00\x00\x00\x00\x00\x00\x45\x00\x64\x03\x7b\x03\x00\x00\x96\x03\x97\x02\x86\x05\x05\x00\x01\x00\x7c\x05\x72\x01\x8c\x1a\x7c\x05\x72\x2b\x7c\x05\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x07\x7d\x08\x7c\x07\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x72\x0b\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x05\x72\x01\x8c\x2a\x79\x03\x79\x03\x37\x00\x8c\x35\x23\x00\x7c\x05\x72\x2b\x7c\x05\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x07\x7d\x08\x7c\x07\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x72\x0b\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x05\x72\x01\x8c\x2a\x77\x00\x77\x00\x78\x03\x59\x00\x77\x01\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_87_consts_4 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(dir_fd), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_87_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_False, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_87_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__fwalk_walk._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -os_toplevel_consts_87_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_fwalk..", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[46]; - } -os_toplevel_consts_87_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 45, - }, - .ob_shash = -1, - .ob_sval = "\xf8\xe8\x00\xf8\x80\x00\xf0\x00\x02\x19\x28\xe1\x1c\x26\x90\x44\xf4\x03\x00\x12\x1d\x98\x75\xa0\x65\xa8\x57\xb0\x74\xa9\x5e\xb8\x54\xc0\x34\xd0\x1e\x48\xd4\x10\x49\xd9\x1c\x26\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -os_toplevel_consts_87_consts_6_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x83\x1a\x1d\x01", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_topfd = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "topfd", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_toppath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "toppath", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_87_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & importlib__bootstrap_external_toplevel_consts_6_localsplusnames_0._ascii.ob_base, - &_Py_ID(name), - & const_str_topfd._ascii.ob_base, - & const_str_toppath._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -os_toplevel_consts_87_consts_6_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x20\x20\x80\x80", -}; -static - struct _PyCode_DEF(62) -os_toplevel_consts_87_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 31, - }, - .co_consts = & os_toplevel_consts_87_consts_6_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_87_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_87_consts_6_exceptiontable.ob_base.ob_base, - .co_flags = 51, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 562, - .co_nlocalsplus = 4, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 2, - .co_version = 611, - .co_localsplusnames = & os_toplevel_consts_87_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & os_toplevel_consts_87_consts_6_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_genexpr), - .co_qualname = & os_toplevel_consts_87_consts_6_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_87_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x02\x4b\x00\x01\x00\x97\x00\x7c\x00\x5d\x14\x00\x00\x7d\x01\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x89\x02\x89\x03\x7c\x01\x7a\x00\x00\x00\x7c\x01\x64\x01\x66\x05\x66\x02\x96\x01\x97\x01\x01\x00\x8c\x16\x04\x00\x79\x01\xad\x03\x77\x01", - ._co_firsttraceable = 3, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[51]; - } -os_toplevel_consts_87_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 50, - }, - .ob_shash = -1, - .ob_sval = "\xf8\xe8\x00\xf8\x80\x00\xf0\x00\x02\x19\x43\x01\xe1\x23\x41\x91\x4b\x90\x44\x98\x25\xf4\x03\x00\x12\x1d\x98\x75\xa0\x65\xa8\x57\xb0\x74\xa9\x5e\xb8\x54\xc0\x35\xd0\x1e\x49\xd4\x10\x4a\xd9\x23\x41\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -os_toplevel_consts_87_consts_8_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x83\x1d\x20\x01", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -os_toplevel_consts_87_consts_8_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & importlib__bootstrap_external_toplevel_consts_6_localsplusnames_0._ascii.ob_base, - &_Py_ID(name), - & const_str_entry._ascii.ob_base, - & const_str_topfd._ascii.ob_base, - & const_str_toppath._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -os_toplevel_consts_87_consts_8_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\x20\x20\x20\x80\x80", -}; -static - struct _PyCode_DEF(68) -os_toplevel_consts_87_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 34, - }, - .co_consts = & os_toplevel_consts_87_consts_6_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_87_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_87_consts_8_exceptiontable.ob_base.ob_base, - .co_flags = 51, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 566, - .co_nlocalsplus = 5, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 2, - .co_version = 612, - .co_localsplusnames = & os_toplevel_consts_87_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & os_toplevel_consts_87_consts_8_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_genexpr), - .co_qualname = & os_toplevel_consts_87_consts_6_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_87_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x02\x4b\x00\x01\x00\x97\x00\x7c\x00\x5d\x17\x00\x00\x5c\x02\x00\x00\x7d\x01\x7d\x02\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x89\x03\x89\x04\x7c\x01\x7a\x00\x00\x00\x7c\x01\x7c\x02\x66\x05\x66\x02\x96\x01\x97\x01\x01\x00\x8c\x19\x04\x00\x79\x01\xad\x03\x77\x01", - ._co_firsttraceable = 3, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -os_toplevel_consts_87_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - Py_None, - Py_False, - & os_toplevel_consts_85._object.ob_base.ob_base, - & os_toplevel_consts_83_consts_5._object.ob_base.ob_base, - & os_toplevel_consts_87_consts_4._object.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & os_toplevel_consts_87_consts_6.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - & os_toplevel_consts_87_consts_8.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str__fwalk_yield = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_fwalk_yield", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_O_RDONLY = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "O_RDONLY", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_O_NONBLOCK = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "O_NONBLOCK", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[24]; - }_object; - } -os_toplevel_consts_87_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 24, - }, - .ob_item = { - & const_str_pop._ascii.ob_base, - & const_str__fwalk_close._ascii.ob_base, - &_Py_ID(close), - & const_str__fwalk_yield._ascii.ob_base, - & const_str__fwalk_walk._ascii.ob_base, - & const_str_stat._ascii.ob_base, - &_Py_ID(open), - & const_str_O_RDONLY._ascii.ob_base, - & const_str_O_NONBLOCK._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - &_Py_ID(append), - & const_str_st._ascii.ob_base, - & const_str_S_ISDIR._ascii.ob_base, - & const_str_st_mode._ascii.ob_base, - &_Py_ID(path), - & const_str_samestat._ascii.ob_base, - & const_str_scandir._ascii.ob_base, - &_Py_ID(name), - & const_str_fsencode._ascii.ob_base, - & const_str_is_dir._ascii.ob_base, - & const_str_is_symlink._ascii.ob_base, - &_Py_ID(join), - &_Py_ID(extend), - & const_str_zip._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[597]; - } -os_toplevel_consts_87_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 596, - }, - .ob_shash = -1, - .ob_sval = "\xf9\xe8\x00\xf8\x80\x00\xf0\x0a\x00\x19\x1e\x9f\x09\x99\x09\x9b\x0b\x89\x0d\x88\x06\x90\x05\xd8\x0b\x11\x94\x5c\xd2\x0b\x21\xdc\x0c\x11\x90\x25\x8c\x4c\xd8\x0c\x12\xd8\x0d\x13\x94\x7c\xd2\x0d\x23\xd8\x12\x17\x8a\x4b\xd8\x0c\x12\xd8\x0f\x15\x9c\x1b\xd2\x0f\x24\xd0\x08\x24\xd0\x0f\x24\xd8\x31\x36\xd1\x08\x2e\x88\x06\x90\x05\x90\x77\xa0\x07\xa8\x15\xf0\x02\x0e\x09\x13\xd9\x13\x22\xf0\x06\x00\x14\x19\x90\x3d\xdc\x1e\x22\xa0\x37\xb8\x45\xc8\x25\xd4\x1e\x50\x91\x47\xe0\x1e\x23\x9f\x6a\x99\x6a\xb8\x15\x98\x6a\xd3\x1e\x3f\x90\x47\xdc\x14\x18\x98\x17\xa4\x28\xac\x5a\xd1\x22\x37\xc0\x05\xd4\x14\x46\x88\x45\xf0\x0e\x00\x09\x0e\x8f\x0c\x89\x0c\x94\x6c\xa0\x45\xd0\x15\x2a\xd4\x08\x2b\xd9\x0f\x1e\xd9\x0f\x15\x9c\x62\x9f\x6a\x99\x6a\xa8\x17\xaf\x1f\xa9\x1f\xd4\x1e\x39\xd8\x10\x16\xdc\x13\x17\x97\x3d\x91\x3d\xa0\x17\xac\x24\xa8\x75\xab\x2b\xd4\x13\x36\xd8\x10\x16\xe4\x15\x1c\x98\x55\x93\x5e\x88\x0a\xd8\x0f\x11\x88\x04\xd8\x12\x14\x88\x07\xd9\x1a\x21\xa1\x5f\x91\x24\xb8\x22\x88\x07\xdb\x15\x1f\x88\x45\xd8\x13\x18\x97\x3a\x91\x3a\x88\x44\xd9\x0f\x16\xdc\x17\x1f\xa0\x04\x93\x7e\x90\x04\xf0\x02\x0d\x0d\x19\xd8\x13\x18\x97\x3c\x91\x3c\x94\x3e\xd8\x14\x18\x97\x4b\x91\x4b\xa0\x04\xd4\x14\x25\xd8\x17\x1e\xd0\x17\x2a\xd8\x18\x1f\x9f\x0e\x99\x0e\xa0\x75\xd5\x18\x2d\xe0\x14\x1b\x97\x4e\x91\x4e\xa0\x34\xd4\x14\x28\xf8\xf0\x15\x00\x16\x20\xf1\x26\x00\x0c\x13\xd8\x12\x19\x98\x34\xa0\x17\xa8\x25\xd0\x12\x2f\xd3\x0c\x2f\xe0\x0c\x11\x8f\x4c\x89\x4c\x9c\x2c\xa8\x17\xb0\x24\xb8\x07\xc0\x15\xd0\x28\x47\xd0\x19\x48\xd4\x0c\x49\xe4\x12\x16\x97\x29\x91\x29\x98\x47\xa0\x57\xa8\x52\xa8\x61\xa0\x5b\xd3\x12\x31\x88\x07\xd8\x0b\x12\x88\x3f\xd8\x0c\x11\x8f\x4c\x89\x4c\xf4\x00\x02\x19\x28\xe0\x1c\x20\xa1\x14\xa0\x32\xa0\x14\x9a\x4a\xf3\x05\x02\x19\x28\xf5\x00\x02\x0d\x28\xf0\x08\x00\x0d\x12\x8f\x4c\x89\x4c\xf4\x00\x02\x19\x43\x01\xe4\x23\x26\xa0\x74\xa9\x44\xa8\x62\xa8\x44\xa1\x7a\xb0\x37\xb9\x34\xb8\x52\xb8\x34\xb1\x3d\xd4\x23\x41\xf3\x05\x02\x19\x43\x01\xf5\x00\x02\x0d\x43\x01\xf8\xf4\x5f\x01\x00\x10\x17\xf2\x00\x05\x09\x13\xd9\x0f\x15\xd8\x10\x15\xd8\x0f\x16\xd0\x0f\x22\xd9\x10\x17\x98\x03\x94\x0c\xdc\x0c\x12\xfb\xf0\x0b\x05\x09\x13\xfb\xf4\x38\x00\x14\x1b\xf2\x00\x06\x0d\x19\xf0\x02\x05\x11\x19\xe0\x17\x1c\xd7\x17\x27\xd1\x17\x27\xd4\x17\x29\xd8\x18\x1f\x9f\x0e\x99\x0e\xa0\x74\xd4\x18\x2c\xf9\xdc\x17\x1e\xf2\x00\x01\x11\x19\xd9\x14\x18\xf0\x03\x01\x11\x19\xfd\xf0\x0b\x06\x0d\x19\xfc", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[124]; - } -os_toplevel_consts_87_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 123, - }, - .ob_shash = -1, - .ob_sval = "\x84\x41\x0a\x49\x20\x01\xc1\x0f\x3e\x47\x3b\x00\xc2\x0d\x42\x10\x49\x20\x01\xc4\x1e\x41\x06\x48\x1e\x02\xc5\x24\x42\x17\x49\x20\x01\xc7\x3b\x09\x48\x1b\x03\xc8\x04\x0d\x48\x16\x03\xc8\x11\x05\x49\x20\x01\xc8\x16\x05\x48\x1b\x03\xc8\x1b\x03\x49\x20\x01\xc8\x1e\x09\x49\x1d\x05\xc8\x28\x21\x49\x0a\x04\xc9\x09\x01\x49\x1d\x05\xc9\x0a\x09\x49\x16\x07\xc9\x13\x02\x49\x1d\x05\xc9\x15\x01\x49\x16\x07\xc9\x16\x03\x49\x1d\x05\xc9\x19\x03\x49\x20\x01\xc9\x1c\x01\x49\x1d\x05\xc9\x1d\x03\x49\x20\x01", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_isroot = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "isroot", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_dirfd = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dirfd", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_topname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "topname", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_orig_st = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "orig_st", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_err = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "err", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_entries = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "entries", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[20]; - }_object; - } -os_toplevel_consts_87_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 20, - }, - .ob_item = { - & const_str_stack._ascii.ob_base, - & const_str_isbytes._ascii.ob_base, - & const_str_topdown._ascii.ob_base, - & const_str_onerror._ascii.ob_base, - &_Py_ID(follow_symlinks), - & const_str_action._ascii.ob_base, - &_Py_ID(value), - & const_str_isroot._ascii.ob_base, - & const_str_dirfd._ascii.ob_base, - & const_str_topname._ascii.ob_base, - & const_str_entry._ascii.ob_base, - & const_str_orig_st._ascii.ob_base, - & const_str_err._ascii.ob_base, - & const_str_scandir_it._ascii.ob_base, - & const_str_dirs._ascii.ob_base, - & const_str_nondirs._ascii.ob_base, - & const_str_entries._ascii.ob_base, - &_Py_ID(name), - & const_str_topfd._ascii.ob_base, - & const_str_toppath._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[21]; - } -os_toplevel_consts_87_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 20, - }, - .ob_shash = -1, - .ob_sval = " @@", -}; -static - struct _PyCode_DEF(1220) -os_toplevel_consts_87 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 610, - }, - .co_consts = & os_toplevel_consts_87_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_87_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_87_exceptiontable.ob_base.ob_base, - .co_flags = 35, - .co_argcount = 5, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 30 + FRAME_SPECIALS_SIZE, - .co_stacksize = 10, - .co_firstlineno = 496, - .co_nlocalsplus = 20, - .co_nlocals = 18, - .co_ncellvars = 2, - .co_nfreevars = 0, - .co_version = 613, - .co_localsplusnames = & os_toplevel_consts_87_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & os_toplevel_consts_87_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__fwalk._ascii.ob_base, - .co_qualname = & const_str__fwalk._ascii.ob_base, - .co_linetable = & os_toplevel_consts_87_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x12\x87\x13\x4b\x00\x01\x00\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x05\x7d\x06\x7c\x05\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x72\x0c\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x7c\x05\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x72\x05\x7c\x06\x96\x01\x97\x01\x01\x00\x79\x00\x7c\x05\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x73\x02\x4a\x00\x82\x01\x7c\x06\x5c\x05\x00\x00\x7d\x07\x7d\x08\x8a\x13\x7d\x09\x7d\x0a\x09\x00\x7c\x04\x73\x23\x7c\x0a\x80\x0f\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\x64\x01\x7c\x08\xac\x02\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x0b\x6e\x12\x7c\x0a\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xac\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0b\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x07\x00\x00\x7c\x08\xac\x04\xab\x03\x00\x00\x00\x00\x00\x00\x8a\x12\x7c\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x89\x12\x66\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x04\x73\x42\x7c\x07\x72\x20\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x0b\x6a\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x73\x01\x79\x00\x74\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x0b\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x89\x12\xab\x01\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x01\x79\x00\x74\x21\x00\x00\x00\x00\x00\x00\x00\x00\x89\x12\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0d\x67\x00\x7d\x0e\x67\x00\x7d\x0f\x7c\x02\x73\x02\x7c\x04\x72\x02\x64\x00\x6e\x01\x67\x00\x7d\x10\x7c\x0d\x44\x00\x5d\x62\x00\x00\x7d\x0a\x7c\x0a\x6a\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x11\x7c\x01\x72\x0b\x74\x25\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x11\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x11\x09\x00\x7c\x0a\x6a\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x72\x25\x7c\x0e\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x11\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x10\x81\x23\x7c\x10\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x11\x7c\x0f\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x11\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x64\x04\x00\x7c\x02\x72\x09\x89\x13\x7c\x0e\x7c\x0f\x89\x12\x66\x04\x96\x01\x97\x01\x01\x00\x6e\x1b\x7c\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x89\x13\x7c\x0e\x7c\x0f\x89\x12\x66\x04\x66\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x13\x89\x13\x64\x00\x64\x05\x1a\x00\xab\x02\x00\x00\x00\x00\x00\x00\x8a\x13\x7c\x10\x80\x22\x7c\x00\x6a\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x12\x88\x13\x66\x02\x64\x06\x84\x08\x7c\x0e\x64\x00\x64\x00\x64\x07\x85\x03\x19\x00\x00\x00\x44\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x7c\x00\x6a\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x12\x88\x13\x66\x02\x64\x08\x84\x08\x74\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0e\x64\x00\x64\x00\x64\x07\x85\x03\x19\x00\x00\x00\x7c\x10\x64\x00\x64\x00\x64\x07\x85\x03\x19\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x44\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x23\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x17\x7d\x0c\x7c\x07\x72\x01\x82\x00\x7c\x03\x81\x08\x02\x00\x7c\x03\x7c\x0c\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x59\x00\x64\x00\x7d\x0c\x7e\x0c\x79\x00\x64\x00\x7d\x0c\x7e\x0c\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x36\x01\x00\x09\x00\x7c\x0a\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x72\x11\x7c\x0f\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x11\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x0f\x23\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x6e\x04\x77\x00\x78\x03\x59\x00\x77\x01\x59\x00\x90\x01\x8c\x5b\x77\x00\x78\x03\x59\x00\x77\x01\xad\x03\x77\x01", - ._co_firsttraceable = 4, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[113]; - } -os_toplevel_consts_89_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 112, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x65\x78\x65\x63\x6c\x28\x66\x69\x6c\x65\x2c\x20\x2a\x61\x72\x67\x73\x29\x0a\x0a\x20\x20\x20\x20\x45\x78\x65\x63\x75\x74\x65\x20\x74\x68\x65\x20\x65\x78\x65\x63\x75\x74\x61\x62\x6c\x65\x20\x66\x69\x6c\x65\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x6c\x69\x73\x74\x20\x61\x72\x67\x73\x2c\x20\x72\x65\x70\x6c\x61\x63\x69\x6e\x67\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_89_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & os_toplevel_consts_89_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_execv = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "execv", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_89_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_execv._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_execl = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "execl", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[15]; - } -os_toplevel_consts_89_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 14, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0a\x00\x05\x0a\x88\x24\x90\x04\xd5\x04\x15", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_89_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(file), - &_Py_ID(args), - }, - }, -}; -static - struct _PyCode_DEF(28) -os_toplevel_consts_89 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 14, - }, - .co_consts = & os_toplevel_consts_89_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_89_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 572, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 614, - .co_localsplusnames = & os_toplevel_consts_89_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_execl._ascii.ob_base, - .co_qualname = & const_str_execl._ascii.ob_base, - .co_linetable = & os_toplevel_consts_89_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[139]; - } -os_toplevel_consts_90_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 138, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x65\x78\x65\x63\x6c\x65\x28\x66\x69\x6c\x65\x2c\x20\x2a\x61\x72\x67\x73\x2c\x20\x65\x6e\x76\x29\x0a\x0a\x20\x20\x20\x20\x45\x78\x65\x63\x75\x74\x65\x20\x74\x68\x65\x20\x65\x78\x65\x63\x75\x74\x61\x62\x6c\x65\x20\x66\x69\x6c\x65\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x6c\x69\x73\x74\x20\x61\x72\x67\x73\x20\x61\x6e\x64\x0a\x20\x20\x20\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x20\x65\x6e\x76\x2c\x20\x72\x65\x70\x6c\x61\x63\x69\x6e\x67\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_90_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & os_toplevel_consts_90_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_90_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_execve._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_execle = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "execle", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[32]; - } -os_toplevel_consts_90_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 31, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x0a\x00\x0b\x0f\x88\x72\x89\x28\x80\x43\xdc\x04\x0a\x88\x34\x90\x14\x90\x63\x90\x72\x90\x19\x98\x43\xd5\x04\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_90_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(file), - &_Py_ID(args), - &_Py_ID(env), - }, - }, -}; -static - struct _PyCode_DEF(46) -os_toplevel_consts_90 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & os_toplevel_consts_90_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_90_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 579, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 615, - .co_localsplusnames = & os_toplevel_consts_90_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_execle._ascii.ob_base, - .co_qualname = & const_str_execle._ascii.ob_base, - .co_linetable = & os_toplevel_consts_90_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x64\x01\x19\x00\x00\x00\x7d\x02\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x64\x02\x64\x01\x1a\x00\x7c\x02\xab\x03\x00\x00\x00\x00\x00\x00\x01\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[150]; - } -os_toplevel_consts_91_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 149, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x65\x78\x65\x63\x6c\x70\x28\x66\x69\x6c\x65\x2c\x20\x2a\x61\x72\x67\x73\x29\x0a\x0a\x20\x20\x20\x20\x45\x78\x65\x63\x75\x74\x65\x20\x74\x68\x65\x20\x65\x78\x65\x63\x75\x74\x61\x62\x6c\x65\x20\x66\x69\x6c\x65\x20\x28\x77\x68\x69\x63\x68\x20\x69\x73\x20\x73\x65\x61\x72\x63\x68\x65\x64\x20\x66\x6f\x72\x20\x61\x6c\x6f\x6e\x67\x20\x24\x50\x41\x54\x48\x29\x0a\x20\x20\x20\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x6c\x69\x73\x74\x20\x61\x72\x67\x73\x2c\x20\x72\x65\x70\x6c\x61\x63\x69\x6e\x67\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_91_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & os_toplevel_consts_91_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_execvp = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "execvp", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_91_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_execvp._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_execlp = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "execlp", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[15]; - } -os_toplevel_consts_91_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 14, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0a\x00\x05\x0b\x88\x34\x90\x14\xd5\x04\x16", -}; -static - struct _PyCode_DEF(28) -os_toplevel_consts_91 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 14, - }, - .co_consts = & os_toplevel_consts_91_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_91_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 587, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 616, - .co_localsplusnames = & os_toplevel_consts_89_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_execlp._ascii.ob_base, - .co_qualname = & const_str_execlp._ascii.ob_base, - .co_linetable = & os_toplevel_consts_91_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[180]; - } -os_toplevel_consts_92_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 179, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x65\x78\x65\x63\x6c\x70\x65\x28\x66\x69\x6c\x65\x2c\x20\x2a\x61\x72\x67\x73\x2c\x20\x65\x6e\x76\x29\x0a\x0a\x20\x20\x20\x20\x45\x78\x65\x63\x75\x74\x65\x20\x74\x68\x65\x20\x65\x78\x65\x63\x75\x74\x61\x62\x6c\x65\x20\x66\x69\x6c\x65\x20\x28\x77\x68\x69\x63\x68\x20\x69\x73\x20\x73\x65\x61\x72\x63\x68\x65\x64\x20\x66\x6f\x72\x20\x61\x6c\x6f\x6e\x67\x20\x24\x50\x41\x54\x48\x29\x0a\x20\x20\x20\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x6c\x69\x73\x74\x20\x61\x72\x67\x73\x20\x61\x6e\x64\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x20\x65\x6e\x76\x2c\x20\x72\x65\x70\x6c\x61\x63\x69\x6e\x67\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_92_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & os_toplevel_consts_92_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_execvpe = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "execvpe", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_92_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_execvpe._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_execlpe = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "execlpe", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[32]; - } -os_toplevel_consts_92_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 31, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x0c\x00\x0b\x0f\x88\x72\x89\x28\x80\x43\xdc\x04\x0b\x88\x44\x90\x24\x90\x73\x98\x02\x90\x29\x98\x53\xd5\x04\x21", -}; -static - struct _PyCode_DEF(46) -os_toplevel_consts_92 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & os_toplevel_consts_92_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_92_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 594, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 617, - .co_localsplusnames = & os_toplevel_consts_90_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_execlpe._ascii.ob_base, - .co_qualname = & const_str_execlpe._ascii.ob_base, - .co_linetable = & os_toplevel_consts_92_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x64\x01\x19\x00\x00\x00\x7d\x02\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x64\x02\x64\x01\x1a\x00\x7c\x02\xab\x03\x00\x00\x00\x00\x00\x00\x01\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[193]; - } -os_toplevel_consts_93_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 192, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x65\x78\x65\x63\x76\x70\x28\x66\x69\x6c\x65\x2c\x20\x61\x72\x67\x73\x29\x0a\x0a\x20\x20\x20\x20\x45\x78\x65\x63\x75\x74\x65\x20\x74\x68\x65\x20\x65\x78\x65\x63\x75\x74\x61\x62\x6c\x65\x20\x66\x69\x6c\x65\x20\x28\x77\x68\x69\x63\x68\x20\x69\x73\x20\x73\x65\x61\x72\x63\x68\x65\x64\x20\x66\x6f\x72\x20\x61\x6c\x6f\x6e\x67\x20\x24\x50\x41\x54\x48\x29\x0a\x20\x20\x20\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x6c\x69\x73\x74\x20\x61\x72\x67\x73\x2c\x20\x72\x65\x70\x6c\x61\x63\x69\x6e\x67\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x20\x20\x20\x20\x61\x72\x67\x73\x20\x6d\x61\x79\x20\x62\x65\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x72\x20\x74\x75\x70\x6c\x65\x20\x6f\x66\x20\x73\x74\x72\x69\x6e\x67\x73\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_93_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & os_toplevel_consts_93_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str__execvpe = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_execvpe", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_93_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__execvpe._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[15]; - } -os_toplevel_consts_93_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 14, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0c\x00\x05\x0d\x88\x54\x90\x34\xd5\x04\x18", -}; -static - struct _PyCode_DEF(28) -os_toplevel_consts_93 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 14, - }, - .co_consts = & os_toplevel_consts_93_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_93_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 603, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 618, - .co_localsplusnames = & os_toplevel_consts_89_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_execvp._ascii.ob_base, - .co_qualname = & const_str_execvp._ascii.ob_base, - .co_linetable = & os_toplevel_consts_93_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[223]; - } -os_toplevel_consts_94_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 222, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x65\x78\x65\x63\x76\x70\x65\x28\x66\x69\x6c\x65\x2c\x20\x61\x72\x67\x73\x2c\x20\x65\x6e\x76\x29\x0a\x0a\x20\x20\x20\x20\x45\x78\x65\x63\x75\x74\x65\x20\x74\x68\x65\x20\x65\x78\x65\x63\x75\x74\x61\x62\x6c\x65\x20\x66\x69\x6c\x65\x20\x28\x77\x68\x69\x63\x68\x20\x69\x73\x20\x73\x65\x61\x72\x63\x68\x65\x64\x20\x66\x6f\x72\x20\x61\x6c\x6f\x6e\x67\x20\x24\x50\x41\x54\x48\x29\x0a\x20\x20\x20\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x6c\x69\x73\x74\x20\x61\x72\x67\x73\x20\x61\x6e\x64\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x20\x65\x6e\x76\x2c\x20\x72\x65\x70\x6c\x61\x63\x69\x6e\x67\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x20\x20\x20\x20\x61\x72\x67\x73\x20\x6d\x61\x79\x20\x62\x65\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x72\x20\x74\x75\x70\x6c\x65\x20\x6f\x66\x20\x73\x74\x72\x69\x6e\x67\x73\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_94_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & os_toplevel_consts_94_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[17]; - } -os_toplevel_consts_94_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 16, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0e\x00\x05\x0d\x88\x54\x90\x34\x98\x13\xd5\x04\x1d", -}; -static - struct _PyCode_DEF(30) -os_toplevel_consts_94 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 15, - }, - .co_consts = & os_toplevel_consts_94_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_93_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 611, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 619, - .co_localsplusnames = & os_toplevel_consts_90_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_execvpe._ascii.ob_base, - .co_qualname = & const_str_execvpe._ascii.ob_base, - .co_linetable = & os_toplevel_consts_94_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x02\xab\x03\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -os_toplevel_consts_95 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_execl._ascii.ob_base, - & const_str_execle._ascii.ob_base, - & const_str_execlp._ascii.ob_base, - & const_str_execlpe._ascii.ob_base, - & const_str_execvp._ascii.ob_base, - & const_str_execvpe._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_96_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - &_Py_ID(nt), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -os_toplevel_consts_96_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str_execve._ascii.ob_base, - & const_str_execv._ascii.ob_base, - & const_str_environ._ascii.ob_base, - &_Py_ID(path), - & const_str_dirname._ascii.ob_base, - & const_str_get_exec_path._ascii.ob_base, - &_Py_ID(name), - & const_str_fsencode._ascii.ob_base, - & const_str_map._ascii.ob_base, - &_Py_ID(join), - & const_str_FileNotFoundError._ascii.ob_base, - & const_str_NotADirectoryError._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[227]; - } -os_toplevel_consts_96_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 226, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x07\x0a\x80\x7f\xdc\x14\x1a\x88\x09\xd8\x13\x17\x98\x13\x90\x2b\x89\x07\xe4\x14\x19\x88\x09\xd8\x13\x17\x90\x27\x88\x07\xdc\x0e\x15\x88\x03\xe4\x07\x0b\x87\x7c\x81\x7c\x90\x44\xd4\x07\x19\xd9\x08\x11\x90\x24\xd0\x08\x21\x98\x17\xd3\x08\x21\xd8\x08\x0e\xd8\x10\x14\x80\x49\xdc\x10\x1d\x98\x63\xd3\x10\x22\x80\x49\xdc\x07\x0b\x88\x74\x82\x7c\xdc\x0f\x17\x98\x04\x8b\x7e\x88\x04\xdc\x14\x17\x9c\x08\xa0\x29\xd3\x14\x2c\x88\x09\xdb\x0f\x18\x88\x03\xdc\x13\x17\x97\x39\x91\x39\x98\x53\xa0\x24\xd3\x13\x27\x88\x08\xf0\x02\x07\x09\x1e\xd9\x0c\x15\x90\x68\xd0\x0c\x29\xa0\x17\xd4\x0c\x29\xf0\x07\x00\x10\x19\xf0\x14\x00\x08\x11\xd0\x07\x1c\xd8\x0e\x17\x88\x0f\xd8\x0a\x12\x80\x4e\xf8\xf4\x11\x00\x11\x22\xd4\x23\x35\xd0\x0f\x36\xf2\x00\x01\x09\x19\xd8\x17\x18\x8d\x48\xfb\xdc\x0f\x16\xf2\x00\x03\x09\x1e\xd8\x17\x18\x88\x48\xd8\x0f\x18\xd0\x0f\x20\xd8\x1c\x1d\x90\x09\xff\xf8\xf0\x07\x03\x09\x1e\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[37]; - } -os_toplevel_consts_96_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 36, - }, - .ob_shash = -1, - .ob_sval = "\xc2\x09\x09\x42\x1a\x02\xc2\x1a\x0f\x43\x0c\x05\xc2\x29\x02\x42\x30\x05\xc2\x30\x0c\x43\x0c\x05\xc2\x3c\x06\x43\x07\x05\xc3\x07\x05\x43\x0c\x05", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_exec_func = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "exec_func", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_argrest = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "argrest", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_saved_exc = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "saved_exc", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -os_toplevel_consts_96_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - &_Py_ID(file), - &_Py_ID(args), - &_Py_ID(env), - & const_str_exec_func._ascii.ob_base, - & const_str_argrest._ascii.ob_base, - & const_str_saved_exc._ascii.ob_base, - & const_str_path_list._ascii.ob_base, - & const_str_dir._ascii.ob_base, - & const_str_fullname._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[101], - &_Py_ID(last_exc), - }, - }, -}; -static - struct _PyCode_DEF(414) -os_toplevel_consts_96 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 207, - }, - .co_consts = & os_toplevel_consts_96_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_96_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_96_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 16 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 622, - .co_nlocalsplus = 11, - .co_nlocals = 11, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 620, - .co_localsplusnames = & os_toplevel_consts_96_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_6_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__execvpe._ascii.ob_base, - .co_qualname = & const_str__execvpe._ascii.ob_base, - .co_linetable = & os_toplevel_consts_96_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x02\x81\x0b\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x01\x7c\x02\x66\x02\x7d\x04\x6e\x0f\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x01\x66\x01\x7d\x04\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x72\x0a\x02\x00\x7c\x03\x7c\x00\x67\x01\x7c\x04\xa2\x01\xad\x06\x8e\x00\x01\x00\x79\x00\x64\x00\x7d\x05\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x6b\x37\x00\x00\x72\x1b\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x06\x44\x00\x5d\x22\x00\x00\x7d\x07\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x08\x09\x00\x02\x00\x7c\x03\x7c\x08\x67\x01\x7c\x04\xa2\x01\xad\x06\x8e\x00\x01\x00\x8c\x24\x04\x00\x7c\x05\x81\x02\x7c\x05\x82\x01\x7f\x0a\x82\x01\x23\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x0c\x7d\x09\x7c\x09\x7d\x0a\x59\x00\x64\x00\x7d\x09\x7e\x09\x8c\x41\x64\x00\x7d\x09\x7e\x09\x77\x01\x74\x18\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x10\x7d\x09\x7c\x09\x7d\x0a\x7c\x05\x80\x02\x7c\x09\x7d\x05\x59\x00\x64\x00\x7d\x09\x7e\x09\x8c\x58\x64\x00\x7d\x09\x7e\x09\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[244]; - } -os_toplevel_consts_97_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 243, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x73\x20\x74\x68\x65\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x6f\x66\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x74\x68\x61\x74\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x73\x65\x61\x72\x63\x68\x65\x64\x20\x66\x6f\x72\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x6e\x61\x6d\x65\x64\x20\x65\x78\x65\x63\x75\x74\x61\x62\x6c\x65\x20\x28\x73\x69\x6d\x69\x6c\x61\x72\x20\x74\x6f\x20\x61\x20\x73\x68\x65\x6c\x6c\x29\x20\x77\x68\x65\x6e\x20\x6c\x61\x75\x6e\x63\x68\x69\x6e\x67\x20\x61\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x0a\x20\x20\x20\x20\x2a\x65\x6e\x76\x2a\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x6e\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x64\x69\x63\x74\x20\x6f\x72\x20\x4e\x6f\x6e\x65\x2e\x20\x20\x49\x66\x20\x2a\x65\x6e\x76\x2a\x20\x69\x73\x20\x4e\x6f\x6e\x65\x2c\x0a\x20\x20\x20\x20\x6f\x73\x2e\x65\x6e\x76\x69\x72\x6f\x6e\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x75\x73\x65\x64\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_PATH = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "PATH", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -os_toplevel_consts_97_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "PATH", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[43]; - } -os_toplevel_consts_97_consts_6 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 42, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "env cannot contain 'PATH' and b'PATH' keys", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -os_toplevel_consts_97_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & os_toplevel_consts_97_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - &_Py_ID(ignore), - & const_str_PATH._ascii.ob_base, - & os_toplevel_consts_97_consts_5.ob_base.ob_base, - & os_toplevel_consts_97_consts_6._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_catch_warnings = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "catch_warnings", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_simplefilter = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "simplefilter", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -const_str_supports_bytes_environ = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "supports_bytes_environ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[16]; - }_object; - } -os_toplevel_consts_97_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 16, - }, - .ob_item = { - &_Py_ID(warnings), - & const_str_environ._ascii.ob_base, - & const_str_catch_warnings._ascii.ob_base, - & const_str_simplefilter._ascii.ob_base, - & const_str_BytesWarning._ascii.ob_base, - &_Py_ID(get), - & const_str_TypeError._ascii.ob_base, - & const_str_supports_bytes_environ._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_fsdecode._ascii.ob_base, - & const_str_defpath._ascii.ob_base, - & const_str_split._ascii.ob_base, - & const_str_pathsep._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[229]; - } -os_toplevel_consts_97_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 228, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf3\x14\x00\x05\x14\xe0\x07\x0a\x80\x7b\xdc\x0e\x15\x88\x03\xf0\x08\x00\x0a\x12\xd7\x09\x20\xd1\x09\x20\xd5\x09\x22\xd8\x08\x10\xd7\x08\x1d\xd1\x08\x1d\x98\x68\xac\x0c\xd4\x08\x35\xf0\x04\x03\x09\x1d\xd8\x18\x1b\x9f\x07\x99\x07\xa0\x06\x9b\x0f\x88\x49\xf5\x08\x00\x0c\x22\xf0\x02\x08\x0d\x27\xd8\x1d\x20\xa0\x17\x99\x5c\x90\x0a\xf0\x08\x00\x14\x1d\xd0\x13\x28\xdc\x1a\x24\xd8\x18\x44\xf3\x03\x01\x1b\x46\x01\xf0\x00\x01\x15\x46\x01\xe0\x1c\x26\x90\x09\xe0\x0f\x18\xd0\x0f\x24\xac\x1a\xb0\x49\xbc\x75\xd4\x29\x45\xdc\x1c\x24\xa0\x59\xd3\x1c\x2f\x90\x09\xf7\x29\x00\x0a\x23\xf0\x2c\x00\x08\x11\xd0\x07\x18\xdc\x14\x1b\x88\x09\xd8\x0b\x14\x8f\x3f\x89\x3f\x9c\x37\xd3\x0b\x23\xd0\x04\x23\xf8\xf4\x27\x00\x10\x19\xf2\x00\x01\x09\x1d\xd8\x18\x1c\x8a\x49\xf0\x03\x01\x09\x1d\xfb\xf4\x0c\x00\x15\x1d\x9c\x69\xd0\x13\x28\xf2\x00\x01\x0d\x15\xd9\x10\x14\xf0\x03\x01\x0d\x15\xfa\xf7\x17\x00\x0a\x23\xd0\x09\x22\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[83]; - } -os_toplevel_consts_97_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 82, - }, - .ob_shash = -1, - .ob_sval = "\x9d\x17\x43\x09\x03\xb5\x11\x42\x23\x02\xc1\x06\x06\x43\x09\x03\xc1\x0d\x05\x42\x34\x02\xc1\x12\x2c\x43\x09\x03\xc2\x23\x0b\x42\x31\x05\xc2\x2e\x02\x43\x09\x03\xc2\x30\x01\x42\x31\x05\xc2\x31\x03\x43\x09\x03\xc2\x34\x0f\x43\x06\x05\xc3\x03\x02\x43\x09\x03\xc3\x05\x01\x43\x06\x05\xc3\x06\x03\x43\x09\x03\xc3\x09\x05\x43\x12\x07", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_path_listb = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "path_listb", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_97_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(env), - &_Py_ID(warnings), - & const_str_path_list._ascii.ob_base, - & const_str_path_listb._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(426) -os_toplevel_consts_97 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 213, - }, - .co_consts = & os_toplevel_consts_97_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_97_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_97_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 654, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 621, - .co_localsplusnames = & os_toplevel_consts_97_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_get_exec_path._ascii.ob_base, - .co_qualname = & const_str_get_exec_path._ascii.ob_base, - .co_linetable = & os_toplevel_consts_97_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x64\x02\x6c\x00\x7d\x01\x7c\x00\x80\x06\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7c\x01\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x35\x00\x01\x00\x7c\x01\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x7c\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x72\x32\x09\x00\x7c\x00\x64\x05\x19\x00\x00\x00\x7d\x03\x7c\x02\x81\x0b\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x03\x7d\x02\x7c\x02\x81\x1b\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x0b\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x64\x02\x64\x02\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7f\x02\x80\x06\x74\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x02\x6a\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x1e\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x05\x01\x00\x64\x02\x7d\x02\x59\x00\x8c\x6a\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x24\x00\x72\x03\x01\x00\x59\x00\x8c\x64\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x8c\x4c\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_98 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_MutableMapping._ascii.ob_base, - & const_str_Mapping._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str__Environ = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_encodekey = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "encodekey", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_decodekey = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "decodekey", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_encodevalue = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "encodevalue", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_decodevalue = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "decodevalue", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__data = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_data", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -os_toplevel_consts_99_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_encodekey._ascii.ob_base, - & const_str_decodekey._ascii.ob_base, - & const_str_encodevalue._ascii.ob_base, - & const_str_decodevalue._ascii.ob_base, - & const_str__data._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -os_toplevel_consts_99_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[40]; - } -os_toplevel_consts_99_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 39, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x19\x22\x88\x04\x8c\x0e\xd8\x19\x22\x88\x04\x8c\x0e\xd8\x1b\x26\x88\x04\xd4\x08\x18\xd8\x1b\x26\x88\x04\xd4\x08\x18\xd8\x15\x19\x88\x04\x8d\x0a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -os_toplevel_consts_99_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(data), - & const_str_encodekey._ascii.ob_base, - & const_str_decodekey._ascii.ob_base, - & const_str_encodevalue._ascii.ob_base, - & const_str_decodevalue._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(74) -os_toplevel_consts_99_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 37, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 6, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 702, - .co_nlocalsplus = 6, - .co_nlocals = 6, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 622, - .co_localsplusnames = & os_toplevel_consts_99_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_30_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & os_toplevel_consts_99_consts_1_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x02\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x00\x5f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_99_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str__data._ascii.ob_base, - & const_str_encodekey._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - & const_str_decodevalue._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -os_toplevel_consts_99_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.__getitem__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[79]; - } -os_toplevel_consts_99_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 78, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x02\x04\x09\x2a\xd8\x14\x18\x97\x4a\x91\x4a\x98\x74\x9f\x7e\x99\x7e\xa8\x63\xd3\x1f\x32\xd1\x14\x33\x88\x45\xf0\x08\x00\x10\x14\xd7\x0f\x1f\xd1\x0f\x1f\xa0\x05\xd3\x0f\x26\xd0\x08\x26\xf8\xf4\x07\x00\x10\x18\xf2\x00\x02\x09\x2a\xe4\x12\x1a\x98\x33\x93\x2d\xa0\x54\xd0\x0c\x29\xf0\x05\x02\x09\x2a\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[10]; - } -os_toplevel_consts_99_consts_2_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 9, - }, - .ob_shash = -1, - .ob_sval = "\x82\x1e\x31\x00\xb1\x16\x41\x07\x03", -}; -static - struct _PyCode_DEF(148) -os_toplevel_consts_99_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 74, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_99_consts_2_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 709, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 623, - .co_localsplusnames = & _collections_abc_toplevel_consts_66_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__getitem__), - .co_qualname = & os_toplevel_consts_99_consts_2_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x7d\x02\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x0d\x01\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x64\x00\x82\x02\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_putenv = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "putenv", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_99_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_encodekey._ascii.ob_base, - & const_str_encodevalue._ascii.ob_base, - & const_str_putenv._ascii.ob_base, - & const_str__data._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -os_toplevel_consts_99_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.__setitem__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[56]; - } -os_toplevel_consts_99_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 55, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0e\x12\x8f\x6e\x89\x6e\x98\x53\xd3\x0e\x21\x88\x03\xd8\x10\x14\xd7\x10\x20\xd1\x10\x20\xa0\x15\xd3\x10\x27\x88\x05\xdc\x08\x0e\x88\x73\x90\x45\xd4\x08\x1a\xd8\x1a\x1f\x88\x04\x8f\x0a\x89\x0a\x90\x33\x8a\x0f", -}; -static - struct _PyCode_DEF(126) -os_toplevel_consts_99_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 63, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 717, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 624, - .co_localsplusnames = & _collections_abc_toplevel_consts_66_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__setitem__), - .co_qualname = & os_toplevel_consts_99_consts_3_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x02\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x3c\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_unsetenv = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "unsetenv", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_99_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_encodekey._ascii.ob_base, - & const_str_unsetenv._ascii.ob_base, - & const_str__data._ascii.ob_base, - & const_str_KeyError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -os_toplevel_consts_99_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.__delitem__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[69]; - } -os_toplevel_consts_99_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 68, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x15\x19\x97\x5e\x91\x5e\xa0\x43\xd3\x15\x28\x88\x0a\xdc\x08\x10\x90\x1a\xd4\x08\x1c\xf0\x02\x04\x09\x2a\xd8\x10\x14\x97\x0a\x91\x0a\x98\x3a\xd1\x10\x26\xf8\xdc\x0f\x17\xf2\x00\x02\x09\x2a\xe4\x12\x1a\x98\x33\x93\x2d\xa0\x54\xd0\x0c\x29\xf0\x05\x02\x09\x2a\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[10]; - } -os_toplevel_consts_99_consts_4_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 9, - }, - .ob_shash = -1, - .ob_sval = "\x9e\x0d\x2c\x00\xac\x16\x41\x02\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_encodedkey = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "encodedkey", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_99_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(key), - & const_str_encodedkey._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(138) -os_toplevel_consts_99_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 69, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_99_consts_4_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 723, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 625, - .co_localsplusnames = & os_toplevel_consts_99_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__delitem__), - .co_qualname = & os_toplevel_consts_99_consts_4_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x3d\x00\x79\x00\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x0d\x01\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x64\x00\x82\x02\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_99_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_list._ascii.ob_base, - & const_str__data._ascii.ob_base, - & const_str_decodekey._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -os_toplevel_consts_99_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.__iter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[46]; - } -os_toplevel_consts_99_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 45, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xe4\x0f\x13\x90\x44\x97\x4a\x91\x4a\xd3\x0f\x1f\x88\x04\xdb\x13\x17\x88\x43\xd8\x12\x16\x97\x2e\x91\x2e\xa0\x13\xd3\x12\x25\xd3\x0c\x25\xf1\x03\x00\x14\x18\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -os_toplevel_consts_99_consts_5_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x82\x31\x33\x01", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_99_consts_5_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(keys), - &_Py_ID(key), - }, - }, -}; -static - struct _PyCode_DEF(106) -os_toplevel_consts_99_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 53, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_99_consts_5_exceptiontable.ob_base.ob_base, - .co_flags = 35, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 732, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 626, - .co_localsplusnames = & os_toplevel_consts_99_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iter__), - .co_qualname = & os_toplevel_consts_99_consts_5_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x44\x00\x5d\x15\x00\x00\x7d\x02\x7c\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x96\x01\x97\x01\x01\x00\x8c\x17\x04\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_99_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(len), - & const_str__data._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -os_toplevel_consts_99_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.__len__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[17]; - } -os_toplevel_consts_99_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 16, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x12\x90\x34\x97\x3a\x91\x3a\x8b\x7f\xd0\x08\x1e", -}; -static - struct _PyCode_DEF(44) -os_toplevel_consts_99_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 738, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 627, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__len__), - .co_qualname = & os_toplevel_consts_99_consts_6_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_99_consts_7_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & importlib__bootstrap_external_toplevel_consts_42_consts_4._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_99_consts_7_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_decodekey._ascii.ob_base, - & const_str_decodevalue._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[37]; - } -os_toplevel_consts_99_consts_7_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 36, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.__repr__..", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[63]; - } -os_toplevel_consts_99_consts_7_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 62, - }, - .ob_shash = -1, - .ob_sval = "\xf8\xe8\x00\xf8\x80\x00\xf0\x00\x03\x24\x0a\xe1\x1e\x30\x91\x0a\x90\x03\x90\x55\xf0\x03\x00\x10\x14\x8f\x7e\x89\x7e\x98\x63\xd3\x0f\x22\xd0\x0e\x25\xa0\x52\xa8\x04\xd7\x28\x38\xd1\x28\x38\xb8\x15\xd3\x28\x3f\xd0\x27\x42\xd4\x0c\x43\xd9\x1e\x30\xf9", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -os_toplevel_consts_99_consts_7_consts_2_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = "\x83\x32\x35\x01", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_99_consts_7_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & importlib__bootstrap_external_toplevel_consts_6_localsplusnames_0._ascii.ob_base, - &_Py_ID(key), - &_Py_ID(value), - &_Py_ID(self), - }, - }, -}; -static - struct _PyCode_DEF(110) -os_toplevel_consts_99_consts_7_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 55, - }, - .co_consts = & os_toplevel_consts_99_consts_7_consts_2_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_consts_7_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_99_consts_7_consts_2_exceptiontable.ob_base.ob_base, - .co_flags = 51, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 742, - .co_nlocalsplus = 4, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 628, - .co_localsplusnames = & os_toplevel_consts_99_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_genexpr), - .co_qualname = & os_toplevel_consts_99_consts_7_consts_2_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_7_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x4b\x00\x01\x00\x97\x00\x7c\x00\x5d\x2c\x00\x00\x5c\x02\x00\x00\x7d\x01\x7d\x02\x89\x03\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x9b\x02\x64\x00\x89\x03\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x9b\x02\x9d\x03\x96\x01\x97\x01\x01\x00\x8c\x2e\x04\x00\x79\x01\xad\x03\x77\x01", - ._co_firsttraceable = 3, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -os_toplevel_consts_99_consts_7_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "environ({", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -os_toplevel_consts_99_consts_7_consts_4 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "})", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -os_toplevel_consts_99_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - Py_None, - & importlib__bootstrap_toplevel_consts_30_consts_5_consts_6._ascii.ob_base, - & os_toplevel_consts_99_consts_7_consts_2.ob_base.ob_base, - & os_toplevel_consts_99_consts_7_consts_3._ascii.ob_base, - & os_toplevel_consts_99_consts_7_consts_4._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_99_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(join), - & const_str__data._ascii.ob_base, - &_Py_ID(items), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -os_toplevel_consts_99_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.__repr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[62]; - } -os_toplevel_consts_99_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 61, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xd8\x1a\x1e\x9f\x29\x99\x29\xf3\x00\x03\x24\x0a\xe0\x1e\x22\x9f\x6a\x99\x6a\xd7\x1e\x2e\xd1\x1e\x2e\xd4\x1e\x30\xf3\x05\x03\x24\x0a\xf3\x00\x03\x1b\x0a\x88\x0f\xf0\x08\x00\x12\x1c\x98\x4f\xd0\x1b\x2c\xa8\x43\xd0\x0f\x30\xd0\x08\x30", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_formatted_items = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "formatted_items", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_99_consts_7_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - & const_str_formatted_items._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(116) -os_toplevel_consts_99_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 58, - }, - .co_consts = & os_toplevel_consts_99_consts_7_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 741, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 1, - .co_nfreevars = 0, - .co_version = 629, - .co_localsplusnames = & os_toplevel_consts_99_consts_7_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_26_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__repr__), - .co_qualname = & os_toplevel_consts_99_consts_7_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x00\x97\x00\x64\x01\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x66\x01\x64\x02\x84\x08\x89\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x44\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x64\x03\x7c\x01\x9b\x00\x64\x04\x9d\x03\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_99_consts_8_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(dict), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -os_toplevel_consts_99_consts_8_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.copy", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -os_toplevel_consts_99_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x13\x90\x44\x8b\x7a\xd0\x08\x19", -}; -static - struct _PyCode_DEF(24) -os_toplevel_consts_99_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 12, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 748, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 630, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(copy), - .co_qualname = & os_toplevel_consts_99_consts_8_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -os_toplevel_consts_99_consts_9_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.setdefault", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[29]; - } -os_toplevel_consts_99_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 28, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0b\x0e\x90\x64\x89\x3f\xd8\x18\x1d\x88\x44\x90\x13\x89\x49\xd8\x0f\x13\x90\x43\x89\x79\xd0\x08\x18", -}; -static - struct _PyCode_DEF(30) -os_toplevel_consts_99_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 15, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 751, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 631, - .co_localsplusnames = & _collections_abc_toplevel_consts_66_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_setdefault._ascii.ob_base, - .co_qualname = & os_toplevel_consts_99_consts_9_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x76\x01\x72\x05\x7c\x02\x7c\x00\x7c\x01\x3c\x00\x00\x00\x7c\x00\x7c\x01\x19\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_99_consts_10_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_update._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -os_toplevel_consts_99_consts_10_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.__ior__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[20]; - } -os_toplevel_consts_99_consts_10_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 19, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x08\x0c\x8f\x0b\x89\x0b\x90\x45\xd4\x08\x1a\xd8\x0f\x13\x88\x0b", -}; -static - struct _PyCode_DEF(40) -os_toplevel_consts_99_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_consts_10_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 756, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 632, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_58_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__ior__), - .co_qualname = & os_toplevel_consts_99_consts_10_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_10_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -os_toplevel_consts_99_consts_11_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_Mapping._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - &_Py_ID(dict), - & const_str_update._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -os_toplevel_consts_99_consts_11_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.__or__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[45]; - } -os_toplevel_consts_99_consts_11_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 44, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x19\x98\x25\xa4\x17\xd4\x0f\x29\xdc\x13\x21\xd0\x0c\x21\xdc\x0e\x12\x90\x34\x8b\x6a\x88\x03\xd8\x08\x0b\x8f\x0a\x89\x0a\x90\x35\xd4\x08\x19\xd8\x0f\x12\x88\x0a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_99_consts_11_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_other._ascii.ob_base, - & const_str_new._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(106) -os_toplevel_consts_99_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 53, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_consts_11_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 760, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 633, - .co_localsplusnames = & os_toplevel_consts_99_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__or__), - .co_qualname = & os_toplevel_consts_99_consts_11_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_11_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x02\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -os_toplevel_consts_99_consts_12_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Environ.__ror__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[45]; - } -os_toplevel_consts_99_consts_12_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 44, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x19\x98\x25\xa4\x17\xd4\x0f\x29\xdc\x13\x21\xd0\x0c\x21\xdc\x0e\x12\x90\x35\x8b\x6b\x88\x03\xd8\x08\x0b\x8f\x0a\x89\x0a\x90\x34\xd4\x08\x18\xd8\x0f\x12\x88\x0a", -}; -static - struct _PyCode_DEF(106) -os_toplevel_consts_99_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 53, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_consts_11_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 767, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 634, - .co_localsplusnames = & os_toplevel_consts_99_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__ror__), - .co_qualname = & os_toplevel_consts_99_consts_12_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x06\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x02\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[14]; - }_object; - } -os_toplevel_consts_99_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 14, - }, - .ob_item = { - & const_str__Environ._ascii.ob_base, - & os_toplevel_consts_99_consts_1.ob_base.ob_base, - & os_toplevel_consts_99_consts_2.ob_base.ob_base, - & os_toplevel_consts_99_consts_3.ob_base.ob_base, - & os_toplevel_consts_99_consts_4.ob_base.ob_base, - & os_toplevel_consts_99_consts_5.ob_base.ob_base, - & os_toplevel_consts_99_consts_6.ob_base.ob_base, - & os_toplevel_consts_99_consts_7.ob_base.ob_base, - & os_toplevel_consts_99_consts_8.ob_base.ob_base, - & os_toplevel_consts_99_consts_9.ob_base.ob_base, - & os_toplevel_consts_99_consts_10.ob_base.ob_base, - & os_toplevel_consts_99_consts_11.ob_base.ob_base, - & os_toplevel_consts_99_consts_12.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -os_toplevel_consts_99_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__init__), - &_Py_ID(__getitem__), - &_Py_ID(__setitem__), - &_Py_ID(__delitem__), - &_Py_ID(__iter__), - &_Py_ID(__len__), - &_Py_ID(__repr__), - &_Py_ID(copy), - & const_str_setdefault._ascii.ob_base, - &_Py_ID(__ior__), - &_Py_ID(__or__), - &_Py_ID(__ror__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[63]; - } -os_toplevel_consts_99_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 62, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf2\x02\x05\x05\x1a\xf2\x0e\x06\x05\x27\xf2\x10\x04\x05\x20\xf2\x0c\x07\x05\x2a\xf2\x12\x04\x05\x26\xf2\x0c\x01\x05\x1f\xf2\x06\x05\x05\x31\xf2\x0e\x01\x05\x1a\xf2\x06\x03\x05\x19\xf2\x0a\x02\x05\x14\xf2\x08\x05\x05\x13\xf3\x0e\x05\x05\x13", -}; -static - struct _PyCode_DEF(84) -os_toplevel_consts_99 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 42, - }, - .co_consts = & os_toplevel_consts_99_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_99_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 701, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 635, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__Environ._ascii.ob_base, - .co_qualname = & const_str__Environ._ascii.ob_base, - .co_linetable = & os_toplevel_consts_99_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x84\x00\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x04\x84\x00\x5a\x06\x64\x05\x84\x00\x5a\x07\x64\x06\x84\x00\x5a\x08\x64\x07\x84\x00\x5a\x09\x64\x08\x84\x00\x5a\x0a\x64\x09\x84\x00\x5a\x0b\x64\x0a\x84\x00\x5a\x0c\x64\x0b\x84\x00\x5a\x0d\x64\x0c\x84\x00\x5a\x0e\x79\x0d", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -os_toplevel_consts_101_consts_2_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "str expected, not %s", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_101_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & os_toplevel_consts_101_consts_2_consts_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -os_toplevel_consts_101_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_str._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - &_Py_ID(type), - &_Py_ID(__name__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_check_str = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "check_str", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[34]; - } -os_toplevel_consts_101_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 33, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_createenviron..check_str", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[45]; - } -os_toplevel_consts_101_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 44, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x13\x1d\x98\x65\xa4\x53\xd4\x13\x29\xdc\x16\x1f\xd0\x20\x36\xbc\x14\xb8\x65\xbb\x1b\xd7\x39\x4d\xd1\x39\x4d\xd1\x20\x4d\xd3\x16\x4e\xd0\x10\x4e\xd8\x13\x18\x88\x4c", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_101_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(104) -os_toplevel_consts_101_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 52, - }, - .co_consts = & os_toplevel_consts_101_consts_2_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_101_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 19, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 777, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 636, - .co_localsplusnames = & os_toplevel_consts_101_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_check_str._ascii.ob_base, - .co_qualname = & os_toplevel_consts_101_consts_2_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_101_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x21\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_101_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_upper._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[34]; - } -os_toplevel_consts_101_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 33, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_createenviron..encodekey", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[23]; - } -os_toplevel_consts_101_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 22, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xd9\x13\x19\x98\x23\x93\x3b\xd7\x13\x24\xd1\x13\x24\xd3\x13\x26\xd0\x0c\x26", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_101_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(key), - &_Py_ID(encode), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -os_toplevel_consts_101_consts_3_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = "\x20\x80", -}; -static - struct _PyCode_DEF(48) -os_toplevel_consts_101_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 24, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_101_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 19, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 783, - .co_nlocalsplus = 2, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 637, - .co_localsplusnames = & os_toplevel_consts_101_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & os_toplevel_consts_101_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_encodekey._ascii.ob_base, - .co_qualname = & os_toplevel_consts_101_consts_3_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_101_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x02\x00\x89\x01\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_101_consts_4_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & os_toplevel_consts_101_consts_2_consts_1._ascii.ob_base, - & const_str_surrogateescape._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -os_toplevel_consts_101_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_str._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - &_Py_ID(type), - &_Py_ID(__name__), - &_Py_ID(encode), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[31]; - } -os_toplevel_consts_101_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 30, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_createenviron..encode", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[59]; - } -os_toplevel_consts_101_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 58, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xdc\x13\x1d\x98\x65\xa4\x53\xd4\x13\x29\xdc\x16\x1f\xd0\x20\x36\xbc\x14\xb8\x65\xbb\x1b\xd7\x39\x4d\xd1\x39\x4d\xd1\x20\x4d\xd3\x16\x4e\xd0\x10\x4e\xd8\x13\x18\x97\x3c\x91\x3c\xa0\x08\xd0\x2a\x3b\xd3\x13\x3c\xd0\x0c\x3c", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_101_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(value), - &_Py_ID(encoding), - }, - }, -}; -static - struct _PyCode_DEF(138) -os_toplevel_consts_101_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 69, - }, - .co_consts = & os_toplevel_consts_101_consts_4_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_101_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 19, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 791, - .co_nlocalsplus = 2, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 638, - .co_localsplusnames = & os_toplevel_consts_101_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & os_toplevel_consts_101_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(encode), - .co_qualname = & os_toplevel_consts_101_consts_4_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_101_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x21\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_101_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & const_str_surrogateescape._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_101_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(decode), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[31]; - } -os_toplevel_consts_101_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 30, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_createenviron..decode", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[22]; - } -os_toplevel_consts_101_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 21, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xd8\x13\x18\x97\x3c\x91\x3c\xa0\x08\xd0\x2a\x3b\xd3\x13\x3c\xd0\x0c\x3c", -}; -static - struct _PyCode_DEF(40) -os_toplevel_consts_101_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & os_toplevel_consts_101_consts_5_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_101_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 19, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 795, - .co_nlocalsplus = 2, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 1, - .co_version = 639, - .co_localsplusnames = & os_toplevel_consts_101_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & os_toplevel_consts_101_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(decode), - .co_qualname = & os_toplevel_consts_101_consts_5_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_101_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x01\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -os_toplevel_consts_101_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - Py_None, - &_Py_ID(nt), - & os_toplevel_consts_101_consts_2.ob_base.ob_base, - & os_toplevel_consts_101_consts_3.ob_base.ob_base, - & os_toplevel_consts_101_consts_4.ob_base.ob_base, - & os_toplevel_consts_101_consts_5.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -os_toplevel_consts_101_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(name), - & const_str_str._ascii.ob_base, - & const_str_environ._ascii.ob_base, - &_Py_ID(items), - & const_str_sys._ascii.ob_base, - & const_str_getfilesystemencoding._ascii.ob_base, - & const_str__Environ._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__createenviron = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_createenviron", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[133]; - } -os_toplevel_consts_101_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 132, - }, - .ob_shash = -1, - .ob_sval = "\xf9\x80\x00\xdc\x07\x0b\x88\x74\x82\x7c\xf2\x04\x03\x09\x19\xf0\x08\x00\x12\x1b\x88\x06\xdc\x11\x14\x88\x06\xf4\x02\x01\x09\x27\xe0\x0f\x11\x88\x04\xdc\x1a\x21\x9f\x2d\x99\x2d\x9e\x2f\x89\x4a\x88\x43\x90\x15\xd8\x23\x28\x88\x44\x91\x19\x98\x33\x93\x1e\xd2\x0c\x20\xf1\x03\x00\x1b\x2a\xf4\x08\x00\x14\x17\xd7\x13\x2c\xd1\x13\x2c\xd3\x13\x2e\x88\x08\xf4\x02\x03\x09\x3d\xf4\x08\x01\x09\x3d\xe0\x14\x1a\x88\x09\xdc\x0f\x16\x88\x04\xdc\x0b\x13\x90\x44\xd8\x08\x11\x90\x36\xd8\x08\x0e\x90\x06\xf3\x05\x02\x0c\x18\xf0\x00\x02\x05\x18", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -os_toplevel_consts_101_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_check_str._ascii.ob_base, - &_Py_ID(decode), - & const_str_encodekey._ascii.ob_base, - &_Py_ID(data), - &_Py_ID(key), - &_Py_ID(value), - &_Py_ID(encode), - &_Py_ID(encoding), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[9]; - } -os_toplevel_consts_101_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 8, - }, - .ob_shash = -1, - .ob_sval = " @@", -}; -static - struct _PyCode_DEF(246) -os_toplevel_consts_101 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 123, - }, - .co_consts = & os_toplevel_consts_101_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_101_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 15 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 774, - .co_nlocalsplus = 8, - .co_nlocals = 6, - .co_ncellvars = 2, - .co_nfreevars = 0, - .co_version = 640, - .co_localsplusnames = & os_toplevel_consts_101_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & os_toplevel_consts_101_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__createenviron._ascii.ob_base, - .co_qualname = & const_str__createenviron._ascii.ob_base, - .co_linetable = & os_toplevel_consts_101_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x06\x87\x07\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x6b\x28\x00\x00\x72\x3a\x64\x02\x84\x00\x7d\x00\x7c\x00\x8a\x06\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x88\x06\x66\x01\x64\x03\x84\x08\x7d\x02\x69\x00\x7d\x03\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x10\x00\x00\x5c\x02\x00\x00\x7d\x04\x7d\x05\x7c\x05\x7c\x03\x02\x00\x7c\x02\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x8c\x12\x04\x00\x6e\x26\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x8a\x07\x88\x07\x66\x01\x64\x04\x84\x08\x8a\x06\x88\x07\x66\x01\x64\x05\x84\x08\x7d\x01\x89\x06\x7d\x02\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x02\x7c\x01\x89\x06\x7c\x01\xab\x05\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[170]; - } -os_toplevel_consts_102_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 169, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x47\x65\x74\x20\x61\x6e\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x2c\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x6e\x65\x20\x69\x66\x20\x69\x74\x20\x64\x6f\x65\x73\x6e\x27\x74\x20\x65\x78\x69\x73\x74\x2e\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x6f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x73\x65\x63\x6f\x6e\x64\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x63\x61\x6e\x20\x73\x70\x65\x63\x69\x66\x79\x20\x61\x6e\x20\x61\x6c\x74\x65\x72\x6e\x61\x74\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x2e\x0a\x20\x20\x20\x20\x6b\x65\x79\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6c\x74\x20\x61\x72\x65\x20\x73\x74\x72\x2e", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_102_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & os_toplevel_consts_102_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_102_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_environ._ascii.ob_base, - &_Py_ID(get), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_getenv = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getenv", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[22]; - } -os_toplevel_consts_102_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 21, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x08\x00\x0c\x13\x8f\x3b\x89\x3b\x90\x73\x98\x47\xd3\x0b\x24\xd0\x04\x24", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_102_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(key), - &_Py_ID(default), - }, - }, -}; -static - struct _PyCode_DEF(46) -os_toplevel_consts_102 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & os_toplevel_consts_102_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_102_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 808, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 641, - .co_localsplusnames = & os_toplevel_consts_102_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_getenv._ascii.ob_base, - .co_qualname = & const_str_getenv._ascii.ob_base, - .co_linetable = & os_toplevel_consts_102_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_103 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_getenv._ascii.ob_base, - & const_str_supports_bytes_environ._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -os_toplevel_consts_104_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bytes expected, not %s", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_104_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & os_toplevel_consts_104_consts_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -os_toplevel_consts_104_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(isinstance), - &_Py_ID(bytes), - & const_str_TypeError._ascii.ob_base, - &_Py_ID(type), - &_Py_ID(__name__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str__check_bytes = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_check_bytes", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[45]; - } -os_toplevel_consts_104_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 44, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x19\x98\x25\xa4\x15\xd4\x0f\x27\xdc\x12\x1b\xd0\x1c\x34\xb4\x74\xb8\x45\xb3\x7b\xd7\x37\x4b\xd1\x37\x4b\xd1\x1c\x4b\xd3\x12\x4c\xd0\x0c\x4c\xd8\x0f\x14\x88\x0c", -}; -static - struct _PyCode_DEF(104) -os_toplevel_consts_104 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 52, - }, - .co_consts = & os_toplevel_consts_104_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_104_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 818, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 642, - .co_localsplusnames = & os_toplevel_consts_101_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__check_bytes._ascii.ob_base, - .co_qualname = & const_str__check_bytes._ascii.ob_base, - .co_linetable = & os_toplevel_consts_104_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x21\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[180]; - } -os_toplevel_consts_105_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 179, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x47\x65\x74\x20\x61\x6e\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x2c\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x6f\x6e\x65\x20\x69\x66\x20\x69\x74\x20\x64\x6f\x65\x73\x6e\x27\x74\x20\x65\x78\x69\x73\x74\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x6f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x73\x65\x63\x6f\x6e\x64\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x63\x61\x6e\x20\x73\x70\x65\x63\x69\x66\x79\x20\x61\x6e\x20\x61\x6c\x74\x65\x72\x6e\x61\x74\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6c\x74\x20\x61\x72\x65\x20\x62\x79\x74\x65\x73\x2e", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_105_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & os_toplevel_consts_105_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_105_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_environb._ascii.ob_base, - &_Py_ID(get), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_getenvb = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getenvb", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[22]; - } -os_toplevel_consts_105_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 21, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x08\x00\x10\x18\x8f\x7c\x89\x7c\x98\x43\xa0\x17\xd3\x0f\x29\xd0\x08\x29", -}; -static - struct _PyCode_DEF(46) -os_toplevel_consts_105 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & os_toplevel_consts_105_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_105_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 829, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 643, - .co_localsplusnames = & os_toplevel_consts_102_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_getenvb._ascii.ob_base, - .co_qualname = & const_str_getenvb._ascii.ob_base, - .co_linetable = & os_toplevel_consts_105_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_106 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_environb._ascii.ob_base, - & const_str_getenvb._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[280]; - } -os_toplevel_consts_107_consts_1_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 279, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x45\x6e\x63\x6f\x64\x65\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x20\x28\x61\x6e\x20\x6f\x73\x2e\x50\x61\x74\x68\x4c\x69\x6b\x65\x2c\x20\x62\x79\x74\x65\x73\x2c\x20\x6f\x72\x20\x73\x74\x72\x29\x20\x74\x6f\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x77\x69\x74\x68\x20\x27\x73\x75\x72\x72\x6f\x67\x61\x74\x65\x65\x73\x63\x61\x70\x65\x27\x20\x65\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x65\x72\x2c\x20\x72\x65\x74\x75\x72\x6e\x20\x62\x79\x74\x65\x73\x20\x75\x6e\x63\x68\x61\x6e\x67\x65\x64\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x6e\x20\x57\x69\x6e\x64\x6f\x77\x73\x2c\x20\x75\x73\x65\x20\x27\x73\x74\x72\x69\x63\x74\x27\x20\x65\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x65\x72\x20\x69\x66\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x20\x73\x79\x73\x74\x65\x6d\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x69\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x27\x6d\x62\x63\x73\x27\x20\x28\x77\x68\x69\x63\x68\x20\x69\x73\x20\x74\x68\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x29\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_107_consts_1_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & os_toplevel_consts_107_consts_1_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_107_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - & const_str_str._ascii.ob_base, - &_Py_ID(encode), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -os_toplevel_consts_107_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_fscodec..fsencode", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[48]; - } -os_toplevel_consts_107_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 47, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xf4\x0c\x00\x14\x1a\x98\x28\xd3\x13\x23\x88\x08\xdc\x0b\x15\x90\x68\xa4\x03\xd4\x0b\x24\xd8\x13\x1b\x97\x3f\x91\x3f\xa0\x38\xa8\x56\xd3\x13\x34\xd0\x0c\x34\xe0\x13\x1b\x88\x4f", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_107_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(filename), - &_Py_ID(encoding), - &_Py_ID(errors), - }, - }, -}; -static - struct _PyCode_DEF(98) -os_toplevel_consts_107_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 49, - }, - .co_consts = & os_toplevel_consts_107_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_107_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 19, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 841, - .co_nlocalsplus = 3, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 2, - .co_version = 644, - .co_localsplusnames = & os_toplevel_consts_107_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_external_toplevel_consts_72_consts_8_consts_1_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_fsencode._ascii.ob_base, - .co_qualname = & os_toplevel_consts_107_consts_1_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_107_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x02\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x12\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\x89\x02\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[280]; - } -os_toplevel_consts_107_consts_2_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 279, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x44\x65\x63\x6f\x64\x65\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x20\x28\x61\x6e\x20\x6f\x73\x2e\x50\x61\x74\x68\x4c\x69\x6b\x65\x2c\x20\x62\x79\x74\x65\x73\x2c\x20\x6f\x72\x20\x73\x74\x72\x29\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x77\x69\x74\x68\x20\x27\x73\x75\x72\x72\x6f\x67\x61\x74\x65\x65\x73\x63\x61\x70\x65\x27\x20\x65\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x65\x72\x2c\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x20\x75\x6e\x63\x68\x61\x6e\x67\x65\x64\x2e\x20\x4f\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x57\x69\x6e\x64\x6f\x77\x73\x2c\x20\x75\x73\x65\x20\x27\x73\x74\x72\x69\x63\x74\x27\x20\x65\x72\x72\x6f\x72\x20\x68\x61\x6e\x64\x6c\x65\x72\x20\x69\x66\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x20\x73\x79\x73\x74\x65\x6d\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x20\x69\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x27\x6d\x62\x63\x73\x27\x20\x28\x77\x68\x69\x63\x68\x20\x69\x73\x20\x74\x68\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x29\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_107_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & os_toplevel_consts_107_consts_2_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_107_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_fspath._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(bytes), - &_Py_ID(decode), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -os_toplevel_consts_107_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_fscodec..fsdecode", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[48]; - } -os_toplevel_consts_107_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 47, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xf4\x0c\x00\x14\x1a\x98\x28\xd3\x13\x23\x88\x08\xdc\x0b\x15\x90\x68\xa4\x05\xd4\x0b\x26\xd8\x13\x1b\x97\x3f\x91\x3f\xa0\x38\xa8\x56\xd3\x13\x34\xd0\x0c\x34\xe0\x13\x1b\x88\x4f", -}; -static - struct _PyCode_DEF(98) -os_toplevel_consts_107_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 49, - }, - .co_consts = & os_toplevel_consts_107_consts_2_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_107_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 19, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 853, - .co_nlocalsplus = 3, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 2, - .co_version = 645, - .co_localsplusnames = & os_toplevel_consts_107_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_external_toplevel_consts_72_consts_8_consts_1_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_fsdecode._ascii.ob_base, - .co_qualname = & os_toplevel_consts_107_consts_2_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_107_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x02\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x12\x7c\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\x89\x02\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_107_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & os_toplevel_consts_107_consts_1.ob_base.ob_base, - & os_toplevel_consts_107_consts_2.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -const_str_getfilesystemencodeerrors = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getfilesystemencodeerrors", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_107_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - & const_str_getfilesystemencoding._ascii.ob_base, - & const_str_getfilesystemencodeerrors._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str__fscodec = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_fscodec", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[55]; - } -os_toplevel_consts_107_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 54, - }, - .ob_shash = -1, - .ob_sval = "\xf9\x80\x00\xdc\x0f\x12\xd7\x0f\x28\xd1\x0f\x28\xd3\x0f\x2a\x80\x48\xdc\x0d\x10\xd7\x0d\x2a\xd1\x0d\x2a\xd3\x0d\x2c\x80\x46\xf5\x04\x0a\x05\x1c\xf5\x18\x0a\x05\x1c\xf0\x18\x00\x0c\x14\x90\x58\xd0\x0b\x1d\xd0\x04\x1d", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_107_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_fsencode._ascii.ob_base, - & const_str_fsdecode._ascii.ob_base, - &_Py_ID(encoding), - &_Py_ID(errors), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[5]; - } -os_toplevel_consts_107_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 4, - }, - .ob_shash = -1, - .ob_sval = " @@", -}; -static - struct _PyCode_DEF(118) -os_toplevel_consts_107 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 59, - }, - .co_consts = & os_toplevel_consts_107_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_107_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 837, - .co_nlocalsplus = 4, - .co_nlocals = 2, - .co_ncellvars = 2, - .co_nfreevars = 0, - .co_version = 646, - .co_localsplusnames = & os_toplevel_consts_107_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & os_toplevel_consts_107_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__fscodec._ascii.ob_base, - .co_qualname = & const_str__fscodec._ascii.ob_base, - .co_linetable = & os_toplevel_consts_107_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x02\x87\x03\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x8a\x02\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x8a\x03\x88\x02\x88\x03\x66\x02\x64\x01\x84\x08\x7d\x00\x88\x02\x88\x03\x66\x02\x64\x02\x84\x08\x7d\x01\x7c\x00\x7c\x01\x66\x02\x53\x00", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_fork = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fork", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_spawnv = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "spawnv", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_P_WAIT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "P_WAIT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_P_NOWAIT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "P_NOWAIT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_P_NOWAITO = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "P_NOWAITO", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_111 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_P_WAIT._ascii.ob_base, - & const_str_P_NOWAIT._ascii.ob_base, - & const_str_P_NOWAITO._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[31]; - } -os_toplevel_consts_112_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 30, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "argv must be a tuple or a list", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[35]; - } -os_toplevel_consts_112_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 34, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "argv first element cannot be empty", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -os_toplevel_consts_112_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - Py_None, - & os_toplevel_consts_112_consts_1._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & os_toplevel_consts_112_consts_3._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 127], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_waitpid = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "waitpid", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_WIFSTOPPED = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "WIFSTOPPED", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -const_str_waitstatus_to_exitcode = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "waitstatus_to_exitcode", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -os_toplevel_consts_112_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_tuple._ascii.ob_base, - & const_str_list._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - & const_str_fork._ascii.ob_base, - & const_str__exit._ascii.ob_base, - & const_str_P_NOWAIT._ascii.ob_base, - & const_str_waitpid._ascii.ob_base, - & const_str_WIFSTOPPED._ascii.ob_base, - & const_str_waitstatus_to_exitcode._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str__spawnvef = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_spawnvef", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[165]; - } -os_toplevel_consts_112_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 164, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0f\x19\x98\x24\xa4\x15\xac\x04\xa0\x0d\xd4\x0f\x2e\xdc\x12\x1b\xd0\x1c\x3c\xd3\x12\x3d\xd0\x0c\x3d\xd9\x0f\x13\x98\x34\xa0\x01\x9a\x37\xdc\x12\x1c\xd0\x1d\x41\xd3\x12\x42\xd0\x0c\x42\xdc\x0e\x12\x8b\x66\x88\x03\xd9\x0f\x12\xf0\x04\x06\x0d\x1b\xd8\x13\x16\x90\x3b\xd9\x14\x18\x98\x14\x98\x74\xd5\x14\x24\xe1\x14\x18\x98\x14\x98\x74\xa0\x53\xd5\x14\x29\xf0\x05\x00\x15\x25\xf0\x0e\x00\x10\x14\x94\x78\xd2\x0f\x1f\xd8\x17\x1a\x90\x0a\xd8\x12\x13\xdc\x1c\x23\xa0\x43\xa8\x11\x9b\x4f\x91\x09\x90\x04\x90\x63\xdc\x13\x1d\x98\x63\x94\x3f\xd8\x14\x1c\xe4\x17\x2d\xa8\x63\xd3\x17\x32\xd0\x10\x32\xf8\xf0\x17\x01\x0d\x1b\xdc\x10\x15\x90\x63\x96\x0a\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -os_toplevel_consts_112_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x01\x16\x42\x0b\x00\xc2\x0b\x0d\x42\x1a\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_wpid = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "wpid", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_sts = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "sts", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -os_toplevel_consts_112_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(mode), - &_Py_ID(file), - &_Py_ID(args), - &_Py_ID(env), - &_Py_ID(func), - &_Py_ID(pid), - & const_str_wpid._ascii.ob_base, - & const_str_sts._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(314) -os_toplevel_consts_112 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 157, - }, - .co_consts = & os_toplevel_consts_112_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_112_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_112_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 5, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 13 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 882, - .co_nlocalsplus = 8, - .co_nlocals = 8, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 647, - .co_localsplusnames = & os_toplevel_consts_112_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_13_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__spawnvef._ascii.ob_base, - .co_qualname = & const_str__spawnvef._ascii.ob_base, - .co_linetable = & os_toplevel_consts_112_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\xab\x02\x00\x00\x00\x00\x00\x00\x73\x0b\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x02\x72\x05\x7c\x02\x64\x02\x19\x00\x00\x00\x73\x0b\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x7c\x05\x73\x19\x09\x00\x7c\x03\x80\x0a\x02\x00\x7c\x04\x7c\x01\x7c\x02\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x0b\x02\x00\x7c\x04\x7c\x01\x7c\x02\x7c\x03\xab\x03\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x79\x00\x7c\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x72\x02\x7c\x05\x53\x00\x09\x00\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x06\x7d\x07\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\xab\x01\x00\x00\x00\x00\x00\x00\x72\x01\x8c\x1c\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x01\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x59\x00\x79\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[278]; - } -os_toplevel_consts_113_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 277, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x73\x70\x61\x77\x6e\x76\x28\x6d\x6f\x64\x65\x2c\x20\x66\x69\x6c\x65\x2c\x20\x61\x72\x67\x73\x29\x20\x2d\x3e\x20\x69\x6e\x74\x65\x67\x65\x72\x0a\x0a\x45\x78\x65\x63\x75\x74\x65\x20\x66\x69\x6c\x65\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x66\x72\x6f\x6d\x20\x61\x72\x67\x73\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x4e\x4f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x69\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x27\x73\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x20\x69\x66\x20\x69\x74\x20\x65\x78\x69\x74\x73\x20\x6e\x6f\x72\x6d\x61\x6c\x6c\x79\x3b\x0a\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x53\x49\x47\x2c\x20\x77\x68\x65\x72\x65\x20\x53\x49\x47\x20\x69\x73\x20\x74\x68\x65\x20\x73\x69\x67\x6e\x61\x6c\x20\x74\x68\x61\x74\x20\x6b\x69\x6c\x6c\x65\x64\x20\x69\x74\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_113_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & os_toplevel_consts_113_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_113_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__spawnvef._ascii.ob_base, - & const_str_execv._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -os_toplevel_consts_113_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0e\x00\x10\x19\x98\x14\x98\x74\xa0\x54\xa8\x34\xb4\x15\xd3\x0f\x37\xd0\x08\x37", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_113_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(mode), - &_Py_ID(file), - &_Py_ID(args), - }, - }, -}; -static - struct _PyCode_DEF(40) -os_toplevel_consts_113 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & os_toplevel_consts_113_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_113_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 909, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 648, - .co_localsplusnames = & os_toplevel_consts_113_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_spawnv._ascii.ob_base, - .co_qualname = & const_str_spawnv._ascii.ob_base, - .co_linetable = & os_toplevel_consts_113_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x02\x64\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x05\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[315]; - } -os_toplevel_consts_114_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 314, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x73\x70\x61\x77\x6e\x76\x65\x28\x6d\x6f\x64\x65\x2c\x20\x66\x69\x6c\x65\x2c\x20\x61\x72\x67\x73\x2c\x20\x65\x6e\x76\x29\x20\x2d\x3e\x20\x69\x6e\x74\x65\x67\x65\x72\x0a\x0a\x45\x78\x65\x63\x75\x74\x65\x20\x66\x69\x6c\x65\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x66\x72\x6f\x6d\x20\x61\x72\x67\x73\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x70\x72\x6f\x63\x65\x73\x73\x20\x77\x69\x74\x68\x20\x74\x68\x65\x0a\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x4e\x4f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x69\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x27\x73\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x20\x69\x66\x20\x69\x74\x20\x65\x78\x69\x74\x73\x20\x6e\x6f\x72\x6d\x61\x6c\x6c\x79\x3b\x0a\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x53\x49\x47\x2c\x20\x77\x68\x65\x72\x65\x20\x53\x49\x47\x20\x69\x73\x20\x74\x68\x65\x20\x73\x69\x67\x6e\x61\x6c\x20\x74\x68\x61\x74\x20\x6b\x69\x6c\x6c\x65\x64\x20\x69\x74\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_114_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & os_toplevel_consts_114_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_114_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__spawnvef._ascii.ob_base, - & const_str_execve._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_spawnve = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "spawnve", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -os_toplevel_consts_114_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x10\x00\x10\x19\x98\x14\x98\x74\xa0\x54\xa8\x33\xb4\x06\xd3\x0f\x37\xd0\x08\x37", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_114_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(mode), - &_Py_ID(file), - &_Py_ID(args), - &_Py_ID(env), - }, - }, -}; -static - struct _PyCode_DEF(40) -os_toplevel_consts_114 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & os_toplevel_consts_114_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_114_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 918, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 649, - .co_localsplusnames = & os_toplevel_consts_114_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_spawnve._ascii.ob_base, - .co_qualname = & const_str_spawnve._ascii.ob_base, - .co_linetable = & os_toplevel_consts_114_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x05\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[313]; - } -os_toplevel_consts_115_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 312, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x73\x70\x61\x77\x6e\x76\x70\x28\x6d\x6f\x64\x65\x2c\x20\x66\x69\x6c\x65\x2c\x20\x61\x72\x67\x73\x29\x20\x2d\x3e\x20\x69\x6e\x74\x65\x67\x65\x72\x0a\x0a\x45\x78\x65\x63\x75\x74\x65\x20\x66\x69\x6c\x65\x20\x28\x77\x68\x69\x63\x68\x20\x69\x73\x20\x6c\x6f\x6f\x6b\x65\x64\x20\x66\x6f\x72\x20\x61\x6c\x6f\x6e\x67\x20\x24\x50\x41\x54\x48\x29\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x66\x72\x6f\x6d\x0a\x61\x72\x67\x73\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x4e\x4f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x69\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x27\x73\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x20\x69\x66\x20\x69\x74\x20\x65\x78\x69\x74\x73\x20\x6e\x6f\x72\x6d\x61\x6c\x6c\x79\x3b\x0a\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x53\x49\x47\x2c\x20\x77\x68\x65\x72\x65\x20\x53\x49\x47\x20\x69\x73\x20\x74\x68\x65\x20\x73\x69\x67\x6e\x61\x6c\x20\x74\x68\x61\x74\x20\x6b\x69\x6c\x6c\x65\x64\x20\x69\x74\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_115_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & os_toplevel_consts_115_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_115_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__spawnvef._ascii.ob_base, - & const_str_execvp._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_spawnvp = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "spawnvp", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -os_toplevel_consts_115_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x10\x00\x10\x19\x98\x14\x98\x74\xa0\x54\xa8\x34\xb4\x16\xd3\x0f\x38\xd0\x08\x38", -}; -static - struct _PyCode_DEF(40) -os_toplevel_consts_115 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & os_toplevel_consts_115_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_115_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 930, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 650, - .co_localsplusnames = & os_toplevel_consts_113_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_spawnvp._ascii.ob_base, - .co_qualname = & const_str_spawnvp._ascii.ob_base, - .co_linetable = & os_toplevel_consts_115_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x02\x64\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x05\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[349]; - } -os_toplevel_consts_116_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 348, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x73\x70\x61\x77\x6e\x76\x70\x65\x28\x6d\x6f\x64\x65\x2c\x20\x66\x69\x6c\x65\x2c\x20\x61\x72\x67\x73\x2c\x20\x65\x6e\x76\x29\x20\x2d\x3e\x20\x69\x6e\x74\x65\x67\x65\x72\x0a\x0a\x45\x78\x65\x63\x75\x74\x65\x20\x66\x69\x6c\x65\x20\x28\x77\x68\x69\x63\x68\x20\x69\x73\x20\x6c\x6f\x6f\x6b\x65\x64\x20\x66\x6f\x72\x20\x61\x6c\x6f\x6e\x67\x20\x24\x50\x41\x54\x48\x29\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x66\x72\x6f\x6d\x0a\x61\x72\x67\x73\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x70\x72\x6f\x63\x65\x73\x73\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x73\x75\x70\x70\x6c\x69\x65\x64\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x4e\x4f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x69\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x27\x73\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x20\x69\x66\x20\x69\x74\x20\x65\x78\x69\x74\x73\x20\x6e\x6f\x72\x6d\x61\x6c\x6c\x79\x3b\x0a\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x53\x49\x47\x2c\x20\x77\x68\x65\x72\x65\x20\x53\x49\x47\x20\x69\x73\x20\x74\x68\x65\x20\x73\x69\x67\x6e\x61\x6c\x20\x74\x68\x61\x74\x20\x6b\x69\x6c\x6c\x65\x64\x20\x69\x74\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_116_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & os_toplevel_consts_116_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_116_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__spawnvef._ascii.ob_base, - & const_str_execvpe._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_spawnvpe = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "spawnvpe", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -os_toplevel_consts_116_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x10\x00\x10\x19\x98\x14\x98\x74\xa0\x54\xa8\x33\xb4\x07\xd3\x0f\x38\xd0\x08\x38", -}; -static - struct _PyCode_DEF(40) -os_toplevel_consts_116 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & os_toplevel_consts_116_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_116_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 940, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 651, - .co_localsplusnames = & os_toplevel_consts_114_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_spawnvpe._ascii.ob_base, - .co_qualname = & const_str_spawnvpe._ascii.ob_base, - .co_linetable = & os_toplevel_consts_116_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x05\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_117 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_spawnv._ascii.ob_base, - & const_str_spawnve._ascii.ob_base, - & const_str_spawnvp._ascii.ob_base, - & const_str_spawnvpe._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[279]; - } -os_toplevel_consts_118_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 278, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x73\x70\x61\x77\x6e\x6c\x28\x6d\x6f\x64\x65\x2c\x20\x66\x69\x6c\x65\x2c\x20\x2a\x61\x72\x67\x73\x29\x20\x2d\x3e\x20\x69\x6e\x74\x65\x67\x65\x72\x0a\x0a\x45\x78\x65\x63\x75\x74\x65\x20\x66\x69\x6c\x65\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x66\x72\x6f\x6d\x20\x61\x72\x67\x73\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x4e\x4f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x69\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x27\x73\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x20\x69\x66\x20\x69\x74\x20\x65\x78\x69\x74\x73\x20\x6e\x6f\x72\x6d\x61\x6c\x6c\x79\x3b\x0a\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x53\x49\x47\x2c\x20\x77\x68\x65\x72\x65\x20\x53\x49\x47\x20\x69\x73\x20\x74\x68\x65\x20\x73\x69\x67\x6e\x61\x6c\x20\x74\x68\x61\x74\x20\x6b\x69\x6c\x6c\x65\x64\x20\x69\x74\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_118_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & os_toplevel_consts_118_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_118_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_spawnv._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_spawnl = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "spawnl", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[20]; - } -os_toplevel_consts_118_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 19, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0e\x00\x10\x16\x90\x64\x98\x44\xa0\x24\xd3\x0f\x27\xd0\x08\x27", -}; -static - struct _PyCode_DEF(28) -os_toplevel_consts_118 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 14, - }, - .co_consts = & os_toplevel_consts_118_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_118_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 958, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 652, - .co_localsplusnames = & os_toplevel_consts_113_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_spawnl._ascii.ob_base, - .co_qualname = & const_str_spawnl._ascii.ob_base, - .co_linetable = & os_toplevel_consts_118_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x02\xab\x03\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[315]; - } -os_toplevel_consts_119_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 314, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x73\x70\x61\x77\x6e\x6c\x65\x28\x6d\x6f\x64\x65\x2c\x20\x66\x69\x6c\x65\x2c\x20\x2a\x61\x72\x67\x73\x2c\x20\x65\x6e\x76\x29\x20\x2d\x3e\x20\x69\x6e\x74\x65\x67\x65\x72\x0a\x0a\x45\x78\x65\x63\x75\x74\x65\x20\x66\x69\x6c\x65\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x66\x72\x6f\x6d\x20\x61\x72\x67\x73\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x70\x72\x6f\x63\x65\x73\x73\x20\x77\x69\x74\x68\x20\x74\x68\x65\x0a\x73\x75\x70\x70\x6c\x69\x65\x64\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x4e\x4f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x69\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x27\x73\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x20\x69\x66\x20\x69\x74\x20\x65\x78\x69\x74\x73\x20\x6e\x6f\x72\x6d\x61\x6c\x6c\x79\x3b\x0a\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x53\x49\x47\x2c\x20\x77\x68\x65\x72\x65\x20\x53\x49\x47\x20\x69\x73\x20\x74\x68\x65\x20\x73\x69\x67\x6e\x61\x6c\x20\x74\x68\x61\x74\x20\x6b\x69\x6c\x6c\x65\x64\x20\x69\x74\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_119_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & os_toplevel_consts_119_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_119_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_spawnve._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_spawnle = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "spawnle", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[37]; - } -os_toplevel_consts_119_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 36, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x10\x00\x0f\x13\x90\x32\x89\x68\x88\x03\xdc\x0f\x16\x90\x74\x98\x54\xa0\x34\xa8\x03\xa8\x12\xa0\x39\xa8\x63\xd3\x0f\x32\xd0\x08\x32", -}; -static - struct _PyCode_DEF(46) -os_toplevel_consts_119 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & os_toplevel_consts_119_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_119_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 967, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 653, - .co_localsplusnames = & os_toplevel_consts_114_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_spawnle._ascii.ob_base, - .co_qualname = & const_str_spawnle._ascii.ob_base, - .co_linetable = & os_toplevel_consts_119_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x02\x64\x01\x19\x00\x00\x00\x7d\x03\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x02\x64\x02\x64\x01\x1a\x00\x7c\x03\xab\x04\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[344]; - } -os_toplevel_consts_123_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 343, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x73\x70\x61\x77\x6e\x6c\x70\x28\x6d\x6f\x64\x65\x2c\x20\x66\x69\x6c\x65\x2c\x20\x2a\x61\x72\x67\x73\x29\x20\x2d\x3e\x20\x69\x6e\x74\x65\x67\x65\x72\x0a\x0a\x45\x78\x65\x63\x75\x74\x65\x20\x66\x69\x6c\x65\x20\x28\x77\x68\x69\x63\x68\x20\x69\x73\x20\x6c\x6f\x6f\x6b\x65\x64\x20\x66\x6f\x72\x20\x61\x6c\x6f\x6e\x67\x20\x24\x50\x41\x54\x48\x29\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x66\x72\x6f\x6d\x0a\x61\x72\x67\x73\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x70\x72\x6f\x63\x65\x73\x73\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x73\x75\x70\x70\x6c\x69\x65\x64\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x4e\x4f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x69\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x27\x73\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x20\x69\x66\x20\x69\x74\x20\x65\x78\x69\x74\x73\x20\x6e\x6f\x72\x6d\x61\x6c\x6c\x79\x3b\x0a\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x53\x49\x47\x2c\x20\x77\x68\x65\x72\x65\x20\x53\x49\x47\x20\x69\x73\x20\x74\x68\x65\x20\x73\x69\x67\x6e\x61\x6c\x20\x74\x68\x61\x74\x20\x6b\x69\x6c\x6c\x65\x64\x20\x69\x74\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_123_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & os_toplevel_consts_123_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_123_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_spawnvp._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_spawnlp = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "spawnlp", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[20]; - } -os_toplevel_consts_123_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 19, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x10\x00\x10\x17\x90\x74\x98\x54\xa0\x34\xd3\x0f\x28\xd0\x08\x28", -}; -static - struct _PyCode_DEF(28) -os_toplevel_consts_123 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 14, - }, - .co_consts = & os_toplevel_consts_123_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_123_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 985, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 654, - .co_localsplusnames = & os_toplevel_consts_113_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_spawnlp._ascii.ob_base, - .co_qualname = & const_str_spawnlp._ascii.ob_base, - .co_linetable = & os_toplevel_consts_123_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x02\xab\x03\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[350]; - } -os_toplevel_consts_124_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 349, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x73\x70\x61\x77\x6e\x6c\x70\x65\x28\x6d\x6f\x64\x65\x2c\x20\x66\x69\x6c\x65\x2c\x20\x2a\x61\x72\x67\x73\x2c\x20\x65\x6e\x76\x29\x20\x2d\x3e\x20\x69\x6e\x74\x65\x67\x65\x72\x0a\x0a\x45\x78\x65\x63\x75\x74\x65\x20\x66\x69\x6c\x65\x20\x28\x77\x68\x69\x63\x68\x20\x69\x73\x20\x6c\x6f\x6f\x6b\x65\x64\x20\x66\x6f\x72\x20\x61\x6c\x6f\x6e\x67\x20\x24\x50\x41\x54\x48\x29\x20\x77\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x66\x72\x6f\x6d\x0a\x61\x72\x67\x73\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x70\x72\x6f\x63\x65\x73\x73\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x73\x75\x70\x70\x6c\x69\x65\x64\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x4e\x4f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x69\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x0a\x49\x66\x20\x6d\x6f\x64\x65\x20\x3d\x3d\x20\x50\x5f\x57\x41\x49\x54\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x27\x73\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x20\x69\x66\x20\x69\x74\x20\x65\x78\x69\x74\x73\x20\x6e\x6f\x72\x6d\x61\x6c\x6c\x79\x3b\x0a\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x53\x49\x47\x2c\x20\x77\x68\x65\x72\x65\x20\x53\x49\x47\x20\x69\x73\x20\x74\x68\x65\x20\x73\x69\x67\x6e\x61\x6c\x20\x74\x68\x61\x74\x20\x6b\x69\x6c\x6c\x65\x64\x20\x69\x74\x2e\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_124_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & os_toplevel_consts_124_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_124_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_spawnvpe._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_spawnlpe = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "spawnlpe", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[37]; - } -os_toplevel_consts_124_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 36, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x10\x00\x0f\x13\x90\x32\x89\x68\x88\x03\xdc\x0f\x17\x98\x04\x98\x64\xa0\x44\xa8\x13\xa8\x22\xa0\x49\xa8\x73\xd3\x0f\x33\xd0\x08\x33", -}; -static - struct _PyCode_DEF(46) -os_toplevel_consts_124 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & os_toplevel_consts_124_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_124_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 995, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 655, - .co_localsplusnames = & os_toplevel_consts_114_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_spawnlpe._ascii.ob_base, - .co_qualname = & const_str_spawnlpe._ascii.ob_base, - .co_linetable = & os_toplevel_consts_124_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x02\x64\x01\x19\x00\x00\x00\x7d\x03\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x02\x64\x02\x64\x01\x1a\x00\x7c\x03\xab\x04\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[39]; - } -os_toplevel_consts_128_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 38, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "invalid cmd type (%s, expected string)", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_128_consts_2 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[114], - (PyObject *)&_Py_SINGLETON(strings).ascii[119], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -os_toplevel_consts_128_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "invalid mode %r", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[44]; - } -os_toplevel_consts_128_consts_5 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 43, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "popen() does not support unbuffered streams", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_shell = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "shell", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_128_consts_8 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_shell._ascii.ob_base, - &_Py_ID(text), - &_Py_ID(stdout), - &_Py_ID(bufsize), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_128_consts_9 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_shell._ascii.ob_base, - &_Py_ID(text), - &_Py_ID(stdin), - &_Py_ID(bufsize), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -os_toplevel_consts_128_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - Py_None, - & os_toplevel_consts_128_consts_1._ascii.ob_base, - & os_toplevel_consts_128_consts_2._object.ob_base.ob_base, - & os_toplevel_consts_128_consts_3._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & os_toplevel_consts_128_consts_5._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[114], - Py_True, - & os_toplevel_consts_128_consts_8._object.ob_base.ob_base, - & os_toplevel_consts_128_consts_9._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_subprocess = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "subprocess", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_Popen = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Popen", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_PIPE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "PIPE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str__wrap_close = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_wrap_close", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -os_toplevel_consts_128_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_str._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - &_Py_ID(type), - & const_str_ValueError._ascii.ob_base, - & const_str_subprocess._ascii.ob_base, - & const_str_Popen._ascii.ob_base, - & const_str_PIPE._ascii.ob_base, - & const_str__wrap_close._ascii.ob_base, - &_Py_ID(stdout), - &_Py_ID(stdin), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_popen = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "popen", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[207]; - } -os_toplevel_consts_128_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 206, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x19\x98\x23\x9c\x73\xd4\x0f\x23\xdc\x12\x1b\xd0\x1c\x44\xc4\x74\xc8\x43\xc3\x79\xd1\x1c\x50\xd3\x12\x51\xd0\x0c\x51\xd8\x0b\x0f\x90\x7a\xd1\x0b\x21\xdc\x12\x1c\xd0\x1d\x2e\xb0\x14\xd1\x1d\x35\xd3\x12\x36\xd0\x0c\x36\xd8\x0b\x14\x98\x01\x8a\x3e\x98\x59\xd0\x1d\x2e\xdc\x12\x1c\xd0\x1d\x4a\xd3\x12\x4b\xd0\x0c\x4b\xdb\x08\x19\xd8\x0b\x0f\x90\x33\x8a\x3b\xd8\x13\x1d\xd7\x13\x23\xd1\x13\x23\xa0\x43\xd8\x2a\x2e\xb0\x54\xd8\x2b\x35\xaf\x3f\xa9\x3f\xd8\x2c\x35\xf0\x07\x00\x14\x24\xf3\x00\x03\x14\x37\x88\x44\xf4\x08\x00\x14\x1f\x98\x74\x9f\x7b\x99\x7b\xa8\x44\xd3\x13\x31\xd0\x0c\x31\xe0\x13\x1d\xd7\x13\x23\xd1\x13\x23\xa0\x43\xd8\x2a\x2e\xb0\x54\xd8\x2a\x34\xaf\x2f\xa9\x2f\xd8\x2c\x35\xf0\x07\x00\x14\x24\xf3\x00\x03\x14\x37\x88\x44\xf4\x08\x00\x14\x1f\x98\x74\x9f\x7a\x99\x7a\xa8\x34\xd3\x13\x30\xd0\x0c\x30", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_cmd = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "cmd", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_proc = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "proc", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -os_toplevel_consts_128_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_cmd._ascii.ob_base, - &_Py_ID(mode), - &_Py_ID(buffering), - & const_str_subprocess._ascii.ob_base, - & const_str_proc._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(386) -os_toplevel_consts_128 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 193, - }, - .co_consts = & os_toplevel_consts_128_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_128_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 1013, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 656, - .co_localsplusnames = & os_toplevel_consts_128_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_popen._ascii.ob_base, - .co_qualname = & const_str_popen._ascii.ob_base, - .co_linetable = & os_toplevel_consts_128_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x17\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x01\x64\x02\x76\x01\x72\x0e\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x7c\x01\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x02\x64\x04\x6b\x28\x00\x00\x73\x02\x7c\x02\x80\x0b\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x64\x04\x64\x00\x6c\x05\x7d\x03\x7c\x01\x64\x06\x6b\x28\x00\x00\x72\x36\x7c\x03\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x07\x64\x07\x7c\x03\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xac\x08\xab\x05\x00\x00\x00\x00\x00\x00\x7d\x04\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x7c\x03\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x07\x64\x07\x7c\x03\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xac\x09\xab\x05\x00\x00\x00\x00\x00\x00\x7d\x04\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str__stream = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_stream", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__proc = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_proc", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_129_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__stream._ascii.ob_base, - & const_str__proc._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -os_toplevel_consts_129_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_wrap_close.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[17]; - } -os_toplevel_consts_129_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 16, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x1b\x21\x88\x44\x8c\x4c\xd8\x19\x1d\x88\x44\x8d\x4a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_129_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - & const_str_stream._ascii.ob_base, - & const_str_proc._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(32) -os_toplevel_consts_129_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 16, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_129_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1036, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 657, - .co_localsplusnames = & os_toplevel_consts_129_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & os_toplevel_consts_129_consts_1_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_129_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_129_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - &_Py_ID(nt), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 8], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_wait = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "wait", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -os_toplevel_consts_129_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str__stream._ascii.ob_base, - &_Py_ID(close), - & const_str__proc._ascii.ob_base, - & const_str_wait._ascii.ob_base, - &_Py_ID(name), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -os_toplevel_consts_129_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_wrap_close.close", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[68]; - } -os_toplevel_consts_129_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 67, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0c\x10\x8f\x4c\x89\x4c\xd7\x0c\x1e\xd1\x0c\x1e\xd4\x0c\x20\xd8\x19\x1d\x9f\x1a\x99\x1a\x9f\x1f\x99\x1f\xd3\x19\x2a\x88\x4a\xd8\x0f\x19\x98\x51\x8a\x7f\xd8\x17\x1b\xdc\x0f\x13\x90\x74\x8a\x7c\xd8\x17\x21\xd0\x10\x21\xe0\x17\x21\xa0\x51\x91\x7f\xd0\x10\x26", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_returncode = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "returncode", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_129_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - & const_str_returncode._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(150) -os_toplevel_consts_129_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 75, - }, - .co_consts = & os_toplevel_consts_129_consts_2_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_129_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1039, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 658, - .co_localsplusnames = & os_toplevel_consts_129_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(close), - .co_qualname = & os_toplevel_consts_129_consts_2_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_129_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x64\x01\x6b\x28\x00\x00\x72\x01\x79\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x6b\x28\x00\x00\x72\x02\x7c\x01\x53\x00\x7c\x01\x64\x03\x7a\x03\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -os_toplevel_consts_129_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_wrap_close.__enter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[8]; - } -os_toplevel_consts_129_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 7, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x13\x17\x88\x4b", -}; -static - struct _PyCode_DEF(6) -os_toplevel_consts_129_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 3, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 1048, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 659, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__enter__), - .co_qualname = & os_toplevel_consts_129_consts_3_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_129_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_129_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(close), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -os_toplevel_consts_129_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_wrap_close.__exit__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[12]; - } -os_toplevel_consts_129_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 11, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0c\x10\x8f\x4a\x89\x4a\x8d\x4c", -}; -static - struct _PyCode_DEF(36) -os_toplevel_consts_129_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 18, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_129_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1050, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 660, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__exit__), - .co_qualname = & os_toplevel_consts_129_consts_4_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_129_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_129_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(getattr), - & const_str__stream._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -os_toplevel_consts_129_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_wrap_close.__getattr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[20]; - } -os_toplevel_consts_129_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 19, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x13\x1a\x98\x34\x9f\x3c\x99\x3c\xa8\x14\xd3\x13\x2e\xd0\x0c\x2e", -}; -static - struct _PyCode_DEF(46) -os_toplevel_consts_129_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_129_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 1052, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 661, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_14_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__getattr__), - .co_qualname = & os_toplevel_consts_129_consts_5_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_129_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_129_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(iter), - & const_str__stream._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -os_toplevel_consts_129_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_wrap_close.__iter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -os_toplevel_consts_129_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x13\x17\x98\x04\x9f\x0c\x99\x0c\xd3\x13\x25\xd0\x0c\x25", -}; -static - struct _PyCode_DEF(44) -os_toplevel_consts_129_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 22, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_129_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 1054, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 662, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__iter__), - .co_qualname = & os_toplevel_consts_129_consts_6_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_129_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -os_toplevel_consts_129_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str__wrap_close._ascii.ob_base, - & os_toplevel_consts_129_consts_1.ob_base.ob_base, - & os_toplevel_consts_129_consts_2.ob_base.ob_base, - & os_toplevel_consts_129_consts_3.ob_base.ob_base, - & os_toplevel_consts_129_consts_4.ob_base.ob_base, - & os_toplevel_consts_129_consts_5.ob_base.ob_base, - & os_toplevel_consts_129_consts_6.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -os_toplevel_consts_129_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__init__), - &_Py_ID(close), - &_Py_ID(__enter__), - &_Py_ID(__exit__), - &_Py_ID(__getattr__), - &_Py_ID(__iter__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[33]; - } -os_toplevel_consts_129_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 32, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf2\x02\x02\x09\x1e\xf2\x06\x08\x09\x27\xf2\x12\x01\x09\x18\xf2\x04\x01\x09\x19\xf2\x04\x01\x09\x2f\xf3\x04\x01\x09\x26", -}; -static - struct _PyCode_DEF(48) -os_toplevel_consts_129 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 24, - }, - .co_consts = & os_toplevel_consts_129_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_129_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 1035, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 663, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__wrap_close._ascii.ob_base, - .co_qualname = & const_str__wrap_close._ascii.ob_base, - .co_linetable = & os_toplevel_consts_129_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x84\x00\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x04\x84\x00\x5a\x06\x64\x05\x84\x00\x5a\x07\x64\x06\x84\x00\x5a\x08\x79\x07", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[39]; - } -os_toplevel_consts_132_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 38, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "invalid fd type (%s, expected integer)", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_132_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - & os_toplevel_consts_132_consts_1._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_Py_SINGLETON(strings).ascii[98], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -os_toplevel_consts_132_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_int._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - &_Py_ID(type), - & const_str_io._ascii.ob_base, - & const_str_text_encoding._ascii.ob_base, - &_Py_ID(open), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[93]; - } -os_toplevel_consts_132_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 92, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0b\x15\x90\x62\x9c\x23\xd4\x0b\x1e\xdc\x0e\x17\xd0\x18\x40\xc4\x34\xc8\x02\xc3\x38\xd1\x18\x4b\xd3\x0e\x4c\xd0\x08\x4c\xdb\x04\x0d\xd8\x07\x0a\x90\x24\x81\x7f\xd8\x13\x15\xd7\x13\x23\xd1\x13\x23\xa0\x48\xd3\x13\x2d\x88\x08\xd8\x0b\x12\x88\x32\x8f\x37\x89\x37\x90\x32\x90\x74\x98\x59\xa8\x08\xd0\x0b\x42\xb0\x34\xd2\x0b\x42\xb8\x36\xd1\x0b\x42\xd0\x04\x42", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -os_toplevel_consts_132_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(fd), - &_Py_ID(mode), - &_Py_ID(buffering), - &_Py_ID(encoding), - &_Py_ID(args), - & const_str_kwargs._ascii.ob_base, - & const_str_io._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(180) -os_toplevel_consts_132 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 90, - }, - .co_consts = & os_toplevel_consts_132_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_132_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 15, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 13 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 1060, - .co_nlocalsplus = 7, - .co_nlocals = 7, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 664, - .co_localsplusnames = & os_toplevel_consts_132_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_fdopen._ascii.ob_base, - .co_qualname = & const_str_fdopen._ascii.ob_base, - .co_linetable = & os_toplevel_consts_132_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x73\x17\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x64\x02\x64\x00\x6c\x04\x7d\x06\x64\x03\x7c\x01\x76\x01\x72\x11\x7c\x06\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x03\x02\x00\x7c\x06\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x67\x04\x7c\x04\xa2\x01\xad\x06\x69\x00\x7c\x05\xa4\x01\x8e\x01\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[354]; - } -os_toplevel_consts_133_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 353, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x61\x74\x68\x20\x72\x65\x70\x72\x65\x73\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x6f\x66\x20\x61\x20\x70\x61\x74\x68\x2d\x6c\x69\x6b\x65\x20\x6f\x62\x6a\x65\x63\x74\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x73\x74\x72\x20\x6f\x72\x20\x62\x79\x74\x65\x73\x20\x69\x73\x20\x70\x61\x73\x73\x65\x64\x20\x69\x6e\x2c\x20\x69\x74\x20\x69\x73\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x75\x6e\x63\x68\x61\x6e\x67\x65\x64\x2e\x20\x4f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x6f\x73\x2e\x50\x61\x74\x68\x4c\x69\x6b\x65\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x69\x73\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x67\x65\x74\x20\x74\x68\x65\x20\x70\x61\x74\x68\x20\x72\x65\x70\x72\x65\x73\x65\x6e\x74\x61\x74\x69\x6f\x6e\x2e\x20\x49\x66\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x70\x61\x74\x68\x20\x72\x65\x70\x72\x65\x73\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x69\x73\x20\x6e\x6f\x74\x20\x73\x74\x72\x20\x6f\x72\x20\x62\x79\x74\x65\x73\x2c\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x20\x69\x73\x20\x72\x61\x69\x73\x65\x64\x2e\x20\x49\x66\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x70\x61\x74\x68\x20\x69\x73\x20\x6e\x6f\x74\x20\x73\x74\x72\x2c\x20\x62\x79\x74\x65\x73\x2c\x20\x6f\x72\x20\x6f\x73\x2e\x50\x61\x74\x68\x4c\x69\x6b\x65\x2c\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x20\x69\x73\x20\x72\x61\x69\x73\x65\x64\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[48]; - } -os_toplevel_consts_133_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 47, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "expected str, bytes or os.PathLike object, not ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[56]; - } -os_toplevel_consts_133_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 55, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "expected {}.__fspath__() to return str or bytes, not {}", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_133_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & os_toplevel_consts_133_consts_0._ascii.ob_base, - &_Py_ID(__fspath__), - & os_toplevel_consts_133_consts_2._ascii.ob_base, - & os_toplevel_consts_133_consts_3._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -os_toplevel_consts_133_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(isinstance), - & const_str_str._ascii.ob_base, - &_Py_ID(bytes), - &_Py_ID(type), - &_Py_ID(__fspath__), - & const_str_AttributeError._ascii.ob_base, - & const_str_hasattr._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - &_Py_ID(__name__), - &_Py_ID(format), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str__fspath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_fspath", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[192]; - } -os_toplevel_consts_133_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 191, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x10\x00\x08\x12\x90\x24\x9c\x13\x9c\x65\x98\x0c\xd4\x07\x25\xd8\x0f\x13\x88\x0b\xf4\x08\x00\x11\x15\x90\x54\x93\x0a\x80\x49\xf0\x02\x07\x05\x39\xd8\x14\x1d\xd7\x14\x28\xd1\x14\x28\xa8\x14\xd3\x14\x2e\x88\x09\xf4\x0e\x00\x08\x12\x90\x29\x9c\x63\xa4\x35\x98\x5c\xd4\x07\x2a\xd8\x0f\x18\xd0\x08\x18\xe4\x0e\x17\xf0\x00\x01\x19\x21\xdf\x21\x27\xa1\x16\xa8\x09\xd7\x28\x3a\xd1\x28\x3a\xdc\x28\x2c\xa8\x59\xab\x0f\xd7\x28\x40\xd1\x28\x40\xf3\x03\x01\x22\x42\x01\xf3\x03\x02\x0f\x43\x01\xf0\x00\x02\x09\x43\x01\xf8\xf4\x13\x00\x0c\x1a\xf2\x00\x05\x05\x39\xdc\x0b\x12\x90\x39\x98\x6c\xd4\x0b\x2b\xd8\x0c\x11\xe4\x12\x1b\xf0\x00\x01\x1d\x23\xd8\x25\x2e\xd7\x25\x37\xd1\x25\x37\xf1\x03\x01\x1d\x38\xf3\x00\x01\x13\x39\xf0\x00\x01\x0d\x39\xf0\x09\x05\x05\x39\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[12]; - } -os_toplevel_consts_133_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 11, - }, - .ob_shash = -1, - .ob_sval = "\xa5\x11\x42\x06\x00\xc2\x06\x2f\x42\x35\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_path_type = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "path_type", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_path_repr = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "path_repr", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_133_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(path), - & const_str_path_type._ascii.ob_base, - & const_str_path_repr._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(368) -os_toplevel_consts_133 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 184, - }, - .co_consts = & os_toplevel_consts_133_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_133_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_consts_133_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 1071, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 665, - .co_localsplusnames = & os_toplevel_consts_133_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__fspath._ascii.ob_base, - .co_qualname = & const_str__fspath._ascii.ob_base, - .co_linetable = & os_toplevel_consts_133_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\xab\x02\x00\x00\x00\x00\x00\x00\x72\x02\x7c\x00\x53\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x09\x00\x7c\x01\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\xab\x02\x00\x00\x00\x00\x00\x00\x72\x02\x7c\x02\x53\x00\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x6a\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x26\x01\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x72\x01\x82\x00\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x7c\x01\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_PathLike = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "PathLike", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[68]; - } -os_toplevel_consts_135_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 67, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Abstract base class for implementing the file system path protocol.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[58]; - } -os_toplevel_consts_135_consts_2_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 57, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return the file system path representation of the object.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -os_toplevel_consts_135_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & os_toplevel_consts_135_consts_2_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -os_toplevel_consts_135_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "PathLike.__fspath__", -}; -static - struct _PyCode_DEF(14) -os_toplevel_consts_135_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 7, - }, - .co_consts = & os_toplevel_consts_135_consts_2_consts._object.ob_base.ob_base, - .co_names = & codecs_toplevel_consts_14_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 1111, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 666, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__fspath__), - .co_qualname = & os_toplevel_consts_135_consts_2_qualname._ascii.ob_base, - .co_linetable = & codecs_toplevel_consts_18_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_135_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - &_Py_ID(__fspath__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_135_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_PathLike._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - & const_str_NotImplemented._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -os_toplevel_consts_135_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "PathLike.__subclasshook__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[29]; - } -os_toplevel_consts_135_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 28, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0e\x94\x28\x89\x3f\xdc\x13\x21\xa0\x28\xa8\x4c\xd3\x13\x39\xd0\x0c\x39\xdc\x0f\x1d\xd0\x08\x1d", -}; -static - struct _PyCode_DEF(54) -os_toplevel_consts_135_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & os_toplevel_consts_135_consts_3_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_135_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 1116, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 667, - .co_localsplusnames = & abc_toplevel_consts_10_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__subclasshook__), - .co_qualname = & os_toplevel_consts_135_consts_3_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_135_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -os_toplevel_consts_135_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_PathLike._ascii.ob_base, - & os_toplevel_consts_135_consts_1._ascii.ob_base, - & os_toplevel_consts_135_consts_2.ob_base.ob_base, - & os_toplevel_consts_135_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -os_toplevel_consts_135_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - & const_str_abc._ascii.ob_base, - & const_str_abstractmethod._ascii.ob_base, - &_Py_ID(__fspath__), - & const_str_classmethod._ascii.ob_base, - &_Py_ID(__subclasshook__), - & const_str_GenericAlias._ascii.ob_base, - &_Py_ID(__class_getitem__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[63]; - } -os_toplevel_consts_135_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 62, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe1\x04\x4d\xe0\x05\x08\xd7\x05\x17\xd1\x05\x17\xf1\x02\x02\x05\x22\xf3\x03\x00\x06\x18\xf0\x02\x02\x05\x22\xf0\x08\x00\x06\x11\xf1\x02\x03\x05\x1e\xf3\x03\x00\x06\x11\xf0\x02\x03\x05\x1e\xf1\x0a\x00\x19\x24\xa0\x4c\xd3\x18\x31\xd1\x04\x15", -}; -static - struct _PyCode_DEF(84) -os_toplevel_consts_135 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 42, - }, - .co_consts = & os_toplevel_consts_135_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_135_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 1107, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 668, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_PathLike._ascii.ob_base, - .co_qualname = & const_str_PathLike._ascii.ob_base, - .co_linetable = & os_toplevel_consts_135_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x06\x65\x07\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x08\x02\x00\x65\x07\x65\x09\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x0a\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str__AddedDllDirectory = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_AddedDllDirectory", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str__cookie = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_cookie", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -const_str__remove_dll_directory = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_remove_dll_directory", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_137_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(path), - & const_str__cookie._ascii.ob_base, - & const_str__remove_dll_directory._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -os_toplevel_consts_137_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_AddedDllDirectory.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[25]; - } -os_toplevel_consts_137_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 24, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x18\x1c\x88\x44\x8c\x49\xd8\x1b\x21\x88\x44\x8c\x4c\xd8\x29\x3d\x88\x44\xd5\x0c\x26", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -const_str_remove_dll_directory = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "remove_dll_directory", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_137_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(path), - &_Py_ID(cookie), - & const_str_remove_dll_directory._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(46) -os_toplevel_consts_137_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_137_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1127, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 669, - .co_localsplusnames = & os_toplevel_consts_137_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & os_toplevel_consts_137_consts_1_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_137_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_137_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str__remove_dll_directory._ascii.ob_base, - & const_str__cookie._ascii.ob_base, - &_Py_ID(path), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -os_toplevel_consts_137_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_AddedDllDirectory.close", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[28]; - } -os_toplevel_consts_137_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 27, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0c\x10\xd7\x0c\x26\xd1\x0c\x26\xa0\x74\xa7\x7c\xa1\x7c\xd4\x0c\x34\xd8\x18\x1c\x88\x44\x8d\x49", -}; -static - struct _PyCode_DEF(72) -os_toplevel_consts_137_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 36, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_137_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 1131, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 670, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(close), - .co_qualname = & os_toplevel_consts_137_consts_2_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_137_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x00\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -os_toplevel_consts_137_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_AddedDllDirectory.__enter__", -}; -static - struct _PyCode_DEF(6) -os_toplevel_consts_137_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 3, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 1134, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 671, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__enter__), - .co_qualname = & os_toplevel_consts_137_consts_3_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_129_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -os_toplevel_consts_137_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_AddedDllDirectory.__exit__", -}; -static - struct _PyCode_DEF(36) -os_toplevel_consts_137_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 18, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_129_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1136, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 672, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__exit__), - .co_qualname = & os_toplevel_consts_137_consts_4_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_129_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -os_toplevel_consts_137_consts_5_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -os_toplevel_consts_137_consts_5_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_137_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & os_toplevel_consts_137_consts_5_consts_1._ascii.ob_base, - & os_toplevel_consts_137_consts_5_consts_2._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_137_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(path), - &_Py_ID(format), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -os_toplevel_consts_137_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_AddedDllDirectory.__repr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[34]; - } -os_toplevel_consts_137_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 33, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0f\x13\x8f\x79\x8a\x79\xd8\x17\x32\xd7\x17\x39\xd1\x17\x39\xb8\x24\xbf\x29\xb9\x29\xd3\x17\x44\xd0\x10\x44\xd8\x13\x2a", -}; -static - struct _PyCode_DEF(82) -os_toplevel_consts_137_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 41, - }, - .co_consts = & os_toplevel_consts_137_consts_5_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_137_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 1138, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 673, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_ID(__repr__), - .co_qualname = & os_toplevel_consts_137_consts_5_qualname._ascii.ob_base, - .co_linetable = & os_toplevel_consts_137_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x1b\x64\x01\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -os_toplevel_consts_137_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str__AddedDllDirectory._ascii.ob_base, - & os_toplevel_consts_137_consts_1.ob_base.ob_base, - & os_toplevel_consts_137_consts_2.ob_base.ob_base, - & os_toplevel_consts_137_consts_3.ob_base.ob_base, - & os_toplevel_consts_137_consts_4.ob_base.ob_base, - & os_toplevel_consts_137_consts_5.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -os_toplevel_consts_137_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__init__), - &_Py_ID(close), - &_Py_ID(__enter__), - &_Py_ID(__exit__), - &_Py_ID(__repr__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[28]; - } -os_toplevel_consts_137_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 27, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf2\x02\x03\x09\x3e\xf2\x08\x02\x09\x1d\xf2\x06\x01\x09\x18\xf2\x04\x01\x09\x19\xf3\x04\x03\x09\x2b", -}; -static - struct _PyCode_DEF(42) -os_toplevel_consts_137 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 21, - }, - .co_consts = & os_toplevel_consts_137_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_137_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 1126, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 674, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str__AddedDllDirectory._ascii.ob_base, - .co_qualname = & const_str__AddedDllDirectory._ascii.ob_base, - .co_linetable = & os_toplevel_consts_137_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x84\x00\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x04\x84\x00\x5a\x06\x64\x05\x84\x00\x5a\x07\x79\x06", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[336]; - } -os_toplevel_consts_139_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 335, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x64\x64\x20\x61\x20\x70\x61\x74\x68\x20\x74\x6f\x20\x74\x68\x65\x20\x44\x4c\x4c\x20\x73\x65\x61\x72\x63\x68\x20\x70\x61\x74\x68\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x69\x73\x20\x73\x65\x61\x72\x63\x68\x20\x70\x61\x74\x68\x20\x69\x73\x20\x75\x73\x65\x64\x20\x77\x68\x65\x6e\x20\x72\x65\x73\x6f\x6c\x76\x69\x6e\x67\x20\x64\x65\x70\x65\x6e\x64\x65\x6e\x63\x69\x65\x73\x20\x66\x6f\x72\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x6d\x6f\x64\x75\x6c\x65\x73\x20\x28\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69\x74\x73\x65\x6c\x66\x20\x69\x73\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x20\x74\x68\x72\x6f\x75\x67\x68\x20\x73\x79\x73\x2e\x70\x61\x74\x68\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x64\x20\x61\x6c\x73\x6f\x20\x62\x79\x20\x63\x74\x79\x70\x65\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x6d\x6f\x76\x65\x20\x74\x68\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x62\x79\x20\x63\x61\x6c\x6c\x69\x6e\x67\x20\x63\x6c\x6f\x73\x65\x28\x29\x20\x6f\x6e\x20\x74\x68\x65\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x6f\x62\x6a\x65\x63\x74\x20\x6f\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x73\x69\x6e\x67\x20\x69\x74\x20\x69\x6e\x20\x61\x20\x77\x69\x74\x68\x20\x73\x74\x61\x74\x65\x6d\x65\x6e\x74\x2e\x0a\x20\x20\x20\x20\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_139_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & os_toplevel_consts_139_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str__add_dll_directory = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_add_dll_directory", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -os_toplevel_consts_139_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(nt), - & const_str__add_dll_directory._ascii.ob_base, - & const_str__AddedDllDirectory._ascii.ob_base, - & const_str__remove_dll_directory._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str_add_dll_directory = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "add_dll_directory", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[54]; - } -os_toplevel_consts_139_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 53, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf3\x14\x00\x09\x12\xd8\x11\x26\x90\x12\xd7\x11\x26\xd1\x11\x26\xa0\x74\xd3\x11\x2c\x88\x06\xdc\x0f\x21\xd8\x0c\x10\xd8\x0c\x12\xd8\x0c\x0e\xd7\x0c\x24\xd1\x0c\x24\xf3\x07\x04\x10\x0a\xf0\x00\x04\x09\x0a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_139_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(path), - &_Py_ID(nt), - &_Py_ID(cookie), - }, - }, -}; -static - struct _PyCode_DEF(92) -os_toplevel_consts_139 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 46, - }, - .co_consts = & os_toplevel_consts_139_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_consts_139_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1143, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 675, - .co_localsplusnames = & os_toplevel_consts_139_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = & const_str_add_dll_directory._ascii.ob_base, - .co_qualname = & const_str_add_dll_directory._ascii.ob_base, - .co_linetable = & os_toplevel_consts_139_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x64\x02\x6c\x00\x7d\x01\x02\x00\x7c\x01\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x02\x7c\x01\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x03\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_511 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 511 }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_140 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_int_511.ob_base, - Py_False, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_141 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_True, - Py_None, - Py_False, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_142 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - Py_True, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -os_toplevel_consts_144 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[114], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -os_toplevel_consts_145 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[114], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[146]; - }_object; - } -os_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 146, - }, - .ob_item = { - & os_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & os_toplevel_consts_3._object.ob_base.ob_base, - & os_toplevel_consts_4._object.ob_base.ob_base, - & os_toplevel_consts_5.ob_base.ob_base, - & os_toplevel_consts_6.ob_base.ob_base, - &_Py_ID(posix), - (PyObject *)&_Py_SINGLETON(strings).ascii[10], - & codecs_toplevel_consts_3._object.ob_base.ob_base, - & os_toplevel_consts_10._object.ob_base.ob_base, - & const_str__exit._ascii.ob_base, - & os_toplevel_consts_12._object.ob_base.ob_base, - &_Py_ID(nt), - & os_toplevel_consts_14._ascii.ob_base, - & os_toplevel_consts_15._ascii.ob_base, - & os_toplevel_consts_16._ascii.ob_base, - & os_toplevel_consts_17._object.ob_base.ob_base, - & const_str__have_functions._ascii.ob_base, - & os_toplevel_consts_19.ob_base.ob_base, - & const_str_HAVE_FACCESSAT._ascii.ob_base, - &_Py_ID(access), - & const_str_HAVE_FCHMODAT._ascii.ob_base, - & const_str_chmod._ascii.ob_base, - & const_str_HAVE_FCHOWNAT._ascii.ob_base, - & const_str_chown._ascii.ob_base, - & const_str_HAVE_FSTATAT._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_HAVE_FUTIMESAT._ascii.ob_base, - & const_str_utime._ascii.ob_base, - & const_str_HAVE_LINKAT._ascii.ob_base, - & const_str_link._ascii.ob_base, - & const_str_HAVE_MKDIRAT._ascii.ob_base, - & const_str_mkdir._ascii.ob_base, - & const_str_HAVE_MKFIFOAT._ascii.ob_base, - & const_str_mkfifo._ascii.ob_base, - & const_str_HAVE_MKNODAT._ascii.ob_base, - & const_str_mknod._ascii.ob_base, - & const_str_HAVE_OPENAT._ascii.ob_base, - &_Py_ID(open), - & const_str_HAVE_READLINKAT._ascii.ob_base, - & const_str_readlink._ascii.ob_base, - & const_str_HAVE_RENAMEAT._ascii.ob_base, - & const_str_rename._ascii.ob_base, - & const_str_HAVE_SYMLINKAT._ascii.ob_base, - & const_str_symlink._ascii.ob_base, - & const_str_HAVE_UNLINKAT._ascii.ob_base, - &_Py_ID(unlink), - & const_str_rmdir._ascii.ob_base, - & const_str_HAVE_UTIMENSAT._ascii.ob_base, - & const_str_HAVE_FCHDIR._ascii.ob_base, - & const_str_chdir._ascii.ob_base, - & const_str_HAVE_FCHMOD._ascii.ob_base, - & const_str_HAVE_FCHOWN._ascii.ob_base, - & const_str_HAVE_FDOPENDIR._ascii.ob_base, - & const_str_listdir._ascii.ob_base, - & const_str_scandir._ascii.ob_base, - & const_str_HAVE_FEXECVE._ascii.ob_base, - & const_str_execve._ascii.ob_base, - & const_str_HAVE_FTRUNCATE._ascii.ob_base, - &_Py_ID(truncate), - & const_str_HAVE_FUTIMENS._ascii.ob_base, - & const_str_HAVE_FUTIMES._ascii.ob_base, - & const_str_HAVE_FPATHCONF._ascii.ob_base, - & const_str_pathconf._ascii.ob_base, - & const_str_statvfs._ascii.ob_base, - & const_str_fstatvfs._ascii.ob_base, - & const_str_HAVE_FSTATVFS._ascii.ob_base, - & const_str_HAVE_LCHFLAGS._ascii.ob_base, - & const_str_chflags._ascii.ob_base, - & const_str_HAVE_LCHMOD._ascii.ob_base, - & const_str_lchown._ascii.ob_base, - & const_str_HAVE_LCHOWN._ascii.ob_base, - & const_str_HAVE_LUTIMES._ascii.ob_base, - & const_str_HAVE_LSTAT._ascii.ob_base, - & const_str_MS_WINDOWS._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - Py_False, - & os_toplevel_consts_79.ob_base.ob_base, - & os_toplevel_consts_80.ob_base.ob_base, - & os_toplevel_consts_81.ob_base.ob_base, - & os_toplevel_consts_82._object.ob_base.ob_base, - & os_toplevel_consts_83.ob_base.ob_base, - & const_str_walk._ascii.ob_base, - & os_toplevel_consts_85._object.ob_base.ob_base, - & os_toplevel_consts_86.ob_base.ob_base, - & os_toplevel_consts_87.ob_base.ob_base, - & const_str_fwalk._ascii.ob_base, - & os_toplevel_consts_89.ob_base.ob_base, - & os_toplevel_consts_90.ob_base.ob_base, - & os_toplevel_consts_91.ob_base.ob_base, - & os_toplevel_consts_92.ob_base.ob_base, - & os_toplevel_consts_93.ob_base.ob_base, - & os_toplevel_consts_94.ob_base.ob_base, - & os_toplevel_consts_95._object.ob_base.ob_base, - & os_toplevel_consts_96.ob_base.ob_base, - & os_toplevel_consts_97.ob_base.ob_base, - & os_toplevel_consts_98._object.ob_base.ob_base, - & os_toplevel_consts_99.ob_base.ob_base, - & const_str__Environ._ascii.ob_base, - & os_toplevel_consts_101.ob_base.ob_base, - & os_toplevel_consts_102.ob_base.ob_base, - & os_toplevel_consts_103._object.ob_base.ob_base, - & os_toplevel_consts_104.ob_base.ob_base, - & os_toplevel_consts_105.ob_base.ob_base, - & os_toplevel_consts_106._object.ob_base.ob_base, - & os_toplevel_consts_107.ob_base.ob_base, - & const_str_fork._ascii.ob_base, - & const_str_spawnv._ascii.ob_base, - & const_str_execv._ascii.ob_base, - & os_toplevel_consts_111._object.ob_base.ob_base, - & os_toplevel_consts_112.ob_base.ob_base, - & os_toplevel_consts_113.ob_base.ob_base, - & os_toplevel_consts_114.ob_base.ob_base, - & os_toplevel_consts_115.ob_base.ob_base, - & os_toplevel_consts_116.ob_base.ob_base, - & os_toplevel_consts_117._object.ob_base.ob_base, - & os_toplevel_consts_118.ob_base.ob_base, - & os_toplevel_consts_119.ob_base.ob_base, - & const_str_spawnl._ascii.ob_base, - & const_str_spawnle._ascii.ob_base, - & const_str_spawnvp._ascii.ob_base, - & os_toplevel_consts_123.ob_base.ob_base, - & os_toplevel_consts_124.ob_base.ob_base, - & const_str_spawnlp._ascii.ob_base, - & const_str_spawnlpe._ascii.ob_base, - & const_str_vxworks._ascii.ob_base, - & os_toplevel_consts_128.ob_base.ob_base, - & os_toplevel_consts_129.ob_base.ob_base, - & const_str__wrap_close._ascii.ob_base, - & const_str_popen._ascii.ob_base, - & os_toplevel_consts_132.ob_base.ob_base, - & os_toplevel_consts_133.ob_base.ob_base, - & const_str_fspath._ascii.ob_base, - & os_toplevel_consts_135.ob_base.ob_base, - & const_str_PathLike._ascii.ob_base, - & os_toplevel_consts_137.ob_base.ob_base, - & const_str__AddedDllDirectory._ascii.ob_base, - & os_toplevel_consts_139.ob_base.ob_base, - & os_toplevel_consts_140._object.ob_base.ob_base, - & os_toplevel_consts_141._object.ob_base.ob_base, - & os_toplevel_consts_142._object.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - & os_toplevel_consts_144._object.ob_base.ob_base, - & os_toplevel_consts_145._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__collections_abc = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_collections_abc", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str__names = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_names", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_posixpath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "posixpath", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_ntpath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ntpath", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_supports_dir_fd = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "supports_dir_fd", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -const_str_supports_effective_ids = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "supports_effective_ids", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_supports_fd = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "supports_fd", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -const_str_supports_follow_symlinks = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "supports_follow_symlinks", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[110]; - }_object; - } -os_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 110, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str_abc._ascii.ob_base, - & const_str_sys._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_st._ascii.ob_base, - & const_str__collections_abc._ascii.ob_base, - & const_str__check_methods._ascii.ob_base, - &_Py_ID(type), - & const_str_list._ascii.ob_base, - & const_str_int._ascii.ob_base, - & const_str_GenericAlias._ascii.ob_base, - & const_str_builtin_module_names._ascii.ob_base, - & const_str__names._ascii.ob_base, - &_Py_ID(__all__), - & const_str__exists._ascii.ob_base, - & const_str__get_exports_list._ascii.ob_base, - &_Py_ID(name), - & const_str_linesep._ascii.ob_base, - &_Py_ID(posix), - & const_str__exit._ascii.ob_base, - &_Py_ID(append), - & const_str_ImportError._ascii.ob_base, - & const_str_posixpath._ascii.ob_base, - &_Py_ID(path), - & const_str__have_functions._ascii.ob_base, - &_Py_ID(extend), - &_Py_ID(nt), - & const_str_ntpath._ascii.ob_base, - &_Py_ID(modules), - & os_toplevel_consts_16._ascii.ob_base, - & const_str_curdir._ascii.ob_base, - & const_str_pardir._ascii.ob_base, - &_Py_ID(sep), - & const_str_pathsep._ascii.ob_base, - & const_str_defpath._ascii.ob_base, - & const_str_extsep._ascii.ob_base, - & const_str_altsep._ascii.ob_base, - & const_str_devnull._ascii.ob_base, - &_Py_ID(globals), - & const_str__globals._ascii.ob_base, - & const_str__add._ascii.ob_base, - & const_str_set._ascii.ob_base, - & const_str__set._ascii.ob_base, - & const_str_supports_dir_fd._ascii.ob_base, - & const_str_supports_effective_ids._ascii.ob_base, - &_Py_ID(add), - & const_str_supports_fd._ascii.ob_base, - & const_str_supports_follow_symlinks._ascii.ob_base, - & const_str_SEEK_SET._ascii.ob_base, - & const_str_SEEK_CUR._ascii.ob_base, - & const_str_SEEK_END._ascii.ob_base, - & const_str_makedirs._ascii.ob_base, - & const_str_removedirs._ascii.ob_base, - & const_str_renames._ascii.ob_base, - &_Py_ID(object), - & const_str__walk_symlinks_as_files._ascii.ob_base, - & const_str_walk._ascii.ob_base, - &_Py_ID(open), - & const_str_scandir._ascii.ob_base, - & const_str_fwalk._ascii.ob_base, - & const_str__fwalk_walk._ascii.ob_base, - & const_str__fwalk_yield._ascii.ob_base, - & const_str__fwalk_close._ascii.ob_base, - & const_str__fwalk._ascii.ob_base, - & const_str_execl._ascii.ob_base, - & const_str_execle._ascii.ob_base, - & const_str_execlp._ascii.ob_base, - & const_str_execlpe._ascii.ob_base, - & const_str_execvp._ascii.ob_base, - & const_str_execvpe._ascii.ob_base, - & const_str__execvpe._ascii.ob_base, - & const_str_get_exec_path._ascii.ob_base, - & const_str_MutableMapping._ascii.ob_base, - & const_str_Mapping._ascii.ob_base, - & const_str__Environ._ascii.ob_base, - & const_str__createenviron._ascii.ob_base, - & const_str_environ._ascii.ob_base, - & const_str_getenv._ascii.ob_base, - & const_str_supports_bytes_environ._ascii.ob_base, - & const_str__check_bytes._ascii.ob_base, - & const_str__data._ascii.ob_base, - &_Py_ID(bytes), - & const_str_environb._ascii.ob_base, - & const_str_getenvb._ascii.ob_base, - & const_str__fscodec._ascii.ob_base, - & const_str_fsencode._ascii.ob_base, - & const_str_fsdecode._ascii.ob_base, - & const_str_P_WAIT._ascii.ob_base, - & const_str_P_NOWAIT._ascii.ob_base, - & const_str_P_NOWAITO._ascii.ob_base, - & const_str__spawnvef._ascii.ob_base, - & const_str_spawnv._ascii.ob_base, - & const_str_spawnve._ascii.ob_base, - & const_str_spawnvp._ascii.ob_base, - & const_str_spawnvpe._ascii.ob_base, - & const_str_spawnl._ascii.ob_base, - & const_str_spawnle._ascii.ob_base, - & const_str_spawnlp._ascii.ob_base, - & const_str_spawnlpe._ascii.ob_base, - & const_str_platform._ascii.ob_base, - & const_str_popen._ascii.ob_base, - & const_str__wrap_close._ascii.ob_base, - & const_str_fdopen._ascii.ob_base, - & const_str__fspath._ascii.ob_base, - & const_str_fspath._ascii.ob_base, - &_Py_ID(__name__), - & const_str_ABC._ascii.ob_base, - & const_str_PathLike._ascii.ob_base, - & const_str__AddedDllDirectory._ascii.ob_base, - & const_str_add_dll_directory._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[1542]; - } -os_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 1541, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x02\x15\x01\x04\xf3\x30\x00\x01\x0b\xdb\x00\x0a\xdb\x00\x11\xe5\x00\x2b\xe1\x0f\x13\x90\x44\x98\x13\x91\x49\x8b\x7f\x80\x0c\xe0\x09\x0c\xd7\x09\x21\xd1\x09\x21\x80\x06\xf2\x06\x03\x0b\x15\x80\x07\xf2\x0a\x01\x01\x1d\xf2\x06\x04\x01\x37\xf0\x10\x00\x04\x0b\x88\x66\xd1\x03\x14\xd8\x0b\x12\x80\x44\xd8\x0e\x12\x80\x47\xdc\x04\x17\xf0\x02\x04\x05\x0d\xdd\x08\x1f\xd8\x08\x0f\x8f\x0e\x89\x0e\x90\x77\xd4\x08\x1f\xf3\x06\x00\x05\x1d\xf0\x04\x03\x05\x0d\xdd\x08\x29\xf3\x08\x00\x05\x11\xd8\x04\x0b\x87\x4e\x81\x4e\xd1\x13\x24\xa0\x55\xd3\x13\x2b\xd4\x04\x2c\xd9\x08\x0d\xe0\x05\x09\x88\x56\x81\x5e\xd8\x0b\x0f\x80\x44\xd8\x0e\x14\x80\x47\xdc\x04\x14\xf0\x02\x04\x05\x0d\xdd\x08\x1c\xd8\x08\x0f\x8f\x0e\x89\x0e\x90\x77\xd4\x08\x1f\xf3\x06\x00\x05\x1a\xe3\x04\x0d\xd8\x04\x0b\x87\x4e\x81\x4e\xd1\x13\x24\xa0\x52\xd3\x13\x28\xd4\x04\x29\xd8\x08\x0a\xf0\x04\x03\x05\x0d\xde\x08\x26\xf1\x0a\x00\x0b\x16\xd0\x16\x33\xd3\x0a\x34\xd0\x04\x34\xe0\x19\x1d\x80\x03\x87\x0b\x81\x0b\x88\x49\xd1\x00\x16\xf7\x02\x01\x01\x0d\xf7\x00\x01\x01\x0d\xf3\x00\x01\x01\x0d\xf0\x06\x00\x05\x0b\xf1\x06\x00\x04\x0b\xd0\x0b\x1c\xd5\x03\x1d\xd9\x0f\x16\x8b\x79\x80\x48\xf2\x02\x02\x05\x23\xf1\x08\x00\x0c\x0f\x8b\x35\x80\x44\xd9\x04\x08\xd0\x09\x19\x98\x48\xd4\x04\x25\xd9\x04\x08\x88\x1f\x98\x47\xd4\x04\x24\xd9\x04\x08\x88\x1f\x98\x47\xd4\x04\x24\xd9\x04\x08\x88\x1e\x98\x46\xd4\x04\x23\xd9\x04\x08\xd0\x09\x19\x98\x47\xd4\x04\x24\xd9\x04\x08\x88\x1d\x98\x46\xd4\x04\x23\xd9\x04\x08\x88\x1e\x98\x47\xd4\x04\x24\xd9\x04\x08\x88\x1f\x98\x48\xd4\x04\x25\xd9\x04\x08\x88\x1e\x98\x47\xd4\x04\x24\xd9\x04\x08\x88\x1d\x98\x46\xd4\x04\x23\xd9\x04\x08\xd0\x09\x1a\x98\x4a\xd4\x04\x27\xd9\x04\x08\x88\x1f\x98\x48\xd4\x04\x25\xd9\x04\x08\xd0\x09\x19\x98\x49\xd4\x04\x26\xd9\x04\x08\x88\x1f\x98\x48\xd4\x04\x25\xd9\x04\x08\x88\x1f\x98\x47\xd4\x04\x24\xd9\x04\x08\xd0\x09\x19\x98\x47\xd4\x04\x24\xd8\x16\x1a\x80\x4f\xe1\x0b\x0e\x8b\x35\x80\x44\xd9\x04\x08\xd0\x09\x19\x98\x48\xd4\x04\x25\xd8\x1d\x21\xd0\x04\x1a\xe1\x0b\x0e\x8b\x35\x80\x44\xd9\x04\x08\x88\x1d\x98\x47\xd4\x04\x24\xd9\x04\x08\x88\x1d\x98\x47\xd4\x04\x24\xd9\x04\x08\x88\x1d\x98\x47\xd4\x04\x24\xd9\x04\x08\xd0\x09\x19\x98\x49\xd4\x04\x26\xd9\x04\x08\xd0\x09\x19\x98\x49\xd4\x04\x26\xd9\x04\x08\x88\x1e\x98\x48\xd4\x04\x25\xd8\x04\x08\x87\x48\x81\x48\x88\x54\x84\x4e\xd9\x04\x08\xd0\x09\x19\x98\x4a\xd4\x04\x27\xd9\x04\x08\x88\x1f\x98\x47\xd4\x04\x24\xd9\x04\x08\x88\x1e\x98\x47\xd4\x04\x24\xd9\x04\x08\xd0\x09\x19\x98\x4a\xd4\x04\x27\xd9\x07\x0e\x88\x79\xd4\x07\x19\x99\x67\xa0\x6a\xd4\x1e\x31\xd9\x08\x0c\x88\x5f\x98\x69\xd4\x08\x28\xd8\x12\x16\x80\x4b\xe1\x0b\x0e\x8b\x35\x80\x44\xd9\x04\x08\xd0\x09\x19\x98\x48\xd4\x04\x25\xf1\x2c\x00\x05\x09\x88\x1f\x98\x47\xd4\x04\x24\xd9\x04\x08\x88\x1e\x98\x46\xd4\x04\x23\xd9\x04\x08\x88\x1f\x98\x49\xd4\x04\x26\xd9\x04\x08\x88\x1d\x98\x47\xd4\x04\x24\xd9\x07\x0e\x88\x78\xd4\x07\x18\xd9\x08\x0c\x88\x5d\x98\x47\xd4\x08\x24\xd9\x04\x08\x88\x1d\x98\x46\xd4\x04\x23\xd9\x04\x08\x88\x1e\x98\x47\xd4\x04\x24\xd9\x04\x08\x88\x1c\x98\x46\xd4\x04\x23\xd9\x04\x08\x88\x1e\x98\x46\xd4\x04\x23\xd9\x04\x08\xd0\x09\x19\x98\x47\xd4\x04\x24\xd9\x04\x08\x88\x1c\x98\x46\xd4\x04\x23\xd8\x1f\x23\xd0\x04\x1c\xe0\x08\x0c\xd8\x08\x17\xd8\x08\x10\xd8\x08\x0c\xf0\x0c\x00\x0c\x0d\x80\x08\xd8\x0b\x0c\x80\x08\xd8\x0b\x0c\x80\x08\xf3\x0a\x1e\x01\x12\xf2\x40\x01\x14\x01\x26\xf2\x2c\x18\x01\x11\xf0\x34\x00\x01\x08\x87\x0e\x81\x0e\xd2\x0f\x34\xd4\x00\x35\xf1\x08\x00\x1b\x21\x9b\x28\xd0\x00\x17\xf3\x04\x58\x02\x01\x27\xf0\x74\x04\x00\x01\x08\x87\x0e\x81\x0e\x88\x76\xd4\x00\x16\xe0\x04\x08\x88\x24\x80\x3c\x90\x3f\xd2\x03\x22\xa8\x07\xb0\x14\xa0\x7f\xb8\x2b\xd2\x27\x45\xf0\x04\x2d\x05\x21\xc0\x65\xd0\x54\x58\xf4\x00\x2d\x05\x21\xf0\x60\x01\x00\x13\x14\x80\x4b\xd8\x13\x14\x80\x4c\xd8\x13\x14\x80\x4c\xf2\x04\x48\x01\x05\x43\x01\xf0\x54\x02\x00\x05\x0c\x87\x4e\x81\x4e\x90\x37\xd4\x04\x1b\xf2\x04\x05\x01\x16\xf2\x0e\x06\x01\x21\xf2\x10\x05\x01\x17\xf2\x0e\x07\x01\x22\xf2\x12\x06\x01\x19\xf2\x10\x07\x01\x1e\xf0\x12\x00\x01\x08\x87\x0e\x81\x0e\xd2\x0f\x47\xd4\x00\x48\xf3\x04\x1d\x01\x13\xf3\x40\x01\x29\x01\x24\xf7\x5a\x01\x00\x01\x35\xf4\x04\x47\x01\x01\x13\x88\x7e\xf4\x00\x47\x01\x01\x13\xf2\x52\x02\x1b\x01\x18\xf1\x3c\x00\x0b\x19\xd3\x0a\x1a\x80\x07\xd8\x04\x12\xf3\x06\x04\x01\x25\xf0\x0c\x00\x1b\x1f\xa0\x24\x99\x2c\xd0\x00\x16\xd8\x00\x07\x87\x0e\x81\x0e\xd0\x0f\x33\xd4\x00\x34\xe1\x03\x19\xf2\x02\x03\x05\x15\xf1\x0c\x00\x10\x18\x98\x07\x9f\x0d\x99\x0d\xd8\x08\x14\x90\x65\xd8\x08\x14\x90\x65\xf3\x05\x02\x10\x1d\x80\x48\xf0\x06\x00\x09\x15\xf3\x04\x04\x05\x2a\xf0\x0c\x00\x05\x0c\x87\x4e\x81\x4e\xd0\x13\x2a\xd4\x04\x2b\xf2\x04\x1c\x01\x1e\xf1\x3c\x00\x16\x1e\x93\x5a\xd1\x00\x12\x80\x08\x88\x28\xd8\x04\x0c\xf1\x06\x00\x04\x0b\x88\x36\x84\x3f\x99\x37\xa0\x38\xd4\x1b\x2c\xb1\x17\xb8\x17\xd4\x31\x41\xe0\x0d\x0e\x80\x46\xd8\x1b\x1c\xd0\x04\x1c\x80\x48\x88\x79\xe0\x04\x0b\x87\x4e\x81\x4e\xd2\x13\x36\xd4\x04\x37\xf2\x0c\x19\x05\x33\xf2\x36\x07\x05\x38\xf2\x12\x08\x05\x38\xf2\x18\x08\x05\x39\xf2\x14\x08\x05\x39\xf0\x16\x00\x05\x0c\x87\x4e\x81\x4e\xd2\x13\x3f\xd4\x04\x40\xf1\x06\x00\x04\x0b\x88\x38\xd4\x03\x14\xf2\x08\x07\x05\x28\xf2\x12\x09\x05\x33\xf0\x18\x00\x05\x0c\x87\x4e\x81\x4e\x90\x48\x98\x69\xd0\x13\x28\xd4\x04\x29\xf1\x06\x00\x04\x0b\x88\x39\xd4\x03\x15\xf2\x06\x08\x05\x29\xf2\x14\x09\x05\x34\xf0\x18\x00\x05\x0c\x87\x4e\x81\x4e\x90\x49\x98\x7a\xd0\x13\x2a\xd4\x04\x2b\xf0\x08\x00\x04\x07\x87\x3c\x81\x3c\x90\x39\xd2\x03\x1c\xf3\x04\x13\x05\x31\xf7\x2c\x14\x05\x26\xf1\x00\x14\x05\x26\xf0\x2c\x00\x05\x0c\x87\x4e\x81\x4e\x90\x37\xd4\x04\x1b\xf3\x06\x06\x01\x43\x01\xf2\x16\x1b\x01\x43\x01\xf1\x3e\x00\x08\x0f\x88\x78\xd4\x07\x18\xd8\x0d\x14\x80\x46\xd8\x16\x1e\x80\x46\x84\x4f\xf4\x06\x0f\x01\x32\x88\x73\x8f\x77\x89\x77\xf4\x00\x0f\x01\x32\xf0\x24\x00\x04\x08\x88\x34\x82\x3c\xf7\x02\x0f\x05\x2b\xf1\x00\x0f\x05\x2b\xf3\x22\x10\x05\x0a\xf0\x25\x00\x04\x10\xf8\xf0\x55\x21\x00\x0c\x17\xf2\x00\x01\x05\x0d\xda\x08\x0c\xf0\x03\x01\x05\x0d\xfb\xf0\x0c\x00\x0c\x17\xf2\x00\x01\x05\x0d\xda\x08\x0c\xf0\x03\x01\x05\x0d\xfb\xf0\x1c\x00\x0c\x17\xf2\x00\x01\x05\x0d\xda\x08\x0c\xf0\x03\x01\x05\x0d\xfb\xf0\x14\x00\x0c\x17\xf2\x00\x01\x05\x0d\xda\x08\x0c\xf0\x03\x01\x05\x0d\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[73]; - } -os_toplevel_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 72, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x04\x17\x53\x1f\x00\xc1\x20\x06\x53\x2b\x00\xc2\x11\x17\x53\x37\x00\xc3\x09\x06\x54\x03\x00\xd3\x1f\x05\x53\x28\x03\xd3\x27\x01\x53\x28\x03\xd3\x2b\x05\x53\x34\x03\xd3\x33\x01\x53\x34\x03\xd3\x37\x05\x54\x00\x03\xd3\x3f\x01\x54\x00\x03\xd4\x03\x05\x54\x0c\x03\xd4\x0b\x01\x54\x0c\x03", -}; -static - struct _PyCode_DEF(2590) -os_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 1295, - }, - .co_consts = & os_toplevel_consts._object.ob_base.ob_base, - .co_names = & os_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = & os_toplevel_exceptiontable.ob_base.ob_base, - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 676, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & os_toplevel_consts_5_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & os_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x64\x02\x6c\x01\x5a\x01\x64\x01\x64\x02\x6c\x02\x5a\x02\x64\x01\x64\x02\x6c\x03\x5a\x04\x64\x01\x64\x03\x6c\x05\x6d\x06\x5a\x06\x01\x00\x02\x00\x65\x07\x65\x08\x65\x09\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x0a\x65\x02\x6a\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x0c\x67\x00\x64\x04\xa2\x01\x5a\x0d\x64\x05\x84\x00\x5a\x0e\x64\x06\x84\x00\x5a\x0f\x64\x07\x65\x0c\x76\x00\x72\x49\x64\x07\x5a\x10\x64\x08\x5a\x11\x64\x01\x64\x09\x6c\x12\xad\x02\x01\x00\x09\x00\x64\x01\x64\x0a\x6c\x12\x6d\x13\x5a\x13\x01\x00\x65\x0d\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x01\x64\x02\x6c\x16\x5a\x17\x09\x00\x64\x01\x64\x0c\x6c\x12\x6d\x18\x5a\x18\x01\x00\x64\x01\x64\x02\x6c\x12\x5a\x12\x65\x0d\x6a\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x65\x0f\x65\x12\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x5b\x12\x6e\x55\x64\x0d\x65\x0c\x76\x00\x72\x49\x64\x0d\x5a\x10\x64\x0e\x5a\x11\x64\x01\x64\x09\x6c\x1a\xad\x02\x01\x00\x09\x00\x64\x01\x64\x0a\x6c\x1a\x6d\x13\x5a\x13\x01\x00\x65\x0d\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x01\x64\x02\x6c\x1b\x5a\x17\x64\x01\x64\x02\x6c\x1a\x5a\x1a\x65\x0d\x6a\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x65\x0f\x65\x1a\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x5b\x1a\x09\x00\x64\x01\x64\x0c\x6c\x1a\x6d\x18\x5a\x18\x01\x00\x6e\x08\x02\x00\x65\x15\x64\x0f\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x65\x17\x65\x02\x6a\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x10\x3c\x00\x00\x00\x64\x01\x64\x11\x6c\x1d\x6d\x1e\x5a\x1e\x6d\x1f\x5a\x1f\x6d\x20\x5a\x20\x6d\x21\x5a\x21\x6d\x22\x5a\x22\x6d\x23\x5a\x23\x6d\x24\x5a\x24\x6d\x25\x5a\x25\x01\x00\x5b\x0c\x02\x00\x65\x0e\x64\x12\xab\x01\x00\x00\x00\x00\x00\x00\x90\x01\x72\xc3\x02\x00\x65\x26\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x27\x64\x13\x84\x00\x5a\x28\x02\x00\x65\x29\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x2a\x02\x00\x65\x28\x64\x14\x64\x15\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x16\x64\x17\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x18\x64\x19\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x1a\x64\x1b\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x1c\x64\x1d\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x1e\x64\x1f\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x20\x64\x21\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x22\x64\x23\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x24\x64\x25\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x26\x64\x27\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x28\x64\x29\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x2a\x64\x2b\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x2c\x64\x2d\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x2e\x64\x2f\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x2e\x64\x30\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x31\x64\x1d\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x65\x2a\x5a\x2b\x02\x00\x65\x29\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x2a\x02\x00\x65\x28\x64\x14\x64\x15\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x65\x2a\x5a\x2c\x02\x00\x65\x29\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x2a\x02\x00\x65\x28\x64\x32\x64\x33\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x34\x64\x17\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x35\x64\x19\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x36\x64\x37\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x36\x64\x38\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x39\x64\x3a\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x65\x2a\x6a\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x3b\x64\x3c\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x3d\x64\x1d\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x3e\x64\x1d\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x3f\x64\x40\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x0e\x64\x41\xab\x01\x00\x00\x00\x00\x00\x00\x72\x11\x02\x00\x65\x0e\x64\x42\xab\x01\x00\x00\x00\x00\x00\x00\x72\x09\x02\x00\x65\x28\x64\x43\x64\x41\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x65\x2a\x5a\x2e\x02\x00\x65\x29\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x2a\x02\x00\x65\x28\x64\x14\x64\x15\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x18\x64\x19\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x1a\x64\x1b\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x44\x64\x45\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x46\x64\x17\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x0e\x64\x47\xab\x01\x00\x00\x00\x00\x00\x00\x72\x09\x02\x00\x65\x28\x64\x48\x64\x19\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x1e\x64\x1f\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x49\x64\x1d\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x4a\x64\x1b\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x1a\x64\x1b\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x31\x64\x1d\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x28\x64\x4b\x64\x1b\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x65\x2a\x5a\x2f\x5b\x2a\x5b\x18\x5b\x27\x5b\x28\x64\x01\x5a\x30\x64\x4c\x5a\x31\x64\x4d\x5a\x32\x64\x8c\x64\x4f\x84\x01\x5a\x33\x64\x50\x84\x00\x5a\x34\x64\x51\x84\x00\x5a\x35\x65\x0d\x6a\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x64\x52\xa2\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x36\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x37\x64\x8d\x64\x53\x84\x01\x5a\x38\x65\x0d\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x54\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x39\x65\x03\x68\x02\x65\x2b\x6b\x1a\x00\x00\x72\x29\x65\x3a\x65\x03\x68\x02\x65\x2e\x6b\x1a\x00\x00\x72\x22\x64\x8e\x64\x4e\x64\x02\x64\x55\x9c\x02\x64\x56\x84\x03\x5a\x3b\x64\x01\x5a\x3c\x64\x4c\x5a\x3d\x64\x4d\x5a\x3e\x64\x57\x84\x00\x5a\x3f\x65\x0d\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x58\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x59\x84\x00\x5a\x40\x64\x5a\x84\x00\x5a\x41\x64\x5b\x84\x00\x5a\x42\x64\x5c\x84\x00\x5a\x43\x64\x5d\x84\x00\x5a\x44\x64\x5e\x84\x00\x5a\x45\x65\x0d\x6a\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x64\x5f\xa2\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x8f\x64\x60\x84\x01\x5a\x46\x64\x8f\x64\x61\x84\x01\x5a\x47\x64\x01\x64\x62\x6c\x05\x6d\x48\x5a\x48\x6d\x49\x5a\x49\x01\x00\x02\x00\x47\x00\x64\x63\x84\x00\x64\x64\x65\x48\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x4a\x64\x65\x84\x00\x5a\x4b\x02\x00\x65\x4b\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x4c\x5b\x4b\x64\x8f\x64\x66\x84\x01\x5a\x4d\x65\x10\x64\x0d\x6b\x37\x00\x00\x5a\x4e\x65\x0d\x6a\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x67\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x4e\x72\x2f\x64\x68\x84\x00\x5a\x4f\x02\x00\x65\x4a\x65\x4c\x6a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x4f\x65\x51\x65\x4f\x65\x51\xab\x05\x00\x00\x00\x00\x00\x00\x5a\x52\x5b\x4f\x64\x8f\x64\x69\x84\x01\x5a\x53\x65\x0d\x6a\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x6a\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x6b\x84\x00\x5a\x54\x02\x00\x65\x54\xab\x00\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x5a\x55\x5a\x56\x5b\x54\x02\x00\x65\x0e\x64\x6c\xab\x01\x00\x00\x00\x00\x00\x00\x72\x4b\x02\x00\x65\x0e\x64\x6d\xab\x01\x00\x00\x00\x00\x00\x00\x73\x43\x02\x00\x65\x0e\x64\x6e\xab\x01\x00\x00\x00\x00\x00\x00\x72\x3b\x64\x01\x5a\x57\x64\x4c\x78\x01\x5a\x58\x5a\x59\x65\x0d\x6a\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x64\x6f\xa2\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x70\x84\x00\x5a\x5a\x64\x71\x84\x00\x5a\x5b\x64\x72\x84\x00\x5a\x5c\x64\x73\x84\x00\x5a\x5d\x64\x74\x84\x00\x5a\x5e\x65\x0d\x6a\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x64\x75\xa2\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x0e\x64\x6d\xab\x01\x00\x00\x00\x00\x00\x00\x72\x19\x64\x76\x84\x00\x5a\x5f\x64\x77\x84\x00\x5a\x60\x65\x0d\x6a\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x78\x64\x79\x67\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x65\x0e\x64\x7a\xab\x01\x00\x00\x00\x00\x00\x00\x72\x19\x64\x7b\x84\x00\x5a\x61\x64\x7c\x84\x00\x5a\x62\x65\x0d\x6a\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7d\x64\x7e\x67\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x65\x02\x6a\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7f\x6b\x37\x00\x00\x72\x1f\x64\x90\x64\x80\x84\x01\x5a\x64\x02\x00\x47\x00\x64\x81\x84\x00\x64\x82\xab\x02\x00\x00\x00\x00\x00\x00\x5a\x65\x65\x0d\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x83\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x91\x64\x84\x84\x01\x5a\x66\x64\x85\x84\x00\x5a\x67\x02\x00\x65\x0e\x64\x86\xab\x01\x00\x00\x00\x00\x00\x00\x73\x09\x65\x67\x5a\x68\x64\x86\x65\x68\x5f\x69\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x47\x00\x64\x87\x84\x00\x64\x88\x65\x01\x6a\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x6b\x65\x10\x64\x0d\x6b\x28\x00\x00\x72\x0e\x02\x00\x47\x00\x64\x89\x84\x00\x64\x8a\xab\x02\x00\x00\x00\x00\x00\x00\x5a\x6c\x64\x8b\x84\x00\x5a\x6d\x79\x02\x79\x02\x23\x00\x65\x15\x24\x00\x72\x04\x01\x00\x59\x00\x90\x04\x8c\x8c\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x65\x15\x24\x00\x72\x04\x01\x00\x59\x00\x90\x04\x8c\x8d\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x65\x15\x24\x00\x72\x04\x01\x00\x59\x00\x90\x04\x8c\x57\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x65\x15\x24\x00\x72\x04\x01\x00\x59\x00\x90\x04\x8c\x33\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_os_toplevel(void) -{ - return Py_NewRef((PyObject *) &os_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[2999]; - } -site_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2998, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x70\x70\x65\x6e\x64\x20\x6d\x6f\x64\x75\x6c\x65\x20\x73\x65\x61\x72\x63\x68\x20\x70\x61\x74\x68\x73\x20\x66\x6f\x72\x20\x74\x68\x69\x72\x64\x2d\x70\x61\x72\x74\x79\x20\x70\x61\x63\x6b\x61\x67\x65\x73\x20\x74\x6f\x20\x73\x79\x73\x2e\x70\x61\x74\x68\x2e\x0a\x0a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x0a\x2a\x20\x54\x68\x69\x73\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69\x73\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x61\x6c\x6c\x79\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x20\x64\x75\x72\x69\x6e\x67\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x61\x74\x69\x6f\x6e\x2e\x20\x2a\x0a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x0a\x0a\x54\x68\x69\x73\x20\x77\x69\x6c\x6c\x20\x61\x70\x70\x65\x6e\x64\x20\x73\x69\x74\x65\x2d\x73\x70\x65\x63\x69\x66\x69\x63\x20\x70\x61\x74\x68\x73\x20\x74\x6f\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x73\x65\x61\x72\x63\x68\x20\x70\x61\x74\x68\x2e\x20\x20\x4f\x6e\x0a\x55\x6e\x69\x78\x20\x28\x69\x6e\x63\x6c\x75\x64\x69\x6e\x67\x20\x4d\x61\x63\x20\x4f\x53\x58\x29\x2c\x20\x69\x74\x20\x73\x74\x61\x72\x74\x73\x20\x77\x69\x74\x68\x20\x73\x79\x73\x2e\x70\x72\x65\x66\x69\x78\x20\x61\x6e\x64\x0a\x73\x79\x73\x2e\x65\x78\x65\x63\x5f\x70\x72\x65\x66\x69\x78\x20\x28\x69\x66\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x29\x20\x61\x6e\x64\x20\x61\x70\x70\x65\x6e\x64\x73\x0a\x6c\x69\x62\x2f\x70\x79\x74\x68\x6f\x6e\x3c\x76\x65\x72\x73\x69\x6f\x6e\x3e\x2f\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x2e\x0a\x4f\x6e\x20\x6f\x74\x68\x65\x72\x20\x70\x6c\x61\x74\x66\x6f\x72\x6d\x73\x20\x28\x73\x75\x63\x68\x20\x61\x73\x20\x57\x69\x6e\x64\x6f\x77\x73\x29\x2c\x20\x69\x74\x20\x74\x72\x69\x65\x73\x20\x65\x61\x63\x68\x20\x6f\x66\x20\x74\x68\x65\x0a\x70\x72\x65\x66\x69\x78\x65\x73\x20\x64\x69\x72\x65\x63\x74\x6c\x79\x2c\x20\x61\x73\x20\x77\x65\x6c\x6c\x20\x61\x73\x20\x77\x69\x74\x68\x20\x6c\x69\x62\x2f\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x20\x61\x70\x70\x65\x6e\x64\x65\x64\x2e\x20\x20\x54\x68\x65\x0a\x72\x65\x73\x75\x6c\x74\x69\x6e\x67\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x2c\x20\x69\x66\x20\x74\x68\x65\x79\x20\x65\x78\x69\x73\x74\x2c\x20\x61\x72\x65\x20\x61\x70\x70\x65\x6e\x64\x65\x64\x20\x74\x6f\x20\x73\x79\x73\x2e\x70\x61\x74\x68\x2c\x20\x61\x6e\x64\x0a\x61\x6c\x73\x6f\x20\x69\x6e\x73\x70\x65\x63\x74\x65\x64\x20\x66\x6f\x72\x20\x70\x61\x74\x68\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x20\x66\x69\x6c\x65\x73\x2e\x0a\x0a\x49\x66\x20\x61\x20\x66\x69\x6c\x65\x20\x6e\x61\x6d\x65\x64\x20\x22\x70\x79\x76\x65\x6e\x76\x2e\x63\x66\x67\x22\x20\x65\x78\x69\x73\x74\x73\x20\x6f\x6e\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x61\x62\x6f\x76\x65\x20\x73\x79\x73\x2e\x65\x78\x65\x63\x75\x74\x61\x62\x6c\x65\x2c\x0a\x73\x79\x73\x2e\x70\x72\x65\x66\x69\x78\x20\x61\x6e\x64\x20\x73\x79\x73\x2e\x65\x78\x65\x63\x5f\x70\x72\x65\x66\x69\x78\x20\x61\x72\x65\x20\x73\x65\x74\x20\x74\x6f\x20\x74\x68\x61\x74\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x61\x6e\x64\x0a\x69\x74\x20\x69\x73\x20\x61\x6c\x73\x6f\x20\x63\x68\x65\x63\x6b\x65\x64\x20\x66\x6f\x72\x20\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x20\x28\x73\x79\x73\x2e\x62\x61\x73\x65\x5f\x70\x72\x65\x66\x69\x78\x20\x61\x6e\x64\x0a\x73\x79\x73\x2e\x62\x61\x73\x65\x5f\x65\x78\x65\x63\x5f\x70\x72\x65\x66\x69\x78\x20\x77\x69\x6c\x6c\x20\x61\x6c\x77\x61\x79\x73\x20\x62\x65\x20\x74\x68\x65\x20\x22\x72\x65\x61\x6c\x22\x20\x70\x72\x65\x66\x69\x78\x65\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x50\x79\x74\x68\x6f\x6e\x0a\x69\x6e\x73\x74\x61\x6c\x6c\x61\x74\x69\x6f\x6e\x29\x2e\x20\x49\x66\x20\x22\x70\x79\x76\x65\x6e\x76\x2e\x63\x66\x67\x22\x20\x28\x61\x20\x62\x6f\x6f\x74\x73\x74\x72\x61\x70\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x20\x66\x69\x6c\x65\x29\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x0a\x74\x68\x65\x20\x6b\x65\x79\x20\x22\x69\x6e\x63\x6c\x75\x64\x65\x2d\x73\x79\x73\x74\x65\x6d\x2d\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x22\x20\x73\x65\x74\x20\x74\x6f\x20\x61\x6e\x79\x74\x68\x69\x6e\x67\x20\x6f\x74\x68\x65\x72\x20\x74\x68\x61\x6e\x20\x22\x66\x61\x6c\x73\x65\x22\x0a\x28\x63\x61\x73\x65\x2d\x69\x6e\x73\x65\x6e\x73\x69\x74\x69\x76\x65\x29\x2c\x20\x74\x68\x65\x20\x73\x79\x73\x74\x65\x6d\x2d\x6c\x65\x76\x65\x6c\x20\x70\x72\x65\x66\x69\x78\x65\x73\x20\x77\x69\x6c\x6c\x20\x73\x74\x69\x6c\x6c\x20\x61\x6c\x73\x6f\x20\x62\x65\x0a\x73\x65\x61\x72\x63\x68\x65\x64\x20\x66\x6f\x72\x20\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x3b\x20\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x74\x68\x65\x79\x20\x77\x6f\x6e\x27\x74\x2e\x0a\x0a\x41\x6c\x6c\x20\x6f\x66\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6c\x74\x69\x6e\x67\x20\x73\x69\x74\x65\x2d\x73\x70\x65\x63\x69\x66\x69\x63\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x2c\x20\x69\x66\x20\x74\x68\x65\x79\x20\x65\x78\x69\x73\x74\x2c\x20\x61\x72\x65\x0a\x61\x70\x70\x65\x6e\x64\x65\x64\x20\x74\x6f\x20\x73\x79\x73\x2e\x70\x61\x74\x68\x2c\x20\x61\x6e\x64\x20\x61\x6c\x73\x6f\x20\x69\x6e\x73\x70\x65\x63\x74\x65\x64\x20\x66\x6f\x72\x20\x70\x61\x74\x68\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x0a\x66\x69\x6c\x65\x73\x2e\x0a\x0a\x41\x20\x70\x61\x74\x68\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x20\x66\x69\x6c\x65\x20\x69\x73\x20\x61\x20\x66\x69\x6c\x65\x20\x77\x68\x6f\x73\x65\x20\x6e\x61\x6d\x65\x20\x68\x61\x73\x20\x74\x68\x65\x20\x66\x6f\x72\x6d\x0a\x3c\x70\x61\x63\x6b\x61\x67\x65\x3e\x2e\x70\x74\x68\x3b\x20\x69\x74\x73\x20\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x61\x72\x65\x20\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x28\x6f\x6e\x65\x20\x70\x65\x72\x20\x6c\x69\x6e\x65\x29\x0a\x74\x6f\x20\x62\x65\x20\x61\x64\x64\x65\x64\x20\x74\x6f\x20\x73\x79\x73\x2e\x70\x61\x74\x68\x2e\x20\x20\x4e\x6f\x6e\x2d\x65\x78\x69\x73\x74\x69\x6e\x67\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x28\x6f\x72\x0a\x6e\x6f\x6e\x2d\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x29\x20\x61\x72\x65\x20\x6e\x65\x76\x65\x72\x20\x61\x64\x64\x65\x64\x20\x74\x6f\x20\x73\x79\x73\x2e\x70\x61\x74\x68\x3b\x20\x6e\x6f\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x73\x20\x61\x64\x64\x65\x64\x20\x74\x6f\x0a\x73\x79\x73\x2e\x70\x61\x74\x68\x20\x6d\x6f\x72\x65\x20\x74\x68\x61\x6e\x20\x6f\x6e\x63\x65\x2e\x20\x20\x42\x6c\x61\x6e\x6b\x20\x6c\x69\x6e\x65\x73\x20\x61\x6e\x64\x20\x6c\x69\x6e\x65\x73\x20\x62\x65\x67\x69\x6e\x6e\x69\x6e\x67\x20\x77\x69\x74\x68\x0a\x27\x23\x27\x20\x61\x72\x65\x20\x73\x6b\x69\x70\x70\x65\x64\x2e\x20\x4c\x69\x6e\x65\x73\x20\x73\x74\x61\x72\x74\x69\x6e\x67\x20\x77\x69\x74\x68\x20\x27\x69\x6d\x70\x6f\x72\x74\x27\x20\x61\x72\x65\x20\x65\x78\x65\x63\x75\x74\x65\x64\x2e\x0a\x0a\x46\x6f\x72\x20\x65\x78\x61\x6d\x70\x6c\x65\x2c\x20\x73\x75\x70\x70\x6f\x73\x65\x20\x73\x79\x73\x2e\x70\x72\x65\x66\x69\x78\x20\x61\x6e\x64\x20\x73\x79\x73\x2e\x65\x78\x65\x63\x5f\x70\x72\x65\x66\x69\x78\x20\x61\x72\x65\x20\x73\x65\x74\x20\x74\x6f\x0a\x2f\x75\x73\x72\x2f\x6c\x6f\x63\x61\x6c\x20\x61\x6e\x64\x20\x74\x68\x65\x72\x65\x20\x69\x73\x20\x61\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x2f\x75\x73\x72\x2f\x6c\x6f\x63\x61\x6c\x2f\x6c\x69\x62\x2f\x70\x79\x74\x68\x6f\x6e\x32\x2e\x35\x2f\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x0a\x77\x69\x74\x68\x20\x74\x68\x72\x65\x65\x20\x73\x75\x62\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x2c\x20\x66\x6f\x6f\x2c\x20\x62\x61\x72\x20\x61\x6e\x64\x20\x73\x70\x61\x6d\x2c\x20\x61\x6e\x64\x20\x74\x77\x6f\x20\x70\x61\x74\x68\x0a\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x20\x66\x69\x6c\x65\x73\x2c\x20\x66\x6f\x6f\x2e\x70\x74\x68\x20\x61\x6e\x64\x20\x62\x61\x72\x2e\x70\x74\x68\x2e\x20\x20\x41\x73\x73\x75\x6d\x65\x20\x66\x6f\x6f\x2e\x70\x74\x68\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x74\x68\x65\x0a\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x3a\x0a\x0a\x20\x20\x23\x20\x66\x6f\x6f\x20\x70\x61\x63\x6b\x61\x67\x65\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x0a\x20\x20\x66\x6f\x6f\x0a\x20\x20\x62\x61\x72\x0a\x20\x20\x62\x6c\x65\x74\x63\x68\x0a\x0a\x61\x6e\x64\x20\x62\x61\x72\x2e\x70\x74\x68\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x3a\x0a\x0a\x20\x20\x23\x20\x62\x61\x72\x20\x70\x61\x63\x6b\x61\x67\x65\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x0a\x20\x20\x62\x61\x72\x0a\x0a\x54\x68\x65\x6e\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x61\x72\x65\x20\x61\x64\x64\x65\x64\x20\x74\x6f\x20\x73\x79\x73\x2e\x70\x61\x74\x68\x2c\x20\x69\x6e\x20\x74\x68\x69\x73\x20\x6f\x72\x64\x65\x72\x3a\x0a\x0a\x20\x20\x2f\x75\x73\x72\x2f\x6c\x6f\x63\x61\x6c\x2f\x6c\x69\x62\x2f\x70\x79\x74\x68\x6f\x6e\x32\x2e\x35\x2f\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x2f\x62\x61\x72\x0a\x20\x20\x2f\x75\x73\x72\x2f\x6c\x6f\x63\x61\x6c\x2f\x6c\x69\x62\x2f\x70\x79\x74\x68\x6f\x6e\x32\x2e\x35\x2f\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x2f\x66\x6f\x6f\x0a\x0a\x4e\x6f\x74\x65\x20\x74\x68\x61\x74\x20\x62\x6c\x65\x74\x63\x68\x20\x69\x73\x20\x6f\x6d\x69\x74\x74\x65\x64\x20\x62\x65\x63\x61\x75\x73\x65\x20\x69\x74\x20\x64\x6f\x65\x73\x6e\x27\x74\x20\x65\x78\x69\x73\x74\x3b\x20\x62\x61\x72\x20\x70\x72\x65\x63\x65\x64\x65\x73\x20\x66\x6f\x6f\x0a\x62\x65\x63\x61\x75\x73\x65\x20\x62\x61\x72\x2e\x70\x74\x68\x20\x63\x6f\x6d\x65\x73\x20\x61\x6c\x70\x68\x61\x62\x65\x74\x69\x63\x61\x6c\x6c\x79\x20\x62\x65\x66\x6f\x72\x65\x20\x66\x6f\x6f\x2e\x70\x74\x68\x3b\x20\x61\x6e\x64\x20\x73\x70\x61\x6d\x20\x69\x73\x0a\x6f\x6d\x69\x74\x74\x65\x64\x20\x62\x65\x63\x61\x75\x73\x65\x20\x69\x74\x20\x69\x73\x20\x6e\x6f\x74\x20\x6d\x65\x6e\x74\x69\x6f\x6e\x65\x64\x20\x69\x6e\x20\x65\x69\x74\x68\x65\x72\x20\x70\x61\x74\x68\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x20\x66\x69\x6c\x65\x2e\x0a\x0a\x54\x68\x65\x20\x72\x65\x61\x64\x6c\x69\x6e\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69\x73\x20\x61\x6c\x73\x6f\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x61\x6c\x6c\x79\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\x64\x20\x74\x6f\x20\x65\x6e\x61\x62\x6c\x65\x0a\x63\x6f\x6d\x70\x6c\x65\x74\x69\x6f\x6e\x20\x66\x6f\x72\x20\x73\x79\x73\x74\x65\x6d\x73\x20\x74\x68\x61\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x69\x74\x2e\x20\x20\x54\x68\x69\x73\x20\x63\x61\x6e\x20\x62\x65\x20\x6f\x76\x65\x72\x72\x69\x64\x64\x65\x6e\x20\x69\x6e\x0a\x73\x69\x74\x65\x63\x75\x73\x74\x6f\x6d\x69\x7a\x65\x2c\x20\x75\x73\x65\x72\x63\x75\x73\x74\x6f\x6d\x69\x7a\x65\x20\x6f\x72\x20\x50\x59\x54\x48\x4f\x4e\x53\x54\x41\x52\x54\x55\x50\x2e\x20\x20\x53\x74\x61\x72\x74\x69\x6e\x67\x20\x50\x79\x74\x68\x6f\x6e\x20\x69\x6e\x0a\x69\x73\x6f\x6c\x61\x74\x65\x64\x20\x6d\x6f\x64\x65\x20\x28\x2d\x49\x29\x20\x64\x69\x73\x61\x62\x6c\x65\x73\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x20\x72\x65\x61\x64\x6c\x69\x6e\x65\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x2e\x0a\x0a\x41\x66\x74\x65\x72\x20\x74\x68\x65\x73\x65\x20\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x73\x2c\x20\x61\x6e\x20\x61\x74\x74\x65\x6d\x70\x74\x20\x69\x73\x20\x6d\x61\x64\x65\x20\x74\x6f\x20\x69\x6d\x70\x6f\x72\x74\x20\x61\x20\x6d\x6f\x64\x75\x6c\x65\x0a\x6e\x61\x6d\x65\x64\x20\x73\x69\x74\x65\x63\x75\x73\x74\x6f\x6d\x69\x7a\x65\x2c\x20\x77\x68\x69\x63\x68\x20\x63\x61\x6e\x20\x70\x65\x72\x66\x6f\x72\x6d\x20\x61\x72\x62\x69\x74\x72\x61\x72\x79\x20\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x0a\x73\x69\x74\x65\x2d\x73\x70\x65\x63\x69\x66\x69\x63\x20\x63\x75\x73\x74\x6f\x6d\x69\x7a\x61\x74\x69\x6f\x6e\x73\x2e\x20\x20\x49\x66\x20\x74\x68\x69\x73\x20\x69\x6d\x70\x6f\x72\x74\x20\x66\x61\x69\x6c\x73\x20\x77\x69\x74\x68\x20\x61\x6e\x0a\x49\x6d\x70\x6f\x72\x74\x45\x72\x72\x6f\x72\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x2c\x20\x69\x74\x20\x69\x73\x20\x73\x69\x6c\x65\x6e\x74\x6c\x79\x20\x69\x67\x6e\x6f\x72\x65\x64\x2e\x0a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & importlib__bootstrap_toplevel_consts_25_consts_3._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -site_toplevel_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - &_Py_ID(flags), - & const_str_verbose._ascii.ob_base, - & const_str_print._ascii.ob_base, - &_Py_ID(stderr), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -site_toplevel_consts_3_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str__trace = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_trace", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[35]; - } -site_toplevel_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 34, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x07\x0a\x87\x79\x81\x79\xd7\x07\x18\xd2\x07\x18\xdc\x08\x0d\x88\x67\x9c\x43\x9f\x4a\x99\x4a\xd6\x08\x27\xf0\x03\x00\x08\x19", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -site_toplevel_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(message), - }, - }, -}; -static - struct _PyCode_DEF(112) -site_toplevel_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 56, - }, - .co_consts = & site_toplevel_consts_3_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 92, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 677, - .co_localsplusnames = & site_toplevel_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str__trace._ascii.ob_base, - .co_qualname = & const_str__trace._ascii.ob_base, - .co_linetable = & site_toplevel_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x1c\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -site_toplevel_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - &_Py_ID(path), - &_Py_ID(join), - & const_str_abspath._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_normcase._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_makepath = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "makepath", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[92]; - } -site_toplevel_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 91, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0a\x0c\x8f\x27\x89\x27\x8f\x2c\x89\x2c\x98\x05\xd0\x0a\x1e\x80\x43\xf0\x02\x03\x05\x0d\xdc\x0e\x10\x8f\x67\x89\x67\x8f\x6f\x89\x6f\x98\x63\xd3\x0e\x22\x88\x03\xf0\x06\x00\x0c\x0f\x94\x02\x97\x07\x91\x07\xd7\x10\x20\xd1\x10\x20\xa0\x13\xd3\x10\x25\xd0\x0b\x25\xd0\x04\x25\xf8\xf4\x05\x00\x0c\x13\xf2\x00\x01\x05\x0d\xd9\x08\x0c\xf0\x03\x01\x05\x0d\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -site_toplevel_consts_4_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x9e\x1f\x41\x1e\x00\xc1\x1e\x09\x41\x2a\x03\xc1\x29\x01\x41\x2a\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_paths._ascii.ob_base, - & const_str_dir._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(218) -site_toplevel_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 109, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & site_toplevel_consts_4_exceptiontable.ob_base.ob_base, - .co_flags = 7, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 97, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 678, - .co_localsplusnames = & site_toplevel_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_makepath._ascii.ob_base, - .co_qualname = & const_str_makepath._ascii.ob_base, - .co_linetable = & site_toplevel_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x8e\x00\x7d\x01\x09\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x66\x02\x53\x00\x23\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x8c\x2c\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[70]; - } -site_toplevel_consts_5_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 69, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set all module __file__ and __cached__ attributes to an absolute path", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_5_consts_2 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__frozen_importlib._ascii.ob_base, - & const_str__frozen_importlib_external._ascii.ob_base, - }, - }, -}; -// TODO: The above tuple should be a frozenset -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -site_toplevel_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & site_toplevel_consts_5_consts_0._ascii.ob_base, - Py_None, - & site_toplevel_consts_5_consts_2._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[16]; - }_object; - } -site_toplevel_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 16, - }, - .ob_item = { - & const_str_set._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(modules), - &_Py_ID(values), - &_Py_ID(__loader__), - &_Py_ID(__module__), - & const_str_AttributeError._ascii.ob_base, - &_Py_ID(__spec__), - & const_str_loader._ascii.ob_base, - & const_str_os._ascii.ob_base, - &_Py_ID(path), - & const_str_abspath._ascii.ob_base, - &_Py_ID(__file__), - & const_str_OSError._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - & const_str___cached__._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_abs_paths = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "abs_paths", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[241]; - } -site_toplevel_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 240, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0d\x10\x94\x13\x97\x1b\x91\x1b\xd7\x11\x23\xd1\x11\x23\xd3\x11\x25\xd6\x0d\x26\x88\x01\xd8\x18\x1c\x88\x0d\xf0\x02\x06\x09\x15\xd8\x1c\x1d\x9f\x4c\x99\x4c\xd7\x1c\x33\xd1\x1c\x33\x88\x4d\xf0\x0c\x00\x0c\x19\xd0\x20\x53\xd1\x0b\x53\xd8\x0c\x14\xf0\x02\x03\x09\x11\xdc\x19\x1b\x9f\x17\x99\x17\x9f\x1f\x99\x1f\xa8\x11\xaf\x1a\xa9\x1a\xd3\x19\x34\x88\x41\x8c\x4a\xf0\x06\x03\x09\x11\xdc\x1b\x1d\x9f\x37\x99\x37\x9f\x3f\x99\x3f\xa8\x31\xaf\x3c\xa9\x3c\xd3\x1b\x38\x88\x41\x8d\x4c\xf1\x21\x00\x0e\x27\xf8\xf4\x08\x00\x10\x1e\xf2\x00\x04\x09\x15\xf0\x02\x03\x0d\x15\xd8\x20\x21\xa7\x0a\xa1\x0a\xd7\x20\x31\xd1\x20\x31\xd7\x20\x3c\xd1\x20\x3c\x91\x0d\xf8\xdc\x13\x21\xf2\x00\x01\x0d\x15\xd9\x10\x14\xf0\x03\x01\x0d\x15\xfc\xf0\x07\x04\x09\x15\xfb\xf4\x12\x00\x11\x1f\xa4\x07\xac\x19\xd0\x0f\x33\xf2\x00\x01\x09\x11\xd9\x0c\x10\xf0\x03\x01\x09\x11\xfb\xf4\x08\x00\x11\x1f\xa4\x07\xac\x19\xd0\x0f\x33\xf2\x00\x01\x09\x11\xd9\x0c\x10\xf0\x03\x01\x09\x11\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[90]; - } -site_toplevel_consts_5_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 89, - }, - .ob_shash = -1, - .ob_sval = "\xae\x16\x42\x2a\x02\xc1\x0a\x2e\x43\x2a\x02\xc1\x39\x2e\x44\x04\x02\xc2\x2a\x09\x43\x27\x05\xc2\x34\x20\x43\x15\x04\xc3\x14\x01\x43\x27\x05\xc3\x15\x09\x43\x21\x07\xc3\x1e\x02\x43\x27\x05\xc3\x20\x01\x43\x21\x07\xc3\x21\x03\x43\x27\x05\xc3\x26\x01\x43\x27\x05\xc3\x2a\x14\x44\x01\x05\xc4\x00\x01\x44\x01\x05\xc4\x04\x14\x44\x1b\x05\xc4\x1a\x01\x44\x1b\x05", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_loader_module = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "loader_module", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_5_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[109], - & const_str_loader_module._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(572) -site_toplevel_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 286, - }, - .co_consts = & site_toplevel_consts_5_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = & site_toplevel_consts_5_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 106, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 679, - .co_localsplusnames = & site_toplevel_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_abs_paths._ascii.ob_base, - .co_qualname = & const_str_abs_paths._ascii.ob_base, - .co_linetable = & site_toplevel_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x7e\x00\x00\x7d\x00\x64\x01\x7d\x01\x09\x00\x7c\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x01\x64\x02\x76\x01\x72\x01\x8c\x21\x09\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x80\x04\x00\x79\x01\x23\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x34\x01\x00\x09\x00\x7c\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x6e\x0f\x23\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x6e\x04\x77\x00\x78\x03\x59\x00\x77\x01\x59\x00\x8c\xa2\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x74\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x74\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x66\x03\x24\x00\x72\x03\x01\x00\x59\x00\x8c\x88\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x74\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x74\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x66\x03\x24\x00\x72\x03\x01\x00\x59\x00\x8c\xf2\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[76]; - } -site_toplevel_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 75, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x52\x65\x6d\x6f\x76\x65\x20\x64\x75\x70\x6c\x69\x63\x61\x74\x65\x20\x65\x6e\x74\x72\x69\x65\x73\x20\x66\x72\x6f\x6d\x20\x73\x79\x73\x2e\x70\x61\x74\x68\x20\x61\x6c\x6f\x6e\x67\x20\x77\x69\x74\x68\x20\x6d\x61\x6b\x69\x6e\x67\x20\x74\x68\x65\x6d\x0a\x20\x20\x20\x20\x61\x62\x73\x6f\x6c\x75\x74\x65", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & site_toplevel_consts_6_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -site_toplevel_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_set._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(path), - & const_str_makepath._ascii.ob_base, - &_Py_ID(append), - &_Py_ID(add), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_removeduppaths = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "removeduppaths", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[98]; - } -site_toplevel_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 97, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x0a\x00\x09\x0b\x80\x41\xdc\x12\x15\x93\x25\x80\x4b\xdc\x0f\x12\x8f\x78\x8c\x78\x88\x03\xf4\x08\x00\x18\x20\xa0\x03\x93\x7d\x89\x0c\x88\x03\x88\x57\xd8\x0b\x12\x98\x2b\xd2\x0b\x25\xd8\x0c\x0d\x8f\x48\x89\x48\x90\x53\x8c\x4d\xd8\x0c\x17\x8f\x4f\x89\x4f\x98\x47\xd5\x0c\x24\xf0\x0f\x00\x10\x18\xf0\x10\x00\x13\x14\x84\x43\x87\x48\x81\x48\x89\x51\x80\x4b\xd8\x0b\x16\xd0\x04\x16", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_known_paths = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "known_paths", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_dircase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dircase", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -site_toplevel_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[76], - & const_str_known_paths._ascii.ob_base, - & const_str_dir._ascii.ob_base, - & const_str_dircase._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(216) -site_toplevel_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 108, - }, - .co_consts = & site_toplevel_consts_6_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 129, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 680, - .co_localsplusnames = & site_toplevel_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_removeduppaths._ascii.ob_base, - .co_qualname = & const_str_removeduppaths._ascii.ob_base, - .co_linetable = & site_toplevel_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x67\x00\x7d\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x37\x00\x00\x7d\x02\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x02\x7d\x03\x7c\x03\x7c\x01\x76\x01\x73\x01\x8c\x16\x7c\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x39\x04\x00\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x64\x01\x1b\x00\x7c\x01\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[70]; - } -site_toplevel_consts_7_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 69, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return a set containing all existing file system items from sys.path.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -site_toplevel_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & site_toplevel_consts_7_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -site_toplevel_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_set._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(path), - & const_str_os._ascii.ob_base, - & const_str_exists._ascii.ob_base, - & const_str_makepath._ascii.ob_base, - &_Py_ID(add), - & const_str_TypeError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__init_pathinfo = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_init_pathinfo", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[97]; - } -site_toplevel_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 96, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x08\x0b\x8b\x05\x80\x41\xdc\x10\x13\x97\x08\x94\x08\x88\x04\xf0\x02\x05\x09\x15\xdc\x0f\x11\x8f\x77\x89\x77\x8f\x7e\x89\x7e\x98\x64\xd4\x0f\x23\xdc\x1e\x26\xa0\x74\x9b\x6e\x91\x0b\x90\x01\x90\x38\xd8\x10\x11\x97\x05\x91\x05\x90\x68\x94\x0f\xf8\xf0\x09\x00\x11\x19\xf0\x0e\x00\x0c\x0d\x80\x48\xf8\xf4\x05\x00\x10\x19\xf2\x00\x01\x09\x15\xd9\x0c\x14\xf0\x03\x01\x09\x15\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -site_toplevel_consts_7_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x9f\x3e\x41\x21\x02\xc1\x21\x09\x41\x2d\x05\xc1\x2c\x01\x41\x2d\x05", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_itemcase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "itemcase", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -site_toplevel_consts_7_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - (PyObject *)&_Py_SINGLETON(strings).ascii[100], - &_Py_ID(item), - (PyObject *)&_Py_SINGLETON(strings).ascii[95], - & const_str_itemcase._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(224) -site_toplevel_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 112, - }, - .co_consts = & site_toplevel_consts_7_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = & site_toplevel_consts_7_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 148, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 681, - .co_localsplusnames = & site_toplevel_consts_7_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str__init_pathinfo._ascii.ob_base, - .co_qualname = & const_str__init_pathinfo._ascii.ob_base, - .co_linetable = & site_toplevel_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x41\x00\x00\x7d\x01\x09\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x72\x1f\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x02\x7d\x03\x7c\x00\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x43\x04\x00\x7c\x00\x53\x00\x23\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x8c\x51\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[215]; - } -site_toplevel_consts_8_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 214, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x50\x72\x6f\x63\x65\x73\x73\x20\x61\x20\x2e\x70\x74\x68\x20\x66\x69\x6c\x65\x20\x77\x69\x74\x68\x69\x6e\x20\x74\x68\x65\x20\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x46\x6f\x72\x20\x65\x61\x63\x68\x20\x6c\x69\x6e\x65\x20\x69\x6e\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x2c\x20\x65\x69\x74\x68\x65\x72\x20\x63\x6f\x6d\x62\x69\x6e\x65\x20\x69\x74\x20\x77\x69\x74\x68\x20\x73\x69\x74\x65\x64\x69\x72\x20\x74\x6f\x20\x61\x20\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x64\x20\x61\x64\x64\x20\x74\x68\x61\x74\x20\x74\x6f\x20\x6b\x6e\x6f\x77\x6e\x5f\x70\x61\x74\x68\x73\x2c\x20\x6f\x72\x20\x65\x78\x65\x63\x75\x74\x65\x20\x69\x74\x20\x69\x66\x20\x69\x74\x20\x73\x74\x61\x72\x74\x73\x20\x77\x69\x74\x68\x20\x27\x69\x6d\x70\x6f\x72\x74\x20\x27\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_st_flags = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "st_flags", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_st_file_attributes = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "st_file_attributes", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[28]; - } -site_toplevel_consts_8_consts_7 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 27, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Skipping hidden .pth file: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -site_toplevel_consts_8_consts_8 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Processing .pth file: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -site_toplevel_consts_8_consts_9 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "utf-8-sig", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -site_toplevel_consts_8_consts_10 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Cannot read ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[36]; - } -site_toplevel_consts_8_consts_11 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 35, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " as UTF-8. Using fallback encoding ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -site_toplevel_consts_8_consts_15_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x69\x6d\x70\x6f\x72\x74\x09", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_8_consts_15 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_25_consts_1_1._ascii.ob_base, - & site_toplevel_consts_8_consts_15_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -site_toplevel_consts_8_consts_16 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Error processing line ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -site_toplevel_consts_8_consts_18 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " of ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -site_toplevel_consts_8_consts_19 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x3a\x0a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[3]; - } -site_toplevel_consts_8_consts_21 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 2, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -site_toplevel_consts_8_consts_22 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x0a\x52\x65\x6d\x61\x69\x6e\x64\x65\x72\x20\x6f\x66\x20\x66\x69\x6c\x65\x20\x69\x67\x6e\x6f\x72\x65\x64", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[23]; - }_object; - } -site_toplevel_consts_8_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 23, - }, - .ob_item = { - & site_toplevel_consts_8_consts_0._ascii.ob_base, - Py_None, - Py_True, - Py_False, - & const_str_st_flags._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & const_str_st_file_attributes._ascii.ob_base, - & site_toplevel_consts_8_consts_7._ascii.ob_base, - & site_toplevel_consts_8_consts_8._ascii.ob_base, - & site_toplevel_consts_8_consts_9._ascii.ob_base, - & site_toplevel_consts_8_consts_10._ascii.ob_base, - & site_toplevel_consts_8_consts_11._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - (PyObject *)&_Py_SINGLETON(strings).ascii[35], - &_Py_STR(empty), - & site_toplevel_consts_8_consts_15._object.ob_base.ob_base, - & site_toplevel_consts_8_consts_16._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[100], - & site_toplevel_consts_8_consts_18._ascii.ob_base, - & site_toplevel_consts_8_consts_19._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_25_consts_3._object.ob_base.ob_base, - & site_toplevel_consts_8_consts_21._ascii.ob_base, - & site_toplevel_consts_8_consts_22._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_UF_HIDDEN = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "UF_HIDDEN", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -const_str_FILE_ATTRIBUTE_HIDDEN = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_HIDDEN", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_getencoding = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getencoding", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_strip = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "strip", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str_format_exception = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "format_exception", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[34]; - }_object; - } -site_toplevel_consts_8_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 34, - }, - .ob_item = { - & const_str__init_pathinfo._ascii.ob_base, - & const_str_os._ascii.ob_base, - &_Py_ID(path), - &_Py_ID(join), - & const_str_lstat._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - &_Py_ID(getattr), - & const_str_stat._ascii.ob_base, - & const_str_UF_HIDDEN._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_HIDDEN._ascii.ob_base, - & const_str__trace._ascii.ob_base, - & const_str_io._ascii.ob_base, - & const_str_open_code._ascii.ob_base, - &_Py_ID(read), - &_Py_ID(decode), - & const_str_UnicodeDecodeError._ascii.ob_base, - &_Py_ID(locale), - & const_str_getencoding._ascii.ob_base, - & const_str_enumerate._ascii.ob_base, - & const_str_splitlines._ascii.ob_base, - & const_str_startswith._ascii.ob_base, - & const_str_strip._ascii.ob_base, - & const_str_exec._ascii.ob_base, - & const_str_rstrip._ascii.ob_base, - & const_str_makepath._ascii.ob_base, - & const_str_exists._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(append), - &_Py_ID(add), - & const_str_Exception._ascii.ob_base, - & const_str_print._ascii.ob_base, - &_Py_ID(stderr), - &_Py_ID(traceback), - & const_str_format_exception._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_addpackage = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "addpackage", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[665]; - } -site_toplevel_consts_8_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 664, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x0a\x00\x08\x13\xd0\x07\x1a\xdc\x16\x24\xd3\x16\x26\x88\x0b\xd8\x10\x14\x89\x05\xe0\x10\x15\x88\x05\xdc\x0f\x11\x8f\x77\x89\x77\x8f\x7c\x89\x7c\x98\x47\xa0\x54\xd3\x0f\x2a\x80\x48\xf0\x02\x03\x05\x0f\xdc\x0d\x0f\x8f\x58\x89\x58\x90\x68\xd3\x0d\x1f\x88\x02\xf4\x06\x00\x0a\x11\x90\x12\x90\x5a\xa0\x11\xd3\x09\x23\xa4\x64\xa7\x6e\xa1\x6e\xd2\x09\x34\xdc\x09\x10\x90\x12\xd0\x15\x29\xa8\x31\xd3\x09\x2d\xb4\x04\xd7\x30\x4a\xd1\x30\x4a\xd2\x09\x4a\xdc\x08\x0e\xd0\x11\x2c\xa8\x58\xa8\x4c\xd0\x0f\x39\xd4\x08\x3a\xd8\x08\x0e\xdc\x04\x0a\xd0\x0d\x23\xa0\x48\xa0\x3c\xd0\x0b\x30\xd4\x04\x31\xf0\x02\x04\x05\x0f\xdc\x0d\x0f\x8f\x5c\x89\x5c\x98\x28\xd4\x0d\x23\xa0\x71\xd8\x1a\x1b\x9f\x26\x99\x26\x9b\x28\x88\x4b\xf7\x03\x00\x0e\x24\xf0\x0a\x0a\x05\x44\x01\xf0\x06\x00\x17\x22\xd7\x16\x28\xd1\x16\x28\xa8\x1b\xd3\x16\x35\x88\x0b\xf4\x12\x00\x14\x1d\x98\x5b\xd7\x1d\x33\xd1\x1d\x33\xd3\x1d\x35\xb0\x71\xd6\x13\x39\x89\x07\x88\x01\x88\x34\xd8\x0b\x0f\x8f\x3f\x89\x3f\x98\x33\xd4\x0b\x1f\xd8\x0c\x14\xd8\x0b\x0f\x8f\x3a\x89\x3a\x8b\x3c\x98\x32\xd2\x0b\x1d\xd8\x0c\x14\xf0\x02\x11\x09\x12\xd8\x0f\x13\x8f\x7f\x89\x7f\xd0\x1f\x36\xd4\x0f\x37\xdc\x10\x14\x90\x54\x94\x0a\xd8\x10\x18\xd8\x13\x17\x97\x3b\x91\x3b\x93\x3d\x88\x44\xdc\x1b\x23\xa0\x47\xa8\x54\xd3\x1b\x32\x89\x4c\x88\x43\x90\x17\xd8\x0f\x16\x98\x6b\xd1\x0f\x29\xac\x62\xaf\x67\xa9\x67\xaf\x6e\xa9\x6e\xb8\x53\xd4\x2e\x41\xdc\x10\x13\x97\x08\x91\x08\x97\x0f\x91\x0f\xa0\x03\xd4\x10\x24\xd8\x10\x1b\x97\x0f\x91\x0f\xa0\x07\xd4\x10\x28\xf8\xf0\x1b\x00\x14\x3a\xf1\x2e\x00\x08\x0d\xd8\x16\x1a\x88\x0b\xd8\x0b\x16\xd0\x04\x16\xf8\xf4\x65\x01\x00\x0c\x13\xf2\x00\x01\x05\x0f\xd9\x08\x0e\xf0\x03\x01\x05\x0f\xfa\xf7\x10\x00\x0e\x24\xd1\x0d\x23\xfb\xe4\x0b\x12\xf2\x00\x01\x05\x0f\xd9\x08\x0e\xf0\x03\x01\x05\x0f\xfb\xf4\x0e\x00\x0c\x1e\xf2\x00\x06\x05\x44\x01\xf3\x06\x00\x09\x16\xd8\x16\x21\xd7\x16\x28\xd1\x16\x28\xa8\x16\xd7\x29\x3b\xd1\x29\x3b\xd3\x29\x3d\xd3\x16\x3e\x88\x0b\xdc\x08\x0e\x90\x1c\x98\x68\x98\x5c\xf0\x00\x01\x2a\x2a\xd8\x2a\x30\xd7\x2a\x3c\xd1\x2a\x3c\xd3\x2a\x3e\xd0\x29\x41\xf0\x03\x01\x10\x43\x01\xf7\x00\x01\x09\x44\x01\xf0\x0b\x06\x05\x44\x01\xfb\xf4\x2c\x00\x10\x19\xf2\x00\x08\x09\x12\xdc\x0c\x11\xd0\x14\x2a\xa8\x31\xa8\x51\xa8\x25\xa8\x74\xb0\x48\xb0\x3a\xb8\x53\xd0\x12\x41\xdc\x17\x1a\x97\x7a\x91\x7a\xf5\x03\x01\x0d\x23\xe3\x0c\x1c\xd8\x1a\x23\xd7\x1a\x34\xd1\x1a\x34\xb0\x53\xd6\x1a\x39\x90\x06\xd8\x1c\x22\xd7\x1c\x2d\xd1\x1c\x2d\xd6\x1c\x2f\x90\x44\xdc\x14\x19\x98\x24\x98\x74\x99\x29\xac\x23\xaf\x2a\xa9\x2a\xd6\x14\x35\xf1\x03\x00\x1d\x30\xf0\x03\x00\x1b\x3a\xf4\x06\x00\x0d\x12\xd0\x12\x2f\xb4\x63\xb7\x6a\xb1\x6a\xd5\x0c\x41\xde\x0c\x11\xfb\xf0\x11\x08\x09\x12\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[111]; - } -site_toplevel_consts_8_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 110, - }, - .ob_shash = -1, - .ob_sval = "\xb3\x15\x47\x00\x00\xc2\x22\x15\x47\x1c\x00\xc2\x37\x11\x47\x0f\x03\xc3\x08\x08\x47\x1c\x00\xc3\x11\x11\x47\x2b\x00\xc4\x29\x1c\x48\x3d\x02\xc5\x06\x41\x32\x48\x3d\x02\xc7\x00\x09\x47\x0c\x03\xc7\x0b\x01\x47\x0c\x03\xc7\x0f\x05\x47\x19\x07\xc7\x14\x08\x47\x1c\x00\xc7\x1c\x09\x47\x28\x03\xc7\x27\x01\x47\x28\x03\xc7\x2b\x41\x0b\x48\x3a\x03\xc8\x39\x01\x48\x3a\x03\xc8\x3d\x09\x4b\x1d\x05\xc9\x06\x42\x0b\x4b\x18\x05\xcb\x18\x05\x4b\x1d\x05", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_sitedir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "sitedir", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_pth_content = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pth_content", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_record = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "record", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[16]; - }_object; - } -site_toplevel_consts_8_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 16, - }, - .ob_item = { - & const_str_sitedir._ascii.ob_base, - &_Py_ID(name), - & const_str_known_paths._ascii.ob_base, - &_Py_ID(reset), - & const_str_fullname._ascii.ob_base, - & const_str_st._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[102], - & const_str_pth_content._ascii.ob_base, - &_Py_ID(locale), - (PyObject *)&_Py_SINGLETON(strings).ascii[110], - &_Py_ID(line), - & const_str_dir._ascii.ob_base, - & const_str_dircase._ascii.ob_base, - & const_str_exc._ascii.ob_base, - &_Py_ID(traceback), - & const_str_record._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(1472) -site_toplevel_consts_8 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 736, - }, - .co_consts = & site_toplevel_consts_8_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_8_names._object.ob_base.ob_base, - .co_exceptiontable = & site_toplevel_consts_8_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 25 + FRAME_SPECIALS_SIZE, - .co_stacksize = 9, - .co_firstlineno = 161, - .co_nlocalsplus = 16, - .co_nlocals = 16, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 682, - .co_localsplusnames = & site_toplevel_consts_8_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & posixpath_toplevel_consts_32_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_addpackage._ascii.ob_base, - .co_qualname = & const_str_addpackage._ascii.ob_base, - .co_linetable = & site_toplevel_consts_8_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x02\x80\x0d\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x64\x02\x7d\x03\x6e\x02\x64\x03\x7d\x03\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x04\x09\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x64\x04\x64\x05\xab\x03\x00\x00\x00\x00\x00\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x73\x1e\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x64\x06\x64\x05\xab\x03\x00\x00\x00\x00\x00\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x72\x0f\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x64\x07\x7c\x04\x9b\x02\x9d\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x7c\x04\x9b\x02\x9d\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x35\x00\x7d\x06\x7c\x06\x6a\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x07\x64\x01\x64\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x7f\x07\x6a\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x07\x74\x25\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\x6a\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x64\x0c\xab\x02\x00\x00\x00\x00\x00\x00\x44\x00\x5d\xbb\x00\x00\x5c\x02\x00\x00\x7d\x09\x7d\x0a\x7c\x0a\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x72\x01\x8c\x18\x7c\x0a\x6a\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x64\x0e\x6b\x28\x00\x00\x72\x01\x8c\x2c\x09\x00\x7c\x0a\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0f\xab\x01\x00\x00\x00\x00\x00\x00\x72\x0c\x74\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x4a\x7c\x0a\x6a\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x0a\x74\x31\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x0a\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x0b\x7d\x0c\x7c\x0c\x7c\x02\x76\x01\x72\x4f\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x72\x30\x74\x34\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x37\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0b\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x02\x6a\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0c\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\xbd\x04\x00\x7c\x03\x72\x02\x64\x01\x7d\x02\x7c\x02\x53\x00\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x90\x01\x8c\x09\x78\x03\x59\x00\x77\x01\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x46\x01\x00\x64\x05\x64\x01\x6c\x10\x7d\x08\x7f\x07\x6a\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x6a\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x07\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0a\x7c\x04\x9b\x02\x64\x0b\x7c\x08\x6a\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x9b\x02\x9d\x04\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x59\x00\x90\x01\x8c\x57\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x97\x7d\x0d\x74\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x64\x10\x7c\x09\x64\x11\x9b\x04\x64\x12\x7c\x04\x9b\x00\x64\x13\x9d\x05\x74\x34\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x14\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x64\x05\x64\x01\x6c\x20\x7d\x0e\x7c\x0e\x6a\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x35\x00\x00\x7d\x0f\x7c\x0f\x6a\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x20\x00\x00\x7d\x0a\x74\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x64\x15\x7c\x0a\x7a\x00\x00\x00\x74\x34\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x14\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x22\x04\x00\x8c\x37\x04\x00\x74\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x64\x16\x74\x34\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x14\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x59\x00\x64\x01\x7d\x0d\x7e\x0d\x01\x00\x90\x01\x8c\x1e\x64\x01\x7d\x0d\x7e\x0d\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[85]; - } -site_toplevel_consts_9_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 84, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x64\x64\x20\x27\x73\x69\x74\x65\x64\x69\x72\x27\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x20\x74\x6f\x20\x73\x79\x73\x2e\x70\x61\x74\x68\x20\x69\x66\x20\x6d\x69\x73\x73\x69\x6e\x67\x20\x61\x6e\x64\x20\x68\x61\x6e\x64\x6c\x65\x20\x2e\x70\x74\x68\x20\x66\x69\x6c\x65\x73\x20\x69\x6e\x0a\x20\x20\x20\x20\x27\x73\x69\x74\x65\x64\x69\x72\x27", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -site_toplevel_consts_9_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Adding directory: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -site_toplevel_consts_9_consts_5 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = ".pth", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -site_toplevel_consts_9_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & site_toplevel_consts_9_consts_0._ascii.ob_base, - & site_toplevel_consts_9_consts_1._ascii.ob_base, - Py_None, - Py_True, - Py_False, - & site_toplevel_consts_9_consts_5._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[14]; - }_object; - } -site_toplevel_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 14, - }, - .ob_item = { - & const_str__trace._ascii.ob_base, - & const_str__init_pathinfo._ascii.ob_base, - & const_str_makepath._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(path), - &_Py_ID(append), - &_Py_ID(add), - & const_str_os._ascii.ob_base, - & const_str_listdir._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_endswith._ascii.ob_base, - & const_str_startswith._ascii.ob_base, - & const_str_sorted._ascii.ob_base, - & const_str_addpackage._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_addsitedir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "addsitedir", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[234]; - } -site_toplevel_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 233, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x05\x0b\xd0\x0d\x1f\xa0\x07\x98\x7b\xd0\x0b\x2b\xd4\x04\x2c\xd8\x07\x12\xd0\x07\x1a\xdc\x16\x24\xd3\x16\x26\x88\x0b\xd8\x10\x14\x89\x05\xe0\x10\x15\x88\x05\xdc\x1b\x23\xa0\x47\xd3\x1b\x2c\xd1\x04\x18\x80\x47\x88\x5b\xd8\x0b\x16\x98\x2b\xd1\x0b\x25\xdc\x08\x0b\x8f\x08\x89\x08\x8f\x0f\x89\x0f\x98\x07\xd4\x08\x20\xd8\x08\x13\x8f\x0f\x89\x0f\x98\x0b\xd4\x08\x24\xf0\x02\x03\x05\x0f\xdc\x10\x12\x97\x0a\x91\x0a\x98\x37\xd3\x10\x23\x88\x05\xf1\x06\x00\x1f\x24\xf3\x00\x01\x0d\x44\x01\x99\x65\x90\x64\xd8\x10\x14\x97\x0d\x91\x0d\x98\x66\xd4\x10\x25\xa8\x64\xaf\x6f\xa9\x6f\xb8\x63\xd4\x2e\x42\xf2\x03\x00\x0e\x12\x98\x65\x80\x45\xf0\x00\x01\x0d\x44\x01\xe4\x10\x16\x90\x75\x96\x0d\x88\x04\xdc\x08\x12\x90\x37\x98\x44\xa0\x2b\xd5\x08\x2e\xf0\x03\x00\x11\x1e\xe1\x07\x0c\xd8\x16\x1a\x88\x0b\xd8\x0b\x16\xd0\x04\x16\xf8\xf4\x11\x00\x0c\x13\xf2\x00\x01\x05\x0f\xd9\x08\x0e\xf0\x03\x01\x05\x0f\xfc\xf2\x04\x01\x0d\x44\x01", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[25]; - } -site_toplevel_consts_9_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 24, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x23\x15\x43\x0c\x00\xc1\x3c\x2b\x43\x1b\x04\xc3\x0c\x09\x43\x18\x03\xc3\x17\x01\x43\x18\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_sitedircase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "sitedircase", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -site_toplevel_consts_9_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_sitedir._ascii.ob_base, - & const_str_known_paths._ascii.ob_base, - &_Py_ID(reset), - & const_str_sitedircase._ascii.ob_base, - & const_str_names._ascii.ob_base, - &_Py_ID(name), - }, - }, -}; -static - struct _PyCode_DEF(448) -site_toplevel_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 224, - }, - .co_consts = & site_toplevel_consts_9_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = & site_toplevel_consts_9_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 227, - .co_nlocalsplus = 6, - .co_nlocals = 6, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 683, - .co_localsplusnames = & site_toplevel_consts_9_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_30_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_addsitedir._ascii.ob_base, - .co_qualname = & const_str_addsitedir._ascii.ob_base, - .co_linetable = & site_toplevel_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7c\x00\x9b\x02\x9d\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x80\x0d\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x64\x03\x7d\x02\x6e\x02\x64\x04\x7d\x02\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x02\x00\x00\x7d\x00\x7d\x03\x7c\x03\x7c\x01\x76\x01\x72\x30\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x04\x7c\x04\x44\x00\x8f\x05\x63\x02\x67\x00\x63\x02\x5d\x26\x00\x00\x7d\x05\x7c\x05\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\xab\x01\x00\x00\x00\x00\x00\x00\x72\x13\x7c\x05\x6a\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\xab\x01\x00\x00\x00\x00\x00\x00\x73\x02\x7c\x05\x91\x02\x8c\x28\x04\x00\x7d\x04\x7d\x05\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x0f\x00\x00\x7d\x05\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x05\x7c\x01\xab\x03\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x11\x04\x00\x7c\x02\x72\x02\x64\x02\x7d\x01\x7c\x01\x53\x00\x23\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x02\x77\x00\x78\x03\x59\x00\x77\x01\x63\x02\x01\x00\x63\x02\x7d\x05\x77\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[301]; - } -site_toplevel_consts_10_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 300, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x43\x68\x65\x63\x6b\x20\x69\x66\x20\x75\x73\x65\x72\x20\x73\x69\x74\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x73\x20\x73\x61\x66\x65\x20\x66\x6f\x72\x20\x69\x6e\x63\x6c\x75\x73\x69\x6f\x6e\x0a\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x65\x73\x74\x73\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6c\x69\x6e\x65\x20\x66\x6c\x61\x67\x20\x28\x69\x6e\x63\x6c\x75\x64\x69\x6e\x67\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x20\x76\x61\x72\x29\x2c\x0a\x20\x20\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x75\x69\x64\x2f\x67\x69\x64\x20\x65\x71\x75\x61\x6c\x20\x74\x6f\x20\x65\x66\x66\x65\x63\x74\x69\x76\x65\x20\x75\x69\x64\x2f\x67\x69\x64\x2e\x0a\x0a\x20\x20\x20\x20\x4e\x6f\x6e\x65\x3a\x20\x44\x69\x73\x61\x62\x6c\x65\x64\x20\x66\x6f\x72\x20\x73\x65\x63\x75\x72\x69\x74\x79\x20\x72\x65\x61\x73\x6f\x6e\x73\x0a\x20\x20\x20\x20\x46\x61\x6c\x73\x65\x3a\x20\x44\x69\x73\x61\x62\x6c\x65\x64\x20\x62\x79\x20\x75\x73\x65\x72\x20\x28\x63\x6f\x6d\x6d\x61\x6e\x64\x20\x6c\x69\x6e\x65\x20\x6f\x70\x74\x69\x6f\x6e\x29\x0a\x20\x20\x20\x20\x54\x72\x75\x65\x3a\x20\x53\x61\x66\x65\x20\x61\x6e\x64\x20\x65\x6e\x61\x62\x6c\x65\x64\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_geteuid = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "geteuid", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_getgid = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getgid", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_getegid = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getegid", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -site_toplevel_consts_10_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & site_toplevel_consts_10_consts_0._ascii.ob_base, - Py_False, - & const_str_getuid._ascii.ob_base, - & const_str_geteuid._ascii.ob_base, - Py_None, - & const_str_getgid._ascii.ob_base, - & const_str_getegid._ascii.ob_base, - Py_True, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_no_user_site = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "no_user_site", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -site_toplevel_consts_10_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - &_Py_ID(flags), - & const_str_no_user_site._ascii.ob_base, - & const_str_hasattr._ascii.ob_base, - & const_str_os._ascii.ob_base, - & const_str_geteuid._ascii.ob_base, - & const_str_getuid._ascii.ob_base, - & const_str_getegid._ascii.ob_base, - & const_str_getgid._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -const_str_check_enableusersite = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "check_enableusersite", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[108]; - } -site_toplevel_consts_10_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 107, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x14\x00\x08\x0b\x87\x79\x81\x79\xd7\x07\x1d\xd2\x07\x1d\xd8\x0f\x14\xe4\x07\x0e\x8c\x72\x90\x38\xd4\x07\x1c\xa4\x17\xac\x12\xa8\x59\xd4\x21\x37\xe4\x0b\x0d\x8f\x3a\x89\x3a\x8b\x3c\x9c\x32\x9f\x39\x99\x39\x9b\x3b\xd2\x0b\x26\xd8\x13\x17\xdc\x07\x0e\x8c\x72\x90\x38\xd4\x07\x1c\xa4\x17\xac\x12\xa8\x59\xd4\x21\x37\xe4\x0b\x0d\x8f\x3a\x89\x3a\x8b\x3c\x9c\x32\x9f\x39\x99\x39\x9b\x3b\xd2\x0b\x26\xd8\x13\x17\xe0\x0b\x0f", -}; -static - struct _PyCode_DEF(354) -site_toplevel_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 177, - }, - .co_consts = & site_toplevel_consts_10_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_10_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 253, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 684, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_check_enableusersite._ascii.ob_base, - .co_qualname = & const_str_check_enableusersite._ascii.ob_base, - .co_linetable = & site_toplevel_consts_10_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x01\x79\x01\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x72\x3a\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\xab\x02\x00\x00\x00\x00\x00\x00\x72\x2a\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\x01\x79\x04\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\xab\x02\x00\x00\x00\x00\x00\x00\x72\x3a\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\xab\x02\x00\x00\x00\x00\x00\x00\x72\x2a\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\x01\x79\x04\x79\x07", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_PYTHONUSERBASE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "PYTHONUSERBASE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_emscripten = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "emscripten", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_wasi = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "wasi", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -site_toplevel_consts_11_consts_2 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_emscripten._ascii.ob_base, - & const_str_vxworks._ascii.ob_base, - & const_str_wasi._ascii.ob_base, - }, - }, -}; -// TODO: The above tuple should be a frozenset -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -site_toplevel_consts_11_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - &_Py_ID(path), - & const_str_expanduser._ascii.ob_base, - &_Py_ID(join), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_joinuser = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "joinuser", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[31]; - } -site_toplevel_consts_11_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 30, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_getuserbase..joinuser", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[37]; - } -site_toplevel_consts_11_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 36, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x11\x8f\x77\x89\x77\xd7\x0f\x21\xd1\x0f\x21\xa4\x22\xa7\x27\xa1\x27\xa7\x2c\xa1\x2c\xb0\x04\xd0\x22\x35\xd3\x0f\x36\xd0\x08\x36", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -site_toplevel_consts_11_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(args), - }, - }, -}; -static - struct _PyCode_DEF(116) -site_toplevel_consts_11_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 58, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_11_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 23, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 294, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 685, - .co_localsplusnames = & site_toplevel_consts_11_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_joinuser._ascii.ob_base, - .co_qualname = & site_toplevel_consts_11_consts_3_qualname._ascii.ob_base, - .co_linetable = & site_toplevel_consts_11_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x8e\x00\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_APPDATA = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "APPDATA", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_Python = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Python", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_Library = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Library", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -site_toplevel_consts_11_consts_12 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = ".local", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -site_toplevel_consts_11_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - Py_None, - & const_str_PYTHONUSERBASE._ascii.ob_base, - & site_toplevel_consts_11_consts_2._object.ob_base.ob_base, - & site_toplevel_consts_11_consts_3.ob_base.ob_base, - &_Py_ID(nt), - & const_str_APPDATA._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[126], - & const_str_Python._ascii.ob_base, - & const_str_darwin._ascii.ob_base, - & const_str_Library._ascii.ob_base, - & importlib__bootstrap_external_toplevel_consts_52_consts_6_consts_1._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - & site_toplevel_consts_11_consts_12._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str__framework = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_framework", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -site_toplevel_consts_11_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_environ._ascii.ob_base, - &_Py_ID(get), - & const_str_sys._ascii.ob_base, - & const_str_platform._ascii.ob_base, - &_Py_ID(name), - & const_str__framework._ascii.ob_base, - & const_str_version_info._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str__getuserbase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_getuserbase", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[181]; - } -site_toplevel_consts_11_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 180, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0f\x11\x8f\x7a\x89\x7a\x8f\x7e\x89\x7e\xd0\x1e\x2e\xb0\x04\xd3\x0f\x35\x80\x48\xd9\x07\x0f\xd8\x0f\x17\x88\x0f\xf4\x06\x00\x08\x0b\x87\x7c\x81\x7c\xd0\x17\x38\xd1\x07\x38\xd8\x0f\x13\xf2\x04\x01\x05\x37\xf4\x06\x00\x08\x0a\x87\x77\x81\x77\x90\x24\x82\x7f\xdc\x0f\x11\x8f\x7a\x89\x7a\x8f\x7e\x89\x7e\x98\x69\xd3\x0f\x28\xd2\x0f\x2f\xa8\x43\x88\x04\xd9\x0f\x17\x98\x04\x98\x68\xd3\x0f\x27\xd0\x08\x27\xe4\x07\x0a\x87\x7c\x81\x7c\x90\x78\xd2\x07\x1f\xa4\x43\xa7\x4e\xa2\x4e\xd9\x0f\x17\x98\x03\x98\x59\xac\x03\xaf\x0e\xa9\x0e\xd8\x18\x1f\xa4\x23\xd7\x22\x32\xd1\x22\x32\xb0\x32\xb0\x41\xd0\x22\x36\xd1\x18\x36\xf3\x03\x01\x10\x38\xf0\x00\x01\x09\x38\xf1\x06\x00\x0c\x14\x90\x43\x98\x18\xd3\x0b\x22\xd0\x04\x22", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_env_base = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "env_base", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -site_toplevel_consts_11_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_env_base._ascii.ob_base, - & const_str_joinuser._ascii.ob_base, - &_Py_ID(base), - }, - }, -}; -static - struct _PyCode_DEF(422) -site_toplevel_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 211, - }, - .co_consts = & site_toplevel_consts_11_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_11_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 9, - .co_firstlineno = 285, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 686, - .co_localsplusnames = & site_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str__getuserbase._ascii.ob_base, - .co_qualname = & const_str__getuserbase._ascii.ob_base, - .co_linetable = & site_toplevel_consts_11_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x64\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x00\x7c\x00\x72\x02\x7c\x00\x53\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x76\x00\x72\x01\x79\x00\x64\x03\x84\x00\x7d\x01\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x6b\x28\x00\x00\x72\x2c\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\xab\x01\x00\x00\x00\x00\x00\x00\x78\x01\x73\x02\x01\x00\x64\x06\x7d\x02\x02\x00\x7c\x01\x7c\x02\x64\x07\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x6b\x28\x00\x00\x72\x3d\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x2d\x02\x00\x7c\x01\x64\x06\x64\x09\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0a\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x64\x0b\x1a\x00\x7a\x06\x00\x00\xab\x04\x00\x00\x00\x00\x00\x00\x53\x00\x02\x00\x7c\x01\x64\x06\x64\x0c\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -site_toplevel_consts_12_consts_4 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\\Python", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -site_toplevel_consts_12_consts_5 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\\site-packages", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -site_toplevel_consts_12_consts_7 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "/lib/python/site-packages", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -site_toplevel_consts_12_consts_8 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "/lib/python", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -site_toplevel_consts_12_consts_11 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "/site-packages", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[12]; - }_object; - } -site_toplevel_consts_12_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 12, - }, - .ob_item = { - Py_None, - &_Py_ID(nt), - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - &_Py_STR(empty), - & site_toplevel_consts_12_consts_4._ascii.ob_base, - & site_toplevel_consts_12_consts_5._ascii.ob_base, - & const_str_darwin._ascii.ob_base, - & site_toplevel_consts_12_consts_7._ascii.ob_base, - & site_toplevel_consts_12_consts_8._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - & site_toplevel_consts_12_consts_11._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_winver = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "winver", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -site_toplevel_consts_12_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - & const_str_version_info._ascii.ob_base, - & const_str_os._ascii.ob_base, - &_Py_ID(name), - & const_str_winver._ascii.ob_base, - &_Py_ID(replace), - & const_str_platform._ascii.ob_base, - & const_str__framework._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str__get_path = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_path", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[131]; - } -site_toplevel_consts_12_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 130, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x0e\x11\xd7\x0e\x1e\xd1\x0e\x1e\x80\x47\xe4\x07\x09\x87\x77\x81\x77\x90\x24\x82\x7f\xdc\x14\x17\x97\x4a\x91\x4a\xd7\x14\x26\xd1\x14\x26\xa0\x73\xa8\x42\xd3\x14\x2f\x88\x09\xd8\x12\x1a\x90\x1a\x98\x38\xa0\x49\xa0\x3b\xa8\x6f\xd0\x0f\x3e\xd0\x08\x3e\xe4\x07\x0a\x87\x7c\x81\x7c\x90\x78\xd2\x07\x1f\xa4\x43\xa7\x4e\xa2\x4e\xd8\x12\x1a\x90\x1a\xd0\x1b\x34\xd0\x0f\x35\xd0\x08\x35\xe0\x0e\x16\x88\x5a\x90\x7b\xa0\x37\xa8\x31\xa1\x3a\xa0\x2c\xa8\x61\xb0\x07\xb8\x01\xb1\x0a\xa8\x7c\xb8\x3e\xd0\x0b\x4a\xd0\x04\x4a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_userbase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "userbase", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_ver_nodot = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ver_nodot", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -site_toplevel_consts_12_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_userbase._ascii.ob_base, - &_Py_ID(version), - & const_str_ver_nodot._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(266) -site_toplevel_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 133, - }, - .co_consts = & site_toplevel_consts_12_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 309, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 687, - .co_localsplusnames = & site_toplevel_consts_12_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str__get_path._ascii.ob_base, - .co_qualname = & const_str__get_path._ascii.ob_base, - .co_linetable = & site_toplevel_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x6b\x28\x00\x00\x72\x28\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x64\x03\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x00\x9b\x00\x64\x04\x7c\x02\x9b\x00\x64\x05\x9d\x04\x53\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\x6b\x28\x00\x00\x72\x15\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x05\x7c\x00\x9b\x00\x64\x07\x9d\x02\x53\x00\x7c\x00\x9b\x00\x64\x08\x7c\x01\x64\x09\x19\x00\x00\x00\x9b\x00\x64\x02\x7c\x01\x64\x0a\x19\x00\x00\x00\x9b\x00\x64\x0b\x9d\x06\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[204]; - } -site_toplevel_consts_13_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 203, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x73\x20\x74\x68\x65\x20\x60\x75\x73\x65\x72\x20\x62\x61\x73\x65\x60\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x70\x61\x74\x68\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x60\x75\x73\x65\x72\x20\x62\x61\x73\x65\x60\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x63\x61\x6e\x20\x62\x65\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x73\x74\x6f\x72\x65\x20\x64\x61\x74\x61\x2e\x20\x49\x66\x20\x74\x68\x65\x20\x67\x6c\x6f\x62\x61\x6c\x0a\x20\x20\x20\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x60\x60\x55\x53\x45\x52\x5f\x42\x41\x53\x45\x60\x60\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64\x20\x79\x65\x74\x2c\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x69\x6c\x6c\x20\x61\x6c\x73\x6f\x20\x73\x65\x74\x0a\x20\x20\x20\x20\x69\x74\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -site_toplevel_consts_13_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & site_toplevel_consts_13_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_USER_BASE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "USER_BASE", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_13_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_USER_BASE._ascii.ob_base, - & const_str__getuserbase._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_getuserbase = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getuserbase", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -site_toplevel_consts_13_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x10\x00\x08\x11\xd0\x07\x18\xdc\x14\x20\x93\x4e\x88\x09\xdc\x0b\x14\xd0\x04\x14", -}; -static - struct _PyCode_DEF(46) -site_toplevel_consts_13 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 23, - }, - .co_consts = & site_toplevel_consts_13_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_13_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 322, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 688, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_getuserbase._ascii.ob_base, - .co_qualname = & const_str_getuserbase._ascii.ob_base, - .co_linetable = & site_toplevel_consts_13_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0a\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x61\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[163]; - } -site_toplevel_consts_14_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 162, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x73\x20\x74\x68\x65\x20\x75\x73\x65\x72\x2d\x73\x70\x65\x63\x69\x66\x69\x63\x20\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x70\x61\x74\x68\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x74\x68\x65\x20\x67\x6c\x6f\x62\x61\x6c\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x20\x60\x60\x55\x53\x45\x52\x5f\x53\x49\x54\x45\x60\x60\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64\x20\x79\x65\x74\x2c\x20\x74\x68\x69\x73\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x69\x6c\x6c\x20\x61\x6c\x73\x6f\x20\x73\x65\x74\x20\x69\x74\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_14_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & site_toplevel_consts_14_consts_0._ascii.ob_base, - Py_False, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_USER_SITE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "USER_SITE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str_ENABLE_USER_SITE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ENABLE_USER_SITE", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -site_toplevel_consts_14_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_getuserbase._ascii.ob_base, - & const_str_USER_SITE._ascii.ob_base, - & const_str_ENABLE_USER_SITE._ascii.ob_base, - & const_str__get_path._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -const_str_getusersitepackages = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getusersitepackages", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[56]; - } -site_toplevel_consts_14_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 55, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0e\x00\x10\x1b\x8b\x7d\x80\x48\xe4\x07\x10\xd0\x07\x18\xd8\x0b\x13\xd0\x0b\x1b\xd8\x1f\x24\xd0\x0c\x1c\xf4\x08\x00\x0c\x15\xd0\x04\x14\xf4\x05\x00\x19\x22\xa0\x28\xd3\x18\x2b\x88\x49\xe4\x0b\x14\xd0\x04\x14", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -site_toplevel_consts_14_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_userbase._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(88) -site_toplevel_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 44, - }, - .co_consts = & site_toplevel_consts_14_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_14_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 335, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 689, - .co_localsplusnames = & site_toplevel_consts_14_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_getusersitepackages._ascii.ob_base, - .co_qualname = & const_str_getusersitepackages._ascii.ob_base, - .co_linetable = & site_toplevel_consts_14_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x80\x15\x7c\x00\x80\x08\x64\x01\x61\x02\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x61\x01\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[135]; - } -site_toplevel_consts_15_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 134, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x64\x64\x20\x61\x20\x70\x65\x72\x20\x75\x73\x65\x72\x20\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x20\x74\x6f\x20\x73\x79\x73\x2e\x70\x61\x74\x68\x0a\x0a\x20\x20\x20\x20\x45\x61\x63\x68\x20\x75\x73\x65\x72\x20\x68\x61\x73\x20\x69\x74\x73\x20\x6f\x77\x6e\x20\x70\x79\x74\x68\x6f\x6e\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x77\x69\x74\x68\x20\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x20\x69\x6e\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x68\x6f\x6d\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[30]; - } -site_toplevel_consts_15_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 29, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Processing user site-packages", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_15_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & site_toplevel_consts_15_consts_0._ascii.ob_base, - & site_toplevel_consts_15_consts_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -site_toplevel_consts_15_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str__trace._ascii.ob_base, - & const_str_getusersitepackages._ascii.ob_base, - & const_str_ENABLE_USER_SITE._ascii.ob_base, - & const_str_os._ascii.ob_base, - &_Py_ID(path), - & const_str_isdir._ascii.ob_base, - & const_str_addsitedir._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -const_str_addusersitepackages = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "addusersitepackages", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[56]; - } -site_toplevel_consts_15_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 55, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x10\x00\x05\x0b\xd0\x0b\x2a\xd4\x04\x2b\xdc\x10\x23\xd3\x10\x25\x80\x49\xe5\x07\x17\x9c\x42\x9f\x47\x99\x47\x9f\x4d\x99\x4d\xa8\x29\xd4\x1c\x34\xdc\x08\x12\x90\x39\x98\x6b\xd4\x08\x2a\xd8\x0b\x16\xd0\x04\x16", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_user_site = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "user_site", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_15_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_known_paths._ascii.ob_base, - & const_str_user_site._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(146) -site_toplevel_consts_15 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 73, - }, - .co_consts = & site_toplevel_consts_15_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_15_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 352, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 690, - .co_localsplusnames = & site_toplevel_consts_15_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_addusersitepackages._ascii.ob_base, - .co_qualname = & const_str_addusersitepackages._ascii.ob_base, - .co_linetable = & site_toplevel_consts_15_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x72\x2b\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x72\x0c\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[287]; - } -site_toplevel_consts_16_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 286, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x73\x20\x61\x20\x6c\x69\x73\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x69\x6e\x67\x20\x61\x6c\x6c\x20\x67\x6c\x6f\x62\x61\x6c\x20\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x2e\x0a\x0a\x20\x20\x20\x20\x46\x6f\x72\x20\x65\x61\x63\x68\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x70\x72\x65\x73\x65\x6e\x74\x20\x69\x6e\x20\x60\x60\x70\x72\x65\x66\x69\x78\x65\x73\x60\x60\x20\x28\x6f\x72\x20\x74\x68\x65\x20\x67\x6c\x6f\x62\x61\x6c\x20\x60\x60\x50\x52\x45\x46\x49\x58\x45\x53\x60\x60\x29\x2c\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x69\x6c\x6c\x20\x66\x69\x6e\x64\x20\x69\x74\x73\x20\x60\x73\x69\x74\x65\x2d\x70\x61\x63\x6b\x61\x67\x65\x73\x60\x20\x73\x75\x62\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x64\x65\x70\x65\x6e\x64\x69\x6e\x67\x20\x6f\x6e\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x73\x79\x73\x74\x65\x6d\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x2c\x20\x61\x6e\x64\x20\x77\x69\x6c\x6c\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x66\x20\x66\x75\x6c\x6c\x20\x70\x61\x74\x68\x73\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_lib = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "lib", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -site_toplevel_consts_16_consts_4 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "python%d.%d", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -site_toplevel_consts_16_consts_6 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "site-packages", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_Lib = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Lib", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -site_toplevel_consts_16_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & site_toplevel_consts_16_consts_0._ascii.ob_base, - Py_None, - (PyObject *)&_Py_SINGLETON(strings).ascii[47], - & const_str_lib._ascii.ob_base, - & site_toplevel_consts_16_consts_4._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - & site_toplevel_consts_16_consts_6._ascii.ob_base, - & const_str_Lib._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_PREFIXES = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "PREFIXES", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_platlibdir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "platlibdir", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -site_toplevel_consts_16_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & const_str_set._ascii.ob_base, - & const_str_PREFIXES._ascii.ob_base, - &_Py_ID(add), - & const_str_os._ascii.ob_base, - &_Py_ID(sep), - & const_str_sys._ascii.ob_base, - & const_str_platlibdir._ascii.ob_base, - &_Py_ID(append), - &_Py_ID(path), - &_Py_ID(join), - & const_str_version_info._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_getsitepackages = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "getsitepackages", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[236]; - } -site_toplevel_consts_16_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 235, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x0e\x00\x14\x16\x80\x4c\xdc\x0b\x0e\x8b\x35\x80\x44\xe0\x07\x0f\xd0\x07\x17\xdc\x13\x1b\x88\x08\xe3\x12\x1a\x88\x06\xd9\x0f\x15\x98\x16\xa0\x34\x99\x1e\xd8\x0c\x14\xd8\x08\x0c\x8f\x08\x89\x08\x90\x16\xd4\x08\x18\xe4\x0b\x0d\x8f\x36\x89\x36\x90\x53\x8a\x3d\xdc\x17\x1a\x97\x7e\x91\x7e\xd0\x16\x26\x88\x47\xdc\x0f\x12\x8f\x7e\x89\x7e\xa0\x15\xd2\x0f\x26\xd8\x10\x17\x97\x0e\x91\x0e\x98\x75\xd4\x10\x25\xe3\x1a\x21\x90\x06\xdc\x17\x19\x97\x77\x91\x77\x97\x7c\x91\x7c\xa0\x46\xa8\x46\xd8\x24\x31\xb4\x43\xd7\x34\x44\xd1\x34\x44\xc0\x52\xc0\x61\xd0\x34\x48\xd1\x24\x48\xd8\x24\x33\xf3\x05\x02\x18\x35\x90\x04\xf0\x06\x00\x11\x1d\xd7\x10\x23\xd1\x10\x23\xa0\x44\xd5\x10\x29\xf1\x09\x00\x1b\x22\xf0\x0c\x00\x0d\x19\xd7\x0c\x1f\xd1\x0c\x1f\xa0\x06\xd4\x0c\x27\xd8\x0c\x18\xd7\x0c\x1f\xd1\x0c\x1f\xa4\x02\xa7\x07\xa1\x07\xa7\x0c\xa1\x0c\xa8\x56\xb0\x55\xb8\x4f\xd3\x20\x4c\xd5\x0c\x4d\xf0\x23\x00\x13\x1b\xf0\x24\x00\x0c\x18\xd0\x04\x17", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_prefixes = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "prefixes", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_sitepackages = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "sitepackages", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_libdirs = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "libdirs", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_libdir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "libdir", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -site_toplevel_consts_16_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_prefixes._ascii.ob_base, - & const_str_sitepackages._ascii.ob_base, - & const_str_seen._ascii.ob_base, - & const_str_prefix._ascii.ob_base, - & const_str_libdirs._ascii.ob_base, - & const_str_libdir._ascii.ob_base, - &_Py_ID(path), - }, - }, -}; -static - struct _PyCode_DEF(540) -site_toplevel_consts_16 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 270, - }, - .co_consts = & site_toplevel_consts_16_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_16_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 17 + FRAME_SPECIALS_SIZE, - .co_stacksize = 10, - .co_firstlineno = 367, - .co_nlocalsplus = 7, - .co_nlocals = 7, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 691, - .co_localsplusnames = & site_toplevel_consts_16_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_getsitepackages._ascii.ob_base, - .co_qualname = & const_str_getsitepackages._ascii.ob_base, - .co_linetable = & site_toplevel_consts_16_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x67\x00\x7d\x01\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x00\x80\x06\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x00\x7c\x00\x44\x00\x5d\xf2\x00\x00\x7d\x03\x7c\x03\x72\x04\x7c\x03\x7c\x02\x76\x00\x72\x01\x8c\x0a\x7c\x02\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x6b\x28\x00\x00\x72\x84\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x01\x7d\x04\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x6b\x37\x00\x00\x72\x11\x7c\x04\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x04\x44\x00\x5d\x49\x00\x00\x7d\x05\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x05\x64\x04\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x64\x05\x1a\x00\x7a\x06\x00\x00\x64\x06\xab\x04\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x01\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x4b\x04\x00\x8c\xb2\x7c\x01\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x64\x07\x64\x06\xab\x03\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\xf4\x04\x00\x7c\x01\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[30]; - } -site_toplevel_consts_17_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 29, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Add site-packages to sys.path", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -site_toplevel_consts_17_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Processing global site-packages", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_17_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & site_toplevel_consts_17_consts_0._ascii.ob_base, - & site_toplevel_consts_17_consts_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -site_toplevel_consts_17_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str__trace._ascii.ob_base, - & const_str_getsitepackages._ascii.ob_base, - & const_str_os._ascii.ob_base, - &_Py_ID(path), - & const_str_isdir._ascii.ob_base, - & const_str_addsitedir._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str_addsitepackages = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "addsitepackages", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[61]; - } -site_toplevel_consts_17_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 60, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x04\x0a\xd0\x0b\x2c\xd4\x04\x2d\xdc\x13\x22\xa0\x38\xd6\x13\x2c\x88\x07\xdc\x0b\x0d\x8f\x37\x89\x37\x8f\x3d\x89\x3d\x98\x17\xd5\x0b\x21\xdc\x0c\x16\x90\x77\xa0\x0b\xd5\x0c\x2c\xf0\x05\x00\x14\x2d\xf0\x08\x00\x0c\x17\xd0\x04\x16", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -site_toplevel_consts_17_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_known_paths._ascii.ob_base, - & const_str_prefixes._ascii.ob_base, - & const_str_sitedir._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(148) -site_toplevel_consts_17 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 74, - }, - .co_consts = & site_toplevel_consts_17_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_17_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 8 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 400, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 692, - .co_localsplusnames = & site_toplevel_consts_17_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_addsitepackages._ascii.ob_base, - .co_qualname = & const_str_addsitepackages._ascii.ob_base, - .co_linetable = & site_toplevel_consts_17_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x2e\x00\x00\x7d\x02\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x73\x01\x8c\x23\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x30\x04\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[174]; - } -site_toplevel_consts_18_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 173, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x44\x65\x66\x69\x6e\x65\x20\x6e\x65\x77\x20\x62\x75\x69\x6c\x74\x69\x6e\x73\x20\x27\x71\x75\x69\x74\x27\x20\x61\x6e\x64\x20\x27\x65\x78\x69\x74\x27\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x65\x73\x65\x20\x61\x72\x65\x20\x6f\x62\x6a\x65\x63\x74\x73\x20\x77\x68\x69\x63\x68\x20\x6d\x61\x6b\x65\x20\x74\x68\x65\x20\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x65\x78\x69\x74\x20\x77\x68\x65\x6e\x20\x63\x61\x6c\x6c\x65\x64\x2e\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x72\x65\x70\x72\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x6f\x62\x6a\x65\x63\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x61\x20\x68\x69\x6e\x74\x20\x61\x74\x20\x68\x6f\x77\x20\x69\x74\x20\x77\x6f\x72\x6b\x73\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -site_toplevel_consts_18_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Ctrl-Z plus Return", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -site_toplevel_consts_18_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Ctrl-D (i.e. EOF)", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_quit = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "quit", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_exit = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "exit", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -site_toplevel_consts_18_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & site_toplevel_consts_18_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[92], - & site_toplevel_consts_18_consts_2._ascii.ob_base, - & site_toplevel_consts_18_consts_3._ascii.ob_base, - & const_str_quit._ascii.ob_base, - & const_str_exit._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str__sitebuiltins = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_sitebuiltins", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -site_toplevel_consts_18_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - &_Py_ID(sep), - & const_str__sitebuiltins._ascii.ob_base, - & const_str_Quitter._ascii.ob_base, - &_Py_ID(builtins), - & const_str_quit._ascii.ob_base, - & const_str_exit._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_setquit = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "setquit", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[66]; - } -site_toplevel_consts_18_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 65, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x0e\x00\x08\x0a\x87\x76\x81\x76\x90\x14\x82\x7e\xd8\x0e\x22\x89\x03\xe0\x0e\x21\x88\x03\xe4\x14\x21\xd7\x14\x29\xd1\x14\x29\xa8\x26\xb0\x23\xd3\x14\x36\x84\x48\x84\x4d\xdc\x14\x21\xd7\x14\x29\xd1\x14\x29\xa8\x26\xb0\x23\xd3\x14\x36\x84\x48\x85\x4d", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -site_toplevel_consts_18_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_eof._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(176) -site_toplevel_consts_18 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 88, - }, - .co_consts = & site_toplevel_consts_18_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_18_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 409, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 693, - .co_localsplusnames = & site_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_setquit._ascii.ob_base, - .co_qualname = & const_str_setquit._ascii.ob_base, - .co_linetable = & site_toplevel_consts_18_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x6b\x28\x00\x00\x72\x03\x64\x02\x7d\x00\x6e\x02\x64\x03\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x06\x00\x00\x00\x00\x00\x00\x00\x00\x79\x06", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[42]; - } -site_toplevel_consts_19_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 41, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Set 'copyright' and 'credits' in builtins", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_copyright = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "copyright", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_credits = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "credits", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[192]; - } -site_toplevel_consts_19_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 191, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x20\x20\x20\x54\x68\x61\x6e\x6b\x73\x20\x74\x6f\x20\x43\x57\x49\x2c\x20\x43\x4e\x52\x49\x2c\x20\x42\x65\x4f\x70\x65\x6e\x2c\x20\x5a\x6f\x70\x65\x20\x43\x6f\x72\x70\x6f\x72\x61\x74\x69\x6f\x6e\x2c\x20\x74\x68\x65\x20\x50\x79\x74\x68\x6f\x6e\x20\x53\x6f\x66\x74\x77\x61\x72\x65\x0a\x20\x20\x20\x20\x46\x6f\x75\x6e\x64\x61\x74\x69\x6f\x6e\x2c\x20\x61\x6e\x64\x20\x61\x20\x63\x61\x73\x74\x20\x6f\x66\x20\x74\x68\x6f\x75\x73\x61\x6e\x64\x73\x20\x66\x6f\x72\x20\x73\x75\x70\x70\x6f\x72\x74\x69\x6e\x67\x20\x50\x79\x74\x68\x6f\x6e\x0a\x20\x20\x20\x20\x64\x65\x76\x65\x6c\x6f\x70\x6d\x65\x6e\x74\x2e\x20\x20\x53\x65\x65\x20\x77\x77\x77\x2e\x70\x79\x74\x68\x6f\x6e\x2e\x6f\x72\x67\x20\x66\x6f\x72\x20\x6d\x6f\x72\x65\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x2e", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -site_toplevel_consts_19_consts_7 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LICENSE.txt", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_LICENSE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LICENSE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_license = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "license", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[40]; - } -site_toplevel_consts_19_consts_10 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 39, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "See https://www.python.org/psf/license/", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -site_toplevel_consts_19_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & site_toplevel_consts_19_consts_0._ascii.ob_base, - & const_str_copyright._ascii.ob_base, - & const_str_credits._ascii.ob_base, - & site_toplevel_consts_19_consts_3._ascii.ob_base, - & const_str__stdlib_dir._ascii.ob_base, - Py_None, - &_Py_ID(__file__), - & site_toplevel_consts_19_consts_7._ascii.ob_base, - & const_str_LICENSE._ascii.ob_base, - & const_str_license._ascii.ob_base, - & site_toplevel_consts_19_consts_10._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[17]; - }_object; - } -site_toplevel_consts_19_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 17, - }, - .ob_item = { - & const_str__sitebuiltins._ascii.ob_base, - & const_str__Printer._ascii.ob_base, - & const_str_sys._ascii.ob_base, - & const_str_copyright._ascii.ob_base, - &_Py_ID(builtins), - & const_str_credits._ascii.ob_base, - &_Py_ID(getattr), - & const_str_hasattr._ascii.ob_base, - & const_str_os._ascii.ob_base, - &_Py_ID(path), - & const_str_dirname._ascii.ob_base, - &_Py_ID(__file__), - &_Py_ID(extend), - &_Py_ID(join), - & const_str_pardir._ascii.ob_base, - & const_str_curdir._ascii.ob_base, - & const_str_license._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_setcopyright = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "setcopyright", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[207]; - } -site_toplevel_consts_19_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 206, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x19\x26\xd7\x19\x2f\xd1\x19\x2f\xb0\x0b\xbc\x53\xbf\x5d\xb9\x5d\xd3\x19\x4b\x84\x48\xd4\x04\x16\xdc\x17\x24\xd7\x17\x2d\xd1\x17\x2d\xa8\x69\xf0\x00\x03\x3a\x3e\xf3\x00\x03\x18\x3f\x84\x48\xd4\x04\x14\xf0\x08\x00\x13\x15\x90\x62\x88\x34\x80\x45\xf4\x06\x00\x0c\x13\x94\x33\x98\x0d\xa0\x74\xd3\x0b\x2c\x80\x44\xd9\x0b\x0f\x94\x47\x9c\x42\xa0\x0a\xd4\x14\x2b\xdc\x0f\x11\x8f\x77\x89\x77\x8f\x7f\x89\x7f\x9c\x72\x9f\x7b\x99\x7b\xd3\x0f\x2b\x88\x04\xd9\x07\x0b\xd8\x08\x0d\x8f\x0c\x89\x0c\x90\x6d\xa0\x59\xd0\x15\x2f\xd4\x08\x30\xd8\x08\x0c\x8f\x0b\x89\x0b\x94\x52\x97\x57\x91\x57\x97\x5c\x91\x5c\xa0\x24\xac\x02\xaf\x09\xa9\x09\xd3\x15\x32\xb0\x44\xbc\x22\xbf\x29\xb9\x29\xd0\x14\x44\xd4\x08\x45\xdc\x17\x24\xd7\x17\x2d\xd1\x17\x2d\xd8\x08\x11\xd8\x08\x31\xd8\x08\x0d\x88\x74\xf3\x07\x03\x18\x15\x84\x48\xd5\x04\x14", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_here = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "here", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -site_toplevel_consts_19_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_files._ascii.ob_base, - & const_str_dirs._ascii.ob_base, - & const_str_here._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(588) -site_toplevel_consts_19 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 294, - }, - .co_consts = & site_toplevel_consts_19_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_19_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 425, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 694, - .co_localsplusnames = & site_toplevel_consts_19_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_setcopyright._ascii.ob_base, - .co_qualname = & const_str_setcopyright._ascii.ob_base, - .co_linetable = & site_toplevel_consts_19_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x64\x03\xab\x02\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x67\x00\x7d\x01\x7d\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x64\x05\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x02\x73\x3d\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\xab\x02\x00\x00\x00\x00\x00\x00\x72\x2d\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x02\x72\x61\x7c\x00\x6a\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x07\x64\x08\x67\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x6a\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7c\x02\x74\x10\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\x64\x0a\x7c\x00\x7c\x01\xab\x04\x00\x00\x00\x00\x00\x00\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x10\x00\x00\x00\x00\x00\x00\x00\x00\x79\x05", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -site_toplevel_consts_20_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str__sitebuiltins._ascii.ob_base, - & const_str__Helper._ascii.ob_base, - &_Py_ID(builtins), - & const_str_help._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_sethelper = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "sethelper", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -site_toplevel_consts_20_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x14\x21\xd7\x14\x29\xd1\x14\x29\xd3\x14\x2b\x84\x48\x85\x4d", -}; -static - struct _PyCode_DEF(62) -site_toplevel_consts_20 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 31, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_20_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 447, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 695, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_sethelper._ascii.ob_base, - .co_qualname = & const_str_sethelper._ascii.ob_base, - .co_linetable = & site_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[363]; - } -site_toplevel_consts_21_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 362, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x45\x6e\x61\x62\x6c\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x72\x65\x61\x64\x6c\x69\x6e\x65\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x20\x6f\x6e\x20\x69\x6e\x74\x65\x72\x61\x63\x74\x69\x76\x65\x20\x70\x72\x6f\x6d\x70\x74\x73\x2c\x20\x62\x79\x0a\x20\x20\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x69\x6e\x67\x20\x61\x20\x73\x79\x73\x2e\x5f\x5f\x69\x6e\x74\x65\x72\x61\x63\x74\x69\x76\x65\x68\x6f\x6f\x6b\x5f\x5f\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x74\x68\x65\x20\x72\x65\x61\x64\x6c\x69\x6e\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x63\x61\x6e\x20\x62\x65\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x2c\x20\x74\x68\x65\x20\x68\x6f\x6f\x6b\x20\x77\x69\x6c\x6c\x20\x73\x65\x74\x20\x74\x68\x65\x20\x54\x61\x62\x20\x6b\x65\x79\x0a\x20\x20\x20\x20\x61\x73\x20\x63\x6f\x6d\x70\x6c\x65\x74\x69\x6f\x6e\x20\x6b\x65\x79\x20\x61\x6e\x64\x20\x72\x65\x67\x69\x73\x74\x65\x72\x20\x7e\x2f\x2e\x70\x79\x74\x68\x6f\x6e\x5f\x68\x69\x73\x74\x6f\x72\x79\x20\x61\x73\x20\x68\x69\x73\x74\x6f\x72\x79\x20\x66\x69\x6c\x65\x2e\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x63\x61\x6e\x20\x62\x65\x20\x6f\x76\x65\x72\x72\x69\x64\x64\x65\x6e\x20\x69\x6e\x20\x74\x68\x65\x20\x73\x69\x74\x65\x63\x75\x73\x74\x6f\x6d\x69\x7a\x65\x20\x6f\x72\x20\x75\x73\x65\x72\x63\x75\x73\x74\x6f\x6d\x69\x7a\x65\x20\x6d\x6f\x64\x75\x6c\x65\x2c\x0a\x20\x20\x20\x20\x6f\x72\x20\x69\x6e\x20\x61\x20\x50\x59\x54\x48\x4f\x4e\x53\x54\x41\x52\x54\x55\x50\x20\x66\x69\x6c\x65\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_libedit = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "libedit", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -site_toplevel_consts_21_consts_1_consts_5 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bind ^I rl_complete", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -site_toplevel_consts_21_consts_1_consts_6 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "tab: complete", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -site_toplevel_consts_21_consts_1_consts_8 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = ".python_history", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -const_str_write_history_file = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "write_history_file", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_21_consts_1_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_write_history_file._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_write_history = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "write_history", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[68]; - } -site_toplevel_consts_21_consts_1_consts_9_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 67, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "enablerlcompleter..register_readline..write_history", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[43]; - } -site_toplevel_consts_21_consts_1_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 42, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xf0\x02\x05\x11\x19\xd8\x14\x1c\xd7\x14\x2f\xd1\x14\x2f\xb0\x07\xd5\x14\x38\xf8\xdc\x17\x1e\xf2\x00\x03\x11\x19\xf1\x06\x00\x15\x19\xf0\x07\x03\x11\x19\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[13]; - } -site_toplevel_consts_21_consts_1_consts_9_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 12, - }, - .ob_shash = -1, - .ob_sval = "\x83\x11\x15\x00\x95\x09\x21\x03\xa0\x01\x21\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_history = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "history", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_21_consts_1_consts_9_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_history._ascii.ob_base, - &_Py_ID(readline), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -site_toplevel_consts_21_consts_1_consts_9_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = "\x80\x80", -}; -static - struct _PyCode_DEF(72) -site_toplevel_consts_21_consts_1_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 36, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_21_consts_1_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = & site_toplevel_consts_21_consts_1_consts_9_exceptiontable.ob_base.ob_base, - .co_flags = 19, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 497, - .co_nlocalsplus = 2, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 2, - .co_version = 696, - .co_localsplusnames = & site_toplevel_consts_21_consts_1_consts_9_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & site_toplevel_consts_21_consts_1_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_write_history._ascii.ob_base, - .co_qualname = & site_toplevel_consts_21_consts_1_consts_9_qualname._ascii.ob_base, - .co_linetable = & site_toplevel_consts_21_consts_1_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x02\x97\x00\x09\x00\x89\x01\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -site_toplevel_consts_21_consts_1_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - &_Py_ID(__doc__), - &_Py_STR(empty), - & const_str_libedit._ascii.ob_base, - & site_toplevel_consts_21_consts_1_consts_5._ascii.ob_base, - & site_toplevel_consts_21_consts_1_consts_6._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[126], - & site_toplevel_consts_21_consts_1_consts_8._ascii.ob_base, - & site_toplevel_consts_21_consts_1_consts_9.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_atexit = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "atexit", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_rlcompleter = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "rlcompleter", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_parse_and_bind = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "parse_and_bind", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_read_init_file = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "read_init_file", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -const_str_get_current_history_length = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "get_current_history_length", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str_read_history_file = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "read_history_file", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -site_toplevel_consts_21_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - & const_str_atexit._ascii.ob_base, - &_Py_ID(readline), - & const_str_rlcompleter._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - &_Py_ID(getattr), - & const_str_parse_and_bind._ascii.ob_base, - & const_str_read_init_file._ascii.ob_base, - & const_str_OSError._ascii.ob_base, - & const_str_get_current_history_length._ascii.ob_base, - & const_str_os._ascii.ob_base, - &_Py_ID(path), - &_Py_ID(join), - & const_str_expanduser._ascii.ob_base, - & const_str_read_history_file._ascii.ob_base, - & const_str_register._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str_register_readline = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "register_readline", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[45]; - } -site_toplevel_consts_21_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 44, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "enablerlcompleter..register_readline", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[255]; - } -site_toplevel_consts_21_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 254, - }, - .ob_shash = -1, - .ob_sval = "\xf9\x80\x00\xdb\x08\x15\xf0\x02\x04\x09\x13\xdb\x0c\x1b\xdb\x0c\x1e\xf4\x0c\x00\x18\x1f\x98\x78\xa8\x19\xb0\x42\xd3\x17\x37\x88\x0c\xd8\x0b\x17\xd0\x0b\x23\xa8\x09\xb0\x5c\xd1\x28\x41\xd8\x0c\x14\xd7\x0c\x23\xd1\x0c\x23\xd0\x24\x39\xd5\x0c\x3a\xe0\x0c\x14\xd7\x0c\x23\xd1\x0c\x23\xa0\x4f\xd4\x0c\x34\xf0\x04\x07\x09\x11\xd8\x0c\x14\xd7\x0c\x23\xd1\x0c\x23\xd4\x0c\x25\xf0\x10\x00\x0c\x14\xd7\x0b\x2e\xd1\x0b\x2e\xd3\x0b\x30\xb0\x41\xd2\x0b\x35\xf4\x0c\x00\x17\x19\x97\x67\x91\x67\x97\x6c\x91\x6c\xa4\x32\xa7\x37\xa1\x37\xd7\x23\x35\xd1\x23\x35\xb0\x63\xd3\x23\x3a\xd8\x23\x34\xf3\x03\x01\x17\x36\x88\x47\xf0\x04\x03\x0d\x15\xd8\x10\x18\xd7\x10\x2a\xd1\x10\x2a\xa8\x37\xd4\x10\x33\xf5\x08\x06\x0d\x19\xf0\x10\x00\x0d\x13\x8f\x4f\x89\x4f\x98\x4d\xd5\x0c\x2a\xf0\x2b\x00\x0c\x36\xf8\xf4\x29\x00\x10\x1b\xf2\x00\x01\x09\x13\xd9\x0c\x12\xf0\x03\x01\x09\x13\xfb\xf4\x1a\x00\x10\x17\xf2\x00\x05\x09\x11\xf1\x0a\x00\x0d\x11\xf0\x0b\x05\x09\x11\xfb\xf4\x22\x00\x14\x1b\xf2\x00\x01\x0d\x15\xd9\x10\x14\xf0\x03\x01\x0d\x15\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[54]; - } -site_toplevel_consts_21_consts_1_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 53, - }, - .ob_shash = -1, - .ob_sval = "\x88\x08\x43\x12\x00\xc1\x07\x10\x43\x21\x00\xc2\x28\x11\x43\x30\x00\xc3\x12\x09\x43\x1e\x03\xc3\x1d\x01\x43\x1e\x03\xc3\x21\x09\x43\x2d\x03\xc3\x2c\x01\x43\x2d\x03\xc3\x30\x09\x43\x3c\x03\xc3\x3b\x01\x43\x3c\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_readline_doc = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "readline_doc", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -site_toplevel_consts_21_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_atexit._ascii.ob_base, - & const_str_rlcompleter._ascii.ob_base, - & const_str_readline_doc._ascii.ob_base, - & const_str_write_history._ascii.ob_base, - & const_str_history._ascii.ob_base, - &_Py_ID(readline), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[7]; - } -site_toplevel_consts_21_consts_1_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 6, - }, - .ob_shash = -1, - .ob_sval = " @@", -}; -static - struct _PyCode_DEF(510) -site_toplevel_consts_21_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 255, - }, - .co_consts = & site_toplevel_consts_21_consts_1_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_21_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = & site_toplevel_consts_21_consts_1_exceptiontable.ob_base.ob_base, - .co_flags = 19, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 459, - .co_nlocalsplus = 6, - .co_nlocals = 4, - .co_ncellvars = 2, - .co_nfreevars = 0, - .co_version = 697, - .co_localsplusnames = & site_toplevel_consts_21_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & site_toplevel_consts_21_consts_1_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_register_readline._ascii.ob_base, - .co_qualname = & site_toplevel_consts_21_consts_1_qualname._ascii.ob_base, - .co_linetable = & site_toplevel_consts_21_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x04\x87\x05\x97\x00\x64\x01\x64\x00\x6c\x00\x7d\x00\x09\x00\x64\x01\x64\x00\x6c\x01\x8a\x05\x64\x01\x64\x00\x6c\x02\x7d\x01\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x89\x05\x64\x02\x64\x03\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x02\x81\x16\x64\x04\x7c\x02\x76\x00\x72\x12\x89\x05\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x11\x89\x05\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x89\x05\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x89\x05\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x64\x01\x6b\x28\x00\x00\x72\x67\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x07\xab\x01\x00\x00\x00\x00\x00\x00\x64\x08\xab\x02\x00\x00\x00\x00\x00\x00\x8a\x04\x09\x00\x89\x05\x6a\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x04\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x88\x04\x88\x05\x66\x02\x64\x09\x84\x08\x7d\x03\x7c\x00\x6a\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x79\x00\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x00\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x8c\x95\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x8c\x42\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -site_toplevel_consts_21_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & site_toplevel_consts_21_consts_0._ascii.ob_base, - & site_toplevel_consts_21_consts_1.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -const_str___interactivehook__ = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "__interactivehook__", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_21_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - & const_str___interactivehook__._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str_enablerlcompleter = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "enablerlcompleter", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -site_toplevel_consts_21_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf2\x12\x2e\x05\x2b\xf0\x60\x01\x00\x1f\x30\x84\x43\xd5\x04\x1b", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -site_toplevel_consts_21_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_register_readline._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(32) -site_toplevel_consts_21 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 16, - }, - .co_consts = & site_toplevel_consts_21_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_21_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 450, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 698, - .co_localsplusnames = & site_toplevel_consts_21_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_enablerlcompleter._ascii.ob_base, - .co_qualname = & const_str_enablerlcompleter._ascii.ob_base, - .co_linetable = & site_toplevel_consts_21_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x84\x00\x7d\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -const_str___PYVENV_LAUNCHER__ = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "__PYVENV_LAUNCHER__", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -site_toplevel_consts_22_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pyvenv.cfg", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -site_toplevel_consts_22_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - &_Py_ID(path), - & const_str_isfile._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -site_toplevel_consts_22_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "venv..", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[47]; - } -site_toplevel_consts_22_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 46, - }, - .ob_shash = -1, - .ob_sval = "\xe8\x00\xf8\x80\x00\xf0\x00\x06\x09\x0a\xf1\x02\x03\x26\x0e\x98\x18\xf4\x08\x00\x10\x12\x8f\x77\x89\x77\x8f\x7e\x89\x7e\x98\x68\xd4\x0f\x27\xf4\x09\x00\x0d\x15\xf1\x00\x03\x26\x0e\xf9", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_conffile = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "conffile", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_22_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & importlib__bootstrap_external_toplevel_consts_6_localsplusnames_0._ascii.ob_base, - & const_str_conffile._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(94) -site_toplevel_consts_22_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 47, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_22_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = & _collections_abc_toplevel_consts_68_consts_7_exceptiontable.ob_base.ob_base, - .co_flags = 51, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 522, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 699, - .co_localsplusnames = & site_toplevel_consts_22_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_genexpr), - .co_qualname = & site_toplevel_consts_22_consts_4_qualname._ascii.ob_base, - .co_linetable = & site_toplevel_consts_22_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x4b\x00\x01\x00\x97\x00\x7c\x00\x5d\x25\x00\x00\x7d\x01\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x72\x04\x7c\x01\x96\x01\x97\x01\x01\x00\x8c\x27\x04\x00\x79\x00\xad\x03\x77\x01", - ._co_firsttraceable = 2, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -site_toplevel_consts_22_consts_9 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "include-system-site-packages", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_home = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "home", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -site_toplevel_consts_22_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - Py_None, - & const_str_darwin._ascii.ob_base, - & const_str___PYVENV_LAUNCHER__._ascii.ob_base, - & site_toplevel_consts_22_consts_3._ascii.ob_base, - & site_toplevel_consts_22_consts_4.ob_base.ob_base, - &_Py_ID(true), - &_Py_STR(utf_8), - & codecs_toplevel_consts_35_localsplusnames._object.ob_base.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[61], - & site_toplevel_consts_22_consts_9._ascii.ob_base, - & const_str_home._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_False, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__base_executable = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_base_executable", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_executable = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "executable", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__home = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_home", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_exec_prefix = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "exec_prefix", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[22]; - }_object; - } -site_toplevel_consts_22_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 22, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - & const_str_environ._ascii.ob_base, - & const_str_sys._ascii.ob_base, - & const_str_platform._ascii.ob_base, - & const_str__base_executable._ascii.ob_base, - & const_str_executable._ascii.ob_base, - &_Py_ID(path), - & const_str_dirname._ascii.ob_base, - & const_str_abspath._ascii.ob_base, - & const_str__home._ascii.ob_base, - &_Py_ID(next), - &_Py_ID(join), - &_Py_ID(open), - & const_str_partition._ascii.ob_base, - & const_str_strip._ascii.ob_base, - & const_str_lower._ascii.ob_base, - & const_str_prefix._ascii.ob_base, - & const_str_exec_prefix._ascii.ob_base, - & const_str_addsitepackages._ascii.ob_base, - & const_str_PREFIXES._ascii.ob_base, - & const_str_insert._ascii.ob_base, - & const_str_ENABLE_USER_SITE._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_venv = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "venv", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[433]; - } -site_toplevel_consts_22_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 432, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x06\x00\x0b\x0d\x8f\x2a\x89\x2a\x80\x43\xdc\x07\x0a\x87\x7c\x81\x7c\x90\x78\xd2\x07\x1f\xd0\x24\x39\xb8\x53\xd1\x24\x40\xdc\x2c\x2e\xaf\x4a\xa9\x4a\xd0\x37\x4c\xd1\x2c\x4d\xd0\x08\x4d\x88\x0a\x94\x53\xd5\x15\x29\xe4\x15\x18\x97\x5e\x91\x5e\x88\x0a\xdc\x0e\x10\x8f\x67\x89\x67\x8f\x6f\x89\x6f\x9c\x62\x9f\x67\x99\x67\x9f\x6f\x99\x6f\xa8\x6a\xd3\x1e\x39\xd3\x0e\x3a\x80\x47\xdc\x12\x14\x97\x27\x91\x27\x97\x2f\x91\x2f\xa0\x27\xd3\x12\x2a\x80\x4b\xd8\x10\x14\x84\x43\x84\x49\xd8\x14\x20\x80\x4d\xdc\x15\x19\xf1\x02\x06\x09\x0a\xe4\x10\x12\x97\x07\x91\x07\x97\x0c\x91\x0c\x98\x57\xa0\x6d\xd3\x10\x34\xdc\x10\x12\x97\x07\x91\x07\x97\x0c\x91\x0c\x98\x5b\xa8\x2d\xd3\x10\x38\xf1\x05\x03\x26\x0e\xf3\x03\x06\x09\x0a\xf0\x0e\x00\x09\x0d\xf3\x11\x09\x16\x06\x80\x4e\xf2\x16\x00\x08\x16\xd8\x17\x25\x88\x0c\xd8\x16\x1c\x88\x0b\xf4\x06\x00\x0e\x12\x90\x2c\xa8\x17\xd5\x0d\x31\xb0\x51\xdb\x18\x19\x90\x04\xd8\x13\x16\x98\x24\x92\x3b\xd8\x24\x28\xa7\x4e\xa1\x4e\xb0\x33\xd3\x24\x37\x91\x4d\x90\x43\x98\x11\x98\x45\xd8\x1a\x1d\x9f\x29\x99\x29\x9b\x2b\xd7\x1a\x2b\xd1\x1a\x2b\xd3\x1a\x2d\x90\x43\xd8\x1c\x21\x9f\x4b\x99\x4b\x9b\x4d\x90\x45\xd8\x17\x1a\xd0\x1e\x3c\xd2\x17\x3c\xd8\x26\x2b\xa7\x6b\xa1\x6b\xa3\x6d\x99\x0b\xd8\x19\x1c\xa0\x06\x9b\x1d\xd8\x24\x29\x9c\x03\x9d\x09\xf1\x11\x00\x19\x1a\xf7\x03\x00\x0e\x32\xf0\x16\x00\x28\x33\xd0\x08\x32\x8c\x03\x8c\x0a\x94\x53\x94\x5f\xf4\x06\x00\x09\x18\x98\x0b\xa4\x63\xa7\x6a\xa1\x6a\xa0\x5c\xd4\x08\x32\xf0\x08\x00\x0c\x17\x98\x26\xd2\x0b\x20\xdc\x0c\x14\x8f\x4f\x89\x4f\x98\x41\x9c\x73\x9f\x7a\x99\x7a\xd4\x0c\x2a\xf0\x0a\x00\x0c\x17\xd0\x04\x16\xf4\x07\x00\x19\x1c\x9f\x0a\x99\x0a\x90\x7c\x88\x48\xd8\x1f\x24\xd0\x0c\x1c\xe0\x0b\x16\xd0\x04\x16\xf7\x31\x00\x0e\x32\xd0\x0d\x31\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[26]; - } -site_toplevel_consts_22_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 25, - }, - .ob_shash = -1, - .ob_sval = "\xc4\x24\x0a\x48\x15\x03\xc4\x2f\x41\x1e\x48\x15\x03\xc6\x0e\x0d\x48\x15\x03\xc8\x15\x05\x48\x1e\x07", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_exe_dir = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "exe_dir", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_site_prefix = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "site_prefix", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_conf_basename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "conf_basename", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_candidate_conf = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "candidate_conf", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_virtual_conf = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "virtual_conf", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_system_site = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "system_site", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[14]; - }_object; - } -site_toplevel_consts_22_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 14, - }, - .ob_item = { - & const_str_known_paths._ascii.ob_base, - &_Py_ID(env), - & const_str_executable._ascii.ob_base, - & const_str_exe_dir._ascii.ob_base, - & const_str_site_prefix._ascii.ob_base, - & const_str_conf_basename._ascii.ob_base, - & const_str_candidate_conf._ascii.ob_base, - & const_str_virtual_conf._ascii.ob_base, - & const_str_system_site._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[102], - &_Py_ID(line), - &_Py_ID(key), - (PyObject *)&_Py_SINGLETON(strings).ascii[95], - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(1090) -site_toplevel_consts_22 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 545, - }, - .co_consts = & site_toplevel_consts_22_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_22_names._object.ob_base.ob_base, - .co_exceptiontable = & site_toplevel_consts_22_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 22 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 509, - .co_nlocalsplus = 14, - .co_nlocals = 14, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 700, - .co_localsplusnames = & site_toplevel_consts_22_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_external_toplevel_consts_72_consts_6_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_venv._ascii.ob_base, - .co_qualname = & const_str_venv._ascii.ob_base, - .co_linetable = & site_toplevel_consts_22_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x6b\x28\x00\x00\x72\x23\x64\x02\x7c\x01\x76\x00\x72\x1f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x19\x00\x00\x00\x78\x01\x7d\x02\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x10\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x03\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x04\x64\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x7d\x05\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x84\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x05\xab\x02\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x7c\x05\xab\x02\x00\x00\x00\x00\x00\x00\x66\x02\x44\x00\xab\x00\x00\x00\x00\x00\x00\x00\x64\x00\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x06\x90\x01\x72\x00\x7c\x06\x7d\x07\x64\x05\x7d\x08\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\x64\x06\xac\x07\xab\x02\x00\x00\x00\x00\x00\x00\x35\x00\x7d\x09\x7c\x09\x44\x00\x5d\x71\x00\x00\x7d\x0a\x64\x08\x7c\x0a\x76\x00\x73\x01\x8c\x08\x7c\x0a\x6a\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x0b\x7d\x0c\x7d\x0d\x7c\x0b\x6a\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x6a\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x0b\x7c\x0d\x6a\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x0d\x7c\x0b\x64\x09\x6b\x28\x00\x00\x72\x11\x7c\x0d\x6a\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x08\x8c\x61\x7c\x0b\x64\x0a\x6b\x28\x00\x00\x73\x01\x8c\x67\x7c\x0d\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x09\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x73\x04\x00\x09\x00\x64\x00\x64\x00\x64\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x04\x78\x01\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x10\x00\x00\x00\x00\x00\x00\x00\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x11\x00\x00\x00\x00\x00\x00\x00\x00\x74\x25\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x08\x64\x05\x6b\x28\x00\x00\x72\x26\x74\x26\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0b\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x01\x61\x13\x64\x0c\x61\x15\x7c\x00\x53\x00\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x8c\x7a\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[45]; - } -site_toplevel_consts_23_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 44, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Run custom site specific code, if available.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_sitecustomize = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "sitecustomize", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[58]; - } -site_toplevel_consts_23_consts_4 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 57, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x45\x72\x72\x6f\x72\x20\x69\x6e\x20\x73\x69\x74\x65\x63\x75\x73\x74\x6f\x6d\x69\x7a\x65\x3b\x20\x73\x65\x74\x20\x50\x59\x54\x48\x4f\x4e\x56\x45\x52\x42\x4f\x53\x45\x20\x66\x6f\x72\x20\x74\x72\x61\x63\x65\x62\x61\x63\x6b\x3a\x0a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -site_toplevel_consts_23_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & site_toplevel_consts_23_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & const_str_sitecustomize._ascii.ob_base, - & site_toplevel_consts_23_consts_4._ascii.ob_base, - & importlib__bootstrap_external_toplevel_consts_42_consts_4._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[10], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_exc_info = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "exc_info", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -site_toplevel_consts_23_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str_sitecustomize._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - &_Py_ID(name), - & const_str_Exception._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(flags), - & const_str_verbose._ascii.ob_base, - &_Py_ID(excepthook), - & const_str_exc_info._ascii.ob_base, - &_Py_ID(stderr), - &_Py_ID(write), - &_Py_ID(__class__), - &_Py_ID(__name__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str_execsitecustomize = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "execsitecustomize", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[153]; - } -site_toplevel_consts_23_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 152, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x04\x0f\x05\x2f\xf0\x02\x06\x09\x16\xdc\x0c\x20\xf8\xdc\x0f\x1a\xf2\x00\x04\x09\x16\xd8\x0f\x12\x8f\x78\x89\x78\x98\x3f\xd2\x0f\x2a\xd8\x10\x14\xe0\x10\x15\xf4\x05\x00\x11\x15\xfb\xf0\x05\x04\x09\x16\xfb\xf4\x0a\x00\x0c\x15\xf2\x00\x07\x05\x2f\xdc\x0b\x0e\x8f\x39\x89\x39\xd7\x0b\x1c\xd2\x0b\x1c\xdc\x0c\x0f\x8f\x4e\x89\x4e\x9c\x43\x9f\x4c\x99\x4c\x9b\x4e\xd2\x0c\x2b\xe4\x0c\x0f\x8f\x4a\x89\x4a\xd7\x0c\x1c\xd2\x0c\x1c\xf0\x06\x00\x12\x15\x97\x1d\x91\x1d\xd7\x11\x27\xd3\x11\x27\xaa\x13\xf0\x05\x02\x11\x2e\xf7\x03\x03\x0d\x2f\xf1\x00\x03\x0d\x2f\xf4\x05\x00\x0d\x2c\xfb\xf0\x05\x07\x05\x2f\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[42]; - } -site_toplevel_consts_23_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 41, - }, - .ob_shash = -1, - .ob_sval = "\x83\x04\x08\x00\x88\x09\x2c\x03\x91\x11\x27\x03\xa2\x04\x2f\x00\xa7\x05\x2c\x03\xac\x03\x2f\x00\xaf\x09\x43\x00\x03\xb8\x41\x39\x42\x3b\x03\xc2\x3b\x05\x43\x00\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -site_toplevel_consts_23_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_sitecustomize._ascii.ob_base, - & const_str_exc._ascii.ob_base, - & const_str_err._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(390) -site_toplevel_consts_23 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 195, - }, - .co_consts = & site_toplevel_consts_23_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_23_names._object.ob_base.ob_base, - .co_exceptiontable = & site_toplevel_consts_23_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 564, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 701, - .co_localsplusnames = & site_toplevel_consts_23_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_execsitecustomize._ascii.ob_base, - .co_qualname = & const_str_execsitecustomize._ascii.ob_base, - .co_linetable = & site_toplevel_consts_23_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x09\x00\x64\x01\x64\x02\x6c\x00\x7d\x00\x79\x02\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x1b\x7d\x01\x7c\x01\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x6b\x28\x00\x00\x72\x01\x6e\x01\x82\x00\x59\x00\x64\x02\x7d\x01\x7e\x01\x79\x02\x64\x02\x7d\x01\x7e\x01\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x88\x7d\x02\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x25\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x01\x00\x6e\x3f\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x02\x6a\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x01\x64\x05\x7c\x02\x9b\x01\x64\x06\x9d\x05\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x59\x00\x64\x02\x7d\x02\x7e\x02\x79\x02\x59\x00\x64\x02\x7d\x02\x7e\x02\x79\x02\x64\x02\x7d\x02\x7e\x02\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[45]; - } -site_toplevel_consts_24_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 44, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Run custom user specific code, if available.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_usercustomize = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "usercustomize", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[58]; - } -site_toplevel_consts_24_consts_4 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 57, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x45\x72\x72\x6f\x72\x20\x69\x6e\x20\x75\x73\x65\x72\x63\x75\x73\x74\x6f\x6d\x69\x7a\x65\x3b\x20\x73\x65\x74\x20\x50\x59\x54\x48\x4f\x4e\x56\x45\x52\x42\x4f\x53\x45\x20\x66\x6f\x72\x20\x74\x72\x61\x63\x65\x62\x61\x63\x6b\x3a\x0a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -site_toplevel_consts_24_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & site_toplevel_consts_24_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & const_str_usercustomize._ascii.ob_base, - & site_toplevel_consts_24_consts_4._ascii.ob_base, - & importlib__bootstrap_external_toplevel_consts_42_consts_4._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[10], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -site_toplevel_consts_24_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str_usercustomize._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - &_Py_ID(name), - & const_str_Exception._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(flags), - & const_str_verbose._ascii.ob_base, - &_Py_ID(excepthook), - & const_str_exc_info._ascii.ob_base, - &_Py_ID(stderr), - &_Py_ID(write), - &_Py_ID(__class__), - &_Py_ID(__name__), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -const_str_execusercustomize = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "execusercustomize", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -site_toplevel_consts_24_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_usercustomize._ascii.ob_base, - & const_str_exc._ascii.ob_base, - & const_str_err._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(390) -site_toplevel_consts_24 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 195, - }, - .co_consts = & site_toplevel_consts_24_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_24_names._object.ob_base.ob_base, - .co_exceptiontable = & site_toplevel_consts_23_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 584, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 702, - .co_localsplusnames = & site_toplevel_consts_24_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_execusercustomize._ascii.ob_base, - .co_qualname = & const_str_execusercustomize._ascii.ob_base, - .co_linetable = & site_toplevel_consts_23_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x09\x00\x64\x01\x64\x02\x6c\x00\x7d\x00\x79\x02\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x1b\x7d\x01\x7c\x01\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\x6b\x28\x00\x00\x72\x01\x6e\x01\x82\x00\x59\x00\x64\x02\x7d\x01\x7e\x01\x79\x02\x64\x02\x7d\x01\x7e\x01\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x88\x7d\x02\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x25\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x01\x00\x6e\x3f\x74\x08\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x02\x6a\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x01\x64\x05\x7c\x02\x9b\x01\x64\x06\x9d\x05\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x59\x00\x64\x02\x7d\x02\x7e\x02\x79\x02\x59\x00\x64\x02\x7d\x02\x7e\x02\x79\x02\x64\x02\x7d\x02\x7e\x02\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[208]; - } -site_toplevel_consts_25_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 207, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x64\x64\x20\x73\x74\x61\x6e\x64\x61\x72\x64\x20\x73\x69\x74\x65\x2d\x73\x70\x65\x63\x69\x66\x69\x63\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x20\x74\x6f\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x73\x65\x61\x72\x63\x68\x20\x70\x61\x74\x68\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\x63\x61\x6c\x6c\x65\x64\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x61\x6c\x6c\x79\x20\x77\x68\x65\x6e\x20\x74\x68\x69\x73\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69\x73\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x2c\x0a\x20\x20\x20\x20\x75\x6e\x6c\x65\x73\x73\x20\x74\x68\x65\x20\x70\x79\x74\x68\x6f\x6e\x20\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x77\x61\x73\x20\x73\x74\x61\x72\x74\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x2d\x53\x20\x66\x6c\x61\x67\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_25_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & site_toplevel_consts_25_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_isolated = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "isolated", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[17]; - }_object; - } -site_toplevel_consts_25_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 17, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - &_Py_ID(path), - & const_str_removeduppaths._ascii.ob_base, - & const_str_abs_paths._ascii.ob_base, - & const_str_venv._ascii.ob_base, - & const_str_ENABLE_USER_SITE._ascii.ob_base, - & const_str_check_enableusersite._ascii.ob_base, - & const_str_addusersitepackages._ascii.ob_base, - & const_str_addsitepackages._ascii.ob_base, - & const_str_setquit._ascii.ob_base, - & const_str_setcopyright._ascii.ob_base, - & const_str_sethelper._ascii.ob_base, - &_Py_ID(flags), - & const_str_isolated._ascii.ob_base, - & const_str_enablerlcompleter._ascii.ob_base, - & const_str_execsitecustomize._ascii.ob_base, - & const_str_execusercustomize._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_main = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "main", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[144]; - } -site_toplevel_consts_25_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 143, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x10\x00\x11\x14\x97\x08\x91\x08\x99\x11\x90\x0b\x80\x49\xdc\x12\x20\xd3\x12\x22\x80\x4b\xd8\x07\x10\x94\x43\x97\x48\x91\x48\xd2\x07\x1c\xf4\x06\x00\x09\x12\x8c\x0b\xe4\x12\x16\x90\x7b\xd3\x12\x23\x80\x4b\xdc\x07\x17\xd0\x07\x1f\xdc\x1b\x2f\xd3\x1b\x31\xd0\x08\x18\xdc\x12\x25\xa0\x6b\xd3\x12\x32\x80\x4b\xdc\x12\x21\xa0\x2b\xd3\x12\x2e\x80\x4b\xdc\x04\x0b\x84\x49\xdc\x04\x10\x84\x4e\xdc\x04\x0d\x84\x4b\xdc\x0b\x0e\x8f\x39\x89\x39\xd7\x0b\x1d\xd2\x0b\x1d\xdc\x08\x19\xd4\x08\x1b\xdc\x04\x15\xd4\x04\x17\xdd\x07\x17\xdc\x08\x19\xd5\x08\x1b\xf0\x03\x00\x08\x18", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_orig_path = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "orig_path", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -site_toplevel_consts_25_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_orig_path._ascii.ob_base, - & const_str_known_paths._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(404) -site_toplevel_consts_25 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 202, - }, - .co_consts = & site_toplevel_consts_25_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_25_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 604, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 703, - .co_localsplusnames = & site_toplevel_consts_25_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_main._ascii.ob_base, - .co_qualname = & const_str_main._ascii.ob_base, - .co_linetable = & site_toplevel_consts_25_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x64\x01\x1a\x00\x7d\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\x0a\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0a\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x61\x05\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x01\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x0a\x74\x1d\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x74\x1f\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x72\x0b\x74\x21\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[435]; - } -site_toplevel_consts_26_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 434, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x20\x20\x20\x20\x25\x73\x20\x5b\x2d\x2d\x75\x73\x65\x72\x2d\x62\x61\x73\x65\x5d\x20\x5b\x2d\x2d\x75\x73\x65\x72\x2d\x73\x69\x74\x65\x5d\x0a\x0a\x20\x20\x20\x20\x57\x69\x74\x68\x6f\x75\x74\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x70\x72\x69\x6e\x74\x20\x73\x6f\x6d\x65\x20\x75\x73\x65\x66\x75\x6c\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x20\x20\x20\x20\x57\x69\x74\x68\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x70\x72\x69\x6e\x74\x20\x74\x68\x65\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x55\x53\x45\x52\x5f\x42\x41\x53\x45\x20\x61\x6e\x64\x2f\x6f\x72\x20\x55\x53\x45\x52\x5f\x53\x49\x54\x45\x20\x73\x65\x70\x61\x72\x61\x74\x65\x64\x0a\x20\x20\x20\x20\x62\x79\x20\x27\x25\x73\x27\x2e\x0a\x0a\x20\x20\x20\x20\x45\x78\x69\x74\x20\x63\x6f\x64\x65\x73\x20\x77\x69\x74\x68\x20\x2d\x2d\x75\x73\x65\x72\x2d\x62\x61\x73\x65\x20\x6f\x72\x20\x2d\x2d\x75\x73\x65\x72\x2d\x73\x69\x74\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x30\x20\x2d\x20\x75\x73\x65\x72\x20\x73\x69\x74\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x73\x20\x65\x6e\x61\x62\x6c\x65\x64\x0a\x20\x20\x20\x20\x20\x20\x31\x20\x2d\x20\x75\x73\x65\x72\x20\x73\x69\x74\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x73\x20\x64\x69\x73\x61\x62\x6c\x65\x64\x20\x62\x79\x20\x75\x73\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x32\x20\x2d\x20\x75\x73\x65\x72\x20\x73\x69\x74\x65\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x69\x73\x20\x64\x69\x73\x61\x62\x6c\x65\x64\x20\x62\x79\x20\x73\x75\x70\x65\x72\x20\x75\x73\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x20\x66\x6f\x72\x20\x73\x65\x63\x75\x72\x69\x74\x79\x20\x72\x65\x61\x73\x6f\x6e\x73\x0a\x20\x20\x20\x20\x20\x3e\x32\x20\x2d\x20\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x65\x72\x72\x6f\x72\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -site_toplevel_consts_26_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "sys.path = [", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -site_toplevel_consts_26_consts_4 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -site_toplevel_consts_26_consts_7_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "doesn't exist", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -site_toplevel_consts_26_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & const_str_exists._ascii.ob_base, - & site_toplevel_consts_26_consts_7_consts_2._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -site_toplevel_consts_26_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_os._ascii.ob_base, - &_Py_ID(path), - & const_str_isdir._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -site_toplevel_consts_26_consts_7_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_script..exists", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -site_toplevel_consts_26_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0f\x13\xd0\x0f\x1f\xa4\x42\xa7\x47\xa1\x47\xa7\x4d\xa1\x4d\xb0\x24\xd4\x24\x37\xd8\x17\x1f\xe0\x17\x26", -}; -static - struct _PyCode_DEF(72) -site_toplevel_consts_26_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 36, - }, - .co_consts = & site_toplevel_consts_26_consts_7_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_26_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 19, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 661, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 704, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str_exists._ascii.ob_base, - .co_qualname = & site_toplevel_consts_26_consts_7_qualname._ascii.ob_base, - .co_linetable = & site_toplevel_consts_26_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x81\x20\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x72\x01\x79\x01\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -site_toplevel_consts_26_consts_8 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "USER_BASE: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -site_toplevel_consts_26_consts_11 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "USER_SITE: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -site_toplevel_consts_26_consts_12 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ENABLE_USER_SITE: ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -site_toplevel_consts_26_consts_14 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "--user-base", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -site_toplevel_consts_26_consts_15 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "--user-site", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[20]; - }_object; - } -site_toplevel_consts_26_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 20, - }, - .ob_item = { - Py_None, - & site_toplevel_consts_26_consts_1._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - & site_toplevel_consts_26_consts_3._ascii.ob_base, - & site_toplevel_consts_26_consts_4._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[44], - (PyObject *)&_Py_SINGLETON(strings).ascii[93], - & site_toplevel_consts_26_consts_7.ob_base.ob_base, - & site_toplevel_consts_26_consts_8._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_29_consts_8._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[41], - & site_toplevel_consts_26_consts_11._ascii.ob_base, - & site_toplevel_consts_26_consts_12._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & site_toplevel_consts_26_consts_14._ascii.ob_base, - & site_toplevel_consts_26_consts_15._ascii.ob_base, - Py_False, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 3], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 10], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_textwrap = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "textwrap", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_dedent = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "dedent", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[16]; - }_object; - } -site_toplevel_consts_26_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 16, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - &_Py_ID(argv), - & const_str_getuserbase._ascii.ob_base, - & const_str_getusersitepackages._ascii.ob_base, - & const_str_print._ascii.ob_base, - &_Py_ID(path), - & const_str_ENABLE_USER_SITE._ascii.ob_base, - & const_str_exit._ascii.ob_base, - &_Py_ID(append), - & const_str_USER_BASE._ascii.ob_base, - & const_str_USER_SITE._ascii.ob_base, - & const_str_os._ascii.ob_base, - & const_str_pathsep._ascii.ob_base, - &_Py_ID(join), - & const_str_textwrap._ascii.ob_base, - & const_str_dedent._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str__script = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_script", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[362]; - } -site_toplevel_consts_26_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 361, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x02\x0d\x0c\x08\x80\x44\xf4\x1c\x00\x0c\x0f\x8f\x38\x89\x38\x90\x41\x90\x42\x88\x3c\x80\x44\xd9\x0b\x0f\xdc\x14\x1f\x93\x4d\x88\x09\xdc\x14\x27\xd3\x14\x29\x88\x09\xdc\x08\x0d\x88\x6e\xd4\x08\x1d\xdc\x13\x16\x97\x38\x94\x38\x88\x43\xdd\x0c\x11\x9a\x73\xd0\x12\x24\xd5\x0c\x25\xf0\x03\x00\x14\x1c\xe4\x08\x0d\x88\x63\x8c\x0a\xf2\x02\x04\x09\x27\xf4\x0a\x00\x09\x0e\x90\x0b\x98\x49\x98\x3d\xa8\x02\xa9\x36\xb0\x29\xd3\x2b\x3c\xd0\x2a\x3d\xb8\x51\xd0\x0e\x3f\xd4\x08\x40\xdc\x08\x0d\x90\x0b\x98\x49\x98\x3d\xa8\x02\xa9\x36\xb0\x29\xd3\x2b\x3c\xd0\x2a\x3d\xb8\x51\xd0\x0e\x3f\xd4\x08\x40\xdc\x08\x0d\xd0\x10\x22\xd4\x23\x33\xd0\x22\x36\xd0\x0e\x37\xd4\x08\x38\xdc\x08\x0b\x8f\x08\x89\x08\x90\x11\x8c\x0b\xe0\x0d\x0f\x80\x46\xd8\x07\x14\x98\x04\xd1\x07\x1c\xd8\x08\x0e\x8f\x0d\x89\x0d\x94\x69\xd4\x08\x20\xd8\x07\x14\x98\x04\xd1\x07\x1c\xd8\x08\x0e\x8f\x0d\x89\x0d\x94\x69\xd4\x08\x20\xe1\x07\x0d\xdc\x08\x0d\x8c\x62\x8f\x6a\x89\x6a\x8f\x6f\x89\x6f\x98\x66\xd3\x0e\x25\xd4\x08\x26\xdd\x0b\x1b\xdc\x0c\x0f\x8f\x48\x89\x48\x90\x51\x8d\x4b\xdc\x0d\x1d\xa0\x15\xd1\x0d\x26\xdc\x0c\x0f\x8f\x48\x89\x48\x90\x51\x8d\x4b\xdc\x0d\x1d\xd0\x0d\x25\xdc\x0c\x0f\x8f\x48\x89\x48\x90\x51\x8d\x4b\xe4\x0c\x0f\x8f\x48\x89\x48\x90\x51\x8d\x4b\xe3\x08\x17\xdc\x08\x0d\x88\x68\x8f\x6f\x89\x6f\x98\x64\xa4\x63\xa7\x68\xa1\x68\xa8\x71\xa1\x6b\xb4\x32\xb7\x3a\xb1\x3a\xd0\x25\x3e\xd1\x1e\x3e\xd3\x0e\x3f\xd4\x08\x40\xdc\x08\x0b\x8f\x08\x89\x08\x90\x12\x8d\x0c", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_user_base = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "user_base", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -site_toplevel_consts_26_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_help._ascii.ob_base, - &_Py_ID(args), - & const_str_user_base._ascii.ob_base, - & const_str_user_site._ascii.ob_base, - & const_str_dir._ascii.ob_base, - & const_str_exists._ascii.ob_base, - &_Py_ID(buffer), - & const_str_textwrap._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(964) -site_toplevel_consts_26 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 482, - }, - .co_consts = & site_toplevel_consts_26_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_consts_26_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 16 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 638, - .co_nlocalsplus = 8, - .co_nlocals = 8, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 705, - .co_localsplusnames = & site_toplevel_consts_26_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_13_localspluskinds.ob_base.ob_base, - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = & const_str__script._ascii.ob_base, - .co_qualname = & const_str__script._ascii.ob_base, - .co_linetable = & site_toplevel_consts_26_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x7d\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x64\x00\x1a\x00\x7d\x01\x7c\x01\x73\xa8\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x11\x00\x00\x7d\x04\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x04\x9b\x02\x64\x05\x9d\x03\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x13\x04\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x06\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x07\x84\x00\x7d\x05\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x7c\x02\x9b\x02\x64\x09\x02\x00\x7c\x05\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x9b\x00\x64\x0a\x9d\x05\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0b\x7c\x03\x9b\x02\x64\x09\x02\x00\x7c\x05\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x9b\x00\x64\x0a\x9d\x05\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0c\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x02\x9d\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x67\x00\x7d\x06\x64\x0e\x7c\x01\x76\x00\x72\x15\x7c\x06\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x64\x0f\x7c\x01\x76\x00\x72\x15\x7c\x06\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x14\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x06\x72\x94\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x72\x16\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0d\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x64\x10\x75\x00\x72\x16\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x74\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x80\x16\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x11\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x12\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00\x64\x0d\x64\x00\x6c\x0e\x7d\x07\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\x6a\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x0d\x19\x00\x00\x00\x74\x16\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x02\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x13\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[29]; - }_object; - } -site_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 29, - }, - .ob_item = { - & site_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & site_toplevel_consts_3.ob_base.ob_base, - & site_toplevel_consts_4.ob_base.ob_base, - & site_toplevel_consts_5.ob_base.ob_base, - & site_toplevel_consts_6.ob_base.ob_base, - & site_toplevel_consts_7.ob_base.ob_base, - & site_toplevel_consts_8.ob_base.ob_base, - & site_toplevel_consts_9.ob_base.ob_base, - & site_toplevel_consts_10.ob_base.ob_base, - & site_toplevel_consts_11.ob_base.ob_base, - & site_toplevel_consts_12.ob_base.ob_base, - & site_toplevel_consts_13.ob_base.ob_base, - & site_toplevel_consts_14.ob_base.ob_base, - & site_toplevel_consts_15.ob_base.ob_base, - & site_toplevel_consts_16.ob_base.ob_base, - & site_toplevel_consts_17.ob_base.ob_base, - & site_toplevel_consts_18.ob_base.ob_base, - & site_toplevel_consts_19.ob_base.ob_base, - & site_toplevel_consts_20.ob_base.ob_base, - & site_toplevel_consts_21.ob_base.ob_base, - & site_toplevel_consts_22.ob_base.ob_base, - & site_toplevel_consts_23.ob_base.ob_base, - & site_toplevel_consts_24.ob_base.ob_base, - & site_toplevel_consts_25.ob_base.ob_base, - & site_toplevel_consts_26.ob_base.ob_base, - &_Py_ID(__main__), - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_no_site = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "no_site", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[40]; - }_object; - } -site_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 40, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str_sys._ascii.ob_base, - & const_str_os._ascii.ob_base, - &_Py_ID(builtins), - & const_str__sitebuiltins._ascii.ob_base, - & const_str_io._ascii.ob_base, - & const_str_stat._ascii.ob_base, - & const_str_prefix._ascii.ob_base, - & const_str_exec_prefix._ascii.ob_base, - & const_str_PREFIXES._ascii.ob_base, - & const_str_ENABLE_USER_SITE._ascii.ob_base, - & const_str_USER_SITE._ascii.ob_base, - & const_str_USER_BASE._ascii.ob_base, - & const_str__trace._ascii.ob_base, - & const_str_makepath._ascii.ob_base, - & const_str_abs_paths._ascii.ob_base, - & const_str_removeduppaths._ascii.ob_base, - & const_str__init_pathinfo._ascii.ob_base, - & const_str_addpackage._ascii.ob_base, - & const_str_addsitedir._ascii.ob_base, - & const_str_check_enableusersite._ascii.ob_base, - & const_str__getuserbase._ascii.ob_base, - & const_str__get_path._ascii.ob_base, - & const_str_getuserbase._ascii.ob_base, - & const_str_getusersitepackages._ascii.ob_base, - & const_str_addusersitepackages._ascii.ob_base, - & const_str_getsitepackages._ascii.ob_base, - & const_str_addsitepackages._ascii.ob_base, - & const_str_setquit._ascii.ob_base, - & const_str_setcopyright._ascii.ob_base, - & const_str_sethelper._ascii.ob_base, - & const_str_enablerlcompleter._ascii.ob_base, - & const_str_venv._ascii.ob_base, - & const_str_execsitecustomize._ascii.ob_base, - & const_str_execusercustomize._ascii.ob_base, - & const_str_main._ascii.ob_base, - &_Py_ID(flags), - & const_str_no_site._ascii.ob_base, - & const_str__script._ascii.ob_base, - &_Py_ID(__name__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[240]; - } -site_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 239, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x02\x45\x01\x01\x04\xf3\x4e\x02\x00\x01\x0b\xdb\x00\x09\xdb\x00\x0f\xdb\x00\x14\xdb\x00\x09\xdb\x00\x0b\xf0\x06\x00\x0d\x10\x8f\x4a\x89\x4a\x98\x03\x9f\x0f\x99\x0f\xd0\x0b\x28\x80\x08\xf0\x06\x00\x14\x18\xd0\x00\x10\xf0\x0a\x00\x0d\x11\x80\x09\xd8\x0c\x10\x80\x09\xf2\x06\x02\x01\x28\xf2\x0a\x06\x01\x26\xf2\x12\x14\x01\x11\xf2\x2e\x10\x01\x17\xf2\x26\x0a\x01\x0d\xf2\x1a\x3f\x01\x17\xf3\x44\x02\x17\x01\x17\xf2\x34\x16\x01\x10\xf2\x40\x01\x14\x01\x23\xf2\x30\x0a\x01\x4b\x01\xf2\x1a\x0a\x01\x15\xf2\x1a\x0f\x01\x15\xf2\x22\x0d\x01\x17\xf3\x1e\x1f\x01\x18\xf3\x42\x01\x07\x01\x17\xf2\x12\x0d\x01\x37\xf2\x20\x13\x01\x15\xf2\x2c\x01\x01\x2c\xf2\x06\x39\x01\x30\xf2\x76\x01\x34\x01\x17\xf2\x6e\x01\x11\x01\x2f\xf2\x28\x11\x01\x2f\xf2\x28\x1b\x01\x1c\xf0\x3e\x00\x08\x0b\x87\x79\x81\x79\xd7\x07\x18\xd2\x07\x18\xd9\x04\x08\x84\x46\xf2\x04\x34\x01\x15\xf0\x6c\x01\x00\x04\x0c\x88\x7a\xd2\x03\x19\xd9\x04\x0b\x85\x49\xf0\x03\x00\x04\x1a", -}; -static - struct _PyCode_DEF(350) -site_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 175, - }, - .co_consts = & site_toplevel_consts._object.ob_base.ob_base, - .co_names = & site_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 706, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & site_toplevel_consts_3_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & site_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x64\x02\x6c\x01\x5a\x01\x64\x01\x64\x02\x6c\x02\x5a\x02\x64\x01\x64\x02\x6c\x03\x5a\x03\x64\x01\x64\x02\x6c\x04\x5a\x04\x64\x01\x64\x02\x6c\x05\x5a\x05\x64\x01\x64\x02\x6c\x06\x5a\x06\x65\x01\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x01\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x02\x61\x09\x64\x02\x61\x0a\x64\x02\x61\x0b\x64\x02\x61\x0c\x64\x03\x84\x00\x5a\x0d\x64\x04\x84\x00\x5a\x0e\x64\x05\x84\x00\x5a\x0f\x64\x06\x84\x00\x5a\x10\x64\x07\x84\x00\x5a\x11\x64\x08\x84\x00\x5a\x12\x64\x1c\x64\x09\x84\x01\x5a\x13\x64\x0a\x84\x00\x5a\x14\x64\x0b\x84\x00\x5a\x15\x64\x0c\x84\x00\x5a\x16\x64\x0d\x84\x00\x5a\x17\x64\x0e\x84\x00\x5a\x18\x64\x0f\x84\x00\x5a\x19\x64\x1c\x64\x10\x84\x01\x5a\x1a\x64\x1c\x64\x11\x84\x01\x5a\x1b\x64\x12\x84\x00\x5a\x1c\x64\x13\x84\x00\x5a\x1d\x64\x14\x84\x00\x5a\x1e\x64\x15\x84\x00\x5a\x1f\x64\x16\x84\x00\x5a\x20\x64\x17\x84\x00\x5a\x21\x64\x18\x84\x00\x5a\x22\x64\x19\x84\x00\x5a\x23\x65\x01\x6a\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x07\x02\x00\x65\x23\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x64\x1a\x84\x00\x5a\x26\x65\x27\x64\x1b\x6b\x28\x00\x00\x72\x08\x02\x00\x65\x26\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x02\x79\x02", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_site_toplevel(void) -{ - return Py_NewRef((PyObject *) &site_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[112]; - } -stat_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 111, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x43\x6f\x6e\x73\x74\x61\x6e\x74\x73\x2f\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x20\x66\x6f\x72\x20\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x69\x6e\x67\x20\x72\x65\x73\x75\x6c\x74\x73\x20\x6f\x66\x20\x6f\x73\x2e\x73\x74\x61\x74\x28\x29\x20\x61\x6e\x64\x20\x6f\x73\x2e\x6c\x73\x74\x61\x74\x28\x29\x2e\x0a\x0a\x53\x75\x67\x67\x65\x73\x74\x65\x64\x20\x75\x73\x61\x67\x65\x3a\x20\x66\x72\x6f\x6d\x20\x73\x74\x61\x74\x20\x69\x6d\x70\x6f\x72\x74\x20\x2a\x0a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[78]; - } -stat_toplevel_consts_11_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 77, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x6f\x72\x74\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x27\x73\x20\x6d\x6f\x64\x65\x20\x74\x68\x61\x74\x20\x63\x61\x6e\x20\x62\x65\x20\x73\x65\x74\x20\x62\x79\x0a\x20\x20\x20\x20\x6f\x73\x2e\x63\x68\x6d\x6f\x64\x28\x29\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_4095 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 4095 }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -stat_toplevel_consts_11_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & stat_toplevel_consts_11_consts_0._ascii.ob_base, - & const_int_4095.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -stat_toplevel_consts_11_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IMODE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IMODE", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[15]; - } -stat_toplevel_consts_11_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 14, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x00\x0c\x10\x90\x26\x89\x3d\xd0\x04\x18", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -stat_toplevel_consts_11_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(mode), - }, - }, -}; -static - struct _PyCode_DEF(12) -stat_toplevel_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 6, - }, - .co_consts = & stat_toplevel_consts_11_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 21, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 707, - .co_localsplusnames = & stat_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_S_IMODE._ascii.ob_base, - .co_qualname = & const_str_S_IMODE._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_11_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x64\x01\x7a\x01\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[77]; - } -stat_toplevel_consts_12_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 76, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x70\x6f\x72\x74\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x27\x73\x20\x6d\x6f\x64\x65\x20\x74\x68\x61\x74\x20\x64\x65\x73\x63\x72\x69\x62\x65\x73\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x66\x69\x6c\x65\x20\x74\x79\x70\x65\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -stat_toplevel_consts_12_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & stat_toplevel_consts_12_consts_0._ascii.ob_base, - & const_int_61440.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_S_IFMT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IFMT", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[15]; - } -stat_toplevel_consts_12_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 14, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x00\x0c\x10\x90\x28\x89\x3f\xd0\x04\x1a", -}; -static - struct _PyCode_DEF(12) -stat_toplevel_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 6, - }, - .co_consts = & stat_toplevel_consts_12_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 27, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 708, - .co_localsplusnames = & stat_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_S_IFMT._ascii.ob_base, - .co_qualname = & const_str_S_IFMT._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x64\x01\x7a\x01\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_8192 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 8192 }, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_24576 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 24576 }, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_4096 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 4096 }, -}; -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_40960 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 8192, 1 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_40960 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 40960 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_49152 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 16384, 1 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_49152 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 49152 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -static - struct { - PyASCIIObject _ascii; - uint8_t _data[41]; - } -stat_toplevel_consts_20_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 40, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return True if mode is from a directory.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -stat_toplevel_consts_20_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & stat_toplevel_consts_20_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IFDIR = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IFDIR", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -stat_toplevel_consts_20_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_S_IFMT._ascii.ob_base, - & const_str_S_IFDIR._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -stat_toplevel_consts_20_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x11\x90\x24\x8b\x3c\x9c\x37\xd1\x0b\x22\xd0\x04\x22", -}; -static - struct _PyCode_DEF(38) -stat_toplevel_consts_20 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 19, - }, - .co_consts = & stat_toplevel_consts_20_consts._object.ob_base.ob_base, - .co_names = & stat_toplevel_consts_20_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 50, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 709, - .co_localsplusnames = & stat_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_S_ISDIR._ascii.ob_base, - .co_qualname = & const_str_S_ISDIR._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[61]; - } -stat_toplevel_consts_21_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 60, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return True if mode is from a character special device file.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -stat_toplevel_consts_21_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & stat_toplevel_consts_21_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IFCHR = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IFCHR", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -stat_toplevel_consts_21_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_S_IFMT._ascii.ob_base, - & const_str_S_IFCHR._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_ISCHR = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISCHR", -}; -static - struct _PyCode_DEF(38) -stat_toplevel_consts_21 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 19, - }, - .co_consts = & stat_toplevel_consts_21_consts._object.ob_base.ob_base, - .co_names = & stat_toplevel_consts_21_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 54, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 710, - .co_localsplusnames = & stat_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_S_ISCHR._ascii.ob_base, - .co_qualname = & const_str_S_ISCHR._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[57]; - } -stat_toplevel_consts_22_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 56, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return True if mode is from a block special device file.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -stat_toplevel_consts_22_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & stat_toplevel_consts_22_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IFBLK = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IFBLK", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -stat_toplevel_consts_22_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_S_IFMT._ascii.ob_base, - & const_str_S_IFBLK._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_ISBLK = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISBLK", -}; -static - struct _PyCode_DEF(38) -stat_toplevel_consts_22 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 19, - }, - .co_consts = & stat_toplevel_consts_22_consts._object.ob_base.ob_base, - .co_names = & stat_toplevel_consts_22_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 58, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 711, - .co_localsplusnames = & stat_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_S_ISBLK._ascii.ob_base, - .co_qualname = & const_str_S_ISBLK._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[44]; - } -stat_toplevel_consts_23_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 43, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return True if mode is from a regular file.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -stat_toplevel_consts_23_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & stat_toplevel_consts_23_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IFREG = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IFREG", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -stat_toplevel_consts_23_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_S_IFMT._ascii.ob_base, - & const_str_S_IFREG._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(38) -stat_toplevel_consts_23 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 19, - }, - .co_consts = & stat_toplevel_consts_23_consts._object.ob_base.ob_base, - .co_names = & stat_toplevel_consts_23_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 62, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 712, - .co_localsplusnames = & stat_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_S_ISREG._ascii.ob_base, - .co_qualname = & const_str_S_ISREG._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[49]; - } -stat_toplevel_consts_24_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 48, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return True if mode is from a FIFO (named pipe).", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -stat_toplevel_consts_24_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & stat_toplevel_consts_24_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IFIFO = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IFIFO", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -stat_toplevel_consts_24_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_S_IFMT._ascii.ob_base, - & const_str_S_IFIFO._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_S_ISFIFO = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISFIFO", -}; -static - struct _PyCode_DEF(38) -stat_toplevel_consts_24 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 19, - }, - .co_consts = & stat_toplevel_consts_24_consts._object.ob_base.ob_base, - .co_names = & stat_toplevel_consts_24_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 66, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 713, - .co_localsplusnames = & stat_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_S_ISFIFO._ascii.ob_base, - .co_qualname = & const_str_S_ISFIFO._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[45]; - } -stat_toplevel_consts_25_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 44, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return True if mode is from a symbolic link.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -stat_toplevel_consts_25_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & stat_toplevel_consts_25_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IFLNK = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IFLNK", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -stat_toplevel_consts_25_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_S_IFMT._ascii.ob_base, - & const_str_S_IFLNK._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(38) -stat_toplevel_consts_25 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 19, - }, - .co_consts = & stat_toplevel_consts_25_consts._object.ob_base.ob_base, - .co_names = & stat_toplevel_consts_25_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 70, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 714, - .co_localsplusnames = & stat_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_S_ISLNK._ascii.ob_base, - .co_qualname = & const_str_S_ISLNK._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_20_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[38]; - } -stat_toplevel_consts_26_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 37, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return True if mode is from a socket.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -stat_toplevel_consts_26_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & stat_toplevel_consts_26_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_S_IFSOCK = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IFSOCK", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -stat_toplevel_consts_26_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_S_IFMT._ascii.ob_base, - & const_str_S_IFSOCK._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_S_ISSOCK = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISSOCK", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -stat_toplevel_consts_26_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x11\x90\x24\x8b\x3c\x9c\x38\xd1\x0b\x23\xd0\x04\x23", -}; -static - struct _PyCode_DEF(38) -stat_toplevel_consts_26 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 19, - }, - .co_consts = & stat_toplevel_consts_26_consts._object.ob_base.ob_base, - .co_names = & stat_toplevel_consts_26_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 74, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 715, - .co_localsplusnames = & stat_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_S_ISSOCK._ascii.ob_base, - .co_qualname = & const_str_S_ISSOCK._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_26_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x28\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[36]; - } -stat_toplevel_consts_27_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 35, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return True if mode is from a door.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -stat_toplevel_consts_27_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & stat_toplevel_consts_27_consts_0._ascii.ob_base, - Py_False, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_S_ISDOOR = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISDOOR", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -stat_toplevel_consts_27_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x10", -}; -static - struct _PyCode_DEF(4) -stat_toplevel_consts_27 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & stat_toplevel_consts_27_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 78, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 716, - .co_localsplusnames = & stat_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_S_ISDOOR._ascii.ob_base, - .co_qualname = & const_str_S_ISDOOR._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_27_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[43]; - } -stat_toplevel_consts_28_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 42, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return True if mode is from an event port.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -stat_toplevel_consts_28_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & stat_toplevel_consts_28_consts_0._ascii.ob_base, - Py_False, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_S_ISPORT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISPORT", -}; -static - struct _PyCode_DEF(4) -stat_toplevel_consts_28 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & stat_toplevel_consts_28_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 82, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 717, - .co_localsplusnames = & stat_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_S_ISPORT._ascii.ob_base, - .co_qualname = & const_str_S_ISPORT._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_27_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[40]; - } -stat_toplevel_consts_29_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 39, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return True if mode is from a whiteout.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -stat_toplevel_consts_29_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & stat_toplevel_consts_29_consts_0._ascii.ob_base, - Py_False, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_ISWHT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISWHT", -}; -static - struct _PyCode_DEF(4) -stat_toplevel_consts_29 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & stat_toplevel_consts_29_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 86, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 718, - .co_localsplusnames = & stat_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_S_ISWHT._ascii.ob_base, - .co_qualname = & const_str_S_ISWHT._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_27_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_1024 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 1024 }, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_512 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 512 }, -}; -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_448 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 448 }, -}; -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_65536 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 0, 2 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_65536 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 65536 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_131072 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 0, 4 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_131072 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 131072 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_262144 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 0, 8 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_262144 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 262144 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_1048576 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 0, 32 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_1048576 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 1048576 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -#if PYLONG_BITS_IN_DIGIT == 15 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[2]; - } -const_int_2097152 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 2), - .ob_digit = { 0, 64 }, -}; -#elif PYLONG_BITS_IN_DIGIT == 30 -static - struct { - PyObject ob_base; - uintptr_t lv_tag; - digit ob_digit[1]; - } -const_int_2097152 = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyLong_Type, - }, - .lv_tag = TAG_FROM_SIGN_AND_SIZE(1, 1), - .ob_digit = { 2097152 }, -}; -#else -#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" -#endif -static - struct { - PyASCIIObject _ascii; - uint8_t _data[60]; - } -stat_toplevel_consts_58_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 59, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Convert a file's mode to a string of the form '-rwxrwxrwx'.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -stat_toplevel_consts_58_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & stat_toplevel_consts_58_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[45], - &_Py_STR(empty), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[16]; - } -const_str__filemode_table = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 15, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_filemode_table", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -stat_toplevel_consts_58_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str__filemode_table._ascii.ob_base, - &_Py_ID(append), - &_Py_ID(join), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_filemode = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "filemode", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[89]; - } -stat_toplevel_consts_58_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 88, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0d\x80\x44\xdf\x11\x20\x88\x05\xdb\x19\x1e\x89\x49\x88\x43\x90\x14\xd8\x0f\x13\x90\x63\x89\x7a\x98\x53\xd3\x0f\x20\xd8\x10\x14\x97\x0b\x91\x0b\x98\x44\xd4\x10\x21\xd9\x10\x15\xf0\x07\x00\x1a\x1f\xf0\x0a\x00\x0d\x11\x8f\x4b\x89\x4b\x98\x03\xd5\x0c\x1c\xf0\x0d\x00\x12\x21\xf0\x0e\x00\x0c\x0e\x8f\x37\x89\x37\x90\x34\x8b\x3d\xd0\x04\x18", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_perm = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "perm", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_table = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "table", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[4]; - } -const_str_bit = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 3, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "bit", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_char = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "char", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -stat_toplevel_consts_58_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - &_Py_ID(mode), - & const_str_perm._ascii.ob_base, - & const_str_table._ascii.ob_base, - & const_str_bit._ascii.ob_base, - & const_str_char._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(170) -stat_toplevel_consts_58 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 85, - }, - .co_consts = & stat_toplevel_consts_58_consts._object.ob_base.ob_base, - .co_names = & stat_toplevel_consts_58_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 156, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 719, - .co_localsplusnames = & stat_toplevel_consts_58_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = & const_str_filemode._ascii.ob_base, - .co_qualname = & const_str_filemode._ascii.ob_base, - .co_linetable = & stat_toplevel_consts_58_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x67\x00\x7d\x01\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x38\x00\x00\x7d\x02\x7c\x02\x44\x00\x5d\x20\x00\x00\x5c\x02\x00\x00\x7d\x03\x7d\x04\x7c\x00\x7c\x03\x7a\x01\x00\x00\x7c\x03\x6b\x28\x00\x00\x73\x01\x8c\x0f\x7c\x01\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x8c\x27\x04\x00\x7c\x01\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x8c\x3a\x04\x00\x64\x02\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[61]; - }_object; - } -stat_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 61, - }, - .ob_item = { - & stat_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 3], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 4], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 5], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 6], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 7], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 8], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 9], - & stat_toplevel_consts_11.ob_base.ob_base, - & stat_toplevel_consts_12.ob_base.ob_base, - & const_int_16384.ob_base, - & const_int_8192.ob_base, - & const_int_24576.ob_base, - & const_int_32768.ob_base, - & const_int_4096.ob_base, - & const_int_40960.ob_base, - & const_int_49152.ob_base, - & stat_toplevel_consts_20.ob_base.ob_base, - & stat_toplevel_consts_21.ob_base.ob_base, - & stat_toplevel_consts_22.ob_base.ob_base, - & stat_toplevel_consts_23.ob_base.ob_base, - & stat_toplevel_consts_24.ob_base.ob_base, - & stat_toplevel_consts_25.ob_base.ob_base, - & stat_toplevel_consts_26.ob_base.ob_base, - & stat_toplevel_consts_27.ob_base.ob_base, - & stat_toplevel_consts_28.ob_base.ob_base, - & stat_toplevel_consts_29.ob_base.ob_base, - & const_int_2048.ob_base, - & const_int_1024.ob_base, - & const_int_512.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 256], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 128], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 64], - & const_int_448.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 56], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 32], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 16], - & const_int_65536.ob_base, - & const_int_131072.ob_base, - & const_int_262144.ob_base, - & const_int_1048576.ob_base, - & const_int_2097152.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[108], - (PyObject *)&_Py_SINGLETON(strings).ascii[115], - (PyObject *)&_Py_SINGLETON(strings).ascii[45], - (PyObject *)&_Py_SINGLETON(strings).ascii[98], - (PyObject *)&_Py_SINGLETON(strings).ascii[100], - (PyObject *)&_Py_SINGLETON(strings).ascii[99], - (PyObject *)&_Py_SINGLETON(strings).ascii[112], - (PyObject *)&_Py_SINGLETON(strings).ascii[114], - (PyObject *)&_Py_SINGLETON(strings).ascii[119], - (PyObject *)&_Py_SINGLETON(strings).ascii[83], - (PyObject *)&_Py_SINGLETON(strings).ascii[120], - (PyObject *)&_Py_SINGLETON(strings).ascii[116], - (PyObject *)&_Py_SINGLETON(strings).ascii[84], - & stat_toplevel_consts_58.ob_base.ob_base, - & codecs_toplevel_consts_3._object.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_ST_MODE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ST_MODE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_ST_INO = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ST_INO", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_ST_DEV = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ST_DEV", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_ST_NLINK = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ST_NLINK", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_ST_UID = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ST_UID", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_ST_GID = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ST_GID", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_ST_SIZE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ST_SIZE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_ST_ATIME = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ST_ATIME", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_ST_MTIME = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ST_MTIME", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_ST_CTIME = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ST_CTIME", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_S_IFDOOR = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IFDOOR", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_S_IFPORT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IFPORT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IFWHT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IFWHT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_ISUID = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISUID", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_ISGID = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISGID", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_ENFMT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ENFMT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_ISVTX = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_ISVTX", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IREAD = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IREAD", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_S_IWRITE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IWRITE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IEXEC = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IEXEC", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IRWXU = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IRWXU", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IRUSR = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IRUSR", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IWUSR = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IWUSR", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IXUSR = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IXUSR", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IRWXG = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IRWXG", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IRGRP = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IRGRP", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IWGRP = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IWGRP", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IXGRP = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IXGRP", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IRWXO = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IRWXO", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IROTH = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IROTH", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IWOTH = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IWOTH", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_S_IXOTH = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "S_IXOTH", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_UF_NODUMP = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "UF_NODUMP", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_UF_IMMUTABLE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "UF_IMMUTABLE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_UF_APPEND = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "UF_APPEND", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_UF_OPAQUE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "UF_OPAQUE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_UF_NOUNLINK = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "UF_NOUNLINK", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_UF_COMPRESSED = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "UF_COMPRESSED", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_SF_ARCHIVED = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "SF_ARCHIVED", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_SF_IMMUTABLE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "SF_IMMUTABLE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_SF_APPEND = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "SF_APPEND", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_SF_NOUNLINK = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "SF_NOUNLINK", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_SF_SNAPSHOT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "SF_SNAPSHOT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -const_str_FILE_ATTRIBUTE_ARCHIVE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_ARCHIVE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -const_str_FILE_ATTRIBUTE_COMPRESSED = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_COMPRESSED", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -const_str_FILE_ATTRIBUTE_DEVICE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_DEVICE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -const_str_FILE_ATTRIBUTE_DIRECTORY = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_DIRECTORY", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -const_str_FILE_ATTRIBUTE_ENCRYPTED = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_ENCRYPTED", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -const_str_FILE_ATTRIBUTE_INTEGRITY_STREAM = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_INTEGRITY_STREAM", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -const_str_FILE_ATTRIBUTE_NORMAL = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_NORMAL", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[35]; - } -const_str_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 34, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_NOT_CONTENT_INDEXED", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -const_str_FILE_ATTRIBUTE_NO_SCRUB_DATA = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_NO_SCRUB_DATA", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -const_str_FILE_ATTRIBUTE_OFFLINE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_OFFLINE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -const_str_FILE_ATTRIBUTE_READONLY = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_READONLY", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -const_str_FILE_ATTRIBUTE_REPARSE_POINT = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_REPARSE_POINT", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[27]; - } -const_str_FILE_ATTRIBUTE_SPARSE_FILE = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 26, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_SPARSE_FILE", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -const_str_FILE_ATTRIBUTE_SYSTEM = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_SYSTEM", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -const_str_FILE_ATTRIBUTE_TEMPORARY = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_TEMPORARY", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -const_str_FILE_ATTRIBUTE_VIRTUAL = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "FILE_ATTRIBUTE_VIRTUAL", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str__stat = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_stat", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[85]; - }_object; - } -stat_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 85, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str_ST_MODE._ascii.ob_base, - & const_str_ST_INO._ascii.ob_base, - & const_str_ST_DEV._ascii.ob_base, - & const_str_ST_NLINK._ascii.ob_base, - & const_str_ST_UID._ascii.ob_base, - & const_str_ST_GID._ascii.ob_base, - & const_str_ST_SIZE._ascii.ob_base, - & const_str_ST_ATIME._ascii.ob_base, - & const_str_ST_MTIME._ascii.ob_base, - & const_str_ST_CTIME._ascii.ob_base, - & const_str_S_IMODE._ascii.ob_base, - & const_str_S_IFMT._ascii.ob_base, - & const_str_S_IFDIR._ascii.ob_base, - & const_str_S_IFCHR._ascii.ob_base, - & const_str_S_IFBLK._ascii.ob_base, - & const_str_S_IFREG._ascii.ob_base, - & const_str_S_IFIFO._ascii.ob_base, - & const_str_S_IFLNK._ascii.ob_base, - & const_str_S_IFSOCK._ascii.ob_base, - & const_str_S_IFDOOR._ascii.ob_base, - & const_str_S_IFPORT._ascii.ob_base, - & const_str_S_IFWHT._ascii.ob_base, - & const_str_S_ISDIR._ascii.ob_base, - & const_str_S_ISCHR._ascii.ob_base, - & const_str_S_ISBLK._ascii.ob_base, - & const_str_S_ISREG._ascii.ob_base, - & const_str_S_ISFIFO._ascii.ob_base, - & const_str_S_ISLNK._ascii.ob_base, - & const_str_S_ISSOCK._ascii.ob_base, - & const_str_S_ISDOOR._ascii.ob_base, - & const_str_S_ISPORT._ascii.ob_base, - & const_str_S_ISWHT._ascii.ob_base, - & const_str_S_ISUID._ascii.ob_base, - & const_str_S_ISGID._ascii.ob_base, - & const_str_S_ENFMT._ascii.ob_base, - & const_str_S_ISVTX._ascii.ob_base, - & const_str_S_IREAD._ascii.ob_base, - & const_str_S_IWRITE._ascii.ob_base, - & const_str_S_IEXEC._ascii.ob_base, - & const_str_S_IRWXU._ascii.ob_base, - & const_str_S_IRUSR._ascii.ob_base, - & const_str_S_IWUSR._ascii.ob_base, - & const_str_S_IXUSR._ascii.ob_base, - & const_str_S_IRWXG._ascii.ob_base, - & const_str_S_IRGRP._ascii.ob_base, - & const_str_S_IWGRP._ascii.ob_base, - & const_str_S_IXGRP._ascii.ob_base, - & const_str_S_IRWXO._ascii.ob_base, - & const_str_S_IROTH._ascii.ob_base, - & const_str_S_IWOTH._ascii.ob_base, - & const_str_S_IXOTH._ascii.ob_base, - & const_str_UF_NODUMP._ascii.ob_base, - & const_str_UF_IMMUTABLE._ascii.ob_base, - & const_str_UF_APPEND._ascii.ob_base, - & const_str_UF_OPAQUE._ascii.ob_base, - & const_str_UF_NOUNLINK._ascii.ob_base, - & const_str_UF_COMPRESSED._ascii.ob_base, - & const_str_UF_HIDDEN._ascii.ob_base, - & const_str_SF_ARCHIVED._ascii.ob_base, - & const_str_SF_IMMUTABLE._ascii.ob_base, - & const_str_SF_APPEND._ascii.ob_base, - & const_str_SF_NOUNLINK._ascii.ob_base, - & const_str_SF_SNAPSHOT._ascii.ob_base, - & const_str__filemode_table._ascii.ob_base, - & const_str_filemode._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_ARCHIVE._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_COMPRESSED._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_DEVICE._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_DIRECTORY._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_ENCRYPTED._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_HIDDEN._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_INTEGRITY_STREAM._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_NORMAL._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_NO_SCRUB_DATA._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_OFFLINE._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_READONLY._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_REPARSE_POINT._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_SPARSE_FILE._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_SYSTEM._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_TEMPORARY._ascii.ob_base, - & const_str_FILE_ATTRIBUTE_VIRTUAL._ascii.ob_base, - & const_str__stat._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[710]; - } -stat_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 709, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x02\x03\x01\x04\xf0\x0e\x00\x0c\x0d\x80\x07\xd8\x0b\x0c\x80\x06\xd8\x0b\x0c\x80\x06\xd8\x0b\x0c\x80\x08\xd8\x0b\x0c\x80\x06\xd8\x0b\x0c\x80\x06\xd8\x0b\x0c\x80\x07\xd8\x0b\x0c\x80\x08\xd8\x0b\x0c\x80\x08\xd8\x0b\x0c\x80\x08\xf2\x08\x04\x01\x19\xf2\x0c\x04\x01\x1b\xf0\x12\x00\x0c\x14\x80\x07\xd8\x0b\x13\x80\x07\xd8\x0b\x13\x80\x07\xd8\x0b\x13\x80\x07\xd8\x0b\x13\x80\x07\xd8\x0b\x13\x80\x07\xd8\x0b\x13\x80\x08\xe0\x0b\x0c\x80\x08\xd8\x0b\x0c\x80\x08\xd8\x0a\x0b\x80\x07\xf2\x08\x02\x01\x23\xf2\x08\x02\x01\x23\xf2\x08\x02\x01\x23\xf2\x08\x02\x01\x23\xf2\x08\x02\x01\x23\xf2\x08\x02\x01\x23\xf2\x08\x02\x01\x24\xf2\x08\x02\x01\x11\xf2\x08\x02\x01\x11\xf2\x08\x02\x01\x11\xf0\x0c\x00\x0b\x11\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x11\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0b\x11\x80\x08\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xd8\x0a\x10\x80\x07\xf0\x08\x00\x10\x1a\x80\x09\xd8\x0f\x19\x80\x0c\xd8\x0f\x19\x80\x09\xd8\x0f\x19\x80\x09\xd8\x0f\x19\x80\x0b\xd8\x10\x1a\x80\x0d\xd8\x0f\x19\x80\x09\xd8\x0f\x19\x80\x0b\xd8\x0f\x19\x80\x0c\xd8\x0f\x19\x80\x09\xd8\x0f\x19\x80\x0b\xd8\x0f\x19\x80\x0b\xf0\x08\x00\x07\x0e\x90\x73\xd0\x05\x1b\xd8\x06\x0e\x90\x73\xd0\x05\x1b\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xf0\x0d\x06\x05\x1d\xf0\x10\x00\x07\x0e\x90\x73\xd0\x05\x1b\xd0\x04\x1d\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xd0\x04\x1d\xd8\x06\x0d\x88\x67\x81\x6f\x90\x73\xd0\x05\x1b\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xf0\x05\x02\x05\x1d\xf0\x08\x00\x07\x0e\x90\x73\xd0\x05\x1b\xd0\x04\x1d\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xd0\x04\x1d\xd8\x06\x0d\x88\x67\x81\x6f\x90\x73\xd0\x05\x1b\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xf0\x05\x02\x05\x1d\xf0\x08\x00\x07\x0e\x90\x73\xd0\x05\x1b\xd0\x04\x1d\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xd0\x04\x1d\xd8\x06\x0d\x88\x67\x81\x6f\x90\x73\xd0\x05\x1b\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xd8\x06\x0d\x90\x73\xd0\x05\x1b\xf0\x05\x02\x05\x1d\xf0\x2f\x1a\x13\x02\x80\x0f\xf2\x38\x0a\x01\x19\xf0\x20\x00\x1a\x1c\xd0\x00\x16\xd8\x1c\x20\xd0\x00\x19\xd8\x18\x1a\xd0\x00\x15\xd8\x1b\x1d\xd0\x00\x18\xd8\x1b\x20\xd0\x00\x18\xd8\x18\x19\xd0\x00\x15\xd8\x22\x27\xd0\x00\x1f\xd8\x18\x1b\xd0\x00\x15\xd8\x25\x29\xd0\x00\x22\xd8\x1f\x25\xd0\x00\x1c\xd8\x19\x1d\xd0\x00\x16\xd8\x1a\x1b\xd0\x00\x17\xd8\x1f\x23\xd0\x00\x1c\xd8\x1d\x20\xd0\x00\x1a\xd8\x18\x19\xd0\x00\x15\xd8\x1b\x1e\xd0\x00\x18\xd8\x19\x1e\xd0\x00\x16\xf0\x08\x03\x01\x09\xdd\x04\x17\xf8\xd8\x07\x12\xf2\x00\x01\x01\x09\xd9\x04\x08\xf0\x03\x01\x01\x09\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -stat_toplevel_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\xc4\x0a\x05\x44\x10\x00\xc4\x10\x05\x44\x18\x03\xc4\x17\x01\x44\x18\x03", -}; -static - struct _PyCode_DEF(566) -stat_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 283, - }, - .co_consts = & stat_toplevel_consts._object.ob_base.ob_base, - .co_names = & stat_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = & stat_toplevel_exceptiontable.ob_base.ob_base, - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 13 + FRAME_SPECIALS_SIZE, - .co_stacksize = 13, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 720, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & stat_toplevel_consts_11_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & stat_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x5a\x01\x64\x02\x5a\x02\x64\x03\x5a\x03\x64\x04\x5a\x04\x64\x05\x5a\x05\x64\x06\x5a\x06\x64\x07\x5a\x07\x64\x08\x5a\x08\x64\x09\x5a\x09\x64\x0a\x5a\x0a\x64\x0b\x84\x00\x5a\x0b\x64\x0c\x84\x00\x5a\x0c\x64\x0d\x5a\x0d\x64\x0e\x5a\x0e\x64\x0f\x5a\x0f\x64\x10\x5a\x10\x64\x11\x5a\x11\x64\x12\x5a\x12\x64\x13\x5a\x13\x64\x01\x5a\x14\x64\x01\x5a\x15\x64\x01\x5a\x16\x64\x14\x84\x00\x5a\x17\x64\x15\x84\x00\x5a\x18\x64\x16\x84\x00\x5a\x19\x64\x17\x84\x00\x5a\x1a\x64\x18\x84\x00\x5a\x1b\x64\x19\x84\x00\x5a\x1c\x64\x1a\x84\x00\x5a\x1d\x64\x1b\x84\x00\x5a\x1e\x64\x1c\x84\x00\x5a\x1f\x64\x1d\x84\x00\x5a\x20\x64\x1e\x5a\x21\x64\x1f\x5a\x22\x65\x22\x5a\x23\x64\x20\x5a\x24\x64\x21\x5a\x25\x64\x22\x5a\x26\x64\x23\x5a\x27\x64\x24\x5a\x28\x64\x21\x5a\x29\x64\x22\x5a\x2a\x64\x23\x5a\x2b\x64\x25\x5a\x2c\x64\x26\x5a\x2d\x64\x27\x5a\x2e\x64\x09\x5a\x2f\x64\x08\x5a\x30\x64\x05\x5a\x31\x64\x03\x5a\x32\x64\x02\x5a\x33\x64\x02\x5a\x34\x64\x03\x5a\x35\x64\x05\x5a\x36\x64\x09\x5a\x37\x64\x27\x5a\x38\x64\x26\x5a\x39\x64\x10\x5a\x3a\x64\x28\x5a\x3b\x64\x29\x5a\x3c\x64\x2a\x5a\x3d\x64\x2b\x5a\x3e\x64\x2c\x5a\x3f\x65\x12\x64\x2d\x66\x02\x65\x13\x64\x2e\x66\x02\x65\x10\x64\x2f\x66\x02\x65\x0f\x64\x30\x66\x02\x65\x0d\x64\x31\x66\x02\x65\x0e\x64\x32\x66\x02\x65\x11\x64\x33\x66\x02\x66\x07\x65\x29\x64\x34\x66\x02\x66\x01\x65\x2a\x64\x35\x66\x02\x66\x01\x65\x2b\x65\x21\x7a\x07\x00\x00\x64\x2e\x66\x02\x65\x21\x64\x36\x66\x02\x65\x2b\x64\x37\x66\x02\x66\x03\x65\x2d\x64\x34\x66\x02\x66\x01\x65\x2e\x64\x35\x66\x02\x66\x01\x65\x2f\x65\x22\x7a\x07\x00\x00\x64\x2e\x66\x02\x65\x22\x64\x36\x66\x02\x65\x2f\x64\x37\x66\x02\x66\x03\x65\x31\x64\x34\x66\x02\x66\x01\x65\x32\x64\x35\x66\x02\x66\x01\x65\x33\x65\x24\x7a\x07\x00\x00\x64\x38\x66\x02\x65\x24\x64\x39\x66\x02\x65\x33\x64\x37\x66\x02\x66\x03\x66\x0a\x5a\x40\x64\x3a\x84\x00\x5a\x41\x64\x26\x5a\x42\x64\x1e\x5a\x43\x64\x23\x5a\x44\x64\x27\x5a\x45\x64\x0d\x5a\x46\x64\x03\x5a\x47\x64\x10\x5a\x48\x64\x22\x5a\x49\x64\x0e\x5a\x4a\x64\x29\x5a\x4b\x64\x11\x5a\x4c\x64\x02\x5a\x4d\x64\x1f\x5a\x4e\x64\x20\x5a\x4f\x64\x05\x5a\x50\x64\x21\x5a\x51\x64\x28\x5a\x52\x09\x00\x64\x01\x64\x3b\x6c\x53\xad\x02\x01\x00\x79\x3c\x23\x00\x65\x54\x24\x00\x72\x03\x01\x00\x59\x00\x79\x3c\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_stat_toplevel(void) -{ - return Py_NewRef((PyObject *) &stat_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[46]; - } -importlib_util_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 45, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Utility code for constructing importers, etc.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str_Loader = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Loader", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_2 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_Loader._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_3 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_module_from_spec._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_4 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__resolve_name._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_5 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_spec_from_loader._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_6 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__find_spec._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_7 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_MAGIC_NUMBER._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_8 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__RAW_MAGIC_NUMBER._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_9 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_cache_from_source._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_10 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_decode_source._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_11 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_source_from_cache._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[67]; - } -importlib_util_toplevel_consts_15_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 66, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Return the hash of *source_bytes* as used in hash-based pyc files.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_15_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & importlib_util_toplevel_consts_15_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib_util_toplevel_consts_15_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str__imp._ascii.ob_base, - & const_str_source_hash._ascii.ob_base, - & const_str__RAW_MAGIC_NUMBER._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -importlib_util_toplevel_consts_15_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[23]; - } -importlib_util_toplevel_consts_15_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 22, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x0f\xd7\x0b\x1b\xd1\x0b\x1b\xd4\x1c\x2d\xa8\x7c\xd3\x0b\x3c\xd0\x04\x3c", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_15_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_source_bytes._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(54) -importlib_util_toplevel_consts_15 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 27, - }, - .co_consts = & importlib_util_toplevel_consts_15_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_15_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 19, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 721, - .co_localsplusnames = & importlib_util_toplevel_consts_15_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = & const_str_source_hash._ascii.ob_base, - .co_qualname = & const_str_source_hash._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_15_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[26]; - } -importlib_util_toplevel_consts_16_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 25, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "no package specified for ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[38]; - } -importlib_util_toplevel_consts_16_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 37, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " (required for relative module names)", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -importlib_util_toplevel_consts_16_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & importlib__bootstrap_toplevel_consts_50_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - & importlib_util_toplevel_consts_16_consts_2._ascii.ob_base, - & importlib_util_toplevel_consts_16_consts_3._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib_util_toplevel_consts_16_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_startswith._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - & const_str_repr._ascii.ob_base, - & const_str__resolve_name._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_resolve_name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "resolve_name", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[120]; - } -importlib_util_toplevel_consts_16_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 119, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x0b\x0f\x8f\x3f\x89\x3f\x98\x33\xd4\x0b\x1f\xd8\x0f\x13\x88\x0b\xd9\x0d\x14\xdc\x0e\x19\xd0\x1c\x35\xb4\x64\xb8\x34\xb3\x6a\xb0\x5c\xf0\x00\x01\x42\x01\x41\x01\xf0\x00\x01\x1b\x41\x01\xf3\x00\x01\x0f\x42\x01\xf0\x00\x01\x09\x42\x01\xe0\x0c\x0d\x80\x45\xdb\x15\x19\x88\x09\xd8\x0b\x14\x98\x03\xd2\x0b\x1b\xd9\x0c\x11\xd8\x08\x0d\x90\x11\x89\x0a\x89\x05\xf0\x07\x00\x16\x1a\xf4\x08\x00\x0c\x19\x98\x14\x98\x65\x98\x66\x98\x1c\xa0\x77\xb0\x05\xd3\x0b\x36\xd0\x04\x36", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_character = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "character", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib_util_toplevel_consts_16_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(name), - & const_str_package._ascii.ob_base, - &_Py_ID(level), - & const_str_character._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(166) -importlib_util_toplevel_consts_16 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 83, - }, - .co_consts = & importlib_util_toplevel_consts_16_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_16_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 10 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 24, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 722, - .co_localsplusnames = & importlib_util_toplevel_consts_16_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = & const_str_resolve_name._ascii.ob_base, - .co_qualname = & const_str_resolve_name._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_16_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x73\x02\x7c\x00\x53\x00\x7c\x01\x73\x18\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x9b\x00\x64\x03\x9d\x03\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x64\x04\x7d\x02\x7c\x00\x44\x00\x5d\x0e\x00\x00\x7d\x03\x7c\x03\x64\x01\x6b\x37\x00\x00\x72\x02\x01\x00\x6e\x07\x7c\x02\x64\x05\x7a\x0d\x00\x00\x7d\x02\x8c\x10\x04\x00\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x02\x64\x06\x1a\x00\x7c\x01\x7c\x02\xab\x03\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[648]; - } -importlib_util_toplevel_consts_17_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 647, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x73\x70\x65\x63\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x6d\x6f\x64\x75\x6c\x65\x2e\x0a\x0a\x20\x20\x20\x20\x46\x69\x72\x73\x74\x2c\x20\x73\x79\x73\x2e\x6d\x6f\x64\x75\x6c\x65\x73\x20\x69\x73\x20\x63\x68\x65\x63\x6b\x65\x64\x20\x74\x6f\x20\x73\x65\x65\x20\x69\x66\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x61\x73\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x2e\x20\x49\x66\x0a\x20\x20\x20\x20\x73\x6f\x2c\x20\x74\x68\x65\x6e\x20\x73\x79\x73\x2e\x6d\x6f\x64\x75\x6c\x65\x73\x5b\x6e\x61\x6d\x65\x5d\x2e\x5f\x5f\x73\x70\x65\x63\x5f\x5f\x20\x69\x73\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x2e\x20\x49\x66\x20\x74\x68\x61\x74\x20\x68\x61\x70\x70\x65\x6e\x73\x20\x74\x6f\x20\x62\x65\x0a\x20\x20\x20\x20\x73\x65\x74\x20\x74\x6f\x20\x4e\x6f\x6e\x65\x2c\x20\x74\x68\x65\x6e\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x20\x69\x73\x20\x72\x61\x69\x73\x65\x64\x2e\x20\x49\x66\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x0a\x20\x20\x20\x20\x73\x79\x73\x2e\x6d\x6f\x64\x75\x6c\x65\x73\x2c\x20\x74\x68\x65\x6e\x20\x73\x79\x73\x2e\x6d\x65\x74\x61\x5f\x70\x61\x74\x68\x20\x69\x73\x20\x73\x65\x61\x72\x63\x68\x65\x64\x20\x66\x6f\x72\x20\x61\x20\x73\x75\x69\x74\x61\x62\x6c\x65\x20\x73\x70\x65\x63\x20\x77\x69\x74\x68\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x27\x70\x61\x74\x68\x27\x20\x67\x69\x76\x65\x6e\x20\x74\x6f\x20\x74\x68\x65\x20\x66\x69\x6e\x64\x65\x72\x73\x2e\x20\x4e\x6f\x6e\x65\x20\x69\x73\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x69\x66\x20\x6e\x6f\x20\x73\x70\x65\x63\x20\x63\x6f\x75\x6c\x64\x0a\x20\x20\x20\x20\x62\x65\x20\x66\x6f\x75\x6e\x64\x2e\x0a\x0a\x20\x20\x20\x20\x44\x6f\x74\x74\x65\x64\x20\x6e\x61\x6d\x65\x73\x20\x64\x6f\x20\x6e\x6f\x74\x20\x68\x61\x76\x65\x20\x74\x68\x65\x69\x72\x20\x70\x61\x72\x65\x6e\x74\x20\x70\x61\x63\x6b\x61\x67\x65\x73\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x6c\x79\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x2e\x20\x59\x6f\x75\x20\x77\x69\x6c\x6c\x0a\x20\x20\x20\x20\x6d\x6f\x73\x74\x20\x6c\x69\x6b\x65\x6c\x79\x20\x6e\x65\x65\x64\x20\x74\x6f\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x6c\x79\x20\x69\x6d\x70\x6f\x72\x74\x20\x61\x6c\x6c\x20\x70\x61\x72\x65\x6e\x74\x20\x70\x61\x63\x6b\x61\x67\x65\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x70\x72\x6f\x70\x65\x72\x0a\x20\x20\x20\x20\x6f\x72\x64\x65\x72\x20\x66\x6f\x72\x20\x61\x20\x73\x75\x62\x6d\x6f\x64\x75\x6c\x65\x20\x74\x6f\x20\x67\x65\x74\x20\x74\x68\x65\x20\x63\x6f\x72\x72\x65\x63\x74\x20\x73\x70\x65\x63\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[18]; - } -importlib_util_toplevel_consts_17_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 17, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = ".__spec__ is None", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -importlib_util_toplevel_consts_17_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = ".__spec__ is not set", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib_util_toplevel_consts_17_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & importlib_util_toplevel_consts_17_consts_0._ascii.ob_base, - Py_None, - & importlib_util_toplevel_consts_17_consts_2._ascii.ob_base, - & importlib_util_toplevel_consts_17_consts_3._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -importlib_util_toplevel_consts_17_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - &_Py_ID(modules), - & const_str__find_spec._ascii.ob_base, - &_Py_ID(__spec__), - & const_str_ValueError._ascii.ob_base, - & const_str_AttributeError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -const_str__find_spec_from_path = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_find_spec_from_path", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[137]; - } -importlib_util_toplevel_consts_17_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 136, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x1e\x00\x08\x0c\x94\x33\x97\x3b\x91\x3b\xd1\x07\x1e\xdc\x0f\x19\x98\x24\xa0\x04\xd3\x0f\x25\xd0\x08\x25\xe4\x11\x14\x97\x1b\x91\x1b\x98\x54\xd1\x11\x22\x88\x06\xd8\x0b\x11\x88\x3e\xd8\x13\x17\xf0\x02\x07\x09\x18\xd8\x13\x19\x97\x3f\x91\x3f\x88\x44\xf0\x08\x00\x10\x14\x88\x7c\xdc\x16\x20\xa0\x44\xa0\x36\xd0\x29\x3a\xd0\x21\x3b\xd3\x16\x3c\xd0\x10\x3c\xd8\x13\x17\x88\x4b\xf8\xf4\x0b\x00\x10\x1e\xf2\x00\x01\x09\x46\x01\xdc\x12\x1c\xa0\x04\x98\x76\xd0\x25\x39\xd0\x1d\x3a\xd3\x12\x3b\xc0\x14\xd0\x0c\x45\xf0\x03\x01\x09\x46\x01\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[12]; - } -importlib_util_toplevel_consts_17_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 11, - }, - .ob_shash = -1, - .ob_sval = "\xb6\x0c\x41\x14\x00\xc1\x14\x19\x41\x2d\x03", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib_util_toplevel_consts_17_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(name), - &_Py_ID(path), - &_Py_ID(module), - & const_str_spec._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(224) -importlib_util_toplevel_consts_17 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 112, - }, - .co_consts = & importlib_util_toplevel_consts_17_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_17_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib_util_toplevel_consts_17_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 9 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 39, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 723, - .co_localsplusnames = & importlib_util_toplevel_consts_17_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = & const_str__find_spec_from_path._ascii.ob_base, - .co_qualname = & const_str__find_spec_from_path._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_17_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x01\x72\x0c\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x19\x00\x00\x00\x7d\x02\x7c\x02\x80\x01\x79\x01\x09\x00\x7c\x02\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x03\x80\x0e\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x9b\x00\x64\x02\x9d\x02\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x03\x53\x00\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x10\x01\x00\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x9b\x00\x64\x03\x9d\x02\xab\x01\x00\x00\x00\x00\x00\x00\x64\x01\x82\x02\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[688]; - } -importlib_util_toplevel_consts_18_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 687, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x65\x74\x75\x72\x6e\x20\x74\x68\x65\x20\x73\x70\x65\x63\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x6d\x6f\x64\x75\x6c\x65\x2e\x0a\x0a\x20\x20\x20\x20\x46\x69\x72\x73\x74\x2c\x20\x73\x79\x73\x2e\x6d\x6f\x64\x75\x6c\x65\x73\x20\x69\x73\x20\x63\x68\x65\x63\x6b\x65\x64\x20\x74\x6f\x20\x73\x65\x65\x20\x69\x66\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x61\x73\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x2e\x20\x49\x66\x0a\x20\x20\x20\x20\x73\x6f\x2c\x20\x74\x68\x65\x6e\x20\x73\x79\x73\x2e\x6d\x6f\x64\x75\x6c\x65\x73\x5b\x6e\x61\x6d\x65\x5d\x2e\x5f\x5f\x73\x70\x65\x63\x5f\x5f\x20\x69\x73\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x2e\x20\x49\x66\x20\x74\x68\x61\x74\x20\x68\x61\x70\x70\x65\x6e\x73\x20\x74\x6f\x20\x62\x65\x0a\x20\x20\x20\x20\x73\x65\x74\x20\x74\x6f\x20\x4e\x6f\x6e\x65\x2c\x20\x74\x68\x65\x6e\x20\x56\x61\x6c\x75\x65\x45\x72\x72\x6f\x72\x20\x69\x73\x20\x72\x61\x69\x73\x65\x64\x2e\x20\x49\x66\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x0a\x20\x20\x20\x20\x73\x79\x73\x2e\x6d\x6f\x64\x75\x6c\x65\x73\x2c\x20\x74\x68\x65\x6e\x20\x73\x79\x73\x2e\x6d\x65\x74\x61\x5f\x70\x61\x74\x68\x20\x69\x73\x20\x73\x65\x61\x72\x63\x68\x65\x64\x20\x66\x6f\x72\x20\x61\x20\x73\x75\x69\x74\x61\x62\x6c\x65\x20\x73\x70\x65\x63\x20\x77\x69\x74\x68\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x27\x70\x61\x74\x68\x27\x20\x67\x69\x76\x65\x6e\x20\x74\x6f\x20\x74\x68\x65\x20\x66\x69\x6e\x64\x65\x72\x73\x2e\x20\x4e\x6f\x6e\x65\x20\x69\x73\x20\x72\x65\x74\x75\x72\x6e\x65\x64\x20\x69\x66\x20\x6e\x6f\x20\x73\x70\x65\x63\x20\x63\x6f\x75\x6c\x64\x0a\x20\x20\x20\x20\x62\x65\x20\x66\x6f\x75\x6e\x64\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x74\x68\x65\x20\x6e\x61\x6d\x65\x20\x69\x73\x20\x66\x6f\x72\x20\x73\x75\x62\x6d\x6f\x64\x75\x6c\x65\x20\x28\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x61\x20\x64\x6f\x74\x29\x2c\x20\x74\x68\x65\x20\x70\x61\x72\x65\x6e\x74\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69\x73\x0a\x20\x20\x20\x20\x61\x75\x74\x6f\x6d\x61\x74\x69\x63\x61\x6c\x6c\x79\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x2e\x0a\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x6e\x61\x6d\x65\x20\x61\x6e\x64\x20\x70\x61\x63\x6b\x61\x67\x65\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x20\x77\x6f\x72\x6b\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x61\x73\x20\x69\x6d\x70\x6f\x72\x74\x6c\x69\x62\x2e\x69\x6d\x70\x6f\x72\x74\x5f\x6d\x6f\x64\x75\x6c\x65\x28\x29\x2e\x0a\x20\x20\x20\x20\x49\x6e\x20\x6f\x74\x68\x65\x72\x20\x77\x6f\x72\x64\x73\x2c\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x6e\x61\x6d\x65\x73\x20\x28\x77\x69\x74\x68\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x64\x6f\x74\x73\x29\x20\x77\x6f\x72\x6b\x2e\x0a\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_18_consts_4 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - &_Py_ID(fromlist), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[33]; - } -importlib_util_toplevel_consts_18_consts_5 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 32, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "__path__ attribute not found on ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -importlib_util_toplevel_consts_18_consts_6 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " while trying to find ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -importlib_util_toplevel_consts_18_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & importlib_util_toplevel_consts_18_consts_0._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - &_Py_ID(__path__), - & importlib_util_toplevel_consts_18_consts_4._object.ob_base.ob_base, - & importlib_util_toplevel_consts_18_consts_5._ascii.ob_base, - & importlib_util_toplevel_consts_18_consts_6._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_4_localsplusnames._object.ob_base.ob_base, - Py_None, - & importlib_util_toplevel_consts_17_consts_2._ascii.ob_base, - & importlib_util_toplevel_consts_17_consts_3._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[12]; - }_object; - } -importlib_util_toplevel_consts_18_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 12, - }, - .ob_item = { - & const_str_startswith._ascii.ob_base, - & const_str_resolve_name._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(modules), - & const_str_rpartition._ascii.ob_base, - &_Py_ID(__import__), - &_Py_ID(__path__), - & const_str_AttributeError._ascii.ob_base, - & const_str_ModuleNotFoundError._ascii.ob_base, - & const_str__find_spec._ascii.ob_base, - &_Py_ID(__spec__), - & const_str_ValueError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[285]; - } -importlib_util_toplevel_consts_18_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 284, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x22\x00\x2f\x33\xaf\x6f\xa9\x6f\xb8\x63\xd4\x2e\x42\x8c\x7c\x98\x44\xa0\x27\xd4\x0f\x2a\xc8\x04\x80\x48\xd8\x07\x0f\x94\x73\x97\x7b\x91\x7b\xd1\x07\x22\xd8\x16\x1e\xd7\x16\x29\xd1\x16\x29\xa8\x23\xd3\x16\x2e\xa8\x71\xd1\x16\x31\x88\x0b\xd9\x0b\x16\xdc\x15\x1f\xa0\x0b\xb0\x7a\xb0\x6c\xd4\x15\x43\x88\x46\xf0\x02\x05\x0d\x50\x01\xd8\x1e\x24\x9f\x6f\x99\x6f\x91\x0b\xf0\x0c\x00\x1b\x1f\x88\x4b\xdc\x0f\x19\x98\x28\xa0\x4b\xd3\x0f\x30\xd0\x08\x30\xe4\x11\x14\x97\x1b\x91\x1b\x98\x58\xd1\x11\x26\x88\x06\xd8\x0b\x11\x88\x3e\xd8\x13\x17\xf0\x02\x07\x09\x18\xd8\x13\x19\x97\x3f\x91\x3f\x88\x44\xf0\x08\x00\x10\x14\x88\x7c\xdc\x16\x20\xa0\x44\xa0\x36\xd0\x29\x3a\xd0\x21\x3b\xd3\x16\x3c\xd0\x10\x3c\xd8\x13\x17\x88\x4b\xf8\xf4\x25\x00\x14\x22\xf2\x00\x03\x0d\x50\x01\xdc\x16\x29\xd8\x16\x36\xb0\x7b\xb0\x6f\xf0\x00\x01\x46\x01\x2c\xd8\x2c\x34\xa8\x3c\xf0\x03\x01\x15\x39\xd8\x3f\x47\xf4\x05\x02\x17\x49\x01\xe0\x4e\x4f\xf0\x05\x02\x11\x50\x01\xfb\xf0\x03\x03\x0d\x50\x01\xfb\xf4\x1a\x00\x10\x1e\xf2\x00\x01\x09\x46\x01\xdc\x12\x1c\xa0\x04\x98\x76\xd0\x25\x39\xd0\x1d\x3a\xd3\x12\x3b\xc0\x14\xd0\x0c\x45\xf0\x03\x01\x09\x46\x01\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[37]; - } -importlib_util_toplevel_consts_18_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 36, - }, - .ob_shash = -1, - .ob_sval = "\xc1\x17\x0c\x42\x27\x00\xc2\x09\x0c\x43\x0c\x00\xc2\x27\x09\x43\x09\x03\xc2\x30\x14\x43\x04\x03\xc3\x04\x05\x43\x09\x03\xc3\x0c\x19\x43\x25\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_parent_name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "parent_name", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -importlib_util_toplevel_consts_18_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(name), - & const_str_package._ascii.ob_base, - & const_str_fullname._ascii.ob_base, - & const_str_parent_name._ascii.ob_base, - &_Py_ID(parent), - & const_str_parent_path._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[101], - &_Py_ID(module), - & const_str_spec._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(464) -importlib_util_toplevel_consts_18 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 232, - }, - .co_consts = & importlib_util_toplevel_consts_18_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_18_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib_util_toplevel_consts_18_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 16 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 70, - .co_nlocalsplus = 9, - .co_nlocals = 9, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 724, - .co_localsplusnames = & importlib_util_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_61_localspluskinds.ob_base.ob_base, - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = & const_str_find_spec._ascii.ob_base, - .co_qualname = & const_str_find_spec._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_18_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x72\x0c\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x6e\x01\x7c\x00\x7d\x02\x7c\x02\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x01\x72\x40\x7c\x02\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x64\x02\x19\x00\x00\x00\x7d\x03\x7c\x03\x72\x1c\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x64\x03\x67\x01\xac\x04\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x04\x09\x00\x7c\x04\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x6e\x02\x64\x08\x7d\x05\x74\x13\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x7c\x05\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x19\x00\x00\x00\x7d\x07\x7c\x07\x80\x01\x79\x08\x09\x00\x7c\x07\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x08\x7c\x08\x80\x0e\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x9b\x00\x64\x09\x9d\x02\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x08\x53\x00\x23\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x19\x7d\x06\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\x7c\x03\x9b\x02\x64\x06\x7c\x02\x9b\x02\x9d\x04\x7c\x02\xac\x07\xab\x02\x00\x00\x00\x00\x00\x00\x7c\x06\x82\x02\x64\x08\x7d\x06\x7e\x06\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x10\x01\x00\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x9b\x00\x64\x0a\x9d\x02\xab\x01\x00\x00\x00\x00\x00\x00\x64\x08\x82\x02\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[44]; - } -const_str__incompatible_extension_module_restrictions = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 43, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_incompatible_extension_module_restrictions", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[1384]; - } -importlib_util_toplevel_consts_19_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 1383, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x41\x20\x63\x6f\x6e\x74\x65\x78\x74\x20\x6d\x61\x6e\x61\x67\x65\x72\x20\x74\x68\x61\x74\x20\x63\x61\x6e\x20\x74\x65\x6d\x70\x6f\x72\x61\x72\x69\x6c\x79\x20\x73\x6b\x69\x70\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x61\x74\x69\x62\x69\x6c\x69\x74\x79\x20\x63\x68\x65\x63\x6b\x2e\x0a\x0a\x20\x20\x20\x20\x4e\x4f\x54\x45\x3a\x20\x54\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x20\x6d\x65\x61\x6e\x74\x20\x74\x6f\x20\x61\x63\x63\x6f\x6d\x6d\x6f\x64\x61\x74\x65\x20\x61\x6e\x20\x75\x6e\x75\x73\x75\x61\x6c\x20\x63\x61\x73\x65\x3b\x20\x6f\x6e\x65\x0a\x20\x20\x20\x20\x77\x68\x69\x63\x68\x20\x69\x73\x20\x6c\x69\x6b\x65\x6c\x79\x20\x74\x6f\x20\x65\x76\x65\x6e\x74\x75\x61\x6c\x6c\x79\x20\x67\x6f\x20\x61\x77\x61\x79\x2e\x20\x20\x54\x68\x65\x72\x65\x27\x73\x20\x69\x73\x20\x61\x20\x70\x72\x65\x74\x74\x79\x20\x67\x6f\x6f\x64\x0a\x20\x20\x20\x20\x63\x68\x61\x6e\x63\x65\x20\x74\x68\x69\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x77\x68\x61\x74\x20\x79\x6f\x75\x20\x77\x65\x72\x65\x20\x6c\x6f\x6f\x6b\x69\x6e\x67\x20\x66\x6f\x72\x2e\x0a\x0a\x20\x20\x20\x20\x57\x41\x52\x4e\x49\x4e\x47\x3a\x20\x55\x73\x69\x6e\x67\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x20\x64\x69\x73\x61\x62\x6c\x65\x20\x74\x68\x65\x20\x63\x68\x65\x63\x6b\x20\x63\x61\x6e\x20\x6c\x65\x61\x64\x20\x74\x6f\x0a\x20\x20\x20\x20\x75\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x62\x65\x68\x61\x76\x69\x6f\x72\x20\x61\x6e\x64\x20\x65\x76\x65\x6e\x20\x63\x72\x61\x73\x68\x65\x73\x2e\x20\x20\x49\x74\x20\x73\x68\x6f\x75\x6c\x64\x20\x6f\x6e\x6c\x79\x20\x62\x65\x20\x75\x73\x65\x64\x20\x64\x75\x72\x69\x6e\x67\x0a\x20\x20\x20\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x6d\x6f\x64\x75\x6c\x65\x20\x64\x65\x76\x65\x6c\x6f\x70\x6d\x65\x6e\x74\x2e\x0a\x0a\x20\x20\x20\x20\x49\x66\x20\x22\x64\x69\x73\x61\x62\x6c\x65\x5f\x63\x68\x65\x63\x6b\x22\x20\x69\x73\x20\x54\x72\x75\x65\x20\x74\x68\x65\x6e\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x61\x74\x69\x62\x69\x6c\x69\x74\x79\x20\x63\x68\x65\x63\x6b\x20\x77\x69\x6c\x6c\x20\x6e\x6f\x74\x0a\x20\x20\x20\x20\x68\x61\x70\x70\x65\x6e\x20\x77\x68\x69\x6c\x65\x20\x74\x68\x65\x20\x63\x6f\x6e\x74\x65\x78\x74\x20\x6d\x61\x6e\x61\x67\x65\x72\x20\x69\x73\x20\x61\x63\x74\x69\x76\x65\x2e\x20\x20\x4f\x74\x68\x65\x72\x77\x69\x73\x65\x20\x74\x68\x65\x20\x63\x68\x65\x63\x6b\x0a\x20\x20\x20\x20\x2a\x77\x69\x6c\x6c\x2a\x20\x68\x61\x70\x70\x65\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x4e\x6f\x72\x6d\x61\x6c\x6c\x79\x2c\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x73\x20\x74\x68\x61\x74\x20\x64\x6f\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x73\x0a\x20\x20\x20\x20\x6d\x61\x79\x20\x6e\x6f\x74\x20\x62\x65\x20\x69\x6d\x70\x6f\x72\x74\x65\x64\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x2e\x20\x20\x54\x68\x61\x74\x20\x69\x6d\x70\x6c\x69\x65\x73\x20\x6d\x6f\x64\x75\x6c\x65\x73\x0a\x20\x20\x20\x20\x74\x68\x61\x74\x20\x64\x6f\x20\x6e\x6f\x74\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x20\x6d\x75\x6c\x74\x69\x2d\x70\x68\x61\x73\x65\x20\x69\x6e\x69\x74\x20\x6f\x72\x20\x74\x68\x61\x74\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x6c\x79\x20\x6f\x66\x20\x6f\x75\x74\x2e\x0a\x0a\x20\x20\x20\x20\x4c\x69\x6b\x65\x77\x69\x73\x65\x20\x66\x6f\x72\x20\x6d\x6f\x64\x75\x6c\x65\x73\x20\x69\x6d\x70\x6f\x72\x74\x20\x69\x6e\x20\x61\x20\x73\x75\x62\x69\x6e\x74\x65\x72\x70\x65\x74\x65\x72\x20\x77\x69\x74\x68\x20\x69\x74\x73\x20\x6f\x77\x6e\x20\x47\x49\x4c\x0a\x20\x20\x20\x20\x77\x68\x65\x6e\x20\x74\x68\x65\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x61\x20\x70\x65\x72\x2d\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x47\x49\x4c\x2e\x20\x20\x54\x68\x69\x73\x0a\x20\x20\x20\x20\x69\x6d\x70\x6c\x69\x65\x73\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x68\x61\x76\x65\x20\x61\x20\x50\x79\x5f\x6d\x6f\x64\x5f\x6d\x75\x6c\x74\x69\x70\x6c\x65\x5f\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x73\x20\x73\x6c\x6f\x74\x0a\x20\x20\x20\x20\x73\x65\x74\x20\x74\x6f\x20\x50\x79\x5f\x4d\x4f\x44\x5f\x50\x45\x52\x5f\x49\x4e\x54\x45\x52\x50\x52\x45\x54\x45\x52\x5f\x47\x49\x4c\x5f\x53\x55\x50\x50\x4f\x52\x54\x45\x44\x2e\x0a\x0a\x20\x20\x20\x20\x49\x6e\x20\x62\x6f\x74\x68\x20\x63\x61\x73\x65\x73\x2c\x20\x74\x68\x69\x73\x20\x63\x6f\x6e\x74\x65\x78\x74\x20\x6d\x61\x6e\x61\x67\x65\x72\x20\x6d\x61\x79\x20\x62\x65\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x74\x65\x6d\x70\x6f\x72\x61\x72\x69\x6c\x79\x0a\x20\x20\x20\x20\x64\x69\x73\x61\x62\x6c\x65\x20\x74\x68\x65\x20\x63\x68\x65\x63\x6b\x20\x66\x6f\x72\x20\x63\x6f\x6d\x70\x61\x74\x69\x62\x6c\x65\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x6d\x6f\x64\x75\x6c\x65\x73\x2e\x0a\x0a\x20\x20\x20\x20\x59\x6f\x75\x20\x63\x61\x6e\x20\x67\x65\x74\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x65\x66\x66\x65\x63\x74\x20\x61\x73\x20\x74\x68\x69\x73\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x79\x20\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x69\x6e\x67\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x62\x61\x73\x69\x63\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x6f\x66\x20\x6d\x75\x6c\x74\x69\x2d\x70\x68\x61\x73\x65\x20\x69\x6e\x69\x74\x20\x28\x50\x45\x50\x20\x34\x38\x39\x29\x20\x61\x6e\x64\x20\x6c\x79\x69\x6e\x67\x20\x61\x62\x6f\x75\x74\x0a\x20\x20\x20\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x66\x6f\x72\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x73\x20\x28\x6f\x72\x20\x70\x65\x72\x2d\x69\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x47\x49\x4c\x29\x2e\x0a\x20\x20\x20\x20", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_disable_check = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "disable_check", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib_util_toplevel_consts_19_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_bool._ascii.ob_base, - & const_str_disable_check._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[53]; - } -importlib_util_toplevel_consts_19_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 52, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_incompatible_extension_module_restrictions.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[16]; - } -importlib_util_toplevel_consts_19_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 15, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x1d\x21\xa0\x2d\xd3\x1d\x30\x88\x04\xd5\x08\x1a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib_util_toplevel_consts_19_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - & const_str_disable_check._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(36) -importlib_util_toplevel_consts_19_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 18, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_19_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 1, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 151, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 725, - .co_localsplusnames = & importlib_util_toplevel_consts_19_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & importlib_util_toplevel_consts_19_consts_2_qualname._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_19_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[40]; - } -const_str__override_multi_interp_extensions_check = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 39, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_override_multi_interp_extensions_check", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib_util_toplevel_consts_19_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str__imp._ascii.ob_base, - & const_str__override_multi_interp_extensions_check._ascii.ob_base, - & const_str_override._ascii.ob_base, - & const_str_old._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[54]; - } -importlib_util_toplevel_consts_19_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 53, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_incompatible_extension_module_restrictions.__enter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -importlib_util_toplevel_consts_19_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x13\x17\xd7\x13\x3f\xd1\x13\x3f\xc0\x04\xc7\x0d\xc1\x0d\xd3\x13\x4e\x88\x04\x8c\x08\xd8\x0f\x13\x88\x0b", -}; -static - struct _PyCode_DEF(78) -importlib_util_toplevel_consts_19_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 39, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_19_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 154, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 726, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = &_Py_ID(__enter__), - .co_qualname = & importlib_util_toplevel_consts_19_consts_3_qualname._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_19_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib_util_toplevel_consts_19_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_old._ascii.ob_base, - & const_str__imp._ascii.ob_base, - & const_str__override_multi_interp_extensions_check._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[53]; - } -importlib_util_toplevel_consts_19_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 52, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_incompatible_extension_module_restrictions.__exit__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[31]; - } -importlib_util_toplevel_consts_19_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 30, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0e\x12\x8f\x68\x89\x68\x88\x03\xd8\x0c\x10\x88\x48\xdc\x08\x0c\xd7\x08\x34\xd1\x08\x34\xb0\x53\xd5\x08\x39", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib_util_toplevel_consts_19_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(args), - & const_str_old._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(74) -importlib_util_toplevel_consts_19_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 37, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_19_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 158, - .co_nlocalsplus = 3, - .co_nlocals = 3, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 727, - .co_localsplusnames = & importlib_util_toplevel_consts_19_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = &_Py_ID(__exit__), - .co_qualname = & importlib_util_toplevel_consts_19_consts_4_qualname._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_19_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x00\x60\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib_util_toplevel_consts_19_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -1], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_19_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_disable_check._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[53]; - } -importlib_util_toplevel_consts_19_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 52, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_incompatible_extension_module_restrictions.override", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[22]; - } -importlib_util_toplevel_consts_19_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 21, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe0\x15\x19\xd7\x15\x27\xd2\x15\x27\x88\x72\xd0\x08\x2e\xa8\x51\xd0\x08\x2e", -}; -static - struct _PyCode_DEF(34) -importlib_util_toplevel_consts_19_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 17, - }, - .co_consts = & importlib_util_toplevel_consts_19_consts_5_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_19_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 163, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 728, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = & const_str_override._ascii.ob_base, - .co_qualname = & importlib_util_toplevel_consts_19_consts_5_qualname._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_19_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x02\x64\x01\x53\x00\x64\x02\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -importlib_util_toplevel_consts_19_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str__incompatible_extension_module_restrictions._ascii.ob_base, - & importlib_util_toplevel_consts_19_consts_1._ascii.ob_base, - & importlib_util_toplevel_consts_19_consts_2.ob_base.ob_base, - & importlib_util_toplevel_consts_19_consts_3.ob_base.ob_base, - & importlib_util_toplevel_consts_19_consts_4.ob_base.ob_base, - & importlib_util_toplevel_consts_19_consts_5.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -importlib_util_toplevel_consts_19_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__init__), - &_Py_ID(__enter__), - &_Py_ID(__exit__), - & const_str_property._ascii.ob_base, - & const_str_override._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[43]; - } -importlib_util_toplevel_consts_19_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 42, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf1\x02\x1d\x05\x08\xf2\x3e\x01\x05\x31\xf2\x06\x02\x05\x14\xf2\x08\x03\x05\x3a\xf0\x0a\x00\x06\x0e\xf1\x02\x01\x05\x2f\xf3\x03\x00\x06\x0e\xf1\x02\x01\x05\x2f", -}; -static - struct _PyCode_DEF(50) -importlib_util_toplevel_consts_19 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 25, - }, - .co_consts = & importlib_util_toplevel_consts_19_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_19_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 119, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 729, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = & const_str__incompatible_extension_module_restrictions._ascii.ob_base, - .co_qualname = & const_str__incompatible_extension_module_restrictions._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_19_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x04\x84\x00\x5a\x06\x65\x07\x64\x05\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x08\x79\x06", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str__LazyModule = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_LazyModule", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[76]; - } -importlib_util_toplevel_consts_21_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 75, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "A subclass of the module type which triggers loading upon attribute access.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[57]; - } -importlib_util_toplevel_consts_21_consts_2_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 56, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Trigger the load of the module and return the attribute.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_is_loading = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "is_loading", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -importlib_util_toplevel_consts_21_consts_2_consts_8 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "module object for ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[47]; - } -importlib_util_toplevel_consts_21_consts_2_consts_9 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 46, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " substituted in sys.modules during a lazy load", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -importlib_util_toplevel_consts_21_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - & importlib_util_toplevel_consts_21_consts_2_consts_0._ascii.ob_base, - &_Py_ID(__spec__), - & const_str_lock._ascii.ob_base, - &_Py_ID(__class__), - & const_str_is_loading._ascii.ob_base, - Py_None, - Py_True, - &_Py_ID(__dict__), - & importlib_util_toplevel_consts_21_consts_2_consts_8._ascii.ob_base, - & importlib_util_toplevel_consts_21_consts_2_consts_9._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_types = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "types", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_ModuleType = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "ModuleType", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[17]; - }_object; - } -importlib_util_toplevel_consts_21_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 17, - }, - .ob_item = { - &_Py_ID(object), - &_Py_ID(__getattribute__), - & const_str_loader_state._ascii.ob_base, - & const_str__LazyModule._ascii.ob_base, - &_Py_ID(name), - &_Py_ID(items), - &_Py_ID(id), - & const_str_loader._ascii.ob_base, - & const_str_exec_module._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(modules), - & const_str_ValueError._ascii.ob_base, - & const_str_update._ascii.ob_base, - & const_str_types._ascii.ob_base, - & const_str_ModuleType._ascii.ob_base, - &_Py_ID(__class__), - &_Py_ID(getattr), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -importlib_util_toplevel_consts_21_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_LazyModule.__getattribute__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[388]; - } -importlib_util_toplevel_consts_21_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 387, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x13\x19\xd7\x13\x2a\xd1\x13\x2a\xa8\x34\xb0\x1a\xd3\x13\x3c\x88\x08\xd8\x17\x1f\xd7\x17\x2c\xd1\x17\x2c\x88\x0c\xd8\x0d\x19\x98\x26\xd3\x0d\x21\xf4\x06\x00\x10\x16\xd7\x0f\x26\xd1\x0f\x26\xa0\x74\xa8\x5b\xd3\x0f\x39\xbc\x5b\xd2\x0f\x48\xf0\x0a\x00\x14\x20\xa0\x0c\xd2\x13\x2d\xdc\x1b\x21\xd7\x1b\x32\xd1\x1b\x32\xb0\x34\xb8\x14\xd3\x1b\x3e\xf7\x13\x00\x0e\x22\xd1\x0d\x21\xf0\x14\x00\x2e\x32\x90\x0c\x98\x5c\xd1\x10\x2a\xe4\x1b\x21\xd7\x1b\x32\xd1\x1b\x32\xb0\x34\xb8\x1a\xd3\x1b\x44\x90\x08\xf0\x0c\x00\x21\x29\xa7\x0d\xa1\x0d\x90\x0d\xf0\x06\x00\x1e\x2a\xa8\x2a\xd1\x1d\x35\x90\x0a\xd8\x1c\x24\x90\x09\xd8\x20\x22\x90\x0d\xd8\x22\x2b\xa7\x2f\xa1\x2f\xd6\x22\x33\x91\x4a\x90\x43\x98\x15\xf0\x06\x00\x18\x1b\xa0\x2a\xd1\x17\x2c\xd8\x2d\x32\x98\x0d\xa0\x63\xd2\x18\x2a\xdc\x19\x1b\x98\x49\xa0\x63\x99\x4e\xd3\x19\x2b\xac\x72\xb0\x2a\xb8\x53\xb1\x2f\xd3\x2f\x42\xd3\x19\x42\xd8\x2d\x32\x98\x0d\xa0\x63\xd2\x18\x2a\xf0\x0d\x00\x23\x34\xf0\x0e\x00\x11\x19\x97\x0f\x91\x0f\xd7\x10\x2b\xd1\x10\x2b\xa8\x44\xd4\x10\x31\xf0\x06\x00\x14\x21\xa4\x43\xa7\x4b\xa1\x4b\xd1\x13\x2f\xdc\x17\x19\x98\x24\x93\x78\xa4\x32\xa4\x63\xa7\x6b\xa1\x6b\xb0\x2d\xd1\x26\x40\xd3\x23\x41\xd2\x17\x41\xdc\x1e\x28\xd0\x2b\x3d\xb8\x6d\xd0\x3d\x4e\xf0\x00\x02\x4f\x01\x31\xf0\x00\x02\x2a\x31\xf3\x00\x02\x1f\x32\xf0\x00\x02\x19\x32\xf0\x0a\x00\x11\x19\x97\x0f\x91\x0f\xa0\x0d\xd4\x10\x2e\xe4\x21\x26\xd7\x21\x31\xd1\x21\x31\x90\x04\x94\x0e\xf7\x57\x01\x00\x0e\x22\xf4\x5a\x01\x00\x10\x17\x90\x74\x98\x54\xd3\x0f\x22\xd0\x08\x22\xf7\x5b\x01\x00\x0e\x22\xd0\x0d\x21\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[26]; - } -importlib_util_toplevel_consts_21_consts_2_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 25, - }, - .ob_shash = -1, - .ob_sval = "\xa8\x38\x45\x3d\x03\xc1\x2a\x41\x2d\x45\x3d\x03\xc3\x18\x42\x11\x45\x3d\x03\xc5\x3d\x05\x46\x06\x07", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_attr = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "attr", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_original_name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "original_name", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_attrs_then = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "attrs_then", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_attrs_now = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "attrs_now", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_attrs_updated = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "attrs_updated", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -importlib_util_toplevel_consts_21_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - &_Py_ID(self), - & const_str_attr._ascii.ob_base, - &_Py_ID(__spec__), - & const_str_loader_state._ascii.ob_base, - &_Py_ID(__dict__), - & const_str_original_name._ascii.ob_base, - & const_str_attrs_then._ascii.ob_base, - & const_str_attrs_now._ascii.ob_base, - & const_str_attrs_updated._ascii.ob_base, - &_Py_ID(key), - &_Py_ID(value), - }, - }, -}; -static - struct _PyCode_DEF(786) -importlib_util_toplevel_consts_21_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 393, - }, - .co_consts = & importlib_util_toplevel_consts_21_consts_2_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_21_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = & importlib_util_toplevel_consts_21_consts_2_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 18 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 172, - .co_nlocalsplus = 11, - .co_nlocals = 11, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 730, - .co_localsplusnames = & importlib_util_toplevel_consts_21_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_6_localspluskinds.ob_base.ob_base, - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = &_Py_ID(__getattribute__), - .co_qualname = & importlib_util_toplevel_consts_21_consts_2_qualname._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_21_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x02\x7c\x02\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x7c\x03\x64\x02\x19\x00\x00\x00\x35\x00\x01\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x03\xab\x02\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x90\x01\x72\x23\x7c\x03\x64\x04\x19\x00\x00\x00\x72\x1f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x63\x02\x64\x05\x64\x05\x64\x05\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x53\x00\x64\x06\x7c\x03\x64\x04\x3c\x00\x00\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x07\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x04\x7c\x02\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x7c\x03\x64\x07\x19\x00\x00\x00\x7d\x06\x7c\x04\x7d\x07\x69\x00\x7d\x08\x7c\x07\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x44\x00\x5d\x32\x00\x00\x5c\x02\x00\x00\x7d\x09\x7d\x0a\x7c\x09\x7c\x06\x76\x01\x72\x06\x7c\x0a\x7c\x08\x7c\x09\x3c\x00\x00\x00\x8c\x10\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\x7c\x09\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x7c\x09\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x73\x01\x8c\x2e\x7c\x0a\x7c\x08\x7c\x09\x3c\x00\x00\x00\x8c\x34\x04\x00\x7c\x02\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x05\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x00\x72\x37\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x6b\x37\x00\x00\x72\x0f\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x64\x08\x7c\x05\x9b\x02\x64\x09\x9d\x03\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x04\x6a\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x05\x64\x05\x64\x05\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x74\x21\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x8c\x15\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[48]; - } -importlib_util_toplevel_consts_21_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 47, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Trigger the load and then perform the deletion.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib_util_toplevel_consts_21_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & importlib_util_toplevel_consts_21_consts_3_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_delattr = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "delattr", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib_util_toplevel_consts_21_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(__getattribute__), - & const_str_delattr._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -importlib_util_toplevel_consts_21_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_LazyModule.__delattr__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[29]; - } -importlib_util_toplevel_consts_21_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 28, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x00\x09\x0d\xd7\x08\x1d\xd1\x08\x1d\x98\x64\xd4\x08\x23\xdc\x08\x0f\x90\x04\x90\x64\xd5\x08\x1b", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib_util_toplevel_consts_21_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - & const_str_attr._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(62) -importlib_util_toplevel_consts_21_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 31, - }, - .co_consts = & importlib_util_toplevel_consts_21_consts_3_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_21_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 223, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 731, - .co_localsplusnames = & importlib_util_toplevel_consts_21_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = &_Py_ID(__delattr__), - .co_qualname = & importlib_util_toplevel_consts_21_consts_3_qualname._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_21_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -importlib_util_toplevel_consts_21_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str__LazyModule._ascii.ob_base, - & importlib_util_toplevel_consts_21_consts_1._ascii.ob_base, - & importlib_util_toplevel_consts_21_consts_2.ob_base.ob_base, - & importlib_util_toplevel_consts_21_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -importlib_util_toplevel_consts_21_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - &_Py_ID(__getattribute__), - &_Py_ID(__delattr__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[17]; - } -importlib_util_toplevel_consts_21_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 16, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe1\x04\x55\xf2\x04\x31\x05\x23\xf3\x66\x01\x05\x05\x1c", -}; -static - struct _PyCode_DEF(28) -importlib_util_toplevel_consts_21 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 14, - }, - .co_consts = & importlib_util_toplevel_consts_21_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_21_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 168, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 732, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = & const_str__LazyModule._ascii.ob_base, - .co_qualname = & const_str__LazyModule._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_21_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_LazyLoader = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LazyLoader", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[76]; - } -importlib_util_toplevel_consts_23_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 75, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "A loader that creates a module which defers loading until attribute access.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[33]; - } -importlib_util_toplevel_consts_23_consts_2_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 32, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "loader must define exec_module()", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib_util_toplevel_consts_23_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & const_str_exec_module._ascii.ob_base, - & importlib_util_toplevel_consts_23_consts_2_consts_2._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib_util_toplevel_consts_23_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_hasattr._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -const_str___check_eager_loader = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "__check_eager_loader", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -importlib_util_toplevel_consts_23_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LazyLoader.__check_eager_loader", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -importlib_util_toplevel_consts_23_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0f\x16\x90\x76\x98\x7d\xd4\x0f\x2d\xdc\x12\x1b\xd0\x1c\x3e\xd3\x12\x3f\xd0\x0c\x3f\xf0\x03\x00\x10\x2e", -}; -static - struct _PyCode_DEF(50) -importlib_util_toplevel_consts_23_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 25, - }, - .co_consts = & importlib_util_toplevel_consts_23_consts_2_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_23_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 235, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 733, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_33_consts_4._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = & const_str___check_eager_loader._ascii.ob_base, - .co_qualname = & importlib_util_toplevel_consts_23_consts_2_qualname._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_23_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x73\x0b\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[63]; - } -importlib_util_toplevel_consts_23_consts_3_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 62, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Construct a callable which returns the eager loader made lazy.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[37]; - } -importlib_util_toplevel_consts_23_consts_3_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 36, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LazyLoader.factory..", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[21]; - } -importlib_util_toplevel_consts_23_consts_3_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 20, - }, - .ob_shash = -1, - .ob_sval = "\xf8\x80\x00\xa1\x73\xa9\x36\xb0\x34\xd0\x2b\x42\xb8\x36\xd1\x2b\x42\xd4\x27\x43", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib_util_toplevel_consts_23_consts_3_consts_1_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(args), - & const_str_kwargs._ascii.ob_base, - & const_str_cls._ascii.ob_base, - & const_str_loader._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(32) -importlib_util_toplevel_consts_23_consts_3_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 16, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 31, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 244, - .co_nlocalsplus = 4, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 2, - .co_version = 734, - .co_localsplusnames = & importlib_util_toplevel_consts_23_consts_3_consts_1_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & os_toplevel_consts_87_consts_6_localspluskinds.ob_base.ob_base, - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_lambda), - .co_qualname = & importlib_util_toplevel_consts_23_consts_3_consts_1_qualname._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_23_consts_3_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x95\x02\x97\x00\x02\x00\x89\x02\x02\x00\x89\x03\x7c\x00\x69\x00\x7c\x01\xa4\x01\x8e\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 1, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib_util_toplevel_consts_23_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & importlib_util_toplevel_consts_23_consts_3_consts_0._ascii.ob_base, - & importlib_util_toplevel_consts_23_consts_3_consts_1.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -const_str__LazyLoader__check_eager_loader = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_LazyLoader__check_eager_loader", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_util_toplevel_consts_23_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str__LazyLoader__check_eager_loader._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -importlib_util_toplevel_consts_23_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LazyLoader.factory", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[26]; - } -importlib_util_toplevel_consts_23_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 25, - }, - .ob_shash = -1, - .ob_sval = "\xf9\x80\x00\xf0\x06\x00\x09\x0c\xd7\x08\x20\xd1\x08\x20\xa0\x16\xd4\x08\x28\xdc\x0f\x43\xd0\x08\x43", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib_util_toplevel_consts_23_consts_3_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_cls._ascii.ob_base, - & const_str_loader._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[3]; - } -importlib_util_toplevel_consts_23_consts_3_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 2, - }, - .ob_shash = -1, - .ob_sval = "``", -}; -static - struct _PyCode_DEF(52) -importlib_util_toplevel_consts_23_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 26, - }, - .co_consts = & importlib_util_toplevel_consts_23_consts_3_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_23_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 240, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 2, - .co_nfreevars = 0, - .co_version = 735, - .co_localsplusnames = & importlib_util_toplevel_consts_23_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib_util_toplevel_consts_23_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = &_Py_ID(factory), - .co_qualname = & importlib_util_toplevel_consts_23_consts_3_qualname._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_23_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x87\x00\x87\x01\x97\x00\x89\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x88\x00\x88\x01\x66\x02\x64\x01\x84\x08\x53\x00", - ._co_firsttraceable = 2, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib_util_toplevel_consts_23_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str__LazyLoader__check_eager_loader._ascii.ob_base, - & const_str_loader._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -importlib_util_toplevel_consts_23_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LazyLoader.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -importlib_util_toplevel_consts_23_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x08\x0c\xd7\x08\x21\xd1\x08\x21\xa0\x26\xd4\x08\x29\xd8\x16\x1c\x88\x04\x8d\x0b", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib_util_toplevel_consts_23_consts_4_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - & const_str_loader._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(52) -importlib_util_toplevel_consts_23_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 26, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_23_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 246, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 736, - .co_localsplusnames = & importlib_util_toplevel_consts_23_consts_4_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & importlib_util_toplevel_consts_23_consts_4_qualname._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_23_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -importlib_util_toplevel_consts_23_consts_5_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_loader._ascii.ob_base, - & const_str_create_module._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -importlib_util_toplevel_consts_23_consts_5_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LazyLoader.create_module", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -importlib_util_toplevel_consts_23_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0f\x13\x8f\x7b\x89\x7b\xd7\x0f\x28\xd1\x0f\x28\xa8\x14\xd3\x0f\x2e\xd0\x08\x2e", -}; -static - struct _PyCode_DEF(56) -importlib_util_toplevel_consts_23_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 28, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_23_consts_5_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 250, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 737, - .co_localsplusnames = & importlib__bootstrap_external_toplevel_consts_54_consts_3_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = & const_str_create_module._ascii.ob_base, - .co_qualname = & importlib_util_toplevel_consts_23_consts_5_qualname._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_23_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -importlib_util_toplevel_consts_23_consts_6_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Make the module load lazily.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -importlib_util_toplevel_consts_23_consts_6_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & importlib_util_toplevel_consts_23_consts_6_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - &_Py_ID(__dict__), - &_Py_ID(__class__), - & const_str_lock._ascii.ob_base, - Py_False, - & const_str_is_loading._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -importlib_util_toplevel_consts_23_consts_6_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(threading), - & const_str_loader._ascii.ob_base, - &_Py_ID(__spec__), - &_Py_ID(__loader__), - &_Py_ID(__dict__), - &_Py_ID(copy), - &_Py_ID(__class__), - & const_str_RLock._ascii.ob_base, - & const_str_loader_state._ascii.ob_base, - & const_str__LazyModule._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[23]; - } -importlib_util_toplevel_consts_23_consts_6_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 22, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "LazyLoader.exec_module", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[129]; - } -importlib_util_toplevel_consts_23_consts_6_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 128, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf3\x08\x00\x09\x19\xd8\x21\x25\xa7\x1b\xa1\x1b\x88\x06\x8f\x0f\x89\x0f\xd4\x08\x1e\xd8\x1c\x20\x9f\x4b\x99\x4b\x88\x06\xd4\x08\x19\xf0\x0a\x00\x18\x1a\x88\x0c\xd8\x23\x29\xa7\x3f\xa1\x3f\xd7\x23\x37\xd1\x23\x37\xd3\x23\x39\x88\x0c\x90\x5a\xd1\x08\x20\xd8\x24\x2a\xd7\x24\x34\xd1\x24\x34\x88\x0c\x90\x5b\xd1\x08\x21\xd8\x1f\x28\x9f\x7f\x99\x7f\xd3\x1f\x30\x88\x0c\x90\x56\xd1\x08\x1c\xd8\x25\x2a\x88\x0c\x90\x5c\xd1\x08\x22\xd8\x27\x33\x88\x06\x8f\x0f\x89\x0f\xd4\x08\x24\xdc\x1b\x26\x88\x06\xd5\x08\x18", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -importlib_util_toplevel_consts_23_consts_6_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(self), - &_Py_ID(module), - &_Py_ID(threading), - & const_str_loader_state._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(296) -importlib_util_toplevel_consts_23_consts_6 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 148, - }, - .co_consts = & importlib_util_toplevel_consts_23_consts_6_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_23_consts_6_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 7 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 253, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 738, - .co_localsplusnames = & importlib_util_toplevel_consts_23_consts_6_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = & const_str_exec_module._ascii.ob_base, - .co_qualname = & importlib_util_toplevel_consts_23_consts_6_qualname._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_23_consts_6_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x64\x02\x6c\x00\x7d\x02\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x69\x00\x7d\x03\x7c\x01\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x64\x03\x3c\x00\x00\x00\x7c\x01\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x64\x04\x3c\x00\x00\x00\x7c\x02\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x64\x05\x3c\x00\x00\x00\x64\x06\x7c\x03\x64\x07\x3c\x00\x00\x00\x7c\x03\x7c\x01\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x08\x00\x00\x00\x00\x00\x00\x00\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x5f\x06\x00\x00\x00\x00\x00\x00\x00\x00\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[8]; - }_object; - } -importlib_util_toplevel_consts_23_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 8, - }, - .ob_item = { - & const_str_LazyLoader._ascii.ob_base, - & importlib_util_toplevel_consts_23_consts_1._ascii.ob_base, - & importlib_util_toplevel_consts_23_consts_2.ob_base.ob_base, - & importlib_util_toplevel_consts_23_consts_3.ob_base.ob_base, - & importlib_util_toplevel_consts_23_consts_4.ob_base.ob_base, - & importlib_util_toplevel_consts_23_consts_5.ob_base.ob_base, - & importlib_util_toplevel_consts_23_consts_6.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -importlib_util_toplevel_consts_23_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - & const_str_staticmethod._ascii.ob_base, - & const_str__LazyLoader__check_eager_loader._ascii.ob_base, - & const_str_classmethod._ascii.ob_base, - &_Py_ID(factory), - &_Py_ID(__init__), - & const_str_create_module._ascii.ob_base, - & const_str_exec_module._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[63]; - } -importlib_util_toplevel_consts_23_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 62, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xe1\x04\x55\xe0\x05\x11\xf1\x02\x02\x05\x40\x01\xf3\x03\x00\x06\x12\xf0\x02\x02\x05\x40\x01\xf0\x08\x00\x06\x11\xf1\x02\x03\x05\x44\x01\xf3\x03\x00\x06\x11\xf0\x02\x03\x05\x44\x01\xf2\x0a\x02\x05\x1d\xf2\x08\x01\x05\x2f\xf3\x06\x11\x05\x27", -}; -static - struct _PyCode_DEF(66) -importlib_util_toplevel_consts_23 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 33, - }, - .co_consts = & importlib_util_toplevel_consts_23_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_consts_23_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 231, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 739, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = & const_str_LazyLoader._ascii.ob_base, - .co_qualname = & const_str_LazyLoader._ascii.ob_base, - .co_linetable = & importlib_util_toplevel_consts_23_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x65\x04\x64\x02\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x05\x65\x06\x64\x03\x84\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5a\x07\x64\x04\x84\x00\x5a\x08\x64\x05\x84\x00\x5a\x09\x64\x06\x84\x00\x5a\x0a\x79\x07", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[26]; - }_object; - } -importlib_util_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 26, - }, - .ob_item = { - & importlib_util_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - & importlib_util_toplevel_consts_2._object.ob_base.ob_base, - & importlib_util_toplevel_consts_3._object.ob_base.ob_base, - & importlib_util_toplevel_consts_4._object.ob_base.ob_base, - & importlib_util_toplevel_consts_5._object.ob_base.ob_base, - & importlib_util_toplevel_consts_6._object.ob_base.ob_base, - & importlib_util_toplevel_consts_7._object.ob_base.ob_base, - & importlib_util_toplevel_consts_8._object.ob_base.ob_base, - & importlib_util_toplevel_consts_9._object.ob_base.ob_base, - & importlib_util_toplevel_consts_10._object.ob_base.ob_base, - & importlib_util_toplevel_consts_11._object.ob_base.ob_base, - & importlib__bootstrap_external_toplevel_consts_72_consts_4_names._object.ob_base.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & importlib_util_toplevel_consts_15.ob_base.ob_base, - & importlib_util_toplevel_consts_16.ob_base.ob_base, - & importlib_util_toplevel_consts_17.ob_base.ob_base, - & importlib_util_toplevel_consts_18.ob_base.ob_base, - & importlib_util_toplevel_consts_19.ob_base.ob_base, - & const_str__incompatible_extension_module_restrictions._ascii.ob_base, - & importlib_util_toplevel_consts_21.ob_base.ob_base, - & const_str__LazyModule._ascii.ob_base, - & importlib_util_toplevel_consts_23.ob_base.ob_base, - & const_str_LazyLoader._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[26]; - }_object; - } -importlib_util_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 26, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str__abc._ascii.ob_base, - & const_str_Loader._ascii.ob_base, - &_Py_ID(_bootstrap), - & const_str_module_from_spec._ascii.ob_base, - & const_str__resolve_name._ascii.ob_base, - & const_str_spec_from_loader._ascii.ob_base, - & const_str__find_spec._ascii.ob_base, - & const_str__bootstrap_external._ascii.ob_base, - & const_str_MAGIC_NUMBER._ascii.ob_base, - & const_str__RAW_MAGIC_NUMBER._ascii.ob_base, - & const_str_cache_from_source._ascii.ob_base, - & const_str_decode_source._ascii.ob_base, - & const_str_source_from_cache._ascii.ob_base, - & const_str_spec_from_file_location._ascii.ob_base, - & const_str__imp._ascii.ob_base, - & const_str_sys._ascii.ob_base, - & const_str_types._ascii.ob_base, - & const_str_source_hash._ascii.ob_base, - & const_str_resolve_name._ascii.ob_base, - & const_str__find_spec_from_path._ascii.ob_base, - & const_str_find_spec._ascii.ob_base, - & const_str__incompatible_extension_module_restrictions._ascii.ob_base, - & const_str_ModuleType._ascii.ob_base, - & const_str__LazyModule._ascii.ob_base, - & const_str_LazyLoader._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[114]; - } -importlib_util_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 113, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xd9\x00\x33\xdd\x00\x18\xdd\x00\x28\xdd\x00\x25\xdd\x00\x28\xdd\x00\x22\xdd\x00\x2d\xdd\x00\x32\xdd\x00\x32\xdd\x00\x2e\xdd\x00\x32\xdd\x00\x38\xe3\x00\x0b\xdb\x00\x0a\xdb\x00\x0c\xf2\x06\x02\x01\x3d\xf2\x0a\x0c\x01\x37\xf3\x1e\x1c\x01\x18\xf3\x3e\x2a\x01\x18\xf7\x62\x01\x2e\x01\x2f\xf1\x00\x2e\x01\x2f\xf4\x62\x01\x3c\x01\x1c\x90\x25\xd7\x12\x22\xd1\x12\x22\xf4\x00\x3c\x01\x1c\xf4\x7e\x01\x27\x01\x27\x90\x16\xf5\x00\x27\x01\x27", -}; -static - struct _PyCode_DEF(276) -importlib_util_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 138, - }, - .co_consts = & importlib_util_toplevel_consts._object.ob_base.ob_base, - .co_names = & importlib_util_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 740, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib_util_toplevel_consts_15_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & importlib_util_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x64\x02\x6c\x01\x6d\x02\x5a\x02\x01\x00\x64\x01\x64\x03\x6c\x03\x6d\x04\x5a\x04\x01\x00\x64\x01\x64\x04\x6c\x03\x6d\x05\x5a\x05\x01\x00\x64\x01\x64\x05\x6c\x03\x6d\x06\x5a\x06\x01\x00\x64\x01\x64\x06\x6c\x03\x6d\x07\x5a\x07\x01\x00\x64\x01\x64\x07\x6c\x08\x6d\x09\x5a\x09\x01\x00\x64\x01\x64\x08\x6c\x08\x6d\x0a\x5a\x0a\x01\x00\x64\x01\x64\x09\x6c\x08\x6d\x0b\x5a\x0b\x01\x00\x64\x01\x64\x0a\x6c\x08\x6d\x0c\x5a\x0c\x01\x00\x64\x01\x64\x0b\x6c\x08\x6d\x0d\x5a\x0d\x01\x00\x64\x01\x64\x0c\x6c\x08\x6d\x0e\x5a\x0e\x01\x00\x64\x0d\x64\x0e\x6c\x0f\x5a\x0f\x64\x0d\x64\x0e\x6c\x10\x5a\x10\x64\x0d\x64\x0e\x6c\x11\x5a\x11\x64\x0f\x84\x00\x5a\x12\x64\x10\x84\x00\x5a\x13\x64\x19\x64\x11\x84\x01\x5a\x14\x64\x19\x64\x12\x84\x01\x5a\x15\x02\x00\x47\x00\x64\x13\x84\x00\x64\x14\xab\x02\x00\x00\x00\x00\x00\x00\x5a\x16\x02\x00\x47\x00\x64\x15\x84\x00\x64\x16\x65\x11\x6a\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x18\x02\x00\x47\x00\x64\x17\x84\x00\x64\x18\x65\x02\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x19\x79\x0e", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_importlib_util_toplevel(void) -{ - return Py_NewRef((PyObject *) &importlib_util_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[58]; - } -importlib_machinery_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 57, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "The machinery of importlib: finders, loaders, hooks, etc.", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_machinery_toplevel_consts_2 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_ModuleSpec._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_machinery_toplevel_consts_3 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_BuiltinImporter._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_machinery_toplevel_consts_4 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_FrozenImporter._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -importlib_machinery_toplevel_consts_5 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_SOURCE_SUFFIXES._ascii.ob_base, - & const_str_DEBUG_BYTECODE_SUFFIXES._ascii.ob_base, - & const_str_OPTIMIZED_BYTECODE_SUFFIXES._ascii.ob_base, - & const_str_BYTECODE_SUFFIXES._ascii.ob_base, - & const_str_EXTENSION_SUFFIXES._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_machinery_toplevel_consts_6 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_WindowsRegistryFinder._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_machinery_toplevel_consts_7 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_PathFinder._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_machinery_toplevel_consts_8 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_FileFinder._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_machinery_toplevel_consts_9 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_SourceFileLoader._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_machinery_toplevel_consts_10 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_SourcelessFileLoader._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_machinery_toplevel_consts_11 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_ExtensionFileLoader._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_machinery_toplevel_consts_12 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_NamespaceLoader._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[66]; - } -importlib_machinery_toplevel_consts_13_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 65, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Returns a list of all recognized module suffixes for this process", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -importlib_machinery_toplevel_consts_13_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & importlib_machinery_toplevel_consts_13_consts_0._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -importlib_machinery_toplevel_consts_13_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_SOURCE_SUFFIXES._ascii.ob_base, - & const_str_BYTECODE_SUFFIXES._ascii.ob_base, - & const_str_EXTENSION_SUFFIXES._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -importlib_machinery_toplevel_consts_13_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_all_suffixes = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "all_suffixes", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[21]; - } -importlib_machinery_toplevel_consts_13_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 20, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe4\x0b\x1a\xd4\x1d\x2e\xd1\x0b\x2e\xd4\x31\x43\xd1\x0b\x43\xd0\x04\x43", -}; -static - struct _PyCode_DEF(42) -importlib_machinery_toplevel_consts_13 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 21, - }, - .co_consts = & importlib_machinery_toplevel_consts_13_consts._object.ob_base.ob_base, - .co_names = & importlib_machinery_toplevel_consts_13_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 18, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 741, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib_machinery_toplevel_consts_13_filename._ascii.ob_base, - .co_name = & const_str_all_suffixes._ascii.ob_base, - .co_qualname = & const_str_all_suffixes._ascii.ob_base, - .co_linetable = & importlib_machinery_toplevel_consts_13_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[15]; - }_object; - } -importlib_machinery_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 15, - }, - .ob_item = { - & importlib_machinery_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 1], - & importlib_machinery_toplevel_consts_2._object.ob_base.ob_base, - & importlib_machinery_toplevel_consts_3._object.ob_base.ob_base, - & importlib_machinery_toplevel_consts_4._object.ob_base.ob_base, - & importlib_machinery_toplevel_consts_5._object.ob_base.ob_base, - & importlib_machinery_toplevel_consts_6._object.ob_base.ob_base, - & importlib_machinery_toplevel_consts_7._object.ob_base.ob_base, - & importlib_machinery_toplevel_consts_8._object.ob_base.ob_base, - & importlib_machinery_toplevel_consts_9._object.ob_base.ob_base, - & importlib_machinery_toplevel_consts_10._object.ob_base.ob_base, - & importlib_machinery_toplevel_consts_11._object.ob_base.ob_base, - & importlib_machinery_toplevel_consts_12._object.ob_base.ob_base, - & importlib_machinery_toplevel_consts_13.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[19]; - }_object; - } -importlib_machinery_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 19, - }, - .ob_item = { - &_Py_ID(__doc__), - &_Py_ID(_bootstrap), - & const_str_ModuleSpec._ascii.ob_base, - & const_str_BuiltinImporter._ascii.ob_base, - & const_str_FrozenImporter._ascii.ob_base, - & const_str__bootstrap_external._ascii.ob_base, - & const_str_SOURCE_SUFFIXES._ascii.ob_base, - & const_str_DEBUG_BYTECODE_SUFFIXES._ascii.ob_base, - & const_str_OPTIMIZED_BYTECODE_SUFFIXES._ascii.ob_base, - & const_str_BYTECODE_SUFFIXES._ascii.ob_base, - & const_str_EXTENSION_SUFFIXES._ascii.ob_base, - & const_str_WindowsRegistryFinder._ascii.ob_base, - & const_str_PathFinder._ascii.ob_base, - & const_str_FileFinder._ascii.ob_base, - & const_str_SourceFileLoader._ascii.ob_base, - & const_str_SourcelessFileLoader._ascii.ob_base, - & const_str_ExtensionFileLoader._ascii.ob_base, - & const_str_NamespaceLoader._ascii.ob_base, - & const_str_all_suffixes._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[57]; - } -importlib_machinery_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 56, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xd9\x00\x3f\xe5\x00\x22\xdd\x00\x27\xdd\x00\x26\xf7\x02\x02\x01\x29\xf5\x00\x02\x01\x29\xf5\x06\x00\x01\x37\xdd\x00\x2b\xdd\x00\x2b\xdd\x00\x31\xdd\x00\x35\xdd\x00\x34\xdd\x00\x30\xf3\x06\x02\x01\x44\x01", -}; -static - struct _PyCode_DEF(162) -importlib_machinery_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 81, - }, - .co_consts = & importlib_machinery_toplevel_consts._object.ob_base.ob_base, - .co_names = & importlib_machinery_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 742, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & importlib_machinery_toplevel_consts_13_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & importlib_machinery_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x64\x02\x6c\x01\x6d\x02\x5a\x02\x01\x00\x64\x01\x64\x03\x6c\x01\x6d\x03\x5a\x03\x01\x00\x64\x01\x64\x04\x6c\x01\x6d\x04\x5a\x04\x01\x00\x64\x01\x64\x05\x6c\x05\x6d\x06\x5a\x06\x6d\x07\x5a\x07\x6d\x08\x5a\x08\x6d\x09\x5a\x09\x6d\x0a\x5a\x0a\x01\x00\x64\x01\x64\x06\x6c\x05\x6d\x0b\x5a\x0b\x01\x00\x64\x01\x64\x07\x6c\x05\x6d\x0c\x5a\x0c\x01\x00\x64\x01\x64\x08\x6c\x05\x6d\x0d\x5a\x0d\x01\x00\x64\x01\x64\x09\x6c\x05\x6d\x0e\x5a\x0e\x01\x00\x64\x01\x64\x0a\x6c\x05\x6d\x0f\x5a\x0f\x01\x00\x64\x01\x64\x0b\x6c\x05\x6d\x10\x5a\x10\x01\x00\x64\x01\x64\x0c\x6c\x05\x6d\x11\x5a\x11\x01\x00\x64\x0d\x84\x00\x5a\x12\x79\x0e", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_importlib_machinery_toplevel(void) -{ - return Py_NewRef((PyObject *) &importlib_machinery_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[347]; - } -runpy_toplevel_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 346, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x72\x75\x6e\x70\x79\x2e\x70\x79\x20\x2d\x20\x6c\x6f\x63\x61\x74\x69\x6e\x67\x20\x61\x6e\x64\x20\x72\x75\x6e\x6e\x69\x6e\x67\x20\x50\x79\x74\x68\x6f\x6e\x20\x63\x6f\x64\x65\x20\x75\x73\x69\x6e\x67\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x0a\x0a\x50\x72\x6f\x76\x69\x64\x65\x73\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x66\x6f\x72\x20\x6c\x6f\x63\x61\x74\x69\x6e\x67\x20\x61\x6e\x64\x20\x72\x75\x6e\x6e\x69\x6e\x67\x20\x50\x79\x74\x68\x6f\x6e\x20\x73\x63\x72\x69\x70\x74\x73\x20\x75\x73\x69\x6e\x67\x20\x74\x68\x65\x20\x50\x79\x74\x68\x6f\x6e\x0a\x6d\x6f\x64\x75\x6c\x65\x20\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x74\x68\x65\x20\x6e\x61\x74\x69\x76\x65\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x2e\x0a\x0a\x54\x68\x69\x73\x20\x61\x6c\x6c\x6f\x77\x73\x20\x50\x79\x74\x68\x6f\x6e\x20\x63\x6f\x64\x65\x20\x74\x6f\x20\x70\x6c\x61\x79\x20\x6e\x69\x63\x65\x6c\x79\x20\x77\x69\x74\x68\x20\x6e\x6f\x6e\x2d\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x20\x62\x61\x73\x65\x64\x20\x50\x45\x50\x20\x33\x30\x32\x0a\x69\x6d\x70\x6f\x72\x74\x65\x72\x73\x20\x77\x68\x65\x6e\x20\x6c\x6f\x63\x61\x74\x69\x6e\x67\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x73\x63\x72\x69\x70\x74\x73\x20\x61\x73\x20\x77\x65\x6c\x6c\x20\x61\x73\x20\x77\x68\x65\x6e\x20\x69\x6d\x70\x6f\x72\x74\x69\x6e\x67\x20\x6d\x6f\x64\x75\x6c\x65\x73\x2e\x0a", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_run_module = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "run_module", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_run_path = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "run_path", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str__TempModule = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_TempModule", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[68]; - } -runpy_toplevel_consts_5_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 67, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Temporarily replace a module in sys.modules with an empty namespace", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_mod_name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "mod_name", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str__saved_module = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_saved_module", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -runpy_toplevel_consts_5_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_mod_name._ascii.ob_base, - & const_str_ModuleType._ascii.ob_base, - &_Py_ID(module), - & const_str__saved_module._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -runpy_toplevel_consts_5_consts_2_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -runpy_toplevel_consts_5_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_TempModule.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[30]; - } -runpy_toplevel_consts_5_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 29, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x18\x20\x88\x04\x8c\x0d\xdc\x16\x20\xa0\x18\xd3\x16\x2a\x88\x04\x8c\x0b\xd8\x1d\x1f\x88\x04\xd5\x08\x1a", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -runpy_toplevel_consts_5_consts_2_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - &_Py_ID(self), - & const_str_mod_name._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(64) -runpy_toplevel_consts_5_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 32, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_5_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 28, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 743, - .co_localsplusnames = & runpy_toplevel_consts_5_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & runpy_toplevel_consts_5_consts_2_qualname._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_5_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -runpy_toplevel_consts_5_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_mod_name._ascii.ob_base, - & const_str__saved_module._ascii.ob_base, - &_Py_ID(append), - & const_str_sys._ascii.ob_base, - &_Py_ID(modules), - & const_str_KeyError._ascii.ob_base, - &_Py_ID(module), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -runpy_toplevel_consts_5_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_TempModule.__enter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[91]; - } -runpy_toplevel_consts_5_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 90, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x13\x17\x97\x3d\x91\x3d\x88\x08\xf0\x02\x03\x09\x11\xd8\x0c\x10\xd7\x0c\x1e\xd1\x0c\x1e\xd7\x0c\x25\xd1\x0c\x25\xa4\x63\xa7\x6b\xa1\x6b\xb0\x28\xd1\x26\x3b\xd4\x0c\x3c\xf0\x06\x00\x21\x25\xa7\x0b\xa1\x0b\x8c\x03\x8f\x0b\x89\x0b\x90\x48\xd1\x08\x1d\xd8\x0f\x13\x88\x0b\xf8\xf4\x07\x00\x10\x18\xf2\x00\x01\x09\x11\xd9\x0c\x10\xf0\x03\x01\x09\x11\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -runpy_toplevel_consts_5_consts_3_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x8e\x2c\x41\x19\x00\xc1\x19\x09\x41\x25\x03\xc1\x24\x01\x41\x25\x03", -}; -static - struct _PyCode_DEF(208) -runpy_toplevel_consts_5_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 104, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_5_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = & runpy_toplevel_consts_5_consts_3_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 6 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 33, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 744, - .co_localsplusnames = & runpy_toplevel_consts_5_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = &_Py_ID(__enter__), - .co_qualname = & runpy_toplevel_consts_5_consts_3_qualname._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_5_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x01\x09\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x3c\x00\x00\x00\x7c\x00\x53\x00\x23\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x8c\x2a\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -runpy_toplevel_consts_5_consts_4_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str__saved_module._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(modules), - & const_str_mod_name._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -runpy_toplevel_consts_5_consts_4_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_TempModule.__exit__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[77]; - } -runpy_toplevel_consts_5_consts_4_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 76, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0b\x0f\xd7\x0b\x1d\xd2\x0b\x1d\xd8\x29\x2d\xd7\x29\x3b\xd1\x29\x3b\xb8\x41\xd1\x29\x3e\x8c\x43\x8f\x4b\x89\x4b\x98\x04\x9f\x0d\x99\x0d\xd1\x0c\x26\xf0\x06\x00\x1e\x20\x88\x04\xd5\x08\x1a\xf4\x03\x00\x11\x14\x97\x0b\x91\x0b\x98\x44\x9f\x4d\x99\x4d\xd0\x10\x2a\xd8\x1d\x1f\x88\x04\xd5\x08\x1a", -}; -static - struct _PyCode_DEF(196) -runpy_toplevel_consts_5_consts_4 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 98, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_5_consts_4_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 42, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 745, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = &_Py_ID(__exit__), - .co_qualname = & runpy_toplevel_consts_5_consts_4_qualname._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_5_consts_4_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x32\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x19\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x67\x00\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x67\x00\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -runpy_toplevel_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str__TempModule._ascii.ob_base, - & runpy_toplevel_consts_5_consts_1._ascii.ob_base, - & runpy_toplevel_consts_5_consts_2.ob_base.ob_base, - & runpy_toplevel_consts_5_consts_3.ob_base.ob_base, - & runpy_toplevel_consts_5_consts_4.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[21]; - } -runpy_toplevel_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 20, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xd9\x04\x4d\xf2\x02\x03\x05\x20\xf2\x0a\x07\x05\x14\xf3\x12\x05\x05\x20", -}; -static - struct _PyCode_DEF(34) -runpy_toplevel_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 17, - }, - .co_consts = & runpy_toplevel_consts_5_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 26, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 746, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = & const_str__TempModule._ascii.ob_base, - .co_qualname = & const_str__TempModule._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x64\x04\x84\x00\x5a\x06\x79\x05", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str__ModifiedArgv0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModifiedArgv0", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str__saved_value = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_saved_value", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str__sentinel = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_sentinel", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -runpy_toplevel_consts_7_consts_1_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(value), - &_Py_ID(object), - & const_str__saved_value._ascii.ob_base, - & const_str__sentinel._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -runpy_toplevel_consts_7_consts_1_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModifiedArgv0.__init__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[27]; - } -runpy_toplevel_consts_7_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 26, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x15\x1a\x88\x04\x8c\x0a\xdc\x2d\x33\xab\x58\xd0\x08\x35\x88\x04\xd4\x08\x19\x98\x44\x9d\x4e", -}; -static - struct _PyCode_DEF(62) -runpy_toplevel_consts_7_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 31, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_7_consts_1_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 50, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 747, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = &_Py_ID(__init__), - .co_qualname = & runpy_toplevel_consts_7_consts_1_qualname._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_7_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x01\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x78\x01\x7c\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[31]; - } -runpy_toplevel_consts_7_consts_2_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 30, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Already preserving saved value", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -runpy_toplevel_consts_7_consts_2_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - & runpy_toplevel_consts_7_consts_2_consts_1._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -runpy_toplevel_consts_7_consts_2_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str__saved_value._ascii.ob_base, - & const_str__sentinel._ascii.ob_base, - & const_str_RuntimeError._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(argv), - &_Py_ID(value), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -runpy_toplevel_consts_7_consts_2_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModifiedArgv0.__enter__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[66]; - } -runpy_toplevel_consts_7_consts_2_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 65, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x0b\x0f\xd7\x0b\x1c\xd1\x0b\x1c\xa0\x44\xa7\x4e\xa1\x4e\xd1\x0b\x32\xdc\x12\x1e\xd0\x1f\x3f\xd3\x12\x40\xd0\x0c\x40\xdc\x1c\x1f\x9f\x48\x99\x48\xa0\x51\x99\x4b\x88\x04\xd4\x08\x19\xd8\x16\x1a\x97\x6a\x91\x6a\x8c\x03\x8f\x08\x89\x08\x90\x11\x8a\x0b", -}; -static - struct _PyCode_DEF(180) -runpy_toplevel_consts_7_consts_2 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 90, - }, - .co_consts = & runpy_toplevel_consts_7_consts_2_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_7_consts_2_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 54, - .co_nlocalsplus = 1, - .co_nlocals = 1, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 748, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_7_consts_2_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_characters[32]), - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = &_Py_ID(__enter__), - .co_qualname = & runpy_toplevel_consts_7_consts_2_qualname._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_7_consts_2_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x01\x72\x0b\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x19\x00\x00\x00\x7c\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x02\x3c\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -runpy_toplevel_consts_7_consts_3_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str__sentinel._ascii.ob_base, - &_Py_ID(value), - & const_str__saved_value._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(argv), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -runpy_toplevel_consts_7_consts_3_qualname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_ModifiedArgv0.__exit__", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[33]; - } -runpy_toplevel_consts_7_consts_3_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 32, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x15\x19\x97\x5e\x91\x5e\x88\x04\x8c\x0a\xd8\x16\x1a\xd7\x16\x27\xd1\x16\x27\x8c\x03\x8f\x08\x89\x08\x90\x11\x8a\x0b", -}; -static - struct _PyCode_DEF(96) -runpy_toplevel_consts_7_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 48, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_16_consts_2_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_7_consts_3_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 7, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 60, - .co_nlocalsplus = 2, - .co_nlocals = 2, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 749, - .co_localsplusnames = & importlib__bootstrap_toplevel_consts_30_consts_5_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_14_consts_2_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = &_Py_ID(__exit__), - .co_qualname = & runpy_toplevel_consts_7_consts_3_qualname._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_7_consts_3_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x5f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x3c\x00\x00\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -runpy_toplevel_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str__ModifiedArgv0._ascii.ob_base, - & runpy_toplevel_consts_7_consts_1.ob_base.ob_base, - & runpy_toplevel_consts_7_consts_2.ob_base.ob_base, - & runpy_toplevel_consts_7_consts_3.ob_base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[18]; - } -runpy_toplevel_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 17, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xf2\x02\x02\x05\x36\xf2\x08\x04\x05\x21\xf3\x0c\x02\x05\x28", -}; -static - struct _PyCode_DEF(30) -runpy_toplevel_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 15, - }, - .co_consts = & runpy_toplevel_consts_7_consts._object.ob_base.ob_base, - .co_names = & importlib__bootstrap_toplevel_consts_18_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 49, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 750, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = & const_str__ModifiedArgv0._ascii.ob_base, - .co_qualname = & const_str__ModifiedArgv0._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x84\x00\x5a\x03\x64\x02\x84\x00\x5a\x04\x64\x03\x84\x00\x5a\x05\x79\x04", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[42]; - } -runpy_toplevel_consts_9_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 41, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Helper to run code in nominated namespace", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -runpy_toplevel_consts_9_consts_2 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__file__), - & const_str___cached__._ascii.ob_base, - &_Py_ID(__doc__), - &_Py_ID(__loader__), - &_Py_ID(__package__), - &_Py_ID(__spec__), - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -runpy_toplevel_consts_9_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & runpy_toplevel_consts_9_consts_0._ascii.ob_base, - Py_None, - & runpy_toplevel_consts_9_consts_2._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -runpy_toplevel_consts_9_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_update._ascii.ob_base, - & const_str_loader._ascii.ob_base, - &_Py_ID(origin), - & const_str_cached._ascii.ob_base, - &_Py_ID(parent), - & const_str_exec._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str__run_code = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_run_code", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[145]; - } -runpy_toplevel_consts_9_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 144, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x00\x08\x14\xd0\x07\x1f\xd8\x08\x13\xd7\x08\x1a\xd1\x08\x1a\x98\x3c\xd4\x08\x28\xd8\x07\x0f\xd0\x07\x17\xd8\x11\x15\x88\x06\xd8\x10\x1b\x88\x05\xd8\x11\x15\x89\x06\xe0\x11\x19\x97\x1f\x91\x1f\x88\x06\xd8\x10\x18\x97\x0f\x91\x0f\x88\x05\xd8\x11\x19\x97\x1f\x91\x1f\x88\x06\xd8\x0b\x13\xd0\x0b\x1b\xd8\x17\x1f\x97\x7f\x91\x7f\x88\x48\xd8\x04\x0f\xd7\x04\x16\xd1\x04\x16\xa0\x28\xd8\x22\x27\xd8\x24\x2a\xd8\x21\x25\xd8\x24\x2a\xd8\x25\x2d\xd8\x22\x2a\xf0\x0d\x00\x05\x17\xf4\x00\x06\x05\x2c\xf4\x0e\x00\x05\x09\x88\x14\x88\x7b\xd4\x04\x1b\xd8\x0b\x16\xd0\x04\x16", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_run_globals = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "run_globals", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_init_globals = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "init_globals", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_mod_spec = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "mod_spec", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_pkg_name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pkg_name", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_script_name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "script_name", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[6]; - } -const_str_fname = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 5, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "fname", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -runpy_toplevel_consts_9_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - &_Py_ID(code), - & const_str_run_globals._ascii.ob_base, - & const_str_init_globals._ascii.ob_base, - & const_str_mod_name._ascii.ob_base, - & const_str_mod_spec._ascii.ob_base, - & const_str_pkg_name._ascii.ob_base, - & const_str_script_name._ascii.ob_base, - & const_str_loader._ascii.ob_base, - & const_str_fname._ascii.ob_base, - & const_str_cached._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(234) -runpy_toplevel_consts_9 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 117, - }, - .co_consts = & runpy_toplevel_consts_9_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_9_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 7, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 19 + FRAME_SPECIALS_SIZE, - .co_stacksize = 9, - .co_firstlineno = 65, - .co_nlocalsplus = 10, - .co_nlocals = 10, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 751, - .co_localsplusnames = & runpy_toplevel_consts_9_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = & const_str__run_code._ascii.ob_base, - .co_qualname = & const_str__run_code._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_9_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x02\x81\x11\x7c\x01\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x04\x80\x07\x64\x01\x7d\x07\x7c\x06\x7d\x08\x64\x01\x7d\x09\x6e\x32\x7c\x04\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x07\x7c\x04\x6a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x08\x7c\x04\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x09\x7c\x05\x80\x0c\x7c\x04\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x05\x7c\x01\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x7c\x08\x7c\x09\x64\x01\x7c\x07\x7c\x05\x7c\x04\xac\x02\xab\x07\x00\x00\x00\x00\x00\x00\x01\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x01\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[54]; - } -runpy_toplevel_consts_10_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 53, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Helper to run code in new namespace with sys modified", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -runpy_toplevel_consts_10_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & runpy_toplevel_consts_10_consts_0._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -runpy_toplevel_consts_10_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - &_Py_ID(origin), - & const_str__TempModule._ascii.ob_base, - & const_str__ModifiedArgv0._ascii.ob_base, - &_Py_ID(module), - &_Py_ID(__dict__), - & const_str__run_code._ascii.ob_base, - &_Py_ID(copy), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str__run_module_code = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_run_module_code", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[135]; - } -runpy_toplevel_consts_10_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 134, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x08\x00\x1c\x24\xd0\x1b\x2b\x89\x4b\xb0\x18\xb7\x1f\xb1\x1f\x80\x45\xdc\x09\x14\x90\x58\xd4\x09\x1e\xa0\x2b\xac\x7e\xb8\x65\xd5\x2f\x44\xd8\x16\x21\xd7\x16\x28\xd1\x16\x28\xd7\x16\x31\xd1\x16\x31\x88\x0b\xdc\x08\x11\x90\x24\x98\x0b\xa0\x5c\xd8\x12\x1a\x98\x48\xa0\x68\xb0\x0b\xf4\x03\x01\x09\x3d\xf7\x05\x00\x30\x45\x01\xd7\x09\x1e\xf0\x0c\x00\x0c\x17\xd7\x0b\x1b\xd1\x0b\x1b\xd3\x0b\x1d\xd0\x04\x1d\xf7\x0d\x00\x30\x45\x01\xd0\x2f\x44\xfa\xd7\x09\x1e\xf0\x0c\x00\x0c\x17\xd7\x0b\x1b\xd1\x0b\x1b\xd3\x0b\x1d\xd0\x04\x1d\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[35]; - } -runpy_toplevel_consts_10_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 34, - }, - .ob_shash = -1, - .ob_sval = "\x9c\x0c\x41\x3c\x03\xa8\x28\x41\x30\x05\xc1\x10\x08\x41\x3c\x03\xc1\x30\x05\x41\x39\x09\xc1\x35\x07\x41\x3c\x03\xc1\x3c\x05\x42\x14\x07", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_temp_module = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "temp_module", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_mod_globals = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "mod_globals", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -runpy_toplevel_consts_10_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - &_Py_ID(code), - & const_str_init_globals._ascii.ob_base, - & const_str_mod_name._ascii.ob_base, - & const_str_mod_spec._ascii.ob_base, - & const_str_pkg_name._ascii.ob_base, - & const_str_script_name._ascii.ob_base, - & const_str_fname._ascii.ob_base, - & const_str_temp_module._ascii.ob_base, - & const_str_mod_globals._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(302) -runpy_toplevel_consts_10 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 151, - }, - .co_consts = & runpy_toplevel_consts_10_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_10_names._object.ob_base.ob_base, - .co_exceptiontable = & runpy_toplevel_consts_10_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 6, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 20 + FRAME_SPECIALS_SIZE, - .co_stacksize = 11, - .co_firstlineno = 91, - .co_nlocalsplus = 9, - .co_nlocals = 9, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 752, - .co_localsplusnames = & runpy_toplevel_consts_10_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_61_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = & const_str__run_module_code._ascii.ob_base, - .co_qualname = & const_str__run_module_code._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_10_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x03\x80\x02\x7c\x05\x6e\x0b\x7c\x03\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x06\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x35\x00\x7d\x07\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\xab\x01\x00\x00\x00\x00\x00\x00\x35\x00\x01\x00\x7c\x07\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x08\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x08\x7c\x01\x7c\x02\x7c\x03\x7c\x04\x7c\x05\xab\x07\x00\x00\x00\x00\x00\x00\x01\x00\x64\x01\x64\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x64\x01\x64\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7f\x08\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x8c\x21\x78\x03\x59\x00\x77\x01\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x7f\x08\x6a\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x53\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[36]; - } -runpy_toplevel_consts_11_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 35, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Relative module names not supported", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -runpy_toplevel_consts_11_consts_5 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_warn._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[155]; - } -runpy_toplevel_consts_11_consts_6 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 154, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "{mod_name!r} found in sys.modules after import of package {pkg_name!r}, but prior to execution of {mod_name!r}; this may result in unpredictable behaviour", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -runpy_toplevel_consts_11_consts_7 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_mod_name._ascii.ob_base, - & const_str_pkg_name._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[59]; - } -runpy_toplevel_consts_11_consts_8 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 58, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Error while finding module specification for {!r} ({}: {})", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -runpy_toplevel_consts_11_consts_10 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = ". Try using '", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -runpy_toplevel_consts_11_consts_12 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "' instead of '", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[22]; - } -runpy_toplevel_consts_11_consts_13 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 21, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "' as the module name.", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -runpy_toplevel_consts_11_consts_14 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "No module named %s", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -runpy_toplevel_consts_11_consts_16 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = ".__main__", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[38]; - } -runpy_toplevel_consts_11_consts_17 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 37, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Cannot use package as __main__ module", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[46]; - } -runpy_toplevel_consts_11_consts_19 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 45, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " is a package and cannot be directly executed", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[49]; - } -runpy_toplevel_consts_11_consts_20 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 48, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "%r is a namespace package and cannot be executed", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[32]; - } -runpy_toplevel_consts_11_consts_21 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 31, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "No code object available for %s", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[22]; - }_object; - } -runpy_toplevel_consts_11_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 22, - }, - .ob_item = { - Py_None, - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - & runpy_toplevel_consts_11_consts_2._ascii.ob_base, - &_Py_ID(__path__), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & runpy_toplevel_consts_11_consts_5._object.ob_base.ob_base, - & runpy_toplevel_consts_11_consts_6._ascii.ob_base, - & runpy_toplevel_consts_11_consts_7._object.ob_base.ob_base, - & runpy_toplevel_consts_11_consts_8._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_46_consts_5_consts_12._ascii.ob_base, - & runpy_toplevel_consts_11_consts_10._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + -3], - & runpy_toplevel_consts_11_consts_12._ascii.ob_base, - & runpy_toplevel_consts_11_consts_13._ascii.ob_base, - & runpy_toplevel_consts_11_consts_14._ascii.ob_base, - &_Py_ID(__main__), - & runpy_toplevel_consts_11_consts_16._ascii.ob_base, - & runpy_toplevel_consts_11_consts_17._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_55_consts_3._ascii.ob_base, - & runpy_toplevel_consts_11_consts_19._ascii.ob_base, - & runpy_toplevel_consts_11_consts_20._ascii.ob_base, - & runpy_toplevel_consts_11_consts_21._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -const_str_RuntimeWarning = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "RuntimeWarning", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[5]; - } -const_str_util = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 4, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "util", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -const_str__get_module_details = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_module_details", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[26]; - }_object; - } -runpy_toplevel_consts_11_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 26, - }, - .ob_item = { - & const_str_startswith._ascii.ob_base, - & const_str_rpartition._ascii.ob_base, - &_Py_ID(__import__), - & const_str_ImportError._ascii.ob_base, - &_Py_ID(name), - & const_str_sys._ascii.ob_base, - &_Py_ID(modules), - &_Py_ID(get), - & const_str_hasattr._ascii.ob_base, - &_Py_ID(warnings), - & const_str_warn._ascii.ob_base, - &_Py_ID(format), - & const_str_RuntimeWarning._ascii.ob_base, - &_Py_ID(importlib), - & const_str_util._ascii.ob_base, - & const_str_find_spec._ascii.ob_base, - & const_str_AttributeError._ascii.ob_base, - & const_str_TypeError._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - & const_str_endswith._ascii.ob_base, - &_Py_ID(type), - &_Py_ID(__name__), - & const_str_submodule_search_locations._ascii.ob_base, - & const_str__get_module_details._ascii.ob_base, - & const_str_loader._ascii.ob_base, - & const_str_get_code._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[656]; - } -runpy_toplevel_consts_11_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 655, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xd8\x07\x0f\xd7\x07\x1a\xd1\x07\x1a\x98\x33\xd4\x07\x1f\xd9\x0e\x13\xd0\x14\x39\xd3\x0e\x3a\xd0\x08\x3a\xd8\x15\x1d\xd7\x15\x28\xd1\x15\x28\xa8\x13\xd3\x15\x2d\x81\x4e\x80\x48\x88\x61\x90\x11\xd9\x07\x0f\xf0\x04\x08\x09\x16\xdc\x0c\x16\x90\x78\xd4\x0c\x20\xf4\x12\x00\x14\x17\x97\x3b\x91\x3b\x97\x3f\x91\x3f\xa0\x38\xd3\x13\x2c\x88\x08\xd8\x0b\x13\xd0\x0b\x1f\xac\x07\xb0\x08\xb8\x2a\xd4\x28\x45\xdd\x0c\x25\xf0\x02\x03\x13\x1c\xf7\x06\x00\x1d\x23\x99\x46\xa8\x48\xb8\x78\x98\x46\xd3\x1c\x48\xf0\x07\x00\x0d\x10\xf1\x08\x00\x0d\x11\x94\x1e\xa0\x03\xd3\x11\x24\xd4\x0c\x25\xf0\x04\x0a\x05\x49\x01\xdc\x0f\x18\x8f\x7e\x89\x7e\xd7\x0f\x27\xd1\x0f\x27\xa8\x08\xd3\x0f\x31\x88\x04\xf0\x14\x00\x08\x0c\x80\x7c\xd9\x0e\x13\xd0\x14\x28\xa8\x38\xd1\x14\x33\xd3\x0e\x34\xd0\x08\x34\xd8\x07\x0b\xd7\x07\x26\xd1\x07\x26\xd0\x07\x32\xd8\x0b\x13\x90\x7a\xd2\x0b\x21\xa0\x58\xd7\x25\x36\xd1\x25\x36\xb0\x7b\xd4\x25\x43\xd9\x12\x17\xd0\x18\x3f\xd3\x12\x40\xd0\x0c\x40\xf0\x02\x07\x09\x47\x01\xd8\x1c\x24\xa0\x7b\xd1\x1c\x32\x88\x4d\xdc\x13\x26\xa0\x7d\xb0\x65\xd3\x13\x3c\xd0\x0c\x3c\xf0\x0c\x00\x0e\x12\x8f\x5b\x89\x5b\x80\x46\xd8\x07\x0d\x80\x7e\xd9\x0e\x13\xd0\x14\x46\xd8\x43\x4b\xf1\x03\x01\x15\x4c\x01\xf3\x00\x01\x0f\x4d\x01\xf0\x00\x01\x09\x4d\x01\xf0\x04\x03\x05\x26\xd8\x0f\x15\x8f\x7f\x89\x7f\x98\x78\xd3\x0f\x28\x88\x04\xf0\x06\x00\x08\x0c\x80\x7c\xd9\x0e\x13\xd0\x14\x35\xb8\x08\xd1\x14\x40\xd3\x0e\x41\xd0\x08\x41\xd8\x0b\x13\x90\x54\x98\x34\xd0\x0b\x1f\xd0\x04\x1f\xf8\xf4\x67\x01\x00\x10\x1b\xf2\x00\x06\x09\x16\xf0\x08\x00\x10\x11\x8f\x76\x89\x76\x88\x7e\xa0\x21\xa7\x26\xa1\x26\xa8\x48\xd2\x22\x34\xd8\x18\x20\xd7\x18\x2b\xd1\x18\x2b\xa8\x41\xaf\x46\xa9\x46\xb0\x53\xa9\x4c\xd4\x18\x39\xd8\x10\x15\xff\xf9\xf0\x0d\x06\x09\x16\xfb\xf4\x26\x00\x0d\x18\x9c\x1e\xac\x19\xb4\x4a\xd0\x0b\x3f\xf2\x00\x08\x05\x49\x01\xf0\x08\x00\x0f\x4b\x01\x88\x03\xd8\x0b\x13\xd7\x0b\x1c\xd1\x0b\x1c\x98\x55\xd4\x0b\x23\xd8\x0c\x0f\x90\x6d\xa0\x48\xa8\x53\xa8\x62\xa0\x4d\xa0\x3f\xf0\x00\x01\x33\x18\xd8\x18\x20\x90\x7a\xd0\x21\x36\xf0\x03\x01\x15\x38\xf1\x00\x01\x0d\x39\x88\x43\xe1\x0e\x13\x90\x43\x97\x4a\x91\x4a\x98\x78\xac\x14\xa8\x62\xab\x18\xd7\x29\x3a\xd1\x29\x3a\xb8\x42\xd3\x14\x3f\xd3\x0e\x40\xc0\x62\xd0\x08\x48\xfb\xf0\x11\x08\x05\x49\x01\xfb\xf0\x22\x00\x10\x15\xf2\x00\x04\x09\x47\x01\xd8\x0f\x17\x9c\x73\x9f\x7b\x99\x7b\xd1\x0f\x2a\xd8\x10\x15\xd9\x12\x17\xda\x39\x3a\xba\x48\xf0\x03\x01\x19\x46\x01\xf3\x00\x01\x13\x47\x01\xf0\x00\x01\x0d\x47\x01\xfb\xf0\x07\x04\x09\x47\x01\xfb\xf4\x16\x00\x0c\x17\xf2\x00\x01\x05\x26\xd9\x0e\x13\x94\x46\x98\x31\x93\x49\xd3\x0e\x1e\xa0\x41\xd0\x08\x25\xfb\xf0\x03\x01\x05\x26\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[97]; - } -runpy_toplevel_consts_11_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 96, - }, - .ob_shash = -1, - .ob_sval = "\xb2\x0b\x44\x3a\x00\xc2\x15\x1f\x46\x0b\x00\xc3\x2c\x10\x47\x3b\x00\xc4\x17\x11\x48\x29\x00\xc4\x3a\x09\x46\x08\x03\xc5\x03\x3a\x46\x03\x03\xc6\x03\x05\x46\x08\x03\xc6\x0b\x19\x47\x38\x03\xc6\x24\x41\x0f\x47\x33\x03\xc7\x33\x05\x47\x38\x03\xc7\x3b\x05\x48\x26\x03\xc8\x00\x21\x48\x21\x03\xc8\x21\x05\x48\x26\x03\xc8\x29\x09\x49\x09\x03\xc8\x32\x12\x49\x04\x03\xc9\x04\x05\x49\x09\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_existing = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "existing", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[14]; - } -const_str_pkg_main_name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 13, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pkg_main_name", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[13]; - }_object; - } -runpy_toplevel_consts_11_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 13, - }, - .ob_item = { - & const_str_mod_name._ascii.ob_base, - & const_str_error._ascii.ob_base, - & const_str_pkg_name._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[95], - (PyObject *)&_Py_SINGLETON(strings).ascii[101], - & const_str_existing._ascii.ob_base, - & const_str_warn._ascii.ob_base, - &_Py_ID(msg), - & const_str_spec._ascii.ob_base, - & const_str_ex._ascii.ob_base, - & const_str_pkg_main_name._ascii.ob_base, - & const_str_loader._ascii.ob_base, - &_Py_ID(code), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[14]; - } -runpy_toplevel_consts_11_localspluskinds = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 13, - }, - .ob_shash = -1, - .ob_sval = " ", -}; -static - struct _PyCode_DEF(1176) -runpy_toplevel_consts_11 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 588, - }, - .co_consts = & runpy_toplevel_consts_11_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_11_names._object.ob_base.ob_base, - .co_exceptiontable = & runpy_toplevel_consts_11_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 22 + FRAME_SPECIALS_SIZE, - .co_stacksize = 9, - .co_firstlineno = 105, - .co_nlocalsplus = 13, - .co_nlocals = 13, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 753, - .co_localsplusnames = & runpy_toplevel_consts_11_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & runpy_toplevel_consts_11_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = & const_str__get_module_details._ascii.ob_base, - .co_qualname = & const_str__get_module_details._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_11_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x72\x08\x02\x00\x7c\x01\x64\x02\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x02\x7d\x03\x7d\x03\x7c\x02\x72\x63\x09\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x05\x7c\x05\x81\x36\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x64\x03\xab\x02\x00\x00\x00\x00\x00\x00\x73\x2a\x64\x04\x64\x05\x6c\x09\x6d\x0a\x7d\x06\x01\x00\x64\x06\x6a\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x7c\x02\xac\x07\xab\x02\x00\x00\x00\x00\x00\x00\x7d\x07\x02\x00\x7c\x06\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x07\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x74\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x08\x7c\x08\x80\x0b\x02\x00\x7c\x01\x64\x0e\x7c\x00\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x08\x6a\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x30\x7c\x00\x64\x0f\x6b\x28\x00\x00\x73\x11\x7c\x00\x6a\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x10\xab\x01\x00\x00\x00\x00\x00\x00\x72\x08\x02\x00\x7c\x01\x64\x11\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x09\x00\x7c\x00\x64\x10\x7a\x00\x00\x00\x7d\x0a\x74\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x0a\x7c\x01\xab\x02\x00\x00\x00\x00\x00\x00\x53\x00\x7c\x08\x6a\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x0b\x7c\x0b\x80\x0b\x02\x00\x7c\x01\x64\x14\x7c\x00\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x09\x00\x7c\x0b\x6a\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x0c\x7c\x0c\x80\x0b\x02\x00\x7c\x01\x64\x15\x7c\x00\x7a\x06\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x7c\x00\x7c\x08\x7c\x0c\x66\x03\x53\x00\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x45\x7d\x04\x7c\x04\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x2d\x7c\x04\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x6b\x37\x00\x00\x72\x1f\x7c\x02\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x7a\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x73\x01\x82\x00\x59\x00\x64\x00\x7d\x04\x7e\x04\x90\x01\x8c\x46\x64\x00\x7d\x04\x7e\x04\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x74\x20\x00\x00\x00\x00\x00\x00\x00\x00\x74\x22\x00\x00\x00\x00\x00\x00\x00\x00\x74\x24\x00\x00\x00\x00\x00\x00\x00\x00\x66\x04\x24\x00\x72\x54\x7d\x09\x64\x08\x7d\x07\x7c\x00\x6a\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x09\xab\x01\x00\x00\x00\x00\x00\x00\x72\x0f\x7c\x07\x64\x0a\x7c\x00\x64\x00\x64\x0b\x1a\x00\x9b\x00\x64\x0c\x7c\x00\x9b\x00\x64\x0d\x9d\x05\x7a\x0d\x00\x00\x7d\x07\x02\x00\x7c\x01\x7c\x07\x6a\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x29\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\xab\x01\x00\x00\x00\x00\x00\x00\x6a\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x09\xab\x03\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x09\x82\x02\x64\x00\x7d\x09\x7e\x09\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x7c\x01\x24\x00\x72\x26\x7d\x04\x7c\x00\x74\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x01\x72\x01\x82\x00\x02\x00\x7c\x01\x7c\x04\x9b\x01\x64\x12\x7c\x00\x9b\x02\x64\x13\x9d\x04\xab\x01\x00\x00\x00\x00\x00\x00\x82\x01\x64\x00\x7d\x04\x7e\x04\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x17\x7d\x04\x02\x00\x7c\x01\x74\x17\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x04\xab\x01\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x04\x82\x02\x64\x00\x7d\x04\x7e\x04\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[7]; - } -const_str__Error = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 6, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_Error", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[67]; - } -runpy_toplevel_consts_12_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 66, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Error that _run_module_as_main() should report without a traceback", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -runpy_toplevel_consts_12_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str__Error._ascii.ob_base, - & runpy_toplevel_consts_12_consts_1._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -runpy_toplevel_consts_12_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - &_Py_ID(__name__), - &_Py_ID(__module__), - &_Py_ID(__qualname__), - &_Py_ID(__doc__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -runpy_toplevel_consts_12_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xda\x04\x4c", -}; -static - struct _PyCode_DEF(16) -runpy_toplevel_consts_12 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 8, - }, - .co_consts = & runpy_toplevel_consts_12_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 166, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 754, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = & const_str__Error._ascii.ob_base, - .co_qualname = & const_str__Error._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_12_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[454]; - } -runpy_toplevel_consts_14_consts_0 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 453, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "\x52\x75\x6e\x73\x20\x74\x68\x65\x20\x64\x65\x73\x69\x67\x6e\x61\x74\x65\x64\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69\x6e\x20\x74\x68\x65\x20\x5f\x5f\x6d\x61\x69\x6e\x5f\x5f\x20\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x4e\x6f\x74\x65\x20\x74\x68\x61\x74\x20\x74\x68\x65\x20\x65\x78\x65\x63\x75\x74\x65\x64\x20\x6d\x6f\x64\x75\x6c\x65\x20\x77\x69\x6c\x6c\x20\x68\x61\x76\x65\x20\x66\x75\x6c\x6c\x20\x61\x63\x63\x65\x73\x73\x20\x74\x6f\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x5f\x5f\x6d\x61\x69\x6e\x5f\x5f\x20\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x2e\x20\x49\x66\x20\x74\x68\x69\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x64\x65\x73\x69\x72\x61\x62\x6c\x65\x2c\x20\x74\x68\x65\x20\x72\x75\x6e\x5f\x6d\x6f\x64\x75\x6c\x65\x28\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x68\x6f\x75\x6c\x64\x20\x62\x65\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x72\x75\x6e\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x63\x6f\x64\x65\x20\x69\x6e\x20\x61\x20\x66\x72\x65\x73\x68\x20\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x41\x74\x20\x74\x68\x65\x20\x76\x65\x72\x79\x20\x6c\x65\x61\x73\x74\x2c\x20\x74\x68\x65\x73\x65\x20\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x20\x69\x6e\x20\x5f\x5f\x6d\x61\x69\x6e\x5f\x5f\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x6f\x76\x65\x72\x77\x72\x69\x74\x74\x65\x6e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x5f\x6e\x61\x6d\x65\x5f\x5f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x5f\x66\x69\x6c\x65\x5f\x5f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x5f\x63\x61\x63\x68\x65\x64\x5f\x5f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x5f\x6c\x6f\x61\x64\x65\x72\x5f\x5f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x5f\x70\x61\x63\x6b\x61\x67\x65\x5f\x5f\x0a\x20\x20\x20\x20", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -runpy_toplevel_consts_14_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & runpy_toplevel_consts_14_consts_0._ascii.ob_base, - &_Py_ID(__main__), - & importlib__bootstrap_external_toplevel_consts_42_consts_4._ascii.ob_base, - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -const_str__get_main_module_details = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_main_module_details", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -runpy_toplevel_consts_14_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & const_str__get_module_details._ascii.ob_base, - & const_str__Error._ascii.ob_base, - & const_str__get_main_module_details._ascii.ob_base, - & const_str_sys._ascii.ob_base, - & const_str_executable._ascii.ob_base, - & const_str_exit._ascii.ob_base, - &_Py_ID(modules), - &_Py_ID(__dict__), - &_Py_ID(origin), - &_Py_ID(argv), - & const_str__run_code._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -const_str__run_module_as_main = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_run_module_as_main", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[165]; - } -runpy_toplevel_consts_14_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 164, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x1c\x07\x05\x16\xd9\x0b\x15\x98\x18\xa0\x5a\xd2\x19\x2f\xdc\x27\x3a\xb8\x38\xc4\x56\xd3\x27\x4c\xd1\x0c\x24\x88\x48\x90\x68\xa1\x04\xe4\x27\x3f\xc4\x06\xd3\x27\x47\xd1\x0c\x24\x88\x48\x90\x68\xa0\x04\xf4\x08\x00\x14\x17\x97\x3b\x91\x3b\x98\x7a\xd1\x13\x2a\xd7\x13\x33\xd1\x13\x33\x80\x4c\xd9\x07\x11\xd8\x16\x1e\x97\x6f\x91\x6f\x8c\x03\x8f\x08\x89\x08\x90\x11\x89\x0b\xdc\x0b\x14\x90\x54\x98\x3c\xa8\x14\xd8\x15\x1f\xa0\x18\xf3\x03\x01\x0c\x2b\xf0\x00\x01\x05\x2b\xf8\xf4\x0d\x00\x0c\x12\xf2\x00\x02\x05\x16\xdc\x1a\x1d\x9f\x2e\x9b\x2e\xa9\x23\xd0\x0e\x2e\x88\x03\xdc\x08\x0b\x8f\x08\x89\x08\x90\x13\x8f\x0d\x89\x0d\xfb\xf0\x05\x02\x05\x16\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -runpy_toplevel_consts_14_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\x82\x2f\x41\x3c\x00\xc1\x3c\x09\x42\x39\x03\xc2\x05\x2a\x42\x34\x03\xc2\x34\x05\x42\x39\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_alter_argv = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "alter_argv", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_main_globals = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "main_globals", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -runpy_toplevel_consts_14_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & const_str_mod_name._ascii.ob_base, - & const_str_alter_argv._ascii.ob_base, - & const_str_mod_spec._ascii.ob_base, - &_Py_ID(code), - & const_str_exc._ascii.ob_base, - &_Py_ID(msg), - & const_str_main_globals._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(376) -runpy_toplevel_consts_14 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 188, - }, - .co_consts = & runpy_toplevel_consts_14_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_14_names._object.ob_base.ob_base, - .co_exceptiontable = & runpy_toplevel_consts_14_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 2, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 14 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 173, - .co_nlocalsplus = 7, - .co_nlocals = 7, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 755, - .co_localsplusnames = & runpy_toplevel_consts_14_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_9_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = & const_str__run_module_as_main._ascii.ob_base, - .co_qualname = & const_str__run_module_as_main._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_14_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x09\x00\x7c\x01\x73\x05\x7c\x00\x64\x01\x6b\x37\x00\x00\x72\x15\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x00\x7d\x02\x7d\x03\x6e\x13\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x00\x7d\x02\x7d\x03\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x19\x00\x00\x00\x6a\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x06\x7c\x01\x72\x1d\x7f\x02\x6a\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x3c\x00\x00\x00\x74\x15\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x03\x7c\x06\x64\x03\x64\x01\x7f\x02\xab\x05\x00\x00\x00\x00\x00\x00\x53\x00\x23\x00\x74\x02\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x34\x7d\x04\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x01\x64\x02\x7c\x04\x9b\x01\x9d\x03\x7d\x05\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x59\x00\x64\x03\x7d\x04\x7e\x04\x8c\x83\x64\x03\x7d\x04\x7e\x04\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyCompactUnicodeObject _compact; - uint16_t _data[801]; - } -runpy_toplevel_consts_15_consts_0 = { - ._compact = { - ._base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 800, - .hash = -1, - .state = { - .kind = 2, - .compact = 1, - .ascii = 0, - .statically_allocated = 1, - }, - }, - .utf8 = "\x45\x78\x65\x63\x75\x74\x65\x20\x61\x20\x6d\x6f\x64\x75\x6c\x65\x27\x73\x20\x63\x6f\x64\x65\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x69\x6d\x70\x6f\x72\x74\x69\x6e\x67\x20\x69\x74\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x5f\x6e\x61\x6d\x65\x20\x2d\x2d\x20\x61\x6e\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x6e\x61\x6d\x65\x20\x6f\x72\x20\x70\x61\x63\x6b\x61\x67\x65\x20\x6e\x61\x6d\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x4f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x69\x74\x5f\x67\x6c\x6f\x62\x61\x6c\x73\x20\x2d\x2d\x20\x64\x69\x63\x74\x69\x6f\x6e\x61\x72\x79\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x70\x72\x65\x2d\x70\x6f\x70\x75\x6c\x61\x74\x65\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\xe2\x80\x99\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x6c\x6f\x62\x61\x6c\x73\x20\x64\x69\x63\x74\x69\x6f\x6e\x61\x72\x79\x20\x62\x65\x66\x6f\x72\x65\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x20\x69\x73\x20\x65\x78\x65\x63\x75\x74\x65\x64\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x75\x6e\x5f\x6e\x61\x6d\x65\x20\x2d\x2d\x20\x69\x66\x20\x6e\x6f\x74\x20\x4e\x6f\x6e\x65\x2c\x20\x74\x68\x69\x73\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x75\x73\x65\x64\x20\x66\x6f\x72\x20\x73\x65\x74\x74\x69\x6e\x67\x20\x5f\x5f\x6e\x61\x6d\x65\x5f\x5f\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x2c\x20\x5f\x5f\x6e\x61\x6d\x65\x5f\x5f\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x73\x65\x74\x20\x74\x6f\x20\x6d\x6f\x64\x5f\x6e\x61\x6d\x65\x20\x2b\x20\x27\x5f\x5f\x6d\x61\x69\x6e\x5f\x5f\x27\x20\x69\x66\x20\x74\x68\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x6e\x61\x6d\x65\x64\x20\x6d\x6f\x64\x75\x6c\x65\x20\x69\x73\x20\x61\x20\x70\x61\x63\x6b\x61\x67\x65\x20\x61\x6e\x64\x20\x74\x6f\x20\x6a\x75\x73\x74\x20\x6d\x6f\x64\x5f\x6e\x61\x6d\x65\x20\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x61\x6c\x74\x65\x72\x5f\x73\x79\x73\x20\x2d\x2d\x20\x69\x66\x20\x54\x72\x75\x65\x2c\x20\x73\x79\x73\x2e\x61\x72\x67\x76\x5b\x30\x5d\x20\x69\x73\x20\x75\x70\x64\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x0a\x20\x20\x20\x20\x20\x20\x20\x5f\x5f\x66\x69\x6c\x65\x5f\x5f\x20\x61\x6e\x64\x20\x73\x79\x73\x2e\x6d\x6f\x64\x75\x6c\x65\x73\x5b\x5f\x5f\x6e\x61\x6d\x65\x5f\x5f\x5d\x20\x69\x73\x20\x75\x70\x64\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\x61\x20\x74\x65\x6d\x70\x6f\x72\x61\x72\x79\x0a\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x75\x6c\x65\x20\x6f\x62\x6a\x65\x63\x74\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\x20\x62\x65\x69\x6e\x67\x20\x65\x78\x65\x63\x75\x74\x65\x64\x2e\x20\x42\x6f\x74\x68\x20\x61\x72\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x74\x6f\x72\x65\x64\x20\x74\x6f\x20\x74\x68\x65\x69\x72\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x76\x61\x6c\x75\x65\x73\x20\x62\x65\x66\x6f\x72\x65\x20\x74\x68\x65\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x74\x75\x72\x6e\x73\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x73\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6c\x74\x69\x6e\x67\x20\x6d\x6f\x64\x75\x6c\x65\x20\x67\x6c\x6f\x62\x61\x6c\x73\x20\x64\x69\x63\x74\x69\x6f\x6e\x61\x72\x79\x2e\x0a\x20\x20\x20\x20", - .utf8_length = 802, - }, - ._data = { - 69, 120, 101, 99, 117, 116, 101, 32, 97, 32, 109, 111, 100, 117, 108, 101, - 39, 115, 32, 99, 111, 100, 101, 32, 119, 105, 116, 104, 111, 117, 116, 32, - 105, 109, 112, 111, 114, 116, 105, 110, 103, 32, 105, 116, 46, 10, 10, 32, - 32, 32, 32, 32, 32, 32, 109, 111, 100, 95, 110, 97, 109, 101, 32, 45, - 45, 32, 97, 110, 32, 97, 98, 115, 111, 108, 117, 116, 101, 32, 109, 111, - 100, 117, 108, 101, 32, 110, 97, 109, 101, 32, 111, 114, 32, 112, 97, 99, - 107, 97, 103, 101, 32, 110, 97, 109, 101, 46, 10, 10, 32, 32, 32, 32, - 32, 32, 32, 79, 112, 116, 105, 111, 110, 97, 108, 32, 97, 114, 103, 117, - 109, 101, 110, 116, 115, 58, 10, 32, 32, 32, 32, 32, 32, 32, 105, 110, - 105, 116, 95, 103, 108, 111, 98, 97, 108, 115, 32, 45, 45, 32, 100, 105, - 99, 116, 105, 111, 110, 97, 114, 121, 32, 117, 115, 101, 100, 32, 116, 111, - 32, 112, 114, 101, 45, 112, 111, 112, 117, 108, 97, 116, 101, 32, 116, 104, - 101, 32, 109, 111, 100, 117, 108, 101, 8217, 115, 10, 32, 32, 32, 32, 32, - 32, 32, 103, 108, 111, 98, 97, 108, 115, 32, 100, 105, 99, 116, 105, 111, - 110, 97, 114, 121, 32, 98, 101, 102, 111, 114, 101, 32, 116, 104, 101, 32, - 99, 111, 100, 101, 32, 105, 115, 32, 101, 120, 101, 99, 117, 116, 101, 100, - 46, 10, 10, 32, 32, 32, 32, 32, 32, 32, 114, 117, 110, 95, 110, 97, - 109, 101, 32, 45, 45, 32, 105, 102, 32, 110, 111, 116, 32, 78, 111, 110, - 101, 44, 32, 116, 104, 105, 115, 32, 119, 105, 108, 108, 32, 98, 101, 32, - 117, 115, 101, 100, 32, 102, 111, 114, 32, 115, 101, 116, 116, 105, 110, 103, - 32, 95, 95, 110, 97, 109, 101, 95, 95, 59, 10, 32, 32, 32, 32, 32, - 32, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 44, 32, 95, 95, 110, - 97, 109, 101, 95, 95, 32, 119, 105, 108, 108, 32, 98, 101, 32, 115, 101, - 116, 32, 116, 111, 32, 109, 111, 100, 95, 110, 97, 109, 101, 32, 43, 32, - 39, 95, 95, 109, 97, 105, 110, 95, 95, 39, 32, 105, 102, 32, 116, 104, - 101, 10, 32, 32, 32, 32, 32, 32, 32, 110, 97, 109, 101, 100, 32, 109, - 111, 100, 117, 108, 101, 32, 105, 115, 32, 97, 32, 112, 97, 99, 107, 97, - 103, 101, 32, 97, 110, 100, 32, 116, 111, 32, 106, 117, 115, 116, 32, 109, - 111, 100, 95, 110, 97, 109, 101, 32, 111, 116, 104, 101, 114, 119, 105, 115, - 101, 46, 10, 10, 32, 32, 32, 32, 32, 32, 32, 97, 108, 116, 101, 114, - 95, 115, 121, 115, 32, 45, 45, 32, 105, 102, 32, 84, 114, 117, 101, 44, - 32, 115, 121, 115, 46, 97, 114, 103, 118, 91, 48, 93, 32, 105, 115, 32, - 117, 112, 100, 97, 116, 101, 100, 32, 119, 105, 116, 104, 32, 116, 104, 101, - 32, 118, 97, 108, 117, 101, 32, 111, 102, 10, 32, 32, 32, 32, 32, 32, - 32, 95, 95, 102, 105, 108, 101, 95, 95, 32, 97, 110, 100, 32, 115, 121, - 115, 46, 109, 111, 100, 117, 108, 101, 115, 91, 95, 95, 110, 97, 109, 101, - 95, 95, 93, 32, 105, 115, 32, 117, 112, 100, 97, 116, 101, 100, 32, 119, - 105, 116, 104, 32, 97, 32, 116, 101, 109, 112, 111, 114, 97, 114, 121, 10, - 32, 32, 32, 32, 32, 32, 32, 109, 111, 100, 117, 108, 101, 32, 111, 98, - 106, 101, 99, 116, 32, 102, 111, 114, 32, 116, 104, 101, 32, 109, 111, 100, - 117, 108, 101, 32, 98, 101, 105, 110, 103, 32, 101, 120, 101, 99, 117, 116, - 101, 100, 46, 32, 66, 111, 116, 104, 32, 97, 114, 101, 10, 32, 32, 32, - 32, 32, 32, 32, 114, 101, 115, 116, 111, 114, 101, 100, 32, 116, 111, 32, - 116, 104, 101, 105, 114, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 118, - 97, 108, 117, 101, 115, 32, 98, 101, 102, 111, 114, 101, 32, 116, 104, 101, - 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 114, 101, 116, 117, 114, 110, - 115, 46, 10, 10, 32, 32, 32, 32, 32, 32, 32, 82, 101, 116, 117, 114, - 110, 115, 32, 116, 104, 101, 32, 114, 101, 115, 117, 108, 116, 105, 110, 103, - 32, 109, 111, 100, 117, 108, 101, 32, 103, 108, 111, 98, 97, 108, 115, 32, - 100, 105, 99, 116, 105, 111, 110, 97, 114, 121, 46, 10, 32, 32, 32, 32, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -runpy_toplevel_consts_15_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & runpy_toplevel_consts_15_consts_0._compact._base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -runpy_toplevel_consts_15_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str__get_module_details._ascii.ob_base, - & const_str__run_module_code._ascii.ob_base, - & const_str__run_code._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[74]; - } -runpy_toplevel_consts_15_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 73, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf4\x2a\x00\x20\x33\xb0\x38\xd3\x1f\x3c\xd1\x04\x1c\x80\x48\x88\x68\x98\x04\xd8\x07\x0f\xd0\x07\x17\xd8\x13\x1b\x88\x08\xd9\x07\x10\xdc\x0f\x1f\xa0\x04\xa0\x6c\xb0\x48\xb8\x68\xd3\x0f\x47\xd0\x08\x47\xf4\x06\x00\x10\x19\x98\x14\x98\x72\xa0\x3c\xb0\x18\xb8\x38\xd3\x0f\x44\xd0\x08\x44", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_run_name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "run_name", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_alter_sys = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "alter_sys", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -runpy_toplevel_consts_15_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_mod_name._ascii.ob_base, - & const_str_init_globals._ascii.ob_base, - & const_str_run_name._ascii.ob_base, - & const_str_alter_sys._ascii.ob_base, - & const_str_mod_spec._ascii.ob_base, - &_Py_ID(code), - }, - }, -}; -static - struct _PyCode_DEF(102) -runpy_toplevel_consts_15 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 51, - }, - .co_consts = & runpy_toplevel_consts_15_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_15_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 4, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 13 + FRAME_SPECIALS_SIZE, - .co_stacksize = 7, - .co_firstlineno = 201, - .co_nlocalsplus = 6, - .co_nlocals = 6, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 756, - .co_localsplusnames = & runpy_toplevel_consts_15_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_30_consts_4_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = & const_str_run_module._ascii.ob_base, - .co_qualname = & const_str_run_module._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_15_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x00\x7d\x04\x7d\x05\x7c\x02\x80\x02\x7c\x00\x7d\x02\x7c\x03\x72\x0e\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x7c\x01\x7c\x02\x7c\x04\xab\x04\x00\x00\x00\x00\x00\x00\x53\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x69\x00\x7c\x01\x7c\x02\x7c\x04\xab\x05\x00\x00\x00\x00\x00\x00\x53\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -runpy_toplevel_consts_16_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "can't find ", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -runpy_toplevel_consts_16_consts_3 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = " module in ", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -runpy_toplevel_consts_16_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - Py_None, - &_Py_ID(__main__), - & runpy_toplevel_consts_16_consts_2._ascii.ob_base, - & runpy_toplevel_consts_16_consts_3._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -runpy_toplevel_consts_16_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_sys._ascii.ob_base, - &_Py_ID(modules), - & const_str__get_module_details._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - & const_str_str._ascii.ob_base, - &_Py_ID(path), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[150]; - } -runpy_toplevel_consts_16_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 149, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x0a\x00\x11\x1b\x80\x49\xdc\x11\x14\x97\x1b\x91\x1b\x98\x59\xd1\x11\x27\x80\x4a\xdc\x08\x0b\x8f\x0b\x89\x0b\x90\x49\xd0\x08\x1e\xf0\x02\x08\x05\x2c\xdc\x0f\x22\xa0\x39\xd3\x0f\x2d\xf0\x0e\x00\x22\x2c\x8c\x03\x8f\x0b\x89\x0b\x90\x49\xd2\x08\x1e\xf8\xf4\x0d\x00\x0c\x17\xf2\x00\x04\x05\x0e\xd8\x0b\x14\x9c\x03\x98\x43\x9b\x08\xd1\x0b\x20\xda\x12\x17\xda\x1f\x28\xac\x23\xaf\x28\xa9\x28\xb0\x31\xaa\x2b\xf0\x03\x01\x19\x37\xf3\x00\x01\x13\x38\xd8\x3d\x40\xf0\x03\x01\x0d\x41\x01\xe0\x08\x0d\xfb\xf0\x09\x04\x05\x0e\xfb\xf0\x0c\x00\x22\x2c\x8c\x03\x8f\x0b\x89\x0b\x90\x49\xd2\x08\x1e\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[36]; - } -runpy_toplevel_consts_16_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 35, - }, - .ob_shash = -1, - .ob_sval = "\xa8\x0a\x41\x06\x00\xc1\x06\x09\x42\x02\x03\xc1\x0f\x2e\x41\x3d\x03\xc1\x3d\x05\x42\x02\x03\xc2\x02\x03\x42\x05\x00\xc2\x05\x15\x42\x1a\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_main_name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "main_name", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -const_str_saved_main = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "saved_main", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -runpy_toplevel_consts_16_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - & const_str_error._ascii.ob_base, - & const_str_main_name._ascii.ob_base, - & const_str_saved_main._ascii.ob_base, - & const_str_exc._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(314) -runpy_toplevel_consts_16 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 157, - }, - .co_consts = & runpy_toplevel_consts_16_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_16_names._object.ob_base.ob_base, - .co_exceptiontable = & runpy_toplevel_consts_16_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 12 + FRAME_SPECIALS_SIZE, - .co_stacksize = 8, - .co_firstlineno = 231, - .co_nlocalsplus = 4, - .co_nlocals = 4, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 757, - .co_localsplusnames = & runpy_toplevel_consts_16_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_3_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = & const_str__get_main_module_details._ascii.ob_base, - .co_qualname = & const_str__get_main_module_details._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_16_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x7d\x01\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x19\x00\x00\x00\x7d\x02\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x3d\x00\x09\x00\x74\x05\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x02\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x3c\x00\x00\x00\x53\x00\x23\x00\x74\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x33\x7d\x03\x7c\x01\x74\x09\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x76\x00\x72\x20\x02\x00\x7c\x00\x64\x02\x7c\x01\x9b\x02\x64\x03\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x19\x00\x00\x00\x9b\x02\x9d\x04\xab\x01\x00\x00\x00\x00\x00\x00\x7c\x03\x82\x02\x82\x00\x64\x00\x7d\x03\x7e\x03\x77\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x7c\x02\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x01\x3c\x00\x00\x00\x77\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_read_code = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "read_code", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -runpy_toplevel_consts_17_consts_2 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_read_code._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -runpy_toplevel_consts_17_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_None, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & runpy_toplevel_consts_17_consts_2._object.ob_base.ob_base, - & const_str_exec._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[8]; - } -const_str_pkgutil = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 7, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "pkgutil", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[9]; - }_object; - } -runpy_toplevel_consts_17_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 9, - }, - .ob_item = { - & const_str_pkgutil._ascii.ob_base, - & const_str_read_code._ascii.ob_base, - & const_str_os._ascii.ob_base, - &_Py_ID(path), - & const_str_abspath._ascii.ob_base, - & const_str_io._ascii.ob_base, - & const_str_open_code._ascii.ob_base, - & const_str_compile._ascii.ob_base, - &_Py_ID(read), - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -const_str__get_code_from_file = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "_get_code_from_file", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[125]; - } -runpy_toplevel_consts_17_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 124, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xe5\x04\x21\xdc\x10\x12\x97\x07\x91\x07\x97\x0f\x91\x0f\xa0\x05\xd3\x10\x26\x80\x49\xdc\x09\x0b\x8f\x1c\x89\x1c\x90\x69\xd4\x09\x20\xa0\x41\xd9\x0f\x18\x98\x11\x8b\x7c\x88\x04\xf7\x03\x00\x0a\x21\xe0\x07\x0b\x80\x7c\xe4\x0d\x0f\x8f\x5c\x89\x5c\x98\x29\xd4\x0d\x24\xa8\x01\xdc\x13\x1a\x98\x31\x9f\x36\x99\x36\x9b\x38\xa0\x55\xa8\x46\xd3\x13\x33\x88\x44\xf7\x03\x00\x0e\x25\xe0\x0b\x0f\x80\x4b\x88\x34\x80\x4b\xf7\x0d\x00\x0a\x21\xd0\x09\x20\xfa\xf7\x08\x00\x0e\x25\xe0\x0b\x0f\x80\x4b\xfa", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[24]; - } -runpy_toplevel_consts_17_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 23, - }, - .ob_shash = -1, - .ob_sval = "\xbb\x09\x42\x0b\x03\xc1\x23\x1c\x42\x17\x03\xc2\x0b\x05\x42\x14\x07\xc2\x17\x05\x42\x21\x07", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_code_path = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "code_path", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[5]; - }_object; - } -runpy_toplevel_consts_17_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 5, - }, - .ob_item = { - & const_str_fname._ascii.ob_base, - & const_str_read_code._ascii.ob_base, - & const_str_code_path._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[102], - &_Py_ID(code), - }, - }, -}; -static - struct _PyCode_DEF(328) -runpy_toplevel_consts_17 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 164, - }, - .co_consts = & runpy_toplevel_consts_17_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_17_names._object.ob_base.ob_base, - .co_exceptiontable = & runpy_toplevel_consts_17_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 1, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 11 + FRAME_SPECIALS_SIZE, - .co_stacksize = 6, - .co_firstlineno = 250, - .co_nlocalsplus = 5, - .co_nlocals = 5, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 758, - .co_localsplusnames = & runpy_toplevel_consts_17_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_7_consts_5_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = & const_str__get_code_from_file._ascii.ob_base, - .co_qualname = & const_str__get_code_from_file._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_17_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x01\x64\x02\x6c\x00\x6d\x01\x7d\x01\x01\x00\x74\x04\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x02\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x35\x00\x7d\x03\x02\x00\x7c\x01\x7c\x03\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x04\x64\x00\x64\x00\x64\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7f\x04\x80\x3b\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x35\x00\x7d\x03\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x6a\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x64\x03\xab\x03\x00\x00\x00\x00\x00\x00\x7d\x04\x64\x00\x64\x00\x64\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x7c\x04\x53\x00\x7c\x04\x53\x00\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x8c\x48\x78\x03\x59\x00\x77\x01\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x7c\x04\x53\x00\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyCompactUnicodeObject _compact; - uint16_t _data[531]; - } -runpy_toplevel_consts_18_consts_0 = { - ._compact = { - ._base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 530, - .hash = -1, - .state = { - .kind = 2, - .compact = 1, - .ascii = 0, - .statically_allocated = 1, - }, - }, - .utf8 = "\x45\x78\x65\x63\x75\x74\x65\x20\x63\x6f\x64\x65\x20\x6c\x6f\x63\x61\x74\x65\x64\x20\x61\x74\x20\x74\x68\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x20\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x68\x5f\x6e\x61\x6d\x65\x20\x2d\x2d\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x20\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x6f\x66\x20\x61\x20\x50\x79\x74\x68\x6f\x6e\x20\x73\x63\x72\x69\x70\x74\x2c\x20\x7a\x69\x70\x66\x69\x6c\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x20\x63\x6f\x6e\x74\x61\x69\x6e\x69\x6e\x67\x20\x61\x20\x74\x6f\x70\x20\x6c\x65\x76\x65\x6c\x20\x5f\x5f\x6d\x61\x69\x6e\x5f\x5f\x2e\x70\x79\x20\x73\x63\x72\x69\x70\x74\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x4f\x70\x74\x69\x6f\x6e\x61\x6c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x69\x74\x5f\x67\x6c\x6f\x62\x61\x6c\x73\x20\x2d\x2d\x20\x64\x69\x63\x74\x69\x6f\x6e\x61\x72\x79\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x70\x72\x65\x2d\x70\x6f\x70\x75\x6c\x61\x74\x65\x20\x74\x68\x65\x20\x6d\x6f\x64\x75\x6c\x65\xe2\x80\x99\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x6c\x6f\x62\x61\x6c\x73\x20\x64\x69\x63\x74\x69\x6f\x6e\x61\x72\x79\x20\x62\x65\x66\x6f\x72\x65\x20\x74\x68\x65\x20\x63\x6f\x64\x65\x20\x69\x73\x20\x65\x78\x65\x63\x75\x74\x65\x64\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x75\x6e\x5f\x6e\x61\x6d\x65\x20\x2d\x2d\x20\x69\x66\x20\x6e\x6f\x74\x20\x4e\x6f\x6e\x65\x2c\x20\x74\x68\x69\x73\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x73\x65\x74\x20\x5f\x5f\x6e\x61\x6d\x65\x5f\x5f\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x2c\x20\x27\x3c\x72\x75\x6e\x5f\x70\x61\x74\x68\x3e\x27\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x75\x73\x65\x64\x20\x66\x6f\x72\x20\x5f\x5f\x6e\x61\x6d\x65\x5f\x5f\x2e\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x52\x65\x74\x75\x72\x6e\x73\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6c\x74\x69\x6e\x67\x20\x6d\x6f\x64\x75\x6c\x65\x20\x67\x6c\x6f\x62\x61\x6c\x73\x20\x64\x69\x63\x74\x69\x6f\x6e\x61\x72\x79\x2e\x0a\x20\x20\x20\x20", - .utf8_length = 532, - }, - ._data = { - 69, 120, 101, 99, 117, 116, 101, 32, 99, 111, 100, 101, 32, 108, 111, 99, - 97, 116, 101, 100, 32, 97, 116, 32, 116, 104, 101, 32, 115, 112, 101, 99, - 105, 102, 105, 101, 100, 32, 102, 105, 108, 101, 115, 121, 115, 116, 101, 109, - 32, 108, 111, 99, 97, 116, 105, 111, 110, 46, 10, 10, 32, 32, 32, 32, - 32, 32, 32, 112, 97, 116, 104, 95, 110, 97, 109, 101, 32, 45, 45, 32, - 102, 105, 108, 101, 115, 121, 115, 116, 101, 109, 32, 108, 111, 99, 97, 116, - 105, 111, 110, 32, 111, 102, 32, 97, 32, 80, 121, 116, 104, 111, 110, 32, - 115, 99, 114, 105, 112, 116, 44, 32, 122, 105, 112, 102, 105, 108, 101, 44, - 10, 32, 32, 32, 32, 32, 32, 32, 111, 114, 32, 100, 105, 114, 101, 99, - 116, 111, 114, 121, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, - 97, 32, 116, 111, 112, 32, 108, 101, 118, 101, 108, 32, 95, 95, 109, 97, - 105, 110, 95, 95, 46, 112, 121, 32, 115, 99, 114, 105, 112, 116, 46, 10, - 10, 32, 32, 32, 32, 32, 32, 32, 79, 112, 116, 105, 111, 110, 97, 108, - 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 58, 10, 32, 32, 32, 32, - 32, 32, 32, 105, 110, 105, 116, 95, 103, 108, 111, 98, 97, 108, 115, 32, - 45, 45, 32, 100, 105, 99, 116, 105, 111, 110, 97, 114, 121, 32, 117, 115, - 101, 100, 32, 116, 111, 32, 112, 114, 101, 45, 112, 111, 112, 117, 108, 97, - 116, 101, 32, 116, 104, 101, 32, 109, 111, 100, 117, 108, 101, 8217, 115, 10, - 32, 32, 32, 32, 32, 32, 32, 103, 108, 111, 98, 97, 108, 115, 32, 100, - 105, 99, 116, 105, 111, 110, 97, 114, 121, 32, 98, 101, 102, 111, 114, 101, - 32, 116, 104, 101, 32, 99, 111, 100, 101, 32, 105, 115, 32, 101, 120, 101, - 99, 117, 116, 101, 100, 46, 10, 10, 32, 32, 32, 32, 32, 32, 32, 114, - 117, 110, 95, 110, 97, 109, 101, 32, 45, 45, 32, 105, 102, 32, 110, 111, - 116, 32, 78, 111, 110, 101, 44, 32, 116, 104, 105, 115, 32, 119, 105, 108, - 108, 32, 98, 101, 32, 117, 115, 101, 100, 32, 116, 111, 32, 115, 101, 116, - 32, 95, 95, 110, 97, 109, 101, 95, 95, 59, 10, 32, 32, 32, 32, 32, - 32, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 44, 32, 39, 60, 114, - 117, 110, 95, 112, 97, 116, 104, 62, 39, 32, 119, 105, 108, 108, 32, 98, - 101, 32, 117, 115, 101, 100, 32, 102, 111, 114, 32, 95, 95, 110, 97, 109, - 101, 95, 95, 46, 10, 10, 32, 32, 32, 32, 32, 32, 32, 82, 101, 116, - 117, 114, 110, 115, 32, 116, 104, 101, 32, 114, 101, 115, 117, 108, 116, 105, - 110, 103, 32, 109, 111, 100, 117, 108, 101, 32, 103, 108, 111, 98, 97, 108, - 115, 32, 100, 105, 99, 116, 105, 111, 110, 97, 114, 121, 46, 10, 32, 32, - 32, 32, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[11]; - } -runpy_toplevel_consts_18_consts_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 10, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -const_str_get_importer = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "get_importer", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -runpy_toplevel_consts_18_consts_5 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_get_importer._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -runpy_toplevel_consts_18_consts_6 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_pkg_name._ascii.ob_base, - & const_str_script_name._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[7]; - }_object; - } -runpy_toplevel_consts_18_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 7, - }, - .ob_item = { - & runpy_toplevel_consts_18_consts_0._compact._base.ob_base, - Py_None, - & runpy_toplevel_consts_18_consts_2._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).ascii[46], - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - & runpy_toplevel_consts_18_consts_5._object.ob_base.ob_base, - & runpy_toplevel_consts_18_consts_6._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[21]; - }_object; - } -runpy_toplevel_consts_18_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 21, - }, - .ob_item = { - & const_str_rpartition._ascii.ob_base, - & const_str_pkgutil._ascii.ob_base, - & const_str_get_importer._ascii.ob_base, - & const_str_os._ascii.ob_base, - & const_str_fsdecode._ascii.ob_base, - &_Py_ID(isinstance), - &_Py_ID(type), - & const_str__get_code_from_file._ascii.ob_base, - & const_str__run_module_code._ascii.ob_base, - & const_str_sys._ascii.ob_base, - &_Py_ID(path), - & const_str_insert._ascii.ob_base, - & const_str__get_main_module_details._ascii.ob_base, - & const_str__TempModule._ascii.ob_base, - & const_str__ModifiedArgv0._ascii.ob_base, - &_Py_ID(module), - &_Py_ID(__dict__), - & const_str__run_code._ascii.ob_base, - &_Py_ID(copy), - & const_str_remove._ascii.ob_base, - & const_str_ValueError._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[380]; - } -runpy_toplevel_consts_18_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 379, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xf0\x1e\x00\x08\x10\xd0\x07\x17\xd8\x13\x1f\x88\x08\xd8\x0f\x17\xd7\x0f\x22\xd1\x0f\x22\xa0\x33\xd3\x0f\x27\xa8\x01\xd1\x0f\x2a\x80\x48\xdd\x04\x24\xd9\x0f\x1b\x98\x49\xd3\x0f\x26\x80\x48\xdc\x10\x12\x97\x0b\x91\x0b\x98\x49\xd3\x10\x26\x80\x49\xdc\x07\x11\x90\x28\x9c\x44\xa0\x14\x9b\x4a\xd4\x07\x27\xf4\x06\x00\x10\x23\xa0\x39\xd3\x0f\x2d\x88\x04\xdc\x0f\x1f\xa0\x04\xa0\x6c\xb0\x48\xd8\x29\x31\xb8\x79\xf4\x03\x01\x10\x4a\x01\xf0\x00\x01\x09\x4a\x01\xf4\x0a\x00\x09\x0c\x8f\x08\x89\x08\x8f\x0f\x89\x0f\x98\x01\x98\x39\xd4\x08\x25\xf0\x02\x11\x09\x15\xf4\x0e\x00\x28\x40\x01\xd3\x27\x41\xd1\x0c\x24\x88\x48\x90\x68\xa0\x04\xdc\x11\x1c\x98\x58\xd4\x11\x26\xa8\x2b\xdc\x11\x1f\xa0\x09\xd5\x11\x2a\xd8\x1e\x29\xd7\x1e\x30\xd1\x1e\x30\xd7\x1e\x39\xd1\x1e\x39\x90\x0b\xdc\x17\x20\xa0\x14\xa0\x7b\xb0\x4c\xd8\x24\x2c\xa8\x68\xb8\x08\xf3\x03\x01\x18\x42\x01\xdf\x42\x46\xc1\x24\xc3\x26\xf7\x07\x00\x12\x2b\xd0\x11\x2a\xf7\x03\x00\x12\x27\xd0\x11\x26\xf0\x0c\x03\x0d\x15\xdc\x10\x13\x97\x08\x91\x08\x97\x0f\x91\x0f\xa0\x09\xd5\x10\x2a\xf8\xdc\x13\x1d\xf2\x00\x01\x0d\x15\xd9\x10\x14\xf0\x03\x01\x0d\x15\xfa\xf7\x0f\x00\x12\x2b\xd0\x11\x2a\xfa\xd0\x11\x2a\xf7\x03\x00\x12\x27\xd7\x11\x26\xd1\x11\x26\xfa\xf0\x0c\x03\x0d\x15\xdc\x10\x13\x97\x08\x91\x08\x97\x0f\x91\x0f\xa0\x09\xd5\x10\x2a\xf8\xdc\x13\x1d\xf2\x00\x01\x0d\x15\xd9\x10\x14\xf0\x03\x01\x0d\x15\xfb\xf0\x05\x03\x0d\x15\xdc\x10\x13\x97\x08\x91\x08\x97\x0f\x91\x0f\xa0\x09\xd5\x10\x2a\xf8\xdc\x13\x1d\xf2\x00\x01\x0d\x15\xd9\x10\x14\xf0\x03\x01\x0d\x15\xfd", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[139]; - } -runpy_toplevel_consts_18_exceptiontable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 138, - }, - .ob_shash = -1, - .ob_sval = "\xc2\x0d\x19\x45\x3a\x00\xc2\x26\x0c\x44\x3e\x03\xc2\x32\x34\x44\x28\x05\xc3\x26\x09\x44\x3e\x03\xc3\x2f\x09\x45\x3a\x00\xc3\x39\x1f\x44\x19\x02\xc4\x19\x09\x44\x25\x05\xc4\x24\x01\x44\x25\x05\xc4\x28\x05\x44\x31\x09\xc4\x2d\x07\x44\x3e\x03\xc4\x35\x09\x45\x3a\x00\xc4\x3e\x05\x45\x07\x07\xc5\x03\x07\x45\x3a\x00\xc5\x0b\x1f\x45\x2b\x00\xc5\x2b\x09\x45\x37\x03\xc5\x36\x01\x45\x37\x03\xc5\x3a\x01\x46\x2b\x03\xc5\x3c\x1f\x46\x1c\x04\xc6\x1b\x01\x46\x2b\x03\xc6\x1c\x09\x46\x28\x07\xc6\x25\x02\x46\x2b\x03\xc6\x27\x01\x46\x28\x07\xc6\x28\x03\x46\x2b\x03", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[10]; - } -const_str_path_name = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 9, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "path_name", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[9]; - } -const_str_importer = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 8, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "importer", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[11]; - }_object; - } -runpy_toplevel_consts_18_localsplusnames = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 11, - }, - .ob_item = { - & const_str_path_name._ascii.ob_base, - & const_str_init_globals._ascii.ob_base, - & const_str_run_name._ascii.ob_base, - & const_str_pkg_name._ascii.ob_base, - & const_str_get_importer._ascii.ob_base, - & const_str_importer._ascii.ob_base, - &_Py_ID(code), - & const_str_mod_name._ascii.ob_base, - & const_str_mod_spec._ascii.ob_base, - & const_str_temp_module._ascii.ob_base, - & const_str_mod_globals._ascii.ob_base, - }, - }, -}; -static - struct _PyCode_DEF(860) -runpy_toplevel_consts_18 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 430, - }, - .co_consts = & runpy_toplevel_consts_18_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_18_names._object.ob_base.ob_base, - .co_exceptiontable = & runpy_toplevel_consts_18_exceptiontable.ob_base.ob_base, - .co_flags = 3, - .co_argcount = 3, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 21 + FRAME_SPECIALS_SIZE, - .co_stacksize = 10, - .co_firstlineno = 262, - .co_nlocalsplus = 11, - .co_nlocals = 11, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 759, - .co_localsplusnames = & runpy_toplevel_consts_18_localsplusnames._object.ob_base.ob_base, - .co_localspluskinds = & importlib__bootstrap_toplevel_consts_46_consts_6_localspluskinds.ob_base.ob_base, - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = & const_str_run_path._ascii.ob_base, - .co_qualname = & const_str_run_path._ascii.ob_base, - .co_linetable = & runpy_toplevel_consts_18_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x7c\x02\x80\x02\x64\x02\x7d\x02\x7c\x02\x6a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x03\xab\x01\x00\x00\x00\x00\x00\x00\x64\x04\x19\x00\x00\x00\x7d\x03\x64\x04\x64\x05\x6c\x01\x6d\x02\x7d\x04\x01\x00\x02\x00\x7c\x04\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x05\x74\x07\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x00\x74\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x05\x74\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\xab\x02\x00\x00\x00\x00\x00\x00\x72\x1b\x74\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x7d\x06\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x7c\x01\x7c\x02\x7c\x03\x7c\x00\xac\x06\xab\x05\x00\x00\x00\x00\x00\x00\x53\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x04\x7c\x00\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x74\x19\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x5c\x03\x00\x00\x7d\x07\x7d\x08\x7d\x06\x74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\xab\x01\x00\x00\x00\x00\x00\x00\x35\x00\x7d\x09\x74\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x35\x00\x01\x00\x7c\x09\x6a\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x0a\x74\x23\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x06\x7c\x0a\x7c\x01\x7c\x02\x7c\x08\x7c\x03\xab\x06\x00\x00\x00\x00\x00\x00\x6a\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\x00\x00\x00\x00\x00\x00\x63\x02\x64\x01\x64\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x63\x02\x64\x01\x64\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x09\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x53\x00\x23\x00\x74\x28\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x53\x00\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x6e\x03\x78\x03\x59\x00\x77\x01\x09\x00\x64\x01\x64\x01\x64\x01\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x6e\x0c\x23\x00\x31\x00\x73\x01\x77\x02\x01\x00\x59\x00\x01\x00\x01\x00\x6e\x03\x78\x03\x59\x00\x77\x01\x09\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x01\x23\x00\x74\x28\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x79\x01\x77\x00\x78\x03\x59\x00\x77\x01\x23\x00\x09\x00\x74\x12\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x77\x00\x23\x00\x74\x28\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x72\x03\x01\x00\x59\x00\x77\x00\x77\x00\x78\x03\x59\x00\x77\x01\x78\x03\x59\x00\x77\x01", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[34]; - } -runpy_toplevel_consts_21 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 33, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "No module specified for execution", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -runpy_toplevel_consts_25 = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_None, - Py_None, - Py_False, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[27]; - }_object; - } -runpy_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 27, - }, - .ob_item = { - & runpy_toplevel_consts_0._ascii.ob_base, - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 0], - Py_None, - & const_str_run_module._ascii.ob_base, - & const_str_run_path._ascii.ob_base, - & runpy_toplevel_consts_5.ob_base.ob_base, - & const_str__TempModule._ascii.ob_base, - & runpy_toplevel_consts_7.ob_base.ob_base, - & const_str__ModifiedArgv0._ascii.ob_base, - & runpy_toplevel_consts_9.ob_base.ob_base, - & runpy_toplevel_consts_10.ob_base.ob_base, - & runpy_toplevel_consts_11.ob_base.ob_base, - & runpy_toplevel_consts_12.ob_base.ob_base, - & const_str__Error._ascii.ob_base, - & runpy_toplevel_consts_14.ob_base.ob_base, - & runpy_toplevel_consts_15.ob_base.ob_base, - & runpy_toplevel_consts_16.ob_base.ob_base, - & runpy_toplevel_consts_17.ob_base.ob_base, - & runpy_toplevel_consts_18.ob_base.ob_base, - &_Py_ID(__main__), - (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS + 2], - & runpy_toplevel_consts_21._ascii.ob_base, - & importlib__bootstrap_toplevel_consts_25_consts_3._object.ob_base.ob_base, - & codecs_toplevel_consts_12_consts_7._object.ob_base.ob_base, - & importlib__bootstrap_external_toplevel_consts_82._object.ob_base.ob_base, - & runpy_toplevel_consts_25._object.ob_base.ob_base, - & importlib__bootstrap_toplevel_consts_44_consts_10._object.ob_base.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -runpy_toplevel_names_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "importlib.machinery", -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[15]; - } -runpy_toplevel_names_4 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 14, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "importlib.util", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[29]; - }_object; - } -runpy_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 29, - }, - .ob_item = { - &_Py_ID(__doc__), - & const_str_sys._ascii.ob_base, - & runpy_toplevel_names_2._ascii.ob_base, - &_Py_ID(importlib), - & runpy_toplevel_names_4._ascii.ob_base, - & const_str_io._ascii.ob_base, - & const_str_os._ascii.ob_base, - &_Py_ID(__all__), - &_Py_ID(type), - & const_str_ModuleType._ascii.ob_base, - &_Py_ID(object), - & const_str__TempModule._ascii.ob_base, - & const_str__ModifiedArgv0._ascii.ob_base, - & const_str__run_code._ascii.ob_base, - & const_str__run_module_code._ascii.ob_base, - & const_str_ImportError._ascii.ob_base, - & const_str__get_module_details._ascii.ob_base, - & const_str_Exception._ascii.ob_base, - & const_str__Error._ascii.ob_base, - & const_str__run_module_as_main._ascii.ob_base, - & const_str_run_module._ascii.ob_base, - & const_str__get_main_module_details._ascii.ob_base, - & const_str__get_code_from_file._ascii.ob_base, - & const_str_run_path._ascii.ob_base, - &_Py_ID(__name__), - &_Py_ID(len), - &_Py_ID(argv), - & const_str_print._ascii.ob_base, - &_Py_ID(stderr), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[247]; - } -runpy_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 246, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xf1\x02\x07\x01\x04\xf3\x18\x00\x01\x0b\xdb\x00\x1a\xdb\x00\x15\xdb\x00\x09\xdb\x00\x09\xf0\x06\x00\x05\x11\x90\x2a\xf0\x03\x02\x0b\x02\x80\x07\xf1\x0a\x00\x0e\x12\x90\x23\x8b\x59\x80\x0a\xf4\x04\x15\x01\x20\x90\x26\xf4\x00\x15\x01\x20\xf4\x2e\x0d\x01\x28\x90\x56\xf4\x00\x0d\x01\x28\xf0\x20\x00\x2f\x33\xd8\x26\x2a\xd8\x29\x2d\xf3\x05\x18\x01\x17\xf0\x34\x00\x29\x2d\xd8\x2c\x30\xd8\x2f\x33\xf3\x05\x0b\x01\x1e\xf0\x1c\x00\x29\x34\xf3\x00\x3b\x01\x20\xf4\x7a\x01\x01\x01\x4d\x01\x88\x59\xf4\x00\x01\x01\x4d\x01\xf3\x0e\x1a\x01\x2b\xf0\x38\x00\x27\x2b\xd8\x28\x2d\xf3\x03\x1c\x01\x45\x01\xf0\x3c\x00\x24\x2f\xf3\x00\x10\x01\x2c\xf2\x26\x0a\x01\x10\xf3\x18\x30\x01\x15\xf0\x66\x01\x00\x04\x0c\x88\x7a\xd2\x03\x19\xe1\x07\x0a\x88\x33\x8f\x38\x89\x38\x83\x7d\x90\x71\xd2\x07\x18\xd9\x08\x0d\xd0\x0e\x31\xb8\x03\xbf\x0a\xb9\x0a\xd6\x08\x43\xe0\x0c\x0f\x8f\x48\x89\x48\x90\x51\x88\x4b\xd9\x08\x1b\x98\x43\x9f\x48\x99\x48\xa0\x51\x99\x4b\xd5\x08\x28\xf0\x0d\x00\x04\x1a", -}; -static - struct _PyCode_DEF(384) -runpy_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 192, - }, - .co_consts = & runpy_toplevel_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 5 + FRAME_SPECIALS_SIZE, - .co_stacksize = 5, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 760, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & runpy_toplevel_consts_5_consts_2_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & runpy_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x64\x02\x6c\x01\x5a\x01\x64\x01\x64\x02\x6c\x02\x5a\x03\x64\x01\x64\x02\x6c\x04\x5a\x03\x64\x01\x64\x02\x6c\x05\x5a\x05\x64\x01\x64\x02\x6c\x06\x5a\x06\x64\x03\x64\x04\x67\x02\x5a\x07\x02\x00\x65\x08\x65\x01\xab\x01\x00\x00\x00\x00\x00\x00\x5a\x09\x02\x00\x47\x00\x64\x05\x84\x00\x64\x06\x65\x0a\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x0b\x02\x00\x47\x00\x64\x07\x84\x00\x64\x08\x65\x0a\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x0c\x09\x00\x09\x00\x09\x00\x64\x17\x64\x09\x84\x01\x5a\x0d\x09\x00\x09\x00\x09\x00\x64\x17\x64\x0a\x84\x01\x5a\x0e\x65\x0f\x66\x01\x64\x0b\x84\x01\x5a\x10\x02\x00\x47\x00\x64\x0c\x84\x00\x64\x0d\x65\x11\xab\x03\x00\x00\x00\x00\x00\x00\x5a\x12\x64\x18\x64\x0e\x84\x01\x5a\x13\x09\x00\x09\x00\x64\x19\x64\x0f\x84\x01\x5a\x14\x65\x0f\x66\x01\x64\x10\x84\x01\x5a\x15\x64\x11\x84\x00\x5a\x16\x64\x1a\x64\x12\x84\x01\x5a\x17\x65\x18\x64\x13\x6b\x28\x00\x00\x72\x4d\x02\x00\x65\x19\x65\x01\x6a\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x64\x14\x6b\x02\x00\x00\x72\x15\x02\x00\x65\x1b\x64\x15\x65\x01\x6a\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x16\xab\x02\x00\x00\x00\x00\x00\x00\x01\x00\x79\x02\x65\x01\x6a\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x3d\x00\x02\x00\x65\x13\x65\x01\x6a\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\x19\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x02\x79\x02", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_runpy_toplevel(void) -{ - return Py_NewRef((PyObject *) &runpy_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str_TestFrozenUtf8_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "TestFrozenUtf8_1", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -__hello___toplevel_consts_1_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_TestFrozenUtf8_1._ascii.ob_base, - (PyObject *)&_Py_SINGLETON(strings).latin1[54], - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[19]; - } -__hello___toplevel_consts_1_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 18, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -__hello___toplevel_consts_1_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xda\x04\x10", -}; -static - struct _PyCode_DEF(16) -__hello___toplevel_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 8, - }, - .co_consts = & __hello___toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 3, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 761, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & __hello___toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_TestFrozenUtf8_1._ascii.ob_base, - .co_qualname = & const_str_TestFrozenUtf8_1._ascii.ob_base, - .co_linetable = & __hello___toplevel_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str_TestFrozenUtf8_2 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "TestFrozenUtf8_2", -}; -static - struct { - PyCompactUnicodeObject _compact; - uint16_t _data[2]; - } -__hello___toplevel_consts_3_consts_1 = { - ._compact = { - ._base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 1, - .hash = -1, - .state = { - .kind = 2, - .compact = 1, - .ascii = 0, - .statically_allocated = 1, - }, - }, - .utf8 = "\xcf\x80", - .utf8_length = 2, - }, - ._data = { - 960, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -__hello___toplevel_consts_3_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_TestFrozenUtf8_2._ascii.ob_base, - & __hello___toplevel_consts_3_consts_1._compact._base.ob_base, - Py_None, - }, - }, -}; -static - struct _PyCode_DEF(16) -__hello___toplevel_consts_3 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 8, - }, - .co_consts = & __hello___toplevel_consts_3_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 6, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 762, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & __hello___toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_TestFrozenUtf8_2._ascii.ob_base, - .co_qualname = & const_str_TestFrozenUtf8_2._ascii.ob_base, - .co_linetable = & __hello___toplevel_consts_1_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[17]; - } -const_str_TestFrozenUtf8_4 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 16, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "TestFrozenUtf8_4", -}; -static - struct { - PyCompactUnicodeObject _compact; - uint32_t _data[2]; - } -__hello___toplevel_consts_5_consts_1 = { - ._compact = { - ._base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 1, - .hash = -1, - .state = { - .kind = 4, - .compact = 1, - .ascii = 0, - .statically_allocated = 1, - }, - }, - .utf8 = "\xf0\x9f\x98\x80", - .utf8_length = 4, - }, - ._data = { - 128512, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -__hello___toplevel_consts_5_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_TestFrozenUtf8_4._ascii.ob_base, - & __hello___toplevel_consts_5_consts_1._compact._base.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -__hello___toplevel_consts_5_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\x84\x00\xda\x04\x14", -}; -static - struct _PyCode_DEF(16) -__hello___toplevel_consts_5 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 8, - }, - .co_consts = & __hello___toplevel_consts_5_consts._object.ob_base.ob_base, - .co_names = & runpy_toplevel_consts_12_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 1 + FRAME_SPECIALS_SIZE, - .co_stacksize = 1, - .co_firstlineno = 9, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 763, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & __hello___toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_TestFrozenUtf8_4._ascii.ob_base, - .co_qualname = & const_str_TestFrozenUtf8_4._ascii.ob_base, - .co_linetable = & __hello___toplevel_consts_5_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x65\x00\x5a\x01\x64\x00\x5a\x02\x64\x01\x5a\x03\x79\x02", - ._co_firsttraceable = 0, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[13]; - } -__hello___toplevel_consts_7_consts_1 = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 12, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "Hello world!", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -__hello___toplevel_consts_7_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - Py_None, - & __hello___toplevel_consts_7_consts_1._ascii.ob_base, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[1]; - }_object; - } -__hello___toplevel_consts_7_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 1, - }, - .ob_item = { - & const_str_print._ascii.ob_base, - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[11]; - } -__hello___toplevel_consts_7_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 10, - }, - .ob_shash = -1, - .ob_sval = "\x80\x00\xdc\x04\x09\x88\x2e\xd5\x04\x19", -}; -static - struct _PyCode_DEF(26) -__hello___toplevel_consts_7 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 13, - }, - .co_consts = & __hello___toplevel_consts_7_consts._object.ob_base.ob_base, - .co_names = & __hello___toplevel_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 12, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 764, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & __hello___toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_main._ascii.ob_base, - .co_qualname = & const_str_main._ascii.ob_base, - .co_linetable = & __hello___toplevel_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[10]; - }_object; - } -__hello___toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 10, - }, - .ob_item = { - Py_True, - & __hello___toplevel_consts_1.ob_base.ob_base, - & const_str_TestFrozenUtf8_1._ascii.ob_base, - & __hello___toplevel_consts_3.ob_base.ob_base, - & const_str_TestFrozenUtf8_2._ascii.ob_base, - & __hello___toplevel_consts_5.ob_base.ob_base, - & const_str_TestFrozenUtf8_4._ascii.ob_base, - & __hello___toplevel_consts_7.ob_base.ob_base, - &_Py_ID(__main__), - Py_None, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[12]; - } -const_str_initialized = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 11, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "initialized", -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[6]; - }_object; - } -__hello___toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 6, - }, - .ob_item = { - & const_str_initialized._ascii.ob_base, - & const_str_TestFrozenUtf8_1._ascii.ob_base, - & const_str_TestFrozenUtf8_2._ascii.ob_base, - & const_str_TestFrozenUtf8_4._ascii.ob_base, - & const_str_main._ascii.ob_base, - &_Py_ID(__name__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[66]; - } -__hello___toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 65, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xd8\x0e\x12\x80\x0b\xf7\x04\x01\x01\x11\xf1\x00\x01\x01\x11\xf7\x06\x01\x01\x11\xf1\x00\x01\x01\x11\xf7\x06\x01\x01\x15\xf1\x00\x01\x01\x15\xf2\x06\x01\x01\x1a\xf0\x06\x00\x04\x0c\x88\x7a\xd2\x03\x19\xd9\x04\x08\x85\x46\xf0\x03\x00\x04\x1a", -}; -static - struct _PyCode_DEF(100) -__hello___toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 50, - }, - .co_consts = & __hello___toplevel_consts._object.ob_base.ob_base, - .co_names = & __hello___toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 4 + FRAME_SPECIALS_SIZE, - .co_stacksize = 4, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 765, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & __hello___toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & __hello___toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x02\x00\x47\x00\x64\x01\x84\x00\x64\x02\xab\x02\x00\x00\x00\x00\x00\x00\x5a\x01\x02\x00\x47\x00\x64\x03\x84\x00\x64\x04\xab\x02\x00\x00\x00\x00\x00\x00\x5a\x02\x02\x00\x47\x00\x64\x05\x84\x00\x64\x06\xab\x02\x00\x00\x00\x00\x00\x00\x5a\x03\x64\x07\x84\x00\x5a\x04\x65\x05\x64\x08\x6b\x28\x00\x00\x72\x08\x02\x00\x65\x04\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x09\x79\x09", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get___hello___toplevel(void) -{ - return Py_NewRef((PyObject *) &__hello___toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[20]; - } -__phello___toplevel_consts_1_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 19, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct _PyCode_DEF(26) -__phello___toplevel_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 13, - }, - .co_consts = & __hello___toplevel_consts_7_consts._object.ob_base.ob_base, - .co_names = & __hello___toplevel_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 3, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 766, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & __phello___toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_main._ascii.ob_base, - .co_qualname = & const_str_main._ascii.ob_base, - .co_linetable = & __hello___toplevel_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -__phello___toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_True, - & __phello___toplevel_consts_1.ob_base.ob_base, - &_Py_ID(__main__), - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -__phello___toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - & const_str_initialized._ascii.ob_base, - & const_str_main._ascii.ob_base, - &_Py_ID(__name__), - }, - }, -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[36]; - } -__phello___toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 35, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xd8\x0e\x12\x80\x0b\xf2\x04\x01\x01\x1a\xf0\x06\x00\x04\x0c\x88\x7a\xd2\x03\x19\xd9\x04\x08\x85\x46\xf0\x03\x00\x04\x1a", -}; -static - struct _PyCode_DEF(40) -__phello___toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & __phello___toplevel_consts._object.ob_base.ob_base, - .co_names = & __phello___toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 767, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & __phello___toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & __phello___toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x84\x00\x5a\x01\x65\x02\x64\x02\x6b\x28\x00\x00\x72\x08\x02\x00\x65\x01\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x03\x79\x03", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get___phello___toplevel(void) -{ - return Py_NewRef((PyObject *) &__phello___toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[24]; - } -__phello___ham_toplevel_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 23, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[6]; - } -__phello___ham_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 5, - }, - .ob_shash = -1, - .ob_sval = "\xf1\x03\x01\x01\x01", -}; -static - struct _PyCode_DEF(4) -__phello___ham_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 0 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 768, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & __phello___ham_toplevel_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & __phello___ham_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x00", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get___phello___ham_toplevel(void) -{ - return Py_NewRef((PyObject *) &__phello___ham_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[29]; - } -__phello___ham_eggs_toplevel_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 28, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct _PyCode_DEF(4) -__phello___ham_eggs_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 2, - }, - .co_consts = & importlib__bootstrap_toplevel_consts_1_consts._object.ob_base.ob_base, - .co_names = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 0 + FRAME_SPECIALS_SIZE, - .co_stacksize = 0, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 769, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & __phello___ham_eggs_toplevel_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & __phello___ham_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x79\x00", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get___phello___ham_eggs_toplevel(void) -{ - return Py_NewRef((PyObject *) &__phello___ham_eggs_toplevel); -} - -static - struct { - PyASCIIObject _ascii; - uint8_t _data[25]; - } -__phello___spam_toplevel_consts_1_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 24, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct _PyCode_DEF(26) -__phello___spam_toplevel_consts_1 = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 13, - }, - .co_consts = & __hello___toplevel_consts_7_consts._object.ob_base.ob_base, - .co_names = & __hello___toplevel_consts_7_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 3, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 3, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 770, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & __phello___spam_toplevel_consts_1_filename._ascii.ob_base, - .co_name = & const_str_main._ascii.ob_base, - .co_qualname = & const_str_main._ascii.ob_base, - .co_linetable = & __hello___toplevel_consts_7_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x74\x01\x00\x00\x00\x00\x00\x00\x00\x00\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x00", - ._co_firsttraceable = 0, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[4]; - }_object; - } -__phello___spam_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 4, - }, - .ob_item = { - Py_True, - & __phello___spam_toplevel_consts_1.ob_base.ob_base, - &_Py_ID(__main__), - Py_None, - }, - }, -}; -static - struct _PyCode_DEF(40) -__phello___spam_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 20, - }, - .co_consts = & __phello___spam_toplevel_consts._object.ob_base.ob_base, - .co_names = & __phello___toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 2 + FRAME_SPECIALS_SIZE, - .co_stacksize = 2, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 771, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & __phello___spam_toplevel_consts_1_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & __phello___toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x64\x01\x84\x00\x5a\x01\x65\x02\x64\x02\x6b\x28\x00\x00\x72\x08\x02\x00\x65\x01\xab\x00\x00\x00\x00\x00\x00\x00\x01\x00\x79\x03\x79\x03", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get___phello___spam_toplevel(void) -{ - return Py_NewRef((PyObject *) &__phello___spam_toplevel); -} - -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[3]; - }_object; - } -frozen_only_toplevel_consts = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 3, - }, - .ob_item = { - Py_True, - & __hello___toplevel_consts_7_consts_1._ascii.ob_base, - Py_None, - }, - }, -}; -static - struct { - PyGC_Head _gc_head; - struct { - PyObject_VAR_HEAD - PyObject *ob_item[2]; - }_object; - } -frozen_only_toplevel_names = { - ._object = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyTuple_Type, - }, - .ob_size = 2, - }, - .ob_item = { - & const_str_initialized._ascii.ob_base, - & const_str_print._ascii.ob_base, - }, - }, -}; -static - struct { - PyASCIIObject _ascii; - uint8_t _data[21]; - } -frozen_only_toplevel_filename = { - ._ascii = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyUnicode_Type, - }, - .length = 20, - .hash = -1, - .state = { - .kind = 1, - .compact = 1, - .ascii = 1, - .statically_allocated = 1, - }, - }, - ._data = "", -}; -static - struct { - PyObject_VAR_HEAD - Py_hash_t ob_shash; - char ob_sval[19]; - } -frozen_only_toplevel_linetable = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBytes_Type, - }, - .ob_size = 18, - }, - .ob_shash = -1, - .ob_sval = "\xf0\x03\x01\x01\x01\xd8\x0e\x12\x80\x0b\xd9\x00\x05\x80\x6e\xd5\x00\x15", -}; -static - struct _PyCode_DEF(24) -frozen_only_toplevel = { - .ob_base = { - .ob_base = { - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyCode_Type, - }, - .ob_size = 12, - }, - .co_consts = & frozen_only_toplevel_consts._object.ob_base.ob_base, - .co_names = & frozen_only_toplevel_names._object.ob_base.ob_base, - .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_flags = 0, - .co_argcount = 0, - .co_posonlyargcount = 0, - .co_kwonlyargcount = 0, - .co_framesize = 3 + FRAME_SPECIALS_SIZE, - .co_stacksize = 3, - .co_firstlineno = 1, - .co_nlocalsplus = 0, - .co_nlocals = 0, - .co_ncellvars = 0, - .co_nfreevars = 0, - .co_version = 772, - .co_localsplusnames = (PyObject *)& _Py_SINGLETON(tuple_empty), - .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), - .co_filename = & frozen_only_toplevel_filename._ascii.ob_base, - .co_name = &_Py_STR(anon_module), - .co_qualname = &_Py_STR(anon_module), - .co_linetable = & frozen_only_toplevel_linetable.ob_base.ob_base, - ._co_cached = NULL, - .co_code_adaptive = "\x97\x00\x64\x00\x5a\x00\x02\x00\x65\x01\x64\x01\xab\x01\x00\x00\x00\x00\x00\x00\x01\x00\x79\x02", - ._co_firsttraceable = 0, -}; - -PyObject * -_Py_get_frozen_only_toplevel(void) -{ - return Py_NewRef((PyObject *) &frozen_only_toplevel); -} - -void -_Py_Deepfreeze_Fini(void) { - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_1_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_9_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_9_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_9_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_14_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_14_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_14_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_14_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_14_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_16_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_16_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_16_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_16_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_18_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_18_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_18_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_18); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_20_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_20); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_21); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_22); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_25); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_26_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_26); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_27_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_27); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_28); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_29); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_33); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_34); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_37); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_38); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_39); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_40); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_41); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_42); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_43); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_48_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_48_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_48); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_50); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_51); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_52); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_55); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_56); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_57); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_59); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_60); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_61); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_62); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_63); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_64); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel_consts_65); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_11_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_11_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_15); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_17_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_17); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_18); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_19); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_20); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_21); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_22); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_23); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_24); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_25); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_36); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_37); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_38); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_39); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_40); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_41_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_41_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_41); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_42); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_43); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_44); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_45); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_46); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_47); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_48); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_50); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_51); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_52_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_52_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_52_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_52); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_54_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_54_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_54_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_54_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_54); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_60_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_60_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_60_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_60); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_62_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_62_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_62); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_7_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_2_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_8_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_74); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_75); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_76); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_77); - _PyStaticCode_Fini((PyCodeObject *)&importlib__bootstrap_external_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_11_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_11_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_11_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_11_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_11_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_11_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_11_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_11_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_11_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_11_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_11_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_18); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_19); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_20); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_21); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_23); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_24); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_25); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_26); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_27); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_28); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_29); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_30); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_31); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel_consts_32); - _PyStaticCode_Fini((PyCodeObject *)&zipimport_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_2_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_4_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_10_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_10_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_10_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_10_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_10_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_10_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_10_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel_consts_15); - _PyStaticCode_Fini((PyCodeObject *)&abc_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_12_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_12_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_14_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_14_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_16_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_16_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_16_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_16_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_16_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_18_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_18_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_18_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_18_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_18_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_18_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_18); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_20_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_20_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_20_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_20_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_20_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_20); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_22_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_22_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_22_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_22_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_22_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_22_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_22); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_24_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_24_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_24_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_24_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_24_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_24_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_24_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_24_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_24_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_24); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_26); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_15); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28_consts_17); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_28); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_15); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30_consts_17); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_30); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_33); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_34); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_35); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_36); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_37); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_38); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_39); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_40); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_41); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_42); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_43); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel_consts_44); - _PyStaticCode_Fini((PyCodeObject *)&codecs_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&io_toplevel_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&io_toplevel_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&io_toplevel_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&io_toplevel_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&io_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_15); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_17_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_17_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_17); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_20_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_20_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_20); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_22_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_22_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_22_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_22_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_22); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_24_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_24_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_24); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_26_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_26_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_26_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_26); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_28_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_28_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_28_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_28_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_28_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_28); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_30_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_30_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_30); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_32_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_32_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_32_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_32); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_34_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_34_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_34); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_36_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_36_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_36_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_36_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_36_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_36); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_38_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_38_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_38); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_40_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_40_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_40); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_42_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_42); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_44_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_44_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_44); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_46_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_46_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_46_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_46_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_46); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_48_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_48); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_49); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_50_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_50_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_50); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_9_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_11_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_12_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_13_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_15); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_52); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_54); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_56); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_58_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_58_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_58_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_58); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_60_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_60_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_60_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_60); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_62_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_62_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_62_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_62); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_64_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_64_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_64); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_66); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_10_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_68); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_70_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_70_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_70); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_72); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel_consts_74); - _PyStaticCode_Fini((PyCodeObject *)&_collections_abc_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel_consts_3_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel_consts_3_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel_consts_3_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel_consts_5_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel_consts_5_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel_consts_5_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel_consts_5_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel_consts_7_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel_consts_7_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&_sitebuiltins_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_15); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_17); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_18_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_18_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel_consts_18); - _PyStaticCode_Fini((PyCodeObject *)&genericpath_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_15); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_17); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_18); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_19); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_20); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_21); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_22); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_23); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_25); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_26); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_27); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_29); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_30); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_31); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_33); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_35); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_36); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_38); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_39); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_42); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_43); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_45); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_46); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_52); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel_consts_53); - _PyStaticCode_Fini((PyCodeObject *)&ntpath_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_15); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_17); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_18); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_19); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_20); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_21); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_22); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_23); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_24); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_25); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_27); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_28); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_31); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_32); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_34); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_35_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel_consts_35); - _PyStaticCode_Fini((PyCodeObject *)&posixpath_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_19); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_79); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_80); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_81); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_83); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_86); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_87_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_87_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_87); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_89); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_90); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_91); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_92); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_93); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_94); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_96); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_97); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_7_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_99); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_101_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_101_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_101_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_101_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_101); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_102); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_104); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_105); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_107_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_107_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_107); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_112); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_113); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_114); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_115); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_116); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_118); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_119); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_123); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_124); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_128); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_129_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_129_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_129_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_129_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_129_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_129_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_129); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_132); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_133); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_135_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_135_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_135); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_137_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_137_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_137_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_137_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_137_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_137); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel_consts_139); - _PyStaticCode_Fini((PyCodeObject *)&os_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_8); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_11_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_15); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_17); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_18); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_19); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_20); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_21_consts_1_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_21_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_21); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_22_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_22); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_23); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_24); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_25); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_26_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel_consts_26); - _PyStaticCode_Fini((PyCodeObject *)&site_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_20); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_21); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_22); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_23); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_24); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_25); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_26); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_27); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_28); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_29); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel_consts_58); - _PyStaticCode_Fini((PyCodeObject *)&stat_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_15); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_17); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_18); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_19_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_19_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_19_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_19_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_19); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_21_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_21_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_21); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_23_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_23_consts_3_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_23_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_23_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_23_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_23_consts_6); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel_consts_23); - _PyStaticCode_Fini((PyCodeObject *)&importlib_util_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&importlib_machinery_toplevel_consts_13); - _PyStaticCode_Fini((PyCodeObject *)&importlib_machinery_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_5_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_5_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_5_consts_4); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_7_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_7_consts_2); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_7_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_9); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_10); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_11); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_12); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_14); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_15); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_16); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_17); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel_consts_18); - _PyStaticCode_Fini((PyCodeObject *)&runpy_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&__hello___toplevel_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&__hello___toplevel_consts_3); - _PyStaticCode_Fini((PyCodeObject *)&__hello___toplevel_consts_5); - _PyStaticCode_Fini((PyCodeObject *)&__hello___toplevel_consts_7); - _PyStaticCode_Fini((PyCodeObject *)&__hello___toplevel); - _PyStaticCode_Fini((PyCodeObject *)&__phello___toplevel_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&__phello___toplevel); - _PyStaticCode_Fini((PyCodeObject *)&__phello___ham_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&__phello___ham_eggs_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&__phello___spam_toplevel_consts_1); - _PyStaticCode_Fini((PyCodeObject *)&__phello___spam_toplevel); - _PyStaticCode_Fini((PyCodeObject *)&frozen_only_toplevel); -} -int -_Py_Deepfreeze_Init(void) { - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_1_consts_1_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_1_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_9_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_9_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_9_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_14_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_14_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_14_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_14_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_14_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_16_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_16_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_16_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_16_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_18_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_18_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_18_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_18) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_20_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_20) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_21) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_22) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_25) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_26_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_26) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_27_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_27) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_28) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_29) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_30) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_33) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_34) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_37) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_38) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_39) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_40) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_41) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_42) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_43) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_44) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_46) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_48_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_48_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_48) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_50) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_51) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_52) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_55) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_56) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_57) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_59) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_60) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_61) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_62) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_63) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_64) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel_consts_65) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_11_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_11_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_15) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_17_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_17) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_18) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_19) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_20) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_21) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_22) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_23) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_24) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_25) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_36) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_37) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_38) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_39) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_40) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_41_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_41_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_41) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_42) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_43) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_44) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_45) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_46) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_47) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_48) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_50) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_51) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_52_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_52_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_52_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_52) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_54_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_54_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_54_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_54_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_54) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_56) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_58) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_60_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_60_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_60_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_60) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_62_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_62_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_62) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_7_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_64) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_66) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_68) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_70) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_2_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_8_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_72) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_74) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_75) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_76) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel_consts_77) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib__bootstrap_external_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_11_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_11_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_11_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_11_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_11_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_11_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_11_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_11_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_11_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_11_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_11_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_18) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_19) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_20) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_21) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_23) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_24) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_25) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_26) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_27) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_28) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_29) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_30) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_31) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel_consts_32) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&zipimport_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_2_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_4_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_10_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_10_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_10_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_10_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_10_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_10_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_10_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel_consts_15) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&abc_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_12_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_12_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_14_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_14_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_16_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_16_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_16_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_16_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_16_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_18_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_18_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_18_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_18_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_18_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_18_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_18) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_20_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_20_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_20_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_20_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_20_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_20) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_22_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_22_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_22_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_22_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_22_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_22_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_22) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_24_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_24_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_24_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_24_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_24_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_24_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_24_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_24_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_24_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_24) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_26) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_15) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28_consts_17) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_28) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_15) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30_consts_17) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_30) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_33) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_34) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_35) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_36) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_37) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_38) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_39) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_40) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_41) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_42) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_43) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel_consts_44) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&codecs_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&io_toplevel_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&io_toplevel_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&io_toplevel_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&io_toplevel_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&io_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_15) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_17_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_17_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_17) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_20_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_20_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_20) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_22_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_22_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_22_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_22_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_22) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_24_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_24_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_24) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_26_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_26_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_26_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_26) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_28_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_28_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_28_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_28_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_28_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_28) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_30_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_30_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_30) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_32_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_32_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_32_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_32) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_34_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_34_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_34) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_36_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_36_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_36_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_36_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_36_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_36) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_38_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_38_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_38) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_40_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_40_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_40) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_42_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_42) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_44_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_44_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_44) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_46_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_46_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_46_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_46_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_46) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_48_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_48) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_49) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_50_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_50_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_50) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_9_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_11_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_12_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_13_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52_consts_15) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_52) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_54_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_54) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_56_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_56) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_58_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_58_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_58_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_58) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_60_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_60_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_60_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_60) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_62_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_62_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_62_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_62) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_64_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_64_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_64) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_66_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_66) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_10_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_68_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_68) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_70_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_70_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_70) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_72) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_74_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel_consts_74) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_collections_abc_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel_consts_3_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel_consts_3_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel_consts_3_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel_consts_5_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel_consts_5_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel_consts_5_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel_consts_5_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel_consts_7_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel_consts_7_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&_sitebuiltins_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_15) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_17) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_18_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_18_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel_consts_18) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&genericpath_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_15) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_17) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_18) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_19) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_20) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_21) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_22) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_23) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_25) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_26) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_27) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_29) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_30) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_31) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_33) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_35) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_36) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_38) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_39) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_42) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_43) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_45) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_46) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_52) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel_consts_53) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&ntpath_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_15) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_17) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_18) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_19) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_20) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_21) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_22) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_23) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_24) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_25) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_27) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_28) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_31) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_32) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_34) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_35_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel_consts_35) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&posixpath_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_19) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_79) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_80) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_81) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_83) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_86) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_87_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_87_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_87) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_89) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_90) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_91) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_92) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_93) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_94) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_96) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_97) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_7_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_99) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_101_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_101_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_101_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_101_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_101) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_102) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_104) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_105) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_107_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_107_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_107) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_112) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_113) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_114) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_115) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_116) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_118) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_119) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_123) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_124) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_128) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_129_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_129_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_129_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_129_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_129_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_129_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_129) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_132) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_133) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_135_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_135_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_135) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_137_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_137_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_137_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_137_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_137_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_137) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel_consts_139) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&os_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_8) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_11_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_15) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_17) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_18) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_19) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_20) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_21_consts_1_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_21_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_21) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_22_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_22) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_23) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_24) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_25) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_26_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel_consts_26) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&site_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_20) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_21) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_22) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_23) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_24) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_25) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_26) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_27) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_28) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_29) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel_consts_58) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&stat_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_15) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_17) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_18) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_19_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_19_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_19_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_19_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_19) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_21_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_21_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_21) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_23_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_23_consts_3_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_23_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_23_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_23_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_23_consts_6) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel_consts_23) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_util_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_machinery_toplevel_consts_13) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&importlib_machinery_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_5_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_5_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_5_consts_4) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_7_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_7_consts_2) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_7_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_9) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_10) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_11) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_12) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_14) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_15) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_16) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_17) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel_consts_18) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&runpy_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&__hello___toplevel_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&__hello___toplevel_consts_3) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&__hello___toplevel_consts_5) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&__hello___toplevel_consts_7) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&__hello___toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&__phello___toplevel_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&__phello___toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&__phello___ham_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&__phello___ham_eggs_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&__phello___spam_toplevel_consts_1) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&__phello___spam_toplevel) < 0) { - return -1; - } - if (_PyStaticCode_Init((PyCodeObject *)&frozen_only_toplevel) < 0) { - return -1; - } - return 0; -} - -uint32_t _Py_next_func_version = 773; - diff --git a/contrib/tools/python3/Python/dtoa.c b/contrib/tools/python3/Python/dtoa.c index 564497f87bd..8bba06d3b23 100644 --- a/contrib/tools/python3/Python/dtoa.c +++ b/contrib/tools/python3/Python/dtoa.c @@ -172,10 +172,6 @@ typedef uint64_t ULLong; #define Bug(x) {fprintf(stderr, "%s\n", x); exit(1);} #endif -#ifdef __cplusplus -extern "C" { -#endif - typedef union { double d; ULong L[2]; } U; #ifdef IEEE_8087 @@ -313,7 +309,7 @@ BCinfo { // struct Bigint is defined in pycore_dtoa.h. typedef struct Bigint Bigint; -#ifndef Py_USING_MEMORY_DEBUGGER +#if !defined(Py_GIL_DISABLED) && !defined(Py_USING_MEMORY_DEBUGGER) /* Memory management: memory is allocated from, and returned to, Kmax+1 pools of memory, where pool k (0 <= k <= Kmax) is for Bigints b with b->maxwds == @@ -432,7 +428,7 @@ Bfree(Bigint *v) } } -#endif /* Py_USING_MEMORY_DEBUGGER */ +#endif /* !defined(Py_GIL_DISABLED) && !defined(Py_USING_MEMORY_DEBUGGER) */ #define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \ y->wds*sizeof(Long) + 2*sizeof(int)) @@ -677,10 +673,17 @@ mult(Bigint *a, Bigint *b) static Bigint * pow5mult(Bigint *b, int k) { - Bigint *b1, *p5, *p51; + Bigint *b1, *p5, **p5s; int i; static const int p05[3] = { 5, 25, 125 }; + // For double-to-string conversion, the maximum value of k is limited by + // DBL_MAX_10_EXP (308), the maximum decimal base-10 exponent for binary64. + // For string-to-double conversion, the extreme case is constrained by our + // hardcoded exponent limit before we underflow of -512, adjusted by + // STRTOD_DIGLIM-DBL_DIG-1, giving a maximum of k=535. + assert(0 <= k && k < 1024); + if ((i = k & 3)) { b = multadd(b, p05[i-1], 0); if (b == NULL) @@ -690,18 +693,11 @@ pow5mult(Bigint *b, int k) if (!(k >>= 2)) return b; PyInterpreterState *interp = _PyInterpreterState_GET(); - p5 = interp->dtoa.p5s; - if (!p5) { - /* first time */ - p5 = i2b(625); - if (p5 == NULL) { - Bfree(b); - return NULL; - } - interp->dtoa.p5s = p5; - p5->next = 0; - } + p5s = interp->dtoa.p5s; for(;;) { + assert(p5s != interp->dtoa.p5s + Bigint_Pow5size); + p5 = *p5s; + p5s++; if (k & 1) { b1 = mult(b, p5); Bfree(b); @@ -711,17 +707,6 @@ pow5mult(Bigint *b, int k) } if (!(k >>= 1)) break; - p51 = p5->next; - if (!p51) { - p51 = mult(p5,p5); - if (p51 == NULL) { - Bfree(b); - return NULL; - } - p51->next = 0; - p5->next = p51; - } - p5 = p51; } return b; } @@ -2813,8 +2798,44 @@ _Py_dg_dtoa(double dd, int mode, int ndigits, _Py_dg_freedtoa(s0); return NULL; } -#ifdef __cplusplus -} -#endif #endif // _PY_SHORT_FLOAT_REPR == 1 + +PyStatus +_PyDtoa_Init(PyInterpreterState *interp) +{ +#if _PY_SHORT_FLOAT_REPR == 1 && !defined(Py_USING_MEMORY_DEBUGGER) + Bigint **p5s = interp->dtoa.p5s; + + // 5**4 = 625 + Bigint *p5 = i2b(625); + if (p5 == NULL) { + return PyStatus_NoMemory(); + } + p5s[0] = p5; + + // compute 5**8, 5**16, 5**32, ..., 5**512 + for (Py_ssize_t i = 1; i < Bigint_Pow5size; i++) { + p5 = mult(p5, p5); + if (p5 == NULL) { + return PyStatus_NoMemory(); + } + p5s[i] = p5; + } + +#endif + return PyStatus_Ok(); +} + +void +_PyDtoa_Fini(PyInterpreterState *interp) +{ +#if _PY_SHORT_FLOAT_REPR == 1 && !defined(Py_USING_MEMORY_DEBUGGER) + Bigint **p5s = interp->dtoa.p5s; + for (Py_ssize_t i = 0; i < Bigint_Pow5size; i++) { + Bigint *p5 = p5s[i]; + p5s[i] = NULL; + Bfree(p5); + } +#endif +} diff --git a/contrib/tools/python3/Python/dynload_shlib.c b/contrib/tools/python3/Python/dynload_shlib.c index 6761bba4579..5a37a83805b 100644 --- a/contrib/tools/python3/Python/dynload_shlib.c +++ b/contrib/tools/python3/Python/dynload_shlib.c @@ -4,7 +4,7 @@ #include "Python.h" #include "pycore_interp.h" // _PyInterpreterState.dlopenflags #include "pycore_pystate.h" // _PyInterpreterState_GET() -#include "importdl.h" +#include "pycore_importdl.h" #include #include diff --git a/contrib/tools/python3/Python/dynload_win.c b/contrib/tools/python3/Python/dynload_win.c index acab05e2c6d..a0ac31c80a5 100644 --- a/contrib/tools/python3/Python/dynload_win.c +++ b/contrib/tools/python3/Python/dynload_win.c @@ -5,29 +5,10 @@ #include "pycore_fileutils.h" // _Py_add_relfile() #include "pycore_pystate.h" // _PyInterpreterState_GET() -#ifdef HAVE_DIRECT_H -#include -#endif -#include - -#include "importdl.h" -#include "patchlevel.h" +#include "pycore_importdl.h" // dl_funcptr +#include "patchlevel.h" // PY_MAJOR_VERSION #include -#ifdef _DEBUG -#define PYD_DEBUG_SUFFIX "_d" -#else -#define PYD_DEBUG_SUFFIX "" -#endif - -#ifdef PYD_PLATFORM_TAG -#define PYD_TAGGED_SUFFIX PYD_DEBUG_SUFFIX ".cp" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION) "-" PYD_PLATFORM_TAG ".pyd" -#else -#define PYD_TAGGED_SUFFIX PYD_DEBUG_SUFFIX ".cp" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION) ".pyd" -#endif - -#define PYD_UNTAGGED_SUFFIX PYD_DEBUG_SUFFIX ".pyd" - const char *_PyImport_DynLoadFiletab[] = { PYD_TAGGED_SUFFIX, PYD_UNTAGGED_SUFFIX, diff --git a/contrib/tools/python3/Python/emscripten_trampoline.c b/contrib/tools/python3/Python/emscripten_trampoline.c new file mode 100644 index 00000000000..bb4590120ce --- /dev/null +++ b/contrib/tools/python3/Python/emscripten_trampoline.c @@ -0,0 +1,92 @@ +#if defined(PY_CALL_TRAMPOLINE) + +#error #include // EM_JS +#include +#include "pycore_runtime.h" // _PyRuntime + + +/** + * This is the GoogleChromeLabs approved way to feature detect type-reflection: + * https://github.com/GoogleChromeLabs/wasm-feature-detect/blob/main/src/detectors/type-reflection/index.js + */ +EM_JS(int, _PyEM_detect_type_reflection, (), { + if (!("Function" in WebAssembly)) { + return false; + } + if (WebAssembly.Function.type) { + // Node v20 + Module.PyEM_CountArgs = (func) => WebAssembly.Function.type(wasmTable.get(func)).parameters.length; + } else { + // Node >= 22, v8-based browsers + Module.PyEM_CountArgs = (func) => wasmTable.get(func).type().parameters.length; + } + return true; +}); + +void +_Py_EmscriptenTrampoline_Init(_PyRuntimeState *runtime) +{ + runtime->wasm_type_reflection_available = _PyEM_detect_type_reflection(); +} + +/** + * Backwards compatible trampoline works with all JS runtimes + */ +EM_JS(PyObject*, +_PyEM_TrampolineCall_JavaScript, (PyCFunctionWithKeywords func, + PyObject *arg1, + PyObject *arg2, + PyObject *arg3), +{ + return wasmTable.get(func)(arg1, arg2, arg3); +} +); + +/** + * In runtimes with WebAssembly type reflection, count the number of parameters + * and cast to the appropriate signature + */ +EM_JS(int, _PyEM_CountFuncParams, (PyCFunctionWithKeywords func), +{ + let n = _PyEM_CountFuncParams.cache.get(func); + + if (n !== undefined) { + return n; + } + n = Module.PyEM_CountArgs(func); + _PyEM_CountFuncParams.cache.set(func, n); + return n; +} +_PyEM_CountFuncParams.cache = new Map(); +) + + +typedef PyObject* (*zero_arg)(void); +typedef PyObject* (*one_arg)(PyObject*); +typedef PyObject* (*two_arg)(PyObject*, PyObject*); +typedef PyObject* (*three_arg)(PyObject*, PyObject*, PyObject*); + + +PyObject* +_PyEM_TrampolineCall_Reflection(PyCFunctionWithKeywords func, + PyObject* self, + PyObject* args, + PyObject* kw) +{ + switch (_PyEM_CountFuncParams(func)) { + case 0: + return ((zero_arg)func)(); + case 1: + return ((one_arg)func)(self); + case 2: + return ((two_arg)func)(self, args); + case 3: + return ((three_arg)func)(self, args, kw); + default: + PyErr_SetString(PyExc_SystemError, + "Handler takes too many arguments"); + return NULL; + } +} + +#endif diff --git a/contrib/tools/python3/Python/errors.c b/contrib/tools/python3/Python/errors.c index d45615f96b0..63e4844b1c0 100644 --- a/contrib/tools/python3/Python/errors.c +++ b/contrib/tools/python3/Python/errors.c @@ -10,18 +10,12 @@ #include "pycore_sysmodule.h" // _PySys_Audit() #include "pycore_traceback.h" // _PyTraceBack_FromFrame() -#include #ifdef MS_WINDOWS # include # include # include // _sys_nerr #endif - -#ifdef __cplusplus -extern "C" { -#endif - /* Forward declarations */ static PyObject * _PyErr_FormatV(PyThreadState *tstate, PyObject *exception, @@ -127,11 +121,11 @@ _PyErr_GetTopmostException(PyThreadState *tstate) _PyErr_StackItem *exc_info = tstate->exc_info; assert(exc_info); - while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) && - exc_info->previous_item != NULL) + while (exc_info->exc_value == NULL && exc_info->previous_item != NULL) { exc_info = exc_info->previous_item; } + assert(!Py_IsNone(exc_info->exc_value)); return exc_info; } @@ -607,7 +601,7 @@ PyErr_GetHandledException(void) void _PyErr_SetHandledException(PyThreadState *tstate, PyObject *exc) { - Py_XSETREF(tstate->exc_info->exc_value, Py_XNewRef(exc)); + Py_XSETREF(tstate->exc_info->exc_value, Py_XNewRef(exc == Py_None ? NULL : exc)); } void @@ -647,8 +641,8 @@ _PyErr_StackItemToExcInfoTuple(_PyErr_StackItem *err_info) PyObject *exc_type = get_exc_type(exc_value); PyObject *exc_traceback = get_exc_traceback(exc_value); - return Py_BuildValue( - "(OOO)", + return PyTuple_Pack( + 3, exc_type ? exc_type : Py_None, exc_value ? exc_value : Py_None, exc_traceback ? exc_traceback : Py_None); @@ -714,52 +708,28 @@ _PyErr_ChainExceptions1(PyObject *exc) } } -/* Set the currently set exception's context to the given exception. - - If the provided exc_info is NULL, then the current Python thread state's - exc_info will be used for the context instead. +/* If the current thread is handling an exception (exc_info is ), set this + exception as the context of the current raised exception. This function can only be called when _PyErr_Occurred() is true. Also, this function won't create any cycles in the exception context chain to the extent that _PyErr_SetObject ensures this. */ void -_PyErr_ChainStackItem(_PyErr_StackItem *exc_info) +_PyErr_ChainStackItem(void) { PyThreadState *tstate = _PyThreadState_GET(); assert(_PyErr_Occurred(tstate)); - int exc_info_given; - if (exc_info == NULL) { - exc_info_given = 0; - exc_info = tstate->exc_info; - } else { - exc_info_given = 1; - } - + _PyErr_StackItem *exc_info = tstate->exc_info; if (exc_info->exc_value == NULL || exc_info->exc_value == Py_None) { return; } - _PyErr_StackItem *saved_exc_info; - if (exc_info_given) { - /* Temporarily set the thread state's exc_info since this is what - _PyErr_SetObject uses for implicit exception chaining. */ - saved_exc_info = tstate->exc_info; - tstate->exc_info = exc_info; - } - - PyObject *typ, *val, *tb; - _PyErr_Fetch(tstate, &typ, &val, &tb); + PyObject *exc = _PyErr_GetRaisedException(tstate); /* _PyErr_SetObject sets the context from PyThreadState. */ - _PyErr_SetObject(tstate, typ, val); - Py_DECREF(typ); // since _PyErr_Occurred was true - Py_XDECREF(val); - Py_XDECREF(tb); - - if (exc_info_given) { - tstate->exc_info = saved_exc_info; - } + _PyErr_SetObject(tstate, (PyObject *) Py_TYPE(exc), exc); + Py_DECREF(exc); // since _PyErr_Occurred was true } static PyObject * @@ -1552,11 +1522,9 @@ write_unraisable_exc_file(PyThreadState *tstate, PyObject *exc_type, } /* Explicitly call file.flush() */ - PyObject *res = _PyObject_CallMethodNoArgs(file, &_Py_ID(flush)); - if (!res) { + if (_PyFile_Flush(file) < 0) { return -1; } - Py_DECREF(res); return 0; } @@ -1616,14 +1584,16 @@ _PyErr_WriteUnraisableDefaultHook(PyObject *args) for Python to handle it. For example, when a destructor raises an exception or during garbage collection (gc.collect()). - If err_msg_str is non-NULL, the error message is formatted as: - "Exception ignored %s" % err_msg_str. Otherwise, use "Exception ignored in" - error message. + If format is non-NULL, the error message is formatted using format and + variable arguments as in PyUnicode_FromFormat(). + Otherwise, use "Exception ignored in" error message. An exception must be set when calling this function. */ -void -_PyErr_WriteUnraisableMsg(const char *err_msg_str, PyObject *obj) + +static void +format_unraisable_v(const char *format, va_list va, PyObject *obj) { + const char *err_msg_str; PyThreadState *tstate = _PyThreadState_GET(); _Py_EnsureTstateNotNULL(tstate); @@ -1657,8 +1627,8 @@ _PyErr_WriteUnraisableMsg(const char *err_msg_str, PyObject *obj) } } - if (err_msg_str != NULL) { - err_msg = PyUnicode_FromFormat("Exception ignored %s", err_msg_str); + if (format != NULL) { + err_msg = PyUnicode_FromFormatV(format, va); if (err_msg == NULL) { PyErr_Clear(); } @@ -1732,11 +1702,30 @@ done: _PyErr_Clear(tstate); /* Just in case */ } +void +PyErr_FormatUnraisable(const char *format, ...) +{ + va_list va; + + va_start(va, format); + format_unraisable_v(format, va, NULL); + va_end(va); +} + +static void +format_unraisable(PyObject *obj, const char *format, ...) +{ + va_list va; + + va_start(va, format); + format_unraisable_v(format, va, obj); + va_end(va); +} void PyErr_WriteUnraisable(PyObject *obj) { - _PyErr_WriteUnraisableMsg(NULL, obj); + format_unraisable(obj, NULL); } @@ -1825,13 +1814,11 @@ PyErr_SyntaxLocationObjectEx(PyObject *filename, int lineno, int col_offset, } } if ((PyObject *)Py_TYPE(exc) != PyExc_SyntaxError) { - if (_PyObject_LookupAttr(exc, &_Py_ID(msg), &tmp) < 0) { + int rc = PyObject_HasAttrWithError(exc, &_Py_ID(msg)); + if (rc < 0) { _PyErr_Clear(tstate); } - else if (tmp) { - Py_DECREF(tmp); - } - else { + else if (!rc) { tmp = PyObject_Str(exc); if (tmp) { if (PyObject_SetAttr(exc, &_Py_ID(msg), tmp)) { @@ -1844,13 +1831,11 @@ PyErr_SyntaxLocationObjectEx(PyObject *filename, int lineno, int col_offset, } } - if (_PyObject_LookupAttr(exc, &_Py_ID(print_file_and_line), &tmp) < 0) { + rc = PyObject_HasAttrWithError(exc, &_Py_ID(print_file_and_line)); + if (rc < 0) { _PyErr_Clear(tstate); } - else if (tmp) { - Py_DECREF(tmp); - } - else { + else if (!rc) { if (PyObject_SetAttr(exc, &_Py_ID(print_file_and_line), Py_None)) { _PyErr_Clear(tstate); } @@ -1994,7 +1979,3 @@ PyErr_ProgramTextObject(PyObject *filename, int lineno) { return _PyErr_ProgramDecodedTextObject(filename, lineno, NULL); } - -#ifdef __cplusplus -} -#endif diff --git a/contrib/tools/python3/Python/executor_cases.c.h b/contrib/tools/python3/Python/executor_cases.c.h new file mode 100644 index 00000000000..3920e0250c5 --- /dev/null +++ b/contrib/tools/python3/Python/executor_cases.c.h @@ -0,0 +1,4480 @@ +// This file is generated by Tools/cases_generator/tier2_generator.py +// from: +// Python/bytecodes.c +// Do not edit! + +#ifdef TIER_ONE + #error "This file is for Tier 2 only" +#endif +#define TIER_TWO 2 + + case _NOP: { + break; + } + + case _RESUME_CHECK: { + #if defined(__EMSCRIPTEN__) + if (_Py_emscripten_signal_clock == 0) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + _Py_emscripten_signal_clock -= Py_EMSCRIPTEN_SIGNAL_HANDLING; + #endif + uintptr_t eval_breaker = _Py_atomic_load_uintptr_relaxed(&tstate->eval_breaker); + uintptr_t version = FT_ATOMIC_LOAD_UINTPTR_ACQUIRE(_PyFrame_GetCode(frame)->_co_instrumentation_version); + assert((version & _PY_EVAL_EVENTS_MASK) == 0); + if (eval_breaker != version) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + /* _INSTRUMENTED_RESUME is not a viable micro-op for tier 2 because it is instrumented */ + + case _LOAD_FAST_CHECK: { + PyObject *value; + oparg = CURRENT_OPARG(); + value = GETLOCAL(oparg); + if (value == NULL) { + _PyEval_FormatExcCheckArg(tstate, PyExc_UnboundLocalError, + UNBOUNDLOCAL_ERROR_MSG, + PyTuple_GetItem(_PyFrame_GetCode(frame)->co_localsplusnames, oparg) + ); + if (1) JUMP_TO_ERROR(); + } + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_FAST_0: { + PyObject *value; + oparg = 0; + assert(oparg == CURRENT_OPARG()); + value = GETLOCAL(oparg); + assert(value != NULL); + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_FAST_1: { + PyObject *value; + oparg = 1; + assert(oparg == CURRENT_OPARG()); + value = GETLOCAL(oparg); + assert(value != NULL); + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_FAST_2: { + PyObject *value; + oparg = 2; + assert(oparg == CURRENT_OPARG()); + value = GETLOCAL(oparg); + assert(value != NULL); + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_FAST_3: { + PyObject *value; + oparg = 3; + assert(oparg == CURRENT_OPARG()); + value = GETLOCAL(oparg); + assert(value != NULL); + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_FAST_4: { + PyObject *value; + oparg = 4; + assert(oparg == CURRENT_OPARG()); + value = GETLOCAL(oparg); + assert(value != NULL); + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_FAST_5: { + PyObject *value; + oparg = 5; + assert(oparg == CURRENT_OPARG()); + value = GETLOCAL(oparg); + assert(value != NULL); + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_FAST_6: { + PyObject *value; + oparg = 6; + assert(oparg == CURRENT_OPARG()); + value = GETLOCAL(oparg); + assert(value != NULL); + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_FAST_7: { + PyObject *value; + oparg = 7; + assert(oparg == CURRENT_OPARG()); + value = GETLOCAL(oparg); + assert(value != NULL); + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_FAST: { + PyObject *value; + oparg = CURRENT_OPARG(); + value = GETLOCAL(oparg); + assert(value != NULL); + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_FAST_AND_CLEAR: { + PyObject *value; + oparg = CURRENT_OPARG(); + value = GETLOCAL(oparg); + // do not use SETLOCAL here, it decrefs the old value + GETLOCAL(oparg) = NULL; + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_CONST: { + PyObject *value; + oparg = CURRENT_OPARG(); + value = GETITEM(FRAME_CO_CONSTS, oparg); + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _STORE_FAST_0: { + PyObject *value; + oparg = 0; + assert(oparg == CURRENT_OPARG()); + value = stack_pointer[-1]; + SETLOCAL(oparg, value); + stack_pointer += -1; + break; + } + + case _STORE_FAST_1: { + PyObject *value; + oparg = 1; + assert(oparg == CURRENT_OPARG()); + value = stack_pointer[-1]; + SETLOCAL(oparg, value); + stack_pointer += -1; + break; + } + + case _STORE_FAST_2: { + PyObject *value; + oparg = 2; + assert(oparg == CURRENT_OPARG()); + value = stack_pointer[-1]; + SETLOCAL(oparg, value); + stack_pointer += -1; + break; + } + + case _STORE_FAST_3: { + PyObject *value; + oparg = 3; + assert(oparg == CURRENT_OPARG()); + value = stack_pointer[-1]; + SETLOCAL(oparg, value); + stack_pointer += -1; + break; + } + + case _STORE_FAST_4: { + PyObject *value; + oparg = 4; + assert(oparg == CURRENT_OPARG()); + value = stack_pointer[-1]; + SETLOCAL(oparg, value); + stack_pointer += -1; + break; + } + + case _STORE_FAST_5: { + PyObject *value; + oparg = 5; + assert(oparg == CURRENT_OPARG()); + value = stack_pointer[-1]; + SETLOCAL(oparg, value); + stack_pointer += -1; + break; + } + + case _STORE_FAST_6: { + PyObject *value; + oparg = 6; + assert(oparg == CURRENT_OPARG()); + value = stack_pointer[-1]; + SETLOCAL(oparg, value); + stack_pointer += -1; + break; + } + + case _STORE_FAST_7: { + PyObject *value; + oparg = 7; + assert(oparg == CURRENT_OPARG()); + value = stack_pointer[-1]; + SETLOCAL(oparg, value); + stack_pointer += -1; + break; + } + + case _STORE_FAST: { + PyObject *value; + oparg = CURRENT_OPARG(); + value = stack_pointer[-1]; + SETLOCAL(oparg, value); + stack_pointer += -1; + break; + } + + case _POP_TOP: { + PyObject *value; + value = stack_pointer[-1]; + Py_DECREF(value); + stack_pointer += -1; + break; + } + + case _PUSH_NULL: { + PyObject *res; + res = NULL; + stack_pointer[0] = res; + stack_pointer += 1; + break; + } + + case _END_SEND: { + PyObject *value; + PyObject *receiver; + value = stack_pointer[-1]; + receiver = stack_pointer[-2]; + Py_DECREF(receiver); + stack_pointer[-2] = value; + stack_pointer += -1; + break; + } + + case _UNARY_NEGATIVE: { + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + res = PyNumber_Negative(value); + Py_DECREF(value); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-1] = res; + break; + } + + case _UNARY_NOT: { + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + assert(PyBool_Check(value)); + res = Py_IsFalse(value) ? Py_True : Py_False; + stack_pointer[-1] = res; + break; + } + + case _TO_BOOL: { + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + int err = PyObject_IsTrue(value); + Py_DECREF(value); + if (err < 0) JUMP_TO_ERROR(); + res = err ? Py_True : Py_False; + stack_pointer[-1] = res; + break; + } + + case _TO_BOOL_BOOL: { + PyObject *value; + value = stack_pointer[-1]; + if (!PyBool_Check(value)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(TO_BOOL, hit); + break; + } + + case _TO_BOOL_INT: { + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + if (!PyLong_CheckExact(value)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(TO_BOOL, hit); + if (_PyLong_IsZero((PyLongObject *)value)) { + assert(_Py_IsImmortalLoose(value)); + res = Py_False; + } + else { + Py_DECREF(value); + res = Py_True; + } + stack_pointer[-1] = res; + break; + } + + case _TO_BOOL_LIST: { + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + if (!PyList_CheckExact(value)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(TO_BOOL, hit); + res = Py_SIZE(value) ? Py_True : Py_False; + Py_DECREF(value); + stack_pointer[-1] = res; + break; + } + + case _TO_BOOL_NONE: { + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + // This one is a bit weird, because we expect *some* failures: + if (!Py_IsNone(value)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(TO_BOOL, hit); + res = Py_False; + stack_pointer[-1] = res; + break; + } + + case _TO_BOOL_STR: { + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + if (!PyUnicode_CheckExact(value)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(TO_BOOL, hit); + if (value == &_Py_STR(empty)) { + assert(_Py_IsImmortalLoose(value)); + res = Py_False; + } + else { + assert(Py_SIZE(value)); + Py_DECREF(value); + res = Py_True; + } + stack_pointer[-1] = res; + break; + } + + case _REPLACE_WITH_TRUE: { + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + Py_DECREF(value); + res = Py_True; + stack_pointer[-1] = res; + break; + } + + case _UNARY_INVERT: { + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + res = PyNumber_Invert(value); + Py_DECREF(value); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-1] = res; + break; + } + + case _GUARD_BOTH_INT: { + PyObject *right; + PyObject *left; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (!PyLong_CheckExact(left)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!PyLong_CheckExact(right)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _GUARD_NOS_INT: { + PyObject *left; + left = stack_pointer[-2]; + if (!PyLong_CheckExact(left)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _GUARD_TOS_INT: { + PyObject *value; + value = stack_pointer[-1]; + if (!PyLong_CheckExact(value)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _BINARY_OP_MULTIPLY_INT: { + PyObject *right; + PyObject *left; + PyObject *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + STAT_INC(BINARY_OP, hit); + res = _PyLong_Multiply((PyLongObject *)left, (PyLongObject *)right); + _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); + _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_OP_ADD_INT: { + PyObject *right; + PyObject *left; + PyObject *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + STAT_INC(BINARY_OP, hit); + res = _PyLong_Add((PyLongObject *)left, (PyLongObject *)right); + _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); + _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_OP_SUBTRACT_INT: { + PyObject *right; + PyObject *left; + PyObject *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + STAT_INC(BINARY_OP, hit); + res = _PyLong_Subtract((PyLongObject *)left, (PyLongObject *)right); + _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); + _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _GUARD_BOTH_FLOAT: { + PyObject *right; + PyObject *left; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (!PyFloat_CheckExact(left)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!PyFloat_CheckExact(right)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _GUARD_NOS_FLOAT: { + PyObject *left; + left = stack_pointer[-2]; + if (!PyFloat_CheckExact(left)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _GUARD_TOS_FLOAT: { + PyObject *value; + value = stack_pointer[-1]; + if (!PyFloat_CheckExact(value)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _BINARY_OP_MULTIPLY_FLOAT: { + PyObject *right; + PyObject *left; + PyObject *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + STAT_INC(BINARY_OP, hit); + double dres = + ((PyFloatObject *)left)->ob_fval * + ((PyFloatObject *)right)->ob_fval; + DECREF_INPUTS_AND_REUSE_FLOAT(left, right, dres, res); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_OP_ADD_FLOAT: { + PyObject *right; + PyObject *left; + PyObject *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + STAT_INC(BINARY_OP, hit); + double dres = + ((PyFloatObject *)left)->ob_fval + + ((PyFloatObject *)right)->ob_fval; + DECREF_INPUTS_AND_REUSE_FLOAT(left, right, dres, res); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_OP_SUBTRACT_FLOAT: { + PyObject *right; + PyObject *left; + PyObject *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + STAT_INC(BINARY_OP, hit); + double dres = + ((PyFloatObject *)left)->ob_fval - + ((PyFloatObject *)right)->ob_fval; + DECREF_INPUTS_AND_REUSE_FLOAT(left, right, dres, res); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _GUARD_BOTH_UNICODE: { + PyObject *right; + PyObject *left; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (!PyUnicode_CheckExact(left)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!PyUnicode_CheckExact(right)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _BINARY_OP_ADD_UNICODE: { + PyObject *right; + PyObject *left; + PyObject *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + STAT_INC(BINARY_OP, hit); + res = PyUnicode_Concat(left, right); + _Py_DECREF_SPECIALIZED(left, _PyUnicode_ExactDealloc); + _Py_DECREF_SPECIALIZED(right, _PyUnicode_ExactDealloc); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_SUBSCR: { + PyObject *sub; + PyObject *container; + PyObject *res; + sub = stack_pointer[-1]; + container = stack_pointer[-2]; + res = PyObject_GetItem(container, sub); + Py_DECREF(container); + Py_DECREF(sub); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_SLICE: { + PyObject *stop; + PyObject *start; + PyObject *container; + PyObject *res; + stop = stack_pointer[-1]; + start = stack_pointer[-2]; + container = stack_pointer[-3]; + PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); + // Can't use ERROR_IF() here, because we haven't + // DECREF'ed container yet, and we still own slice. + if (slice == NULL) { + res = NULL; + } + else { + res = PyObject_GetItem(container, slice); + Py_DECREF(slice); + } + Py_DECREF(container); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-3] = res; + stack_pointer += -2; + break; + } + + case _STORE_SLICE: { + PyObject *stop; + PyObject *start; + PyObject *container; + PyObject *v; + stop = stack_pointer[-1]; + start = stack_pointer[-2]; + container = stack_pointer[-3]; + v = stack_pointer[-4]; + PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); + int err; + if (slice == NULL) { + err = 1; + } + else { + err = PyObject_SetItem(container, slice, v); + Py_DECREF(slice); + } + Py_DECREF(v); + Py_DECREF(container); + if (err) JUMP_TO_ERROR(); + stack_pointer += -4; + break; + } + + case _BINARY_SUBSCR_LIST_INT: { + PyObject *sub; + PyObject *list; + PyObject *res; + sub = stack_pointer[-1]; + list = stack_pointer[-2]; + if (!PyLong_CheckExact(sub)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!PyList_CheckExact(list)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + // Deopt unless 0 <= sub < PyList_Size(list) + if (!_PyLong_IsNonNegativeCompact((PyLongObject *)sub)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0]; + if (index >= PyList_GET_SIZE(list)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(BINARY_SUBSCR, hit); + res = PyList_GET_ITEM(list, index); + assert(res != NULL); + Py_INCREF(res); + _Py_DECREF_SPECIALIZED(sub, (destructor)PyObject_Free); + Py_DECREF(list); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_SUBSCR_STR_INT: { + PyObject *sub; + PyObject *str; + PyObject *res; + sub = stack_pointer[-1]; + str = stack_pointer[-2]; + if (!PyLong_CheckExact(sub)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!PyUnicode_CheckExact(str)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!_PyLong_IsNonNegativeCompact((PyLongObject *)sub)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0]; + if (PyUnicode_GET_LENGTH(str) <= index) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + // Specialize for reading an ASCII character from any string: + Py_UCS4 c = PyUnicode_READ_CHAR(str, index); + if (Py_ARRAY_LENGTH(_Py_SINGLETON(strings).ascii) <= c) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(BINARY_SUBSCR, hit); + res = (PyObject*)&_Py_SINGLETON(strings).ascii[c]; + _Py_DECREF_SPECIALIZED(sub, (destructor)PyObject_Free); + Py_DECREF(str); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_SUBSCR_TUPLE_INT: { + PyObject *sub; + PyObject *tuple; + PyObject *res; + sub = stack_pointer[-1]; + tuple = stack_pointer[-2]; + if (!PyLong_CheckExact(sub)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!PyTuple_CheckExact(tuple)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + // Deopt unless 0 <= sub < PyTuple_Size(list) + if (!_PyLong_IsNonNegativeCompact((PyLongObject *)sub)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0]; + if (index >= PyTuple_GET_SIZE(tuple)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(BINARY_SUBSCR, hit); + res = PyTuple_GET_ITEM(tuple, index); + assert(res != NULL); + Py_INCREF(res); + _Py_DECREF_SPECIALIZED(sub, (destructor)PyObject_Free); + Py_DECREF(tuple); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_SUBSCR_DICT: { + PyObject *sub; + PyObject *dict; + PyObject *res; + sub = stack_pointer[-1]; + dict = stack_pointer[-2]; + if (!PyDict_CheckExact(dict)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(BINARY_SUBSCR, hit); + int rc = PyDict_GetItemRef(dict, sub, &res); + if (rc == 0) { + _PyErr_SetKeyError(sub); + } + Py_DECREF(dict); + Py_DECREF(sub); + if (rc <= 0) JUMP_TO_ERROR(); + // not found or error + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + /* _BINARY_SUBSCR_GETITEM is not a viable micro-op for tier 2 because it uses the 'this_instr' variable */ + + case _LIST_APPEND: { + PyObject *v; + PyObject *list; + oparg = CURRENT_OPARG(); + v = stack_pointer[-1]; + list = stack_pointer[-2 - (oparg-1)]; + if (_PyList_AppendTakeRef((PyListObject *)list, v) < 0) JUMP_TO_ERROR(); + stack_pointer += -1; + break; + } + + case _SET_ADD: { + PyObject *v; + PyObject *set; + oparg = CURRENT_OPARG(); + v = stack_pointer[-1]; + set = stack_pointer[-2 - (oparg-1)]; + int err = PySet_Add(set, v); + Py_DECREF(v); + if (err) JUMP_TO_ERROR(); + stack_pointer += -1; + break; + } + + case _STORE_SUBSCR: { + PyObject *sub; + PyObject *container; + PyObject *v; + sub = stack_pointer[-1]; + container = stack_pointer[-2]; + v = stack_pointer[-3]; + /* container[sub] = v */ + int err = PyObject_SetItem(container, sub, v); + Py_DECREF(v); + Py_DECREF(container); + Py_DECREF(sub); + if (err) JUMP_TO_ERROR(); + stack_pointer += -3; + break; + } + + case _STORE_SUBSCR_LIST_INT: { + PyObject *sub; + PyObject *list; + PyObject *value; + sub = stack_pointer[-1]; + list = stack_pointer[-2]; + value = stack_pointer[-3]; + if (!PyLong_CheckExact(sub)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!PyList_CheckExact(list)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + // Ensure nonnegative, zero-or-one-digit ints. + if (!_PyLong_IsNonNegativeCompact((PyLongObject *)sub)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0]; + // Ensure index < len(list) + if (index >= PyList_GET_SIZE(list)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(STORE_SUBSCR, hit); + PyObject *old_value = PyList_GET_ITEM(list, index); + PyList_SET_ITEM(list, index, value); + assert(old_value != NULL); + Py_DECREF(old_value); + _Py_DECREF_SPECIALIZED(sub, (destructor)PyObject_Free); + Py_DECREF(list); + stack_pointer += -3; + break; + } + + case _STORE_SUBSCR_DICT: { + PyObject *sub; + PyObject *dict; + PyObject *value; + sub = stack_pointer[-1]; + dict = stack_pointer[-2]; + value = stack_pointer[-3]; + if (!PyDict_CheckExact(dict)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(STORE_SUBSCR, hit); + int err = _PyDict_SetItem_Take2((PyDictObject *)dict, sub, value); + Py_DECREF(dict); + if (err) JUMP_TO_ERROR(); + stack_pointer += -3; + break; + } + + case _DELETE_SUBSCR: { + PyObject *sub; + PyObject *container; + sub = stack_pointer[-1]; + container = stack_pointer[-2]; + /* del container[sub] */ + int err = PyObject_DelItem(container, sub); + Py_DECREF(container); + Py_DECREF(sub); + if (err) JUMP_TO_ERROR(); + stack_pointer += -2; + break; + } + + case _CALL_INTRINSIC_1: { + PyObject *value; + PyObject *res; + oparg = CURRENT_OPARG(); + value = stack_pointer[-1]; + assert(oparg <= MAX_INTRINSIC_1); + res = _PyIntrinsics_UnaryFunctions[oparg].func(tstate, value); + Py_DECREF(value); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-1] = res; + break; + } + + case _CALL_INTRINSIC_2: { + PyObject *value1; + PyObject *value2; + PyObject *res; + oparg = CURRENT_OPARG(); + value1 = stack_pointer[-1]; + value2 = stack_pointer[-2]; + assert(oparg <= MAX_INTRINSIC_2); + res = _PyIntrinsics_BinaryFunctions[oparg].func(tstate, value2, value1); + Py_DECREF(value2); + Py_DECREF(value1); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _POP_FRAME: { + PyObject *retval; + retval = stack_pointer[-1]; + #if TIER_ONE + assert(frame != &entry_frame); + #endif + stack_pointer += -1; + _PyFrame_SetStackPointer(frame, stack_pointer); + assert(EMPTY()); + _Py_LeaveRecursiveCallPy(tstate); + // GH-99729: We need to unlink the frame *before* clearing it: + _PyInterpreterFrame *dying = frame; + frame = tstate->current_frame = dying->previous; + _PyEval_FrameClearAndPop(tstate, dying); + _PyFrame_StackPush(frame, retval); + LOAD_SP(); + LOAD_IP(frame->return_offset); + LLTRACE_RESUME_FRAME(); + break; + } + + /* _INSTRUMENTED_RETURN_VALUE is not a viable micro-op for tier 2 because it is instrumented */ + + /* _INSTRUMENTED_RETURN_CONST is not a viable micro-op for tier 2 because it is instrumented */ + + case _GET_AITER: { + PyObject *obj; + PyObject *iter; + obj = stack_pointer[-1]; + unaryfunc getter = NULL; + PyTypeObject *type = Py_TYPE(obj); + if (type->tp_as_async != NULL) { + getter = type->tp_as_async->am_aiter; + } + if (getter == NULL) { + _PyErr_Format(tstate, PyExc_TypeError, + "'async for' requires an object with " + "__aiter__ method, got %.100s", + type->tp_name); + Py_DECREF(obj); + if (true) JUMP_TO_ERROR(); + } + iter = (*getter)(obj); + Py_DECREF(obj); + if (iter == NULL) JUMP_TO_ERROR(); + if (Py_TYPE(iter)->tp_as_async == NULL || + Py_TYPE(iter)->tp_as_async->am_anext == NULL) { + _PyErr_Format(tstate, PyExc_TypeError, + "'async for' received an object from __aiter__ " + "that does not implement __anext__: %.100s", + Py_TYPE(iter)->tp_name); + Py_DECREF(iter); + if (true) JUMP_TO_ERROR(); + } + stack_pointer[-1] = iter; + break; + } + + case _GET_ANEXT: { + PyObject *aiter; + PyObject *awaitable; + aiter = stack_pointer[-1]; + unaryfunc getter = NULL; + PyObject *next_iter = NULL; + PyTypeObject *type = Py_TYPE(aiter); + if (PyAsyncGen_CheckExact(aiter)) { + awaitable = type->tp_as_async->am_anext(aiter); + if (awaitable == NULL) { + JUMP_TO_ERROR(); + } + } else { + if (type->tp_as_async != NULL){ + getter = type->tp_as_async->am_anext; + } + if (getter != NULL) { + next_iter = (*getter)(aiter); + if (next_iter == NULL) { + JUMP_TO_ERROR(); + } + } + else { + _PyErr_Format(tstate, PyExc_TypeError, + "'async for' requires an iterator with " + "__anext__ method, got %.100s", + type->tp_name); + JUMP_TO_ERROR(); + } + awaitable = _PyCoro_GetAwaitableIter(next_iter); + if (awaitable == NULL) { + _PyErr_FormatFromCause( + PyExc_TypeError, + "'async for' received an invalid object " + "from __anext__: %.100s", + Py_TYPE(next_iter)->tp_name); + Py_DECREF(next_iter); + JUMP_TO_ERROR(); + } else { + Py_DECREF(next_iter); + } + } + stack_pointer[0] = awaitable; + stack_pointer += 1; + break; + } + + case _GET_AWAITABLE: { + PyObject *iterable; + PyObject *iter; + oparg = CURRENT_OPARG(); + iterable = stack_pointer[-1]; + iter = _PyCoro_GetAwaitableIter(iterable); + if (iter == NULL) { + _PyEval_FormatAwaitableError(tstate, Py_TYPE(iterable), oparg); + } + Py_DECREF(iterable); + if (iter != NULL && PyCoro_CheckExact(iter)) { + PyObject *yf = _PyGen_yf((PyGenObject*)iter); + if (yf != NULL) { + /* `iter` is a coroutine object that is being + awaited, `yf` is a pointer to the current awaitable + being awaited on. */ + Py_DECREF(yf); + Py_CLEAR(iter); + _PyErr_SetString(tstate, PyExc_RuntimeError, + "coroutine is being awaited already"); + /* The code below jumps to `error` if `iter` is NULL. */ + } + } + if (iter == NULL) JUMP_TO_ERROR(); + stack_pointer[-1] = iter; + break; + } + + /* _SEND is not a viable micro-op for tier 2 because it uses the 'this_instr' variable */ + + /* _SEND_GEN is not a viable micro-op for tier 2 because it uses the 'this_instr' variable */ + + /* _INSTRUMENTED_YIELD_VALUE is not a viable micro-op for tier 2 because it is instrumented */ + + case _YIELD_VALUE: { + PyObject *retval; + PyObject *value; + oparg = CURRENT_OPARG(); + retval = stack_pointer[-1]; + // NOTE: It's important that YIELD_VALUE never raises an exception! + // The compiler treats any exception raised here as a failed close() + // or throw() call. + #if TIER_ONE + assert(frame != &entry_frame); + #endif + frame->instr_ptr++; + PyGenObject *gen = _PyFrame_GetGenerator(frame); + assert(FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1); + assert(oparg == 0 || oparg == 1); + gen->gi_frame_state = FRAME_SUSPENDED + oparg; + stack_pointer += -1; + _PyFrame_SetStackPointer(frame, stack_pointer); + tstate->exc_info = gen->gi_exc_state.previous_item; + gen->gi_exc_state.previous_item = NULL; + _Py_LeaveRecursiveCallPy(tstate); + _PyInterpreterFrame *gen_frame = frame; + frame = tstate->current_frame = frame->previous; + gen_frame->previous = NULL; + /* We don't know which of these is relevant here, so keep them equal */ + assert(INLINE_CACHE_ENTRIES_SEND == INLINE_CACHE_ENTRIES_FOR_ITER); + #if TIER_ONE + assert(frame->instr_ptr->op.code == INSTRUMENTED_LINE || + frame->instr_ptr->op.code == INSTRUMENTED_INSTRUCTION || + _PyOpcode_Deopt[frame->instr_ptr->op.code] == SEND || + _PyOpcode_Deopt[frame->instr_ptr->op.code] == FOR_ITER || + _PyOpcode_Deopt[frame->instr_ptr->op.code] == INTERPRETER_EXIT || + _PyOpcode_Deopt[frame->instr_ptr->op.code] == ENTER_EXECUTOR); + #endif + LOAD_IP(1 + INLINE_CACHE_ENTRIES_SEND); + LOAD_SP(); + value = retval; + LLTRACE_RESUME_FRAME(); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _POP_EXCEPT: { + PyObject *exc_value; + exc_value = stack_pointer[-1]; + _PyErr_StackItem *exc_info = tstate->exc_info; + Py_XSETREF(exc_info->exc_value, exc_value == Py_None ? NULL : exc_value); + stack_pointer += -1; + break; + } + + case _LOAD_ASSERTION_ERROR: { + PyObject *value; + value = Py_NewRef(PyExc_AssertionError); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_BUILD_CLASS: { + PyObject *bc; + if (PyMapping_GetOptionalItem(BUILTINS(), &_Py_ID(__build_class__), &bc) < 0) JUMP_TO_ERROR(); + if (bc == NULL) { + _PyErr_SetString(tstate, PyExc_NameError, + "__build_class__ not found"); + if (true) JUMP_TO_ERROR(); + } + stack_pointer[0] = bc; + stack_pointer += 1; + break; + } + + case _STORE_NAME: { + PyObject *v; + oparg = CURRENT_OPARG(); + v = stack_pointer[-1]; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + PyObject *ns = LOCALS(); + int err; + if (ns == NULL) { + _PyErr_Format(tstate, PyExc_SystemError, + "no locals found when storing %R", name); + Py_DECREF(v); + if (true) JUMP_TO_ERROR(); + } + if (PyDict_CheckExact(ns)) + err = PyDict_SetItem(ns, name, v); + else + err = PyObject_SetItem(ns, name, v); + Py_DECREF(v); + if (err) JUMP_TO_ERROR(); + stack_pointer += -1; + break; + } + + case _DELETE_NAME: { + oparg = CURRENT_OPARG(); + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + PyObject *ns = LOCALS(); + int err; + if (ns == NULL) { + _PyErr_Format(tstate, PyExc_SystemError, + "no locals when deleting %R", name); + JUMP_TO_ERROR(); + } + err = PyObject_DelItem(ns, name); + // Can't use ERROR_IF here. + if (err != 0) { + _PyEval_FormatExcCheckArg(tstate, PyExc_NameError, + NAME_ERROR_MSG, + name); + JUMP_TO_ERROR(); + } + break; + } + + case _UNPACK_SEQUENCE: { + PyObject *seq; + oparg = CURRENT_OPARG(); + seq = stack_pointer[-1]; + PyObject **top = stack_pointer + oparg - 1; + int res = _PyEval_UnpackIterable(tstate, seq, oparg, -1, top); + Py_DECREF(seq); + if (res == 0) JUMP_TO_ERROR(); + stack_pointer += -1 + oparg; + break; + } + + case _UNPACK_SEQUENCE_TWO_TUPLE: { + PyObject *seq; + PyObject *val1; + PyObject *val0; + oparg = CURRENT_OPARG(); + seq = stack_pointer[-1]; + assert(oparg == 2); + if (!PyTuple_CheckExact(seq)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (PyTuple_GET_SIZE(seq) != 2) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(UNPACK_SEQUENCE, hit); + val0 = Py_NewRef(PyTuple_GET_ITEM(seq, 0)); + val1 = Py_NewRef(PyTuple_GET_ITEM(seq, 1)); + Py_DECREF(seq); + stack_pointer[-1] = val1; + stack_pointer[0] = val0; + stack_pointer += 1; + break; + } + + case _UNPACK_SEQUENCE_TUPLE: { + PyObject *seq; + PyObject **values; + oparg = CURRENT_OPARG(); + seq = stack_pointer[-1]; + values = &stack_pointer[-1]; + if (!PyTuple_CheckExact(seq)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (PyTuple_GET_SIZE(seq) != oparg) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(UNPACK_SEQUENCE, hit); + PyObject **items = _PyTuple_ITEMS(seq); + for (int i = oparg; --i >= 0; ) { + *values++ = Py_NewRef(items[i]); + } + Py_DECREF(seq); + stack_pointer += -1 + oparg; + break; + } + + case _UNPACK_SEQUENCE_LIST: { + PyObject *seq; + PyObject **values; + oparg = CURRENT_OPARG(); + seq = stack_pointer[-1]; + values = &stack_pointer[-1]; + if (!PyList_CheckExact(seq)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (PyList_GET_SIZE(seq) != oparg) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(UNPACK_SEQUENCE, hit); + PyObject **items = _PyList_ITEMS(seq); + for (int i = oparg; --i >= 0; ) { + *values++ = Py_NewRef(items[i]); + } + Py_DECREF(seq); + stack_pointer += -1 + oparg; + break; + } + + case _UNPACK_EX: { + PyObject *seq; + oparg = CURRENT_OPARG(); + seq = stack_pointer[-1]; + int totalargs = 1 + (oparg & 0xFF) + (oparg >> 8); + PyObject **top = stack_pointer + totalargs - 1; + int res = _PyEval_UnpackIterable(tstate, seq, oparg & 0xFF, oparg >> 8, top); + Py_DECREF(seq); + if (res == 0) JUMP_TO_ERROR(); + stack_pointer += (oparg >> 8) + (oparg & 0xFF); + break; + } + + case _STORE_ATTR: { + PyObject *owner; + PyObject *v; + oparg = CURRENT_OPARG(); + owner = stack_pointer[-1]; + v = stack_pointer[-2]; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + int err = PyObject_SetAttr(owner, name, v); + Py_DECREF(v); + Py_DECREF(owner); + if (err) JUMP_TO_ERROR(); + stack_pointer += -2; + break; + } + + case _DELETE_ATTR: { + PyObject *owner; + oparg = CURRENT_OPARG(); + owner = stack_pointer[-1]; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + int err = PyObject_DelAttr(owner, name); + Py_DECREF(owner); + if (err) JUMP_TO_ERROR(); + stack_pointer += -1; + break; + } + + case _STORE_GLOBAL: { + PyObject *v; + oparg = CURRENT_OPARG(); + v = stack_pointer[-1]; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + int err = PyDict_SetItem(GLOBALS(), name, v); + Py_DECREF(v); + if (err) JUMP_TO_ERROR(); + stack_pointer += -1; + break; + } + + case _DELETE_GLOBAL: { + oparg = CURRENT_OPARG(); + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + int err = PyDict_Pop(GLOBALS(), name, NULL); + // Can't use ERROR_IF here. + if (err < 0) { + JUMP_TO_ERROR(); + } + if (err == 0) { + _PyEval_FormatExcCheckArg(tstate, PyExc_NameError, + NAME_ERROR_MSG, name); + JUMP_TO_ERROR(); + } + break; + } + + case _LOAD_LOCALS: { + PyObject *locals; + locals = LOCALS(); + if (locals == NULL) { + _PyErr_SetString(tstate, PyExc_SystemError, + "no locals found"); + if (true) JUMP_TO_ERROR(); + } + Py_INCREF(locals); + stack_pointer[0] = locals; + stack_pointer += 1; + break; + } + + /* _LOAD_FROM_DICT_OR_GLOBALS is not a viable micro-op for tier 2 because it has both popping and not-popping errors */ + + /* _LOAD_NAME is not a viable micro-op for tier 2 because it has both popping and not-popping errors */ + + case _LOAD_GLOBAL: { + PyObject *res; + PyObject *null = NULL; + oparg = CURRENT_OPARG(); + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg>>1); + if (PyDict_CheckExact(GLOBALS()) + && PyDict_CheckExact(BUILTINS())) + { + res = _PyDict_LoadGlobal((PyDictObject *)GLOBALS(), + (PyDictObject *)BUILTINS(), + name); + if (res == NULL) { + if (!_PyErr_Occurred(tstate)) { + /* _PyDict_LoadGlobal() returns NULL without raising + * an exception if the key doesn't exist */ + _PyEval_FormatExcCheckArg(tstate, PyExc_NameError, + NAME_ERROR_MSG, name); + } + if (true) JUMP_TO_ERROR(); + } + } + else { + /* Slow-path if globals or builtins is not a dict */ + /* namespace 1: globals */ + if (PyMapping_GetOptionalItem(GLOBALS(), name, &res) < 0) JUMP_TO_ERROR(); + if (res == NULL) { + /* namespace 2: builtins */ + if (PyMapping_GetOptionalItem(BUILTINS(), name, &res) < 0) JUMP_TO_ERROR(); + if (res == NULL) { + _PyEval_FormatExcCheckArg( + tstate, PyExc_NameError, + NAME_ERROR_MSG, name); + if (true) JUMP_TO_ERROR(); + } + } + } + null = NULL; + stack_pointer[0] = res; + if (oparg & 1) stack_pointer[1] = null; + stack_pointer += 1 + (oparg & 1); + break; + } + + case _GUARD_GLOBALS_VERSION: { + uint16_t version = (uint16_t)CURRENT_OPERAND(); + PyDictObject *dict = (PyDictObject *)GLOBALS(); + if (!PyDict_CheckExact(dict)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (dict->ma_keys->dk_version != version) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + assert(DK_IS_UNICODE(dict->ma_keys)); + break; + } + + case _GUARD_BUILTINS_VERSION: { + uint16_t version = (uint16_t)CURRENT_OPERAND(); + PyDictObject *dict = (PyDictObject *)BUILTINS(); + if (!PyDict_CheckExact(dict)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (dict->ma_keys->dk_version != version) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + assert(DK_IS_UNICODE(dict->ma_keys)); + break; + } + + case _LOAD_GLOBAL_MODULE: { + PyObject *res; + PyObject *null = NULL; + oparg = CURRENT_OPARG(); + uint16_t index = (uint16_t)CURRENT_OPERAND(); + PyDictObject *dict = (PyDictObject *)GLOBALS(); + PyDictUnicodeEntry *entries = DK_UNICODE_ENTRIES(dict->ma_keys); + res = entries[index].me_value; + if (res == NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + Py_INCREF(res); + STAT_INC(LOAD_GLOBAL, hit); + null = NULL; + stack_pointer[0] = res; + if (oparg & 1) stack_pointer[1] = null; + stack_pointer += 1 + (oparg & 1); + break; + } + + case _LOAD_GLOBAL_BUILTINS: { + PyObject *res; + PyObject *null = NULL; + oparg = CURRENT_OPARG(); + uint16_t index = (uint16_t)CURRENT_OPERAND(); + PyDictObject *bdict = (PyDictObject *)BUILTINS(); + PyDictUnicodeEntry *entries = DK_UNICODE_ENTRIES(bdict->ma_keys); + res = entries[index].me_value; + if (res == NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + Py_INCREF(res); + STAT_INC(LOAD_GLOBAL, hit); + null = NULL; + stack_pointer[0] = res; + if (oparg & 1) stack_pointer[1] = null; + stack_pointer += 1 + (oparg & 1); + break; + } + + case _DELETE_FAST: { + oparg = CURRENT_OPARG(); + PyObject *v = GETLOCAL(oparg); + if (v == NULL) { + _PyEval_FormatExcCheckArg(tstate, PyExc_UnboundLocalError, + UNBOUNDLOCAL_ERROR_MSG, + PyTuple_GetItem(_PyFrame_GetCode(frame)->co_localsplusnames, oparg) + ); + if (1) JUMP_TO_ERROR(); + } + SETLOCAL(oparg, NULL); + break; + } + + case _MAKE_CELL: { + oparg = CURRENT_OPARG(); + // "initial" is probably NULL but not if it's an arg (or set + // via the f_locals proxy before MAKE_CELL has run). + PyObject *initial = GETLOCAL(oparg); + PyObject *cell = PyCell_New(initial); + if (cell == NULL) { + JUMP_TO_ERROR(); + } + SETLOCAL(oparg, cell); + break; + } + + case _DELETE_DEREF: { + oparg = CURRENT_OPARG(); + PyObject *cell = GETLOCAL(oparg); + // Can't use ERROR_IF here. + // Fortunately we don't need its superpower. + PyObject *oldobj = PyCell_SwapTakeRef((PyCellObject *)cell, NULL); + if (oldobj == NULL) { + _PyEval_FormatExcUnbound(tstate, _PyFrame_GetCode(frame), oparg); + JUMP_TO_ERROR(); + } + Py_DECREF(oldobj); + break; + } + + case _LOAD_FROM_DICT_OR_DEREF: { + PyObject *class_dict; + PyObject *value; + oparg = CURRENT_OPARG(); + class_dict = stack_pointer[-1]; + PyObject *name; + assert(class_dict); + assert(oparg >= 0 && oparg < _PyFrame_GetCode(frame)->co_nlocalsplus); + name = PyTuple_GET_ITEM(_PyFrame_GetCode(frame)->co_localsplusnames, oparg); + if (PyMapping_GetOptionalItem(class_dict, name, &value) < 0) { + JUMP_TO_ERROR(); + } + if (!value) { + PyCellObject *cell = (PyCellObject *)GETLOCAL(oparg); + value = PyCell_GetRef(cell); + if (value == NULL) { + _PyEval_FormatExcUnbound(tstate, _PyFrame_GetCode(frame), oparg); + JUMP_TO_ERROR(); + } + } + Py_DECREF(class_dict); + stack_pointer[-1] = value; + break; + } + + case _LOAD_DEREF: { + PyObject *value; + oparg = CURRENT_OPARG(); + PyCellObject *cell = (PyCellObject *)GETLOCAL(oparg); + value = PyCell_GetRef(cell); + if (value == NULL) { + _PyEval_FormatExcUnbound(tstate, _PyFrame_GetCode(frame), oparg); + if (true) JUMP_TO_ERROR(); + } + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _STORE_DEREF: { + PyObject *v; + oparg = CURRENT_OPARG(); + v = stack_pointer[-1]; + PyCellObject *cell = (PyCellObject *)GETLOCAL(oparg); + PyCell_SetTakeRef(cell, v); + stack_pointer += -1; + break; + } + + case _COPY_FREE_VARS: { + oparg = CURRENT_OPARG(); + /* Copy closure variables to free variables */ + PyCodeObject *co = _PyFrame_GetCode(frame); + assert(PyFunction_Check(frame->f_funcobj)); + PyObject *closure = ((PyFunctionObject *)frame->f_funcobj)->func_closure; + assert(oparg == co->co_nfreevars); + int offset = co->co_nlocalsplus - oparg; + for (int i = 0; i < oparg; ++i) { + PyObject *o = PyTuple_GET_ITEM(closure, i); + frame->localsplus[offset + i] = Py_NewRef(o); + } + break; + } + + case _BUILD_STRING: { + PyObject **pieces; + PyObject *str; + oparg = CURRENT_OPARG(); + pieces = &stack_pointer[-oparg]; + str = _PyUnicode_JoinArray(&_Py_STR(empty), pieces, oparg); + for (int _i = oparg; --_i >= 0;) { + Py_DECREF(pieces[_i]); + } + if (str == NULL) JUMP_TO_ERROR(); + stack_pointer[-oparg] = str; + stack_pointer += 1 - oparg; + break; + } + + case _BUILD_TUPLE: { + PyObject **values; + PyObject *tup; + oparg = CURRENT_OPARG(); + values = &stack_pointer[-oparg]; + tup = _PyTuple_FromArraySteal(values, oparg); + if (tup == NULL) JUMP_TO_ERROR(); + stack_pointer[-oparg] = tup; + stack_pointer += 1 - oparg; + break; + } + + case _BUILD_LIST: { + PyObject **values; + PyObject *list; + oparg = CURRENT_OPARG(); + values = &stack_pointer[-oparg]; + list = _PyList_FromArraySteal(values, oparg); + if (list == NULL) JUMP_TO_ERROR(); + stack_pointer[-oparg] = list; + stack_pointer += 1 - oparg; + break; + } + + case _LIST_EXTEND: { + PyObject *iterable; + PyObject *list; + oparg = CURRENT_OPARG(); + iterable = stack_pointer[-1]; + list = stack_pointer[-2 - (oparg-1)]; + PyObject *none_val = _PyList_Extend((PyListObject *)list, iterable); + if (none_val == NULL) { + if (_PyErr_ExceptionMatches(tstate, PyExc_TypeError) && + (Py_TYPE(iterable)->tp_iter == NULL && !PySequence_Check(iterable))) + { + _PyErr_Clear(tstate); + _PyErr_Format(tstate, PyExc_TypeError, + "Value after * must be an iterable, not %.200s", + Py_TYPE(iterable)->tp_name); + } + Py_DECREF(iterable); + if (true) JUMP_TO_ERROR(); + } + assert(Py_IsNone(none_val)); + Py_DECREF(iterable); + stack_pointer += -1; + break; + } + + case _SET_UPDATE: { + PyObject *iterable; + PyObject *set; + oparg = CURRENT_OPARG(); + iterable = stack_pointer[-1]; + set = stack_pointer[-2 - (oparg-1)]; + int err = _PySet_Update(set, iterable); + Py_DECREF(iterable); + if (err < 0) JUMP_TO_ERROR(); + stack_pointer += -1; + break; + } + + /* _BUILD_SET is not a viable micro-op for tier 2 because it has both popping and not-popping errors */ + + case _BUILD_MAP: { + PyObject **values; + PyObject *map; + oparg = CURRENT_OPARG(); + values = &stack_pointer[-oparg*2]; + map = _PyDict_FromItems( + values, 2, + values+1, 2, + oparg); + for (int _i = oparg*2; --_i >= 0;) { + Py_DECREF(values[_i]); + } + if (map == NULL) JUMP_TO_ERROR(); + stack_pointer[-oparg*2] = map; + stack_pointer += 1 - oparg*2; + break; + } + + case _SETUP_ANNOTATIONS: { + int err; + PyObject *ann_dict; + if (LOCALS() == NULL) { + _PyErr_Format(tstate, PyExc_SystemError, + "no locals found when setting up annotations"); + if (true) JUMP_TO_ERROR(); + } + /* check if __annotations__ in locals()... */ + if (PyMapping_GetOptionalItem(LOCALS(), &_Py_ID(__annotations__), &ann_dict) < 0) JUMP_TO_ERROR(); + if (ann_dict == NULL) { + ann_dict = PyDict_New(); + if (ann_dict == NULL) JUMP_TO_ERROR(); + err = PyObject_SetItem(LOCALS(), &_Py_ID(__annotations__), + ann_dict); + Py_DECREF(ann_dict); + if (err) JUMP_TO_ERROR(); + } + else { + Py_DECREF(ann_dict); + } + break; + } + + case _BUILD_CONST_KEY_MAP: { + PyObject *keys; + PyObject **values; + PyObject *map; + oparg = CURRENT_OPARG(); + keys = stack_pointer[-1]; + values = &stack_pointer[-1 - oparg]; + assert(PyTuple_CheckExact(keys)); + assert(PyTuple_GET_SIZE(keys) == (Py_ssize_t)oparg); + map = _PyDict_FromItems( + &PyTuple_GET_ITEM(keys, 0), 1, + values, 1, oparg); + for (int _i = oparg; --_i >= 0;) { + Py_DECREF(values[_i]); + } + Py_DECREF(keys); + if (map == NULL) JUMP_TO_ERROR(); + stack_pointer[-1 - oparg] = map; + stack_pointer += -oparg; + break; + } + + case _DICT_UPDATE: { + PyObject *update; + PyObject *dict; + oparg = CURRENT_OPARG(); + update = stack_pointer[-1]; + dict = stack_pointer[-2 - (oparg - 1)]; + if (PyDict_Update(dict, update) < 0) { + if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) { + _PyErr_Format(tstate, PyExc_TypeError, + "'%.200s' object is not a mapping", + Py_TYPE(update)->tp_name); + } + Py_DECREF(update); + if (true) JUMP_TO_ERROR(); + } + Py_DECREF(update); + stack_pointer += -1; + break; + } + + case _DICT_MERGE: { + PyObject *update; + PyObject *dict; + PyObject *callable; + oparg = CURRENT_OPARG(); + update = stack_pointer[-1]; + dict = stack_pointer[-2 - (oparg - 1)]; + callable = stack_pointer[-5 - (oparg - 1)]; + if (_PyDict_MergeEx(dict, update, 2) < 0) { + _PyEval_FormatKwargsError(tstate, callable, update); + Py_DECREF(update); + if (true) JUMP_TO_ERROR(); + } + Py_DECREF(update); + stack_pointer += -1; + break; + } + + case _MAP_ADD: { + PyObject *value; + PyObject *key; + PyObject *dict; + oparg = CURRENT_OPARG(); + value = stack_pointer[-1]; + key = stack_pointer[-2]; + dict = stack_pointer[-3 - (oparg - 1)]; + assert(PyDict_CheckExact(dict)); + /* dict[key] = value */ + // Do not DECREF INPUTS because the function steals the references + if (_PyDict_SetItem_Take2((PyDictObject *)dict, key, value) != 0) JUMP_TO_ERROR(); + stack_pointer += -2; + break; + } + + /* _INSTRUMENTED_LOAD_SUPER_ATTR is not a viable micro-op for tier 2 because it is instrumented */ + + case _LOAD_SUPER_ATTR_ATTR: { + PyObject *self; + PyObject *class; + PyObject *global_super; + PyObject *attr; + oparg = CURRENT_OPARG(); + self = stack_pointer[-1]; + class = stack_pointer[-2]; + global_super = stack_pointer[-3]; + assert(!(oparg & 1)); + if (global_super != (PyObject *)&PySuper_Type) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!PyType_Check(class)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(LOAD_SUPER_ATTR, hit); + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg >> 2); + attr = _PySuper_Lookup((PyTypeObject *)class, self, name, NULL); + Py_DECREF(global_super); + Py_DECREF(class); + Py_DECREF(self); + if (attr == NULL) JUMP_TO_ERROR(); + stack_pointer[-3] = attr; + stack_pointer += -2; + break; + } + + case _LOAD_SUPER_ATTR_METHOD: { + PyObject *self; + PyObject *class; + PyObject *global_super; + PyObject *attr; + PyObject *self_or_null; + oparg = CURRENT_OPARG(); + self = stack_pointer[-1]; + class = stack_pointer[-2]; + global_super = stack_pointer[-3]; + assert(oparg & 1); + if (global_super != (PyObject *)&PySuper_Type) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!PyType_Check(class)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(LOAD_SUPER_ATTR, hit); + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg >> 2); + PyTypeObject *cls = (PyTypeObject *)class; + int method_found = 0; + attr = _PySuper_Lookup(cls, self, name, + Py_TYPE(self)->tp_getattro == PyObject_GenericGetAttr ? &method_found : NULL); + Py_DECREF(global_super); + Py_DECREF(class); + if (attr == NULL) { + Py_DECREF(self); + if (true) JUMP_TO_ERROR(); + } + if (method_found) { + self_or_null = self; // transfer ownership + } else { + Py_DECREF(self); + self_or_null = NULL; + } + stack_pointer[-3] = attr; + stack_pointer[-2] = self_or_null; + stack_pointer += -1; + break; + } + + case _LOAD_ATTR: { + PyObject *owner; + PyObject *attr; + PyObject *self_or_null = NULL; + oparg = CURRENT_OPARG(); + owner = stack_pointer[-1]; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg >> 1); + if (oparg & 1) { + /* Designed to work in tandem with CALL, pushes two values. */ + attr = NULL; + if (_PyObject_GetMethod(owner, name, &attr)) { + /* We can bypass temporary bound method object. + meth is unbound method and obj is self. + meth | self | arg1 | ... | argN + */ + assert(attr != NULL); // No errors on this branch + self_or_null = owner; // Transfer ownership + } + else { + /* meth is not an unbound method (but a regular attr, or + something was returned by a descriptor protocol). Set + the second element of the stack to NULL, to signal + CALL that it's not a method call. + meth | NULL | arg1 | ... | argN + */ + Py_DECREF(owner); + if (attr == NULL) JUMP_TO_ERROR(); + self_or_null = NULL; + } + } + else { + /* Classic, pushes one value. */ + attr = PyObject_GetAttr(owner, name); + Py_DECREF(owner); + if (attr == NULL) JUMP_TO_ERROR(); + } + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = self_or_null; + stack_pointer += (oparg & 1); + break; + } + + case _GUARD_TYPE_VERSION: { + PyObject *owner; + owner = stack_pointer[-1]; + uint32_t type_version = (uint32_t)CURRENT_OPERAND(); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + if (tp->tp_version_tag != type_version) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _CHECK_MANAGED_OBJECT_HAS_VALUES: { + PyObject *owner; + owner = stack_pointer[-1]; + assert(Py_TYPE(owner)->tp_dictoffset < 0); + assert(Py_TYPE(owner)->tp_flags & Py_TPFLAGS_INLINE_VALUES); + if (!_PyObject_InlineValues(owner)->valid) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _LOAD_ATTR_INSTANCE_VALUE_0: { + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + (void)null; + owner = stack_pointer[-1]; + uint16_t index = (uint16_t)CURRENT_OPERAND(); + attr = _PyObject_InlineValues(owner)->values[index]; + if (attr == NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(LOAD_ATTR, hit); + Py_INCREF(attr); + null = NULL; + Py_DECREF(owner); + stack_pointer[-1] = attr; + break; + } + + case _LOAD_ATTR_INSTANCE_VALUE_1: { + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + (void)null; + owner = stack_pointer[-1]; + uint16_t index = (uint16_t)CURRENT_OPERAND(); + attr = _PyObject_InlineValues(owner)->values[index]; + if (attr == NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(LOAD_ATTR, hit); + Py_INCREF(attr); + null = NULL; + Py_DECREF(owner); + stack_pointer[-1] = attr; + stack_pointer[0] = null; + stack_pointer += 1; + break; + } + + /* _LOAD_ATTR_INSTANCE_VALUE is split on (oparg & 1) */ + + case _CHECK_ATTR_MODULE: { + PyObject *owner; + owner = stack_pointer[-1]; + uint32_t dict_version = (uint32_t)CURRENT_OPERAND(); + if (!PyModule_CheckExact(owner)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; + assert(dict != NULL); + if (dict->ma_keys->dk_version != dict_version) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _LOAD_ATTR_MODULE: { + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + oparg = CURRENT_OPARG(); + owner = stack_pointer[-1]; + uint16_t index = (uint16_t)CURRENT_OPERAND(); + PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; + assert(dict->ma_keys->dk_kind == DICT_KEYS_UNICODE); + assert(index < dict->ma_keys->dk_nentries); + PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(dict->ma_keys) + index; + attr = ep->me_value; + if (attr == NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(LOAD_ATTR, hit); + Py_INCREF(attr); + null = NULL; + Py_DECREF(owner); + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = null; + stack_pointer += (oparg & 1); + break; + } + + case _CHECK_ATTR_WITH_HINT: { + PyObject *owner; + owner = stack_pointer[-1]; + assert(Py_TYPE(owner)->tp_flags & Py_TPFLAGS_MANAGED_DICT); + PyDictObject *dict = _PyObject_GetManagedDict(owner); + if (dict == NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + assert(PyDict_CheckExact((PyObject *)dict)); + break; + } + + case _LOAD_ATTR_WITH_HINT: { + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + oparg = CURRENT_OPARG(); + owner = stack_pointer[-1]; + uint16_t hint = (uint16_t)CURRENT_OPERAND(); + PyDictObject *dict = _PyObject_GetManagedDict(owner); + if (hint >= (size_t)dict->ma_keys->dk_nentries) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg>>1); + if (DK_IS_UNICODE(dict->ma_keys)) { + PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(dict->ma_keys) + hint; + if (ep->me_key != name) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + attr = ep->me_value; + } + else { + PyDictKeyEntry *ep = DK_ENTRIES(dict->ma_keys) + hint; + if (ep->me_key != name) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + attr = ep->me_value; + } + if (attr == NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(LOAD_ATTR, hit); + Py_INCREF(attr); + null = NULL; + Py_DECREF(owner); + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = null; + stack_pointer += (oparg & 1); + break; + } + + case _LOAD_ATTR_SLOT_0: { + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + (void)null; + owner = stack_pointer[-1]; + uint16_t index = (uint16_t)CURRENT_OPERAND(); + char *addr = (char *)owner + index; + attr = *(PyObject **)addr; + if (attr == NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(LOAD_ATTR, hit); + Py_INCREF(attr); + null = NULL; + Py_DECREF(owner); + stack_pointer[-1] = attr; + break; + } + + case _LOAD_ATTR_SLOT_1: { + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + (void)null; + owner = stack_pointer[-1]; + uint16_t index = (uint16_t)CURRENT_OPERAND(); + char *addr = (char *)owner + index; + attr = *(PyObject **)addr; + if (attr == NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(LOAD_ATTR, hit); + Py_INCREF(attr); + null = NULL; + Py_DECREF(owner); + stack_pointer[-1] = attr; + stack_pointer[0] = null; + stack_pointer += 1; + break; + } + + /* _LOAD_ATTR_SLOT is split on (oparg & 1) */ + + case _CHECK_ATTR_CLASS: { + PyObject *owner; + owner = stack_pointer[-1]; + uint32_t type_version = (uint32_t)CURRENT_OPERAND(); + if (!PyType_Check(owner)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + assert(type_version != 0); + if (((PyTypeObject *)owner)->tp_version_tag != type_version) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _LOAD_ATTR_CLASS_0: { + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + (void)null; + owner = stack_pointer[-1]; + PyObject *descr = (PyObject *)CURRENT_OPERAND(); + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + attr = Py_NewRef(descr); + null = NULL; + Py_DECREF(owner); + stack_pointer[-1] = attr; + break; + } + + case _LOAD_ATTR_CLASS_1: { + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + (void)null; + owner = stack_pointer[-1]; + PyObject *descr = (PyObject *)CURRENT_OPERAND(); + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + attr = Py_NewRef(descr); + null = NULL; + Py_DECREF(owner); + stack_pointer[-1] = attr; + stack_pointer[0] = null; + stack_pointer += 1; + break; + } + + /* _LOAD_ATTR_CLASS is split on (oparg & 1) */ + + /* _LOAD_ATTR_PROPERTY is not a viable micro-op for tier 2 because it uses the 'this_instr' variable */ + + /* _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN is not a viable micro-op for tier 2 because it uses the 'this_instr' variable */ + + case _GUARD_DORV_NO_DICT: { + PyObject *owner; + owner = stack_pointer[-1]; + assert(Py_TYPE(owner)->tp_dictoffset < 0); + assert(Py_TYPE(owner)->tp_flags & Py_TPFLAGS_INLINE_VALUES); + if (_PyObject_GetManagedDict(owner)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (_PyObject_InlineValues(owner)->valid == 0) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _STORE_ATTR_INSTANCE_VALUE: { + PyObject *owner; + PyObject *value; + owner = stack_pointer[-1]; + value = stack_pointer[-2]; + uint16_t index = (uint16_t)CURRENT_OPERAND(); + STAT_INC(STORE_ATTR, hit); + assert(_PyObject_GetManagedDict(owner) == NULL); + PyDictValues *values = _PyObject_InlineValues(owner); + PyObject *old_value = values->values[index]; + values->values[index] = value; + if (old_value == NULL) { + _PyDictValues_AddToInsertionOrder(values, index); + } + else { + Py_DECREF(old_value); + } + Py_DECREF(owner); + stack_pointer += -2; + break; + } + + /* _STORE_ATTR_WITH_HINT is not a viable micro-op for tier 2 because it has unused cache entries */ + + case _STORE_ATTR_SLOT: { + PyObject *owner; + PyObject *value; + owner = stack_pointer[-1]; + value = stack_pointer[-2]; + uint16_t index = (uint16_t)CURRENT_OPERAND(); + char *addr = (char *)owner + index; + STAT_INC(STORE_ATTR, hit); + PyObject *old_value = *(PyObject **)addr; + *(PyObject **)addr = value; + Py_XDECREF(old_value); + Py_DECREF(owner); + stack_pointer += -2; + break; + } + + case _COMPARE_OP: { + PyObject *right; + PyObject *left; + PyObject *res; + oparg = CURRENT_OPARG(); + right = stack_pointer[-1]; + left = stack_pointer[-2]; + assert((oparg >> 5) <= Py_GE); + res = PyObject_RichCompare(left, right, oparg >> 5); + Py_DECREF(left); + Py_DECREF(right); + if (res == NULL) JUMP_TO_ERROR(); + if (oparg & 16) { + int res_bool = PyObject_IsTrue(res); + Py_DECREF(res); + if (res_bool < 0) JUMP_TO_ERROR(); + res = res_bool ? Py_True : Py_False; + } + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _COMPARE_OP_FLOAT: { + PyObject *right; + PyObject *left; + PyObject *res; + oparg = CURRENT_OPARG(); + right = stack_pointer[-1]; + left = stack_pointer[-2]; + STAT_INC(COMPARE_OP, hit); + double dleft = PyFloat_AS_DOUBLE(left); + double dright = PyFloat_AS_DOUBLE(right); + // 1 if NaN, 2 if <, 4 if >, 8 if ==; this matches low four bits of the oparg + int sign_ish = COMPARISON_BIT(dleft, dright); + _Py_DECREF_SPECIALIZED(left, _PyFloat_ExactDealloc); + _Py_DECREF_SPECIALIZED(right, _PyFloat_ExactDealloc); + res = (sign_ish & oparg) ? Py_True : Py_False; + // It's always a bool, so we don't care about oparg & 16. + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _COMPARE_OP_INT: { + PyObject *right; + PyObject *left; + PyObject *res; + oparg = CURRENT_OPARG(); + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (!_PyLong_IsCompact((PyLongObject *)left)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!_PyLong_IsCompact((PyLongObject *)right)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(COMPARE_OP, hit); + assert(_PyLong_DigitCount((PyLongObject *)left) <= 1 && + _PyLong_DigitCount((PyLongObject *)right) <= 1); + Py_ssize_t ileft = _PyLong_CompactValue((PyLongObject *)left); + Py_ssize_t iright = _PyLong_CompactValue((PyLongObject *)right); + // 2 if <, 4 if >, 8 if ==; this matches the low 4 bits of the oparg + int sign_ish = COMPARISON_BIT(ileft, iright); + _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); + _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); + res = (sign_ish & oparg) ? Py_True : Py_False; + // It's always a bool, so we don't care about oparg & 16. + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _COMPARE_OP_STR: { + PyObject *right; + PyObject *left; + PyObject *res; + oparg = CURRENT_OPARG(); + right = stack_pointer[-1]; + left = stack_pointer[-2]; + STAT_INC(COMPARE_OP, hit); + int eq = _PyUnicode_Equal(left, right); + assert((oparg >> 5) == Py_EQ || (oparg >> 5) == Py_NE); + _Py_DECREF_SPECIALIZED(left, _PyUnicode_ExactDealloc); + _Py_DECREF_SPECIALIZED(right, _PyUnicode_ExactDealloc); + assert(eq == 0 || eq == 1); + assert((oparg & 0xf) == COMPARISON_NOT_EQUALS || (oparg & 0xf) == COMPARISON_EQUALS); + assert(COMPARISON_NOT_EQUALS + 1 == COMPARISON_EQUALS); + res = ((COMPARISON_NOT_EQUALS + eq) & oparg) ? Py_True : Py_False; + // It's always a bool, so we don't care about oparg & 16. + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _IS_OP: { + PyObject *right; + PyObject *left; + PyObject *b; + oparg = CURRENT_OPARG(); + right = stack_pointer[-1]; + left = stack_pointer[-2]; + int res = Py_Is(left, right) ^ oparg; + Py_DECREF(left); + Py_DECREF(right); + b = res ? Py_True : Py_False; + stack_pointer[-2] = b; + stack_pointer += -1; + break; + } + + case _CONTAINS_OP: { + PyObject *right; + PyObject *left; + PyObject *b; + oparg = CURRENT_OPARG(); + right = stack_pointer[-1]; + left = stack_pointer[-2]; + int res = PySequence_Contains(right, left); + Py_DECREF(left); + Py_DECREF(right); + if (res < 0) JUMP_TO_ERROR(); + b = (res ^ oparg) ? Py_True : Py_False; + stack_pointer[-2] = b; + stack_pointer += -1; + break; + } + + case _CONTAINS_OP_SET: { + PyObject *right; + PyObject *left; + PyObject *b; + oparg = CURRENT_OPARG(); + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (!(PySet_CheckExact(right) || PyFrozenSet_CheckExact(right))) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CONTAINS_OP, hit); + // Note: both set and frozenset use the same seq_contains method! + int res = _PySet_Contains((PySetObject *)right, left); + Py_DECREF(left); + Py_DECREF(right); + if (res < 0) JUMP_TO_ERROR(); + b = (res ^ oparg) ? Py_True : Py_False; + stack_pointer[-2] = b; + stack_pointer += -1; + break; + } + + case _CONTAINS_OP_DICT: { + PyObject *right; + PyObject *left; + PyObject *b; + oparg = CURRENT_OPARG(); + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (!PyDict_CheckExact(right)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CONTAINS_OP, hit); + int res = PyDict_Contains(right, left); + Py_DECREF(left); + Py_DECREF(right); + if (res < 0) JUMP_TO_ERROR(); + b = (res ^ oparg) ? Py_True : Py_False; + stack_pointer[-2] = b; + stack_pointer += -1; + break; + } + + case _CHECK_EG_MATCH: { + PyObject *match_type; + PyObject *exc_value; + PyObject *rest; + PyObject *match; + match_type = stack_pointer[-1]; + exc_value = stack_pointer[-2]; + if (_PyEval_CheckExceptStarTypeValid(tstate, match_type) < 0) { + Py_DECREF(exc_value); + Py_DECREF(match_type); + if (true) JUMP_TO_ERROR(); + } + match = NULL; + rest = NULL; + int res = _PyEval_ExceptionGroupMatch(exc_value, match_type, + &match, &rest); + Py_DECREF(exc_value); + Py_DECREF(match_type); + if (res < 0) JUMP_TO_ERROR(); + assert((match == NULL) == (rest == NULL)); + if (match == NULL) JUMP_TO_ERROR(); + if (!Py_IsNone(match)) { + PyErr_SetHandledException(match); + } + stack_pointer[-2] = rest; + stack_pointer[-1] = match; + break; + } + + case _CHECK_EXC_MATCH: { + PyObject *right; + PyObject *left; + PyObject *b; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + assert(PyExceptionInstance_Check(left)); + if (_PyEval_CheckExceptTypeValid(tstate, right) < 0) { + Py_DECREF(right); + if (true) JUMP_TO_ERROR(); + } + int res = PyErr_GivenExceptionMatches(left, right); + Py_DECREF(right); + b = res ? Py_True : Py_False; + stack_pointer[-1] = b; + break; + } + + /* _POP_JUMP_IF_FALSE is not a viable micro-op for tier 2 because it is replaced */ + + /* _POP_JUMP_IF_TRUE is not a viable micro-op for tier 2 because it is replaced */ + + case _IS_NONE: { + PyObject *value; + PyObject *b; + value = stack_pointer[-1]; + if (Py_IsNone(value)) { + b = Py_True; + } + else { + b = Py_False; + Py_DECREF(value); + } + stack_pointer[-1] = b; + break; + } + + case _GET_LEN: { + PyObject *obj; + PyObject *len_o; + obj = stack_pointer[-1]; + // PUSH(len(TOS)) + Py_ssize_t len_i = PyObject_Length(obj); + if (len_i < 0) JUMP_TO_ERROR(); + len_o = PyLong_FromSsize_t(len_i); + if (len_o == NULL) JUMP_TO_ERROR(); + stack_pointer[0] = len_o; + stack_pointer += 1; + break; + } + + case _MATCH_CLASS: { + PyObject *names; + PyObject *type; + PyObject *subject; + PyObject *attrs; + oparg = CURRENT_OPARG(); + names = stack_pointer[-1]; + type = stack_pointer[-2]; + subject = stack_pointer[-3]; + // Pop TOS and TOS1. Set TOS to a tuple of attributes on success, or + // None on failure. + assert(PyTuple_CheckExact(names)); + attrs = _PyEval_MatchClass(tstate, subject, type, oparg, names); + Py_DECREF(subject); + Py_DECREF(type); + Py_DECREF(names); + if (attrs) { + assert(PyTuple_CheckExact(attrs)); // Success! + } + else { + if (_PyErr_Occurred(tstate)) JUMP_TO_ERROR(); + // Error! + attrs = Py_None; // Failure! + } + stack_pointer[-3] = attrs; + stack_pointer += -2; + break; + } + + case _MATCH_MAPPING: { + PyObject *subject; + PyObject *res; + subject = stack_pointer[-1]; + int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_MAPPING; + res = match ? Py_True : Py_False; + stack_pointer[0] = res; + stack_pointer += 1; + break; + } + + case _MATCH_SEQUENCE: { + PyObject *subject; + PyObject *res; + subject = stack_pointer[-1]; + int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_SEQUENCE; + res = match ? Py_True : Py_False; + stack_pointer[0] = res; + stack_pointer += 1; + break; + } + + case _MATCH_KEYS: { + PyObject *keys; + PyObject *subject; + PyObject *values_or_none; + keys = stack_pointer[-1]; + subject = stack_pointer[-2]; + // On successful match, PUSH(values). Otherwise, PUSH(None). + values_or_none = _PyEval_MatchKeys(tstate, subject, keys); + if (values_or_none == NULL) JUMP_TO_ERROR(); + stack_pointer[0] = values_or_none; + stack_pointer += 1; + break; + } + + case _GET_ITER: { + PyObject *iterable; + PyObject *iter; + iterable = stack_pointer[-1]; + /* before: [obj]; after [getiter(obj)] */ + iter = PyObject_GetIter(iterable); + Py_DECREF(iterable); + if (iter == NULL) JUMP_TO_ERROR(); + stack_pointer[-1] = iter; + break; + } + + case _GET_YIELD_FROM_ITER: { + PyObject *iterable; + PyObject *iter; + iterable = stack_pointer[-1]; + /* before: [obj]; after [getiter(obj)] */ + if (PyCoro_CheckExact(iterable)) { + /* `iterable` is a coroutine */ + if (!(_PyFrame_GetCode(frame)->co_flags & (CO_COROUTINE | CO_ITERABLE_COROUTINE))) { + /* and it is used in a 'yield from' expression of a + regular generator. */ + _PyErr_SetString(tstate, PyExc_TypeError, + "cannot 'yield from' a coroutine object " + "in a non-coroutine generator"); + JUMP_TO_ERROR(); + } + iter = iterable; + } + else if (PyGen_CheckExact(iterable)) { + iter = iterable; + } + else { + /* `iterable` is not a generator. */ + iter = PyObject_GetIter(iterable); + if (iter == NULL) { + JUMP_TO_ERROR(); + } + Py_DECREF(iterable); + } + stack_pointer[-1] = iter; + break; + } + + /* _FOR_ITER is not a viable micro-op for tier 2 because it is replaced */ + + case _FOR_ITER_TIER_TWO: { + PyObject *iter; + PyObject *next; + iter = stack_pointer[-1]; + /* before: [iter]; after: [iter, iter()] *or* [] (and jump over END_FOR.) */ + next = (*Py_TYPE(iter)->tp_iternext)(iter); + if (next == NULL) { + if (_PyErr_Occurred(tstate)) { + if (!_PyErr_ExceptionMatches(tstate, PyExc_StopIteration)) { + JUMP_TO_ERROR(); + } + _PyEval_MonitorRaise(tstate, frame, frame->instr_ptr); + _PyErr_Clear(tstate); + } + /* iterator ended normally */ + /* The translator sets the deopt target just past the matching END_FOR */ + if (true) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + } + // Common case: no jump, leave it to the code generator + stack_pointer[0] = next; + stack_pointer += 1; + break; + } + + /* _INSTRUMENTED_FOR_ITER is not a viable micro-op for tier 2 because it is instrumented */ + + case _ITER_CHECK_LIST: { + PyObject *iter; + iter = stack_pointer[-1]; + if (Py_TYPE(iter) != &PyListIter_Type) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + /* _ITER_JUMP_LIST is not a viable micro-op for tier 2 because it is replaced */ + + case _GUARD_NOT_EXHAUSTED_LIST: { + PyObject *iter; + iter = stack_pointer[-1]; + _PyListIterObject *it = (_PyListIterObject *)iter; + assert(Py_TYPE(iter) == &PyListIter_Type); + PyListObject *seq = it->it_seq; + if (seq == NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if ((size_t)it->it_index >= (size_t)PyList_GET_SIZE(seq)) { + it->it_index = -1; + if (1) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + } + break; + } + + case _ITER_NEXT_LIST: { + PyObject *iter; + PyObject *next; + iter = stack_pointer[-1]; + _PyListIterObject *it = (_PyListIterObject *)iter; + assert(Py_TYPE(iter) == &PyListIter_Type); + PyListObject *seq = it->it_seq; + assert(seq); + assert(it->it_index < PyList_GET_SIZE(seq)); + next = Py_NewRef(PyList_GET_ITEM(seq, it->it_index++)); + stack_pointer[0] = next; + stack_pointer += 1; + break; + } + + case _ITER_CHECK_TUPLE: { + PyObject *iter; + iter = stack_pointer[-1]; + if (Py_TYPE(iter) != &PyTupleIter_Type) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + /* _ITER_JUMP_TUPLE is not a viable micro-op for tier 2 because it is replaced */ + + case _GUARD_NOT_EXHAUSTED_TUPLE: { + PyObject *iter; + iter = stack_pointer[-1]; + _PyTupleIterObject *it = (_PyTupleIterObject *)iter; + assert(Py_TYPE(iter) == &PyTupleIter_Type); + PyTupleObject *seq = it->it_seq; + if (seq == NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (it->it_index >= PyTuple_GET_SIZE(seq)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _ITER_NEXT_TUPLE: { + PyObject *iter; + PyObject *next; + iter = stack_pointer[-1]; + _PyTupleIterObject *it = (_PyTupleIterObject *)iter; + assert(Py_TYPE(iter) == &PyTupleIter_Type); + PyTupleObject *seq = it->it_seq; + assert(seq); + assert(it->it_index < PyTuple_GET_SIZE(seq)); + next = Py_NewRef(PyTuple_GET_ITEM(seq, it->it_index++)); + stack_pointer[0] = next; + stack_pointer += 1; + break; + } + + case _ITER_CHECK_RANGE: { + PyObject *iter; + iter = stack_pointer[-1]; + _PyRangeIterObject *r = (_PyRangeIterObject *)iter; + if (Py_TYPE(r) != &PyRangeIter_Type) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + /* _ITER_JUMP_RANGE is not a viable micro-op for tier 2 because it is replaced */ + + case _GUARD_NOT_EXHAUSTED_RANGE: { + PyObject *iter; + iter = stack_pointer[-1]; + _PyRangeIterObject *r = (_PyRangeIterObject *)iter; + assert(Py_TYPE(r) == &PyRangeIter_Type); + if (r->len <= 0) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _ITER_NEXT_RANGE: { + PyObject *iter; + PyObject *next; + iter = stack_pointer[-1]; + _PyRangeIterObject *r = (_PyRangeIterObject *)iter; + assert(Py_TYPE(r) == &PyRangeIter_Type); + assert(r->len > 0); + long value = r->start; + r->start = value + r->step; + r->len--; + next = PyLong_FromLong(value); + if (next == NULL) JUMP_TO_ERROR(); + stack_pointer[0] = next; + stack_pointer += 1; + break; + } + + case _FOR_ITER_GEN_FRAME: { + PyObject *iter; + _PyInterpreterFrame *gen_frame; + oparg = CURRENT_OPARG(); + iter = stack_pointer[-1]; + PyGenObject *gen = (PyGenObject *)iter; + if (Py_TYPE(gen) != &PyGen_Type) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (gen->gi_frame_state >= FRAME_EXECUTING) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(FOR_ITER, hit); + gen_frame = (_PyInterpreterFrame *)gen->gi_iframe; + _PyFrame_StackPush(gen_frame, Py_None); + gen->gi_frame_state = FRAME_EXECUTING; + gen->gi_exc_state.previous_item = tstate->exc_info; + tstate->exc_info = &gen->gi_exc_state; + // oparg is the return offset from the next instruction. + frame->return_offset = (uint16_t)(1 + INLINE_CACHE_ENTRIES_FOR_ITER + oparg); + stack_pointer[0] = (PyObject *)gen_frame; + stack_pointer += 1; + break; + } + + /* _BEFORE_ASYNC_WITH is not a viable micro-op for tier 2 because it has both popping and not-popping errors */ + + /* _BEFORE_WITH is not a viable micro-op for tier 2 because it has both popping and not-popping errors */ + + case _WITH_EXCEPT_START: { + PyObject *val; + PyObject *lasti; + PyObject *exit_func; + PyObject *res; + val = stack_pointer[-1]; + lasti = stack_pointer[-3]; + exit_func = stack_pointer[-4]; + /* At the top of the stack are 4 values: + - val: TOP = exc_info() + - unused: SECOND = previous exception + - lasti: THIRD = lasti of exception in exc_info() + - exit_func: FOURTH = the context.__exit__ bound method + We call FOURTH(type(TOP), TOP, GetTraceback(TOP)). + Then we push the __exit__ return value. + */ + PyObject *exc, *tb; + assert(val && PyExceptionInstance_Check(val)); + exc = PyExceptionInstance_Class(val); + tb = PyException_GetTraceback(val); + if (tb == NULL) { + tb = Py_None; + } + else { + Py_DECREF(tb); + } + assert(PyLong_Check(lasti)); + (void)lasti; // Shut up compiler warning if asserts are off + PyObject *stack[4] = {NULL, exc, val, tb}; + res = PyObject_Vectorcall(exit_func, stack + 1, + 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[0] = res; + stack_pointer += 1; + break; + } + + case _PUSH_EXC_INFO: { + PyObject *new_exc; + PyObject *prev_exc; + new_exc = stack_pointer[-1]; + _PyErr_StackItem *exc_info = tstate->exc_info; + if (exc_info->exc_value != NULL) { + prev_exc = exc_info->exc_value; + } + else { + prev_exc = Py_None; + } + assert(PyExceptionInstance_Check(new_exc)); + exc_info->exc_value = Py_NewRef(new_exc); + stack_pointer[-1] = prev_exc; + stack_pointer[0] = new_exc; + stack_pointer += 1; + break; + } + + case _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT: { + PyObject *owner; + owner = stack_pointer[-1]; + assert(Py_TYPE(owner)->tp_flags & Py_TPFLAGS_INLINE_VALUES); + if (!_PyObject_InlineValues(owner)->valid) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _GUARD_KEYS_VERSION: { + PyObject *owner; + owner = stack_pointer[-1]; + uint32_t keys_version = (uint32_t)CURRENT_OPERAND(); + PyTypeObject *owner_cls = Py_TYPE(owner); + PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject *)owner_cls; + if (owner_heap_type->ht_cached_keys->dk_version != keys_version) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _LOAD_ATTR_METHOD_WITH_VALUES: { + PyObject *owner; + PyObject *attr; + PyObject *self = NULL; + oparg = CURRENT_OPARG(); + owner = stack_pointer[-1]; + PyObject *descr = (PyObject *)CURRENT_OPERAND(); + assert(oparg & 1); + /* Cached method object */ + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + attr = Py_NewRef(descr); + assert(_PyType_HasFeature(Py_TYPE(attr), Py_TPFLAGS_METHOD_DESCRIPTOR)); + self = owner; + stack_pointer[-1] = attr; + stack_pointer[0] = self; + stack_pointer += 1; + break; + } + + case _LOAD_ATTR_METHOD_NO_DICT: { + PyObject *owner; + PyObject *attr; + PyObject *self = NULL; + oparg = CURRENT_OPARG(); + owner = stack_pointer[-1]; + PyObject *descr = (PyObject *)CURRENT_OPERAND(); + assert(oparg & 1); + assert(Py_TYPE(owner)->tp_dictoffset == 0); + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + assert(_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)); + attr = Py_NewRef(descr); + self = owner; + stack_pointer[-1] = attr; + stack_pointer[0] = self; + stack_pointer += 1; + break; + } + + case _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES: { + PyObject *owner; + PyObject *attr; + oparg = CURRENT_OPARG(); + owner = stack_pointer[-1]; + PyObject *descr = (PyObject *)CURRENT_OPERAND(); + assert((oparg & 1) == 0); + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + Py_DECREF(owner); + attr = Py_NewRef(descr); + stack_pointer[-1] = attr; + break; + } + + case _LOAD_ATTR_NONDESCRIPTOR_NO_DICT: { + PyObject *owner; + PyObject *attr; + oparg = CURRENT_OPARG(); + owner = stack_pointer[-1]; + PyObject *descr = (PyObject *)CURRENT_OPERAND(); + assert((oparg & 1) == 0); + assert(Py_TYPE(owner)->tp_dictoffset == 0); + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + Py_DECREF(owner); + attr = Py_NewRef(descr); + stack_pointer[-1] = attr; + break; + } + + case _CHECK_ATTR_METHOD_LAZY_DICT: { + PyObject *owner; + owner = stack_pointer[-1]; + uint16_t dictoffset = (uint16_t)CURRENT_OPERAND(); + char *ptr = ((char *)owner) + MANAGED_DICT_OFFSET + dictoffset; + PyObject *dict = *(PyObject **)ptr; + /* This object has a __dict__, just not yet created */ + if (dict != NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _LOAD_ATTR_METHOD_LAZY_DICT: { + PyObject *owner; + PyObject *attr; + PyObject *self = NULL; + oparg = CURRENT_OPARG(); + owner = stack_pointer[-1]; + PyObject *descr = (PyObject *)CURRENT_OPERAND(); + assert(oparg & 1); + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + assert(_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)); + attr = Py_NewRef(descr); + self = owner; + stack_pointer[-1] = attr; + stack_pointer[0] = self; + stack_pointer += 1; + break; + } + + /* _INSTRUMENTED_CALL is not a viable micro-op for tier 2 because it is instrumented */ + + /* _CALL is not a viable micro-op for tier 2 because it uses the 'this_instr' variable */ + + case _CHECK_PERIODIC: { + CHECK_EVAL_BREAKER(); + break; + } + + case _PY_FRAME_GENERAL: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + _PyInterpreterFrame *new_frame; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + // oparg counts all of the args, but *not* self: + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + assert(Py_TYPE(callable) == &PyFunction_Type); + int code_flags = ((PyCodeObject*)PyFunction_GET_CODE(callable))->co_flags; + PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(callable)); + new_frame = _PyEvalFramePushAndInit( + tstate, (PyFunctionObject *)callable, locals, + args, total_args, NULL + ); + // The frame has stolen all the arguments from the stack, + // so there is no need to clean them up. + stack_pointer += -2 - oparg; + if (new_frame == NULL) { + JUMP_TO_ERROR(); + } + stack_pointer[0] = (PyObject *)new_frame; + stack_pointer += 1; + break; + } + + case _CHECK_FUNCTION_VERSION: { + PyObject *callable; + oparg = CURRENT_OPARG(); + callable = stack_pointer[-2 - oparg]; + uint32_t func_version = (uint32_t)CURRENT_OPERAND(); + if (!PyFunction_Check(callable)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyFunctionObject *func = (PyFunctionObject *)callable; + if (func->func_version != func_version) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _CHECK_METHOD_VERSION: { + PyObject *null; + PyObject *callable; + oparg = CURRENT_OPARG(); + null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + uint32_t func_version = (uint32_t)CURRENT_OPERAND(); + if (Py_TYPE(callable) != &PyMethod_Type) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyObject *func = ((PyMethodObject *)callable)->im_func; + if (!PyFunction_Check(func)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (((PyFunctionObject *)func)->func_version != func_version) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (null != NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _EXPAND_METHOD: { + PyObject *null; + PyObject *callable; + PyObject *method; + PyObject *self; + oparg = CURRENT_OPARG(); + null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + assert(null == NULL); + assert(Py_TYPE(callable) == &PyMethod_Type); + self = ((PyMethodObject *)callable)->im_self; + Py_INCREF(self); + stack_pointer[-1 - oparg] = self; // Patch stack as it is used by _PY_FRAME_GENERAL + method = ((PyMethodObject *)callable)->im_func; + assert(PyFunction_Check(method)); + Py_INCREF(method); + Py_DECREF(callable); + stack_pointer[-2 - oparg] = method; + stack_pointer[-1 - oparg] = self; + break; + } + + case _CHECK_IS_NOT_PY_CALLABLE: { + PyObject *callable; + oparg = CURRENT_OPARG(); + callable = stack_pointer[-2 - oparg]; + if (PyFunction_Check(callable)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (Py_TYPE(callable) == &PyMethod_Type) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _CALL_NON_PY_GENERAL: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + #if TIER_ONE + assert(opcode != INSTRUMENTED_CALL); + #endif + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + /* Callable is not a normal Python function */ + res = PyObject_Vectorcall( + callable, args, + total_args | PY_VECTORCALL_ARGUMENTS_OFFSET, + NULL); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + Py_DECREF(callable); + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CHECK_CALL_BOUND_METHOD_EXACT_ARGS: { + PyObject *null; + PyObject *callable; + oparg = CURRENT_OPARG(); + null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + if (null != NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (Py_TYPE(callable) != &PyMethod_Type) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _INIT_CALL_BOUND_METHOD_EXACT_ARGS: { + PyObject *callable; + PyObject *func; + PyObject *self; + oparg = CURRENT_OPARG(); + callable = stack_pointer[-2 - oparg]; + STAT_INC(CALL, hit); + self = Py_NewRef(((PyMethodObject *)callable)->im_self); + stack_pointer[-1 - oparg] = self; // Patch stack as it is used by _INIT_CALL_PY_EXACT_ARGS + func = Py_NewRef(((PyMethodObject *)callable)->im_func); + stack_pointer[-2 - oparg] = func; // This is used by CALL, upon deoptimization + Py_DECREF(callable); + stack_pointer[-2 - oparg] = func; + stack_pointer[-1 - oparg] = self; + break; + } + + case _CHECK_PEP_523: { + if (tstate->interp->eval_frame) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _CHECK_FUNCTION_EXACT_ARGS: { + PyObject *self_or_null; + PyObject *callable; + oparg = CURRENT_OPARG(); + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + uint32_t func_version = (uint32_t)CURRENT_OPERAND(); + if (!PyFunction_Check(callable)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyFunctionObject *func = (PyFunctionObject *)callable; + if (func->func_version != func_version) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyCodeObject *code = (PyCodeObject *)func->func_code; + if (code->co_argcount != oparg + (self_or_null != NULL)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _CHECK_STACK_SPACE: { + PyObject *callable; + oparg = CURRENT_OPARG(); + callable = stack_pointer[-2 - oparg]; + PyFunctionObject *func = (PyFunctionObject *)callable; + PyCodeObject *code = (PyCodeObject *)func->func_code; + if (!_PyThreadState_HasStackSpace(tstate, code->co_framesize)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _CHECK_RECURSION_REMAINING: { + if (tstate->py_recursion_remaining <= 1) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _INIT_CALL_PY_EXACT_ARGS_0: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + _PyInterpreterFrame *new_frame; + oparg = 0; + assert(oparg == CURRENT_OPARG()); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + int has_self = (self_or_null != NULL); + STAT_INC(CALL, hit); + PyFunctionObject *func = (PyFunctionObject *)callable; + new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self); + PyObject **first_non_self_local = new_frame->localsplus + has_self; + new_frame->localsplus[0] = self_or_null; + for (int i = 0; i < oparg; i++) { + first_non_self_local[i] = args[i]; + } + stack_pointer[-2 - oparg] = (PyObject *)new_frame; + stack_pointer += -1 - oparg; + break; + } + + case _INIT_CALL_PY_EXACT_ARGS_1: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + _PyInterpreterFrame *new_frame; + oparg = 1; + assert(oparg == CURRENT_OPARG()); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + int has_self = (self_or_null != NULL); + STAT_INC(CALL, hit); + PyFunctionObject *func = (PyFunctionObject *)callable; + new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self); + PyObject **first_non_self_local = new_frame->localsplus + has_self; + new_frame->localsplus[0] = self_or_null; + for (int i = 0; i < oparg; i++) { + first_non_self_local[i] = args[i]; + } + stack_pointer[-2 - oparg] = (PyObject *)new_frame; + stack_pointer += -1 - oparg; + break; + } + + case _INIT_CALL_PY_EXACT_ARGS_2: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + _PyInterpreterFrame *new_frame; + oparg = 2; + assert(oparg == CURRENT_OPARG()); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + int has_self = (self_or_null != NULL); + STAT_INC(CALL, hit); + PyFunctionObject *func = (PyFunctionObject *)callable; + new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self); + PyObject **first_non_self_local = new_frame->localsplus + has_self; + new_frame->localsplus[0] = self_or_null; + for (int i = 0; i < oparg; i++) { + first_non_self_local[i] = args[i]; + } + stack_pointer[-2 - oparg] = (PyObject *)new_frame; + stack_pointer += -1 - oparg; + break; + } + + case _INIT_CALL_PY_EXACT_ARGS_3: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + _PyInterpreterFrame *new_frame; + oparg = 3; + assert(oparg == CURRENT_OPARG()); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + int has_self = (self_or_null != NULL); + STAT_INC(CALL, hit); + PyFunctionObject *func = (PyFunctionObject *)callable; + new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self); + PyObject **first_non_self_local = new_frame->localsplus + has_self; + new_frame->localsplus[0] = self_or_null; + for (int i = 0; i < oparg; i++) { + first_non_self_local[i] = args[i]; + } + stack_pointer[-2 - oparg] = (PyObject *)new_frame; + stack_pointer += -1 - oparg; + break; + } + + case _INIT_CALL_PY_EXACT_ARGS_4: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + _PyInterpreterFrame *new_frame; + oparg = 4; + assert(oparg == CURRENT_OPARG()); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + int has_self = (self_or_null != NULL); + STAT_INC(CALL, hit); + PyFunctionObject *func = (PyFunctionObject *)callable; + new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self); + PyObject **first_non_self_local = new_frame->localsplus + has_self; + new_frame->localsplus[0] = self_or_null; + for (int i = 0; i < oparg; i++) { + first_non_self_local[i] = args[i]; + } + stack_pointer[-2 - oparg] = (PyObject *)new_frame; + stack_pointer += -1 - oparg; + break; + } + + case _INIT_CALL_PY_EXACT_ARGS: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + _PyInterpreterFrame *new_frame; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + int has_self = (self_or_null != NULL); + STAT_INC(CALL, hit); + PyFunctionObject *func = (PyFunctionObject *)callable; + new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self); + PyObject **first_non_self_local = new_frame->localsplus + has_self; + new_frame->localsplus[0] = self_or_null; + for (int i = 0; i < oparg; i++) { + first_non_self_local[i] = args[i]; + } + stack_pointer[-2 - oparg] = (PyObject *)new_frame; + stack_pointer += -1 - oparg; + break; + } + + case _PUSH_FRAME: { + _PyInterpreterFrame *new_frame; + new_frame = (_PyInterpreterFrame *)stack_pointer[-1]; + // Write it out explicitly because it's subtly different. + // Eventually this should be the only occurrence of this code. + assert(tstate->interp->eval_frame == NULL); + stack_pointer += -1; + _PyFrame_SetStackPointer(frame, stack_pointer); + new_frame->previous = frame; + CALL_STAT_INC(inlined_py_calls); + frame = tstate->current_frame = new_frame; + tstate->py_recursion_remaining--; + LOAD_SP(); + LOAD_IP(0); + LLTRACE_RESUME_FRAME(); + break; + } + + case _CALL_TYPE_1: { + PyObject *arg; + PyObject *null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + arg = stack_pointer[-1]; + null = stack_pointer[-2]; + callable = stack_pointer[-3]; + assert(oparg == 1); + if (null != NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (callable != (PyObject *)&PyType_Type) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + res = Py_NewRef(Py_TYPE(arg)); + Py_DECREF(arg); + stack_pointer[-3] = res; + stack_pointer += -2; + break; + } + + case _CALL_STR_1: { + PyObject *arg; + PyObject *null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + arg = stack_pointer[-1]; + null = stack_pointer[-2]; + callable = stack_pointer[-3]; + assert(oparg == 1); + if (null != NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (callable != (PyObject *)&PyUnicode_Type) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + res = PyObject_Str(arg); + Py_DECREF(arg); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-3] = res; + stack_pointer += -2; + break; + } + + case _CALL_TUPLE_1: { + PyObject *arg; + PyObject *null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + arg = stack_pointer[-1]; + null = stack_pointer[-2]; + callable = stack_pointer[-3]; + assert(oparg == 1); + if (null != NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (callable != (PyObject *)&PyTuple_Type) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + res = PySequence_Tuple(arg); + Py_DECREF(arg); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-3] = res; + stack_pointer += -2; + break; + } + + /* _CALL_ALLOC_AND_ENTER_INIT is not a viable micro-op for tier 2 because it uses the 'this_instr' variable */ + + case _EXIT_INIT_CHECK: { + PyObject *should_be_none; + should_be_none = stack_pointer[-1]; + assert(STACK_LEVEL() == 2); + if (should_be_none != Py_None) { + PyErr_Format(PyExc_TypeError, + "__init__() should return None, not '%.200s'", + Py_TYPE(should_be_none)->tp_name); + JUMP_TO_ERROR(); + } + stack_pointer += -1; + break; + } + + case _CALL_BUILTIN_CLASS: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + if (!PyType_Check(callable)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyTypeObject *tp = (PyTypeObject *)callable; + if (tp->tp_vectorcall == NULL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + res = tp->tp_vectorcall((PyObject *)tp, args, total_args, NULL); + /* Free the arguments. */ + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + Py_DECREF(tp); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_BUILTIN_O: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + /* Builtin METH_O functions */ + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + if (total_args != 1) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!PyCFunction_CheckExact(callable)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (PyCFunction_GET_FLAGS(callable) != METH_O) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + // CPython promises to check all non-vectorcall function calls. + if (tstate->c_recursion_remaining <= 0) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + PyCFunction cfunc = PyCFunction_GET_FUNCTION(callable); + PyObject *arg = args[0]; + _Py_EnterRecursiveCallTstateUnchecked(tstate); + res = _PyCFunction_TrampolineCall(cfunc, PyCFunction_GET_SELF(callable), arg); + _Py_LeaveRecursiveCallTstate(tstate); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + Py_DECREF(arg); + Py_DECREF(callable); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_BUILTIN_FAST: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + /* Builtin METH_FASTCALL functions, without keywords */ + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + if (!PyCFunction_CheckExact(callable)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (PyCFunction_GET_FLAGS(callable) != METH_FASTCALL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + PyCFunction cfunc = PyCFunction_GET_FUNCTION(callable); + /* res = func(self, args, nargs) */ + res = ((PyCFunctionFast)(void(*)(void))cfunc)( + PyCFunction_GET_SELF(callable), + args, + total_args); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + /* Free the arguments. */ + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + Py_DECREF(callable); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_BUILTIN_FAST_WITH_KEYWORDS: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + /* Builtin METH_FASTCALL | METH_KEYWORDS functions */ + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + if (!PyCFunction_CheckExact(callable)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (PyCFunction_GET_FLAGS(callable) != (METH_FASTCALL | METH_KEYWORDS)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + /* res = func(self, args, nargs, kwnames) */ + PyCFunctionFastWithKeywords cfunc = + (PyCFunctionFastWithKeywords)(void(*)(void)) + PyCFunction_GET_FUNCTION(callable); + res = cfunc(PyCFunction_GET_SELF(callable), args, total_args, NULL); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + /* Free the arguments. */ + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + Py_DECREF(callable); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_LEN: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + /* len(o) */ + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + if (total_args != 1) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyInterpreterState *interp = tstate->interp; + if (callable != interp->callable_cache.len) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + PyObject *arg = args[0]; + Py_ssize_t len_i = PyObject_Length(arg); + if (len_i < 0) { + JUMP_TO_ERROR(); + } + res = PyLong_FromSsize_t(len_i); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + if (res == NULL) { + GOTO_ERROR(error); + } + Py_DECREF(callable); + Py_DECREF(arg); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_ISINSTANCE: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + /* isinstance(o, o2) */ + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + if (total_args != 2) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyInterpreterState *interp = tstate->interp; + if (callable != interp->callable_cache.isinstance) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + PyObject *cls = args[1]; + PyObject *inst = args[0]; + int retval = PyObject_IsInstance(inst, cls); + if (retval < 0) { + JUMP_TO_ERROR(); + } + res = PyBool_FromLong(retval); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + if (res == NULL) { + GOTO_ERROR(error); + } + Py_DECREF(inst); + Py_DECREF(cls); + Py_DECREF(callable); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_METHOD_DESCRIPTOR_O: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + PyMethodDescrObject *method = (PyMethodDescrObject *)callable; + if (total_args != 2) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (!Py_IS_TYPE(method, &PyMethodDescr_Type)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyMethodDef *meth = method->d_method; + if (meth->ml_flags != METH_O) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + // CPython promises to check all non-vectorcall function calls. + if (tstate->c_recursion_remaining <= 0) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyObject *arg = args[1]; + PyObject *self = args[0]; + if (!Py_IS_TYPE(self, method->d_common.d_type)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + PyCFunction cfunc = meth->ml_meth; + _Py_EnterRecursiveCallTstateUnchecked(tstate); + res = _PyCFunction_TrampolineCall(cfunc, self, arg); + _Py_LeaveRecursiveCallTstate(tstate); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + Py_DECREF(self); + Py_DECREF(arg); + Py_DECREF(callable); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + if (total_args == 0) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyMethodDescrObject *method = (PyMethodDescrObject *)callable; + if (!Py_IS_TYPE(method, &PyMethodDescr_Type)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyMethodDef *meth = method->d_method; + if (meth->ml_flags != (METH_FASTCALL|METH_KEYWORDS)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyTypeObject *d_type = method->d_common.d_type; + PyObject *self = args[0]; + assert(self != NULL); + if (!Py_IS_TYPE(self, d_type)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + int nargs = total_args - 1; + PyCFunctionFastWithKeywords cfunc = + (PyCFunctionFastWithKeywords)(void(*)(void))meth->ml_meth; + res = cfunc(self, args + 1, nargs, NULL); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + /* Free the arguments. */ + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + Py_DECREF(callable); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_METHOD_DESCRIPTOR_NOARGS: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + assert(oparg == 0 || oparg == 1); + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + if (total_args != 1) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyMethodDescrObject *method = (PyMethodDescrObject *)callable; + if (!Py_IS_TYPE(method, &PyMethodDescr_Type)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyMethodDef *meth = method->d_method; + PyObject *self = args[0]; + if (!Py_IS_TYPE(self, method->d_common.d_type)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (meth->ml_flags != METH_NOARGS) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + // CPython promises to check all non-vectorcall function calls. + if (tstate->c_recursion_remaining <= 0) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + PyCFunction cfunc = meth->ml_meth; + _Py_EnterRecursiveCallTstateUnchecked(tstate); + res = _PyCFunction_TrampolineCall(cfunc, self, NULL); + _Py_LeaveRecursiveCallTstate(tstate); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + Py_DECREF(self); + Py_DECREF(callable); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_METHOD_DESCRIPTOR_FAST: { + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + oparg = CURRENT_OPARG(); + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + PyMethodDescrObject *method = (PyMethodDescrObject *)callable; + if (total_args == 0) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + /* Builtin METH_FASTCALL methods, without keywords */ + if (!Py_IS_TYPE(method, &PyMethodDescr_Type)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyMethodDef *meth = method->d_method; + if (meth->ml_flags != METH_FASTCALL) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + PyObject *self = args[0]; + assert(self != NULL); + if (!Py_IS_TYPE(self, method->d_common.d_type)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + STAT_INC(CALL, hit); + PyCFunctionFast cfunc = + (PyCFunctionFast)(void(*)(void))meth->ml_meth; + int nargs = total_args - 1; + res = cfunc(self, args + 1, nargs); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + /* Clear the stack of the arguments. */ + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + Py_DECREF(callable); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + /* _INSTRUMENTED_CALL_KW is not a viable micro-op for tier 2 because it is instrumented */ + + /* _CALL_KW is not a viable micro-op for tier 2 because it uses the 'this_instr' variable */ + + /* _INSTRUMENTED_CALL_FUNCTION_EX is not a viable micro-op for tier 2 because it is instrumented */ + + /* _CALL_FUNCTION_EX is not a viable micro-op for tier 2 because it uses the 'this_instr' variable */ + + case _MAKE_FUNCTION: { + PyObject *codeobj; + PyObject *func; + codeobj = stack_pointer[-1]; + PyFunctionObject *func_obj = (PyFunctionObject *) + PyFunction_New(codeobj, GLOBALS()); + Py_DECREF(codeobj); + if (func_obj == NULL) { + JUMP_TO_ERROR(); + } + _PyFunction_SetVersion( + func_obj, ((PyCodeObject *)codeobj)->co_version); + func = (PyObject *)func_obj; + stack_pointer[-1] = func; + break; + } + + case _SET_FUNCTION_ATTRIBUTE: { + PyObject *func; + PyObject *attr; + oparg = CURRENT_OPARG(); + func = stack_pointer[-1]; + attr = stack_pointer[-2]; + assert(PyFunction_Check(func)); + PyFunctionObject *func_obj = (PyFunctionObject *)func; + switch(oparg) { + case MAKE_FUNCTION_CLOSURE: + assert(func_obj->func_closure == NULL); + func_obj->func_closure = attr; + break; + case MAKE_FUNCTION_ANNOTATIONS: + assert(func_obj->func_annotations == NULL); + func_obj->func_annotations = attr; + break; + case MAKE_FUNCTION_KWDEFAULTS: + assert(PyDict_CheckExact(attr)); + assert(func_obj->func_kwdefaults == NULL); + func_obj->func_kwdefaults = attr; + break; + case MAKE_FUNCTION_DEFAULTS: + assert(PyTuple_CheckExact(attr)); + assert(func_obj->func_defaults == NULL); + func_obj->func_defaults = attr; + break; + default: + Py_UNREACHABLE(); + } + stack_pointer[-2] = func; + stack_pointer += -1; + break; + } + + case _RETURN_GENERATOR: { + PyObject *res; + assert(PyFunction_Check(frame->f_funcobj)); + PyFunctionObject *func = (PyFunctionObject *)frame->f_funcobj; + PyGenObject *gen = (PyGenObject *)_Py_MakeCoro(func); + if (gen == NULL) { + JUMP_TO_ERROR(); + } + assert(EMPTY()); + _PyFrame_SetStackPointer(frame, stack_pointer); + _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe; + frame->instr_ptr++; + _PyFrame_Copy(frame, gen_frame); + assert(frame->frame_obj == NULL); + gen->gi_frame_state = FRAME_CREATED; + gen_frame->owner = FRAME_OWNED_BY_GENERATOR; + _Py_LeaveRecursiveCallPy(tstate); + res = (PyObject *)gen; + _PyInterpreterFrame *prev = frame->previous; + _PyThreadState_PopFrame(tstate, frame); + frame = tstate->current_frame = prev; + LOAD_IP(frame->return_offset); + LOAD_SP(); + LLTRACE_RESUME_FRAME(); + stack_pointer[0] = res; + stack_pointer += 1; + break; + } + + case _BUILD_SLICE: { + PyObject *step = NULL; + PyObject *stop; + PyObject *start; + PyObject *slice; + oparg = CURRENT_OPARG(); + if (oparg == 3) { step = stack_pointer[-((oparg == 3) ? 1 : 0)]; } + stop = stack_pointer[-1 - ((oparg == 3) ? 1 : 0)]; + start = stack_pointer[-2 - ((oparg == 3) ? 1 : 0)]; + slice = PySlice_New(start, stop, step); + Py_DECREF(start); + Py_DECREF(stop); + Py_XDECREF(step); + if (slice == NULL) JUMP_TO_ERROR(); + stack_pointer[-2 - ((oparg == 3) ? 1 : 0)] = slice; + stack_pointer += -1 - ((oparg == 3) ? 1 : 0); + break; + } + + case _CONVERT_VALUE: { + PyObject *value; + PyObject *result; + oparg = CURRENT_OPARG(); + value = stack_pointer[-1]; + conversion_func conv_fn; + assert(oparg >= FVC_STR && oparg <= FVC_ASCII); + conv_fn = _PyEval_ConversionFuncs[oparg]; + result = conv_fn(value); + Py_DECREF(value); + if (result == NULL) JUMP_TO_ERROR(); + stack_pointer[-1] = result; + break; + } + + case _FORMAT_SIMPLE: { + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + /* If value is a unicode object, then we know the result + * of format(value) is value itself. */ + if (!PyUnicode_CheckExact(value)) { + res = PyObject_Format(value, NULL); + Py_DECREF(value); + if (res == NULL) JUMP_TO_ERROR(); + } + else { + res = value; + } + stack_pointer[-1] = res; + break; + } + + case _FORMAT_WITH_SPEC: { + PyObject *fmt_spec; + PyObject *value; + PyObject *res; + fmt_spec = stack_pointer[-1]; + value = stack_pointer[-2]; + res = PyObject_Format(value, fmt_spec); + Py_DECREF(value); + Py_DECREF(fmt_spec); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _COPY: { + PyObject *bottom; + PyObject *top; + oparg = CURRENT_OPARG(); + bottom = stack_pointer[-1 - (oparg-1)]; + assert(oparg > 0); + top = Py_NewRef(bottom); + stack_pointer[0] = top; + stack_pointer += 1; + break; + } + + case _BINARY_OP: { + PyObject *rhs; + PyObject *lhs; + PyObject *res; + oparg = CURRENT_OPARG(); + rhs = stack_pointer[-1]; + lhs = stack_pointer[-2]; + assert(_PyEval_BinaryOps[oparg]); + res = _PyEval_BinaryOps[oparg](lhs, rhs); + Py_DECREF(lhs); + Py_DECREF(rhs); + if (res == NULL) JUMP_TO_ERROR(); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _SWAP: { + PyObject *top; + PyObject *bottom; + oparg = CURRENT_OPARG(); + top = stack_pointer[-1]; + bottom = stack_pointer[-2 - (oparg-2)]; + assert(oparg >= 2); + stack_pointer[-2 - (oparg-2)] = top; + stack_pointer[-1] = bottom; + break; + } + + /* _INSTRUMENTED_INSTRUCTION is not a viable micro-op for tier 2 because it is instrumented */ + + /* _INSTRUMENTED_JUMP_FORWARD is not a viable micro-op for tier 2 because it is instrumented */ + + /* _INSTRUMENTED_JUMP_BACKWARD is not a viable micro-op for tier 2 because it is instrumented */ + + /* _INSTRUMENTED_POP_JUMP_IF_TRUE is not a viable micro-op for tier 2 because it is instrumented */ + + /* _INSTRUMENTED_POP_JUMP_IF_FALSE is not a viable micro-op for tier 2 because it is instrumented */ + + /* _INSTRUMENTED_POP_JUMP_IF_NONE is not a viable micro-op for tier 2 because it is instrumented */ + + /* _INSTRUMENTED_POP_JUMP_IF_NOT_NONE is not a viable micro-op for tier 2 because it is instrumented */ + + case _GUARD_IS_TRUE_POP: { + PyObject *flag; + flag = stack_pointer[-1]; + stack_pointer += -1; + if (!Py_IsTrue(flag)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + assert(Py_IsTrue(flag)); + break; + } + + case _GUARD_IS_FALSE_POP: { + PyObject *flag; + flag = stack_pointer[-1]; + stack_pointer += -1; + if (!Py_IsFalse(flag)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + assert(Py_IsFalse(flag)); + break; + } + + case _GUARD_IS_NONE_POP: { + PyObject *val; + val = stack_pointer[-1]; + stack_pointer += -1; + if (!Py_IsNone(val)) { + Py_DECREF(val); + if (1) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + } + break; + } + + case _GUARD_IS_NOT_NONE_POP: { + PyObject *val; + val = stack_pointer[-1]; + stack_pointer += -1; + if (Py_IsNone(val)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + Py_DECREF(val); + break; + } + + case _JUMP_TO_TOP: { + #ifndef _Py_JIT + next_uop = ¤t_executor->trace[1]; + #endif + break; + } + + case _SET_IP: { + PyObject *instr_ptr = (PyObject *)CURRENT_OPERAND(); + frame->instr_ptr = (_Py_CODEUNIT *)instr_ptr; + break; + } + + case _CHECK_STACK_SPACE_OPERAND: { + uint32_t framesize = (uint32_t)CURRENT_OPERAND(); + assert(framesize <= INT_MAX); + if (!_PyThreadState_HasStackSpace(tstate, framesize)) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + if (tstate->py_recursion_remaining <= 1) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _SAVE_RETURN_OFFSET: { + oparg = CURRENT_OPARG(); + #if TIER_ONE + frame->return_offset = (uint16_t)(next_instr - this_instr); + #endif + #if TIER_TWO + frame->return_offset = oparg; + #endif + break; + } + + case _EXIT_TRACE: { + EXIT_TO_TRACE(); + break; + } + + case _CHECK_VALIDITY: { + if (!current_executor->vm_data.valid) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _LOAD_CONST_INLINE: { + PyObject *value; + PyObject *ptr = (PyObject *)CURRENT_OPERAND(); + value = Py_NewRef(ptr); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_CONST_INLINE_BORROW: { + PyObject *value; + PyObject *ptr = (PyObject *)CURRENT_OPERAND(); + value = ptr; + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _POP_TOP_LOAD_CONST_INLINE_BORROW: { + PyObject *pop; + PyObject *value; + pop = stack_pointer[-1]; + PyObject *ptr = (PyObject *)CURRENT_OPERAND(); + Py_DECREF(pop); + value = ptr; + stack_pointer[-1] = value; + break; + } + + case _LOAD_CONST_INLINE_WITH_NULL: { + PyObject *value; + PyObject *null; + PyObject *ptr = (PyObject *)CURRENT_OPERAND(); + value = Py_NewRef(ptr); + null = NULL; + stack_pointer[0] = value; + stack_pointer[1] = null; + stack_pointer += 2; + break; + } + + case _LOAD_CONST_INLINE_BORROW_WITH_NULL: { + PyObject *value; + PyObject *null; + PyObject *ptr = (PyObject *)CURRENT_OPERAND(); + value = ptr; + null = NULL; + stack_pointer[0] = value; + stack_pointer[1] = null; + stack_pointer += 2; + break; + } + + case _CHECK_FUNCTION: { + uint32_t func_version = (uint32_t)CURRENT_OPERAND(); + assert(PyFunction_Check(frame->f_funcobj)); + if (((PyFunctionObject *)frame->f_funcobj)->func_version != func_version) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _INTERNAL_INCREMENT_OPT_COUNTER: { + PyObject *opt; + opt = stack_pointer[-1]; + _PyCounterOptimizerObject *exe = (_PyCounterOptimizerObject *)opt; + exe->count++; + stack_pointer += -1; + break; + } + + case _COLD_EXIT: { + oparg = CURRENT_OPARG(); + _PyExecutorObject *previous = (_PyExecutorObject *)tstate->previous_executor; + _PyExitData *exit = &previous->exits[oparg]; + PyCodeObject *code = _PyFrame_GetCode(frame); + _Py_CODEUNIT *target = _PyCode_CODE(code) + exit->target; + _Py_BackoffCounter temperature = exit->temperature; + if (!backoff_counter_triggers(temperature)) { + exit->temperature = advance_backoff_counter(temperature); + GOTO_TIER_ONE(target); + } + _PyExecutorObject *executor; + if (target->op.code == ENTER_EXECUTOR) { + executor = code->co_executors->executors[target->op.arg]; + Py_INCREF(executor); + } + else { + int optimized = _PyOptimizer_Optimize(frame, target, stack_pointer, &executor); + if (optimized <= 0) { + exit->temperature = restart_backoff_counter(temperature); + if (optimized < 0) { + Py_DECREF(previous); + tstate->previous_executor = Py_None; + GOTO_UNWIND(); + } + GOTO_TIER_ONE(target); + } + } + /* We need two references. One to store in exit->executor and + * one to keep the executor alive when executing. */ + Py_INCREF(executor); + exit->executor = executor; + GOTO_TIER_TWO(executor); + break; + } + + case _DYNAMIC_EXIT: { + oparg = CURRENT_OPARG(); + tstate->previous_executor = (PyObject *)current_executor; + _PyExitData *exit = (_PyExitData *)¤t_executor->exits[oparg]; + _Py_CODEUNIT *target = frame->instr_ptr; + _PyExecutorObject *executor; + if (target->op.code == ENTER_EXECUTOR) { + PyCodeObject *code = (PyCodeObject *)frame->f_executable; + executor = code->co_executors->executors[target->op.arg]; + Py_INCREF(executor); + } + else { + if (!backoff_counter_triggers(exit->temperature)) { + exit->temperature = advance_backoff_counter(exit->temperature); + GOTO_TIER_ONE(target); + } + int optimized = _PyOptimizer_Optimize(frame, target, stack_pointer, &executor); + if (optimized <= 0) { + exit->temperature = restart_backoff_counter(exit->temperature); + if (optimized < 0) { + GOTO_UNWIND(); + } + GOTO_TIER_ONE(target); + } + else { + exit->temperature = initial_temperature_backoff_counter(); + } + } + GOTO_TIER_TWO(executor); + break; + } + + case _START_EXECUTOR: { + PyObject *executor = (PyObject *)CURRENT_OPERAND(); + Py_DECREF(tstate->previous_executor); + tstate->previous_executor = NULL; + #ifndef _Py_JIT + current_executor = (_PyExecutorObject*)executor; + #endif + if (!((_PyExecutorObject *)executor)->vm_data.valid) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + break; + } + + case _FATAL_ERROR: { + assert(0); + Py_FatalError("Fatal error uop executed."); + break; + } + + case _CHECK_VALIDITY_AND_SET_IP: { + PyObject *instr_ptr = (PyObject *)CURRENT_OPERAND(); + if (!current_executor->vm_data.valid) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + frame->instr_ptr = (_Py_CODEUNIT *)instr_ptr; + break; + } + + case _DEOPT: { + EXIT_TO_TIER1(); + break; + } + + case _ERROR_POP_N: { + oparg = CURRENT_OPARG(); + uint32_t target = (uint32_t)CURRENT_OPERAND(); + frame->instr_ptr = ((_Py_CODEUNIT *)_PyFrame_GetCode(frame)->co_code_adaptive) + target; + stack_pointer += -oparg; + GOTO_UNWIND(); + break; + } + + case _TIER2_RESUME_CHECK: { + #if defined(__EMSCRIPTEN__) + if (_Py_emscripten_signal_clock == 0) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + _Py_emscripten_signal_clock -= Py_EMSCRIPTEN_SIGNAL_HANDLING; + #endif + uintptr_t eval_breaker = _Py_atomic_load_uintptr_relaxed(&tstate->eval_breaker); + if (eval_breaker & _PY_EVAL_EVENTS_MASK) { + UOP_STAT_INC(uopcode, miss); + JUMP_TO_JUMP_TARGET(); + } + assert(tstate->tracing || eval_breaker == FT_ATOMIC_LOAD_UINTPTR_ACQUIRE(_PyFrame_GetCode(frame)->_co_instrumentation_version)); + break; + } + +#undef TIER_TWO diff --git a/contrib/tools/python3/Python/fileutils.c b/contrib/tools/python3/Python/fileutils.c index 45de2b891d9..81be9d5e8ab 100644 --- a/contrib/tools/python3/Python/fileutils.c +++ b/contrib/tools/python3/Python/fileutils.c @@ -2,8 +2,11 @@ #include "pycore_fileutils.h" // fileutils definitions #include "pycore_runtime.h" // _PyRuntime #include "osdefs.h" // SEP -#include + #include // mbstowcs() +#ifdef HAVE_UNISTD_H +# include // getcwd() +#endif #ifdef MS_WINDOWS # include @@ -19,7 +22,7 @@ extern int winerror_to_errno(int); #endif #ifdef HAVE_LANGINFO_H -#include +# include // nl_langinfo(CODESET) #endif #ifdef HAVE_SYS_IOCTL_H @@ -27,12 +30,12 @@ extern int winerror_to_errno(int); #endif #ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION -#error #include +# error #include // iconv_open() #endif #ifdef HAVE_FCNTL_H -#include -#endif /* HAVE_FCNTL_H */ +# include // fcntl(F_GETFD) +#endif #ifdef O_CLOEXEC /* Does open() support the O_CLOEXEC flag? Possible values: @@ -105,14 +108,14 @@ _Py_device_encoding(int fd) #else if (_PyRuntime.preconfig.utf8_mode) { _Py_DECLARE_STR(utf_8, "utf-8"); - return Py_NewRef(&_Py_STR(utf_8)); + return &_Py_STR(utf_8); } return _Py_GetLocaleEncodingObject(); #endif } -static size_t +static int is_valid_wide_char(wchar_t ch) { #ifdef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION @@ -520,15 +523,7 @@ decode_current_locale(const char* arg, wchar_t **wstr, size_t *wlen, break; } - if (converted == INCOMPLETE_CHARACTER) { - /* Incomplete character. This should never happen, - since we provide everything that we have - - unless there is a bug in the C library, or I - misunderstood how mbrtowc works. */ - goto decode_error; - } - - if (converted == DECODE_ERROR) { + if (converted == DECODE_ERROR || converted == INCOMPLETE_CHARACTER) { if (!surrogateescape) { goto decode_error; } @@ -1499,7 +1494,7 @@ set_inheritable(int fd, int inheritable, int raise, int *atomic_flag_works) #else #if defined(HAVE_SYS_IOCTL_H) && defined(FIOCLEX) && defined(FIONCLEX) - if (ioctl_works != 0 && raise != 0) { + if (raise != 0 && _Py_atomic_load_int_relaxed(&ioctl_works) != 0) { /* fast-path: ioctl() only requires one syscall */ /* caveat: raise=0 is an indicator that we must be async-signal-safe * thus avoid using ioctl() so we skip the fast-path. */ @@ -1509,7 +1504,9 @@ set_inheritable(int fd, int inheritable, int raise, int *atomic_flag_works) request = FIOCLEX; err = ioctl(fd, request, NULL); if (!err) { - ioctl_works = 1; + if (_Py_atomic_load_int_relaxed(&ioctl_works) == -1) { + _Py_atomic_store_int_relaxed(&ioctl_works, 1); + } return 0; } @@ -1536,7 +1533,7 @@ set_inheritable(int fd, int inheritable, int raise, int *atomic_flag_works) with EACCES. While FIOCLEX is safe operation it may be unavailable because ioctl was denied altogether. This can be the case on Android. */ - ioctl_works = 0; + _Py_atomic_store_int_relaxed(&ioctl_works, 0); } /* fallback to fcntl() if ioctl() does not work */ } @@ -2292,6 +2289,99 @@ PathCchCombineEx(wchar_t *buffer, size_t bufsize, const wchar_t *dirname, #endif /* defined(MS_WINDOWS_GAMES) && !defined(MS_WINDOWS_DESKTOP) */ +void +_Py_skiproot(const wchar_t *path, Py_ssize_t size, Py_ssize_t *drvsize, + Py_ssize_t *rootsize) +{ + assert(drvsize); + assert(rootsize); +#ifndef MS_WINDOWS +#define IS_SEP(x) (*(x) == SEP) + *drvsize = 0; + if (!IS_SEP(&path[0])) { + // Relative path, e.g.: 'foo' + *rootsize = 0; + } + else if (!IS_SEP(&path[1]) || IS_SEP(&path[2])) { + // Absolute path, e.g.: '/foo', '///foo', '////foo', etc. + *rootsize = 1; + } + else { + // Precisely two leading slashes, e.g.: '//foo'. Implementation defined per POSIX, see + // https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13 + *rootsize = 2; + } +#undef IS_SEP +#else + const wchar_t *pEnd = size >= 0 ? &path[size] : NULL; +#define IS_END(x) (pEnd ? (x) == pEnd : !*(x)) +#define IS_SEP(x) (*(x) == SEP || *(x) == ALTSEP) +#define SEP_OR_END(x) (IS_SEP(x) || IS_END(x)) + if (IS_SEP(&path[0])) { + if (IS_SEP(&path[1])) { + // Device drives, e.g. \\.\device or \\?\device + // UNC drives, e.g. \\server\share or \\?\UNC\server\share + Py_ssize_t idx; + if (path[2] == L'?' && IS_SEP(&path[3]) && + (path[4] == L'U' || path[4] == L'u') && + (path[5] == L'N' || path[5] == L'n') && + (path[6] == L'C' || path[6] == L'c') && + IS_SEP(&path[7])) + { + idx = 8; + } + else { + idx = 2; + } + while (!SEP_OR_END(&path[idx])) { + idx++; + } + if (IS_END(&path[idx])) { + *drvsize = idx; + *rootsize = 0; + } + else { + idx++; + while (!SEP_OR_END(&path[idx])) { + idx++; + } + *drvsize = idx; + if (IS_END(&path[idx])) { + *rootsize = 0; + } + else { + *rootsize = 1; + } + } + } + else { + // Relative path with root, e.g. \Windows + *drvsize = 0; + *rootsize = 1; + } + } + else if (!IS_END(&path[0]) && path[1] == L':') { + *drvsize = 2; + if (IS_SEP(&path[2])) { + // Absolute drive-letter path, e.g. X:\Windows + *rootsize = 1; + } + else { + // Relative path with drive, e.g. X:Windows + *rootsize = 0; + } + } + else { + // Relative path, e.g. Windows + *drvsize = 0; + *rootsize = 0; + } +#undef SEP_OR_END +#undef IS_SEP +#undef IS_END +#endif +} + // The caller must ensure "buffer" is big enough. static int join_relfile(wchar_t *buffer, size_t bufsize, @@ -2408,49 +2498,40 @@ _Py_normpath_and_size(wchar_t *path, Py_ssize_t size, Py_ssize_t *normsize) #endif #define SEP_OR_END(x) (IS_SEP(x) || IS_END(x)) - // Skip leading '.\' - if (p1[0] == L'.' && IS_SEP(&p1[1])) { - path = &path[2]; - while (IS_SEP(path) && !IS_END(path)) { - path++; - } - p1 = p2 = minP2 = path; - lastC = SEP; - } -#ifdef MS_WINDOWS - // Skip past drive segment and update minP2 - else if (p1[0] && p1[1] == L':') { - *p2++ = *p1++; - *p2++ = *p1++; - minP2 = p2; - lastC = L':'; - } - // Skip past all \\-prefixed paths, including \\?\, \\.\, - // and network paths, including the first segment. - else if (IS_SEP(&p1[0]) && IS_SEP(&p1[1])) { - int sepCount = 2; - *p2++ = SEP; - *p2++ = SEP; - p1 += 2; - for (; !IS_END(p1) && sepCount; ++p1) { - if (IS_SEP(p1)) { - --sepCount; - *p2++ = lastC = SEP; - } else { - *p2++ = lastC = *p1; + Py_ssize_t drvsize, rootsize; + _Py_skiproot(path, size, &drvsize, &rootsize); + if (drvsize || rootsize) { + // Skip past root and update minP2 + p1 = &path[drvsize + rootsize]; +#ifndef ALTSEP + p2 = p1; +#else + for (; p2 < p1; ++p2) { + if (*p2 == ALTSEP) { + *p2 = SEP; } } +#endif minP2 = p2 - 1; + lastC = *minP2; +#ifdef MS_WINDOWS + if (lastC != SEP) { + minP2++; + } +#endif } -#else - // Skip past two leading SEPs - else if (IS_SEP(&p1[0]) && IS_SEP(&p1[1]) && !IS_SEP(&p1[2])) { - *p2++ = *p1++; - *p2++ = *p1++; - minP2 = p2 - 1; // Absolute path has SEP at minP2 - lastC = SEP; + if (p1[0] == L'.' && SEP_OR_END(&p1[1])) { + // Skip leading '.\' + lastC = *++p1; +#ifdef ALTSEP + if (lastC == ALTSEP) { + lastC = SEP; + } +#endif + while (IS_SEP(p1)) { + p1++; + } } -#endif /* MS_WINDOWS */ /* if pEnd is specified, check that. Else, check for null terminator */ for (; !IS_END(p1); ++p1) { @@ -2875,9 +2956,9 @@ done: * non-opened fd in the middle. * 2b. If fdwalk(3) isn't available, just do a plain close(2) loop. */ -#ifdef __FreeBSD__ +#ifdef HAVE_CLOSEFROM # define USE_CLOSEFROM -#endif /* __FreeBSD__ */ +#endif /* HAVE_CLOSEFROM */ #ifdef HAVE_FDWALK # define USE_FDWALK @@ -2919,7 +3000,7 @@ _Py_closerange(int first, int last) #ifdef USE_CLOSEFROM if (last >= sysconf(_SC_OPEN_MAX)) { /* Any errors encountered while closing file descriptors are ignored */ - closefrom(first); + (void)closefrom(first); } else #endif /* USE_CLOSEFROM */ @@ -2940,3 +3021,76 @@ _Py_closerange(int first, int last) #endif /* USE_FDWALK */ _Py_END_SUPPRESS_IPH } + + +#ifndef MS_WINDOWS +// Ticks per second used by clock() and times() functions. +// See os.times() and time.process_time() implementations. +int +_Py_GetTicksPerSecond(long *ticks_per_second) +{ +#if defined(HAVE_SYSCONF) && defined(_SC_CLK_TCK) + long value = sysconf(_SC_CLK_TCK); + if (value < 1) { + return -1; + } + *ticks_per_second = value; +#elif defined(HZ) + assert(HZ >= 1); + *ticks_per_second = HZ; +#else + // Magic fallback value; may be bogus + *ticks_per_second = 60; +#endif + return 0; +} +#endif + + +/* Check if a file descriptor is valid or not. + Return 0 if the file descriptor is invalid, return non-zero otherwise. */ +int +_Py_IsValidFD(int fd) +{ +/* dup() is faster than fstat(): fstat() can require input/output operations, + whereas dup() doesn't. There is a low risk of EMFILE/ENFILE at Python + startup. Problem: dup() doesn't check if the file descriptor is valid on + some platforms. + + fcntl(fd, F_GETFD) is even faster, because it only checks the process table. + It is preferred over dup() when available, since it cannot fail with the + "too many open files" error (EMFILE). + + bpo-30225: On macOS Tiger, when stdout is redirected to a pipe and the other + side of the pipe is closed, dup(1) succeed, whereas fstat(1, &st) fails with + EBADF. FreeBSD has similar issue (bpo-32849). + + Only use dup() on Linux where dup() is enough to detect invalid FD + (bpo-32849). +*/ + if (fd < 0) { + return 0; + } +#if defined(F_GETFD) && ( \ + defined(__linux__) || \ + defined(__APPLE__) || \ + (defined(__wasm__) && !defined(__wasi__))) + return fcntl(fd, F_GETFD) >= 0; +#elif defined(__linux__) + int fd2 = dup(fd); + if (fd2 >= 0) { + close(fd2); + } + return (fd2 >= 0); +#elif defined(MS_WINDOWS) + HANDLE hfile; + _Py_BEGIN_SUPPRESS_IPH + hfile = (HANDLE)_get_osfhandle(fd); + _Py_END_SUPPRESS_IPH + return (hfile != INVALID_HANDLE_VALUE + && GetFileType(hfile) != FILE_TYPE_UNKNOWN); +#else + struct stat st; + return (fstat(fd, &st) == 0); +#endif +} diff --git a/contrib/tools/python3/Python/flowgraph.c b/contrib/tools/python3/Python/flowgraph.c index 86b3afe5ae8..ecf510842ea 100644 --- a/contrib/tools/python3/Python/flowgraph.c +++ b/contrib/tools/python3/Python/flowgraph.c @@ -4,9 +4,7 @@ #include "pycore_pymem.h" // _PyMem_IsPtrFreed() #include "pycore_opcode_utils.h" -#define NEED_OPCODE_METADATA -#include "opcode_metadata.h" // _PyOpcode_opcode_metadata, _PyOpcode_num_popped/pushed -#undef NEED_OPCODE_METADATA +#include "pycore_opcode_metadata.h" // OPCODE_HAS_ARG, etc #include @@ -23,35 +21,96 @@ #define DEFAULT_BLOCK_SIZE 16 -typedef _PyCompilerSrcLocation location; -typedef _PyCfgJumpTargetLabel jump_target_label; -typedef _PyCfgBasicblock basicblock; -typedef _PyCfgBuilder cfg_builder; -typedef _PyCfgInstruction cfg_instr; +typedef _Py_SourceLocation location; +typedef _PyJumpTargetLabel jump_target_label; + +typedef struct _PyCfgInstruction { + int i_opcode; + int i_oparg; + _Py_SourceLocation i_loc; + struct _PyCfgBasicblock *i_target; /* target block (if jump instruction) */ + struct _PyCfgBasicblock *i_except; /* target block when exception is raised */ +} cfg_instr; + +typedef struct _PyCfgBasicblock { + /* Each basicblock in a compilation unit is linked via b_list in the + reverse order that the block are allocated. b_list points to the next + block in this list, not to be confused with b_next, which is next by + control flow. */ + struct _PyCfgBasicblock *b_list; + /* The label of this block if it is a jump target, -1 otherwise */ + _PyJumpTargetLabel b_label; + /* Exception stack at start of block, used by assembler to create the exception handling table */ + struct _PyCfgExceptStack *b_exceptstack; + /* pointer to an array of instructions, initially NULL */ + cfg_instr *b_instr; + /* If b_next is non-NULL, it is a pointer to the next + block reached by normal control flow. */ + struct _PyCfgBasicblock *b_next; + /* number of instructions used */ + int b_iused; + /* length of instruction array (b_instr) */ + int b_ialloc; + /* Used by add_checks_for_loads_of_unknown_variables */ + uint64_t b_unsafe_locals_mask; + /* Number of predecessors that a block has. */ + int b_predecessors; + /* depth of stack upon entry of block, computed by stackdepth() */ + int b_startdepth; + /* Basic block is an exception handler that preserves lasti */ + unsigned b_preserve_lasti : 1; + /* Used by compiler passes to mark whether they have visited a basic block. */ + unsigned b_visited : 1; + /* b_except_handler is used by the cold-detection algorithm to mark exception targets */ + unsigned b_except_handler : 1; + /* b_cold is true if this block is not perf critical (like an exception handler) */ + unsigned b_cold : 1; + /* b_warm is used by the cold-detection algorithm to mark blocks which are definitely not cold */ + unsigned b_warm : 1; +} basicblock; + + +struct _PyCfgBuilder { + /* The entryblock, at which control flow begins. All blocks of the + CFG are reachable through the b_next links */ + struct _PyCfgBasicblock *g_entryblock; + /* Pointer to the most recently allocated block. By following + b_list links, you can reach all allocated blocks. */ + struct _PyCfgBasicblock *g_block_list; + /* pointer to the block currently being constructed */ + struct _PyCfgBasicblock *g_curblock; + /* label for the next instruction to be placed */ + _PyJumpTargetLabel g_current_label; +}; + +typedef struct _PyCfgBuilder cfg_builder; static const jump_target_label NO_LABEL = {-1}; #define SAME_LABEL(L1, L2) ((L1).id == (L2).id) #define IS_LABEL(L) (!SAME_LABEL((L), (NO_LABEL))) +#define LOCATION(LNO, END_LNO, COL, END_COL) \ + ((const _Py_SourceLocation){(LNO), (END_LNO), (COL), (END_COL)}) static inline int is_block_push(cfg_instr *i) { + assert(OPCODE_HAS_ARG(i->i_opcode) || !IS_BLOCK_PUSH_OPCODE(i->i_opcode)); return IS_BLOCK_PUSH_OPCODE(i->i_opcode); } static inline int is_jump(cfg_instr *i) { - return IS_JUMP_OPCODE(i->i_opcode); + return OPCODE_HAS_JUMP(i->i_opcode); } /* One arg*/ #define INSTR_SET_OP1(I, OP, ARG) \ do { \ - assert(HAS_ARG(OP)); \ - _PyCfgInstruction *_instr__ptr_ = (I); \ + assert(OPCODE_HAS_ARG(OP)); \ + cfg_instr *_instr__ptr_ = (I); \ _instr__ptr_->i_opcode = (OP); \ _instr__ptr_->i_oparg = (ARG); \ } while (0); @@ -59,8 +118,8 @@ is_jump(cfg_instr *i) /* No args*/ #define INSTR_SET_OP0(I, OP) \ do { \ - assert(!HAS_ARG(OP)); \ - _PyCfgInstruction *_instr__ptr_ = (I); \ + assert(!OPCODE_HAS_ARG(OP)); \ + cfg_instr *_instr__ptr_ = (I); \ _instr__ptr_->i_opcode = (OP); \ _instr__ptr_->i_oparg = 0; \ } while (0); @@ -85,6 +144,16 @@ basicblock_next_instr(basicblock *b) return b->b_iused++; } +static cfg_instr * +basicblock_last_instr(const basicblock *b) { + assert(b->b_iused >= 0); + if (b->b_iused > 0) { + assert(b->b_instr != NULL); + return &b->b_instr[b->b_iused - 1]; + } + return NULL; +} + /* Allocate a new block and return a pointer to it. Returns NULL on error. */ @@ -92,7 +161,7 @@ basicblock_next_instr(basicblock *b) static basicblock * cfg_builder_new_block(cfg_builder *g) { - basicblock *b = (basicblock *)PyObject_Calloc(1, sizeof(basicblock)); + basicblock *b = (basicblock *)PyMem_Calloc(1, sizeof(basicblock)); if (b == NULL) { PyErr_NoMemory(); return NULL; @@ -109,7 +178,7 @@ basicblock_addop(basicblock *b, int opcode, int oparg, location loc) { assert(IS_WITHIN_OPCODE_RANGE(opcode)); assert(!IS_ASSEMBLER_OPCODE(opcode)); - assert(HAS_ARG(opcode) || HAS_TARGET(opcode) || oparg == 0); + assert(OPCODE_HAS_ARG(opcode) || HAS_TARGET(opcode) || oparg == 0); assert(0 <= oparg && oparg < (1 << 30)); int off = basicblock_next_instr(b); @@ -125,19 +194,46 @@ basicblock_addop(basicblock *b, int opcode, int oparg, location loc) return SUCCESS; } +static int +basicblock_add_jump(basicblock *b, int opcode, basicblock *target, location loc) +{ + cfg_instr *last = basicblock_last_instr(b); + if (last && is_jump(last)) { + return ERROR; + } + + RETURN_IF_ERROR( + basicblock_addop(b, opcode, target->b_label.id, loc)); + last = basicblock_last_instr(b); + assert(last && last->i_opcode == opcode); + last->i_target = target; + return SUCCESS; +} + static inline int -basicblock_append_instructions(basicblock *target, basicblock *source) +basicblock_append_instructions(basicblock *to, basicblock *from) { - for (int i = 0; i < source->b_iused; i++) { - int n = basicblock_next_instr(target); + for (int i = 0; i < from->b_iused; i++) { + int n = basicblock_next_instr(to); if (n < 0) { return ERROR; } - target->b_instr[n] = source->b_instr[i]; + to->b_instr[n] = from->b_instr[i]; } return SUCCESS; } +static inline int +basicblock_nofallthrough(const basicblock *b) { + cfg_instr *last = basicblock_last_instr(b); + return (last && + (IS_SCOPE_EXIT_OPCODE(last->i_opcode) || + IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode))); +} + +#define BB_NO_FALLTHROUGH(B) (basicblock_nofallthrough(B)) +#define BB_HAS_FALLTHROUGH(B) (!basicblock_nofallthrough(B)) + static basicblock * copy_basicblock(cfg_builder *g, basicblock *block) { @@ -155,8 +251,8 @@ copy_basicblock(cfg_builder *g, basicblock *block) return result; } -int -_PyBasicblock_InsertInstruction(basicblock *block, int pos, cfg_instr *instr) { +static int +basicblock_insert_instruction(basicblock *block, int pos, cfg_instr *instr) { RETURN_IF_ERROR(basicblock_next_instr(block)); for (int i = block->b_iused - 1; i > pos; i--) { block->b_instr[i] = block->b_instr[i-1]; @@ -165,22 +261,6 @@ _PyBasicblock_InsertInstruction(basicblock *block, int pos, cfg_instr *instr) { return SUCCESS; } -static int -instr_size(cfg_instr *instruction) -{ - return _PyCompile_InstrSize(instruction->i_opcode, instruction->i_oparg); -} - -static int -blocksize(basicblock *b) -{ - int size = 0; - for (int i = 0; i < b->b_iused; i++) { - size += instr_size(&b->b_instr[i]); - } - return size; -} - /* For debugging purposes only */ #if 0 static void @@ -191,19 +271,19 @@ dump_instr(cfg_instr *i) char arg[128]; *arg = '\0'; - if (HAS_ARG(i->i_opcode)) { + if (OPCODE_HAS_ARG(i->i_opcode)) { sprintf(arg, "arg: %d ", i->i_oparg); } if (HAS_TARGET(i->i_opcode)) { sprintf(arg, "target: %p [%d] ", i->i_target, i->i_oparg); } - fprintf(stderr, "line: %d, opcode: %d %s%s\n", - i->i_loc.lineno, i->i_opcode, arg, jump); + fprintf(stderr, "line: %d, %s (%d) %s%s\n", + i->i_loc.lineno, _PyOpcode_OpName[i->i_opcode], i->i_opcode, arg, jump); } static inline int basicblock_returns(const basicblock *b) { - cfg_instr *last = _PyCfg_BasicblockLastInstr(b); + cfg_instr *last = basicblock_last_instr(b); return last && (last->i_opcode == RETURN_VALUE || last->i_opcode == RETURN_CONST); } @@ -211,9 +291,9 @@ static void dump_basicblock(const basicblock *b) { const char *b_return = basicblock_returns(b) ? "return " : ""; - fprintf(stderr, "%d: [EH=%d CLD=%d WRM=%d NO_FT=%d %p] used: %d, depth: %d, offset: %d %s\n", + fprintf(stderr, "%d: [EH=%d CLD=%d WRM=%d NO_FT=%d %p] used: %d, depth: %d, preds: %d %s\n", b->b_label.id, b->b_except_handler, b->b_cold, b->b_warm, BB_NO_FALLTHROUGH(b), b, b->b_iused, - b->b_startdepth, b->b_offset, b_return); + b->b_startdepth, b->b_predecessors, b_return); if (b->b_instr) { int i; for (i = 0; i < b->b_iused; i++) { @@ -245,26 +325,26 @@ cfg_builder_use_next_block(cfg_builder *g, basicblock *block) return block; } -cfg_instr * -_PyCfg_BasicblockLastInstr(const basicblock *b) { - assert(b->b_iused >= 0); - if (b->b_iused > 0) { - assert(b->b_instr != NULL); - return &b->b_instr[b->b_iused - 1]; - } - return NULL; -} - static inline int basicblock_exits_scope(const basicblock *b) { - cfg_instr *last = _PyCfg_BasicblockLastInstr(b); + cfg_instr *last = basicblock_last_instr(b); return last && IS_SCOPE_EXIT_OPCODE(last->i_opcode); } +static inline int +basicblock_has_eval_break(const basicblock *b) { + for (int i = 0; i < b->b_iused; i++) { + if (OPCODE_HAS_EVAL_BREAK(b->b_instr[i].i_opcode)) { + return true; + } + } + return false; +} + static bool cfg_builder_current_block_is_terminated(cfg_builder *g) { - cfg_instr *last = _PyCfg_BasicblockLastInstr(g->g_curblock); + cfg_instr *last = basicblock_last_instr(g->g_curblock); if (last && IS_TERMINATOR_OPCODE(last->i_opcode)) { return true; } @@ -317,8 +397,8 @@ cfg_builder_check(cfg_builder *g) } #endif -int -_PyCfgBuilder_Init(cfg_builder *g) +static int +init_cfg_builder(cfg_builder *g) { g->g_block_list = NULL; basicblock *block = cfg_builder_new_block(g); @@ -330,19 +410,53 @@ _PyCfgBuilder_Init(cfg_builder *g) return SUCCESS; } +cfg_builder * +_PyCfgBuilder_New(void) +{ + cfg_builder *g = PyMem_Malloc(sizeof(cfg_builder)); + if (g == NULL) { + PyErr_NoMemory(); + return NULL; + } + memset(g, 0, sizeof(cfg_builder)); + if (init_cfg_builder(g) < 0) { + PyMem_Free(g); + return NULL; + } + return g; +} + void -_PyCfgBuilder_Fini(cfg_builder* g) +_PyCfgBuilder_Free(cfg_builder *g) { + if (g == NULL) { + return; + } assert(cfg_builder_check(g)); basicblock *b = g->g_block_list; while (b != NULL) { if (b->b_instr) { - PyObject_Free((void *)b->b_instr); + PyMem_Free((void *)b->b_instr); } basicblock *next = b->b_list; - PyObject_Free((void *)b); + PyMem_Free((void *)b); b = next; } + PyMem_Free(g); +} + +int +_PyCfgBuilder_CheckSize(cfg_builder *g) +{ + int nblocks = 0; + for (basicblock *b = g->g_block_list; b != NULL; b = b->b_list) { + nblocks++; + } + if ((size_t)nblocks > SIZE_MAX / sizeof(basicblock *)) { + PyErr_NoMemory(); + return ERROR; + } + return SUCCESS; } int @@ -360,29 +474,24 @@ _PyCfgBuilder_Addop(cfg_builder *g, int opcode, int oparg, location loc) } +static basicblock * +next_nonempty_block(basicblock *b) +{ + while (b && b->b_iused == 0) { + b = b->b_next; + } + return b; +} + /***** debugging helpers *****/ #ifndef NDEBUG -static int remove_redundant_nops(basicblock *bb); +static int remove_redundant_nops(cfg_builder *g); -/* static bool no_redundant_nops(cfg_builder *g) { - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - if (remove_redundant_nops(b) != 0) { - return false; - } - } - return true; -} -*/ - -static bool -no_empty_basic_blocks(cfg_builder *g) { - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - if (b->b_iused == 0) { - return false; - } + if (remove_redundant_nops(g) != 0) { + return false; } return true; } @@ -390,12 +499,17 @@ no_empty_basic_blocks(cfg_builder *g) { static bool no_redundant_jumps(cfg_builder *g) { for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - cfg_instr *last = _PyCfg_BasicblockLastInstr(b); + cfg_instr *last = basicblock_last_instr(b); if (last != NULL) { if (IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode)) { - assert(last->i_target != b->b_next); - if (last->i_target == b->b_next) { - return false; + basicblock *next = next_nonempty_block(b->b_next); + basicblock *jump_target = next_nonempty_block(last->i_target); + if (jump_target == next) { + assert(next); + if (last->i_loc.lineno == next->b_instr[0].i_loc.lineno) { + assert(0); + return false; + } } } } @@ -409,21 +523,18 @@ no_redundant_jumps(cfg_builder *g) { static int normalize_jumps_in_block(cfg_builder *g, basicblock *b) { - cfg_instr *last = _PyCfg_BasicblockLastInstr(b); - if (last == NULL || !is_jump(last)) { + cfg_instr *last = basicblock_last_instr(b); + if (last == NULL || !is_jump(last) || + IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode)) { return SUCCESS; } assert(!IS_ASSEMBLER_OPCODE(last->i_opcode)); + bool is_forward = last->i_target->b_visited == 0; - switch(last->i_opcode) { - case JUMP: - last->i_opcode = is_forward ? JUMP_FORWARD : JUMP_BACKWARD; - return SUCCESS; - case JUMP_NO_INTERRUPT: - last->i_opcode = is_forward ? - JUMP_FORWARD : JUMP_BACKWARD_NO_INTERRUPT; - return SUCCESS; + if (is_forward) { + return SUCCESS; } + int reversed_opcode = 0; switch(last->i_opcode) { case POP_JUMP_IF_NOT_NONE: @@ -439,9 +550,6 @@ normalize_jumps_in_block(cfg_builder *g, basicblock *b) { reversed_opcode = POP_JUMP_IF_FALSE; break; } - if (is_forward) { - return SUCCESS; - } /* transform 'conditional jump T' to * 'reversed_jump b_next' followed by 'jump_backwards T' */ @@ -451,8 +559,8 @@ normalize_jumps_in_block(cfg_builder *g, basicblock *b) { if (backwards_jump == NULL) { return ERROR; } - basicblock_addop(backwards_jump, JUMP, target->b_label.id, last->i_loc); - backwards_jump->b_instr[0].i_target = target; + RETURN_IF_ERROR( + basicblock_add_jump(backwards_jump, JUMP, target, last->i_loc)); last->i_opcode = reversed_opcode; last->i_target = b->b_next; @@ -464,7 +572,7 @@ normalize_jumps_in_block(cfg_builder *g, basicblock *b) { static int -normalize_jumps(_PyCfgBuilder *g) +normalize_jumps(cfg_builder *g) { basicblock *entryblock = g->g_entryblock; for (basicblock *b = entryblock; b != NULL; b = b->b_next) { @@ -477,74 +585,6 @@ normalize_jumps(_PyCfgBuilder *g) return SUCCESS; } -static void -resolve_jump_offsets(basicblock *entryblock) -{ - int bsize, totsize, extended_arg_recompile; - - /* Compute the size of each block and fixup jump args. - Replace block pointer with position in bytecode. */ - do { - totsize = 0; - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - bsize = blocksize(b); - b->b_offset = totsize; - totsize += bsize; - } - extended_arg_recompile = 0; - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - bsize = b->b_offset; - for (int i = 0; i < b->b_iused; i++) { - cfg_instr *instr = &b->b_instr[i]; - int isize = instr_size(instr); - /* jump offsets are computed relative to - * the instruction pointer after fetching - * the jump instruction. - */ - bsize += isize; - if (is_jump(instr)) { - instr->i_oparg = instr->i_target->b_offset; - if (instr->i_oparg < bsize) { - assert(IS_BACKWARDS_JUMP_OPCODE(instr->i_opcode)); - instr->i_oparg = bsize - instr->i_oparg; - } - else { - assert(!IS_BACKWARDS_JUMP_OPCODE(instr->i_opcode)); - instr->i_oparg -= bsize; - } - if (instr_size(instr) != isize) { - extended_arg_recompile = 1; - } - } - } - } - - /* XXX: This is an awful hack that could hurt performance, but - on the bright side it should work until we come up - with a better solution. - - The issue is that in the first loop blocksize() is called - which calls instr_size() which requires i_oparg be set - appropriately. There is a bootstrap problem because - i_oparg is calculated in the second loop above. - - So we loop until we stop seeing new EXTENDED_ARGs. - The only EXTENDED_ARGs that could be popping up are - ones in jump instructions. So this should converge - fairly quickly. - */ - } while (extended_arg_recompile); -} - -int -_PyCfg_ResolveJumps(_PyCfgBuilder *g) -{ - RETURN_IF_ERROR(normalize_jumps(g)); - assert(no_redundant_jumps(g)); - resolve_jump_offsets(g->g_entryblock); - return SUCCESS; -} - static int check_cfg(cfg_builder *g) { for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { @@ -609,12 +649,6 @@ translate_jump_labels_to_targets(basicblock *entryblock) return SUCCESS; } -int -_PyCfg_JumpLabelsToTargets(basicblock *entryblock) -{ - return translate_jump_labels_to_targets(entryblock); -} - static int mark_except_handlers(basicblock *entryblock) { #ifndef NDEBUG @@ -634,10 +668,14 @@ mark_except_handlers(basicblock *entryblock) { } -typedef _PyCfgExceptStack ExceptStack; +struct _PyCfgExceptStack { + basicblock *handlers[CO_MAXBLOCKS+2]; + int depth; +}; + static basicblock * -push_except_block(ExceptStack *stack, cfg_instr *setup) { +push_except_block(struct _PyCfgExceptStack *stack, cfg_instr *setup) { assert(is_block_push(setup)); int opcode = setup->i_opcode; basicblock * target = setup->i_target; @@ -650,19 +688,19 @@ push_except_block(ExceptStack *stack, cfg_instr *setup) { } static basicblock * -pop_except_block(ExceptStack *stack) { +pop_except_block(struct _PyCfgExceptStack *stack) { assert(stack->depth > 0); return stack->handlers[--stack->depth]; } static basicblock * -except_stack_top(ExceptStack *stack) { +except_stack_top(struct _PyCfgExceptStack *stack) { return stack->handlers[stack->depth]; } -static ExceptStack * +static struct _PyCfgExceptStack * make_except_stack(void) { - ExceptStack *new = PyMem_Malloc(sizeof(ExceptStack)); + struct _PyCfgExceptStack *new = PyMem_Malloc(sizeof(struct _PyCfgExceptStack)); if (new == NULL) { PyErr_NoMemory(); return NULL; @@ -672,14 +710,14 @@ make_except_stack(void) { return new; } -static ExceptStack * -copy_except_stack(ExceptStack *stack) { - ExceptStack *copy = PyMem_Malloc(sizeof(ExceptStack)); +static struct _PyCfgExceptStack * +copy_except_stack(struct _PyCfgExceptStack *stack) { + struct _PyCfgExceptStack *copy = PyMem_Malloc(sizeof(struct _PyCfgExceptStack)); if (copy == NULL) { PyErr_NoMemory(); return NULL; } - memcpy(copy, stack, sizeof(ExceptStack)); + memcpy(copy, stack, sizeof(struct _PyCfgExceptStack)); return copy; } @@ -697,23 +735,28 @@ make_cfg_traversal_stack(basicblock *entryblock) { return stack; } -Py_LOCAL_INLINE(void) +Py_LOCAL_INLINE(int) stackdepth_push(basicblock ***sp, basicblock *b, int depth) { - assert(b->b_startdepth < 0 || b->b_startdepth == depth); + if (!(b->b_startdepth < 0 || b->b_startdepth == depth)) { + PyErr_Format(PyExc_ValueError, "Invalid CFG, inconsistent stackdepth"); + return ERROR; + } if (b->b_startdepth < depth && b->b_startdepth < 100) { assert(b->b_startdepth < 0); b->b_startdepth = depth; *(*sp)++ = b; } + return SUCCESS; } /* Find the flow path that needs the largest stack. We assume that * cycles in the flow graph have no net effect on the stack depth. */ -int -_PyCfg_Stackdepth(basicblock *entryblock, int code_flags) +static int +calculate_stackdepth(cfg_builder *g) { + basicblock *entryblock = g->g_entryblock; for (basicblock *b = entryblock; b != NULL; b = b->b_next) { b->b_startdepth = INT_MIN; } @@ -722,14 +765,13 @@ _PyCfg_Stackdepth(basicblock *entryblock, int code_flags) return ERROR; } + + int stackdepth = -1; int maxdepth = 0; basicblock **sp = stack; - if (code_flags & (CO_GENERATOR | CO_COROUTINE | CO_ASYNC_GENERATOR)) { - stackdepth_push(&sp, entryblock, 1); - } else { - stackdepth_push(&sp, entryblock, 0); + if (stackdepth_push(&sp, entryblock, 0) < 0) { + goto error; } - while (sp != stack) { basicblock *b = *--sp; int depth = b->b_startdepth; @@ -737,27 +779,40 @@ _PyCfg_Stackdepth(basicblock *entryblock, int code_flags) basicblock *next = b->b_next; for (int i = 0; i < b->b_iused; i++) { cfg_instr *instr = &b->b_instr[i]; - int effect = PyCompile_OpcodeStackEffectWithJump(instr->i_opcode, instr->i_oparg, 0); + int effect = PyCompile_OpcodeStackEffectWithJump( + instr->i_opcode, instr->i_oparg, 0); if (effect == PY_INVALID_STACK_EFFECT) { PyErr_Format(PyExc_SystemError, - "compiler PyCompile_OpcodeStackEffectWithJump(opcode=%d, arg=%i) failed", + "Invalid stack effect for opcode=%d, arg=%i", instr->i_opcode, instr->i_oparg); - return ERROR; + goto error; } int new_depth = depth + effect; - assert(new_depth >= 0); /* invalid code or bug in stackdepth() */ + if (new_depth < 0) { + PyErr_Format(PyExc_ValueError, + "Invalid CFG, stack underflow"); + goto error; + } if (new_depth > maxdepth) { maxdepth = new_depth; } if (HAS_TARGET(instr->i_opcode)) { - effect = PyCompile_OpcodeStackEffectWithJump(instr->i_opcode, instr->i_oparg, 1); - assert(effect != PY_INVALID_STACK_EFFECT); + effect = PyCompile_OpcodeStackEffectWithJump( + instr->i_opcode, instr->i_oparg, 1); + if (effect == PY_INVALID_STACK_EFFECT) { + PyErr_Format(PyExc_SystemError, + "Invalid stack effect for opcode=%d, arg=%i", + instr->i_opcode, instr->i_oparg); + goto error; + } int target_depth = depth + effect; assert(target_depth >= 0); /* invalid code or bug in stackdepth() */ if (target_depth > maxdepth) { maxdepth = target_depth; } - stackdepth_push(&sp, instr->i_target, target_depth); + if (stackdepth_push(&sp, instr->i_target, target_depth) < 0) { + goto error; + } } depth = new_depth; assert(!IS_ASSEMBLER_OPCODE(instr->i_opcode)); @@ -771,11 +826,15 @@ _PyCfg_Stackdepth(basicblock *entryblock, int code_flags) } if (next != NULL) { assert(BB_HAS_FALLTHROUGH(b)); - stackdepth_push(&sp, next, depth); + if (stackdepth_push(&sp, next, depth) < 0) { + goto error; + } } } + stackdepth = maxdepth; +error: PyMem_Free(stack); - return maxdepth; + return stackdepth; } static int @@ -784,7 +843,7 @@ label_exception_targets(basicblock *entryblock) { if (todo_stack == NULL) { return ERROR; } - ExceptStack *except_stack = make_except_stack(); + struct _PyCfgExceptStack *except_stack = make_except_stack(); if (except_stack == NULL) { PyMem_Free(todo_stack); PyErr_NoMemory(); @@ -804,11 +863,12 @@ label_exception_targets(basicblock *entryblock) { assert(except_stack != NULL); b->b_exceptstack = NULL; handler = except_stack_top(except_stack); + int last_yield_except_depth = -1; for (int i = 0; i < b->b_iused; i++) { cfg_instr *instr = &b->b_instr[i]; if (is_block_push(instr)) { if (!instr->i_target->b_visited) { - ExceptStack *copy = copy_except_stack(except_stack); + struct _PyCfgExceptStack *copy = copy_except_stack(except_stack); if (copy == NULL) { goto error; } @@ -821,13 +881,14 @@ label_exception_targets(basicblock *entryblock) { } else if (instr->i_opcode == POP_BLOCK) { handler = pop_except_block(except_stack); + INSTR_SET_OP0(instr, NOP); } else if (is_jump(instr)) { instr->i_except = handler; assert(i == b->b_iused -1); if (!instr->i_target->b_visited) { if (BB_HAS_FALLTHROUGH(b)) { - ExceptStack *copy = copy_except_stack(except_stack); + struct _PyCfgExceptStack *copy = copy_except_stack(except_stack); if (copy == NULL) { goto error; } @@ -842,10 +903,21 @@ label_exception_targets(basicblock *entryblock) { todo++; } } - else { - if (instr->i_opcode == YIELD_VALUE) { - instr->i_oparg = except_stack->depth; + else if (instr->i_opcode == YIELD_VALUE) { + instr->i_except = handler; + last_yield_except_depth = except_stack->depth; + } + else if (instr->i_opcode == RESUME) { + instr->i_except = handler; + if (instr->i_oparg != RESUME_AT_FUNC_START) { + assert(last_yield_except_depth >= 0); + if (last_yield_except_depth == 1) { + instr->i_oparg |= RESUME_OPARG_DEPTH1_MASK; + } + last_yield_except_depth = -1; } + } + else { instr->i_except = handler; } } @@ -876,7 +948,10 @@ error: /***** CFG optimizations *****/ static int -mark_reachable(basicblock *entryblock) { +remove_unreachable(basicblock *entryblock) { + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + b->b_predecessors = 0; + } basicblock **stack = make_cfg_traversal_stack(entryblock); if (stack == NULL) { return ERROR; @@ -884,13 +959,14 @@ mark_reachable(basicblock *entryblock) { basicblock **sp = stack; entryblock->b_predecessors = 1; *sp++ = entryblock; + entryblock->b_visited = 1; while (sp > stack) { basicblock *b = *(--sp); - b->b_visited = 1; if (b->b_next && BB_HAS_FALLTHROUGH(b)) { if (!b->b_next->b_visited) { assert(b->b_next->b_predecessors == 0); *sp++ = b->b_next; + b->b_next->b_visited = 1; } b->b_next->b_predecessors++; } @@ -900,55 +976,27 @@ mark_reachable(basicblock *entryblock) { if (is_jump(instr) || is_block_push(instr)) { target = instr->i_target; if (!target->b_visited) { - assert(target->b_predecessors == 0 || target == b->b_next); *sp++ = target; + target->b_visited = 1; } target->b_predecessors++; } } } PyMem_Free(stack); - return SUCCESS; -} -static void -eliminate_empty_basic_blocks(cfg_builder *g) { - /* Eliminate empty blocks */ - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - basicblock *next = b->b_next; - while (next && next->b_iused == 0) { - next = next->b_next; - } - b->b_next = next; - } - while(g->g_entryblock && g->g_entryblock->b_iused == 0) { - g->g_entryblock = g->g_entryblock->b_next; - } - int next_lbl = get_max_label(g->g_entryblock) + 1; - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - assert(b->b_iused > 0); - for (int i = 0; i < b->b_iused; i++) { - cfg_instr *instr = &b->b_instr[i]; - if (HAS_TARGET(instr->i_opcode)) { - basicblock *target = instr->i_target; - while (target->b_iused == 0) { - target = target->b_next; - } - if (instr->i_target != target) { - if (!IS_LABEL(target->b_label)) { - target->b_label.id = next_lbl++; - } - instr->i_target = target; - instr->i_oparg = target->b_label.id; - } - assert(instr->i_target && instr->i_target->b_iused > 0); - } - } + /* Delete unreachable instructions */ + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + if (b->b_predecessors == 0) { + b->b_iused = 0; + b->b_except_handler = 0; + } } + return SUCCESS; } static int -remove_redundant_nops(basicblock *bb) { +basicblock_remove_redundant_nops(basicblock *bb) { /* Remove NOPs when legal to do so. */ int dest = 0; int prev_lineno = -1; @@ -975,10 +1023,7 @@ remove_redundant_nops(basicblock *bb) { } } else { - basicblock* next = bb->b_next; - while (next && next->b_iused == 0) { - next = next->b_next; - } + basicblock *next = next_nonempty_block(bb->b_next); /* or if last instruction in BB and next BB has same line number */ if (next) { location next_loc = NO_LOCATION; @@ -1010,6 +1055,17 @@ remove_redundant_nops(basicblock *bb) { return num_removed; } +static int +remove_redundant_nops(cfg_builder *g) { + int changes = 0; + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + int change = basicblock_remove_redundant_nops(b); + RETURN_IF_ERROR(change); + changes += change; + } + return changes; +} + static int remove_redundant_nops_and_pairs(basicblock *entryblock) { @@ -1020,7 +1076,7 @@ remove_redundant_nops_and_pairs(basicblock *entryblock) cfg_instr *prev_instr = NULL; cfg_instr *instr = NULL; for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - remove_redundant_nops(b); + RETURN_IF_ERROR(basicblock_remove_redundant_nops(b)); if (IS_LABEL(b->b_label)) { /* this block is a jump target, forget instr */ instr = NULL; @@ -1060,36 +1116,55 @@ remove_redundant_jumps(cfg_builder *g) { * non-empty block reached through normal flow control is the target * of that jump. If it is, then the jump instruction is redundant and * can be deleted. + * + * Return the number of changes applied, or -1 on error. */ - assert(no_empty_basic_blocks(g)); + + int changes = 0; for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - cfg_instr *last = _PyCfg_BasicblockLastInstr(b); - assert(last != NULL); + cfg_instr *last = basicblock_last_instr(b); + if (last == NULL) { + continue; + } assert(!IS_ASSEMBLER_OPCODE(last->i_opcode)); if (IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode)) { - if (last->i_target == NULL) { + basicblock* jump_target = next_nonempty_block(last->i_target); + if (jump_target == NULL) { PyErr_SetString(PyExc_SystemError, "jump with NULL target"); return ERROR; } - if (last->i_target == b->b_next) { - assert(b->b_next->b_iused); + basicblock *next = next_nonempty_block(b->b_next); + if (jump_target == next) { + changes++; INSTR_SET_OP0(last, NOP); } } } - return SUCCESS; + + return changes; +} + +static inline bool +basicblock_has_no_lineno(basicblock *b) { + for (int i = 0; i < b->b_iused; i++) { + if (b->b_instr[i].i_loc.lineno >= 0) { + return false; + } + } + return true; } /* Maximum size of basic block that should be copied in optimizer */ #define MAX_COPY_SIZE 4 -/* If this block ends with an unconditional jump to a small exit block, then +/* If this block ends with an unconditional jump to a small exit block or + * a block that has no line numbers (and no fallthrough), then * remove the jump and extend this block with the target. * Returns 1 if extended, 0 if no change, and -1 on error. */ static int -inline_small_exit_blocks(basicblock *bb) { - cfg_instr *last = _PyCfg_BasicblockLastInstr(bb); +basicblock_inline_small_or_no_lineno_blocks(basicblock *bb) { + cfg_instr *last = basicblock_last_instr(bb); if (last == NULL) { return 0; } @@ -1097,29 +1172,67 @@ inline_small_exit_blocks(basicblock *bb) { return 0; } basicblock *target = last->i_target; - if (basicblock_exits_scope(target) && target->b_iused <= MAX_COPY_SIZE) { + bool small_exit_block = (basicblock_exits_scope(target) && + target->b_iused <= MAX_COPY_SIZE); + bool no_lineno_no_fallthrough = (basicblock_has_no_lineno(target) && + !BB_HAS_FALLTHROUGH(target)); + if (small_exit_block || no_lineno_no_fallthrough) { + assert(is_jump(last)); + int removed_jump_opcode = last->i_opcode; INSTR_SET_OP0(last, NOP); RETURN_IF_ERROR(basicblock_append_instructions(bb, target)); + if (no_lineno_no_fallthrough) { + last = basicblock_last_instr(bb); + if (IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode) && + removed_jump_opcode == JUMP) + { + /* Make sure we don't lose eval breaker checks */ + last->i_opcode = JUMP; + } + } + target->b_predecessors--; return 1; } return 0; } +static int +inline_small_or_no_lineno_blocks(basicblock *entryblock) { + bool changes; + do { + changes = false; + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + int res = basicblock_inline_small_or_no_lineno_blocks(b); + RETURN_IF_ERROR(res); + if (res) { + changes = true; + } + } + } while(changes); /* every change removes a jump, ensuring convergence */ + return changes; +} + // Attempt to eliminate jumps to jumps by updating inst to jump to // target->i_target using the provided opcode. Return whether or not the // optimization was successful. static bool -jump_thread(cfg_instr *inst, cfg_instr *target, int opcode) +jump_thread(basicblock *bb, cfg_instr *inst, cfg_instr *target, int opcode) { assert(is_jump(inst)); assert(is_jump(target)); + assert(inst == basicblock_last_instr(bb)); // bpo-45773: If inst->i_target == target->i_target, then nothing actually // changes (and we fall into an infinite loop): - if ((inst->i_loc.lineno == target->i_loc.lineno || target->i_loc.lineno == -1) && - inst->i_target != target->i_target) - { - inst->i_target = target->i_target; - inst->i_opcode = opcode; + if (inst->i_target != target->i_target) { + /* Change inst to NOP and append a jump to target->i_target. The + * NOP will be removed later if it's not needed for the lineno. + */ + INSTR_SET_OP0(inst, NOP); + + RETURN_IF_ERROR( + basicblock_add_jump( + bb, opcode, target->i_target, target->i_loc)); + return true; } return false; @@ -1129,7 +1242,7 @@ static PyObject* get_const_value(int opcode, int oparg, PyObject *co_consts) { PyObject *constant = NULL; - assert(HAS_CONST(opcode)); + assert(OPCODE_HAS_CONST(opcode)); if (opcode == LOAD_CONST) { constant = PyList_GET_ITEM(co_consts, oparg); } @@ -1142,6 +1255,36 @@ get_const_value(int opcode, int oparg, PyObject *co_consts) return Py_NewRef(constant); } +// Steals a reference to newconst. +static int +add_const(PyObject *newconst, PyObject *consts, PyObject *const_cache) +{ + if (_PyCompile_ConstCacheMergeOne(const_cache, &newconst) < 0) { + Py_DECREF(newconst); + return -1; + } + + Py_ssize_t index; + for (index = 0; index < PyList_GET_SIZE(consts); index++) { + if (PyList_GET_ITEM(consts, index) == newconst) { + break; + } + } + if (index == PyList_GET_SIZE(consts)) { + if ((size_t)index >= (size_t)INT_MAX - 1) { + PyErr_SetString(PyExc_OverflowError, "too many constants"); + Py_DECREF(newconst); + return -1; + } + if (PyList_Append(consts, newconst)) { + Py_DECREF(newconst); + return -1; + } + } + Py_DECREF(newconst); + return (int)index; +} + /* Replace LOAD_CONST c1, LOAD_CONST c2 ... LOAD_CONST cn, BUILD_TUPLE n with LOAD_CONST (c1, c2, ... cn). The consts table must still be in list form so that the @@ -1160,7 +1303,7 @@ fold_tuple_on_constants(PyObject *const_cache, assert(inst[n].i_oparg == n); for (int i = 0; i < n; i++) { - if (!HAS_CONST(inst[i].i_opcode)) { + if (!OPCODE_HAS_CONST(inst[i].i_opcode)) { return SUCCESS; } } @@ -1179,35 +1322,16 @@ fold_tuple_on_constants(PyObject *const_cache, } PyTuple_SET_ITEM(newconst, i, constant); } - if (_PyCompile_ConstCacheMergeOne(const_cache, &newconst) < 0) { - Py_DECREF(newconst); + int index = add_const(newconst, consts, const_cache); + if (index < 0) { return ERROR; } - - Py_ssize_t index; - for (index = 0; index < PyList_GET_SIZE(consts); index++) { - if (PyList_GET_ITEM(consts, index) == newconst) { - break; - } - } - if (index == PyList_GET_SIZE(consts)) { - if ((size_t)index >= (size_t)INT_MAX - 1) { - Py_DECREF(newconst); - PyErr_SetString(PyExc_OverflowError, "too many constants"); - return ERROR; - } - if (PyList_Append(consts, newconst)) { - Py_DECREF(newconst); - return ERROR; - } - } - Py_DECREF(newconst); - for (int i = 0; i < n; i++) { - INSTR_SET_OP0(&inst[i], NOP); - } - INSTR_SET_OP1(&inst[n], LOAD_CONST, (int)index); - return SUCCESS; -} + for (int i = 0; i < n; i++) { + INSTR_SET_OP0(&inst[i], NOP); + } + INSTR_SET_OP1(&inst[n], LOAD_CONST, index); + return SUCCESS; +} #define VISITED (-1) @@ -1401,16 +1525,12 @@ apply_static_swaps(basicblock *block, int i) } static int -optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) +basicblock_optimize_load_const(PyObject *const_cache, basicblock *bb, PyObject *consts) { assert(PyDict_CheckExact(const_cache)); assert(PyList_CheckExact(consts)); - cfg_instr nop; - INSTR_SET_OP0(&nop, NOP); - cfg_instr *target = &nop; int opcode = 0; int oparg = 0; - int nextop = 0; for (int i = 0; i < bb->b_iused; i++) { cfg_instr *inst = &bb->b_instr[i]; bool is_copy_of_load_const = (opcode == LOAD_CONST && @@ -1419,71 +1539,148 @@ optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) if (! is_copy_of_load_const) { opcode = inst->i_opcode; oparg = inst->i_oparg; - if (HAS_TARGET(opcode)) { - assert(inst->i_target->b_iused > 0); - target = &inst->i_target->b_instr[0]; - assert(!IS_ASSEMBLER_OPCODE(target->i_opcode)); - } - else { - target = &nop; - } } - nextop = i+1 < bb->b_iused ? bb->b_instr[i+1].i_opcode : 0; assert(!IS_ASSEMBLER_OPCODE(opcode)); - switch (opcode) { - /* Remove LOAD_CONST const; conditional jump */ - case LOAD_CONST: + if (opcode != LOAD_CONST) { + continue; + } + int nextop = i+1 < bb->b_iused ? bb->b_instr[i+1].i_opcode : 0; + switch(nextop) { + case POP_JUMP_IF_FALSE: + case POP_JUMP_IF_TRUE: { - PyObject* cnt; - int is_true; - int jump_if_true; - switch(nextop) { - case POP_JUMP_IF_FALSE: - case POP_JUMP_IF_TRUE: - cnt = get_const_value(opcode, oparg, consts); - if (cnt == NULL) { - goto error; - } - is_true = PyObject_IsTrue(cnt); - Py_DECREF(cnt); - if (is_true == -1) { - goto error; - } - INSTR_SET_OP0(inst, NOP); - jump_if_true = nextop == POP_JUMP_IF_TRUE; - if (is_true == jump_if_true) { - bb->b_instr[i+1].i_opcode = JUMP; - } - else { - INSTR_SET_OP0(&bb->b_instr[i + 1], NOP); - } - break; - case IS_OP: - cnt = get_const_value(opcode, oparg, consts); - if (cnt == NULL) { - goto error; - } - int jump_op = i+2 < bb->b_iused ? bb->b_instr[i+2].i_opcode : 0; - if (Py_IsNone(cnt) && (jump_op == POP_JUMP_IF_FALSE || jump_op == POP_JUMP_IF_TRUE)) { - unsigned char nextarg = bb->b_instr[i+1].i_oparg; - INSTR_SET_OP0(inst, NOP); - INSTR_SET_OP0(&bb->b_instr[i + 1], NOP); - bb->b_instr[i+2].i_opcode = nextarg ^ (jump_op == POP_JUMP_IF_FALSE) ? - POP_JUMP_IF_NOT_NONE : POP_JUMP_IF_NONE; - } - Py_DECREF(cnt); - break; - case RETURN_VALUE: - INSTR_SET_OP0(inst, NOP); - INSTR_SET_OP1(&bb->b_instr[++i], RETURN_CONST, oparg); + /* Remove LOAD_CONST const; conditional jump */ + PyObject* cnt = get_const_value(opcode, oparg, consts); + if (cnt == NULL) { + return ERROR; + } + int is_true = PyObject_IsTrue(cnt); + Py_DECREF(cnt); + if (is_true == -1) { + return ERROR; + } + INSTR_SET_OP0(inst, NOP); + int jump_if_true = nextop == POP_JUMP_IF_TRUE; + if (is_true == jump_if_true) { + bb->b_instr[i+1].i_opcode = JUMP; + } + else { + INSTR_SET_OP0(&bb->b_instr[i + 1], NOP); + } + break; + } + case IS_OP: + { + // Fold to POP_JUMP_IF_NONE: + // - LOAD_CONST(None) IS_OP(0) POP_JUMP_IF_TRUE + // - LOAD_CONST(None) IS_OP(1) POP_JUMP_IF_FALSE + // - LOAD_CONST(None) IS_OP(0) TO_BOOL POP_JUMP_IF_TRUE + // - LOAD_CONST(None) IS_OP(1) TO_BOOL POP_JUMP_IF_FALSE + // Fold to POP_JUMP_IF_NOT_NONE: + // - LOAD_CONST(None) IS_OP(0) POP_JUMP_IF_FALSE + // - LOAD_CONST(None) IS_OP(1) POP_JUMP_IF_TRUE + // - LOAD_CONST(None) IS_OP(0) TO_BOOL POP_JUMP_IF_FALSE + // - LOAD_CONST(None) IS_OP(1) TO_BOOL POP_JUMP_IF_TRUE + PyObject *cnt = get_const_value(opcode, oparg, consts); + if (cnt == NULL) { + return ERROR; + } + if (!Py_IsNone(cnt)) { + Py_DECREF(cnt); + break; + } + if (bb->b_iused <= i + 2) { + break; + } + cfg_instr *is_instr = &bb->b_instr[i + 1]; + cfg_instr *jump_instr = &bb->b_instr[i + 2]; + // Get rid of TO_BOOL regardless: + if (jump_instr->i_opcode == TO_BOOL) { + INSTR_SET_OP0(jump_instr, NOP); + if (bb->b_iused <= i + 3) { break; + } + jump_instr = &bb->b_instr[i + 3]; + } + bool invert = is_instr->i_oparg; + if (jump_instr->i_opcode == POP_JUMP_IF_FALSE) { + invert = !invert; + } + else if (jump_instr->i_opcode != POP_JUMP_IF_TRUE) { + break; + } + INSTR_SET_OP0(inst, NOP); + INSTR_SET_OP0(is_instr, NOP); + jump_instr->i_opcode = invert ? POP_JUMP_IF_NOT_NONE + : POP_JUMP_IF_NONE; + break; + } + case RETURN_VALUE: + { + INSTR_SET_OP0(inst, NOP); + INSTR_SET_OP1(&bb->b_instr[++i], RETURN_CONST, oparg); + break; + } + case TO_BOOL: + { + PyObject *cnt = get_const_value(opcode, oparg, consts); + if (cnt == NULL) { + return ERROR; } + int is_true = PyObject_IsTrue(cnt); + Py_DECREF(cnt); + if (is_true == -1) { + return ERROR; + } + cnt = PyBool_FromLong(is_true); + int index = add_const(cnt, consts, const_cache); + if (index < 0) { + return ERROR; + } + INSTR_SET_OP0(inst, NOP); + INSTR_SET_OP1(&bb->b_instr[i + 1], LOAD_CONST, index); break; } - /* Try to fold tuples of constants. - Skip over BUILD_TUPLE(1) UNPACK_SEQUENCE(1). - Replace BUILD_TUPLE(2) UNPACK_SEQUENCE(2) with SWAP(2). - Replace BUILD_TUPLE(3) UNPACK_SEQUENCE(3) with SWAP(3). */ + } + } + return SUCCESS; +} + +static int +optimize_load_const(PyObject *const_cache, cfg_builder *g, PyObject *consts) { + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + RETURN_IF_ERROR(basicblock_optimize_load_const(const_cache, b, consts)); + } + return SUCCESS; +} + +static int +optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) +{ + assert(PyDict_CheckExact(const_cache)); + assert(PyList_CheckExact(consts)); + cfg_instr nop; + INSTR_SET_OP0(&nop, NOP); + for (int i = 0; i < bb->b_iused; i++) { + cfg_instr *inst = &bb->b_instr[i]; + cfg_instr *target; + int opcode = inst->i_opcode; + int oparg = inst->i_oparg; + if (HAS_TARGET(opcode)) { + assert(inst->i_target->b_iused > 0); + target = &inst->i_target->b_instr[0]; + assert(!IS_ASSEMBLER_OPCODE(target->i_opcode)); + } + else { + target = &nop; + } + int nextop = i+1 < bb->b_iused ? bb->b_instr[i+1].i_opcode : 0; + assert(!IS_ASSEMBLER_OPCODE(opcode)); + switch (opcode) { + /* Try to fold tuples of constants. + Skip over BUILD_TUPLE(1) UNPACK_SEQUENCE(1). + Replace BUILD_TUPLE(2) UNPACK_SEQUENCE(2) with SWAP(2). + Replace BUILD_TUPLE(3) UNPACK_SEQUENCE(3) with SWAP(3). */ case BUILD_TUPLE: if (nextop == UNPACK_SEQUENCE && oparg == bb->b_instr[i+1].i_oparg) { switch(oparg) { @@ -1508,25 +1705,30 @@ optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) case POP_JUMP_IF_NONE: switch (target->i_opcode) { case JUMP: - i -= jump_thread(inst, target, inst->i_opcode); + i -= jump_thread(bb, inst, target, inst->i_opcode); } break; case POP_JUMP_IF_FALSE: switch (target->i_opcode) { case JUMP: - i -= jump_thread(inst, target, POP_JUMP_IF_FALSE); + i -= jump_thread(bb, inst, target, POP_JUMP_IF_FALSE); } break; case POP_JUMP_IF_TRUE: switch (target->i_opcode) { case JUMP: - i -= jump_thread(inst, target, POP_JUMP_IF_TRUE); + i -= jump_thread(bb, inst, target, POP_JUMP_IF_TRUE); } break; case JUMP: + case JUMP_NO_INTERRUPT: switch (target->i_opcode) { case JUMP: - i -= jump_thread(inst, target, JUMP); + i -= jump_thread(bb, inst, target, JUMP); + continue; + case JUMP_NO_INTERRUPT: + i -= jump_thread(bb, inst, target, opcode); + continue; } break; case FOR_ITER: @@ -1537,31 +1739,72 @@ optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) * of FOR_ITER. */ /* - i -= jump_thread(inst, target, FOR_ITER); + i -= jump_thread(bb, inst, target, FOR_ITER); */ } break; + case STORE_FAST: + if (opcode == nextop && + oparg == bb->b_instr[i+1].i_oparg && + bb->b_instr[i].i_loc.lineno == bb->b_instr[i+1].i_loc.lineno) { + bb->b_instr[i].i_opcode = POP_TOP; + bb->b_instr[i].i_oparg = 0; + } + break; case SWAP: if (oparg == 1) { INSTR_SET_OP0(inst, NOP); - break; } - if (swaptimize(bb, &i) < 0) { - goto error; + break; + case LOAD_GLOBAL: + if (nextop == PUSH_NULL && (oparg & 1) == 0) { + INSTR_SET_OP1(inst, LOAD_GLOBAL, oparg | 1); + INSTR_SET_OP0(&bb->b_instr[i + 1], NOP); + } + break; + case COMPARE_OP: + if (nextop == TO_BOOL) { + INSTR_SET_OP0(inst, NOP); + INSTR_SET_OP1(&bb->b_instr[i + 1], COMPARE_OP, oparg | 16); + continue; + } + break; + case CONTAINS_OP: + case IS_OP: + if (nextop == TO_BOOL) { + INSTR_SET_OP0(inst, NOP); + INSTR_SET_OP1(&bb->b_instr[i + 1], opcode, oparg); + continue; } - apply_static_swaps(bb, i); break; - case KW_NAMES: + case TO_BOOL: + if (nextop == TO_BOOL) { + INSTR_SET_OP0(inst, NOP); + continue; + } break; - case PUSH_NULL: - if (nextop == LOAD_GLOBAL && (bb->b_instr[i+1].i_oparg & 1) == 0) { + case UNARY_NOT: + if (nextop == TO_BOOL) { + INSTR_SET_OP0(inst, NOP); + INSTR_SET_OP0(&bb->b_instr[i + 1], UNARY_NOT); + continue; + } + if (nextop == UNARY_NOT) { INSTR_SET_OP0(inst, NOP); - bb->b_instr[i+1].i_oparg |= 1; + INSTR_SET_OP0(&bb->b_instr[i + 1], NOP); + continue; } break; - default: - /* All HAS_CONST opcodes should be handled with LOAD_CONST */ - assert (!HAS_CONST(inst->i_opcode)); + } + } + + for (int i = 0; i < bb->b_iused; i++) { + cfg_instr *inst = &bb->b_instr[i]; + if (inst->i_opcode == SWAP) { + if (swaptimize(bb, &i) < 0) { + goto error; + } + apply_static_swaps(bb, i); } } return SUCCESS; @@ -1569,6 +1812,23 @@ error: return ERROR; } +static int resolve_line_numbers(cfg_builder *g, int firstlineno); + +static int +remove_redundant_nops_and_jumps(cfg_builder *g) +{ + int removed_nops, removed_jumps; + do { + /* Convergence is guaranteed because the number of + * redundant jumps and nops only decreases. + */ + removed_nops = remove_redundant_nops(g); + RETURN_IF_ERROR(removed_nops); + removed_jumps = remove_redundant_jumps(g); + RETURN_IF_ERROR(removed_jumps); + } while(removed_nops + removed_jumps > 0); + return SUCCESS; +} /* Perform optimizations on a control flow graph. The consts object should still be in list form to allow new constants @@ -1578,42 +1838,70 @@ error: NOPs. Later those NOPs are removed. */ static int -optimize_cfg(cfg_builder *g, PyObject *consts, PyObject *const_cache) +optimize_cfg(cfg_builder *g, PyObject *consts, PyObject *const_cache, int firstlineno) { assert(PyDict_CheckExact(const_cache)); RETURN_IF_ERROR(check_cfg(g)); - eliminate_empty_basic_blocks(g); - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - RETURN_IF_ERROR(inline_small_exit_blocks(b)); - } - assert(no_empty_basic_blocks(g)); + RETURN_IF_ERROR(inline_small_or_no_lineno_blocks(g->g_entryblock)); + RETURN_IF_ERROR(remove_unreachable(g->g_entryblock)); + RETURN_IF_ERROR(resolve_line_numbers(g, firstlineno)); + RETURN_IF_ERROR(optimize_load_const(const_cache, g, consts)); for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { RETURN_IF_ERROR(optimize_basic_block(const_cache, b, consts)); - assert(b->b_predecessors == 0); } RETURN_IF_ERROR(remove_redundant_nops_and_pairs(g->g_entryblock)); - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - RETURN_IF_ERROR(inline_small_exit_blocks(b)); - } - RETURN_IF_ERROR(mark_reachable(g->g_entryblock)); + RETURN_IF_ERROR(remove_unreachable(g->g_entryblock)); + RETURN_IF_ERROR(remove_redundant_nops_and_jumps(g)); + assert(no_redundant_jumps(g)); + return SUCCESS; +} - /* Delete unreachable instructions */ - for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - if (b->b_predecessors == 0) { - b->b_iused = 0; - } +static void +make_super_instruction(cfg_instr *inst1, cfg_instr *inst2, int super_op) +{ + int32_t line1 = inst1->i_loc.lineno; + int32_t line2 = inst2->i_loc.lineno; + /* Skip if instructions are on different lines */ + if (line1 >= 0 && line2 >= 0 && line1 != line2) { + return; + } + if (inst1->i_oparg >= 16 || inst2->i_oparg >= 16) { + return; } + INSTR_SET_OP1(inst1, super_op, (inst1->i_oparg << 4) | inst2->i_oparg); + INSTR_SET_OP0(inst2, NOP); +} + +static int +insert_superinstructions(cfg_builder *g) +{ for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { - remove_redundant_nops(b); + + for (int i = 0; i < b->b_iused; i++) { + cfg_instr *inst = &b->b_instr[i]; + int nextop = i+1 < b->b_iused ? b->b_instr[i+1].i_opcode : 0; + switch(inst->i_opcode) { + case LOAD_FAST: + if (nextop == LOAD_FAST) { + make_super_instruction(inst, &b->b_instr[i + 1], LOAD_FAST_LOAD_FAST); + } + break; + case STORE_FAST: + switch (nextop) { + case LOAD_FAST: + make_super_instruction(inst, &b->b_instr[i + 1], STORE_FAST_LOAD_FAST); + break; + case STORE_FAST: + make_super_instruction(inst, &b->b_instr[i + 1], STORE_FAST_STORE_FAST); + break; + } + break; + } + } } - eliminate_empty_basic_blocks(g); - /* This assertion fails in an edge case (See gh-109889). - * Remove it for the release (it's just one more NOP in the - * bytecode for unlikely code). - */ - // assert(no_redundant_nops(g)); - RETURN_IF_ERROR(remove_redundant_jumps(g)); - return SUCCESS; + int res = remove_redundant_nops(g); + assert(no_redundant_nops(g)); + return res; } // helper functions for add_checks_for_loads_of_unknown_variables @@ -1643,7 +1931,6 @@ scan_block_for_locals(basicblock *b, basicblock ***sp) for (int i = 0; i < b->b_iused; i++) { cfg_instr *instr = &b->b_instr[i]; assert(instr->i_opcode != EXTENDED_ARG); - assert(!IS_SUPERINSTRUCTION_OPCODE(instr->i_opcode)); if (instr->i_except != NULL) { maybe_push(instr->i_except, unsafe_mask, sp); } @@ -1676,7 +1963,7 @@ scan_block_for_locals(basicblock *b, basicblock ***sp) if (b->b_next && BB_HAS_FALLTHROUGH(b)) { maybe_push(b->b_next, unsafe_mask, sp); } - cfg_instr *last = _PyCfg_BasicblockLastInstr(b); + cfg_instr *last = basicblock_last_instr(b); if (last && is_jump(last)) { assert(last->i_target != NULL); maybe_push(last->i_target, unsafe_mask, sp); @@ -1702,7 +1989,6 @@ fast_scan_many_locals(basicblock *entryblock, int nlocals) for (int i = 0; i < b->b_iused; i++) { cfg_instr *instr = &b->b_instr[i]; assert(instr->i_opcode != EXTENDED_ARG); - assert(!IS_SUPERINSTRUCTION_OPCODE(instr->i_opcode)); int arg = instr->i_oparg; if (arg < 64) { continue; @@ -1757,7 +2043,7 @@ remove_unused_consts(basicblock *entryblock, PyObject *consts) /* mark used consts */ for (basicblock *b = entryblock; b != NULL; b = b->b_next) { for (int i = 0; i < b->b_iused; i++) { - if (HAS_CONST(b->b_instr[i].i_opcode)) { + if (OPCODE_HAS_CONST(b->b_instr[i].i_opcode)) { int index = b->b_instr[i].i_oparg; index_map[index] = index; } @@ -1810,7 +2096,7 @@ remove_unused_consts(basicblock *entryblock, PyObject *consts) for (basicblock *b = entryblock; b != NULL; b = b->b_next) { for (int i = 0; i < b->b_iused; i++) { - if (HAS_CONST(b->b_instr[i].i_opcode)) { + if (OPCODE_HAS_CONST(b->b_instr[i].i_opcode)) { int index = b->b_instr[i].i_oparg; assert(reverse_index_map[index] >= 0); assert(reverse_index_map[index] < n_used_consts); @@ -1960,7 +2246,7 @@ mark_cold(basicblock *entryblock) { static int -push_cold_blocks_to_end(cfg_builder *g, int code_flags) { +push_cold_blocks_to_end(cfg_builder *g) { basicblock *entryblock = g->g_entryblock; if (entryblock->b_next == NULL) { /* single basicblock, no need to reorder */ @@ -1981,13 +2267,15 @@ push_cold_blocks_to_end(cfg_builder *g, int code_flags) { if (!IS_LABEL(b->b_next->b_label)) { b->b_next->b_label.id = next_lbl++; } - basicblock_addop(explicit_jump, JUMP, b->b_next->b_label.id, NO_LOCATION); + basicblock_addop(explicit_jump, JUMP_NO_INTERRUPT, b->b_next->b_label.id, + NO_LOCATION); explicit_jump->b_cold = 1; explicit_jump->b_next = b->b_next; + explicit_jump->b_predecessors = 1; b->b_next = explicit_jump; /* set target */ - cfg_instr *last = _PyCfg_BasicblockLastInstr(explicit_jump); + cfg_instr *last = basicblock_last_instr(explicit_jump); last->i_target = explicit_jump->b_next; } } @@ -2033,41 +2321,42 @@ push_cold_blocks_to_end(cfg_builder *g, int code_flags) { b->b_next = cold_blocks; if (cold_blocks != NULL) { - RETURN_IF_ERROR(remove_redundant_jumps(g)); + RETURN_IF_ERROR(remove_redundant_nops_and_jumps(g)); } return SUCCESS; } -void -_PyCfg_ConvertPseudoOps(basicblock *entryblock) +static int +convert_pseudo_ops(cfg_builder *g) { + basicblock *entryblock = g->g_entryblock; for (basicblock *b = entryblock; b != NULL; b = b->b_next) { for (int i = 0; i < b->b_iused; i++) { cfg_instr *instr = &b->b_instr[i]; - if (is_block_push(instr) || instr->i_opcode == POP_BLOCK) { + if (is_block_push(instr)) { INSTR_SET_OP0(instr, NOP); } + else if (instr->i_opcode == LOAD_CLOSURE) { + assert(is_pseudo_target(LOAD_CLOSURE, LOAD_FAST)); + instr->i_opcode = LOAD_FAST; + } else if (instr->i_opcode == STORE_FAST_MAYBE_NULL) { + assert(is_pseudo_target(STORE_FAST_MAYBE_NULL, STORE_FAST)); instr->i_opcode = STORE_FAST; } } } - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - remove_redundant_nops(b); - } + return remove_redundant_nops_and_jumps(g); } static inline bool -is_exit_without_lineno(basicblock *b) { - if (!basicblock_exits_scope(b)) { - return false; +is_exit_or_eval_check_without_lineno(basicblock *b) { + if (basicblock_exits_scope(b) || basicblock_has_eval_break(b)) { + return basicblock_has_no_lineno(b); } - for (int i = 0; i < b->b_iused; i++) { - if (b->b_instr[i].i_loc.lineno >= 0) { - return false; - } + else { + return false; } - return true; } @@ -2083,19 +2372,19 @@ is_exit_without_lineno(basicblock *b) { static int duplicate_exits_without_lineno(cfg_builder *g) { - assert(no_empty_basic_blocks(g)); - int next_lbl = get_max_label(g->g_entryblock) + 1; /* Copy all exit blocks without line number that are targets of a jump. */ basicblock *entryblock = g->g_entryblock; for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - cfg_instr *last = _PyCfg_BasicblockLastInstr(b); - assert(last != NULL); + cfg_instr *last = basicblock_last_instr(b); + if (last == NULL) { + continue; + } if (is_jump(last)) { - basicblock *target = last->i_target; - if (is_exit_without_lineno(target) && target->b_predecessors > 1) { + basicblock *target = next_nonempty_block(last->i_target); + if (is_exit_or_eval_check_without_lineno(target) && target->b_predecessors > 1) { basicblock *new_target = copy_basicblock(g, target); if (new_target == NULL) { return ERROR; @@ -2115,8 +2404,8 @@ duplicate_exits_without_lineno(cfg_builder *g) * fall through, and thus can only have a single predecessor */ for (basicblock *b = entryblock; b != NULL; b = b->b_next) { if (BB_HAS_FALLTHROUGH(b) && b->b_next && b->b_iused > 0) { - if (is_exit_without_lineno(b->b_next)) { - cfg_instr *last = _PyCfg_BasicblockLastInstr(b); + if (is_exit_or_eval_check_without_lineno(b->b_next)) { + cfg_instr *last = basicblock_last_instr(b); assert(last != NULL); b->b_next->b_instr[0].i_loc = last->i_loc; } @@ -2136,7 +2425,7 @@ duplicate_exits_without_lineno(cfg_builder *g) static void propagate_line_numbers(basicblock *entryblock) { for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - cfg_instr *last = _PyCfg_BasicblockLastInstr(b); + cfg_instr *last = basicblock_last_instr(b); if (last == NULL) { continue; } @@ -2151,9 +2440,10 @@ propagate_line_numbers(basicblock *entryblock) { } } if (BB_HAS_FALLTHROUGH(b) && b->b_next->b_predecessors == 1) { - assert(b->b_next->b_iused); - if (b->b_next->b_instr[0].i_loc.lineno < 0) { - b->b_next->b_instr[0].i_loc = prev_location; + if (b->b_next->b_iused > 0) { + if (b->b_next->b_instr[0].i_loc.lineno < 0) { + b->b_next->b_instr[0].i_loc = prev_location; + } } } if (is_jump(last)) { @@ -2167,46 +2457,17 @@ propagate_line_numbers(basicblock *entryblock) { } } -/* Make sure that all returns have a line number, even if early passes - * have failed to propagate a correct line number. - * The resulting line number may not be correct according to PEP 626, - * but should be "good enough", and no worse than in older versions. */ -static void -guarantee_lineno_for_exits(basicblock *entryblock, int firstlineno) { - int lineno = firstlineno; - assert(lineno > 0); - for (basicblock *b = entryblock; b != NULL; b = b->b_next) { - cfg_instr *last = _PyCfg_BasicblockLastInstr(b); - if (last == NULL) { - continue; - } - if (last->i_loc.lineno < 0) { - if (last->i_opcode == RETURN_VALUE) { - for (int i = 0; i < b->b_iused; i++) { - assert(b->b_instr[i].i_loc.lineno < 0); - - b->b_instr[i].i_loc.lineno = lineno; - } - } - } - else { - lineno = last->i_loc.lineno; - } - } -} - static int resolve_line_numbers(cfg_builder *g, int firstlineno) { RETURN_IF_ERROR(duplicate_exits_without_lineno(g)); propagate_line_numbers(g->g_entryblock); - guarantee_lineno_for_exits(g->g_entryblock, firstlineno); return SUCCESS; } int _PyCfg_OptimizeCodeUnit(cfg_builder *g, PyObject *consts, PyObject *const_cache, - int code_flags, int nlocals, int nparams, int firstlineno) + int nlocals, int nparams, int firstlineno) { assert(cfg_builder_check(g)); /** Preprocessing **/ @@ -2216,13 +2477,308 @@ _PyCfg_OptimizeCodeUnit(cfg_builder *g, PyObject *consts, PyObject *const_cache, RETURN_IF_ERROR(label_exception_targets(g->g_entryblock)); /** Optimization **/ - RETURN_IF_ERROR(optimize_cfg(g, consts, const_cache)); + RETURN_IF_ERROR(optimize_cfg(g, consts, const_cache, firstlineno)); RETURN_IF_ERROR(remove_unused_consts(g->g_entryblock, consts)); RETURN_IF_ERROR( add_checks_for_loads_of_uninitialized_variables( g->g_entryblock, nlocals, nparams)); + RETURN_IF_ERROR(insert_superinstructions(g)); - RETURN_IF_ERROR(push_cold_blocks_to_end(g, code_flags)); + RETURN_IF_ERROR(push_cold_blocks_to_end(g)); RETURN_IF_ERROR(resolve_line_numbers(g, firstlineno)); return SUCCESS; } + +static int * +build_cellfixedoffsets(_PyCompile_CodeUnitMetadata *umd) +{ + int nlocals = (int)PyDict_GET_SIZE(umd->u_varnames); + int ncellvars = (int)PyDict_GET_SIZE(umd->u_cellvars); + int nfreevars = (int)PyDict_GET_SIZE(umd->u_freevars); + + int noffsets = ncellvars + nfreevars; + int *fixed = PyMem_New(int, noffsets); + if (fixed == NULL) { + PyErr_NoMemory(); + return NULL; + } + for (int i = 0; i < noffsets; i++) { + fixed[i] = nlocals + i; + } + + PyObject *varname, *cellindex; + Py_ssize_t pos = 0; + while (PyDict_Next(umd->u_cellvars, &pos, &varname, &cellindex)) { + PyObject *varindex; + if (PyDict_GetItemRef(umd->u_varnames, varname, &varindex) < 0) { + goto error; + } + if (varindex == NULL) { + continue; + } + + int argoffset = PyLong_AsInt(varindex); + Py_DECREF(varindex); + if (argoffset == -1 && PyErr_Occurred()) { + goto error; + } + + int oldindex = PyLong_AsInt(cellindex); + if (oldindex == -1 && PyErr_Occurred()) { + goto error; + } + fixed[oldindex] = argoffset; + } + return fixed; + +error: + PyMem_Free(fixed); + return NULL; +} + +#define IS_GENERATOR(CF) \ + ((CF) & (CO_GENERATOR | CO_COROUTINE | CO_ASYNC_GENERATOR)) + +static int +insert_prefix_instructions(_PyCompile_CodeUnitMetadata *umd, basicblock *entryblock, + int *fixed, int nfreevars, int code_flags) +{ + assert(umd->u_firstlineno > 0); + + /* Add the generator prefix instructions. */ + if (IS_GENERATOR(code_flags)) { + /* Note that RETURN_GENERATOR + POP_TOP have a net stack effect + * of 0. This is because RETURN_GENERATOR pushes an element + * with _PyFrame_StackPush before switching stacks. + */ + + location loc = LOCATION(umd->u_firstlineno, umd->u_firstlineno, -1, -1); + cfg_instr make_gen = { + .i_opcode = RETURN_GENERATOR, + .i_oparg = 0, + .i_loc = loc, + .i_target = NULL, + }; + RETURN_IF_ERROR(basicblock_insert_instruction(entryblock, 0, &make_gen)); + cfg_instr pop_top = { + .i_opcode = POP_TOP, + .i_oparg = 0, + .i_loc = loc, + .i_target = NULL, + }; + RETURN_IF_ERROR(basicblock_insert_instruction(entryblock, 1, &pop_top)); + } + + /* Set up cells for any variable that escapes, to be put in a closure. */ + const int ncellvars = (int)PyDict_GET_SIZE(umd->u_cellvars); + if (ncellvars) { + // umd->u_cellvars has the cells out of order so we sort them + // before adding the MAKE_CELL instructions. Note that we + // adjust for arg cells, which come first. + const int nvars = ncellvars + (int)PyDict_GET_SIZE(umd->u_varnames); + int *sorted = PyMem_RawCalloc(nvars, sizeof(int)); + if (sorted == NULL) { + PyErr_NoMemory(); + return ERROR; + } + for (int i = 0; i < ncellvars; i++) { + sorted[fixed[i]] = i + 1; + } + for (int i = 0, ncellsused = 0; ncellsused < ncellvars; i++) { + int oldindex = sorted[i] - 1; + if (oldindex == -1) { + continue; + } + cfg_instr make_cell = { + .i_opcode = MAKE_CELL, + // This will get fixed in offset_derefs(). + .i_oparg = oldindex, + .i_loc = NO_LOCATION, + .i_target = NULL, + }; + if (basicblock_insert_instruction(entryblock, ncellsused, &make_cell) < 0) { + PyMem_RawFree(sorted); + return ERROR; + } + ncellsused += 1; + } + PyMem_RawFree(sorted); + } + + if (nfreevars) { + cfg_instr copy_frees = { + .i_opcode = COPY_FREE_VARS, + .i_oparg = nfreevars, + .i_loc = NO_LOCATION, + .i_target = NULL, + }; + RETURN_IF_ERROR(basicblock_insert_instruction(entryblock, 0, ©_frees)); + } + + return SUCCESS; +} + +static int +fix_cell_offsets(_PyCompile_CodeUnitMetadata *umd, basicblock *entryblock, int *fixedmap) +{ + int nlocals = (int)PyDict_GET_SIZE(umd->u_varnames); + int ncellvars = (int)PyDict_GET_SIZE(umd->u_cellvars); + int nfreevars = (int)PyDict_GET_SIZE(umd->u_freevars); + int noffsets = ncellvars + nfreevars; + + // First deal with duplicates (arg cells). + int numdropped = 0; + for (int i = 0; i < noffsets ; i++) { + if (fixedmap[i] == i + nlocals) { + fixedmap[i] -= numdropped; + } + else { + // It was a duplicate (cell/arg). + numdropped += 1; + } + } + + // Then update offsets, either relative to locals or by cell2arg. + for (basicblock *b = entryblock; b != NULL; b = b->b_next) { + for (int i = 0; i < b->b_iused; i++) { + cfg_instr *inst = &b->b_instr[i]; + // This is called before extended args are generated. + assert(inst->i_opcode != EXTENDED_ARG); + int oldoffset = inst->i_oparg; + switch(inst->i_opcode) { + case MAKE_CELL: + case LOAD_CLOSURE: + case LOAD_DEREF: + case STORE_DEREF: + case DELETE_DEREF: + case LOAD_FROM_DICT_OR_DEREF: + assert(oldoffset >= 0); + assert(oldoffset < noffsets); + assert(fixedmap[oldoffset] >= 0); + inst->i_oparg = fixedmap[oldoffset]; + } + } + } + + return numdropped; +} + +static int +prepare_localsplus(_PyCompile_CodeUnitMetadata *umd, cfg_builder *g, int code_flags) +{ + assert(PyDict_GET_SIZE(umd->u_varnames) < INT_MAX); + assert(PyDict_GET_SIZE(umd->u_cellvars) < INT_MAX); + assert(PyDict_GET_SIZE(umd->u_freevars) < INT_MAX); + int nlocals = (int)PyDict_GET_SIZE(umd->u_varnames); + int ncellvars = (int)PyDict_GET_SIZE(umd->u_cellvars); + int nfreevars = (int)PyDict_GET_SIZE(umd->u_freevars); + assert(INT_MAX - nlocals - ncellvars > 0); + assert(INT_MAX - nlocals - ncellvars - nfreevars > 0); + int nlocalsplus = nlocals + ncellvars + nfreevars; + int* cellfixedoffsets = build_cellfixedoffsets(umd); + if (cellfixedoffsets == NULL) { + return ERROR; + } + + // This must be called before fix_cell_offsets(). + if (insert_prefix_instructions(umd, g->g_entryblock, cellfixedoffsets, nfreevars, code_flags)) { + PyMem_Free(cellfixedoffsets); + return ERROR; + } + + int numdropped = fix_cell_offsets(umd, g->g_entryblock, cellfixedoffsets); + PyMem_Free(cellfixedoffsets); // At this point we're done with it. + cellfixedoffsets = NULL; + if (numdropped < 0) { + return ERROR; + } + + nlocalsplus -= numdropped; + return nlocalsplus; +} + +int +_PyCfg_ToInstructionSequence(cfg_builder *g, _PyInstructionSequence *seq) +{ + int lbl = 0; + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + b->b_label = (jump_target_label){lbl}; + lbl += 1; + } + for (basicblock *b = g->g_entryblock; b != NULL; b = b->b_next) { + RETURN_IF_ERROR(_PyInstructionSequence_UseLabel(seq, b->b_label.id)); + for (int i = 0; i < b->b_iused; i++) { + cfg_instr *instr = &b->b_instr[i]; + if (HAS_TARGET(instr->i_opcode)) { + /* Set oparg to the label id (it will later be mapped to an offset) */ + instr->i_oparg = instr->i_target->b_label.id; + } + RETURN_IF_ERROR( + _PyInstructionSequence_Addop( + seq, instr->i_opcode, instr->i_oparg, instr->i_loc)); + + _PyExceptHandlerInfo *hi = &seq->s_instrs[seq->s_used-1].i_except_handler_info; + if (instr->i_except != NULL) { + hi->h_label = instr->i_except->b_label.id; + hi->h_startdepth = instr->i_except->b_startdepth; + hi->h_preserve_lasti = instr->i_except->b_preserve_lasti; + } + else { + hi->h_label = -1; + } + } + } + return SUCCESS; +} + + +int +_PyCfg_OptimizedCfgToInstructionSequence(cfg_builder *g, + _PyCompile_CodeUnitMetadata *umd, int code_flags, + int *stackdepth, int *nlocalsplus, + _PyInstructionSequence *seq) +{ + *stackdepth = calculate_stackdepth(g); + if (*stackdepth < 0) { + return ERROR; + } + + /* prepare_localsplus adds instructions for generators that push + * and pop an item on the stack. This assertion makes sure there + * is space on the stack for that. + * It should always be true, because a generator must have at + * least one expression or call to INTRINSIC_STOPITERATION_ERROR, + * which requires stackspace. + */ + assert(!(IS_GENERATOR(code_flags) && *stackdepth == 0)); + + *nlocalsplus = prepare_localsplus(umd, g, code_flags); + if (*nlocalsplus < 0) { + return ERROR; + } + + RETURN_IF_ERROR(convert_pseudo_ops(g)); + + /* Order of basic blocks must have been determined by now */ + + RETURN_IF_ERROR(normalize_jumps(g)); + assert(no_redundant_jumps(g)); + + /* Can't modify the bytecode after computing jump offsets. */ + if (_PyCfg_ToInstructionSequence(g, seq) < 0) { + return ERROR; + } + + return SUCCESS; +} + +/* This is used by _PyCompile_Assemble to fill in the jump and exception + * targets in a synthetic CFG (which is not the ouptut of the builtin compiler). + */ +int +_PyCfg_JumpLabelsToTargets(cfg_builder *g) +{ + RETURN_IF_ERROR(translate_jump_labels_to_targets(g->g_entryblock)); + RETURN_IF_ERROR(label_exception_targets(g->g_entryblock)); + return SUCCESS; +} diff --git a/contrib/tools/python3/Python/formatter_unicode.c b/contrib/tools/python3/Python/formatter_unicode.c index 38e5f69bfb4..6af589f966a 100644 --- a/contrib/tools/python3/Python/formatter_unicode.c +++ b/contrib/tools/python3/Python/formatter_unicode.c @@ -982,7 +982,7 @@ format_long_internal(PyObject *value, const InternalFormatSpec *format, /* Do the hard part, converting to a string in a given base */ tmp = _PyLong_Format(value, base); - if (tmp == NULL || PyUnicode_READY(tmp) == -1) + if (tmp == NULL) goto done; inumeric_chars = 0; diff --git a/contrib/tools/python3/Python/frame.c b/contrib/tools/python3/Python/frame.c index b84fd9b6a93..2bb12823572 100644 --- a/contrib/tools/python3/Python/frame.c +++ b/contrib/tools/python3/Python/frame.c @@ -14,7 +14,7 @@ _PyFrame_Traverse(_PyInterpreterFrame *frame, visitproc visit, void *arg) Py_VISIT(frame->frame_obj); Py_VISIT(frame->f_locals); Py_VISIT(frame->f_funcobj); - Py_VISIT(frame->f_code); + Py_VISIT(_PyFrame_GetCode(frame)); /* locals */ PyObject **locals = _PyFrame_GetLocalsArray(frame); int i = 0; @@ -31,30 +31,21 @@ _PyFrame_MakeAndSetFrameObject(_PyInterpreterFrame *frame) assert(frame->frame_obj == NULL); PyObject *exc = PyErr_GetRaisedException(); - PyFrameObject *f = _PyFrame_New_NoTrack(frame->f_code); + PyFrameObject *f = _PyFrame_New_NoTrack(_PyFrame_GetCode(frame)); if (f == NULL) { Py_XDECREF(exc); return NULL; } PyErr_SetRaisedException(exc); - if (frame->frame_obj) { - // GH-97002: How did we get into this horrible situation? Most likely, - // allocating f triggered a GC collection, which ran some code that - // *also* created the same frame... while we were in the middle of - // creating it! See test_sneaky_frame_object in test_frame.py for a - // concrete example. - // - // Regardless, just throw f away and use that frame instead, since it's - // already been exposed to user code. It's actually a bit tricky to do - // this, since we aren't backed by a real _PyInterpreterFrame anymore. - // Just pretend that we have an owned, cleared frame so frame_dealloc - // doesn't make the situation worse: - f->f_frame = (_PyInterpreterFrame *)f->_f_frame_data; - f->f_frame->owner = FRAME_CLEARED; - f->f_frame->frame_obj = f; - Py_DECREF(f); - return frame->frame_obj; - } + + // GH-97002: There was a time when a frame object could be created when we + // are allocating the new frame object f above, so frame->frame_obj would + // be assigned already. That path does not exist anymore. We won't call any + // Python code in this function and garbage collection will not run. + // Notice that _PyFrame_New_NoTrack() can potentially raise a MemoryError, + // but it won't allocate a traceback until the frame unwinds, so we are safe + // here. + assert(frame->frame_obj == NULL); assert(frame->owner != FRAME_OWNED_BY_FRAME_OBJECT); assert(frame->owner != FRAME_CLEARED); f->f_frame = frame; @@ -62,18 +53,6 @@ _PyFrame_MakeAndSetFrameObject(_PyInterpreterFrame *frame) return f; } -void -_PyFrame_Copy(_PyInterpreterFrame *src, _PyInterpreterFrame *dest) -{ - assert(src->stacktop >= src->f_code->co_nlocalsplus); - Py_ssize_t size = ((char*)&src->localsplus[src->stacktop]) - (char *)src; - memcpy(dest, src, size); - // Don't leave a dangling pointer to the old frame when creating generators - // and coroutines: - dest->previous = NULL; -} - - static void take_ownership(PyFrameObject *f, _PyInterpreterFrame *frame) { @@ -81,7 +60,7 @@ take_ownership(PyFrameObject *f, _PyInterpreterFrame *frame) assert(frame->owner != FRAME_OWNED_BY_FRAME_OBJECT); assert(frame->owner != FRAME_CLEARED); Py_ssize_t size = ((char*)&frame->localsplus[frame->stacktop]) - (char *)frame; - Py_INCREF(frame->f_code); + Py_INCREF(_PyFrame_GetCode(frame)); memcpy((_PyInterpreterFrame *)f->_f_frame_data, frame, size); frame = (_PyInterpreterFrame *)f->_f_frame_data; f->f_frame = frame; @@ -89,8 +68,8 @@ take_ownership(PyFrameObject *f, _PyInterpreterFrame *frame) if (_PyFrame_IsIncomplete(frame)) { // This may be a newly-created generator or coroutine frame. Since it's // dead anyways, just pretend that the first RESUME ran: - PyCodeObject *code = frame->f_code; - frame->prev_instr = _PyCode_CODE(code) + code->_co_firsttraceable; + PyCodeObject *code = _PyFrame_GetCode(frame); + frame->instr_ptr = _PyCode_CODE(code) + code->_co_firsttraceable + 1; } assert(!_PyFrame_IsIncomplete(frame)); assert(f->f_back == NULL); @@ -115,6 +94,18 @@ take_ownership(PyFrameObject *f, _PyInterpreterFrame *frame) } } +void +_PyFrame_ClearLocals(_PyInterpreterFrame *frame) +{ + assert(frame->stacktop >= 0); + int stacktop = frame->stacktop; + frame->stacktop = 0; + for (int i = 0; i < stacktop; i++) { + Py_XDECREF(frame->localsplus[i]); + } + Py_CLEAR(frame->f_locals); +} + void _PyFrame_ClearExceptCode(_PyInterpreterFrame *frame) { @@ -124,7 +115,7 @@ _PyFrame_ClearExceptCode(_PyInterpreterFrame *frame) _PyFrame_GetGenerator(frame)->gi_frame_state == FRAME_CLEARED); // GH-99729: Clearing this frame can expose the stack (via finalizers). It's // crucial that this frame has been unlinked, and is no longer visible: - assert(_PyThreadState_GET()->cframe->current_frame != frame); + assert(_PyThreadState_GET()->current_frame != frame); if (frame->frame_obj) { PyFrameObject *f = frame->frame_obj; frame->frame_obj = NULL; @@ -135,12 +126,7 @@ _PyFrame_ClearExceptCode(_PyInterpreterFrame *frame) } Py_DECREF(f); } - assert(frame->stacktop >= 0); - for (int i = 0; i < frame->stacktop; i++) { - Py_XDECREF(frame->localsplus[i]); - } - Py_XDECREF(frame->frame_obj); - Py_XDECREF(frame->f_locals); + _PyFrame_ClearLocals(frame); Py_DECREF(frame->f_funcobj); } @@ -149,7 +135,7 @@ _PyFrame_ClearExceptCode(_PyInterpreterFrame *frame) PyObject * PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame) { - PyObject *code = (PyObject *)frame->f_code; + PyObject *code = frame->f_executable; Py_INCREF(code); return code; } @@ -164,5 +150,13 @@ int PyUnstable_InterpreterFrame_GetLine(_PyInterpreterFrame *frame) { int addr = _PyInterpreterFrame_LASTI(frame) * sizeof(_Py_CODEUNIT); - return PyCode_Addr2Line(frame->f_code, addr); + return PyCode_Addr2Line(_PyFrame_GetCode(frame), addr); } + +const PyTypeObject *const PyUnstable_ExecutableKinds[PyUnstable_EXECUTABLE_KINDS+1] = { + [PyUnstable_EXECUTABLE_KIND_SKIP] = &_PyNone_Type, + [PyUnstable_EXECUTABLE_KIND_PY_FUNCTION] = &PyCode_Type, + [PyUnstable_EXECUTABLE_KIND_BUILTIN_FUNCTION] = &PyMethod_Type, + [PyUnstable_EXECUTABLE_KIND_METHOD_DESCRIPTOR] = &PyMethodDescr_Type, + [PyUnstable_EXECUTABLE_KINDS] = NULL, +}; diff --git a/contrib/tools/python3/Python/frozen.c b/contrib/tools/python3/Python/frozen.c index f8e0b8b065a..627f2ff9413 100644 --- a/contrib/tools/python3/Python/frozen.c +++ b/contrib/tools/python3/Python/frozen.c @@ -66,75 +66,47 @@ #include "frozen_modules/frozen_only.h" /* End includes */ -#define GET_CODE(name) _Py_get_##name##_toplevel - -/* Start extern declarations */ -extern PyObject *_Py_get_importlib__bootstrap_toplevel(void); -extern PyObject *_Py_get_importlib__bootstrap_external_toplevel(void); -extern PyObject *_Py_get_zipimport_toplevel(void); -extern PyObject *_Py_get_abc_toplevel(void); -extern PyObject *_Py_get_codecs_toplevel(void); -extern PyObject *_Py_get_io_toplevel(void); -extern PyObject *_Py_get__collections_abc_toplevel(void); -extern PyObject *_Py_get__sitebuiltins_toplevel(void); -extern PyObject *_Py_get_genericpath_toplevel(void); -extern PyObject *_Py_get_ntpath_toplevel(void); -extern PyObject *_Py_get_posixpath_toplevel(void); -extern PyObject *_Py_get_os_toplevel(void); -extern PyObject *_Py_get_site_toplevel(void); -extern PyObject *_Py_get_stat_toplevel(void); -extern PyObject *_Py_get_importlib_util_toplevel(void); -extern PyObject *_Py_get_importlib_machinery_toplevel(void); -extern PyObject *_Py_get_runpy_toplevel(void); -extern PyObject *_Py_get___hello___toplevel(void); -extern PyObject *_Py_get___phello___toplevel(void); -extern PyObject *_Py_get___phello___ham_toplevel(void); -extern PyObject *_Py_get___phello___ham_eggs_toplevel(void); -extern PyObject *_Py_get___phello___spam_toplevel(void); -extern PyObject *_Py_get_frozen_only_toplevel(void); -/* End extern declarations */ - static const struct _frozen bootstrap_modules[] = { - {"_frozen_importlib", _Py_M__importlib__bootstrap, (int)sizeof(_Py_M__importlib__bootstrap), false, GET_CODE(importlib__bootstrap)}, - {"_frozen_importlib_external", _Py_M__importlib__bootstrap_external, (int)sizeof(_Py_M__importlib__bootstrap_external), false, GET_CODE(importlib__bootstrap_external)}, - {"zipimport", _Py_M__zipimport, (int)sizeof(_Py_M__zipimport), false, GET_CODE(zipimport)}, + {"_frozen_importlib", _Py_M__importlib__bootstrap, (int)sizeof(_Py_M__importlib__bootstrap), false}, + {"_frozen_importlib_external", _Py_M__importlib__bootstrap_external, (int)sizeof(_Py_M__importlib__bootstrap_external), false}, + {"zipimport", _Py_M__zipimport, (int)sizeof(_Py_M__zipimport), false}, {0, 0, 0} /* bootstrap sentinel */ }; static const struct _frozen stdlib_modules[] = { /* stdlib - startup, without site (python -S) */ - {"abc", _Py_M__abc, (int)sizeof(_Py_M__abc), false, GET_CODE(abc)}, - {"codecs", _Py_M__codecs, (int)sizeof(_Py_M__codecs), false, GET_CODE(codecs)}, - {"io", _Py_M__io, (int)sizeof(_Py_M__io), false, GET_CODE(io)}, + {"abc", _Py_M__abc, (int)sizeof(_Py_M__abc), false}, + {"codecs", _Py_M__codecs, (int)sizeof(_Py_M__codecs), false}, + {"io", _Py_M__io, (int)sizeof(_Py_M__io), false}, /* stdlib - startup, with site */ - {"_collections_abc", _Py_M___collections_abc, (int)sizeof(_Py_M___collections_abc), false, GET_CODE(_collections_abc)}, - {"_sitebuiltins", _Py_M___sitebuiltins, (int)sizeof(_Py_M___sitebuiltins), false, GET_CODE(_sitebuiltins)}, - {"genericpath", _Py_M__genericpath, (int)sizeof(_Py_M__genericpath), false, GET_CODE(genericpath)}, - {"ntpath", _Py_M__ntpath, (int)sizeof(_Py_M__ntpath), false, GET_CODE(ntpath)}, - {"posixpath", _Py_M__posixpath, (int)sizeof(_Py_M__posixpath), false, GET_CODE(posixpath)}, - {"os.path", _Py_M__posixpath, (int)sizeof(_Py_M__posixpath), false, GET_CODE(posixpath)}, - {"os", _Py_M__os, (int)sizeof(_Py_M__os), false, GET_CODE(os)}, - {"site", _Py_M__site, (int)sizeof(_Py_M__site), false, GET_CODE(site)}, - {"stat", _Py_M__stat, (int)sizeof(_Py_M__stat), false, GET_CODE(stat)}, + {"_collections_abc", _Py_M___collections_abc, (int)sizeof(_Py_M___collections_abc), false}, + {"_sitebuiltins", _Py_M___sitebuiltins, (int)sizeof(_Py_M___sitebuiltins), false}, + {"genericpath", _Py_M__genericpath, (int)sizeof(_Py_M__genericpath), false}, + {"ntpath", _Py_M__ntpath, (int)sizeof(_Py_M__ntpath), false}, + {"posixpath", _Py_M__posixpath, (int)sizeof(_Py_M__posixpath), false}, + {"os.path", _Py_M__posixpath, (int)sizeof(_Py_M__posixpath), false}, + {"os", _Py_M__os, (int)sizeof(_Py_M__os), false}, + {"site", _Py_M__site, (int)sizeof(_Py_M__site), false}, + {"stat", _Py_M__stat, (int)sizeof(_Py_M__stat), false}, /* runpy - run module with -m */ - {"importlib.util", _Py_M__importlib_util, (int)sizeof(_Py_M__importlib_util), false, GET_CODE(importlib_util)}, - {"importlib.machinery", _Py_M__importlib_machinery, (int)sizeof(_Py_M__importlib_machinery), false, GET_CODE(importlib_machinery)}, - {"runpy", _Py_M__runpy, (int)sizeof(_Py_M__runpy), false, GET_CODE(runpy)}, + {"importlib.util", _Py_M__importlib_util, (int)sizeof(_Py_M__importlib_util), false}, + {"importlib.machinery", _Py_M__importlib_machinery, (int)sizeof(_Py_M__importlib_machinery), false}, + {"runpy", _Py_M__runpy, (int)sizeof(_Py_M__runpy), false}, {0, 0, 0} /* stdlib sentinel */ }; static const struct _frozen test_modules[] = { - {"__hello__", _Py_M____hello__, (int)sizeof(_Py_M____hello__), false, GET_CODE(__hello__)}, - {"__hello_alias__", _Py_M____hello__, (int)sizeof(_Py_M____hello__), false, GET_CODE(__hello__)}, - {"__phello_alias__", _Py_M____hello__, (int)sizeof(_Py_M____hello__), true, GET_CODE(__hello__)}, - {"__phello_alias__.spam", _Py_M____hello__, (int)sizeof(_Py_M____hello__), false, GET_CODE(__hello__)}, - {"__phello__", _Py_M____phello__, (int)sizeof(_Py_M____phello__), true, GET_CODE(__phello__)}, - {"__phello__.__init__", _Py_M____phello__, (int)sizeof(_Py_M____phello__), false, GET_CODE(__phello__)}, - {"__phello__.ham", _Py_M____phello___ham, (int)sizeof(_Py_M____phello___ham), true, GET_CODE(__phello___ham)}, - {"__phello__.ham.__init__", _Py_M____phello___ham, (int)sizeof(_Py_M____phello___ham), false, GET_CODE(__phello___ham)}, - {"__phello__.ham.eggs", _Py_M____phello___ham_eggs, (int)sizeof(_Py_M____phello___ham_eggs), false, GET_CODE(__phello___ham_eggs)}, - {"__phello__.spam", _Py_M____phello___spam, (int)sizeof(_Py_M____phello___spam), false, GET_CODE(__phello___spam)}, - {"__hello_only__", _Py_M__frozen_only, (int)sizeof(_Py_M__frozen_only), false, GET_CODE(frozen_only)}, + {"__hello__", _Py_M____hello__, (int)sizeof(_Py_M____hello__), false}, + {"__hello_alias__", _Py_M____hello__, (int)sizeof(_Py_M____hello__), false}, + {"__phello_alias__", _Py_M____hello__, (int)sizeof(_Py_M____hello__), true}, + {"__phello_alias__.spam", _Py_M____hello__, (int)sizeof(_Py_M____hello__), false}, + {"__phello__", _Py_M____phello__, (int)sizeof(_Py_M____phello__), true}, + {"__phello__.__init__", _Py_M____phello__, (int)sizeof(_Py_M____phello__), false}, + {"__phello__.ham", _Py_M____phello___ham, (int)sizeof(_Py_M____phello___ham), true}, + {"__phello__.ham.__init__", _Py_M____phello___ham, (int)sizeof(_Py_M____phello___ham), false}, + {"__phello__.ham.eggs", _Py_M____phello___ham_eggs, (int)sizeof(_Py_M____phello___ham_eggs), false}, + {"__phello__.spam", _Py_M____phello___spam, (int)sizeof(_Py_M____phello___spam), false}, + {"__hello_only__", _Py_M__frozen_only, (int)sizeof(_Py_M__frozen_only), false}, {0, 0, 0} /* test sentinel */ }; const struct _frozen *_PyImport_FrozenBootstrap = bootstrap_modules; diff --git a/contrib/tools/python3/Python/frozen_modules/__hello__.h b/contrib/tools/python3/Python/frozen_modules/__hello__.h index a102aff37fa..cb405d19b07 100644 --- a/contrib/tools/python3/Python/frozen_modules/__hello__.h +++ b/contrib/tools/python3/Python/frozen_modules/__hello__.h @@ -1,56 +1,62 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M____hello__[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,0,0,0,0,243,100,0,0,0,151,0,100,0,90,0, - 2,0,71,0,100,1,132,0,100,2,171,2,0,0,0,0, - 0,0,90,1,2,0,71,0,100,3,132,0,100,4,171,2, - 0,0,0,0,0,0,90,2,2,0,71,0,100,5,132,0, - 100,6,171,2,0,0,0,0,0,0,90,3,100,7,132,0, - 90,4,101,5,100,8,107,40,0,0,114,8,2,0,101,4, - 171,0,0,0,0,0,0,0,1,0,121,9,121,9,41,10, - 84,99,0,0,0,0,0,0,0,0,0,0,0,0,1,0, - 0,0,0,0,0,0,243,16,0,0,0,151,0,101,0,90, - 1,100,0,90,2,100,1,90,3,121,2,41,3,218,16,84, - 101,115,116,70,114,111,122,101,110,85,116,102,56,95,49,244, - 2,0,0,0,194,182,78,169,4,218,8,95,95,110,97,109, - 101,95,95,218,10,95,95,109,111,100,117,108,101,95,95,218, - 12,95,95,113,117,97,108,110,97,109,101,95,95,218,7,95, - 95,100,111,99,95,95,169,0,243,0,0,0,0,250,18,60, - 102,114,111,122,101,110,32,95,95,104,101,108,108,111,95,95, - 62,114,3,0,0,0,114,3,0,0,0,3,0,0,0,243, - 5,0,0,0,132,0,218,4,16,114,11,0,0,0,114,3, - 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,0,0,0,0,243,16,0,0,0,151,0,101, - 0,90,1,100,0,90,2,100,1,90,3,121,2,41,3,218, - 16,84,101,115,116,70,114,111,122,101,110,85,116,102,56,95, - 50,117,2,0,0,0,207,128,78,114,5,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,12,0,0,0,114,15,0, - 0,0,114,15,0,0,0,6,0,0,0,114,13,0,0,0, - 114,11,0,0,0,114,15,0,0,0,99,0,0,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,243, - 16,0,0,0,151,0,101,0,90,1,100,0,90,2,100,1, - 90,3,121,2,41,3,218,16,84,101,115,116,70,114,111,122, - 101,110,85,116,102,56,95,52,117,4,0,0,0,240,159,152, - 128,78,114,5,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,12,0,0,0,114,17,0,0,0,114,17,0,0,0, - 9,0,0,0,115,5,0,0,0,132,0,218,4,20,114,11, - 0,0,0,114,17,0,0,0,99,0,0,0,0,0,0,0, + 0,0,0,0,0,243,102,0,0,0,149,0,83,0,114,0, + 24,0,34,0,83,1,26,0,83,2,53,2,0,0,0,0, + 0,0,114,1,24,0,34,0,83,3,26,0,83,4,53,2, + 0,0,0,0,0,0,114,2,24,0,34,0,83,5,26,0, + 83,6,53,2,0,0,0,0,0,0,114,3,83,7,26,0, + 114,4,92,5,83,8,58,88,0,0,97,8,0,0,92,4, + 34,0,53,0,0,0,0,0,0,0,32,0,103,9,103,9, + 41,10,84,99,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,243,24,0,0,0,149,0,92, + 0,114,1,83,0,114,2,83,1,114,3,83,2,114,4,83, + 3,114,5,103,4,41,5,218,16,84,101,115,116,70,114,111, + 122,101,110,85,116,102,56,95,49,233,3,0,0,0,244,2, + 0,0,0,194,182,169,0,78,169,6,218,8,95,95,110,97, + 109,101,95,95,218,10,95,95,109,111,100,117,108,101,95,95, + 218,12,95,95,113,117,97,108,110,97,109,101,95,95,218,15, + 95,95,102,105,114,115,116,108,105,110,101,110,111,95,95,218, + 7,95,95,100,111,99,95,95,218,21,95,95,115,116,97,116, + 105,99,95,97,116,116,114,105,98,117,116,101,115,95,95,114, + 6,0,0,0,243,0,0,0,0,218,18,60,102,114,111,122, + 101,110,32,95,95,104,101,108,108,111,95,95,62,114,3,0, + 0,0,114,3,0,0,0,3,0,0,0,243,5,0,0,0, + 134,0,220,4,16,114,14,0,0,0,114,3,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 0,0,0,0,243,24,0,0,0,149,0,92,0,114,1,83, + 0,114,2,83,1,114,3,83,2,114,4,83,3,114,5,103, + 4,41,5,218,16,84,101,115,116,70,114,111,122,101,110,85, + 116,102,56,95,50,233,6,0,0,0,117,2,0,0,0,207, + 128,114,6,0,0,0,78,114,7,0,0,0,114,6,0,0, + 0,114,14,0,0,0,114,15,0,0,0,114,18,0,0,0, + 114,18,0,0,0,6,0,0,0,114,16,0,0,0,114,14, + 0,0,0,114,18,0,0,0,99,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,243,24,0, + 0,0,149,0,92,0,114,1,83,0,114,2,83,1,114,3, + 83,2,114,4,83,3,114,5,103,4,41,5,218,16,84,101, + 115,116,70,114,111,122,101,110,85,116,102,56,95,52,233,9, + 0,0,0,117,4,0,0,0,240,159,152,128,114,6,0,0, + 0,78,114,7,0,0,0,114,6,0,0,0,114,14,0,0, + 0,114,15,0,0,0,114,21,0,0,0,114,21,0,0,0, + 9,0,0,0,115,5,0,0,0,134,0,220,4,20,114,14, + 0,0,0,114,21,0,0,0,99,0,0,0,0,0,0,0, 0,0,0,0,0,3,0,0,0,3,0,0,0,243,26,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,100,1, - 171,1,0,0,0,0,0,0,1,0,121,0,41,2,78,122, + 0,0,149,0,91,1,0,0,0,0,0,0,0,0,83,1, + 53,1,0,0,0,0,0,0,32,0,103,0,41,2,78,122, 12,72,101,108,108,111,32,119,111,114,108,100,33,41,1,218, - 5,112,114,105,110,116,114,10,0,0,0,114,11,0,0,0, - 114,12,0,0,0,218,4,109,97,105,110,114,20,0,0,0, + 5,112,114,105,110,116,114,6,0,0,0,114,14,0,0,0, + 114,15,0,0,0,218,4,109,97,105,110,114,25,0,0,0, 12,0,0,0,115,10,0,0,0,128,0,220,4,9,136,46, - 213,4,25,114,11,0,0,0,218,8,95,95,109,97,105,110, + 213,4,25,114,14,0,0,0,218,8,95,95,109,97,105,110, 95,95,78,41,6,218,11,105,110,105,116,105,97,108,105,122, - 101,100,114,3,0,0,0,114,15,0,0,0,114,17,0,0, - 0,114,20,0,0,0,114,6,0,0,0,114,10,0,0,0, - 114,11,0,0,0,114,12,0,0,0,218,8,60,109,111,100, - 117,108,101,62,114,23,0,0,0,1,0,0,0,115,65,0, + 101,100,114,3,0,0,0,114,18,0,0,0,114,21,0,0, + 0,114,25,0,0,0,114,8,0,0,0,114,6,0,0,0, + 114,14,0,0,0,114,15,0,0,0,218,8,60,109,111,100, + 117,108,101,62,114,28,0,0,0,1,0,0,0,115,65,0, 0,0,240,3,1,1,1,216,14,18,128,11,247,4,1,1, 17,241,0,1,1,17,247,6,1,1,17,241,0,1,1,17, 247,6,1,1,21,241,0,1,1,21,242,6,1,1,26,240, - 6,0,4,12,136,122,210,3,25,217,4,8,133,70,240,3, - 0,4,26,114,11,0,0,0, + 6,0,4,12,136,122,211,3,25,217,4,8,133,70,240,3, + 0,4,26,114,14,0,0,0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/__phello__.h b/contrib/tools/python3/Python/frozen_modules/__phello__.h index 247a2aa8ee1..5c560882023 100644 --- a/contrib/tools/python3/Python/frozen_modules/__phello__.h +++ b/contrib/tools/python3/Python/frozen_modules/__phello__.h @@ -1,24 +1,24 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M____phello__[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,0,0,0,0,243,40,0,0,0,151,0,100,0,90,0, - 100,1,132,0,90,1,101,2,100,2,107,40,0,0,114,8, - 2,0,101,1,171,0,0,0,0,0,0,0,1,0,121,3, - 121,3,41,4,84,99,0,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,3,0,0,0,243,26,0,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,100,1,171,1,0, - 0,0,0,0,0,1,0,121,0,41,2,78,122,12,72,101, - 108,108,111,32,119,111,114,108,100,33,41,1,218,5,112,114, - 105,110,116,169,0,243,0,0,0,0,250,19,60,102,114,111, - 122,101,110,32,95,95,112,104,101,108,108,111,95,95,62,218, - 4,109,97,105,110,114,7,0,0,0,3,0,0,0,115,10, - 0,0,0,128,0,220,4,9,136,46,213,4,25,114,5,0, - 0,0,218,8,95,95,109,97,105,110,95,95,78,41,3,218, - 11,105,110,105,116,105,97,108,105,122,101,100,114,7,0,0, - 0,218,8,95,95,110,97,109,101,95,95,114,4,0,0,0, - 114,5,0,0,0,114,6,0,0,0,218,8,60,109,111,100, - 117,108,101,62,114,11,0,0,0,1,0,0,0,115,35,0, - 0,0,240,3,1,1,1,216,14,18,128,11,242,4,1,1, - 26,240,6,0,4,12,136,122,210,3,25,217,4,8,133,70, - 240,3,0,4,26,114,5,0,0,0, + 0,0,0,0,0,243,42,0,0,0,149,0,83,0,114,0, + 83,1,26,0,114,1,92,2,83,2,58,88,0,0,97,8, + 0,0,92,1,34,0,53,0,0,0,0,0,0,0,32,0, + 103,3,103,3,41,4,84,99,0,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,3,0,0,0,243,26,0,0, + 0,149,0,91,1,0,0,0,0,0,0,0,0,83,1,53, + 1,0,0,0,0,0,0,32,0,103,0,41,2,78,122,12, + 72,101,108,108,111,32,119,111,114,108,100,33,41,1,218,5, + 112,114,105,110,116,169,0,243,0,0,0,0,218,19,60,102, + 114,111,122,101,110,32,95,95,112,104,101,108,108,111,95,95, + 62,218,4,109,97,105,110,114,7,0,0,0,3,0,0,0, + 115,10,0,0,0,128,0,220,4,9,136,46,213,4,25,114, + 5,0,0,0,218,8,95,95,109,97,105,110,95,95,78,41, + 3,218,11,105,110,105,116,105,97,108,105,122,101,100,114,7, + 0,0,0,218,8,95,95,110,97,109,101,95,95,114,4,0, + 0,0,114,5,0,0,0,114,6,0,0,0,218,8,60,109, + 111,100,117,108,101,62,114,11,0,0,0,1,0,0,0,115, + 35,0,0,0,240,3,1,1,1,216,14,18,128,11,242,4, + 1,1,26,240,6,0,4,12,136,122,211,3,25,217,4,8, + 133,70,240,3,0,4,26,114,5,0,0,0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/__phello__.ham.eggs.h b/contrib/tools/python3/Python/frozen_modules/__phello__.ham.eggs.h index 3ee6e2b0b1f..6e750434445 100644 --- a/contrib/tools/python3/Python/frozen_modules/__phello__.ham.eggs.h +++ b/contrib/tools/python3/Python/frozen_modules/__phello__.ham.eggs.h @@ -1,8 +1,8 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M____phello___ham_eggs[] = { - 227,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,243,4,0,0,0,151,0,121,0,41,1, - 78,169,0,114,2,0,0,0,243,0,0,0,0,250,28,60, + 227,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,0,0,0,0,243,4,0,0,0,149,0,103,0,41,1, + 78,169,0,114,2,0,0,0,243,0,0,0,0,218,28,60, 102,114,111,122,101,110,32,95,95,112,104,101,108,108,111,95, 95,46,104,97,109,46,101,103,103,115,62,218,8,60,109,111, 100,117,108,101,62,114,5,0,0,0,1,0,0,0,115,5, diff --git a/contrib/tools/python3/Python/frozen_modules/__phello__.ham.h b/contrib/tools/python3/Python/frozen_modules/__phello__.ham.h index f9845474914..eadf12fe7cf 100644 --- a/contrib/tools/python3/Python/frozen_modules/__phello__.ham.h +++ b/contrib/tools/python3/Python/frozen_modules/__phello__.ham.h @@ -1,8 +1,8 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M____phello___ham[] = { - 227,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,243,4,0,0,0,151,0,121,0,41,1, - 78,169,0,114,2,0,0,0,243,0,0,0,0,250,23,60, + 227,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,0,0,0,0,243,4,0,0,0,149,0,103,0,41,1, + 78,169,0,114,2,0,0,0,243,0,0,0,0,218,23,60, 102,114,111,122,101,110,32,95,95,112,104,101,108,108,111,95, 95,46,104,97,109,62,218,8,60,109,111,100,117,108,101,62, 114,5,0,0,0,1,0,0,0,115,5,0,0,0,241,3, diff --git a/contrib/tools/python3/Python/frozen_modules/__phello__.spam.h b/contrib/tools/python3/Python/frozen_modules/__phello__.spam.h index 33dba09eca2..d69dbf68053 100644 --- a/contrib/tools/python3/Python/frozen_modules/__phello__.spam.h +++ b/contrib/tools/python3/Python/frozen_modules/__phello__.spam.h @@ -1,24 +1,25 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M____phello___spam[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,0,0,0,0,243,40,0,0,0,151,0,100,0,90,0, - 100,1,132,0,90,1,101,2,100,2,107,40,0,0,114,8, - 2,0,101,1,171,0,0,0,0,0,0,0,1,0,121,3, - 121,3,41,4,84,99,0,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,3,0,0,0,243,26,0,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,100,1,171,1,0, - 0,0,0,0,0,1,0,121,0,41,2,78,122,12,72,101, - 108,108,111,32,119,111,114,108,100,33,41,1,218,5,112,114, - 105,110,116,169,0,243,0,0,0,0,250,24,60,102,114,111, - 122,101,110,32,95,95,112,104,101,108,108,111,95,95,46,115, - 112,97,109,62,218,4,109,97,105,110,114,7,0,0,0,3, - 0,0,0,115,10,0,0,0,128,0,220,4,9,136,46,213, - 4,25,114,5,0,0,0,218,8,95,95,109,97,105,110,95, - 95,78,41,3,218,11,105,110,105,116,105,97,108,105,122,101, - 100,114,7,0,0,0,218,8,95,95,110,97,109,101,95,95, - 114,4,0,0,0,114,5,0,0,0,114,6,0,0,0,218, - 8,60,109,111,100,117,108,101,62,114,11,0,0,0,1,0, - 0,0,115,35,0,0,0,240,3,1,1,1,216,14,18,128, - 11,242,4,1,1,26,240,6,0,4,12,136,122,210,3,25, - 217,4,8,133,70,240,3,0,4,26,114,5,0,0,0, + 0,0,0,0,0,243,42,0,0,0,149,0,83,0,114,0, + 83,1,26,0,114,1,92,2,83,2,58,88,0,0,97,8, + 0,0,92,1,34,0,53,0,0,0,0,0,0,0,32,0, + 103,3,103,3,41,4,84,99,0,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,3,0,0,0,243,26,0,0, + 0,149,0,91,1,0,0,0,0,0,0,0,0,83,1,53, + 1,0,0,0,0,0,0,32,0,103,0,41,2,78,122,12, + 72,101,108,108,111,32,119,111,114,108,100,33,41,1,218,5, + 112,114,105,110,116,169,0,243,0,0,0,0,218,24,60,102, + 114,111,122,101,110,32,95,95,112,104,101,108,108,111,95,95, + 46,115,112,97,109,62,218,4,109,97,105,110,114,7,0,0, + 0,3,0,0,0,115,10,0,0,0,128,0,220,4,9,136, + 46,213,4,25,114,5,0,0,0,218,8,95,95,109,97,105, + 110,95,95,78,41,3,218,11,105,110,105,116,105,97,108,105, + 122,101,100,114,7,0,0,0,218,8,95,95,110,97,109,101, + 95,95,114,4,0,0,0,114,5,0,0,0,114,6,0,0, + 0,218,8,60,109,111,100,117,108,101,62,114,11,0,0,0, + 1,0,0,0,115,35,0,0,0,240,3,1,1,1,216,14, + 18,128,11,242,4,1,1,26,240,6,0,4,12,136,122,211, + 3,25,217,4,8,133,70,240,3,0,4,26,114,5,0,0, + 0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/_collections_abc.h b/contrib/tools/python3/Python/frozen_modules/_collections_abc.h index 5e0263574fb..844f3b6fca5 100644 --- a/contrib/tools/python3/Python/frozen_modules/_collections_abc.h +++ b/contrib/tools/python3/Python/frozen_modules/_collections_abc.h @@ -1,2865 +1,2941 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M___collections_abc[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0, - 0,0,0,0,0,243,90,10,0,0,151,0,100,0,90,0, - 100,1,100,2,108,1,109,2,90,2,109,3,90,3,1,0, - 100,1,100,3,108,4,90,4,2,0,101,5,101,6,101,7, - 25,0,0,0,171,1,0,0,0,0,0,0,90,8,2,0, - 101,5,100,4,171,1,0,0,0,0,0,0,90,9,100,5, - 132,0,90,10,2,0,101,5,101,10,171,1,0,0,0,0, - 0,0,90,11,91,10,103,0,100,6,162,1,90,12,100,7, - 90,13,2,0,101,5,2,0,101,14,100,8,171,1,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,90,15,2,0, - 101,5,2,0,101,14,2,0,101,16,171,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,90,17,2,0,101,5,2,0,101,14,105,0,106,37, + 0,0,0,0,0,243,92,10,0,0,149,0,83,0,114,0, + 83,1,83,2,75,1,74,2,114,2,74,3,114,3,32,0, + 83,1,83,3,75,4,114,4,92,5,34,0,92,6,92,7, + 5,0,0,0,53,1,0,0,0,0,0,0,114,8,92,5, + 34,0,83,4,53,1,0,0,0,0,0,0,114,9,83,5, + 26,0,114,10,92,5,34,0,92,10,53,1,0,0,0,0, + 0,0,114,11,67,10,47,0,83,6,81,1,114,12,83,7, + 114,13,92,5,34,0,92,14,34,0,83,8,53,1,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,114,15,92,5, + 34,0,92,14,34,0,92,16,34,0,53,0,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,114,17,92,5,34,0,92,14,34,0,48,0,82,37, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,90,19,2,0,101,5, - 2,0,101,14,105,0,106,41,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,90,21,2,0,101,5,2,0,101,14,105,0,106,45, + 0,0,53,0,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,114,19,92,5,34,0, + 92,14,34,0,48,0,82,41,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,114,21,92,5,34,0,92,14,34,0,48,0,82,45, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,90,23,2,0,101,5, - 2,0,101,14,103,0,171,1,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,90,24,2,0,101,5,2,0,101,14, - 2,0,101,25,103,0,171,1,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,90,26, - 2,0,101,5,2,0,101,14,2,0,101,27,100,1,171,1, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,90,28,2,0,101,5,2,0,101,14, - 2,0,101,27,100,9,100,10,122,3,0,0,171,1,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,90,29,2,0,101,5,2,0,101,14,2,0, - 101,30,171,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,90,31,2,0,101,5, - 2,0,101,14,100,11,171,1,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,90,32,2,0,101,5,2,0,101,14, - 100,12,171,1,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,90,33,2,0,101,5,2,0,101,14,2,0,101,34, - 171,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,90,35,2,0,101,5,105,0, - 106,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,90,36,2,0,101,5,105,0,106,41,0,0, + 0,0,53,0,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,114,23,92,5,34,0, + 92,14,34,0,47,0,53,1,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,114,24,92,5,34,0,92,14,34,0, + 92,25,34,0,47,0,53,1,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,114,26, + 92,5,34,0,92,14,34,0,92,27,34,0,83,1,53,1, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,114,28,92,5,34,0,92,14,34,0, + 92,27,34,0,83,9,83,10,45,3,0,0,53,1,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,114,29,92,5,34,0,92,14,34,0,92,30, + 34,0,53,0,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,114,31,92,5,34,0, + 92,14,34,0,83,11,53,1,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,114,32,92,5,34,0,92,14,34,0, + 83,12,53,1,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,114,33,92,5,34,0,92,14,34,0,92,34,34,0, + 53,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 53,1,0,0,0,0,0,0,114,35,92,5,34,0,48,0, + 82,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,114,36,92,5,34,0,48,0,82,41,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 90,37,2,0,101,5,105,0,106,45,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,90,38,2,0, - 101,5,101,5,106,78,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 90,40,2,0,101,5,2,0,100,13,132,0,171,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,90,41,100,14, - 132,0,90,42,2,0,101,42,171,0,0,0,0,0,0,0, - 90,42,2,0,101,5,101,42,171,1,0,0,0,0,0,0, - 90,43,101,42,106,89,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, - 1,0,91,42,100,15,132,0,90,45,2,0,101,45,171,0, - 0,0,0,0,0,0,90,45,2,0,101,5,101,45,171,1, - 0,0,0,0,0,0,90,46,91,45,100,16,132,0,90,47, - 2,0,71,0,100,17,132,0,100,18,101,2,172,19,171,3, - 0,0,0,0,0,0,90,48,2,0,71,0,100,20,132,0, - 100,21,101,2,172,19,171,3,0,0,0,0,0,0,90,49, - 2,0,71,0,100,22,132,0,100,23,101,49,171,3,0,0, - 0,0,0,0,90,50,101,50,106,103,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,101,43,171,1, - 0,0,0,0,0,0,1,0,2,0,71,0,100,24,132,0, - 100,25,101,2,172,19,171,3,0,0,0,0,0,0,90,52, - 2,0,71,0,100,26,132,0,100,27,101,52,171,3,0,0, - 0,0,0,0,90,53,2,0,71,0,100,28,132,0,100,29, - 101,53,171,3,0,0,0,0,0,0,90,54,101,54,106,103, + 53,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 114,37,92,5,34,0,48,0,82,45,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,114,38,92,5, + 34,0,92,5,82,78,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 114,40,83,13,26,0,114,41,92,41,34,0,53,0,0,0, + 0,0,0,0,114,42,67,41,92,5,34,0,83,14,26,0, + 34,0,53,0,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,114,43,83,15,26,0,114,44,92,44,34,0,53,0, + 0,0,0,0,0,0,114,44,92,5,34,0,92,44,53,1, + 0,0,0,0,0,0,114,45,92,44,82,93,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,32,0,67,44,83,16,26,0,114,47, + 92,47,34,0,53,0,0,0,0,0,0,0,114,47,92,5, + 34,0,92,47,53,1,0,0,0,0,0,0,114,48,67,47, + 83,17,26,0,114,49,24,0,34,0,83,18,26,0,83,19, + 92,2,83,20,57,3,114,50,24,0,34,0,83,21,26,0, + 83,22,92,2,83,20,57,3,114,51,24,0,34,0,83,23, + 26,0,83,24,92,51,53,3,0,0,0,0,0,0,114,52, + 92,52,82,107,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,45,53,1,0,0,0,0,0,0, + 32,0,24,0,34,0,83,25,26,0,83,26,92,2,83,20, + 57,3,114,54,24,0,34,0,83,27,26,0,83,28,92,54, + 53,3,0,0,0,0,0,0,114,55,24,0,34,0,83,29, + 26,0,83,30,92,55,53,3,0,0,0,0,0,0,114,56, + 92,56,82,107,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,48,53,1,0,0,0,0,0,0, + 32,0,24,0,34,0,83,31,26,0,83,32,92,2,83,20, + 57,3,114,57,24,0,34,0,83,33,26,0,83,34,92,57, + 53,3,0,0,0,0,0,0,114,58,92,58,82,107,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,101,46,171,1,0,0,0,0,0,0,1,0,2,0, - 71,0,100,30,132,0,100,31,101,2,172,19,171,3,0,0, - 0,0,0,0,90,55,2,0,71,0,100,32,132,0,100,33, - 101,55,171,3,0,0,0,0,0,0,90,56,101,56,106,103, + 92,15,53,1,0,0,0,0,0,0,32,0,92,58,82,107, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,101,15,171,1,0,0,0,0,0,0,1,0,101,56, - 106,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,101,17,171,1,0,0,0,0,0,0,1,0, - 101,56,106,103,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,101,19,171,1,0,0,0,0,0,0, - 1,0,101,56,106,103,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,101,21,171,1,0,0,0,0, - 0,0,1,0,101,56,106,103,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,101,23,171,1,0,0, - 0,0,0,0,1,0,101,56,106,103,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,101,24,171,1, - 0,0,0,0,0,0,1,0,101,56,106,103,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,26, - 171,1,0,0,0,0,0,0,1,0,101,56,106,103,0,0, + 0,0,92,17,53,1,0,0,0,0,0,0,32,0,92,58, + 82,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,92,19,53,1,0,0,0,0,0,0,32,0, + 92,58,82,107,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,21,53,1,0,0,0,0,0,0, + 32,0,92,58,82,107,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,92,23,53,1,0,0,0,0, + 0,0,32,0,92,58,82,107,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,92,24,53,1,0,0, + 0,0,0,0,32,0,92,58,82,107,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,92,26,53,1, + 0,0,0,0,0,0,32,0,92,58,82,107,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,28, + 53,1,0,0,0,0,0,0,32,0,92,58,82,107,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 101,28,171,1,0,0,0,0,0,0,1,0,101,56,106,103, + 92,29,53,1,0,0,0,0,0,0,32,0,92,58,82,107, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,101,29,171,1,0,0,0,0,0,0,1,0,101,56, - 106,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,101,31,171,1,0,0,0,0,0,0,1,0, - 101,56,106,103,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,101,32,171,1,0,0,0,0,0,0, - 1,0,101,56,106,103,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,101,33,171,1,0,0,0,0, - 0,0,1,0,101,56,106,103,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,101,35,171,1,0,0, - 0,0,0,0,1,0,2,0,71,0,100,34,132,0,100,35, - 101,55,171,3,0,0,0,0,0,0,90,57,2,0,71,0, - 100,36,132,0,100,37,101,56,171,3,0,0,0,0,0,0, - 90,58,101,58,106,103,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,101,41,171,1,0,0,0,0, - 0,0,1,0,2,0,71,0,100,38,132,0,100,39,101,2, - 172,19,171,3,0,0,0,0,0,0,90,59,2,0,71,0, - 100,40,132,0,100,41,101,2,172,19,171,3,0,0,0,0, - 0,0,90,60,2,0,71,0,100,42,132,0,100,43,101,59, - 101,55,101,60,171,5,0,0,0,0,0,0,90,61,2,0, - 71,0,100,44,132,0,100,45,101,2,172,19,171,3,0,0, - 0,0,0,0,90,62,2,0,71,0,100,46,132,0,100,47, - 101,8,171,3,0,0,0,0,0,0,90,63,100,48,132,0, - 90,64,100,49,132,0,90,65,2,0,71,0,100,50,132,0, - 100,51,101,2,172,19,171,3,0,0,0,0,0,0,90,66, - 2,0,71,0,100,52,132,0,100,53,101,61,171,3,0,0, - 0,0,0,0,90,67,101,67,106,103,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,101,68,171,1, - 0,0,0,0,0,0,1,0,2,0,71,0,100,54,132,0, - 100,55,101,67,171,3,0,0,0,0,0,0,90,69,101,69, - 106,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,101,30,171,1,0,0,0,0,0,0,1,0, - 2,0,71,0,100,56,132,0,100,57,101,61,171,3,0,0, - 0,0,0,0,90,70,101,70,106,103,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,101,40,171,1, - 0,0,0,0,0,0,1,0,2,0,71,0,100,58,132,0, - 100,59,101,59,171,3,0,0,0,0,0,0,90,71,2,0, - 71,0,100,60,132,0,100,61,101,71,101,67,171,4,0,0, - 0,0,0,0,90,72,101,72,106,103,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,101,36,171,1, - 0,0,0,0,0,0,1,0,2,0,71,0,100,62,132,0, - 100,63,101,71,101,67,171,4,0,0,0,0,0,0,90,73, - 101,73,106,103,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,101,38,171,1,0,0,0,0,0,0, - 1,0,2,0,71,0,100,64,132,0,100,65,101,71,101,61, - 171,4,0,0,0,0,0,0,90,74,101,74,106,103,0,0, + 0,0,92,31,53,1,0,0,0,0,0,0,32,0,92,58, + 82,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,92,32,53,1,0,0,0,0,0,0,32,0, + 92,58,82,107,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,33,53,1,0,0,0,0,0,0, + 32,0,92,58,82,107,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,92,35,53,1,0,0,0,0, + 0,0,32,0,24,0,34,0,83,35,26,0,83,36,92,57, + 53,3,0,0,0,0,0,0,114,59,24,0,34,0,83,37, + 26,0,83,38,92,58,53,3,0,0,0,0,0,0,114,60, + 92,60,82,107,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,43,53,1,0,0,0,0,0,0, + 32,0,24,0,34,0,83,39,26,0,83,40,92,2,83,20, + 57,3,114,61,24,0,34,0,83,41,26,0,83,42,92,2, + 83,20,57,3,114,62,24,0,34,0,83,43,26,0,83,44, + 92,61,92,57,92,62,53,5,0,0,0,0,0,0,114,63, + 24,0,34,0,83,45,26,0,83,46,92,2,83,20,57,3, + 114,64,24,0,34,0,83,47,26,0,83,48,92,8,53,3, + 0,0,0,0,0,0,114,65,83,49,26,0,114,66,83,50, + 26,0,114,67,24,0,34,0,83,51,26,0,83,52,92,2, + 83,20,57,3,114,68,24,0,34,0,83,53,26,0,83,54, + 92,63,53,3,0,0,0,0,0,0,114,69,92,69,82,107, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 101,37,171,1,0,0,0,0,0,0,1,0,2,0,71,0, - 100,66,132,0,100,67,101,70,171,3,0,0,0,0,0,0, - 90,75,101,75,106,103,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,101,76,171,1,0,0,0,0, - 0,0,1,0,2,0,71,0,100,68,132,0,100,69,101,57, - 101,61,171,4,0,0,0,0,0,0,90,77,101,77,106,103, + 0,0,92,70,53,1,0,0,0,0,0,0,32,0,24,0, + 34,0,83,55,26,0,83,56,92,69,53,3,0,0,0,0, + 0,0,114,71,92,71,82,107,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,92,30,53,1,0,0, + 0,0,0,0,32,0,24,0,34,0,83,57,26,0,83,58, + 92,63,53,3,0,0,0,0,0,0,114,72,92,72,82,107, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,101,78,171,1,0,0,0,0,0,0,1,0,101,77, - 106,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,101,79,171,1,0,0,0,0,0,0,1,0, - 101,77,106,103,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,101,27,171,1,0,0,0,0,0,0, - 1,0,101,77,106,103,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,101,80,171,1,0,0,0,0, - 0,0,1,0,2,0,71,0,100,70,132,0,100,71,101,2, - 171,3,0,0,0,0,0,0,90,81,2,0,71,0,100,72, - 132,0,100,73,101,77,101,81,172,19,171,4,0,0,0,0, - 0,0,90,82,101,82,106,103,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,101,83,171,1,0,0, - 0,0,0,0,1,0,101,82,106,103,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,101,16,171,1, - 0,0,0,0,0,0,1,0,2,0,71,0,100,74,132,0, - 100,75,101,77,171,3,0,0,0,0,0,0,90,84,101,84, - 106,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,101,6,171,1,0,0,0,0,0,0,1,0, - 101,84,106,103,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,101,16,171,1,0,0,0,0,0,0, - 1,0,121,3,41,76,122,106,65,98,115,116,114,97,99,116, - 32,66,97,115,101,32,67,108,97,115,115,101,115,32,40,65, - 66,67,115,41,32,102,111,114,32,99,111,108,108,101,99,116, - 105,111,110,115,44,32,97,99,99,111,114,100,105,110,103,32, - 116,111,32,80,69,80,32,51,49,49,57,46,10,10,85,110, - 105,116,32,116,101,115,116,115,32,97,114,101,32,105,110,32, - 116,101,115,116,95,99,111,108,108,101,99,116,105,111,110,115, - 46,10,233,0,0,0,0,41,2,218,7,65,66,67,77,101, - 116,97,218,14,97,98,115,116,114,97,99,116,109,101,116,104, - 111,100,78,46,99,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,243,4,0,0,0,151,0, - 121,0,169,1,78,169,0,114,7,0,0,0,243,0,0,0, - 0,250,25,60,102,114,111,122,101,110,32,95,99,111,108,108, - 101,99,116,105,111,110,115,95,97,98,99,62,218,2,95,102, - 114,10,0,0,0,40,0,0,0,115,4,0,0,0,128,0, - 136,36,114,8,0,0,0,41,26,218,9,65,119,97,105,116, - 97,98,108,101,218,9,67,111,114,111,117,116,105,110,101,218, - 13,65,115,121,110,99,73,116,101,114,97,98,108,101,218,13, - 65,115,121,110,99,73,116,101,114,97,116,111,114,218,14,65, - 115,121,110,99,71,101,110,101,114,97,116,111,114,218,8,72, - 97,115,104,97,98,108,101,218,8,73,116,101,114,97,98,108, - 101,218,8,73,116,101,114,97,116,111,114,218,9,71,101,110, - 101,114,97,116,111,114,218,10,82,101,118,101,114,115,105,98, - 108,101,218,5,83,105,122,101,100,218,9,67,111,110,116,97, - 105,110,101,114,218,8,67,97,108,108,97,98,108,101,218,10, - 67,111,108,108,101,99,116,105,111,110,218,3,83,101,116,218, - 10,77,117,116,97,98,108,101,83,101,116,218,7,77,97,112, - 112,105,110,103,218,14,77,117,116,97,98,108,101,77,97,112, - 112,105,110,103,218,11,77,97,112,112,105,110,103,86,105,101, - 119,218,8,75,101,121,115,86,105,101,119,218,9,73,116,101, - 109,115,86,105,101,119,218,10,86,97,108,117,101,115,86,105, - 101,119,218,8,83,101,113,117,101,110,99,101,218,15,77,117, - 116,97,98,108,101,83,101,113,117,101,110,99,101,218,10,66, - 121,116,101,83,116,114,105,110,103,218,6,66,117,102,102,101, - 114,122,15,99,111,108,108,101,99,116,105,111,110,115,46,97, - 98,99,114,8,0,0,0,233,1,0,0,0,105,232,3,0, - 0,218,0,114,7,0,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,35,0,0,0,243,14,0, - 0,0,75,0,1,0,151,0,100,0,150,0,151,1,83,0, - 114,6,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,114,9,0,0,0,218,8,60,108,97,109,98, - 100,97,62,114,40,0,0,0,88,0,0,0,115,7,0,0, - 0,232,0,248,128,0,155,53,114,8,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,131,0, - 0,0,243,12,0,0,0,75,0,1,0,151,0,121,0,173, - 3,119,1,114,6,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,114,9,0,0,0,218,5,95,99, - 111,114,111,114,42,0,0,0,90,0,0,0,115,8,0,0, - 0,232,0,248,128,0,144,52,249,243,4,0,0,0,130,2, - 4,1,99,0,0,0,0,0,0,0,0,0,0,0,0,2, - 0,0,0,3,2,0,0,243,22,0,0,0,75,0,1,0, - 151,0,100,0,173,4,150,1,151,1,1,0,121,0,173,3, - 119,1,114,6,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,9,0,0,0,218,3,95,97,103, - 114,45,0,0,0,96,0,0,0,115,8,0,0,0,232,0, - 248,128,0,149,21,249,243,4,0,0,0,130,7,9,1,99, - 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 7,0,0,0,243,152,0,0,0,151,0,124,0,106,0,0, + 0,0,92,40,53,1,0,0,0,0,0,0,32,0,92,72, + 82,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,92,42,53,1,0,0,0,0,0,0,32,0, + 24,0,34,0,83,59,26,0,83,60,92,61,53,3,0,0, + 0,0,0,0,114,73,24,0,34,0,83,61,26,0,83,62, + 92,73,92,69,53,4,0,0,0,0,0,0,114,74,92,74, + 82,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,92,36,53,1,0,0,0,0,0,0,32,0, + 24,0,34,0,83,63,26,0,83,64,92,73,92,69,53,4, + 0,0,0,0,0,0,114,75,92,75,82,107,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,38, + 53,1,0,0,0,0,0,0,32,0,24,0,34,0,83,65, + 26,0,83,66,92,73,92,63,53,4,0,0,0,0,0,0, + 114,76,92,76,82,107,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,92,37,53,1,0,0,0,0, + 0,0,32,0,24,0,34,0,83,67,26,0,83,68,92,72, + 53,3,0,0,0,0,0,0,114,77,92,77,82,107,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 92,78,53,1,0,0,0,0,0,0,32,0,24,0,34,0, + 83,69,26,0,83,70,92,59,92,63,53,4,0,0,0,0, + 0,0,114,79,92,79,82,107,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,92,80,53,1,0,0, + 0,0,0,0,32,0,92,79,82,107,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,92,81,53,1, + 0,0,0,0,0,0,32,0,92,79,82,107,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,27, + 53,1,0,0,0,0,0,0,32,0,92,79,82,107,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,125,2,124,1,68,0,93,57,0,0,125,3,124,2,68, - 0,93,43,0,0,125,4,124,3,124,4,106,2,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118, - 0,115,1,140,18,124,4,106,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,3,25,0,0, - 0,128,10,116,4,0,0,0,0,0,0,0,0,99,2,1, - 0,99,2,1,0,83,0,1,0,140,50,4,0,116,4,0, - 0,0,0,0,0,0,0,99,2,1,0,83,0,4,0,121, + 92,82,53,1,0,0,0,0,0,0,32,0,24,0,34,0, + 83,71,26,0,83,72,92,2,53,3,0,0,0,0,0,0, + 114,83,24,0,34,0,83,73,26,0,83,74,92,79,92,83, + 83,20,57,4,114,84,92,84,82,107,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,92,85,53,1, + 0,0,0,0,0,0,32,0,92,84,82,107,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,16, + 53,1,0,0,0,0,0,0,32,0,24,0,34,0,83,75, + 26,0,83,76,92,79,53,3,0,0,0,0,0,0,114,86, + 92,86,82,107,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,6,53,1,0,0,0,0,0,0, + 32,0,92,86,82,107,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,92,16,53,1,0,0,0,0, + 0,0,32,0,103,3,41,77,122,106,65,98,115,116,114,97, + 99,116,32,66,97,115,101,32,67,108,97,115,115,101,115,32, + 40,65,66,67,115,41,32,102,111,114,32,99,111,108,108,101, + 99,116,105,111,110,115,44,32,97,99,99,111,114,100,105,110, + 103,32,116,111,32,80,69,80,32,51,49,49,57,46,10,10, + 85,110,105,116,32,116,101,115,116,115,32,97,114,101,32,105, + 110,32,116,101,115,116,95,99,111,108,108,101,99,116,105,111, + 110,115,46,10,233,0,0,0,0,41,2,218,7,65,66,67, + 77,101,116,97,218,14,97,98,115,116,114,97,99,116,109,101, + 116,104,111,100,78,46,99,0,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,3,0,0,0,243,4,0,0,0, + 149,0,103,0,169,1,78,169,0,114,7,0,0,0,243,0, + 0,0,0,218,25,60,102,114,111,122,101,110,32,95,99,111, + 108,108,101,99,116,105,111,110,115,95,97,98,99,62,218,2, + 95,102,114,10,0,0,0,40,0,0,0,115,4,0,0,0, + 128,0,136,36,114,8,0,0,0,41,26,218,9,65,119,97, + 105,116,97,98,108,101,218,9,67,111,114,111,117,116,105,110, + 101,218,13,65,115,121,110,99,73,116,101,114,97,98,108,101, + 218,13,65,115,121,110,99,73,116,101,114,97,116,111,114,218, + 14,65,115,121,110,99,71,101,110,101,114,97,116,111,114,218, + 8,72,97,115,104,97,98,108,101,218,8,73,116,101,114,97, + 98,108,101,218,8,73,116,101,114,97,116,111,114,218,9,71, + 101,110,101,114,97,116,111,114,218,10,82,101,118,101,114,115, + 105,98,108,101,218,5,83,105,122,101,100,218,9,67,111,110, + 116,97,105,110,101,114,218,8,67,97,108,108,97,98,108,101, + 218,10,67,111,108,108,101,99,116,105,111,110,218,3,83,101, + 116,218,10,77,117,116,97,98,108,101,83,101,116,218,7,77, + 97,112,112,105,110,103,218,14,77,117,116,97,98,108,101,77, + 97,112,112,105,110,103,218,11,77,97,112,112,105,110,103,86, + 105,101,119,218,8,75,101,121,115,86,105,101,119,218,9,73, + 116,101,109,115,86,105,101,119,218,10,86,97,108,117,101,115, + 86,105,101,119,218,8,83,101,113,117,101,110,99,101,218,15, + 77,117,116,97,98,108,101,83,101,113,117,101,110,99,101,218, + 10,66,121,116,101,83,116,114,105,110,103,218,6,66,117,102, + 102,101,114,122,15,99,111,108,108,101,99,116,105,111,110,115, + 46,97,98,99,114,8,0,0,0,233,1,0,0,0,105,232, + 3,0,0,218,0,114,7,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 82,0,0,0,149,0,91,1,0,0,0,0,0,0,0,0, + 91,2,0,0,0,0,0,0,0,0,82,4,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 53,0,0,0,0,0,0,0,82,6,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,36,0,114,6,0,0,0,41,4,218,4,116, + 121,112,101,218,3,115,121,115,218,9,95,103,101,116,102,114, + 97,109,101,218,8,102,95,108,111,99,97,108,115,114,7,0, + 0,0,114,8,0,0,0,114,9,0,0,0,218,21,95,103, + 101,116,95,102,114,97,109,101,108,111,99,97,108,115,112,114, + 111,120,121,114,44,0,0,0,88,0,0,0,115,25,0,0, + 0,128,0,220,11,15,148,3,151,13,146,13,147,15,215,16, + 40,209,16,40,211,11,41,208,4,41,114,8,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 35,0,0,0,243,14,0,0,0,35,0,32,0,149,0,83, + 0,118,0,149,1,36,0,114,6,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,9,0,0,0, + 218,8,60,108,97,109,98,100,97,62,114,46,0,0,0,92, + 0,0,0,115,6,0,0,0,233,0,128,0,155,53,114,8, + 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,131,0,0,0,243,12,0,0,0,35,0,32, + 0,149,0,103,0,55,3,102,1,114,6,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,9,0, + 0,0,218,5,95,99,111,114,111,114,48,0,0,0,94,0, + 0,0,115,7,0,0,0,233,0,128,0,144,52,249,243,4, + 0,0,0,130,2,4,1,99,0,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,3,2,0,0,243,22,0,0, + 0,35,0,32,0,149,0,83,0,55,4,118,0,149,5,32, + 0,103,0,55,3,102,1,114,6,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,9,0,0,0, + 218,3,95,97,103,114,51,0,0,0,100,0,0,0,115,7, + 0,0,0,233,0,128,0,149,21,249,243,4,0,0,0,130, + 7,9,1,99,1,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,7,0,0,0,243,164,0,0,0,149,0,85, + 0,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,110,2,85,1,19,0,72,62,0,0,110, + 3,85,2,19,0,72,47,0,0,110,4,88,52,82,2,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,59,0,0,0,100,2,0,0,77,20,0,0,85,4,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,3,5,0,0,0,99,10,0,0,91,4,0, + 0,0,0,0,0,0,0,115,2,32,0,115,2,32,0,36, + 0,32,0,77,54,0,0,11,0,32,0,91,4,0,0,0, + 0,0,0,0,0,115,2,32,0,36,0,11,0,32,0,103, 1,41,2,78,84,41,3,218,7,95,95,109,114,111,95,95, 218,8,95,95,100,105,99,116,95,95,218,14,78,111,116,73, 109,112,108,101,109,101,110,116,101,100,41,5,218,1,67,218, 7,109,101,116,104,111,100,115,218,3,109,114,111,218,6,109, 101,116,104,111,100,218,1,66,115,5,0,0,0,32,32,32, 32,32,114,9,0,0,0,218,14,95,99,104,101,99,107,95, - 109,101,116,104,111,100,115,114,56,0,0,0,104,0,0,0, - 115,80,0,0,0,128,0,216,10,11,143,41,137,41,128,67, - 219,18,25,136,6,219,17,20,136,65,216,15,21,152,17,159, - 26,153,26,210,15,35,216,19,20,151,58,145,58,152,102,209, - 19,37,208,19,45,220,27,41,212,20,41,217,16,21,240,9, - 0,18,21,244,12,0,20,34,210,12,33,240,15,0,19,26, - 240,16,0,12,16,114,8,0,0,0,99,0,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,243, - 48,0,0,0,151,0,101,0,90,1,100,0,90,2,100,1, - 90,3,101,4,100,2,132,0,171,0,0,0,0,0,0,0, - 90,5,101,6,100,3,132,0,171,0,0,0,0,0,0,0, - 90,7,121,4,41,5,114,16,0,0,0,114,7,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,243,4,0,0,0,151,0,121,1,169,2, - 78,114,2,0,0,0,114,7,0,0,0,169,1,218,4,115, - 101,108,102,115,1,0,0,0,32,114,9,0,0,0,218,8, - 95,95,104,97,115,104,95,95,122,17,72,97,115,104,97,98, - 108,101,46,95,95,104,97,115,104,95,95,120,0,0,0,243, - 5,0,0,0,128,0,224,15,16,114,8,0,0,0,99,2, + 109,101,116,104,111,100,115,114,62,0,0,0,108,0,0,0, + 115,78,0,0,0,128,0,216,10,11,143,41,137,41,128,67, + 219,18,25,136,6,219,17,20,136,65,216,15,21,159,26,153, + 26,213,15,35,216,19,20,151,58,145,58,152,102,209,19,37, + 209,19,45,220,27,41,212,20,41,218,16,21,241,9,0,18, + 21,244,12,0,20,34,210,12,33,241,15,0,19,26,240,16, + 0,12,16,114,8,0,0,0,99,0,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,0,0,0,0,243,56,0, + 0,0,149,0,92,0,114,1,83,0,114,2,83,1,114,3, + 83,2,114,4,92,5,83,3,26,0,53,0,0,0,0,0, + 0,0,114,6,92,7,83,4,26,0,53,0,0,0,0,0, + 0,0,114,8,83,2,114,9,103,5,41,6,114,16,0,0, + 0,233,120,0,0,0,114,7,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, + 243,4,0,0,0,149,0,103,1,169,2,78,114,2,0,0, + 0,114,7,0,0,0,169,1,218,4,115,101,108,102,115,1, + 0,0,0,32,114,9,0,0,0,218,8,95,95,104,97,115, + 104,95,95,218,17,72,97,115,104,97,98,108,101,46,95,95, + 104,97,115,104,95,95,124,0,0,0,243,5,0,0,0,128, + 0,224,15,16,114,8,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,56, + 0,0,0,149,0,85,0,91,0,0,0,0,0,0,0,0, + 0,76,0,97,12,0,0,91,3,0,0,0,0,0,0,0, + 0,85,1,83,1,53,2,0,0,0,0,0,0,36,0,91, + 4,0,0,0,0,0,0,0,0,36,0,41,2,78,114,69, + 0,0,0,41,3,114,16,0,0,0,114,62,0,0,0,114, + 56,0,0,0,169,2,218,3,99,108,115,114,57,0,0,0, + 115,2,0,0,0,32,32,114,9,0,0,0,218,16,95,95, + 115,117,98,99,108,97,115,115,104,111,111,107,95,95,218,25, + 72,97,115,104,97,98,108,101,46,95,95,115,117,98,99,108, + 97,115,115,104,111,111,107,95,95,128,0,0,0,243,28,0, + 0,0,128,0,224,11,14,148,40,138,63,220,19,33,160,33, + 160,90,211,19,48,208,12,48,220,15,29,208,8,29,114,8, + 0,0,0,78,41,10,218,8,95,95,110,97,109,101,95,95, + 218,10,95,95,109,111,100,117,108,101,95,95,218,12,95,95, + 113,117,97,108,110,97,109,101,95,95,218,15,95,95,102,105, + 114,115,116,108,105,110,101,110,111,95,95,218,9,95,95,115, + 108,111,116,115,95,95,114,4,0,0,0,114,69,0,0,0, + 218,11,99,108,97,115,115,109,101,116,104,111,100,114,75,0, + 0,0,218,21,95,95,115,116,97,116,105,99,95,97,116,116, + 114,105,98,117,116,101,115,95,95,114,7,0,0,0,114,8, + 0,0,0,114,9,0,0,0,114,16,0,0,0,114,16,0, + 0,0,120,0,0,0,243,45,0,0,0,134,0,224,16,18, + 128,73,224,5,19,241,2,1,5,17,243,3,0,6,20,240, + 2,1,5,17,240,6,0,6,17,241,2,3,5,30,243,3, + 0,6,17,243,2,3,5,30,114,8,0,0,0,114,16,0, + 0,0,41,1,218,9,109,101,116,97,99,108,97,115,115,99, + 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 0,0,0,0,243,72,0,0,0,149,0,92,0,114,1,83, + 0,114,2,83,1,114,3,83,2,114,4,92,5,83,3,26, + 0,53,0,0,0,0,0,0,0,114,6,92,7,83,4,26, + 0,53,0,0,0,0,0,0,0,114,8,92,7,34,0,92, + 9,53,1,0,0,0,0,0,0,114,10,83,2,114,11,103, + 5,41,6,114,11,0,0,0,233,135,0,0,0,114,7,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,35,0,0,0,243,20,0,0,0,35,0,32,0, + 149,0,83,0,118,0,149,5,32,0,103,0,55,3,102,1, + 114,6,0,0,0,114,7,0,0,0,114,67,0,0,0,115, + 1,0,0,0,32,114,9,0,0,0,218,9,95,95,97,119, + 97,105,116,95,95,218,19,65,119,97,105,116,97,98,108,101, + 46,95,95,97,119,97,105,116,95,95,139,0,0,0,115,8, + 0,0,0,233,0,128,0,228,8,13,249,115,4,0,0,0, + 130,6,8,1,99,2,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,243,56,0,0,0,149,0, + 85,0,91,0,0,0,0,0,0,0,0,0,76,0,97,12, + 0,0,91,3,0,0,0,0,0,0,0,0,85,1,83,1, + 53,2,0,0,0,0,0,0,36,0,91,4,0,0,0,0, + 0,0,0,0,36,0,41,2,78,114,90,0,0,0,41,3, + 114,11,0,0,0,114,62,0,0,0,114,56,0,0,0,114, + 73,0,0,0,115,2,0,0,0,32,32,114,9,0,0,0, + 114,75,0,0,0,218,26,65,119,97,105,116,97,98,108,101, + 46,95,95,115,117,98,99,108,97,115,115,104,111,111,107,95, + 95,143,0,0,0,115,29,0,0,0,128,0,224,11,14,148, + 41,210,11,27,220,19,33,160,33,160,91,211,19,49,208,12, + 49,220,15,29,208,8,29,114,8,0,0,0,78,41,12,114, + 78,0,0,0,114,79,0,0,0,114,80,0,0,0,114,81, + 0,0,0,114,82,0,0,0,114,4,0,0,0,114,90,0, + 0,0,114,83,0,0,0,114,75,0,0,0,218,12,71,101, + 110,101,114,105,99,65,108,105,97,115,218,17,95,95,99,108, + 97,115,115,95,103,101,116,105,116,101,109,95,95,114,84,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,9,0,0, + 0,114,11,0,0,0,114,11,0,0,0,135,0,0,0,115, + 58,0,0,0,134,0,224,16,18,128,73,224,5,19,241,2, + 1,5,14,243,3,0,6,20,240,2,1,5,14,240,6,0, + 6,17,241,2,3,5,30,243,3,0,6,17,240,2,3,5, + 30,241,10,0,25,36,160,76,211,24,49,211,4,21,114,8, + 0,0,0,114,11,0,0,0,99,0,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,0,0,0,0,243,82,0, + 0,0,149,0,92,0,114,1,83,0,114,2,83,1,114,3, + 83,2,114,4,92,5,83,3,26,0,53,0,0,0,0,0, + 0,0,114,6,92,5,83,8,83,5,26,0,106,1,53,0, + 0,0,0,0,0,0,114,7,83,6,26,0,114,8,92,9, + 83,7,26,0,53,0,0,0,0,0,0,0,114,10,83,2, + 114,11,103,4,41,9,114,12,0,0,0,233,152,0,0,0, + 114,7,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,243,14,0,0,0,149, + 0,91,0,0,0,0,0,0,0,0,0,101,1,41,1,122, + 83,83,101,110,100,32,97,32,118,97,108,117,101,32,105,110, + 116,111,32,116,104,101,32,99,111,114,111,117,116,105,110,101, + 46,10,82,101,116,117,114,110,32,110,101,120,116,32,121,105, + 101,108,100,101,100,32,118,97,108,117,101,32,111,114,32,114, + 97,105,115,101,32,83,116,111,112,73,116,101,114,97,116,105, + 111,110,46,10,169,1,218,13,83,116,111,112,73,116,101,114, + 97,116,105,111,110,169,2,114,68,0,0,0,218,5,118,97, + 108,117,101,115,2,0,0,0,32,32,114,9,0,0,0,218, + 4,115,101,110,100,218,14,67,111,114,111,117,116,105,110,101, + 46,115,101,110,100,156,0,0,0,243,10,0,0,0,128,0, + 244,10,0,15,28,208,8,27,114,8,0,0,0,78,99,4, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, + 0,0,0,243,76,0,0,0,149,0,85,2,99,12,0,0, + 85,3,99,2,0,0,85,1,101,1,85,1,34,0,53,0, + 0,0,0,0,0,0,110,2,85,3,98,17,0,0,85,2, + 82,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,3,53,1,0,0,0,0,0,0,110,2, + 85,2,101,1,41,1,122,87,82,97,105,115,101,32,97,110, + 32,101,120,99,101,112,116,105,111,110,32,105,110,32,116,104, + 101,32,99,111,114,111,117,116,105,110,101,46,10,82,101,116, + 117,114,110,32,110,101,120,116,32,121,105,101,108,100,101,100, + 32,118,97,108,117,101,32,111,114,32,114,97,105,115,101,32, + 83,116,111,112,73,116,101,114,97,116,105,111,110,46,10,169, + 1,218,14,119,105,116,104,95,116,114,97,99,101,98,97,99, + 107,169,4,114,68,0,0,0,218,3,116,121,112,218,3,118, + 97,108,218,2,116,98,115,4,0,0,0,32,32,32,32,114, + 9,0,0,0,218,5,116,104,114,111,119,218,15,67,111,114, + 111,117,116,105,110,101,46,116,104,114,111,119,163,0,0,0, + 243,52,0,0,0,128,0,240,10,0,12,15,137,59,216,15, + 17,137,122,216,22,25,144,9,217,18,21,147,37,136,67,216, + 11,13,137,62,216,18,21,215,18,36,209,18,36,160,82,211, + 18,40,136,67,216,14,17,136,9,114,8,0,0,0,99,1, 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,54,0,0,0,151,0,124,0,116,0,0,0, - 0,0,0,0,0,0,117,0,114,12,116,3,0,0,0,0, - 0,0,0,0,124,1,100,1,171,2,0,0,0,0,0,0, - 83,0,116,4,0,0,0,0,0,0,0,0,83,0,41,2, - 78,114,62,0,0,0,41,3,114,16,0,0,0,114,56,0, - 0,0,114,50,0,0,0,169,2,218,3,99,108,115,114,51, - 0,0,0,115,2,0,0,0,32,32,114,9,0,0,0,218, - 16,95,95,115,117,98,99,108,97,115,115,104,111,111,107,95, - 95,122,25,72,97,115,104,97,98,108,101,46,95,95,115,117, - 98,99,108,97,115,115,104,111,111,107,95,95,124,0,0,0, - 243,28,0,0,0,128,0,224,11,14,148,40,137,63,220,19, - 33,160,33,160,90,211,19,48,208,12,48,220,15,29,208,8, - 29,114,8,0,0,0,78,41,8,218,8,95,95,110,97,109, - 101,95,95,218,10,95,95,109,111,100,117,108,101,95,95,218, - 12,95,95,113,117,97,108,110,97,109,101,95,95,218,9,95, - 95,115,108,111,116,115,95,95,114,4,0,0,0,114,62,0, - 0,0,218,11,99,108,97,115,115,109,101,116,104,111,100,114, - 67,0,0,0,114,7,0,0,0,114,8,0,0,0,114,9, - 0,0,0,114,16,0,0,0,114,16,0,0,0,116,0,0, - 0,243,45,0,0,0,132,0,224,16,18,128,73,224,5,19, - 241,2,1,5,17,243,3,0,6,20,240,2,1,5,17,240, - 6,0,6,17,241,2,3,5,30,243,3,0,6,17,241,2, - 3,5,30,114,8,0,0,0,114,16,0,0,0,41,1,218, - 9,109,101,116,97,99,108,97,115,115,99,0,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,243, - 64,0,0,0,151,0,101,0,90,1,100,0,90,2,100,1, - 90,3,101,4,100,2,132,0,171,0,0,0,0,0,0,0, - 90,5,101,6,100,3,132,0,171,0,0,0,0,0,0,0, - 90,7,2,0,101,6,101,8,171,1,0,0,0,0,0,0, - 90,9,121,4,41,5,114,11,0,0,0,114,7,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,35,0,0,0,243,20,0,0,0,75,0,1,0,151,0, - 100,0,150,1,151,1,1,0,121,0,173,3,119,1,114,6, - 0,0,0,114,7,0,0,0,114,60,0,0,0,115,1,0, - 0,0,32,114,9,0,0,0,218,9,95,95,97,119,97,105, - 116,95,95,122,19,65,119,97,105,116,97,98,108,101,46,95, - 95,97,119,97,105,116,95,95,135,0,0,0,115,9,0,0, - 0,232,0,248,128,0,228,8,13,249,115,4,0,0,0,130, - 6,8,1,99,2,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,54,0,0,0,151,0,124, - 0,116,0,0,0,0,0,0,0,0,0,117,0,114,12,116, - 3,0,0,0,0,0,0,0,0,124,1,100,1,171,2,0, - 0,0,0,0,0,83,0,116,4,0,0,0,0,0,0,0, - 0,83,0,41,2,78,114,78,0,0,0,41,3,114,11,0, - 0,0,114,56,0,0,0,114,50,0,0,0,114,65,0,0, - 0,115,2,0,0,0,32,32,114,9,0,0,0,114,67,0, - 0,0,122,26,65,119,97,105,116,97,98,108,101,46,95,95, - 115,117,98,99,108,97,115,115,104,111,111,107,95,95,139,0, - 0,0,115,29,0,0,0,128,0,224,11,14,148,41,209,11, - 27,220,19,33,160,33,160,91,211,19,49,208,12,49,220,15, - 29,208,8,29,114,8,0,0,0,78,41,10,114,69,0,0, - 0,114,70,0,0,0,114,71,0,0,0,114,72,0,0,0, - 114,4,0,0,0,114,78,0,0,0,114,73,0,0,0,114, - 67,0,0,0,218,12,71,101,110,101,114,105,99,65,108,105, - 97,115,218,17,95,95,99,108,97,115,115,95,103,101,116,105, - 116,101,109,95,95,114,7,0,0,0,114,8,0,0,0,114, - 9,0,0,0,114,11,0,0,0,114,11,0,0,0,131,0, - 0,0,115,58,0,0,0,132,0,224,16,18,128,73,224,5, - 19,241,2,1,5,14,243,3,0,6,20,240,2,1,5,14, - 240,6,0,6,17,241,2,3,5,30,243,3,0,6,17,240, - 2,3,5,30,241,10,0,25,36,160,76,211,24,49,209,4, - 21,114,8,0,0,0,114,11,0,0,0,99,0,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0, - 243,72,0,0,0,151,0,101,0,90,1,100,0,90,2,100, - 1,90,3,101,4,100,2,132,0,171,0,0,0,0,0,0, - 0,90,5,101,4,100,7,100,4,132,1,171,0,0,0,0, - 0,0,0,90,6,100,5,132,0,90,7,101,8,100,6,132, - 0,171,0,0,0,0,0,0,0,90,9,121,3,41,8,114, - 12,0,0,0,114,7,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,1,0,0,0,3,0,0,0,243,14, - 0,0,0,151,0,116,0,0,0,0,0,0,0,0,0,130, - 1,41,1,122,99,83,101,110,100,32,97,32,118,97,108,117, - 101,32,105,110,116,111,32,116,104,101,32,99,111,114,111,117, - 116,105,110,101,46,10,32,32,32,32,32,32,32,32,82,101, - 116,117,114,110,32,110,101,120,116,32,121,105,101,108,100,101, - 100,32,118,97,108,117,101,32,111,114,32,114,97,105,115,101, - 32,83,116,111,112,73,116,101,114,97,116,105,111,110,46,10, - 32,32,32,32,32,32,32,32,169,1,218,13,83,116,111,112, - 73,116,101,114,97,116,105,111,110,169,2,114,61,0,0,0, - 218,5,118,97,108,117,101,115,2,0,0,0,32,32,114,9, - 0,0,0,218,4,115,101,110,100,122,14,67,111,114,111,117, - 116,105,110,101,46,115,101,110,100,152,0,0,0,243,10,0, - 0,0,128,0,244,10,0,15,28,208,8,27,114,8,0,0, - 0,78,99,4,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,70,0,0,0,151,0,124,2, - 128,11,124,3,128,2,124,1,130,1,2,0,124,1,171,0, - 0,0,0,0,0,0,125,2,124,3,129,17,124,2,106,1, + 0,0,0,243,112,0,0,0,149,0,30,0,85,0,82,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,3,171,1,0,0,0,0,0,0,125,2,124,2, - 130,1,41,1,122,103,82,97,105,115,101,32,97,110,32,101, - 120,99,101,112,116,105,111,110,32,105,110,32,116,104,101,32, - 99,111,114,111,117,116,105,110,101,46,10,32,32,32,32,32, - 32,32,32,82,101,116,117,114,110,32,110,101,120,116,32,121, - 105,101,108,100,101,100,32,118,97,108,117,101,32,111,114,32, - 114,97,105,115,101,32,83,116,111,112,73,116,101,114,97,116, - 105,111,110,46,10,32,32,32,32,32,32,32,32,169,1,218, - 14,119,105,116,104,95,116,114,97,99,101,98,97,99,107,169, - 4,114,61,0,0,0,218,3,116,121,112,218,3,118,97,108, - 218,2,116,98,115,4,0,0,0,32,32,32,32,114,9,0, - 0,0,218,5,116,104,114,111,119,122,15,67,111,114,111,117, - 116,105,110,101,46,116,104,114,111,119,159,0,0,0,243,52, - 0,0,0,128,0,240,10,0,12,15,136,59,216,15,17,136, - 122,216,22,25,144,9,217,18,21,147,37,136,67,216,11,13, - 136,62,216,18,21,215,18,36,209,18,36,160,82,211,18,40, - 136,67,216,14,17,136,9,114,8,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,110,0,0,0,151,0,9,0,124,0,106,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,2,0,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,1,0,116,5,0,0,0,0,0,0,0,0,100,1, - 171,1,0,0,0,0,0,0,130,1,35,0,116,2,0,0, - 0,0,0,0,0,0,116,6,0,0,0,0,0,0,0,0, - 102,2,36,0,114,3,1,0,89,0,121,2,119,0,120,3, - 89,0,119,1,41,3,250,46,82,97,105,115,101,32,71,101, - 110,101,114,97,116,111,114,69,120,105,116,32,105,110,115,105, - 100,101,32,99,111,114,111,117,116,105,110,101,46,10,32,32, - 32,32,32,32,32,32,122,31,99,111,114,111,117,116,105,110, - 101,32,105,103,110,111,114,101,100,32,71,101,110,101,114,97, - 116,111,114,69,120,105,116,78,169,4,114,97,0,0,0,218, - 13,71,101,110,101,114,97,116,111,114,69,120,105,116,218,12, - 82,117,110,116,105,109,101,69,114,114,111,114,114,85,0,0, - 0,114,60,0,0,0,115,1,0,0,0,32,114,9,0,0, - 0,218,5,99,108,111,115,101,122,15,67,111,114,111,117,116, - 105,110,101,46,99,108,111,115,101,172,0,0,0,243,59,0, - 0,0,128,0,240,6,5,9,66,1,216,12,16,143,74,137, - 74,148,125,212,12,37,244,8,0,19,31,208,31,64,211,18, - 65,208,12,65,248,244,7,0,17,30,156,125,208,15,45,242, - 0,1,9,17,217,12,16,240,3,1,9,17,250,243,12,0, - 0,0,130,21,34,0,162,15,52,3,179,1,52,3,99,2, - 0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,3, - 0,0,0,243,60,0,0,0,151,0,124,0,116,0,0,0, - 0,0,0,0,0,0,117,0,114,15,116,3,0,0,0,0, - 0,0,0,0,124,1,100,1,100,2,100,3,100,4,171,5, - 0,0,0,0,0,0,83,0,116,4,0,0,0,0,0,0, - 0,0,83,0,41,5,78,114,78,0,0,0,114,88,0,0, - 0,114,97,0,0,0,114,104,0,0,0,41,3,114,12,0, - 0,0,114,56,0,0,0,114,50,0,0,0,114,65,0,0, - 0,115,2,0,0,0,32,32,114,9,0,0,0,114,67,0, - 0,0,122,26,67,111,114,111,117,116,105,110,101,46,95,95, - 115,117,98,99,108,97,115,115,104,111,111,107,95,95,182,0, - 0,0,115,35,0,0,0,128,0,224,11,14,148,41,209,11, - 27,220,19,33,160,33,160,91,176,38,184,39,192,55,211,19, - 75,208,12,75,220,15,29,208,8,29,114,8,0,0,0,169, - 2,78,78,41,10,114,69,0,0,0,114,70,0,0,0,114, - 71,0,0,0,114,72,0,0,0,114,4,0,0,0,114,88, - 0,0,0,114,97,0,0,0,114,104,0,0,0,114,73,0, - 0,0,114,67,0,0,0,114,7,0,0,0,114,8,0,0, + 0,0,91,2,0,0,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,32,0,91,5,0,0,0,0,0,0,0,0, + 83,1,53,1,0,0,0,0,0,0,101,1,33,0,91,2, + 0,0,0,0,0,0,0,0,91,6,0,0,0,0,0,0, + 0,0,52,2,7,0,97,3,0,0,32,0,31,0,103,2, + 102,0,61,3,31,0,102,1,41,3,250,46,82,97,105,115, + 101,32,71,101,110,101,114,97,116,111,114,69,120,105,116,32, + 105,110,115,105,100,101,32,99,111,114,111,117,116,105,110,101, + 46,10,32,32,32,32,32,32,32,32,122,31,99,111,114,111, + 117,116,105,110,101,32,105,103,110,111,114,101,100,32,71,101, + 110,101,114,97,116,111,114,69,120,105,116,78,169,4,114,113, + 0,0,0,218,13,71,101,110,101,114,97,116,111,114,69,120, + 105,116,218,12,82,117,110,116,105,109,101,69,114,114,111,114, + 114,100,0,0,0,114,67,0,0,0,115,1,0,0,0,32, + 114,9,0,0,0,218,5,99,108,111,115,101,218,15,67,111, + 114,111,117,116,105,110,101,46,99,108,111,115,101,176,0,0, + 0,243,59,0,0,0,128,0,240,6,5,9,66,1,216,12, + 16,143,74,137,74,148,125,212,12,37,244,8,0,19,31,208, + 31,64,211,18,65,208,12,65,248,244,7,0,17,30,156,125, + 208,15,45,243,0,1,9,17,217,12,16,240,3,1,9,17, + 250,243,12,0,0,0,130,21,34,0,162,16,53,3,180,1, + 53,3,99,2,0,0,0,0,0,0,0,0,0,0,0,7, + 0,0,0,3,0,0,0,243,62,0,0,0,149,0,85,0, + 91,0,0,0,0,0,0,0,0,0,76,0,97,15,0,0, + 91,3,0,0,0,0,0,0,0,0,85,1,83,1,83,2, + 83,3,83,4,53,5,0,0,0,0,0,0,36,0,91,4, + 0,0,0,0,0,0,0,0,36,0,41,5,78,114,90,0, + 0,0,114,103,0,0,0,114,113,0,0,0,114,121,0,0, + 0,41,3,114,12,0,0,0,114,62,0,0,0,114,56,0, + 0,0,114,73,0,0,0,115,2,0,0,0,32,32,114,9, + 0,0,0,114,75,0,0,0,218,26,67,111,114,111,117,116, + 105,110,101,46,95,95,115,117,98,99,108,97,115,115,104,111, + 111,107,95,95,186,0,0,0,115,35,0,0,0,128,0,224, + 11,14,148,41,210,11,27,220,19,33,160,33,160,91,176,38, + 184,39,192,55,211,19,75,208,12,75,220,15,29,208,8,29, + 114,8,0,0,0,169,2,78,78,41,12,114,78,0,0,0, + 114,79,0,0,0,114,80,0,0,0,114,81,0,0,0,114, + 82,0,0,0,114,4,0,0,0,114,103,0,0,0,114,113, + 0,0,0,114,121,0,0,0,114,83,0,0,0,114,75,0, + 0,0,114,84,0,0,0,114,7,0,0,0,114,8,0,0, 0,114,9,0,0,0,114,12,0,0,0,114,12,0,0,0, - 148,0,0,0,115,71,0,0,0,132,0,224,16,18,128,73, + 152,0,0,0,115,71,0,0,0,134,0,224,16,18,128,73, 224,5,19,241,2,4,5,28,243,3,0,6,20,240,2,4, - 5,28,240,12,0,6,20,242,2,10,5,18,243,3,0,6, + 5,28,240,12,0,6,20,243,2,10,5,18,243,3,0,6, 20,240,2,10,5,18,242,24,8,5,66,1,240,20,0,6, - 17,241,2,3,5,30,243,3,0,6,17,241,2,3,5,30, + 17,241,2,3,5,30,243,3,0,6,17,243,2,3,5,30, 114,8,0,0,0,114,12,0,0,0,99,0,0,0,0,0, 0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,243, - 64,0,0,0,151,0,101,0,90,1,100,0,90,2,100,1, - 90,3,101,4,100,2,132,0,171,0,0,0,0,0,0,0, - 90,5,101,6,100,3,132,0,171,0,0,0,0,0,0,0, - 90,7,2,0,101,6,101,8,171,1,0,0,0,0,0,0, - 90,9,121,4,41,5,114,13,0,0,0,114,7,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,3,0,0,0,243,22,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,83,0, - 114,6,0,0,0,41,1,114,14,0,0,0,114,60,0,0, - 0,115,1,0,0,0,32,114,9,0,0,0,218,9,95,95, - 97,105,116,101,114,95,95,122,23,65,115,121,110,99,73,116, - 101,114,97,98,108,101,46,95,95,97,105,116,101,114,95,95, - 196,0,0,0,115,10,0,0,0,128,0,228,15,28,139,127, - 208,8,30,114,8,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,54,0, - 0,0,151,0,124,0,116,0,0,0,0,0,0,0,0,0, - 117,0,114,12,116,3,0,0,0,0,0,0,0,0,124,1, - 100,1,171,2,0,0,0,0,0,0,83,0,116,4,0,0, - 0,0,0,0,0,0,83,0,41,2,78,114,111,0,0,0, - 41,3,114,13,0,0,0,114,56,0,0,0,114,50,0,0, - 0,114,65,0,0,0,115,2,0,0,0,32,32,114,9,0, - 0,0,114,67,0,0,0,122,30,65,115,121,110,99,73,116, - 101,114,97,98,108,101,46,95,95,115,117,98,99,108,97,115, - 115,104,111,111,107,95,95,200,0,0,0,115,29,0,0,0, - 128,0,224,11,14,148,45,209,11,31,220,19,33,160,33,160, - 91,211,19,49,208,12,49,220,15,29,208,8,29,114,8,0, - 0,0,78,41,10,114,69,0,0,0,114,70,0,0,0,114, - 71,0,0,0,114,72,0,0,0,114,4,0,0,0,114,111, - 0,0,0,114,73,0,0,0,114,67,0,0,0,114,80,0, - 0,0,114,81,0,0,0,114,7,0,0,0,114,8,0,0, - 0,114,9,0,0,0,114,13,0,0,0,114,13,0,0,0, - 192,0,0,0,115,58,0,0,0,132,0,224,16,18,128,73, - 224,5,19,241,2,1,5,31,243,3,0,6,20,240,2,1, - 5,31,240,6,0,6,17,241,2,3,5,30,243,3,0,6, - 17,240,2,3,5,30,241,10,0,25,36,160,76,211,24,49, - 209,4,21,114,8,0,0,0,114,13,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0, - 0,0,243,54,0,0,0,151,0,101,0,90,1,100,0,90, - 2,100,1,90,3,101,4,100,2,132,0,171,0,0,0,0, - 0,0,0,90,5,100,3,132,0,90,6,101,7,100,4,132, - 0,171,0,0,0,0,0,0,0,90,8,121,5,41,6,114, - 14,0,0,0,114,7,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,2,0,0,0,131,0,0,0,243,22, - 0,0,0,75,0,1,0,151,0,116,0,0,0,0,0,0, - 0,0,0,130,1,173,3,119,1,41,1,122,64,82,101,116, - 117,114,110,32,116,104,101,32,110,101,120,116,32,105,116,101, - 109,32,111,114,32,114,97,105,115,101,32,83,116,111,112,65, - 115,121,110,99,73,116,101,114,97,116,105,111,110,32,119,104, - 101,110,32,101,120,104,97,117,115,116,101,100,46,169,1,218, - 18,83,116,111,112,65,115,121,110,99,73,116,101,114,97,116, - 105,111,110,114,60,0,0,0,115,1,0,0,0,32,114,9, - 0,0,0,218,9,95,95,97,110,101,120,116,95,95,122,23, - 65,115,121,110,99,73,116,101,114,97,116,111,114,46,95,95, - 97,110,101,120,116,95,95,213,0,0,0,115,14,0,0,0, - 232,0,248,128,0,244,6,0,15,33,208,8,32,249,114,46, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,3,0,0,0,243,6,0,0,0,151,0,124, - 0,83,0,114,6,0,0,0,114,7,0,0,0,114,60,0, - 0,0,115,1,0,0,0,32,114,9,0,0,0,114,111,0, - 0,0,122,23,65,115,121,110,99,73,116,101,114,97,116,111, - 114,46,95,95,97,105,116,101,114,95,95,218,0,0,0,243, - 7,0,0,0,128,0,216,15,19,136,11,114,8,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,3,0,0,0,243,56,0,0,0,151,0,124,0,116,0, - 0,0,0,0,0,0,0,0,117,0,114,13,116,3,0,0, - 0,0,0,0,0,0,124,1,100,1,100,2,171,3,0,0, - 0,0,0,0,83,0,116,4,0,0,0,0,0,0,0,0, - 83,0,41,3,78,114,117,0,0,0,114,111,0,0,0,41, - 3,114,14,0,0,0,114,56,0,0,0,114,50,0,0,0, - 114,65,0,0,0,115,2,0,0,0,32,32,114,9,0,0, - 0,114,67,0,0,0,122,30,65,115,121,110,99,73,116,101, - 114,97,116,111,114,46,95,95,115,117,98,99,108,97,115,115, - 104,111,111,107,95,95,221,0,0,0,115,31,0,0,0,128, - 0,224,11,14,148,45,209,11,31,220,19,33,160,33,160,91, - 176,43,211,19,62,208,12,62,220,15,29,208,8,29,114,8, - 0,0,0,78,41,9,114,69,0,0,0,114,70,0,0,0, - 114,71,0,0,0,114,72,0,0,0,114,4,0,0,0,114, - 117,0,0,0,114,111,0,0,0,114,73,0,0,0,114,67, - 0,0,0,114,7,0,0,0,114,8,0,0,0,114,9,0, - 0,0,114,14,0,0,0,114,14,0,0,0,209,0,0,0, - 115,50,0,0,0,132,0,224,16,18,128,73,224,5,19,241, - 2,2,5,33,243,3,0,6,20,240,2,2,5,33,242,8, - 1,5,20,240,6,0,6,17,241,2,3,5,30,243,3,0, - 6,17,241,2,3,5,30,114,8,0,0,0,114,14,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,0,0,0,0,243,78,0,0,0,151,0,101,0,90, - 1,100,0,90,2,100,1,90,3,100,2,132,0,90,4,101, - 5,100,3,132,0,171,0,0,0,0,0,0,0,90,6,101, - 5,100,8,100,5,132,1,171,0,0,0,0,0,0,0,90, - 7,100,6,132,0,90,8,101,9,100,7,132,0,171,0,0, - 0,0,0,0,0,90,10,121,4,41,9,114,15,0,0,0, + 72,0,0,0,149,0,92,0,114,1,83,0,114,2,83,1, + 114,3,83,2,114,4,92,5,83,3,26,0,53,0,0,0, + 0,0,0,0,114,6,92,7,83,4,26,0,53,0,0,0, + 0,0,0,0,114,8,92,7,34,0,92,9,53,1,0,0, + 0,0,0,0,114,10,83,2,114,11,103,5,41,6,114,13, + 0,0,0,233,196,0,0,0,114,7,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0, + 0,0,243,22,0,0,0,149,0,91,1,0,0,0,0,0, + 0,0,0,53,0,0,0,0,0,0,0,36,0,114,6,0, + 0,0,41,1,114,14,0,0,0,114,67,0,0,0,115,1, + 0,0,0,32,114,9,0,0,0,218,9,95,95,97,105,116, + 101,114,95,95,218,23,65,115,121,110,99,73,116,101,114,97, + 98,108,101,46,95,95,97,105,116,101,114,95,95,200,0,0, + 0,115,10,0,0,0,128,0,228,15,28,139,127,208,8,30, + 114,8,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,4,0,0,0,3,0,0,0,243,56,0,0,0,149, + 0,85,0,91,0,0,0,0,0,0,0,0,0,76,0,97, + 12,0,0,91,3,0,0,0,0,0,0,0,0,85,1,83, + 1,53,2,0,0,0,0,0,0,36,0,91,4,0,0,0, + 0,0,0,0,0,36,0,41,2,78,114,131,0,0,0,41, + 3,114,13,0,0,0,114,62,0,0,0,114,56,0,0,0, + 114,73,0,0,0,115,2,0,0,0,32,32,114,9,0,0, + 0,114,75,0,0,0,218,30,65,115,121,110,99,73,116,101, + 114,97,98,108,101,46,95,95,115,117,98,99,108,97,115,115, + 104,111,111,107,95,95,204,0,0,0,115,29,0,0,0,128, + 0,224,11,14,148,45,210,11,31,220,19,33,160,33,160,91, + 211,19,49,208,12,49,220,15,29,208,8,29,114,8,0,0, + 0,78,41,12,114,78,0,0,0,114,79,0,0,0,114,80, + 0,0,0,114,81,0,0,0,114,82,0,0,0,114,4,0, + 0,0,114,131,0,0,0,114,83,0,0,0,114,75,0,0, + 0,114,94,0,0,0,114,95,0,0,0,114,84,0,0,0, + 114,7,0,0,0,114,8,0,0,0,114,9,0,0,0,114, + 13,0,0,0,114,13,0,0,0,196,0,0,0,115,58,0, + 0,0,134,0,224,16,18,128,73,224,5,19,241,2,1,5, + 31,243,3,0,6,20,240,2,1,5,31,240,6,0,6,17, + 241,2,3,5,30,243,3,0,6,17,240,2,3,5,30,241, + 10,0,25,36,160,76,211,24,49,211,4,21,114,8,0,0, + 0,114,13,0,0,0,99,0,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,0,0,0,0,243,62,0,0,0, + 149,0,92,0,114,1,83,0,114,2,83,1,114,3,83,2, + 114,4,92,5,83,3,26,0,53,0,0,0,0,0,0,0, + 114,6,83,4,26,0,114,7,92,8,83,5,26,0,53,0, + 0,0,0,0,0,0,114,9,83,2,114,10,103,6,41,7, + 114,14,0,0,0,233,213,0,0,0,114,7,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 131,0,0,0,243,22,0,0,0,35,0,32,0,149,0,91, + 0,0,0,0,0,0,0,0,0,101,1,55,3,102,1,41, + 1,122,64,82,101,116,117,114,110,32,116,104,101,32,110,101, + 120,116,32,105,116,101,109,32,111,114,32,114,97,105,115,101, + 32,83,116,111,112,65,115,121,110,99,73,116,101,114,97,116, + 105,111,110,32,119,104,101,110,32,101,120,104,97,117,115,116, + 101,100,46,169,1,218,18,83,116,111,112,65,115,121,110,99, + 73,116,101,114,97,116,105,111,110,114,67,0,0,0,115,1, + 0,0,0,32,114,9,0,0,0,218,9,95,95,97,110,101, + 120,116,95,95,218,23,65,115,121,110,99,73,116,101,114,97, + 116,111,114,46,95,95,97,110,101,120,116,95,95,217,0,0, + 0,115,13,0,0,0,233,0,128,0,244,6,0,15,33,208, + 8,32,249,114,52,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,3,0,0,0,243,6,0, + 0,0,149,0,85,0,36,0,114,6,0,0,0,114,7,0, + 0,0,114,67,0,0,0,115,1,0,0,0,32,114,9,0, + 0,0,114,131,0,0,0,218,23,65,115,121,110,99,73,116, + 101,114,97,116,111,114,46,95,95,97,105,116,101,114,95,95, + 222,0,0,0,243,7,0,0,0,128,0,216,15,19,136,11, + 114,8,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,5,0,0,0,3,0,0,0,243,58,0,0,0,149, + 0,85,0,91,0,0,0,0,0,0,0,0,0,76,0,97, + 13,0,0,91,3,0,0,0,0,0,0,0,0,85,1,83, + 1,83,2,53,3,0,0,0,0,0,0,36,0,91,4,0, + 0,0,0,0,0,0,0,36,0,41,3,78,114,140,0,0, + 0,114,131,0,0,0,41,3,114,14,0,0,0,114,62,0, + 0,0,114,56,0,0,0,114,73,0,0,0,115,2,0,0, + 0,32,32,114,9,0,0,0,114,75,0,0,0,218,30,65, + 115,121,110,99,73,116,101,114,97,116,111,114,46,95,95,115, + 117,98,99,108,97,115,115,104,111,111,107,95,95,225,0,0, + 0,115,31,0,0,0,128,0,224,11,14,148,45,210,11,31, + 220,19,33,160,33,160,91,176,43,211,19,62,208,12,62,220, + 15,29,208,8,29,114,8,0,0,0,78,41,11,114,78,0, + 0,0,114,79,0,0,0,114,80,0,0,0,114,81,0,0, + 0,114,82,0,0,0,114,4,0,0,0,114,140,0,0,0, + 114,131,0,0,0,114,83,0,0,0,114,75,0,0,0,114, + 84,0,0,0,114,7,0,0,0,114,8,0,0,0,114,9, + 0,0,0,114,14,0,0,0,114,14,0,0,0,213,0,0, + 0,115,50,0,0,0,134,0,224,16,18,128,73,224,5,19, + 241,2,2,5,33,243,3,0,6,20,240,2,2,5,33,242, + 8,1,5,20,240,6,0,6,17,241,2,3,5,30,243,3, + 0,6,17,243,2,3,5,30,114,8,0,0,0,114,14,0, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,0,0,0,0,243,88,0,0,0,149,0,92,0, + 114,1,83,0,114,2,83,1,114,3,83,2,114,4,83,3, + 26,0,114,5,92,6,83,4,26,0,53,0,0,0,0,0, + 0,0,114,7,92,6,83,9,83,6,26,0,106,1,53,0, + 0,0,0,0,0,0,114,8,83,7,26,0,114,9,92,10, + 83,8,26,0,53,0,0,0,0,0,0,0,114,11,83,2, + 114,12,103,5,41,10,114,15,0,0,0,233,232,0,0,0, 114,7,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,131,0,0,0,243,64,0,0,0,75, - 0,1,0,151,0,124,0,106,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,1,171,1,0, - 0,0,0,0,0,131,0,100,1,123,3,0,0,150,2,151, - 3,134,5,5,0,83,0,55,0,140,4,173,3,119,1,41, - 2,122,112,82,101,116,117,114,110,32,116,104,101,32,110,101, + 0,0,3,0,0,0,131,0,0,0,243,64,0,0,0,35, + 0,32,0,149,0,85,0,82,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,1,53,1,0, + 0,0,0,0,0,73,0,83,1,104,3,0,0,118,1,149, + 3,78,5,12,0,36,0,8,0,78,4,55,3,102,1,41, + 2,122,96,82,101,116,117,114,110,32,116,104,101,32,110,101, 120,116,32,105,116,101,109,32,102,114,111,109,32,116,104,101, 32,97,115,121,110,99,104,114,111,110,111,117,115,32,103,101, - 110,101,114,97,116,111,114,46,10,32,32,32,32,32,32,32, - 32,87,104,101,110,32,101,120,104,97,117,115,116,101,100,44, + 110,101,114,97,116,111,114,46,10,87,104,101,110,32,101,120, + 104,97,117,115,116,101,100,44,32,114,97,105,115,101,32,83, + 116,111,112,65,115,121,110,99,73,116,101,114,97,116,105,111, + 110,46,10,78,41,1,218,5,97,115,101,110,100,114,67,0, + 0,0,115,1,0,0,0,32,114,9,0,0,0,114,140,0, + 0,0,218,24,65,115,121,110,99,71,101,110,101,114,97,116, + 111,114,46,95,95,97,110,101,120,116,95,95,236,0,0,0, + 115,28,0,0,0,233,0,128,0,240,8,0,22,26,151,90, + 145,90,160,4,211,21,37,215,15,37,208,8,37,209,15,37, + 249,115,12,0,0,0,130,21,30,1,151,1,28,4,152,5, + 30,1,99,2,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,131,0,0,0,243,22,0,0,0,35,0,32,0, + 149,0,91,0,0,0,0,0,0,0,0,0,101,1,55,3, + 102,1,41,1,122,101,83,101,110,100,32,97,32,118,97,108, + 117,101,32,105,110,116,111,32,116,104,101,32,97,115,121,110, + 99,104,114,111,110,111,117,115,32,103,101,110,101,114,97,116, + 111,114,46,10,82,101,116,117,114,110,32,110,101,120,116,32, + 121,105,101,108,100,101,100,32,118,97,108,117,101,32,111,114, 32,114,97,105,115,101,32,83,116,111,112,65,115,121,110,99, - 73,116,101,114,97,116,105,111,110,46,10,32,32,32,32,32, - 32,32,32,78,41,1,218,5,97,115,101,110,100,114,60,0, - 0,0,115,1,0,0,0,32,114,9,0,0,0,114,117,0, - 0,0,122,24,65,115,121,110,99,71,101,110,101,114,97,116, - 111,114,46,95,95,97,110,101,120,116,95,95,232,0,0,0, - 115,29,0,0,0,232,0,248,128,0,240,8,0,22,26,151, - 90,145,90,160,4,211,21,37,215,15,37,208,8,37,208,15, - 37,250,115,12,0,0,0,130,21,30,1,151,1,28,4,152, - 5,30,1,99,2,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,131,0,0,0,243,22,0,0,0,75,0,1, - 0,151,0,116,0,0,0,0,0,0,0,0,0,130,1,173, - 3,119,1,41,1,122,117,83,101,110,100,32,97,32,118,97, - 108,117,101,32,105,110,116,111,32,116,104,101,32,97,115,121, - 110,99,104,114,111,110,111,117,115,32,103,101,110,101,114,97, - 116,111,114,46,10,32,32,32,32,32,32,32,32,82,101,116, - 117,114,110,32,110,101,120,116,32,121,105,101,108,100,101,100, - 32,118,97,108,117,101,32,111,114,32,114,97,105,115,101,32, - 83,116,111,112,65,115,121,110,99,73,116,101,114,97,116,105, - 111,110,46,10,32,32,32,32,32,32,32,32,114,115,0,0, - 0,114,86,0,0,0,115,2,0,0,0,32,32,114,9,0, - 0,0,114,123,0,0,0,122,20,65,115,121,110,99,71,101, - 110,101,114,97,116,111,114,46,97,115,101,110,100,238,0,0, - 0,115,14,0,0,0,232,0,248,128,0,244,10,0,15,33, - 208,8,32,249,114,46,0,0,0,78,99,4,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,131,0,0,0,243, - 78,0,0,0,75,0,1,0,151,0,124,2,128,11,124,3, - 128,2,124,1,130,1,2,0,124,1,171,0,0,0,0,0, - 0,0,125,2,124,3,129,17,124,2,106,1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,3, - 171,1,0,0,0,0,0,0,125,2,124,2,130,1,173,3, - 119,1,41,1,122,121,82,97,105,115,101,32,97,110,32,101, - 120,99,101,112,116,105,111,110,32,105,110,32,116,104,101,32, - 97,115,121,110,99,104,114,111,110,111,117,115,32,103,101,110, - 101,114,97,116,111,114,46,10,32,32,32,32,32,32,32,32, - 82,101,116,117,114,110,32,110,101,120,116,32,121,105,101,108, - 100,101,100,32,118,97,108,117,101,32,111,114,32,114,97,105, - 115,101,32,83,116,111,112,65,115,121,110,99,73,116,101,114, - 97,116,105,111,110,46,10,32,32,32,32,32,32,32,32,114, - 91,0,0,0,114,93,0,0,0,115,4,0,0,0,32,32, - 32,32,114,9,0,0,0,218,6,97,116,104,114,111,119,122, - 21,65,115,121,110,99,71,101,110,101,114,97,116,111,114,46, - 97,116,104,114,111,119,245,0,0,0,115,56,0,0,0,232, - 0,248,128,0,240,10,0,12,15,136,59,216,15,17,136,122, - 216,22,25,144,9,217,18,21,147,37,136,67,216,11,13,136, - 62,216,18,21,215,18,36,209,18,36,160,82,211,18,40,136, - 67,216,14,17,136,9,249,115,4,0,0,0,130,35,37,1, - 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,131,0,0,0,243,138,0,0,0,75,0,1,0,151,0, - 9,0,124,0,106,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,2,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,131,0,100,1,123,3, - 0,0,150,3,151,3,134,5,5,0,1,0,116,5,0,0, - 0,0,0,0,0,0,100,2,171,1,0,0,0,0,0,0, - 130,1,55,0,140,15,35,0,116,2,0,0,0,0,0,0, - 0,0,116,6,0,0,0,0,0,0,0,0,102,2,36,0, - 114,3,1,0,89,0,121,1,119,0,120,3,89,0,119,1, - 173,3,119,1,41,3,114,100,0,0,0,78,122,44,97,115, - 121,110,99,104,114,111,110,111,117,115,32,103,101,110,101,114, - 97,116,111,114,32,105,103,110,111,114,101,100,32,71,101,110, - 101,114,97,116,111,114,69,120,105,116,41,4,114,126,0,0, - 0,114,102,0,0,0,114,103,0,0,0,114,116,0,0,0, - 114,60,0,0,0,115,1,0,0,0,32,114,9,0,0,0, - 218,6,97,99,108,111,115,101,122,21,65,115,121,110,99,71, - 101,110,101,114,97,116,111,114,46,97,99,108,111,115,101,2, - 1,0,0,115,72,0,0,0,232,0,248,128,0,240,6,5, - 9,79,1,216,18,22,151,43,145,43,156,109,211,18,44,215, - 12,44,208,12,44,244,8,0,19,31,208,31,77,211,18,78, - 208,12,78,240,9,0,13,45,249,220,16,29,212,31,49,208, - 15,50,242,0,1,9,17,217,12,16,240,3,1,9,17,252, - 115,47,0,0,0,130,1,65,3,1,132,24,46,0,156,1, - 44,4,157,4,46,0,161,11,65,3,1,172,1,46,0,174, - 15,65,0,3,189,2,65,3,1,191,1,65,0,3,193,0, - 3,65,3,1,99,2,0,0,0,0,0,0,0,0,0,0, - 0,8,0,0,0,3,0,0,0,243,62,0,0,0,151,0, - 124,0,116,0,0,0,0,0,0,0,0,0,117,0,114,16, - 116,3,0,0,0,0,0,0,0,0,124,1,100,1,100,2, - 100,3,100,4,100,5,171,6,0,0,0,0,0,0,83,0, - 116,4,0,0,0,0,0,0,0,0,83,0,41,6,78,114, - 111,0,0,0,114,117,0,0,0,114,123,0,0,0,114,126, - 0,0,0,114,128,0,0,0,41,3,114,15,0,0,0,114, - 56,0,0,0,114,50,0,0,0,114,65,0,0,0,115,2, - 0,0,0,32,32,114,9,0,0,0,114,67,0,0,0,122, - 31,65,115,121,110,99,71,101,110,101,114,97,116,111,114,46, - 95,95,115,117,98,99,108,97,115,115,104,111,111,107,95,95, - 12,1,0,0,115,42,0,0,0,128,0,224,11,14,148,46, - 209,11,32,220,19,33,160,33,160,91,176,43,216,34,41,168, - 56,176,88,243,3,1,20,63,240,0,1,13,63,228,15,29, - 208,8,29,114,8,0,0,0,114,108,0,0,0,41,11,114, - 69,0,0,0,114,70,0,0,0,114,71,0,0,0,114,72, - 0,0,0,114,117,0,0,0,114,4,0,0,0,114,123,0, - 0,0,114,126,0,0,0,114,128,0,0,0,114,73,0,0, - 0,114,67,0,0,0,114,7,0,0,0,114,8,0,0,0, - 114,9,0,0,0,114,15,0,0,0,114,15,0,0,0,228, - 0,0,0,115,78,0,0,0,132,0,224,16,18,128,73,242, - 4,4,5,38,240,12,0,6,20,241,2,4,5,33,243,3, - 0,6,20,240,2,4,5,33,240,12,0,6,20,242,2,10, - 5,18,243,3,0,6,20,240,2,10,5,18,242,24,8,5, - 79,1,240,20,0,6,17,241,2,4,5,30,243,3,0,6, - 17,241,2,4,5,30,114,8,0,0,0,114,15,0,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,0,0,0,0,243,64,0,0,0,151,0,101,0,90,1, - 100,0,90,2,100,1,90,3,101,4,100,2,132,0,171,0, - 0,0,0,0,0,0,90,5,101,6,100,3,132,0,171,0, - 0,0,0,0,0,0,90,7,2,0,101,6,101,8,171,1, - 0,0,0,0,0,0,90,9,121,4,41,5,114,17,0,0, - 0,114,7,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,35,0,0,0,243,12,0,0,0, - 75,0,1,0,151,0,121,0,173,3,119,1,114,6,0,0, - 0,114,7,0,0,0,114,60,0,0,0,115,1,0,0,0, - 32,114,9,0,0,0,218,8,95,95,105,116,101,114,95,95, - 122,17,73,116,101,114,97,98,108,101,46,95,95,105,116,101, - 114,95,95,27,1,0,0,243,9,0,0,0,232,0,248,128, - 0,224,14,19,249,114,43,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, - 54,0,0,0,151,0,124,0,116,0,0,0,0,0,0,0, - 0,0,117,0,114,12,116,3,0,0,0,0,0,0,0,0, - 124,1,100,1,171,2,0,0,0,0,0,0,83,0,116,4, - 0,0,0,0,0,0,0,0,83,0,41,2,78,114,132,0, - 0,0,41,3,114,17,0,0,0,114,56,0,0,0,114,50, - 0,0,0,114,65,0,0,0,115,2,0,0,0,32,32,114, - 9,0,0,0,114,67,0,0,0,122,25,73,116,101,114,97, + 73,116,101,114,97,116,105,111,110,46,10,114,138,0,0,0, + 114,101,0,0,0,115,2,0,0,0,32,32,114,9,0,0, + 0,114,150,0,0,0,218,20,65,115,121,110,99,71,101,110, + 101,114,97,116,111,114,46,97,115,101,110,100,242,0,0,0, + 115,13,0,0,0,233,0,128,0,244,10,0,15,33,208,8, + 32,249,114,52,0,0,0,78,99,4,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,131,0,0,0,243,84,0, + 0,0,35,0,32,0,149,0,85,2,99,12,0,0,85,3, + 99,2,0,0,85,1,101,1,85,1,34,0,53,0,0,0, + 0,0,0,0,110,2,85,3,98,17,0,0,85,2,82,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,3,53,1,0,0,0,0,0,0,110,2,85,2, + 101,1,55,3,102,1,41,1,122,105,82,97,105,115,101,32, + 97,110,32,101,120,99,101,112,116,105,111,110,32,105,110,32, + 116,104,101,32,97,115,121,110,99,104,114,111,110,111,117,115, + 32,103,101,110,101,114,97,116,111,114,46,10,82,101,116,117, + 114,110,32,110,101,120,116,32,121,105,101,108,100,101,100,32, + 118,97,108,117,101,32,111,114,32,114,97,105,115,101,32,83, + 116,111,112,65,115,121,110,99,73,116,101,114,97,116,105,111, + 110,46,10,114,107,0,0,0,114,109,0,0,0,115,4,0, + 0,0,32,32,32,32,114,9,0,0,0,218,6,97,116,104, + 114,111,119,218,21,65,115,121,110,99,71,101,110,101,114,97, + 116,111,114,46,97,116,104,114,111,119,249,0,0,0,115,55, + 0,0,0,233,0,128,0,240,10,0,12,15,137,59,216,15, + 17,137,122,216,22,25,144,9,217,18,21,147,37,136,67,216, + 11,13,137,62,216,18,21,215,18,36,209,18,36,160,82,211, + 18,40,136,67,216,14,17,136,9,249,243,4,0,0,0,130, + 38,40,1,99,1,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,131,0,0,0,243,140,0,0,0,35,0,32, + 0,149,0,30,0,85,0,82,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,91,2,0,0,0, + 0,0,0,0,0,53,1,0,0,0,0,0,0,73,0,83, + 1,104,3,0,0,118,1,149,3,78,5,12,0,32,0,91, + 5,0,0,0,0,0,0,0,0,83,2,53,1,0,0,0, + 0,0,0,101,1,8,0,78,15,33,0,91,2,0,0,0, + 0,0,0,0,0,91,6,0,0,0,0,0,0,0,0,52, + 2,7,0,97,3,0,0,32,0,31,0,103,1,102,0,61, + 3,31,0,102,1,55,3,102,1,41,3,114,117,0,0,0, + 78,122,44,97,115,121,110,99,104,114,111,110,111,117,115,32, + 103,101,110,101,114,97,116,111,114,32,105,103,110,111,114,101, + 100,32,71,101,110,101,114,97,116,111,114,69,120,105,116,41, + 4,114,155,0,0,0,114,119,0,0,0,114,120,0,0,0, + 114,139,0,0,0,114,67,0,0,0,115,1,0,0,0,32, + 114,9,0,0,0,218,6,97,99,108,111,115,101,218,21,65, + 115,121,110,99,71,101,110,101,114,97,116,111,114,46,97,99, + 108,111,115,101,6,1,0,0,115,71,0,0,0,233,0,128, + 0,240,6,5,9,79,1,216,18,22,151,43,145,43,156,109, + 211,18,44,215,12,44,208,12,44,244,8,0,19,31,208,31, + 77,211,18,78,208,12,78,241,9,0,13,45,248,220,16,29, + 212,31,49,208,15,50,243,0,1,9,17,217,12,16,240,3, + 1,9,17,252,115,48,0,0,0,130,1,65,4,1,132,24, + 46,0,156,1,44,4,157,4,46,0,161,11,65,4,1,172, + 1,46,0,174,16,65,1,3,190,2,65,4,1,193,0,1, + 65,1,3,193,1,3,65,4,1,99,2,0,0,0,0,0, + 0,0,0,0,0,0,8,0,0,0,3,0,0,0,243,64, + 0,0,0,149,0,85,0,91,0,0,0,0,0,0,0,0, + 0,76,0,97,16,0,0,91,3,0,0,0,0,0,0,0, + 0,85,1,83,1,83,2,83,3,83,4,83,5,53,6,0, + 0,0,0,0,0,36,0,91,4,0,0,0,0,0,0,0, + 0,36,0,41,6,78,114,131,0,0,0,114,140,0,0,0, + 114,150,0,0,0,114,155,0,0,0,114,159,0,0,0,41, + 3,114,15,0,0,0,114,62,0,0,0,114,56,0,0,0, + 114,73,0,0,0,115,2,0,0,0,32,32,114,9,0,0, + 0,114,75,0,0,0,218,31,65,115,121,110,99,71,101,110, + 101,114,97,116,111,114,46,95,95,115,117,98,99,108,97,115, + 115,104,111,111,107,95,95,16,1,0,0,115,42,0,0,0, + 128,0,224,11,14,148,46,210,11,32,220,19,33,160,33,160, + 91,176,43,216,34,41,168,56,176,88,243,3,1,20,63,240, + 0,1,13,63,228,15,29,208,8,29,114,8,0,0,0,114, + 127,0,0,0,41,13,114,78,0,0,0,114,79,0,0,0, + 114,80,0,0,0,114,81,0,0,0,114,82,0,0,0,114, + 140,0,0,0,114,4,0,0,0,114,150,0,0,0,114,155, + 0,0,0,114,159,0,0,0,114,83,0,0,0,114,75,0, + 0,0,114,84,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,9,0,0,0,114,15,0,0,0,114,15,0,0,0, + 232,0,0,0,115,78,0,0,0,134,0,224,16,18,128,73, + 242,4,4,5,38,240,12,0,6,20,241,2,4,5,33,243, + 3,0,6,20,240,2,4,5,33,240,12,0,6,20,243,2, + 10,5,18,243,3,0,6,20,240,2,10,5,18,242,24,8, + 5,79,1,240,20,0,6,17,241,2,4,5,30,243,3,0, + 6,17,243,2,4,5,30,114,8,0,0,0,114,15,0,0, + 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,0,0,0,0,243,72,0,0,0,149,0,92,0,114, + 1,83,0,114,2,83,1,114,3,83,2,114,4,92,5,83, + 3,26,0,53,0,0,0,0,0,0,0,114,6,92,7,83, + 4,26,0,53,0,0,0,0,0,0,0,114,8,92,7,34, + 0,92,9,53,1,0,0,0,0,0,0,114,10,83,2,114, + 11,103,5,41,6,114,17,0,0,0,105,27,1,0,0,114, + 7,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,2,0,0,0,35,0,0,0,243,12,0,0,0,35,0, + 32,0,149,0,103,0,55,3,102,1,114,6,0,0,0,114, + 7,0,0,0,114,67,0,0,0,115,1,0,0,0,32,114, + 9,0,0,0,218,8,95,95,105,116,101,114,95,95,218,17, + 73,116,101,114,97,98,108,101,46,95,95,105,116,101,114,95, + 95,31,1,0,0,243,8,0,0,0,233,0,128,0,224,14, + 19,249,114,49,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,56,0,0, + 0,149,0,85,0,91,0,0,0,0,0,0,0,0,0,76, + 0,97,12,0,0,91,3,0,0,0,0,0,0,0,0,85, + 1,83,1,53,2,0,0,0,0,0,0,36,0,91,4,0, + 0,0,0,0,0,0,0,36,0,41,2,78,114,165,0,0, + 0,41,3,114,17,0,0,0,114,62,0,0,0,114,56,0, + 0,0,114,73,0,0,0,115,2,0,0,0,32,32,114,9, + 0,0,0,114,75,0,0,0,218,25,73,116,101,114,97,98, + 108,101,46,95,95,115,117,98,99,108,97,115,115,104,111,111, + 107,95,95,36,1,0,0,114,77,0,0,0,114,8,0,0, + 0,78,41,12,114,78,0,0,0,114,79,0,0,0,114,80, + 0,0,0,114,81,0,0,0,114,82,0,0,0,114,4,0, + 0,0,114,165,0,0,0,114,83,0,0,0,114,75,0,0, + 0,114,94,0,0,0,114,95,0,0,0,114,84,0,0,0, + 114,7,0,0,0,114,8,0,0,0,114,9,0,0,0,114, + 17,0,0,0,114,17,0,0,0,27,1,0,0,115,58,0, + 0,0,134,0,224,16,18,128,73,224,5,19,241,2,2,5, + 23,243,3,0,6,20,240,2,2,5,23,240,8,0,6,17, + 241,2,3,5,30,243,3,0,6,17,240,2,3,5,30,241, + 10,0,25,36,160,76,211,24,49,211,4,21,114,8,0,0, + 0,114,17,0,0,0,99,0,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,0,0,0,0,243,62,0,0,0, + 149,0,92,0,114,1,83,0,114,2,83,1,114,3,83,2, + 114,4,92,5,83,3,26,0,53,0,0,0,0,0,0,0, + 114,6,83,4,26,0,114,7,92,8,83,5,26,0,53,0, + 0,0,0,0,0,0,114,9,83,2,114,10,103,6,41,7, + 114,18,0,0,0,105,45,1,0,0,114,7,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 3,0,0,0,243,14,0,0,0,149,0,91,0,0,0,0, + 0,0,0,0,0,101,1,41,1,122,75,82,101,116,117,114, + 110,32,116,104,101,32,110,101,120,116,32,105,116,101,109,32, + 102,114,111,109,32,116,104,101,32,105,116,101,114,97,116,111, + 114,46,32,87,104,101,110,32,101,120,104,97,117,115,116,101, + 100,44,32,114,97,105,115,101,32,83,116,111,112,73,116,101, + 114,97,116,105,111,110,114,99,0,0,0,114,67,0,0,0, + 115,1,0,0,0,32,114,9,0,0,0,218,8,95,95,110, + 101,120,116,95,95,218,17,73,116,101,114,97,116,111,114,46, + 95,95,110,101,120,116,95,95,49,1,0,0,115,10,0,0, + 0,128,0,244,6,0,15,28,208,8,27,114,8,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,3,0,0,0,243,6,0,0,0,149,0,85,0,36,0, + 114,6,0,0,0,114,7,0,0,0,114,67,0,0,0,115, + 1,0,0,0,32,114,9,0,0,0,114,165,0,0,0,218, + 17,73,116,101,114,97,116,111,114,46,95,95,105,116,101,114, + 95,95,54,1,0,0,114,144,0,0,0,114,8,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0, + 0,3,0,0,0,243,58,0,0,0,149,0,85,0,91,0, + 0,0,0,0,0,0,0,0,76,0,97,13,0,0,91,3, + 0,0,0,0,0,0,0,0,85,1,83,1,83,2,53,3, + 0,0,0,0,0,0,36,0,91,4,0,0,0,0,0,0, + 0,0,36,0,41,3,78,114,165,0,0,0,114,172,0,0, + 0,41,3,114,18,0,0,0,114,62,0,0,0,114,56,0, + 0,0,114,73,0,0,0,115,2,0,0,0,32,32,114,9, + 0,0,0,114,75,0,0,0,218,25,73,116,101,114,97,116, + 111,114,46,95,95,115,117,98,99,108,97,115,115,104,111,111, + 107,95,95,57,1,0,0,115,30,0,0,0,128,0,224,11, + 14,148,40,138,63,220,19,33,160,33,160,90,176,26,211,19, + 60,208,12,60,220,15,29,208,8,29,114,8,0,0,0,78, + 41,11,114,78,0,0,0,114,79,0,0,0,114,80,0,0, + 0,114,81,0,0,0,114,82,0,0,0,114,4,0,0,0, + 114,172,0,0,0,114,165,0,0,0,114,83,0,0,0,114, + 75,0,0,0,114,84,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,9,0,0,0,114,18,0,0,0,114,18,0, + 0,0,45,1,0,0,115,50,0,0,0,134,0,224,16,18, + 128,73,224,5,19,241,2,2,5,28,243,3,0,6,20,240, + 2,2,5,28,242,8,1,5,20,240,6,0,6,17,241,2, + 3,5,30,243,3,0,6,17,243,2,3,5,30,114,8,0, + 0,0,114,18,0,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,0,0,0,0,243,56,0,0, + 0,149,0,92,0,114,1,83,0,114,2,83,1,114,3,83, + 2,114,4,92,5,83,3,26,0,53,0,0,0,0,0,0, + 0,114,6,92,7,83,4,26,0,53,0,0,0,0,0,0, + 0,114,8,83,2,114,9,103,5,41,6,114,20,0,0,0, + 105,80,1,0,0,114,7,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,35,0,0,0,243, + 12,0,0,0,35,0,32,0,149,0,103,0,55,3,102,1, + 114,6,0,0,0,114,7,0,0,0,114,67,0,0,0,115, + 1,0,0,0,32,114,9,0,0,0,218,12,95,95,114,101, + 118,101,114,115,101,100,95,95,218,23,82,101,118,101,114,115, + 105,98,108,101,46,95,95,114,101,118,101,114,115,101,100,95, + 95,84,1,0,0,114,167,0,0,0,114,49,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, + 3,0,0,0,243,58,0,0,0,149,0,85,0,91,0,0, + 0,0,0,0,0,0,0,76,0,97,13,0,0,91,3,0, + 0,0,0,0,0,0,0,85,1,83,1,83,2,53,3,0, + 0,0,0,0,0,36,0,91,4,0,0,0,0,0,0,0, + 0,36,0,41,3,78,114,180,0,0,0,114,165,0,0,0, + 41,3,114,20,0,0,0,114,62,0,0,0,114,56,0,0, + 0,114,73,0,0,0,115,2,0,0,0,32,32,114,9,0, + 0,0,114,75,0,0,0,218,27,82,101,118,101,114,115,105, 98,108,101,46,95,95,115,117,98,99,108,97,115,115,104,111, - 111,107,95,95,32,1,0,0,114,68,0,0,0,114,8,0, - 0,0,78,41,10,114,69,0,0,0,114,70,0,0,0,114, - 71,0,0,0,114,72,0,0,0,114,4,0,0,0,114,132, - 0,0,0,114,73,0,0,0,114,67,0,0,0,114,80,0, - 0,0,114,81,0,0,0,114,7,0,0,0,114,8,0,0, - 0,114,9,0,0,0,114,17,0,0,0,114,17,0,0,0, - 23,1,0,0,115,58,0,0,0,132,0,224,16,18,128,73, - 224,5,19,241,2,2,5,23,243,3,0,6,20,240,2,2, - 5,23,240,8,0,6,17,241,2,3,5,30,243,3,0,6, - 17,240,2,3,5,30,241,10,0,25,36,160,76,211,24,49, - 209,4,21,114,8,0,0,0,114,17,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0, - 0,0,243,54,0,0,0,151,0,101,0,90,1,100,0,90, - 2,100,1,90,3,101,4,100,2,132,0,171,0,0,0,0, - 0,0,0,90,5,100,3,132,0,90,6,101,7,100,4,132, - 0,171,0,0,0,0,0,0,0,90,8,121,5,41,6,114, - 18,0,0,0,114,7,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,1,0,0,0,3,0,0,0,243,14, - 0,0,0,151,0,116,0,0,0,0,0,0,0,0,0,130, - 1,41,1,122,75,82,101,116,117,114,110,32,116,104,101,32, - 110,101,120,116,32,105,116,101,109,32,102,114,111,109,32,116, - 104,101,32,105,116,101,114,97,116,111,114,46,32,87,104,101, + 111,107,95,95,89,1,0,0,115,31,0,0,0,128,0,224, + 11,14,148,42,210,11,28,220,19,33,160,33,160,94,176,90, + 211,19,64,208,12,64,220,15,29,208,8,29,114,8,0,0, + 0,78,41,10,114,78,0,0,0,114,79,0,0,0,114,80, + 0,0,0,114,81,0,0,0,114,82,0,0,0,114,4,0, + 0,0,114,180,0,0,0,114,83,0,0,0,114,75,0,0, + 0,114,84,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,9,0,0,0,114,20,0,0,0,114,20,0,0,0,80, + 1,0,0,115,45,0,0,0,134,0,224,16,18,128,73,224, + 5,19,241,2,2,5,23,243,3,0,6,20,240,2,2,5, + 23,240,8,0,6,17,241,2,3,5,30,243,3,0,6,17, + 243,2,3,5,30,114,8,0,0,0,114,20,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 0,0,0,0,243,88,0,0,0,149,0,92,0,114,1,83, + 0,114,2,83,1,114,3,83,2,114,4,83,3,26,0,114, + 5,92,6,83,4,26,0,53,0,0,0,0,0,0,0,114, + 7,92,6,83,9,83,6,26,0,106,1,53,0,0,0,0, + 0,0,0,114,8,83,7,26,0,114,9,92,10,83,8,26, + 0,53,0,0,0,0,0,0,0,114,11,83,2,114,12,103, + 5,41,10,114,19,0,0,0,105,96,1,0,0,114,7,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,243,36,0,0,0,149,0,85,0, + 82,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,1,53,1,0,0,0,0,0,0,36,0, + 41,2,122,78,82,101,116,117,114,110,32,116,104,101,32,110, + 101,120,116,32,105,116,101,109,32,102,114,111,109,32,116,104, + 101,32,103,101,110,101,114,97,116,111,114,46,10,87,104,101, 110,32,101,120,104,97,117,115,116,101,100,44,32,114,97,105, 115,101,32,83,116,111,112,73,116,101,114,97,116,105,111,110, - 114,84,0,0,0,114,60,0,0,0,115,1,0,0,0,32, - 114,9,0,0,0,218,8,95,95,110,101,120,116,95,95,122, - 17,73,116,101,114,97,116,111,114,46,95,95,110,101,120,116, - 95,95,45,1,0,0,115,10,0,0,0,128,0,244,6,0, - 15,28,208,8,27,114,8,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,243, - 6,0,0,0,151,0,124,0,83,0,114,6,0,0,0,114, - 7,0,0,0,114,60,0,0,0,115,1,0,0,0,32,114, - 9,0,0,0,114,132,0,0,0,122,17,73,116,101,114,97, - 116,111,114,46,95,95,105,116,101,114,95,95,50,1,0,0, - 114,119,0,0,0,114,8,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,243, - 56,0,0,0,151,0,124,0,116,0,0,0,0,0,0,0, - 0,0,117,0,114,13,116,3,0,0,0,0,0,0,0,0, - 124,1,100,1,100,2,171,3,0,0,0,0,0,0,83,0, - 116,4,0,0,0,0,0,0,0,0,83,0,41,3,78,114, - 132,0,0,0,114,137,0,0,0,41,3,114,18,0,0,0, - 114,56,0,0,0,114,50,0,0,0,114,65,0,0,0,115, - 2,0,0,0,32,32,114,9,0,0,0,114,67,0,0,0, - 122,25,73,116,101,114,97,116,111,114,46,95,95,115,117,98, - 99,108,97,115,115,104,111,111,107,95,95,53,1,0,0,115, - 30,0,0,0,128,0,224,11,14,148,40,137,63,220,19,33, - 160,33,160,90,176,26,211,19,60,208,12,60,220,15,29,208, - 8,29,114,8,0,0,0,78,41,9,114,69,0,0,0,114, - 70,0,0,0,114,71,0,0,0,114,72,0,0,0,114,4, - 0,0,0,114,137,0,0,0,114,132,0,0,0,114,73,0, - 0,0,114,67,0,0,0,114,7,0,0,0,114,8,0,0, - 0,114,9,0,0,0,114,18,0,0,0,114,18,0,0,0, - 41,1,0,0,115,50,0,0,0,132,0,224,16,18,128,73, - 224,5,19,241,2,2,5,28,243,3,0,6,20,240,2,2, - 5,28,242,8,1,5,20,240,6,0,6,17,241,2,3,5, - 30,243,3,0,6,17,241,2,3,5,30,114,8,0,0,0, - 114,18,0,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,0,0,0,0,243,48,0,0,0,151, - 0,101,0,90,1,100,0,90,2,100,1,90,3,101,4,100, - 2,132,0,171,0,0,0,0,0,0,0,90,5,101,6,100, - 3,132,0,171,0,0,0,0,0,0,0,90,7,121,4,41, - 5,114,20,0,0,0,114,7,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,35,0,0,0, - 243,12,0,0,0,75,0,1,0,151,0,121,0,173,3,119, - 1,114,6,0,0,0,114,7,0,0,0,114,60,0,0,0, - 115,1,0,0,0,32,114,9,0,0,0,218,12,95,95,114, - 101,118,101,114,115,101,100,95,95,122,23,82,101,118,101,114, - 115,105,98,108,101,46,95,95,114,101,118,101,114,115,101,100, - 95,95,80,1,0,0,114,133,0,0,0,114,43,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,3,0,0,0,243,56,0,0,0,151,0,124,0,116,0, - 0,0,0,0,0,0,0,0,117,0,114,13,116,3,0,0, - 0,0,0,0,0,0,124,1,100,1,100,2,171,3,0,0, - 0,0,0,0,83,0,116,4,0,0,0,0,0,0,0,0, - 83,0,41,3,78,114,142,0,0,0,114,132,0,0,0,41, - 3,114,20,0,0,0,114,56,0,0,0,114,50,0,0,0, - 114,65,0,0,0,115,2,0,0,0,32,32,114,9,0,0, - 0,114,67,0,0,0,122,27,82,101,118,101,114,115,105,98, - 108,101,46,95,95,115,117,98,99,108,97,115,115,104,111,111, - 107,95,95,85,1,0,0,115,31,0,0,0,128,0,224,11, - 14,148,42,209,11,28,220,19,33,160,33,160,94,176,90,211, - 19,64,208,12,64,220,15,29,208,8,29,114,8,0,0,0, - 78,41,8,114,69,0,0,0,114,70,0,0,0,114,71,0, - 0,0,114,72,0,0,0,114,4,0,0,0,114,142,0,0, - 0,114,73,0,0,0,114,67,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,9,0,0,0,114,20,0,0,0,114, - 20,0,0,0,76,1,0,0,115,45,0,0,0,132,0,224, - 16,18,128,73,224,5,19,241,2,2,5,23,243,3,0,6, - 20,240,2,2,5,23,240,8,0,6,17,241,2,3,5,30, - 243,3,0,6,17,241,2,3,5,30,114,8,0,0,0,114, - 20,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,0,0,0,0,243,78,0,0,0,151,0, - 101,0,90,1,100,0,90,2,100,1,90,3,100,2,132,0, - 90,4,101,5,100,3,132,0,171,0,0,0,0,0,0,0, - 90,6,101,5,100,8,100,5,132,1,171,0,0,0,0,0, - 0,0,90,7,100,6,132,0,90,8,101,9,100,7,132,0, - 171,0,0,0,0,0,0,0,90,10,121,4,41,9,114,19, - 0,0,0,114,7,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,3,0,0,0,243,36,0, - 0,0,151,0,124,0,106,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,1,171,1,0,0, - 0,0,0,0,83,0,41,2,122,94,82,101,116,117,114,110, - 32,116,104,101,32,110,101,120,116,32,105,116,101,109,32,102, - 114,111,109,32,116,104,101,32,103,101,110,101,114,97,116,111, - 114,46,10,32,32,32,32,32,32,32,32,87,104,101,110,32, - 101,120,104,97,117,115,116,101,100,44,32,114,97,105,115,101, - 32,83,116,111,112,73,116,101,114,97,116,105,111,110,46,10, - 32,32,32,32,32,32,32,32,78,41,1,114,88,0,0,0, - 114,60,0,0,0,115,1,0,0,0,32,114,9,0,0,0, - 114,137,0,0,0,122,18,71,101,110,101,114,97,116,111,114, - 46,95,95,110,101,120,116,95,95,96,1,0,0,115,18,0, - 0,0,128,0,240,8,0,16,20,143,121,137,121,152,20,139, - 127,208,8,30,114,8,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,1,0,0,0,3,0,0,0,243,14, - 0,0,0,151,0,116,0,0,0,0,0,0,0,0,0,130, - 1,41,1,122,99,83,101,110,100,32,97,32,118,97,108,117, - 101,32,105,110,116,111,32,116,104,101,32,103,101,110,101,114, - 97,116,111,114,46,10,32,32,32,32,32,32,32,32,82,101, - 116,117,114,110,32,110,101,120,116,32,121,105,101,108,100,101, - 100,32,118,97,108,117,101,32,111,114,32,114,97,105,115,101, - 32,83,116,111,112,73,116,101,114,97,116,105,111,110,46,10, - 32,32,32,32,32,32,32,32,114,84,0,0,0,114,86,0, - 0,0,115,2,0,0,0,32,32,114,9,0,0,0,114,88, - 0,0,0,122,14,71,101,110,101,114,97,116,111,114,46,115, - 101,110,100,102,1,0,0,114,89,0,0,0,114,8,0,0, - 0,78,99,4,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,70,0,0,0,151,0,124,2, - 128,11,124,3,128,2,124,1,130,1,2,0,124,1,171,0, - 0,0,0,0,0,0,125,2,124,3,129,17,124,2,106,1, + 46,10,78,41,1,114,103,0,0,0,114,67,0,0,0,115, + 1,0,0,0,32,114,9,0,0,0,114,172,0,0,0,218, + 18,71,101,110,101,114,97,116,111,114,46,95,95,110,101,120, + 116,95,95,100,1,0,0,115,18,0,0,0,128,0,240,8, + 0,16,20,143,121,137,121,152,20,139,127,208,8,30,114,8, + 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,3,0,0,0,243,14,0,0,0,149,0,91, + 0,0,0,0,0,0,0,0,0,101,1,41,1,122,83,83, + 101,110,100,32,97,32,118,97,108,117,101,32,105,110,116,111, + 32,116,104,101,32,103,101,110,101,114,97,116,111,114,46,10, + 82,101,116,117,114,110,32,110,101,120,116,32,121,105,101,108, + 100,101,100,32,118,97,108,117,101,32,111,114,32,114,97,105, + 115,101,32,83,116,111,112,73,116,101,114,97,116,105,111,110, + 46,10,114,99,0,0,0,114,101,0,0,0,115,2,0,0, + 0,32,32,114,9,0,0,0,114,103,0,0,0,218,14,71, + 101,110,101,114,97,116,111,114,46,115,101,110,100,106,1,0, + 0,114,105,0,0,0,114,8,0,0,0,78,99,4,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,243,76,0,0,0,149,0,85,2,99,12,0,0,85,3, + 99,2,0,0,85,1,101,1,85,1,34,0,53,0,0,0, + 0,0,0,0,110,2,85,3,98,17,0,0,85,2,82,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,3,171,1,0,0,0,0,0,0,125,2,124,2, - 130,1,41,1,122,103,82,97,105,115,101,32,97,110,32,101, + 0,0,85,3,53,1,0,0,0,0,0,0,110,2,85,2, + 101,1,41,1,122,87,82,97,105,115,101,32,97,110,32,101, 120,99,101,112,116,105,111,110,32,105,110,32,116,104,101,32, - 103,101,110,101,114,97,116,111,114,46,10,32,32,32,32,32, - 32,32,32,82,101,116,117,114,110,32,110,101,120,116,32,121, - 105,101,108,100,101,100,32,118,97,108,117,101,32,111,114,32, - 114,97,105,115,101,32,83,116,111,112,73,116,101,114,97,116, - 105,111,110,46,10,32,32,32,32,32,32,32,32,114,91,0, - 0,0,114,93,0,0,0,115,4,0,0,0,32,32,32,32, - 114,9,0,0,0,114,97,0,0,0,122,15,71,101,110,101, - 114,97,116,111,114,46,116,104,114,111,119,109,1,0,0,114, - 98,0,0,0,114,8,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,110, - 0,0,0,151,0,9,0,124,0,106,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,116,2,0, - 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,1, - 0,116,5,0,0,0,0,0,0,0,0,100,1,171,1,0, - 0,0,0,0,0,130,1,35,0,116,2,0,0,0,0,0, - 0,0,0,116,6,0,0,0,0,0,0,0,0,102,2,36, - 0,114,3,1,0,89,0,121,2,119,0,120,3,89,0,119, - 1,41,3,122,46,82,97,105,115,101,32,71,101,110,101,114, - 97,116,111,114,69,120,105,116,32,105,110,115,105,100,101,32, - 103,101,110,101,114,97,116,111,114,46,10,32,32,32,32,32, - 32,32,32,122,31,103,101,110,101,114,97,116,111,114,32,105, - 103,110,111,114,101,100,32,71,101,110,101,114,97,116,111,114, - 69,120,105,116,78,114,101,0,0,0,114,60,0,0,0,115, - 1,0,0,0,32,114,9,0,0,0,114,104,0,0,0,122, - 15,71,101,110,101,114,97,116,111,114,46,99,108,111,115,101, - 122,1,0,0,114,105,0,0,0,114,106,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,3, - 0,0,0,243,62,0,0,0,151,0,124,0,116,0,0,0, - 0,0,0,0,0,0,117,0,114,16,116,3,0,0,0,0, - 0,0,0,0,124,1,100,1,100,2,100,3,100,4,100,5, - 171,6,0,0,0,0,0,0,83,0,116,4,0,0,0,0, - 0,0,0,0,83,0,41,6,78,114,132,0,0,0,114,137, - 0,0,0,114,88,0,0,0,114,97,0,0,0,114,104,0, - 0,0,41,3,114,19,0,0,0,114,56,0,0,0,114,50, - 0,0,0,114,65,0,0,0,115,2,0,0,0,32,32,114, - 9,0,0,0,114,67,0,0,0,122,26,71,101,110,101,114, - 97,116,111,114,46,95,95,115,117,98,99,108,97,115,115,104, - 111,111,107,95,95,132,1,0,0,115,42,0,0,0,128,0, - 224,11,14,148,41,209,11,27,220,19,33,160,33,160,90,176, - 26,216,34,40,168,39,176,55,243,3,1,20,60,240,0,1, - 13,60,228,15,29,208,8,29,114,8,0,0,0,114,108,0, - 0,0,41,11,114,69,0,0,0,114,70,0,0,0,114,71, - 0,0,0,114,72,0,0,0,114,137,0,0,0,114,4,0, - 0,0,114,88,0,0,0,114,97,0,0,0,114,104,0,0, - 0,114,73,0,0,0,114,67,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,9,0,0,0,114,19,0,0,0,114, - 19,0,0,0,92,1,0,0,115,78,0,0,0,132,0,224, - 16,18,128,73,242,4,4,5,31,240,12,0,6,20,241,2, - 4,5,28,243,3,0,6,20,240,2,4,5,28,240,12,0, - 6,20,242,2,10,5,18,243,3,0,6,20,240,2,10,5, - 18,242,24,8,5,66,1,240,20,0,6,17,241,2,4,5, - 30,243,3,0,6,17,241,2,4,5,30,114,8,0,0,0, - 114,19,0,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,0,0,0,0,243,48,0,0,0,151, - 0,101,0,90,1,100,0,90,2,100,1,90,3,101,4,100, - 2,132,0,171,0,0,0,0,0,0,0,90,5,101,6,100, - 3,132,0,171,0,0,0,0,0,0,0,90,7,121,4,41, - 5,114,21,0,0,0,114,7,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 243,4,0,0,0,151,0,121,1,114,59,0,0,0,114,7, - 0,0,0,114,60,0,0,0,115,1,0,0,0,32,114,9, - 0,0,0,218,7,95,95,108,101,110,95,95,122,13,83,105, - 122,101,100,46,95,95,108,101,110,95,95,147,1,0,0,114, - 63,0,0,0,114,8,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,54, - 0,0,0,151,0,124,0,116,0,0,0,0,0,0,0,0, - 0,117,0,114,12,116,3,0,0,0,0,0,0,0,0,124, - 1,100,1,171,2,0,0,0,0,0,0,83,0,116,4,0, - 0,0,0,0,0,0,0,83,0,41,2,78,114,152,0,0, - 0,41,3,114,21,0,0,0,114,56,0,0,0,114,50,0, - 0,0,114,65,0,0,0,115,2,0,0,0,32,32,114,9, - 0,0,0,114,67,0,0,0,122,22,83,105,122,101,100,46, - 95,95,115,117,98,99,108,97,115,115,104,111,111,107,95,95, - 151,1,0,0,115,28,0,0,0,128,0,224,11,14,148,37, - 137,60,220,19,33,160,33,160,89,211,19,47,208,12,47,220, - 15,29,208,8,29,114,8,0,0,0,78,41,8,114,69,0, - 0,0,114,70,0,0,0,114,71,0,0,0,114,72,0,0, - 0,114,4,0,0,0,114,152,0,0,0,114,73,0,0,0, - 114,67,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 9,0,0,0,114,21,0,0,0,114,21,0,0,0,143,1, - 0,0,114,74,0,0,0,114,8,0,0,0,114,21,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,0,0,0,0,243,64,0,0,0,151,0,101,0,90, - 1,100,0,90,2,100,1,90,3,101,4,100,2,132,0,171, - 0,0,0,0,0,0,0,90,5,101,6,100,3,132,0,171, - 0,0,0,0,0,0,0,90,7,2,0,101,6,101,8,171, - 1,0,0,0,0,0,0,90,9,121,4,41,5,114,22,0, - 0,0,114,7,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,243,4,0,0, - 0,151,0,121,1,169,2,78,70,114,7,0,0,0,41,2, - 114,61,0,0,0,218,1,120,115,2,0,0,0,32,32,114, - 9,0,0,0,218,12,95,95,99,111,110,116,97,105,110,115, - 95,95,122,22,67,111,110,116,97,105,110,101,114,46,95,95, - 99,111,110,116,97,105,110,115,95,95,162,1,0,0,243,5, - 0,0,0,128,0,224,15,20,114,8,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,243,54,0,0,0,151,0,124,0,116,0,0,0,0, - 0,0,0,0,0,117,0,114,12,116,3,0,0,0,0,0, - 0,0,0,124,1,100,1,171,2,0,0,0,0,0,0,83, - 0,116,4,0,0,0,0,0,0,0,0,83,0,41,2,78, - 114,158,0,0,0,41,3,114,22,0,0,0,114,56,0,0, - 0,114,50,0,0,0,114,65,0,0,0,115,2,0,0,0, - 32,32,114,9,0,0,0,114,67,0,0,0,122,26,67,111, - 110,116,97,105,110,101,114,46,95,95,115,117,98,99,108,97, - 115,115,104,111,111,107,95,95,166,1,0,0,115,29,0,0, - 0,128,0,224,11,14,148,41,209,11,27,220,19,33,160,33, - 160,94,211,19,52,208,12,52,220,15,29,208,8,29,114,8, - 0,0,0,78,41,10,114,69,0,0,0,114,70,0,0,0, - 114,71,0,0,0,114,72,0,0,0,114,4,0,0,0,114, - 158,0,0,0,114,73,0,0,0,114,67,0,0,0,114,80, - 0,0,0,114,81,0,0,0,114,7,0,0,0,114,8,0, + 103,101,110,101,114,97,116,111,114,46,10,82,101,116,117,114, + 110,32,110,101,120,116,32,121,105,101,108,100,101,100,32,118, + 97,108,117,101,32,111,114,32,114,97,105,115,101,32,83,116, + 111,112,73,116,101,114,97,116,105,111,110,46,10,114,107,0, + 0,0,114,109,0,0,0,115,4,0,0,0,32,32,32,32, + 114,9,0,0,0,114,113,0,0,0,218,15,71,101,110,101, + 114,97,116,111,114,46,116,104,114,111,119,113,1,0,0,114, + 115,0,0,0,114,8,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,112, + 0,0,0,149,0,30,0,85,0,82,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,91,2,0, + 0,0,0,0,0,0,0,53,1,0,0,0,0,0,0,32, + 0,91,5,0,0,0,0,0,0,0,0,83,1,53,1,0, + 0,0,0,0,0,101,1,33,0,91,2,0,0,0,0,0, + 0,0,0,91,6,0,0,0,0,0,0,0,0,52,2,7, + 0,97,3,0,0,32,0,31,0,103,2,102,0,61,3,31, + 0,102,1,41,3,122,46,82,97,105,115,101,32,71,101,110, + 101,114,97,116,111,114,69,120,105,116,32,105,110,115,105,100, + 101,32,103,101,110,101,114,97,116,111,114,46,10,32,32,32, + 32,32,32,32,32,122,31,103,101,110,101,114,97,116,111,114, + 32,105,103,110,111,114,101,100,32,71,101,110,101,114,97,116, + 111,114,69,120,105,116,78,114,118,0,0,0,114,67,0,0, + 0,115,1,0,0,0,32,114,9,0,0,0,114,121,0,0, + 0,218,15,71,101,110,101,114,97,116,111,114,46,99,108,111, + 115,101,126,1,0,0,114,123,0,0,0,114,124,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,8,0,0, + 0,3,0,0,0,243,64,0,0,0,149,0,85,0,91,0, + 0,0,0,0,0,0,0,0,76,0,97,16,0,0,91,3, + 0,0,0,0,0,0,0,0,85,1,83,1,83,2,83,3, + 83,4,83,5,53,6,0,0,0,0,0,0,36,0,91,4, + 0,0,0,0,0,0,0,0,36,0,41,6,78,114,165,0, + 0,0,114,172,0,0,0,114,103,0,0,0,114,113,0,0, + 0,114,121,0,0,0,41,3,114,19,0,0,0,114,62,0, + 0,0,114,56,0,0,0,114,73,0,0,0,115,2,0,0, + 0,32,32,114,9,0,0,0,114,75,0,0,0,218,26,71, + 101,110,101,114,97,116,111,114,46,95,95,115,117,98,99,108, + 97,115,115,104,111,111,107,95,95,136,1,0,0,115,42,0, + 0,0,128,0,224,11,14,148,41,210,11,27,220,19,33,160, + 33,160,90,176,26,216,34,40,168,39,176,55,243,3,1,20, + 60,240,0,1,13,60,228,15,29,208,8,29,114,8,0,0, + 0,114,127,0,0,0,41,13,114,78,0,0,0,114,79,0, + 0,0,114,80,0,0,0,114,81,0,0,0,114,82,0,0, + 0,114,172,0,0,0,114,4,0,0,0,114,103,0,0,0, + 114,113,0,0,0,114,121,0,0,0,114,83,0,0,0,114, + 75,0,0,0,114,84,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,9,0,0,0,114,19,0,0,0,114,19,0, + 0,0,96,1,0,0,115,78,0,0,0,134,0,224,16,18, + 128,73,242,4,4,5,31,240,12,0,6,20,241,2,4,5, + 28,243,3,0,6,20,240,2,4,5,28,240,12,0,6,20, + 243,2,10,5,18,243,3,0,6,20,240,2,10,5,18,242, + 24,8,5,66,1,240,20,0,6,17,241,2,4,5,30,243, + 3,0,6,17,243,2,4,5,30,114,8,0,0,0,114,19, + 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,0,0,0,0,243,56,0,0,0,149,0,92, + 0,114,1,83,0,114,2,83,1,114,3,83,2,114,4,92, + 5,83,3,26,0,53,0,0,0,0,0,0,0,114,6,92, + 7,83,4,26,0,53,0,0,0,0,0,0,0,114,8,83, + 2,114,9,103,5,41,6,114,21,0,0,0,105,147,1,0, + 0,114,7,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,3,0,0,0,243,4,0,0,0, + 149,0,103,1,114,66,0,0,0,114,7,0,0,0,114,67, + 0,0,0,115,1,0,0,0,32,114,9,0,0,0,218,7, + 95,95,108,101,110,95,95,218,13,83,105,122,101,100,46,95, + 95,108,101,110,95,95,151,1,0,0,114,71,0,0,0,114, + 8,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,243,56,0,0,0,149,0, + 85,0,91,0,0,0,0,0,0,0,0,0,76,0,97,12, + 0,0,91,3,0,0,0,0,0,0,0,0,85,1,83,1, + 53,2,0,0,0,0,0,0,36,0,91,4,0,0,0,0, + 0,0,0,0,36,0,41,2,78,114,197,0,0,0,41,3, + 114,21,0,0,0,114,62,0,0,0,114,56,0,0,0,114, + 73,0,0,0,115,2,0,0,0,32,32,114,9,0,0,0, + 114,75,0,0,0,218,22,83,105,122,101,100,46,95,95,115, + 117,98,99,108,97,115,115,104,111,111,107,95,95,155,1,0, + 0,115,28,0,0,0,128,0,224,11,14,148,37,138,60,220, + 19,33,160,33,160,89,211,19,47,208,12,47,220,15,29,208, + 8,29,114,8,0,0,0,78,41,10,114,78,0,0,0,114, + 79,0,0,0,114,80,0,0,0,114,81,0,0,0,114,82, + 0,0,0,114,4,0,0,0,114,197,0,0,0,114,83,0, + 0,0,114,75,0,0,0,114,84,0,0,0,114,7,0,0, + 0,114,8,0,0,0,114,9,0,0,0,114,21,0,0,0, + 114,21,0,0,0,147,1,0,0,114,85,0,0,0,114,8, + 0,0,0,114,21,0,0,0,99,0,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,0,0,0,0,243,72,0, + 0,0,149,0,92,0,114,1,83,0,114,2,83,1,114,3, + 83,2,114,4,92,5,83,3,26,0,53,0,0,0,0,0, + 0,0,114,6,92,7,83,4,26,0,53,0,0,0,0,0, + 0,0,114,8,92,7,34,0,92,9,53,1,0,0,0,0, + 0,0,114,10,83,2,114,11,103,5,41,6,114,22,0,0, + 0,105,162,1,0,0,114,7,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, + 243,4,0,0,0,149,0,103,1,169,2,78,70,114,7,0, + 0,0,41,2,114,68,0,0,0,218,1,120,115,2,0,0, + 0,32,32,114,9,0,0,0,218,12,95,95,99,111,110,116, + 97,105,110,115,95,95,218,22,67,111,110,116,97,105,110,101, + 114,46,95,95,99,111,110,116,97,105,110,115,95,95,166,1, + 0,0,243,5,0,0,0,128,0,224,15,20,114,8,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,56,0,0,0,149,0,85,0,91, + 0,0,0,0,0,0,0,0,0,76,0,97,12,0,0,91, + 3,0,0,0,0,0,0,0,0,85,1,83,1,53,2,0, + 0,0,0,0,0,36,0,91,4,0,0,0,0,0,0,0, + 0,36,0,41,2,78,114,205,0,0,0,41,3,114,22,0, + 0,0,114,62,0,0,0,114,56,0,0,0,114,73,0,0, + 0,115,2,0,0,0,32,32,114,9,0,0,0,114,75,0, + 0,0,218,26,67,111,110,116,97,105,110,101,114,46,95,95, + 115,117,98,99,108,97,115,115,104,111,111,107,95,95,170,1, + 0,0,115,29,0,0,0,128,0,224,11,14,148,41,210,11, + 27,220,19,33,160,33,160,94,211,19,52,208,12,52,220,15, + 29,208,8,29,114,8,0,0,0,78,41,12,114,78,0,0, + 0,114,79,0,0,0,114,80,0,0,0,114,81,0,0,0, + 114,82,0,0,0,114,4,0,0,0,114,205,0,0,0,114, + 83,0,0,0,114,75,0,0,0,114,94,0,0,0,114,95, + 0,0,0,114,84,0,0,0,114,7,0,0,0,114,8,0, 0,0,114,9,0,0,0,114,22,0,0,0,114,22,0,0, - 0,158,1,0,0,115,58,0,0,0,132,0,224,16,18,128, + 0,162,1,0,0,115,58,0,0,0,134,0,224,16,18,128, 73,224,5,19,241,2,1,5,21,243,3,0,6,20,240,2, 1,5,21,240,6,0,6,17,241,2,3,5,30,243,3,0, 6,17,240,2,3,5,30,241,10,0,25,36,160,76,211,24, - 49,209,4,21,114,8,0,0,0,114,22,0,0,0,99,0, + 49,211,4,21,114,8,0,0,0,114,22,0,0,0,99,0, 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0, - 0,0,0,243,32,0,0,0,151,0,101,0,90,1,100,0, - 90,2,100,1,90,3,101,4,100,2,132,0,171,0,0,0, - 0,0,0,0,90,5,121,3,41,4,114,24,0,0,0,114, - 7,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,6,0,0,0,3,0,0,0,243,58,0,0,0,151,0, - 124,0,116,0,0,0,0,0,0,0,0,0,117,0,114,14, - 116,3,0,0,0,0,0,0,0,0,124,1,100,1,100,2, - 100,3,171,4,0,0,0,0,0,0,83,0,116,4,0,0, - 0,0,0,0,0,0,83,0,41,4,78,114,152,0,0,0, - 114,132,0,0,0,114,158,0,0,0,41,3,114,24,0,0, - 0,114,56,0,0,0,114,50,0,0,0,114,65,0,0,0, - 115,2,0,0,0,32,32,114,9,0,0,0,114,67,0,0, - 0,122,27,67,111,108,108,101,99,116,105,111,110,46,95,95, - 115,117,98,99,108,97,115,115,104,111,111,107,95,95,179,1, - 0,0,115,33,0,0,0,128,0,224,11,14,148,42,209,11, - 28,220,19,33,160,33,160,105,176,26,184,94,211,19,76,208, - 12,76,220,15,29,208,8,29,114,8,0,0,0,78,41,6, - 114,69,0,0,0,114,70,0,0,0,114,71,0,0,0,114, - 72,0,0,0,114,73,0,0,0,114,67,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,9,0,0,0,114,24,0, - 0,0,114,24,0,0,0,175,1,0,0,115,25,0,0,0, - 132,0,224,16,18,128,73,224,5,16,241,2,3,5,30,243, - 3,0,6,17,241,2,3,5,30,114,8,0,0,0,114,24, - 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, - 5,0,0,0,0,0,0,0,243,58,0,0,0,151,0,101, - 0,90,1,100,0,90,2,100,1,90,3,101,4,100,2,101, - 5,100,3,101,6,102,4,100,4,132,4,171,0,0,0,0, - 0,0,0,90,7,101,8,100,5,132,0,171,0,0,0,0, - 0,0,0,90,9,121,6,41,7,114,36,0,0,0,114,7, - 0,0,0,218,5,102,108,97,103,115,218,6,114,101,116,117, - 114,110,99,2,0,0,0,2,0,0,0,0,0,0,0,1, - 0,0,0,3,0,0,0,243,14,0,0,0,151,0,116,0, - 0,0,0,0,0,0,0,0,130,1,114,6,0,0,0,169, - 1,218,19,78,111,116,73,109,112,108,101,109,101,110,116,101, - 100,69,114,114,111,114,41,2,114,61,0,0,0,114,164,0, - 0,0,115,2,0,0,0,32,32,114,9,0,0,0,218,10, - 95,95,98,117,102,102,101,114,95,95,122,17,66,117,102,102, - 101,114,46,95,95,98,117,102,102,101,114,95,95,190,1,0, - 0,115,8,0,0,0,128,0,228,14,33,208,8,33,114,8, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,54,0,0,0,151,0,124, - 0,116,0,0,0,0,0,0,0,0,0,117,0,114,12,116, - 3,0,0,0,0,0,0,0,0,124,1,100,1,171,2,0, - 0,0,0,0,0,83,0,116,4,0,0,0,0,0,0,0, - 0,83,0,41,2,78,114,169,0,0,0,41,3,114,36,0, - 0,0,114,56,0,0,0,114,50,0,0,0,114,65,0,0, - 0,115,2,0,0,0,32,32,114,9,0,0,0,114,67,0, - 0,0,122,23,66,117,102,102,101,114,46,95,95,115,117,98, - 99,108,97,115,115,104,111,111,107,95,95,194,1,0,0,115, - 28,0,0,0,128,0,224,11,14,148,38,137,61,220,19,33, - 160,33,160,92,211,19,50,208,12,50,220,15,29,208,8,29, - 114,8,0,0,0,78,41,10,114,69,0,0,0,114,70,0, - 0,0,114,71,0,0,0,114,72,0,0,0,114,4,0,0, - 0,218,3,105,110,116,218,10,109,101,109,111,114,121,118,105, - 101,119,114,169,0,0,0,114,73,0,0,0,114,67,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,9,0,0,0, - 114,36,0,0,0,114,36,0,0,0,186,1,0,0,115,59, - 0,0,0,132,0,224,16,18,128,73,224,5,19,240,2,1, - 5,34,160,3,240,0,1,5,34,168,58,242,0,1,5,34, - 243,3,0,6,20,240,2,1,5,34,240,6,0,6,17,241, - 2,3,5,30,243,3,0,6,17,241,2,3,5,30,114,8, - 0,0,0,114,36,0,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,0,0,0,0,243,64,0, - 0,0,135,0,151,0,101,0,90,1,100,0,90,2,100,1, - 90,3,100,2,90,4,136,0,102,1,100,3,132,8,90,5, - 136,0,102,1,100,4,132,8,90,6,100,5,132,0,90,7, - 136,0,102,1,100,6,132,8,90,8,136,0,120,1,90,9, - 83,0,41,7,218,21,95,67,97,108,108,97,98,108,101,71, - 101,110,101,114,105,99,65,108,105,97,115,122,252,32,82,101, - 112,114,101,115,101,110,116,32,96,67,97,108,108,97,98,108, - 101,91,97,114,103,116,121,112,101,115,44,32,114,101,115,117, - 108,116,116,121,112,101,93,96,46,10,10,32,32,32,32,84, - 104,105,115,32,115,101,116,115,32,96,96,95,95,97,114,103, - 115,95,95,96,96,32,116,111,32,97,32,116,117,112,108,101, - 32,99,111,110,116,97,105,110,105,110,103,32,116,104,101,32, - 102,108,97,116,116,101,110,101,100,32,96,96,97,114,103,116, - 121,112,101,115,96,96,10,32,32,32,32,102,111,108,108,111, - 119,101,100,32,98,121,32,96,96,114,101,115,117,108,116,116, - 121,112,101,96,96,46,10,10,32,32,32,32,69,120,97,109, - 112,108,101,58,32,96,96,67,97,108,108,97,98,108,101,91, - 91,105,110,116,44,32,115,116,114,93,44,32,102,108,111,97, - 116,93,96,96,32,115,101,116,115,32,96,96,95,95,97,114, - 103,115,95,95,96,96,32,116,111,10,32,32,32,32,96,96, - 40,105,110,116,44,32,115,116,114,44,32,102,108,111,97,116, - 41,96,96,46,10,32,32,32,32,114,7,0,0,0,99,3, - 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,3, - 0,0,0,243,240,0,0,0,149,1,151,0,116,1,0,0, - 0,0,0,0,0,0,124,2,116,2,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,114,14,116,5,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 100,1,107,40,0,0,115,11,116,7,0,0,0,0,0,0, - 0,0,100,2,171,1,0,0,0,0,0,0,130,1,124,2, - 92,2,0,0,125,3,125,4,116,1,0,0,0,0,0,0, - 0,0,124,3,116,2,0,0,0,0,0,0,0,0,116,8, - 0,0,0,0,0,0,0,0,102,2,171,2,0,0,0,0, - 0,0,114,8,103,0,124,3,162,1,124,4,145,1,173,6, - 125,2,110,25,116,11,0,0,0,0,0,0,0,0,124,3, - 171,1,0,0,0,0,0,0,115,14,116,7,0,0,0,0, - 0,0,0,0,100,3,124,3,155,0,157,2,171,1,0,0, - 0,0,0,0,130,1,116,12,0,0,0,0,0,0,0,0, - 137,5,124,0,141,29,0,0,124,0,124,1,124,2,171,3, - 0,0,0,0,0,0,83,0,41,4,78,233,2,0,0,0, - 122,54,67,97,108,108,97,98,108,101,32,109,117,115,116,32, - 98,101,32,117,115,101,100,32,97,115,32,67,97,108,108,97, - 98,108,101,91,91,97,114,103,44,32,46,46,46,93,44,32, - 114,101,115,117,108,116,93,46,122,70,69,120,112,101,99,116, - 101,100,32,97,32,108,105,115,116,32,111,102,32,116,121,112, - 101,115,44,32,97,110,32,101,108,108,105,112,115,105,115,44, - 32,80,97,114,97,109,83,112,101,99,44,32,111,114,32,67, - 111,110,99,97,116,101,110,97,116,101,46,32,71,111,116,32, - 41,8,218,10,105,115,105,110,115,116,97,110,99,101,218,5, - 116,117,112,108,101,218,3,108,101,110,218,9,84,121,112,101, - 69,114,114,111,114,218,4,108,105,115,116,218,14,95,105,115, - 95,112,97,114,97,109,95,101,120,112,114,218,5,115,117,112, - 101,114,218,7,95,95,110,101,119,95,95,41,6,114,66,0, - 0,0,218,6,111,114,105,103,105,110,218,4,97,114,103,115, - 218,6,116,95,97,114,103,115,218,8,116,95,114,101,115,117, - 108,116,218,9,95,95,99,108,97,115,115,95,95,115,6,0, - 0,0,32,32,32,32,32,128,114,9,0,0,0,114,184,0, - 0,0,122,29,95,67,97,108,108,97,98,108,101,71,101,110, - 101,114,105,99,65,108,105,97,115,46,95,95,110,101,119,95, - 95,213,1,0,0,115,138,0,0,0,248,128,0,220,16,26, - 152,52,164,21,212,16,39,172,67,176,4,171,73,184,17,170, - 78,220,18,27,216,16,72,243,3,1,19,74,1,240,0,1, - 13,74,1,224,27,31,209,8,24,136,6,144,8,220,11,21, - 144,102,156,117,164,100,152,109,212,11,44,216,19,38,144,86, - 208,19,38,152,88,209,19,38,137,68,220,17,31,160,6,212, - 17,39,220,18,27,240,0,1,31,62,216,62,68,184,88,240, - 3,1,29,71,1,243,0,1,19,72,1,240,0,1,13,72, - 1,228,15,20,137,119,137,127,152,115,160,70,168,68,211,15, - 49,208,8,49,114,8,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,9,0,0,0,3,0,0,0,243,46, - 1,0,0,149,1,151,0,116,1,0,0,0,0,0,0,0, - 0,124,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,100, - 1,107,40,0,0,114,38,116,5,0,0,0,0,0,0,0, - 0,124,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,2,25,0,0,0,171,1,0, - 0,0,0,0,0,114,14,116,6,0,0,0,0,0,0,0, - 0,137,2,124,0,141,17,0,0,171,0,0,0,0,0,0, - 0,83,0,100,3,100,4,106,11,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,106,2,0, + 0,0,0,243,40,0,0,0,149,0,92,0,114,1,83,0, + 114,2,83,1,114,3,83,2,114,4,92,5,83,3,26,0, + 53,0,0,0,0,0,0,0,114,6,83,2,114,7,103,4, + 41,5,114,24,0,0,0,105,179,1,0,0,114,7,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,6,0, + 0,0,3,0,0,0,243,60,0,0,0,149,0,85,0,91, + 0,0,0,0,0,0,0,0,0,76,0,97,14,0,0,91, + 3,0,0,0,0,0,0,0,0,85,1,83,1,83,2,83, + 3,53,4,0,0,0,0,0,0,36,0,91,4,0,0,0, + 0,0,0,0,0,36,0,41,4,78,114,197,0,0,0,114, + 165,0,0,0,114,205,0,0,0,41,3,114,24,0,0,0, + 114,62,0,0,0,114,56,0,0,0,114,73,0,0,0,115, + 2,0,0,0,32,32,114,9,0,0,0,114,75,0,0,0, + 218,27,67,111,108,108,101,99,116,105,111,110,46,95,95,115, + 117,98,99,108,97,115,115,104,111,111,107,95,95,183,1,0, + 0,115,33,0,0,0,128,0,224,11,14,148,42,210,11,28, + 220,19,33,160,33,160,105,176,26,184,94,211,19,76,208,12, + 76,220,15,29,208,8,29,114,8,0,0,0,78,41,8,114, + 78,0,0,0,114,79,0,0,0,114,80,0,0,0,114,81, + 0,0,0,114,82,0,0,0,114,83,0,0,0,114,75,0, + 0,0,114,84,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,9,0,0,0,114,24,0,0,0,114,24,0,0,0, + 179,1,0,0,115,25,0,0,0,134,0,224,16,18,128,73, + 224,5,16,241,2,3,5,30,243,3,0,6,17,243,2,3, + 5,30,114,8,0,0,0,114,24,0,0,0,99,0,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0, + 0,243,68,0,0,0,149,0,92,0,114,1,83,0,114,2, + 83,1,114,3,83,2,114,4,92,5,83,3,92,6,83,4, + 92,7,52,4,83,5,26,0,106,4,53,0,0,0,0,0, + 0,0,114,8,92,9,83,6,26,0,53,0,0,0,0,0, + 0,0,114,10,83,2,114,11,103,7,41,8,114,36,0,0, + 0,105,190,1,0,0,114,7,0,0,0,218,5,102,108,97, + 103,115,218,6,114,101,116,117,114,110,99,2,0,0,0,2, + 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,243, + 14,0,0,0,149,0,91,0,0,0,0,0,0,0,0,0, + 101,1,114,6,0,0,0,169,1,218,19,78,111,116,73,109, + 112,108,101,109,101,110,116,101,100,69,114,114,111,114,41,2, + 114,68,0,0,0,114,214,0,0,0,115,2,0,0,0,32, + 32,114,9,0,0,0,218,10,95,95,98,117,102,102,101,114, + 95,95,218,17,66,117,102,102,101,114,46,95,95,98,117,102, + 102,101,114,95,95,194,1,0,0,115,8,0,0,0,128,0, + 228,14,33,208,8,33,114,8,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 243,56,0,0,0,149,0,85,0,91,0,0,0,0,0,0, + 0,0,0,76,0,97,12,0,0,91,3,0,0,0,0,0, + 0,0,0,85,1,83,1,53,2,0,0,0,0,0,0,36, + 0,91,4,0,0,0,0,0,0,0,0,36,0,41,2,78, + 114,219,0,0,0,41,3,114,36,0,0,0,114,62,0,0, + 0,114,56,0,0,0,114,73,0,0,0,115,2,0,0,0, + 32,32,114,9,0,0,0,114,75,0,0,0,218,23,66,117, + 102,102,101,114,46,95,95,115,117,98,99,108,97,115,115,104, + 111,111,107,95,95,198,1,0,0,115,28,0,0,0,128,0, + 224,11,14,148,38,138,61,220,19,33,160,33,160,92,211,19, + 50,208,12,50,220,15,29,208,8,29,114,8,0,0,0,78, + 41,12,114,78,0,0,0,114,79,0,0,0,114,80,0,0, + 0,114,81,0,0,0,114,82,0,0,0,114,4,0,0,0, + 218,3,105,110,116,218,10,109,101,109,111,114,121,118,105,101, + 119,114,219,0,0,0,114,83,0,0,0,114,75,0,0,0, + 114,84,0,0,0,114,7,0,0,0,114,8,0,0,0,114, + 9,0,0,0,114,36,0,0,0,114,36,0,0,0,190,1, + 0,0,115,59,0,0,0,134,0,224,16,18,128,73,224,5, + 19,240,2,1,5,34,160,3,240,0,1,5,34,168,58,243, + 0,1,5,34,243,3,0,6,20,240,2,1,5,34,240,6, + 0,6,17,241,2,3,5,30,243,3,0,6,17,243,2,3, + 5,30,114,8,0,0,0,114,36,0,0,0,99,0,0,0, + 0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0, + 0,243,78,0,0,0,94,0,149,0,92,0,114,1,83,0, + 114,2,83,1,114,3,83,2,114,4,83,3,114,5,85,0, + 52,1,83,4,26,0,106,8,114,6,85,0,52,1,83,5, + 26,0,106,8,114,7,83,6,26,0,114,8,85,0,52,1, + 83,7,26,0,106,8,114,9,83,3,114,10,85,0,61,1, + 114,11,36,0,41,8,218,21,95,67,97,108,108,97,98,108, + 101,71,101,110,101,114,105,99,65,108,105,97,115,105,205,1, + 0,0,122,231,82,101,112,114,101,115,101,110,116,32,96,67, + 97,108,108,97,98,108,101,91,97,114,103,116,121,112,101,115, + 44,32,114,101,115,117,108,116,116,121,112,101,93,96,46,10, + 10,84,104,105,115,32,115,101,116,115,32,96,96,95,95,97, + 114,103,115,95,95,96,96,32,116,111,32,97,32,116,117,112, + 108,101,32,99,111,110,116,97,105,110,105,110,103,32,116,104, + 101,32,102,108,97,116,116,101,110,101,100,32,96,96,97,114, + 103,116,121,112,101,115,96,96,10,102,111,108,108,111,119,101, + 100,32,98,121,32,96,96,114,101,115,117,108,116,116,121,112, + 101,96,96,46,10,10,69,120,97,109,112,108,101,58,32,96, + 96,67,97,108,108,97,98,108,101,91,91,105,110,116,44,32, + 115,116,114,93,44,32,102,108,111,97,116,93,96,96,32,115, + 101,116,115,32,96,96,95,95,97,114,103,115,95,95,96,96, + 32,116,111,10,96,96,40,105,110,116,44,32,115,116,114,44, + 32,102,108,111,97,116,41,96,96,46,10,114,7,0,0,0, + 99,3,0,0,0,0,0,0,0,0,0,0,0,5,0,0, + 0,3,0,0,0,243,12,1,0,0,62,1,149,0,91,1, + 0,0,0,0,0,0,0,0,85,2,91,2,0,0,0,0, + 0,0,0,0,53,2,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,97,15,0,0,91,5,0,0,0,0,0,0, + 0,0,85,2,53,1,0,0,0,0,0,0,83,1,58,88, + 0,0,100,11,0,0,91,7,0,0,0,0,0,0,0,0, + 83,2,53,1,0,0,0,0,0,0,101,1,85,2,117,2, + 0,0,112,52,91,1,0,0,0,0,0,0,0,0,85,3, + 91,2,0,0,0,0,0,0,0,0,91,8,0,0,0,0, + 0,0,0,0,52,2,53,2,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,97,8,0,0,47,0,85,3,81,1, + 85,4,80,1,55,6,110,2,79,30,91,11,0,0,0,0, + 0,0,0,0,85,3,53,1,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,100,14,0,0,91,7,0,0,0,0, + 0,0,0,0,83,3,85,3,14,0,51,2,53,1,0,0, + 0,0,0,0,101,1,91,12,0,0,0,0,0,0,0,0, + 84,5,85,0,93,29,0,0,88,1,85,2,53,3,0,0, + 0,0,0,0,36,0,41,4,78,233,2,0,0,0,122,54, + 67,97,108,108,97,98,108,101,32,109,117,115,116,32,98,101, + 32,117,115,101,100,32,97,115,32,67,97,108,108,97,98,108, + 101,91,91,97,114,103,44,32,46,46,46,93,44,32,114,101, + 115,117,108,116,93,46,122,70,69,120,112,101,99,116,101,100, + 32,97,32,108,105,115,116,32,111,102,32,116,121,112,101,115, + 44,32,97,110,32,101,108,108,105,112,115,105,115,44,32,80, + 97,114,97,109,83,112,101,99,44,32,111,114,32,67,111,110, + 99,97,116,101,110,97,116,101,46,32,71,111,116,32,41,8, + 218,10,105,115,105,110,115,116,97,110,99,101,218,5,116,117, + 112,108,101,218,3,108,101,110,218,9,84,121,112,101,69,114, + 114,111,114,218,4,108,105,115,116,218,14,95,105,115,95,112, + 97,114,97,109,95,101,120,112,114,218,5,115,117,112,101,114, + 218,7,95,95,110,101,119,95,95,41,6,114,74,0,0,0, + 218,6,111,114,105,103,105,110,218,4,97,114,103,115,218,6, + 116,95,97,114,103,115,218,8,116,95,114,101,115,117,108,116, + 218,9,95,95,99,108,97,115,115,95,95,115,6,0,0,0, + 32,32,32,32,32,128,114,9,0,0,0,114,236,0,0,0, + 218,29,95,67,97,108,108,97,98,108,101,71,101,110,101,114, + 105,99,65,108,105,97,115,46,95,95,110,101,119,95,95,217, + 1,0,0,115,143,0,0,0,248,128,0,220,16,26,152,52, + 164,21,215,16,39,209,16,39,172,67,176,4,171,73,184,17, + 171,78,220,18,27,216,16,72,243,3,1,19,74,1,240,0, + 1,13,74,1,224,27,31,209,8,24,136,6,220,11,21,144, + 102,156,117,164,100,152,109,215,11,44,209,11,44,216,19,38, + 144,86,208,19,38,152,88,209,19,38,137,68,220,17,31,160, + 6,215,17,39,209,17,39,220,18,27,240,0,1,31,62,216, + 62,68,184,88,240,3,1,29,71,1,243,0,1,19,72,1, + 240,0,1,13,72,1,228,15,20,137,119,137,127,152,115,168, + 68,211,15,49,208,8,49,114,8,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,9,0,0,0,3,0,0, + 0,243,64,1,0,0,62,1,149,0,91,1,0,0,0,0, + 0,0,0,0,85,0,82,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,83,1,58,88,0,0,97,43,0,0,91,5,0,0, + 0,0,0,0,0,0,85,0,82,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,2,5,0, + 0,0,53,1,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,97,14,0,0,91,6,0,0,0,0,0,0,0,0, + 84,2,85,0,93,17,0,0,53,0,0,0,0,0,0,0, + 36,0,83,3,83,4,82,11,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,0,82,2,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,0,100,5,26,0,68,0,143,1,99,2,103,0,99, - 2,93,13,0,0,125,1,116,13,0,0,0,0,0,0,0, - 0,124,1,171,1,0,0,0,0,0,0,145,2,140,15,4, - 0,99,2,125,1,171,1,0,0,0,0,0,0,155,0,100, - 6,116,13,0,0,0,0,0,0,0,0,124,0,106,2,0, + 83,0,83,5,4,0,19,0,86,1,115,2,47,0,115,2, + 19,0,72,14,0,0,110,1,91,13,0,0,0,0,0,0, + 0,0,85,1,53,1,0,0,0,0,0,0,80,2,77,16, + 0,0,11,0,32,0,115,2,110,1,53,1,0,0,0,0, + 0,0,14,0,83,6,91,13,0,0,0,0,0,0,0,0, + 85,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,5,5,0,0,0,53,1,0,0, + 0,0,0,0,14,0,83,7,51,5,36,0,115,2,32,0, + 115,2,110,1,102,0,41,8,78,114,228,0,0,0,114,2, + 0,0,0,122,26,99,111,108,108,101,99,116,105,111,110,115, + 46,97,98,99,46,67,97,108,108,97,98,108,101,91,91,122, + 2,44,32,233,255,255,255,255,122,3,93,44,32,218,1,93, + 41,7,114,231,0,0,0,218,8,95,95,97,114,103,115,95, + 95,114,234,0,0,0,114,235,0,0,0,218,8,95,95,114, + 101,112,114,95,95,218,4,106,111,105,110,218,10,95,116,121, + 112,101,95,114,101,112,114,41,3,114,68,0,0,0,218,1, + 97,114,241,0,0,0,115,3,0,0,0,32,32,128,114,9, + 0,0,0,114,247,0,0,0,218,30,95,67,97,108,108,97, + 98,108,101,71,101,110,101,114,105,99,65,108,105,97,115,46, + 95,95,114,101,112,114,95,95,229,1,0,0,115,142,0,0, + 0,248,128,0,220,11,14,136,116,143,125,137,125,211,11,29, + 160,17,211,11,34,164,126,176,100,183,109,177,109,192,65,209, + 54,70,215,39,71,209,39,71,220,19,24,145,55,209,19,35, + 211,19,37,208,12,37,240,2,1,19,21,216,21,25,151,89, + 145,89,176,116,183,125,177,125,192,83,192,98,209,55,73,211, + 31,74,210,55,73,176,33,164,10,168,49,166,13,209,55,73, + 209,31,74,211,21,75,208,20,76,200,67,220,19,29,152,100, + 159,109,153,109,168,66,209,30,47,211,19,48,208,18,49,176, + 17,240,5,2,17,52,240,0,2,9,53,249,218,31,74,115, + 6,0,0,0,193,35,21,66,27,10,99,1,0,0,0,0, + 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,243, + 160,0,0,0,149,0,85,0,82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,110,1,91,3, + 0,0,0,0,0,0,0,0,85,1,53,1,0,0,0,0, + 0,0,83,1,58,88,0,0,97,19,0,0,91,5,0,0, + 0,0,0,0,0,0,85,1,83,2,5,0,0,0,53,1, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,100,19, + 0,0,91,7,0,0,0,0,0,0,0,0,85,1,83,0, + 83,3,4,0,53,1,0,0,0,0,0,0,85,1,83,3, + 5,0,0,0,52,2,110,1,91,8,0,0,0,0,0,0, + 0,0,91,10,0,0,0,0,0,0,0,0,85,1,52,2, + 52,2,36,0,41,4,78,114,228,0,0,0,114,2,0,0, + 0,114,244,0,0,0,41,6,114,246,0,0,0,114,231,0, + 0,0,114,234,0,0,0,114,233,0,0,0,114,226,0,0, + 0,114,23,0,0,0,41,2,114,68,0,0,0,114,238,0, + 0,0,115,2,0,0,0,32,32,114,9,0,0,0,218,10, + 95,95,114,101,100,117,99,101,95,95,218,32,95,67,97,108, + 108,97,98,108,101,71,101,110,101,114,105,99,65,108,105,97, + 115,46,95,95,114,101,100,117,99,101,95,95,236,1,0,0, + 115,76,0,0,0,128,0,216,15,19,143,125,137,125,136,4, + 220,16,19,144,68,147,9,152,81,147,14,164,62,176,36,176, + 113,177,39,215,35,58,209,35,58,220,19,23,152,4,152,83, + 152,98,152,9,147,63,160,68,168,18,161,72,208,19,44,136, + 68,220,15,36,164,120,176,20,208,38,54,208,15,54,208,8, + 54,114,8,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,6,0,0,0,3,0,0,0,243,238,0,0,0, + 62,1,149,0,91,1,0,0,0,0,0,0,0,0,85,1, + 91,2,0,0,0,0,0,0,0,0,53,2,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,100,3,0,0,85,1, + 52,1,110,1,91,4,0,0,0,0,0,0,0,0,84,5, + 85,0,93,13,0,0,85,1,53,1,0,0,0,0,0,0, + 82,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,110,2,91,1,0,0,0,0,0,0,0,0, + 85,2,83,1,5,0,0,0,91,2,0,0,0,0,0,0, + 0,0,91,10,0,0,0,0,0,0,0,0,52,2,53,2, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,100,13, + 0,0,85,2,83,2,5,0,0,0,110,3,85,2,83,0, + 83,2,4,0,110,4,88,67,52,2,110,2,91,13,0,0, + 0,0,0,0,0,0,91,14,0,0,0,0,0,0,0,0, + 91,3,0,0,0,0,0,0,0,0,85,2,53,1,0,0, + 0,0,0,0,53,2,0,0,0,0,0,0,36,0,41,3, + 78,114,2,0,0,0,114,244,0,0,0,41,8,114,229,0, + 0,0,114,230,0,0,0,114,235,0,0,0,218,11,95,95, + 103,101,116,105,116,101,109,95,95,114,246,0,0,0,114,233, + 0,0,0,114,226,0,0,0,114,23,0,0,0,41,6,114, + 68,0,0,0,218,4,105,116,101,109,218,8,110,101,119,95, + 97,114,103,115,114,240,0,0,0,114,239,0,0,0,114,241, + 0,0,0,115,6,0,0,0,32,32,32,32,32,128,114,9, + 0,0,0,114,0,1,0,0,218,33,95,67,97,108,108,97, + 98,108,101,71,101,110,101,114,105,99,65,108,105,97,115,46, + 95,95,103,101,116,105,116,101,109,95,95,242,1,0,0,115, + 114,0,0,0,248,128,0,244,10,0,16,26,152,36,164,5, + 215,15,38,209,15,38,216,20,24,144,55,136,68,228,19,24, + 145,55,209,19,38,160,116,211,19,44,215,19,53,209,19,53, + 136,8,244,6,0,16,26,152,40,160,49,153,43,172,5,172, + 116,160,125,215,15,53,209,15,53,216,23,31,160,2,145,124, + 136,72,216,21,29,152,99,152,114,144,93,136,70,216,24,30, + 208,23,41,136,72,220,15,36,164,88,172,117,176,88,171,127, + 211,15,63,208,8,63,114,8,0,0,0,41,12,114,78,0, + 0,0,114,79,0,0,0,114,80,0,0,0,114,81,0,0, + 0,218,7,95,95,100,111,99,95,95,114,82,0,0,0,114, + 236,0,0,0,114,247,0,0,0,114,253,0,0,0,114,0, + 1,0,0,114,84,0,0,0,218,13,95,95,99,108,97,115, + 115,99,101,108,108,95,95,169,1,114,241,0,0,0,115,1, + 0,0,0,64,114,9,0,0,0,114,226,0,0,0,114,226, + 0,0,0,205,1,0,0,115,42,0,0,0,248,134,0,241, + 2,7,5,8,240,18,0,17,19,128,73,245,4,10,5,50, + 245,24,5,5,53,242,14,4,5,55,247,12,15,5,64,1, + 243,0,15,5,64,1,114,8,0,0,0,114,226,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,243,180,0,0,0,94,0,149,0,84,0, + 91,0,0,0,0,0,0,0,0,0,76,0,97,1,0,0, + 103,1,91,3,0,0,0,0,0,0,0,0,84,0,91,4, + 0,0,0,0,0,0,0,0,53,2,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,97,1,0,0,103,1,91,7, + 0,0,0,0,0,0,0,0,84,0,53,1,0,0,0,0, + 0,0,109,0,83,2,110,1,84,0,82,8,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,3, + 58,72,0,0,61,1,40,0,0,0,0,0,0,0,97,21, + 0,0,32,0,91,11,0,0,0,0,0,0,0,0,85,0, + 52,1,83,4,26,0,106,8,85,1,19,0,53,0,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,36,0,41,5, + 122,116,67,104,101,99,107,115,32,105,102,32,111,98,106,32, + 109,97,116,99,104,101,115,32,101,105,116,104,101,114,32,97, + 32,108,105,115,116,32,111,102,32,116,121,112,101,115,44,32, + 96,96,46,46,46,96,96,44,32,96,96,80,97,114,97,109, + 83,112,101,99,96,96,32,111,114,10,96,96,95,67,111,110, + 99,97,116,101,110,97,116,101,71,101,110,101,114,105,99,65, + 108,105,97,115,96,96,32,102,114,111,109,32,116,121,112,105, + 110,103,46,112,121,10,84,41,2,218,9,80,97,114,97,109, + 83,112,101,99,218,24,95,67,111,110,99,97,116,101,110,97, + 116,101,71,101,110,101,114,105,99,65,108,105,97,115,218,6, + 116,121,112,105,110,103,99,1,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,51,0,0,0,243,66,0,0,0, + 62,1,35,0,32,0,149,0,85,0,19,0,72,20,0,0, + 110,1,84,2,82,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,1,58,72,0,0,118,0, + 149,5,32,0,77,22,0,0,11,0,32,0,103,0,55,3, + 102,1,114,6,0,0,0,41,1,114,78,0,0,0,41,3, + 218,2,46,48,218,4,110,97,109,101,218,3,111,98,106,115, + 3,0,0,0,32,32,128,114,9,0,0,0,218,9,60,103, + 101,110,101,120,112,114,62,218,33,95,105,115,95,112,97,114, + 97,109,95,101,120,112,114,46,60,108,111,99,97,108,115,62, + 46,60,103,101,110,101,120,112,114,62,13,2,0,0,115,26, + 0,0,0,248,233,0,128,0,208,45,85,202,117,192,116,168, + 99,175,108,169,108,184,100,214,46,66,202,117,249,115,4,0, + 0,0,131,28,31,1,41,6,218,8,69,108,108,105,112,115, + 105,115,114,229,0,0,0,114,233,0,0,0,114,40,0,0, + 0,114,79,0,0,0,218,3,97,110,121,41,2,114,14,1, + 0,0,218,5,110,97,109,101,115,115,2,0,0,0,96,32, + 114,9,0,0,0,114,234,0,0,0,114,234,0,0,0,3, + 2,0,0,115,76,0,0,0,248,128,0,240,8,0,8,11, + 140,104,130,127,216,15,19,220,7,17,144,35,148,116,215,7, + 28,209,7,28,216,15,19,220,10,14,136,115,139,41,128,67, + 216,12,53,128,69,216,11,14,143,62,137,62,152,88,209,11, + 37,215,11,85,172,35,212,45,85,201,117,211,45,85,211,42, + 85,208,4,85,114,8,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,6, + 1,0,0,149,0,91,1,0,0,0,0,0,0,0,0,85, + 0,91,2,0,0,0,0,0,0,0,0,53,2,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,97,55,0,0,85, + 0,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,1,58,88,0,0,97,12,0,0,85, + 0,82,6,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,36,0,85,0,82,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,83, + 2,85,0,82,6,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,14,0,51,3,36,0,85,0,91, + 8,0,0,0,0,0,0,0,0,76,0,97,1,0,0,103, + 3,91,1,0,0,0,0,0,0,0,0,85,0,91,10,0, + 0,0,0,0,0,0,0,53,2,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,97,12,0,0,85,0,82,12,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,5,25,0,0,0,171,1,0,0,0,0,0,0,155, - 0,100,7,157,5,83,0,99,2,1,0,99,2,125,1,119, - 0,41,8,78,114,176,0,0,0,114,2,0,0,0,122,26, - 99,111,108,108,101,99,116,105,111,110,115,46,97,98,99,46, - 67,97,108,108,97,98,108,101,91,91,122,2,44,32,233,255, - 255,255,255,122,3,93,44,32,218,1,93,41,7,114,179,0, - 0,0,218,8,95,95,97,114,103,115,95,95,114,182,0,0, - 0,114,183,0,0,0,218,8,95,95,114,101,112,114,95,95, - 218,4,106,111,105,110,218,10,95,116,121,112,101,95,114,101, - 112,114,41,3,114,61,0,0,0,218,1,97,114,189,0,0, - 0,115,3,0,0,0,32,32,128,114,9,0,0,0,114,194, - 0,0,0,122,30,95,67,97,108,108,97,98,108,101,71,101, - 110,101,114,105,99,65,108,105,97,115,46,95,95,114,101,112, - 114,95,95,225,1,0,0,115,139,0,0,0,248,128,0,220, - 11,14,136,116,143,125,137,125,211,11,29,160,17,210,11,34, - 164,126,176,100,183,109,177,109,192,65,209,54,70,212,39,71, - 220,19,24,145,55,209,19,35,211,19,37,208,12,37,240,2, - 1,19,21,216,21,25,151,89,145,89,176,116,183,125,177,125, - 192,83,192,98,209,55,73,211,31,74,209,55,73,176,33,164, - 10,168,49,165,13,208,55,73,209,31,74,211,21,75,208,20, - 76,200,67,220,19,29,152,100,159,109,153,109,168,66,209,30, - 47,211,19,48,208,18,49,176,17,240,5,2,17,52,240,0, - 2,9,53,249,218,31,74,115,6,0,0,0,193,29,18,66, - 18,10,99,1,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,3,0,0,0,243,148,0,0,0,151,0,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,125,1,116,3,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,100,1,107,40,0,0, - 114,14,116,5,0,0,0,0,0,0,0,0,124,1,100,2, - 25,0,0,0,171,1,0,0,0,0,0,0,115,19,116,7, - 0,0,0,0,0,0,0,0,124,1,100,0,100,3,26,0, - 171,1,0,0,0,0,0,0,124,1,100,3,25,0,0,0, - 102,2,125,1,116,8,0,0,0,0,0,0,0,0,116,10, - 0,0,0,0,0,0,0,0,124,1,102,2,102,2,83,0, - 41,4,78,114,176,0,0,0,114,2,0,0,0,114,191,0, - 0,0,41,6,114,193,0,0,0,114,179,0,0,0,114,182, - 0,0,0,114,181,0,0,0,114,174,0,0,0,114,23,0, - 0,0,41,2,114,61,0,0,0,114,186,0,0,0,115,2, - 0,0,0,32,32,114,9,0,0,0,218,10,95,95,114,101, - 100,117,99,101,95,95,122,32,95,67,97,108,108,97,98,108, - 101,71,101,110,101,114,105,99,65,108,105,97,115,46,95,95, - 114,101,100,117,99,101,95,95,232,1,0,0,115,73,0,0, - 0,128,0,216,15,19,143,125,137,125,136,4,220,16,19,144, - 68,147,9,152,81,146,14,164,62,176,36,176,113,177,39,212, - 35,58,220,19,23,152,4,152,83,152,98,152,9,147,63,160, - 68,168,18,161,72,208,19,44,136,68,220,15,36,164,120,176, - 20,208,38,54,208,15,54,208,8,54,114,8,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, - 3,0,0,0,243,220,0,0,0,149,1,151,0,116,1,0, - 0,0,0,0,0,0,0,124,1,116,2,0,0,0,0,0, - 0,0,0,171,2,0,0,0,0,0,0,115,3,124,1,102, - 1,125,1,116,4,0,0,0,0,0,0,0,0,137,5,124, - 0,141,13,0,0,124,1,171,1,0,0,0,0,0,0,106, - 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,125,2,116,1,0,0,0,0,0,0,0,0,124, - 2,100,1,25,0,0,0,116,2,0,0,0,0,0,0,0, - 0,116,10,0,0,0,0,0,0,0,0,102,2,171,2,0, - 0,0,0,0,0,115,14,124,2,100,2,25,0,0,0,125, - 3,124,2,100,0,100,2,26,0,125,4,124,4,124,3,102, - 2,125,2,116,13,0,0,0,0,0,0,0,0,116,14,0, - 0,0,0,0,0,0,0,116,3,0,0,0,0,0,0,0, - 0,124,2,171,1,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,83,0,41,3,78,114,2,0,0,0,114,191,0, - 0,0,41,8,114,177,0,0,0,114,178,0,0,0,114,183, - 0,0,0,218,11,95,95,103,101,116,105,116,101,109,95,95, - 114,193,0,0,0,114,181,0,0,0,114,174,0,0,0,114, - 23,0,0,0,41,6,114,61,0,0,0,218,4,105,116,101, - 109,218,8,110,101,119,95,97,114,103,115,114,188,0,0,0, - 114,187,0,0,0,114,189,0,0,0,115,6,0,0,0,32, - 32,32,32,32,128,114,9,0,0,0,114,201,0,0,0,122, - 33,95,67,97,108,108,97,98,108,101,71,101,110,101,114,105, - 99,65,108,105,97,115,46,95,95,103,101,116,105,116,101,109, - 95,95,238,1,0,0,115,110,0,0,0,248,128,0,244,10, - 0,16,26,152,36,164,5,212,15,38,216,20,24,144,55,136, - 68,228,19,24,145,55,209,19,38,160,116,211,19,44,215,19, - 53,209,19,53,136,8,244,6,0,16,26,152,40,160,49,153, - 43,172,5,172,116,160,125,212,15,53,216,23,31,160,2,145, - 124,136,72,216,21,29,152,99,152,114,144,93,136,70,216,24, - 30,160,8,208,23,41,136,72,220,15,36,164,88,172,117,176, - 88,171,127,211,15,63,208,8,63,114,8,0,0,0,41,10, - 114,69,0,0,0,114,70,0,0,0,114,71,0,0,0,218, - 7,95,95,100,111,99,95,95,114,72,0,0,0,114,184,0, - 0,0,114,194,0,0,0,114,199,0,0,0,114,201,0,0, - 0,218,13,95,95,99,108,97,115,115,99,101,108,108,95,95, - 169,1,114,189,0,0,0,115,1,0,0,0,64,114,9,0, - 0,0,114,174,0,0,0,114,174,0,0,0,201,1,0,0, - 115,42,0,0,0,248,132,0,241,2,7,5,8,240,18,0, - 17,19,128,73,244,4,10,5,50,244,24,5,5,53,242,14, - 4,5,55,247,12,15,5,64,1,240,0,15,5,64,1,114, - 8,0,0,0,114,174,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,156, - 0,0,0,135,0,151,0,137,0,116,0,0,0,0,0,0, - 0,0,0,117,0,114,1,121,1,116,3,0,0,0,0,0, - 0,0,0,137,0,116,4,0,0,0,0,0,0,0,0,171, - 2,0,0,0,0,0,0,114,1,121,1,116,7,0,0,0, - 0,0,0,0,0,137,0,171,1,0,0,0,0,0,0,138, - 0,100,2,125,1,137,0,106,8,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,3,107,40,0, - 0,120,1,114,20,1,0,116,11,0,0,0,0,0,0,0, - 0,136,0,102,1,100,4,132,8,124,1,68,0,171,0,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,83,0,41, - 5,122,124,67,104,101,99,107,115,32,105,102,32,111,98,106, - 32,109,97,116,99,104,101,115,32,101,105,116,104,101,114,32, - 97,32,108,105,115,116,32,111,102,32,116,121,112,101,115,44, - 32,96,96,46,46,46,96,96,44,32,96,96,80,97,114,97, - 109,83,112,101,99,96,96,32,111,114,10,32,32,32,32,96, - 96,95,67,111,110,99,97,116,101,110,97,116,101,71,101,110, - 101,114,105,99,65,108,105,97,115,96,96,32,102,114,111,109, - 32,116,121,112,105,110,103,46,112,121,10,32,32,32,32,84, - 41,2,218,9,80,97,114,97,109,83,112,101,99,218,24,95, - 67,111,110,99,97,116,101,110,97,116,101,71,101,110,101,114, - 105,99,65,108,105,97,115,218,6,116,121,112,105,110,103,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 51,0,0,0,243,60,0,0,0,149,1,75,0,1,0,151, - 0,124,0,93,19,0,0,125,1,137,2,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,107,40,0,0,150,1,151,1,1,0,140,21,4,0,121, - 0,173,3,119,1,114,6,0,0,0,41,1,114,69,0,0, - 0,41,3,218,2,46,48,218,4,110,97,109,101,218,3,111, - 98,106,115,3,0,0,0,32,32,128,114,9,0,0,0,218, - 9,60,103,101,110,101,120,112,114,62,122,33,95,105,115,95, - 112,97,114,97,109,95,101,120,112,114,46,60,108,111,99,97, - 108,115,62,46,60,103,101,110,101,120,112,114,62,9,2,0, - 0,115,27,0,0,0,248,232,0,248,128,0,208,45,85,201, - 117,192,116,168,99,175,108,169,108,184,100,213,46,66,201,117, - 249,115,4,0,0,0,131,25,28,1,41,6,218,8,69,108, - 108,105,112,115,105,115,114,177,0,0,0,114,181,0,0,0, - 218,4,116,121,112,101,114,70,0,0,0,218,3,97,110,121, - 41,2,114,214,0,0,0,218,5,110,97,109,101,115,115,2, - 0,0,0,96,32,114,9,0,0,0,114,182,0,0,0,114, - 182,0,0,0,255,1,0,0,115,73,0,0,0,248,128,0, - 240,8,0,8,11,140,104,129,127,216,15,19,220,7,17,144, - 35,148,116,212,7,28,216,15,19,220,10,14,136,115,139,41, - 128,67,216,12,53,128,69,216,11,14,143,62,137,62,152,88, - 209,11,37,210,11,85,172,35,211,45,85,201,117,211,45,85, - 211,42,85,208,4,85,114,8,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,238,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,124,0,116,2,0,0,0,0,0,0,0,0,171,2,0, - 0,0,0,0,0,114,54,124,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,107, - 40,0,0,114,12,124,0,106,6,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,83,0,124,0,106, - 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,155,0,100,2,124,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,155,0,157, - 3,83,0,124,0,116,8,0,0,0,0,0,0,0,0,117, - 0,114,1,121,3,116,1,0,0,0,0,0,0,0,0,124, - 0,116,10,0,0,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,114,12,124,0,106,12,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,83,0,116,15,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,83,0,41,4,122,223,82,101,116,117,114,110,32,116,104, - 101,32,114,101,112,114,40,41,32,111,102,32,97,110,32,111, - 98,106,101,99,116,44,32,115,112,101,99,105,97,108,45,99, - 97,115,105,110,103,32,116,121,112,101,115,32,40,105,110,116, - 101,114,110,97,108,32,104,101,108,112,101,114,41,46,10,10, - 32,32,32,32,67,111,112,105,101,100,32,102,114,111,109,32, - 58,109,111,100,58,96,116,121,112,105,110,103,96,32,115,105, - 110,99,101,32,99,111,108,108,101,99,116,105,111,110,115,46, - 97,98,99,10,32,32,32,32,115,104,111,117,108,100,110,39, - 116,32,100,101,112,101,110,100,32,111,110,32,116,104,97,116, - 32,109,111,100,117,108,101,46,10,32,32,32,32,40,75,101, - 101,112,32,116,104,105,115,32,114,111,117,103,104,108,121,32, - 105,110,32,115,121,110,99,32,119,105,116,104,32,116,104,101, - 32,116,121,112,105,110,103,32,118,101,114,115,105,111,110,46, - 41,10,32,32,32,32,218,8,98,117,105,108,116,105,110,115, - 218,1,46,122,3,46,46,46,41,8,114,177,0,0,0,114, - 217,0,0,0,114,70,0,0,0,114,71,0,0,0,114,216, - 0,0,0,218,12,70,117,110,99,116,105,111,110,84,121,112, - 101,114,69,0,0,0,218,4,114,101,112,114,41,1,114,214, - 0,0,0,115,1,0,0,0,32,114,9,0,0,0,114,196, - 0,0,0,114,196,0,0,0,11,2,0,0,115,107,0,0, - 0,128,0,244,14,0,8,18,144,35,148,116,212,7,28,216, - 11,14,143,62,137,62,152,90,210,11,39,216,19,22,215,19, - 35,209,19,35,208,12,35,216,18,21,151,46,145,46,208,17, - 33,160,17,160,51,215,35,51,209,35,51,208,34,52,208,15, - 53,208,8,53,216,7,10,140,104,129,127,216,15,20,220,7, - 17,144,35,148,124,212,7,36,216,15,18,143,124,137,124,208, - 8,27,220,11,15,144,3,139,57,208,4,20,114,8,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,0,0,0,0,243,64,0,0,0,151,0,101,0,90, - 1,100,0,90,2,100,1,90,3,101,4,100,2,132,0,171, - 0,0,0,0,0,0,0,90,5,101,6,100,3,132,0,171, - 0,0,0,0,0,0,0,90,7,2,0,101,6,101,8,171, - 1,0,0,0,0,0,0,90,9,121,4,41,5,114,23,0, - 0,0,114,7,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,15,0,0,0,243,4,0,0, - 0,151,0,121,1,114,156,0,0,0,114,7,0,0,0,41, - 3,114,61,0,0,0,114,186,0,0,0,218,4,107,119,100, - 115,115,3,0,0,0,32,32,32,114,9,0,0,0,218,8, - 95,95,99,97,108,108,95,95,122,17,67,97,108,108,97,98, - 108,101,46,95,95,99,97,108,108,95,95,33,2,0,0,114, - 159,0,0,0,114,8,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,54, - 0,0,0,151,0,124,0,116,0,0,0,0,0,0,0,0, - 0,117,0,114,12,116,3,0,0,0,0,0,0,0,0,124, - 1,100,1,171,2,0,0,0,0,0,0,83,0,116,4,0, - 0,0,0,0,0,0,0,83,0,41,2,78,114,228,0,0, - 0,41,3,114,23,0,0,0,114,56,0,0,0,114,50,0, - 0,0,114,65,0,0,0,115,2,0,0,0,32,32,114,9, - 0,0,0,114,67,0,0,0,122,25,67,97,108,108,97,98, - 108,101,46,95,95,115,117,98,99,108,97,115,115,104,111,111, - 107,95,95,37,2,0,0,114,68,0,0,0,114,8,0,0, - 0,78,41,10,114,69,0,0,0,114,70,0,0,0,114,71, - 0,0,0,114,72,0,0,0,114,4,0,0,0,114,228,0, - 0,0,114,73,0,0,0,114,67,0,0,0,114,174,0,0, - 0,114,81,0,0,0,114,7,0,0,0,114,8,0,0,0, - 114,9,0,0,0,114,23,0,0,0,114,23,0,0,0,29, - 2,0,0,115,59,0,0,0,132,0,224,16,18,128,73,224, - 5,19,241,2,1,5,21,243,3,0,6,20,240,2,1,5, - 21,240,6,0,6,17,241,2,3,5,30,243,3,0,6,17, - 240,2,3,5,30,241,10,0,25,36,208,36,57,211,24,58, - 209,4,21,114,8,0,0,0,114,23,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0, - 0,0,243,120,0,0,0,151,0,101,0,90,1,100,0,90, - 2,100,1,90,3,100,2,90,4,100,3,132,0,90,5,100, - 4,132,0,90,6,100,5,132,0,90,7,100,6,132,0,90, - 8,100,7,132,0,90,9,101,10,100,8,132,0,171,0,0, - 0,0,0,0,0,90,11,100,9,132,0,90,12,101,12,90, - 13,100,10,132,0,90,14,100,11,132,0,90,15,101,15,90, - 16,100,12,132,0,90,17,100,13,132,0,90,18,100,14,132, - 0,90,19,101,19,90,20,100,15,132,0,90,21,121,16,41, - 17,114,25,0,0,0,97,90,1,0,0,65,32,115,101,116, - 32,105,115,32,97,32,102,105,110,105,116,101,44,32,105,116, - 101,114,97,98,108,101,32,99,111,110,116,97,105,110,101,114, - 46,10,10,32,32,32,32,84,104,105,115,32,99,108,97,115, - 115,32,112,114,111,118,105,100,101,115,32,99,111,110,99,114, - 101,116,101,32,103,101,110,101,114,105,99,32,105,109,112,108, - 101,109,101,110,116,97,116,105,111,110,115,32,111,102,32,97, - 108,108,10,32,32,32,32,109,101,116,104,111,100,115,32,101, - 120,99,101,112,116,32,102,111,114,32,95,95,99,111,110,116, - 97,105,110,115,95,95,44,32,95,95,105,116,101,114,95,95, - 32,97,110,100,32,95,95,108,101,110,95,95,46,10,10,32, - 32,32,32,84,111,32,111,118,101,114,114,105,100,101,32,116, - 104,101,32,99,111,109,112,97,114,105,115,111,110,115,32,40, - 112,114,101,115,117,109,97,98,108,121,32,102,111,114,32,115, - 112,101,101,100,44,32,97,115,32,116,104,101,10,32,32,32, - 32,115,101,109,97,110,116,105,99,115,32,97,114,101,32,102, - 105,120,101,100,41,44,32,114,101,100,101,102,105,110,101,32, - 95,95,108,101,95,95,32,97,110,100,32,95,95,103,101,95, - 95,44,10,32,32,32,32,116,104,101,110,32,116,104,101,32, - 111,116,104,101,114,32,111,112,101,114,97,116,105,111,110,115, - 32,119,105,108,108,32,97,117,116,111,109,97,116,105,99,97, - 108,108,121,32,102,111,108,108,111,119,32,115,117,105,116,46, - 10,32,32,32,32,114,7,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, - 122,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, - 124,1,116,2,0,0,0,0,0,0,0,0,171,2,0,0, - 0,0,0,0,115,6,116,4,0,0,0,0,0,0,0,0, - 83,0,116,7,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,116,7,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,107,68,0,0,114,1, - 121,1,124,0,68,0,93,8,0,0,125,2,124,2,124,1, - 118,1,115,1,140,8,1,0,121,1,4,0,121,2,169,3, - 78,70,84,169,4,114,177,0,0,0,114,25,0,0,0,114, - 50,0,0,0,114,179,0,0,0,169,3,114,61,0,0,0, - 218,5,111,116,104,101,114,218,4,101,108,101,109,115,3,0, - 0,0,32,32,32,114,9,0,0,0,218,6,95,95,108,101, - 95,95,122,10,83,101,116,46,95,95,108,101,95,95,62,2, - 0,0,115,63,0,0,0,128,0,220,15,25,152,37,164,19, - 212,15,37,220,19,33,208,12,33,220,11,14,136,116,139,57, - 148,115,152,53,147,122,210,11,33,216,19,24,219,20,24,136, - 68,216,15,19,152,53,210,15,32,217,23,28,240,5,0,21, - 25,240,6,0,16,20,114,8,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,130,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,124,1,116,2,0,0,0,0,0,0,0,0,171,2,0, - 0,0,0,0,0,115,6,116,4,0,0,0,0,0,0,0, - 0,83,0,116,7,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,116,7,0,0,0,0,0,0,0, - 0,124,1,171,1,0,0,0,0,0,0,107,2,0,0,120, - 1,114,17,1,0,124,0,106,9,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,171,1,0, - 0,0,0,0,0,83,0,114,6,0,0,0,169,5,114,177, - 0,0,0,114,25,0,0,0,114,50,0,0,0,114,179,0, - 0,0,114,237,0,0,0,169,2,114,61,0,0,0,114,235, - 0,0,0,115,2,0,0,0,32,32,114,9,0,0,0,218, - 6,95,95,108,116,95,95,122,10,83,101,116,46,95,95,108, - 116,95,95,72,2,0,0,243,51,0,0,0,128,0,220,15, - 25,152,37,164,19,212,15,37,220,19,33,208,12,33,220,15, - 18,144,52,139,121,156,51,152,117,155,58,209,15,37,210,15, - 60,168,36,175,43,169,43,176,101,211,42,60,208,8,60,114, - 8,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,243,130,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,1,116,2,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,115,6, - 116,4,0,0,0,0,0,0,0,0,83,0,116,7,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 116,7,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,107,68,0,0,120,1,114,17,1,0,124,0, - 106,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,83,0, - 114,6,0,0,0,41,5,114,177,0,0,0,114,25,0,0, - 0,114,50,0,0,0,114,179,0,0,0,218,6,95,95,103, - 101,95,95,114,240,0,0,0,115,2,0,0,0,32,32,114, - 9,0,0,0,218,6,95,95,103,116,95,95,122,10,83,101, - 116,46,95,95,103,116,95,95,77,2,0,0,114,242,0,0, - 0,114,8,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,122,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,124,1,116,2, - 0,0,0,0,0,0,0,0,171,2,0,0,0,0,0,0, - 115,6,116,4,0,0,0,0,0,0,0,0,83,0,116,7, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,116,7,0,0,0,0,0,0,0,0,124,1,171,1, - 0,0,0,0,0,0,107,2,0,0,114,1,121,1,124,1, - 68,0,93,8,0,0,125,2,124,2,124,0,118,1,115,1, - 140,8,1,0,121,1,4,0,121,2,114,232,0,0,0,114, - 233,0,0,0,114,234,0,0,0,115,3,0,0,0,32,32, - 32,114,9,0,0,0,114,244,0,0,0,122,10,83,101,116, - 46,95,95,103,101,95,95,82,2,0,0,115,63,0,0,0, - 128,0,220,15,25,152,37,164,19,212,15,37,220,19,33,208, - 12,33,220,11,14,136,116,139,57,148,115,152,53,147,122,210, - 11,33,216,19,24,219,20,25,136,68,216,15,19,152,52,210, - 15,31,217,23,28,240,5,0,21,26,240,6,0,16,20,114, - 8,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,243,130,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,1,116,2,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,115,6, - 116,4,0,0,0,0,0,0,0,0,83,0,116,7,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 116,7,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,107,40,0,0,120,1,114,17,1,0,124,0, - 106,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,83,0, - 114,6,0,0,0,114,239,0,0,0,114,240,0,0,0,115, - 2,0,0,0,32,32,114,9,0,0,0,218,6,95,95,101, - 113,95,95,122,10,83,101,116,46,95,95,101,113,95,95,92, - 2,0,0,115,51,0,0,0,128,0,220,15,25,152,37,164, - 19,212,15,37,220,19,33,208,12,33,220,15,18,144,52,139, - 121,156,67,160,5,155,74,209,15,38,210,15,61,168,52,175, - 59,169,59,176,117,211,43,61,208,8,61,114,8,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,3,0,0,0,243,18,0,0,0,151,0,2,0,124,0, - 124,1,171,1,0,0,0,0,0,0,83,0,41,1,122,188, - 67,111,110,115,116,114,117,99,116,32,97,110,32,105,110,115, - 116,97,110,99,101,32,111,102,32,116,104,101,32,99,108,97, - 115,115,32,102,114,111,109,32,97,110,121,32,105,116,101,114, - 97,98,108,101,32,105,110,112,117,116,46,10,10,32,32,32, - 32,32,32,32,32,77,117,115,116,32,111,118,101,114,114,105, - 100,101,32,116,104,105,115,32,109,101,116,104,111,100,32,105, - 102,32,116,104,101,32,99,108,97,115,115,32,99,111,110,115, - 116,114,117,99,116,111,114,32,115,105,103,110,97,116,117,114, - 101,10,32,32,32,32,32,32,32,32,100,111,101,115,32,110, - 111,116,32,97,99,99,101,112,116,32,97,110,32,105,116,101, - 114,97,98,108,101,32,102,111,114,32,97,110,32,105,110,112, - 117,116,46,10,32,32,32,32,32,32,32,32,114,7,0,0, - 0,169,2,114,66,0,0,0,218,2,105,116,115,2,0,0, - 0,32,32,114,9,0,0,0,218,14,95,102,114,111,109,95, - 105,116,101,114,97,98,108,101,122,18,83,101,116,46,95,102, - 114,111,109,95,105,116,101,114,97,98,108,101,97,2,0,0, - 115,13,0,0,0,128,0,241,14,0,16,19,144,50,139,119, - 136,14,114,8,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,3,0,0,0,243,100,0,0, - 0,135,0,151,0,116,1,0,0,0,0,0,0,0,0,124, - 1,116,2,0,0,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,115,6,116,4,0,0,0,0,0,0,0,0,83, - 0,137,0,106,7,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,136,0,102,1,100,1,132,8,124, - 1,68,0,171,0,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,83,0,41,2,78,99,1,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,51,0,0,0,243,44,0, - 0,0,149,1,75,0,1,0,151,0,124,0,93,11,0,0, - 125,1,124,1,137,2,118,0,115,1,140,8,124,1,150,1, - 151,1,1,0,140,13,4,0,121,0,173,3,119,1,114,6, - 0,0,0,114,7,0,0,0,169,3,114,212,0,0,0,114, - 87,0,0,0,114,61,0,0,0,115,3,0,0,0,32,32, - 128,114,9,0,0,0,114,215,0,0,0,122,30,83,101,116, + 0,36,0,91,15,0,0,0,0,0,0,0,0,85,0,53, + 1,0,0,0,0,0,0,36,0,41,4,122,207,82,101,116, + 117,114,110,32,116,104,101,32,114,101,112,114,40,41,32,111, + 102,32,97,110,32,111,98,106,101,99,116,44,32,115,112,101, + 99,105,97,108,45,99,97,115,105,110,103,32,116,121,112,101, + 115,32,40,105,110,116,101,114,110,97,108,32,104,101,108,112, + 101,114,41,46,10,10,67,111,112,105,101,100,32,102,114,111, + 109,32,58,109,111,100,58,96,116,121,112,105,110,103,96,32, + 115,105,110,99,101,32,99,111,108,108,101,99,116,105,111,110, + 115,46,97,98,99,10,115,104,111,117,108,100,110,39,116,32, + 100,101,112,101,110,100,32,111,110,32,116,104,97,116,32,109, + 111,100,117,108,101,46,10,40,75,101,101,112,32,116,104,105, + 115,32,114,111,117,103,104,108,121,32,105,110,32,115,121,110, + 99,32,119,105,116,104,32,116,104,101,32,116,121,112,105,110, + 103,32,118,101,114,115,105,111,110,46,41,10,218,8,98,117, + 105,108,116,105,110,115,218,1,46,122,3,46,46,46,41,8, + 114,229,0,0,0,114,40,0,0,0,114,79,0,0,0,114, + 80,0,0,0,114,17,1,0,0,218,12,70,117,110,99,116, + 105,111,110,84,121,112,101,114,78,0,0,0,218,4,114,101, + 112,114,41,1,114,14,1,0,0,115,1,0,0,0,32,114, + 9,0,0,0,114,249,0,0,0,114,249,0,0,0,15,2, + 0,0,115,113,0,0,0,128,0,244,14,0,8,18,144,35, + 148,116,215,7,28,209,7,28,216,11,14,143,62,137,62,152, + 90,211,11,39,216,19,22,215,19,35,209,19,35,208,12,35, + 216,18,21,151,46,145,46,208,17,33,160,17,160,51,215,35, + 51,209,35,51,208,34,52,208,15,53,208,8,53,216,7,10, + 140,104,130,127,216,15,20,220,7,17,144,35,148,124,215,7, + 36,209,7,36,216,15,18,143,124,137,124,208,8,27,220,11, + 15,144,3,139,57,208,4,20,114,8,0,0,0,99,0,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0, + 0,0,243,72,0,0,0,149,0,92,0,114,1,83,0,114, + 2,83,1,114,3,83,2,114,4,92,5,83,3,26,0,53, + 0,0,0,0,0,0,0,114,6,92,7,83,4,26,0,53, + 0,0,0,0,0,0,0,114,8,92,7,34,0,92,9,53, + 1,0,0,0,0,0,0,114,10,83,2,114,11,103,5,41, + 6,114,23,0,0,0,105,33,2,0,0,114,7,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,15,0,0,0,243,4,0,0,0,149,0,103,1,114,203, + 0,0,0,114,7,0,0,0,41,3,114,68,0,0,0,114, + 238,0,0,0,218,4,107,119,100,115,115,3,0,0,0,32, + 32,32,114,9,0,0,0,218,8,95,95,99,97,108,108,95, + 95,218,17,67,97,108,108,97,98,108,101,46,95,95,99,97, + 108,108,95,95,37,2,0,0,114,207,0,0,0,114,8,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,243,56,0,0,0,149,0,85,0, + 91,0,0,0,0,0,0,0,0,0,76,0,97,12,0,0, + 91,3,0,0,0,0,0,0,0,0,85,1,83,1,53,2, + 0,0,0,0,0,0,36,0,91,4,0,0,0,0,0,0, + 0,0,36,0,41,2,78,114,28,1,0,0,41,3,114,23, + 0,0,0,114,62,0,0,0,114,56,0,0,0,114,73,0, + 0,0,115,2,0,0,0,32,32,114,9,0,0,0,114,75, + 0,0,0,218,25,67,97,108,108,97,98,108,101,46,95,95, + 115,117,98,99,108,97,115,115,104,111,111,107,95,95,41,2, + 0,0,114,77,0,0,0,114,8,0,0,0,78,41,12,114, + 78,0,0,0,114,79,0,0,0,114,80,0,0,0,114,81, + 0,0,0,114,82,0,0,0,114,4,0,0,0,114,28,1, + 0,0,114,83,0,0,0,114,75,0,0,0,114,226,0,0, + 0,114,95,0,0,0,114,84,0,0,0,114,7,0,0,0, + 114,8,0,0,0,114,9,0,0,0,114,23,0,0,0,114, + 23,0,0,0,33,2,0,0,115,59,0,0,0,134,0,224, + 16,18,128,73,224,5,19,241,2,1,5,21,243,3,0,6, + 20,240,2,1,5,21,240,6,0,6,17,241,2,3,5,30, + 243,3,0,6,17,240,2,3,5,30,241,10,0,25,36,208, + 36,57,211,24,58,211,4,21,114,8,0,0,0,114,23,0, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,0,0,0,0,243,128,0,0,0,149,0,92,0, + 114,1,83,0,114,2,83,1,114,3,83,2,114,4,83,3, + 114,5,83,4,26,0,114,6,83,5,26,0,114,7,83,6, + 26,0,114,8,83,7,26,0,114,9,83,8,26,0,114,10, + 92,11,83,9,26,0,53,0,0,0,0,0,0,0,114,12, + 83,10,26,0,114,13,92,13,114,14,83,11,26,0,114,15, + 83,12,26,0,114,16,92,16,114,17,83,13,26,0,114,18, + 83,14,26,0,114,19,83,15,26,0,114,20,92,20,114,21, + 83,16,26,0,114,22,83,3,114,23,103,17,41,18,114,25, + 0,0,0,105,53,2,0,0,97,66,1,0,0,65,32,115, + 101,116,32,105,115,32,97,32,102,105,110,105,116,101,44,32, + 105,116,101,114,97,98,108,101,32,99,111,110,116,97,105,110, + 101,114,46,10,10,84,104,105,115,32,99,108,97,115,115,32, + 112,114,111,118,105,100,101,115,32,99,111,110,99,114,101,116, + 101,32,103,101,110,101,114,105,99,32,105,109,112,108,101,109, + 101,110,116,97,116,105,111,110,115,32,111,102,32,97,108,108, + 10,109,101,116,104,111,100,115,32,101,120,99,101,112,116,32, + 102,111,114,32,95,95,99,111,110,116,97,105,110,115,95,95, + 44,32,95,95,105,116,101,114,95,95,32,97,110,100,32,95, + 95,108,101,110,95,95,46,10,10,84,111,32,111,118,101,114, + 114,105,100,101,32,116,104,101,32,99,111,109,112,97,114,105, + 115,111,110,115,32,40,112,114,101,115,117,109,97,98,108,121, + 32,102,111,114,32,115,112,101,101,100,44,32,97,115,32,116, + 104,101,10,115,101,109,97,110,116,105,99,115,32,97,114,101, + 32,102,105,120,101,100,41,44,32,114,101,100,101,102,105,110, + 101,32,95,95,108,101,95,95,32,97,110,100,32,95,95,103, + 101,95,95,44,10,116,104,101,110,32,116,104,101,32,111,116, + 104,101,114,32,111,112,101,114,97,116,105,111,110,115,32,119, + 105,108,108,32,97,117,116,111,109,97,116,105,99,97,108,108, + 121,32,102,111,108,108,111,119,32,115,117,105,116,46,10,114, + 7,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,243,140,0,0,0,149,0, + 91,1,0,0,0,0,0,0,0,0,85,1,91,2,0,0, + 0,0,0,0,0,0,53,2,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,100,6,0,0,91,4,0,0,0,0, + 0,0,0,0,36,0,91,7,0,0,0,0,0,0,0,0, + 85,0,53,1,0,0,0,0,0,0,91,7,0,0,0,0, + 0,0,0,0,85,1,53,1,0,0,0,0,0,0,58,148, + 0,0,97,1,0,0,103,1,85,0,19,0,72,10,0,0, + 110,2,88,33,59,1,0,0,100,2,0,0,77,10,0,0, + 32,0,103,1,11,0,32,0,103,2,169,3,78,70,84,169, + 4,114,229,0,0,0,114,25,0,0,0,114,56,0,0,0, + 114,231,0,0,0,169,3,114,68,0,0,0,218,5,111,116, + 104,101,114,218,4,101,108,101,109,115,3,0,0,0,32,32, + 32,114,9,0,0,0,218,6,95,95,108,101,95,95,218,10, + 83,101,116,46,95,95,108,101,95,95,66,2,0,0,115,64, + 0,0,0,128,0,220,15,25,152,37,164,19,215,15,37,209, + 15,37,220,19,33,208,12,33,220,11,14,136,116,139,57,148, + 115,152,53,147,122,211,11,33,216,19,24,219,20,24,136,68, + 216,15,19,213,15,32,217,23,28,241,5,0,21,25,240,6, + 0,16,20,114,8,0,0,0,99,2,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,243,150,0, + 0,0,149,0,91,1,0,0,0,0,0,0,0,0,85,1, + 91,2,0,0,0,0,0,0,0,0,53,2,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,100,6,0,0,91,4, + 0,0,0,0,0,0,0,0,36,0,91,7,0,0,0,0, + 0,0,0,0,85,0,53,1,0,0,0,0,0,0,91,7, + 0,0,0,0,0,0,0,0,85,1,53,1,0,0,0,0, + 0,0,58,2,0,0,61,1,40,0,0,0,0,0,0,0, + 97,17,0,0,32,0,85,0,82,9,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,36,0,114,6,0,0,0,169,5,114, + 229,0,0,0,114,25,0,0,0,114,56,0,0,0,114,231, + 0,0,0,114,39,1,0,0,169,2,114,68,0,0,0,114, + 37,1,0,0,115,2,0,0,0,32,32,114,9,0,0,0, + 218,6,95,95,108,116,95,95,218,10,83,101,116,46,95,95, + 108,116,95,95,76,2,0,0,243,54,0,0,0,128,0,220, + 15,25,152,37,164,19,215,15,37,209,15,37,220,19,33,208, + 12,33,220,15,18,144,52,139,121,156,51,152,117,155,58,209, + 15,37,215,15,60,168,36,175,43,169,43,176,101,211,42,60, + 208,8,60,114,8,0,0,0,99,2,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,243,150,0, + 0,0,149,0,91,1,0,0,0,0,0,0,0,0,85,1, + 91,2,0,0,0,0,0,0,0,0,53,2,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,100,6,0,0,91,4, + 0,0,0,0,0,0,0,0,36,0,91,7,0,0,0,0, + 0,0,0,0,85,0,53,1,0,0,0,0,0,0,91,7, + 0,0,0,0,0,0,0,0,85,1,53,1,0,0,0,0, + 0,0,58,132,0,0,61,1,40,0,0,0,0,0,0,0, + 97,17,0,0,32,0,85,0,82,9,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,36,0,114,6,0,0,0,41,5,114, + 229,0,0,0,114,25,0,0,0,114,56,0,0,0,114,231, + 0,0,0,218,6,95,95,103,101,95,95,114,43,1,0,0, + 115,2,0,0,0,32,32,114,9,0,0,0,218,6,95,95, + 103,116,95,95,218,10,83,101,116,46,95,95,103,116,95,95, + 81,2,0,0,114,46,1,0,0,114,8,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,140,0,0,0,149,0,91,1,0,0,0,0, + 0,0,0,0,85,1,91,2,0,0,0,0,0,0,0,0, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 100,6,0,0,91,4,0,0,0,0,0,0,0,0,36,0, + 91,7,0,0,0,0,0,0,0,0,85,0,53,1,0,0, + 0,0,0,0,91,7,0,0,0,0,0,0,0,0,85,1, + 53,1,0,0,0,0,0,0,58,18,0,0,97,1,0,0, + 103,1,85,1,19,0,72,10,0,0,110,2,88,32,59,1, + 0,0,100,2,0,0,77,10,0,0,32,0,103,1,11,0, + 32,0,103,2,114,34,1,0,0,114,35,1,0,0,114,36, + 1,0,0,115,3,0,0,0,32,32,32,114,9,0,0,0, + 114,48,1,0,0,218,10,83,101,116,46,95,95,103,101,95, + 95,86,2,0,0,115,64,0,0,0,128,0,220,15,25,152, + 37,164,19,215,15,37,209,15,37,220,19,33,208,12,33,220, + 11,14,136,116,139,57,148,115,152,53,147,122,211,11,33,216, + 19,24,219,20,25,136,68,216,15,19,213,15,31,217,23,28, + 241,5,0,21,26,240,6,0,16,20,114,8,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,243,150,0,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,85,1,91,2,0,0,0,0,0,0,0, + 0,53,2,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,100,6,0,0,91,4,0,0,0,0,0,0,0,0,36, + 0,91,7,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,91,7,0,0,0,0,0,0,0,0,85, + 1,53,1,0,0,0,0,0,0,58,72,0,0,61,1,40, + 0,0,0,0,0,0,0,97,17,0,0,32,0,85,0,82, + 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,1,53,1,0,0,0,0,0,0,36,0,114, + 6,0,0,0,114,42,1,0,0,114,43,1,0,0,115,2, + 0,0,0,32,32,114,9,0,0,0,218,6,95,95,101,113, + 95,95,218,10,83,101,116,46,95,95,101,113,95,95,96,2, + 0,0,115,54,0,0,0,128,0,220,15,25,152,37,164,19, + 215,15,37,209,15,37,220,19,33,208,12,33,220,15,18,144, + 52,139,121,156,67,160,5,155,74,209,15,38,215,15,61,168, + 52,175,59,169,59,176,117,211,43,61,208,8,61,114,8,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,243,18,0,0,0,149,0,85,0, + 34,0,85,1,53,1,0,0,0,0,0,0,36,0,41,1, + 122,164,67,111,110,115,116,114,117,99,116,32,97,110,32,105, + 110,115,116,97,110,99,101,32,111,102,32,116,104,101,32,99, + 108,97,115,115,32,102,114,111,109,32,97,110,121,32,105,116, + 101,114,97,98,108,101,32,105,110,112,117,116,46,10,10,77, + 117,115,116,32,111,118,101,114,114,105,100,101,32,116,104,105, + 115,32,109,101,116,104,111,100,32,105,102,32,116,104,101,32, + 99,108,97,115,115,32,99,111,110,115,116,114,117,99,116,111, + 114,32,115,105,103,110,97,116,117,114,101,10,100,111,101,115, + 32,110,111,116,32,97,99,99,101,112,116,32,97,110,32,105, + 116,101,114,97,98,108,101,32,102,111,114,32,97,110,32,105, + 110,112,117,116,46,10,114,7,0,0,0,169,2,114,74,0, + 0,0,218,2,105,116,115,2,0,0,0,32,32,114,9,0, + 0,0,218,14,95,102,114,111,109,95,105,116,101,114,97,98, + 108,101,218,18,83,101,116,46,95,102,114,111,109,95,105,116, + 101,114,97,98,108,101,101,2,0,0,115,13,0,0,0,128, + 0,241,14,0,16,19,144,50,139,119,136,14,114,8,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,112,0,0,0,94,0,149,0,91, + 1,0,0,0,0,0,0,0,0,85,1,91,2,0,0,0, + 0,0,0,0,0,53,2,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,100,6,0,0,91,4,0,0,0,0,0, + 0,0,0,36,0,84,0,82,7,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,0,52,1,83, + 1,26,0,106,8,85,1,19,0,53,0,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,36,0,41,2,78,99,1, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,51, + 0,0,0,243,54,0,0,0,62,1,35,0,32,0,149,0, + 85,0,19,0,72,14,0,0,111,17,84,2,59,0,0,0, + 100,2,0,0,77,10,0,0,85,1,118,0,149,5,32,0, + 77,16,0,0,11,0,32,0,103,0,55,3,102,1,114,6, + 0,0,0,114,7,0,0,0,169,3,114,12,1,0,0,114, + 102,0,0,0,114,68,0,0,0,115,3,0,0,0,32,32, + 128,114,9,0,0,0,114,15,1,0,0,218,30,83,101,116, 46,95,95,97,110,100,95,95,46,60,108,111,99,97,108,115, - 62,46,60,103,101,110,101,120,112,114,62,109,2,0,0,115, - 24,0,0,0,248,232,0,248,128,0,208,34,77,177,101,168, - 85,184,117,200,4,186,125,164,53,177,101,249,115,8,0,0, - 0,131,9,20,1,141,7,20,1,169,4,114,177,0,0,0, - 114,17,0,0,0,114,50,0,0,0,114,252,0,0,0,114, - 240,0,0,0,115,2,0,0,0,96,32,114,9,0,0,0, - 218,7,95,95,97,110,100,95,95,122,11,83,101,116,46,95, - 95,97,110,100,95,95,106,2,0,0,115,42,0,0,0,248, - 128,0,220,15,25,152,37,164,24,212,15,42,220,19,33,208, - 12,33,216,15,19,215,15,34,209,15,34,211,34,77,177,101, - 211,34,77,211,15,77,208,8,77,114,8,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, - 0,0,0,243,30,0,0,0,151,0,124,1,68,0,93,8, - 0,0,125,2,124,2,124,0,118,0,115,1,140,8,1,0, - 121,1,4,0,121,2,41,3,122,49,82,101,116,117,114,110, - 32,84,114,117,101,32,105,102,32,116,119,111,32,115,101,116, - 115,32,104,97,118,101,32,97,32,110,117,108,108,32,105,110, - 116,101,114,115,101,99,116,105,111,110,46,70,84,114,7,0, - 0,0,41,3,114,61,0,0,0,114,235,0,0,0,114,87, - 0,0,0,115,3,0,0,0,32,32,32,114,9,0,0,0, - 218,10,105,115,100,105,115,106,111,105,110,116,122,14,83,101, - 116,46,105,115,100,105,115,106,111,105,110,116,113,2,0,0, - 115,27,0,0,0,128,0,227,21,26,136,69,216,15,20,152, - 4,138,125,217,23,28,240,5,0,22,27,240,6,0,16,20, - 114,8,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,243,102,0,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,124,1,116,2,0, - 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,115, - 6,116,4,0,0,0,0,0,0,0,0,83,0,100,1,132, - 0,124,0,124,1,102,2,68,0,171,0,0,0,0,0,0, - 0,125,2,124,0,106,7,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,2,171,1,0,0,0, - 0,0,0,83,0,41,2,78,99,1,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,51,0,0,0,243,46,0, - 0,0,75,0,1,0,151,0,124,0,93,13,0,0,125,1, - 124,1,68,0,93,6,0,0,125,2,124,2,150,1,151,1, - 1,0,140,8,4,0,140,15,4,0,121,0,173,3,119,1, - 114,6,0,0,0,114,7,0,0,0,41,3,114,212,0,0, - 0,218,1,115,218,1,101,115,3,0,0,0,32,32,32,114, - 9,0,0,0,114,215,0,0,0,122,29,83,101,116,46,95, - 95,111,114,95,95,46,60,108,111,99,97,108,115,62,46,60, - 103,101,110,101,120,112,114,62,123,2,0,0,115,25,0,0, - 0,232,0,248,128,0,208,16,53,153,77,144,113,179,49,168, - 97,148,17,176,49,144,17,153,77,249,115,4,0,0,0,130, - 19,21,1,114,0,1,0,0,41,3,114,61,0,0,0,114, - 235,0,0,0,218,5,99,104,97,105,110,115,3,0,0,0, - 32,32,32,114,9,0,0,0,218,6,95,95,111,114,95,95, - 122,10,83,101,116,46,95,95,111,114,95,95,120,2,0,0, - 115,49,0,0,0,128,0,220,15,25,152,37,164,24,212,15, - 42,220,19,33,208,12,33,217,16,53,152,84,160,53,153,77, - 211,16,53,136,5,216,15,19,215,15,34,209,15,34,160,53, - 211,15,41,208,8,41,114,8,0,0,0,99,2,0,0,0, + 62,46,60,103,101,110,101,120,112,114,62,113,2,0,0,115, + 23,0,0,0,248,233,0,128,0,208,34,77,178,101,168,85, + 200,4,185,125,167,53,161,53,178,101,249,115,8,0,0,0, + 131,9,25,1,144,9,25,1,169,4,114,229,0,0,0,114, + 17,0,0,0,114,56,0,0,0,114,59,1,0,0,114,43, + 1,0,0,115,2,0,0,0,96,32,114,9,0,0,0,218, + 7,95,95,97,110,100,95,95,218,11,83,101,116,46,95,95, + 97,110,100,95,95,110,2,0,0,115,45,0,0,0,248,128, + 0,220,15,25,152,37,164,24,215,15,42,209,15,42,220,19, + 33,208,12,33,216,15,19,215,15,34,209,15,34,212,34,77, + 177,101,211,34,77,211,15,77,208,8,77,114,8,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,3,0,0,0,243,36,0,0,0,149,0,85,1,19,0, + 72,10,0,0,110,2,88,32,59,0,0,0,100,2,0,0, + 77,10,0,0,32,0,103,1,11,0,32,0,103,2,41,3, + 122,49,82,101,116,117,114,110,32,84,114,117,101,32,105,102, + 32,116,119,111,32,115,101,116,115,32,104,97,118,101,32,97, + 32,110,117,108,108,32,105,110,116,101,114,115,101,99,116,105, + 111,110,46,70,84,114,7,0,0,0,41,3,114,68,0,0, + 0,114,37,1,0,0,114,102,0,0,0,115,3,0,0,0, + 32,32,32,114,9,0,0,0,218,10,105,115,100,105,115,106, + 111,105,110,116,218,14,83,101,116,46,105,115,100,105,115,106, + 111,105,110,116,117,2,0,0,115,25,0,0,0,128,0,227, + 21,26,136,69,216,15,20,141,125,217,23,28,241,5,0,22, + 27,240,6,0,16,20,114,8,0,0,0,99,2,0,0,0, 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,166,0,0,0,135,1,151,0,116,1,0,0,0,0,0, - 0,0,0,137,1,116,2,0,0,0,0,0,0,0,0,171, - 2,0,0,0,0,0,0,115,39,116,1,0,0,0,0,0, - 0,0,0,137,1,116,4,0,0,0,0,0,0,0,0,171, - 2,0,0,0,0,0,0,115,6,116,6,0,0,0,0,0, - 0,0,0,83,0,124,0,106,9,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,137,1,171,1,0, - 0,0,0,0,0,138,1,124,0,106,9,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,136,1,102, - 1,100,1,132,8,124,0,68,0,171,0,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,83,0,41,2,78,99,1, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,51, - 0,0,0,243,42,0,0,0,149,1,75,0,1,0,151,0, - 124,0,93,10,0,0,125,1,124,1,137,2,118,1,114,4, - 124,1,150,1,151,1,1,0,140,12,4,0,121,0,173,3, - 119,1,114,6,0,0,0,114,7,0,0,0,41,3,114,212, - 0,0,0,114,87,0,0,0,114,235,0,0,0,115,3,0, - 0,0,32,32,128,114,9,0,0,0,114,215,0,0,0,122, - 30,83,101,116,46,95,95,115,117,98,95,95,46,60,108,111, - 99,97,108,115,62,46,60,103,101,110,101,120,112,114,62,133, - 2,0,0,115,31,0,0,0,248,232,0,248,128,0,240,0, - 1,35,58,177,100,168,85,216,38,43,176,53,209,38,56,244, - 3,0,36,41,177,100,249,243,4,0,0,0,131,16,19,1, - 169,5,114,177,0,0,0,114,25,0,0,0,114,17,0,0, - 0,114,50,0,0,0,114,252,0,0,0,114,240,0,0,0, - 115,2,0,0,0,32,96,114,9,0,0,0,218,7,95,95, - 115,117,98,95,95,122,11,83,101,116,46,95,95,115,117,98, - 95,95,128,2,0,0,115,76,0,0,0,248,128,0,220,15, - 25,152,37,164,19,212,15,37,220,19,29,152,101,164,88,212, - 19,46,220,23,37,208,16,37,216,20,24,215,20,39,209,20, - 39,168,5,211,20,46,136,69,216,15,19,215,15,34,209,15, - 34,243,0,1,35,58,177,100,243,0,1,35,58,243,0,1, - 16,58,240,0,1,9,58,114,8,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,166,0,0,0,135,0,151,0,116,1,0,0,0,0, - 0,0,0,0,124,1,116,2,0,0,0,0,0,0,0,0, - 171,2,0,0,0,0,0,0,115,39,116,1,0,0,0,0, - 0,0,0,0,124,1,116,4,0,0,0,0,0,0,0,0, - 171,2,0,0,0,0,0,0,115,6,116,6,0,0,0,0, - 0,0,0,0,83,0,137,0,106,9,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,1,171,1, - 0,0,0,0,0,0,125,1,137,0,106,9,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,0, - 102,1,100,1,132,8,124,1,68,0,171,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,83,0,41,2,78,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 51,0,0,0,243,42,0,0,0,149,1,75,0,1,0,151, - 0,124,0,93,10,0,0,125,1,124,1,137,2,118,1,114, - 4,124,1,150,1,151,1,1,0,140,12,4,0,121,0,173, - 3,119,1,114,6,0,0,0,114,7,0,0,0,114,255,0, - 0,0,115,3,0,0,0,32,32,128,114,9,0,0,0,114, - 215,0,0,0,122,31,83,101,116,46,95,95,114,115,117,98, - 95,95,46,60,108,111,99,97,108,115,62,46,60,103,101,110, - 101,120,112,114,62,141,2,0,0,115,31,0,0,0,248,232, - 0,248,128,0,240,0,1,35,57,177,101,168,85,216,38,43, - 176,52,209,38,55,244,3,0,36,41,177,101,249,114,12,1, - 0,0,114,13,1,0,0,114,240,0,0,0,115,2,0,0, - 0,96,32,114,9,0,0,0,218,8,95,95,114,115,117,98, - 95,95,122,12,83,101,116,46,95,95,114,115,117,98,95,95, - 136,2,0,0,115,76,0,0,0,248,128,0,220,15,25,152, - 37,164,19,212,15,37,220,19,29,152,101,164,88,212,19,46, + 243,110,0,0,0,149,0,91,1,0,0,0,0,0,0,0, + 0,85,1,91,2,0,0,0,0,0,0,0,0,53,2,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,100,6,0, + 0,91,4,0,0,0,0,0,0,0,0,36,0,83,1,26, + 0,88,1,52,2,19,0,53,0,0,0,0,0,0,0,110, + 2,85,0,82,7,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,2,53,1,0,0,0,0,0, + 0,36,0,41,2,78,99,1,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,51,0,0,0,243,54,0,0,0, + 35,0,32,0,149,0,85,0,19,0,72,15,0,0,111,17, + 19,0,19,0,72,6,0,0,111,34,118,0,149,5,32,0, + 77,8,0,0,11,0,32,0,77,17,0,0,11,0,32,0, + 103,0,55,3,102,1,114,6,0,0,0,114,7,0,0,0, + 41,3,114,12,1,0,0,218,1,115,218,1,101,115,3,0, + 0,0,32,32,32,114,9,0,0,0,114,15,1,0,0,218, + 29,83,101,116,46,95,95,111,114,95,95,46,60,108,111,99, + 97,108,115,62,46,60,103,101,110,101,120,112,114,62,127,2, + 0,0,115,24,0,0,0,233,0,128,0,208,16,53,154,77, + 144,113,179,49,168,97,148,17,177,49,145,17,154,77,249,115, + 4,0,0,0,130,23,25,1,114,65,1,0,0,41,3,114, + 68,0,0,0,114,37,1,0,0,218,5,99,104,97,105,110, + 115,3,0,0,0,32,32,32,114,9,0,0,0,218,6,95, + 95,111,114,95,95,218,10,83,101,116,46,95,95,111,114,95, + 95,124,2,0,0,115,50,0,0,0,128,0,220,15,25,152, + 37,164,24,215,15,42,209,15,42,220,19,33,208,12,33,217, + 16,53,152,84,153,77,211,16,53,136,5,216,15,19,215,15, + 34,209,15,34,160,53,211,15,41,208,8,41,114,8,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,188,0,0,0,94,1,149,0,91, + 1,0,0,0,0,0,0,0,0,84,1,91,2,0,0,0, + 0,0,0,0,0,53,2,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,100,44,0,0,91,1,0,0,0,0,0, + 0,0,0,84,1,91,4,0,0,0,0,0,0,0,0,53, + 2,0,0,0,0,0,0,40,0,0,0,0,0,0,0,100, + 6,0,0,91,6,0,0,0,0,0,0,0,0,36,0,85, + 0,82,9,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,84,1,53,1,0,0,0,0,0,0,109, + 1,85,0,82,9,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,1,52,1,83,1,26,0,106, + 8,85,0,19,0,53,0,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,36,0,41,2,78,99,1,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,51,0,0,0,243, + 56,0,0,0,62,1,35,0,32,0,149,0,85,0,19,0, + 72,15,0,0,110,1,85,1,84,2,59,1,0,0,100,2, + 0,0,77,11,0,0,85,1,118,0,149,5,32,0,77,17, + 0,0,11,0,32,0,103,0,55,3,102,1,114,6,0,0, + 0,114,7,0,0,0,41,3,114,12,1,0,0,114,102,0, + 0,0,114,37,1,0,0,115,3,0,0,0,32,32,128,114, + 9,0,0,0,114,15,1,0,0,218,30,83,101,116,46,95, + 95,115,117,98,95,95,46,60,108,111,99,97,108,115,62,46, + 60,103,101,110,101,120,112,114,62,137,2,0,0,115,32,0, + 0,0,248,233,0,128,0,240,0,1,35,58,178,100,168,85, + 216,38,43,176,53,209,38,56,247,3,0,36,41,161,53,178, + 100,249,243,8,0,0,0,131,10,26,1,145,9,26,1,169, + 5,114,229,0,0,0,114,25,0,0,0,114,17,0,0,0, + 114,56,0,0,0,114,59,1,0,0,114,43,1,0,0,115, + 2,0,0,0,32,96,114,9,0,0,0,218,7,95,95,115, + 117,98,95,95,218,11,83,101,116,46,95,95,115,117,98,95, + 95,132,2,0,0,115,82,0,0,0,248,128,0,220,15,25, + 152,37,164,19,215,15,37,209,15,37,220,19,29,152,101,164, + 88,215,19,46,209,19,46,220,23,37,208,16,37,216,20,24, + 215,20,39,209,20,39,168,5,211,20,46,136,69,216,15,19, + 215,15,34,209,15,34,244,0,1,35,58,177,100,243,0,1, + 35,58,243,0,1,16,58,240,0,1,9,58,114,8,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,188,0,0,0,94,0,149,0,91, + 1,0,0,0,0,0,0,0,0,85,1,91,2,0,0,0, + 0,0,0,0,0,53,2,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,100,44,0,0,91,1,0,0,0,0,0, + 0,0,0,85,1,91,4,0,0,0,0,0,0,0,0,53, + 2,0,0,0,0,0,0,40,0,0,0,0,0,0,0,100, + 6,0,0,91,6,0,0,0,0,0,0,0,0,36,0,84, + 0,82,9,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,1,53,1,0,0,0,0,0,0,110, + 1,84,0,82,9,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,0,52,1,83,1,26,0,106, + 8,85,1,19,0,53,0,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,36,0,41,2,78,99,1,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,51,0,0,0,243, + 56,0,0,0,62,1,35,0,32,0,149,0,85,0,19,0, + 72,15,0,0,110,1,85,1,84,2,59,1,0,0,100,2, + 0,0,77,11,0,0,85,1,118,0,149,5,32,0,77,17, + 0,0,11,0,32,0,103,0,55,3,102,1,114,6,0,0, + 0,114,7,0,0,0,114,63,1,0,0,115,3,0,0,0, + 32,32,128,114,9,0,0,0,114,15,1,0,0,218,31,83, + 101,116,46,95,95,114,115,117,98,95,95,46,60,108,111,99, + 97,108,115,62,46,60,103,101,110,101,120,112,114,62,145,2, + 0,0,115,32,0,0,0,248,233,0,128,0,240,0,1,35, + 57,178,101,168,85,216,38,43,176,52,209,38,55,247,3,0, + 36,41,161,53,178,101,249,114,82,1,0,0,114,83,1,0, + 0,114,43,1,0,0,115,2,0,0,0,96,32,114,9,0, + 0,0,218,8,95,95,114,115,117,98,95,95,218,12,83,101, + 116,46,95,95,114,115,117,98,95,95,140,2,0,0,115,82, + 0,0,0,248,128,0,220,15,25,152,37,164,19,215,15,37, + 209,15,37,220,19,29,152,101,164,88,215,19,46,209,19,46, 220,23,37,208,16,37,216,20,24,215,20,39,209,20,39,168, - 5,211,20,46,136,69,216,15,19,215,15,34,209,15,34,243, + 5,211,20,46,136,69,216,15,19,215,15,34,209,15,34,244, 0,1,35,57,177,101,243,0,1,35,57,243,0,1,16,57, 240,0,1,9,57,114,8,0,0,0,99,2,0,0,0,0, 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, - 134,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, - 124,1,116,2,0,0,0,0,0,0,0,0,171,2,0,0, - 0,0,0,0,115,39,116,1,0,0,0,0,0,0,0,0, - 124,1,116,4,0,0,0,0,0,0,0,0,171,2,0,0, - 0,0,0,0,115,6,116,6,0,0,0,0,0,0,0,0, - 83,0,124,0,106,9,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,171,1,0,0,0,0, - 0,0,125,1,124,0,124,1,122,10,0,0,124,1,124,0, - 122,10,0,0,122,7,0,0,83,0,114,6,0,0,0,114, - 13,1,0,0,114,240,0,0,0,115,2,0,0,0,32,32, - 114,9,0,0,0,218,7,95,95,120,111,114,95,95,122,11, - 83,101,116,46,95,95,120,111,114,95,95,144,2,0,0,115, - 63,0,0,0,128,0,220,15,25,152,37,164,19,212,15,37, - 220,19,29,152,101,164,88,212,19,46,220,23,37,208,16,37, - 216,20,24,215,20,39,209,20,39,168,5,211,20,46,136,69, - 216,16,20,144,117,145,12,160,21,168,20,161,28,209,15,46, - 208,8,46,114,8,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,3,0,0,0,243,20,1, - 0,0,151,0,116,0,0,0,0,0,0,0,0,0,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,125,1,100,1,124,1,122,5,0,0,100,2,122,0, - 0,0,125,2,116,5,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,125,3,100,3,124,3,100,2, - 122,0,0,0,122,5,0,0,125,4,124,4,124,2,122,14, - 0,0,125,4,124,0,68,0,93,35,0,0,125,5,116,7, - 0,0,0,0,0,0,0,0,124,5,171,1,0,0,0,0, - 0,0,125,6,124,4,124,6,124,6,100,4,122,3,0,0, - 122,12,0,0,100,5,122,12,0,0,100,6,122,5,0,0, - 122,25,0,0,125,4,124,4,124,2,122,14,0,0,125,4, - 140,37,4,0,124,4,124,4,100,7,122,9,0,0,124,4, - 100,8,122,9,0,0,122,12,0,0,122,25,0,0,125,4, - 124,4,100,9,122,5,0,0,100,10,122,0,0,0,125,4, - 124,4,124,2,122,14,0,0,125,4,124,4,124,1,107,68, - 0,0,114,8,124,4,124,2,100,2,122,0,0,0,122,23, - 0,0,125,4,124,4,100,11,107,40,0,0,114,2,100,12, - 125,4,124,4,83,0,41,13,97,43,2,0,0,67,111,109, - 112,117,116,101,32,116,104,101,32,104,97,115,104,32,118,97, - 108,117,101,32,111,102,32,97,32,115,101,116,46,10,10,32, - 32,32,32,32,32,32,32,78,111,116,101,32,116,104,97,116, - 32,119,101,32,100,111,110,39,116,32,100,101,102,105,110,101, - 32,95,95,104,97,115,104,95,95,58,32,110,111,116,32,97, - 108,108,32,115,101,116,115,32,97,114,101,32,104,97,115,104, - 97,98,108,101,46,10,32,32,32,32,32,32,32,32,66,117, - 116,32,105,102,32,121,111,117,32,100,101,102,105,110,101,32, - 97,32,104,97,115,104,97,98,108,101,32,115,101,116,32,116, - 121,112,101,44,32,105,116,115,32,95,95,104,97,115,104,95, - 95,32,115,104,111,117,108,100,10,32,32,32,32,32,32,32, - 32,99,97,108,108,32,116,104,105,115,32,102,117,110,99,116, - 105,111,110,46,10,10,32,32,32,32,32,32,32,32,84,104, - 105,115,32,109,117,115,116,32,98,101,32,99,111,109,112,97, - 116,105,98,108,101,32,95,95,101,113,95,95,46,10,10,32, - 32,32,32,32,32,32,32,65,108,108,32,115,101,116,115,32, - 111,117,103,104,116,32,116,111,32,99,111,109,112,97,114,101, - 32,101,113,117,97,108,32,105,102,32,116,104,101,121,32,99, - 111,110,116,97,105,110,32,116,104,101,32,115,97,109,101,10, - 32,32,32,32,32,32,32,32,101,108,101,109,101,110,116,115, - 44,32,114,101,103,97,114,100,108,101,115,115,32,111,102,32, - 104,111,119,32,116,104,101,121,32,97,114,101,32,105,109,112, - 108,101,109,101,110,116,101,100,44,32,97,110,100,10,32,32, - 32,32,32,32,32,32,114,101,103,97,114,100,108,101,115,115, - 32,111,102,32,116,104,101,32,111,114,100,101,114,32,111,102, - 32,116,104,101,32,101,108,101,109,101,110,116,115,59,32,115, - 111,32,116,104,101,114,101,39,115,32,110,111,116,32,109,117, - 99,104,10,32,32,32,32,32,32,32,32,102,114,101,101,100, - 111,109,32,102,111,114,32,95,95,101,113,95,95,32,111,114, - 32,95,95,104,97,115,104,95,95,46,32,32,87,101,32,109, - 97,116,99,104,32,116,104,101,32,97,108,103,111,114,105,116, - 104,109,32,117,115,101,100,10,32,32,32,32,32,32,32,32, - 98,121,32,116,104,101,32,98,117,105,108,116,45,105,110,32, - 102,114,111,122,101,110,115,101,116,32,116,121,112,101,46,10, - 32,32,32,32,32,32,32,32,114,176,0,0,0,114,37,0, - 0,0,105,77,239,232,114,233,16,0,0,0,105,179,77,91, - 5,108,3,0,0,0,215,52,126,50,3,0,233,11,0,0, - 0,233,25,0,0,0,105,205,13,1,0,105,227,195,17,54, - 114,191,0,0,0,105,193,199,56,35,41,4,218,3,115,121, - 115,218,7,109,97,120,115,105,122,101,114,179,0,0,0,218, - 4,104,97,115,104,41,7,114,61,0,0,0,218,3,77,65, - 88,218,4,77,65,83,75,218,1,110,218,1,104,114,157,0, - 0,0,218,2,104,120,115,7,0,0,0,32,32,32,32,32, - 32,32,114,9,0,0,0,218,5,95,104,97,115,104,122,9, - 83,101,116,46,95,104,97,115,104,153,2,0,0,115,199,0, - 0,0,128,0,244,30,0,15,18,143,107,137,107,136,3,216, - 15,16,144,51,137,119,152,17,137,123,136,4,220,12,15,144, - 4,139,73,136,1,216,12,22,152,33,152,97,153,37,209,12, - 32,136,1,216,8,9,136,84,137,9,136,1,219,17,21,136, - 65,220,17,21,144,97,147,23,136,66,216,12,13,144,34,152, - 2,152,98,153,8,145,47,160,72,209,18,44,176,26,209,17, - 59,209,12,59,136,65,216,12,13,144,20,137,73,137,65,240, - 7,0,18,22,240,8,0,9,10,136,97,144,50,137,103,152, - 33,152,114,153,39,209,13,34,209,8,34,136,1,216,12,13, - 144,5,137,73,152,9,209,12,33,136,1,216,8,9,136,84, - 137,9,136,1,216,11,12,136,115,138,55,216,12,13,144,20, - 152,1,145,24,137,77,136,65,216,11,12,144,2,138,55,216, - 16,25,136,65,216,15,16,136,8,114,8,0,0,0,78,41, - 22,114,69,0,0,0,114,70,0,0,0,114,71,0,0,0, - 114,204,0,0,0,114,72,0,0,0,114,237,0,0,0,114, - 241,0,0,0,114,245,0,0,0,114,244,0,0,0,114,248, - 0,0,0,114,73,0,0,0,114,252,0,0,0,114,1,1, - 0,0,218,8,95,95,114,97,110,100,95,95,114,3,1,0, - 0,114,9,1,0,0,218,7,95,95,114,111,114,95,95,114, - 14,1,0,0,114,17,1,0,0,114,19,1,0,0,218,8, - 95,95,114,120,111,114,95,95,114,32,1,0,0,114,7,0, - 0,0,114,8,0,0,0,114,9,0,0,0,114,25,0,0, - 0,114,25,0,0,0,49,2,0,0,115,116,0,0,0,132, - 0,241,2,8,5,8,240,20,0,17,19,128,73,242,4,8, - 5,20,242,20,3,5,61,242,10,3,5,61,242,10,8,5, - 20,242,20,3,5,62,240,10,0,6,17,241,2,6,5,23, - 243,3,0,6,17,240,2,6,5,23,242,16,3,5,78,1, - 240,10,0,16,23,128,72,242,4,5,5,20,242,14,4,5, - 42,240,12,0,15,21,128,71,242,4,6,5,58,242,16,6, - 5,57,242,16,5,5,47,240,14,0,16,23,128,72,243,4, - 31,5,17,114,8,0,0,0,114,25,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0, - 0,0,243,94,0,0,0,151,0,101,0,90,1,100,0,90, - 2,100,1,90,3,100,2,90,4,101,5,100,3,132,0,171, - 0,0,0,0,0,0,0,90,6,101,5,100,4,132,0,171, - 0,0,0,0,0,0,0,90,7,100,5,132,0,90,8,100, - 6,132,0,90,9,100,7,132,0,90,10,100,8,132,0,90, - 11,100,9,132,0,90,12,100,10,132,0,90,13,100,11,132, - 0,90,14,121,12,41,13,114,26,0,0,0,97,135,1,0, - 0,65,32,109,117,116,97,98,108,101,32,115,101,116,32,105, - 115,32,97,32,102,105,110,105,116,101,44,32,105,116,101,114, - 97,98,108,101,32,99,111,110,116,97,105,110,101,114,46,10, - 10,32,32,32,32,84,104,105,115,32,99,108,97,115,115,32, - 112,114,111,118,105,100,101,115,32,99,111,110,99,114,101,116, - 101,32,103,101,110,101,114,105,99,32,105,109,112,108,101,109, - 101,110,116,97,116,105,111,110,115,32,111,102,32,97,108,108, - 10,32,32,32,32,109,101,116,104,111,100,115,32,101,120,99, - 101,112,116,32,102,111,114,32,95,95,99,111,110,116,97,105, - 110,115,95,95,44,32,95,95,105,116,101,114,95,95,44,32, - 95,95,108,101,110,95,95,44,10,32,32,32,32,97,100,100, - 40,41,44,32,97,110,100,32,100,105,115,99,97,114,100,40, - 41,46,10,10,32,32,32,32,84,111,32,111,118,101,114,114, - 105,100,101,32,116,104,101,32,99,111,109,112,97,114,105,115, - 111,110,115,32,40,112,114,101,115,117,109,97,98,108,121,32, - 102,111,114,32,115,112,101,101,100,44,32,97,115,32,116,104, - 101,10,32,32,32,32,115,101,109,97,110,116,105,99,115,32, - 97,114,101,32,102,105,120,101,100,41,44,32,97,108,108,32, - 121,111,117,32,104,97,118,101,32,116,111,32,100,111,32,105, - 115,32,114,101,100,101,102,105,110,101,32,95,95,108,101,95, - 95,32,97,110,100,10,32,32,32,32,116,104,101,110,32,116, - 104,101,32,111,116,104,101,114,32,111,112,101,114,97,116,105, - 111,110,115,32,119,105,108,108,32,97,117,116,111,109,97,116, - 105,99,97,108,108,121,32,102,111,108,108,111,119,32,115,117, - 105,116,46,10,32,32,32,32,114,7,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, - 0,0,243,14,0,0,0,151,0,116,0,0,0,0,0,0, - 0,0,0,130,1,41,1,122,15,65,100,100,32,97,110,32, - 101,108,101,109,101,110,116,46,114,167,0,0,0,114,86,0, - 0,0,115,2,0,0,0,32,32,114,9,0,0,0,218,3, - 97,100,100,122,14,77,117,116,97,98,108,101,83,101,116,46, - 97,100,100,204,2,0,0,243,10,0,0,0,128,0,244,6, - 0,15,34,208,8,33,114,8,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, - 243,14,0,0,0,151,0,116,0,0,0,0,0,0,0,0, - 0,130,1,41,1,122,56,82,101,109,111,118,101,32,97,110, - 32,101,108,101,109,101,110,116,46,32,32,68,111,32,110,111, - 116,32,114,97,105,115,101,32,97,110,32,101,120,99,101,112, - 116,105,111,110,32,105,102,32,97,98,115,101,110,116,46,114, - 167,0,0,0,114,86,0,0,0,115,2,0,0,0,32,32, - 114,9,0,0,0,218,7,100,105,115,99,97,114,100,122,18, - 77,117,116,97,98,108,101,83,101,116,46,100,105,115,99,97, - 114,100,209,2,0,0,114,39,1,0,0,114,8,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,3,0,0,0,243,68,0,0,0,151,0,124,1,124,0, - 118,1,114,11,116,1,0,0,0,0,0,0,0,0,124,1, - 171,1,0,0,0,0,0,0,130,1,124,0,106,3,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,1,0,121,1,41,2, - 122,53,82,101,109,111,118,101,32,97,110,32,101,108,101,109, - 101,110,116,46,32,73,102,32,110,111,116,32,97,32,109,101, - 109,98,101,114,44,32,114,97,105,115,101,32,97,32,75,101, - 121,69,114,114,111,114,46,78,41,2,218,8,75,101,121,69, - 114,114,111,114,114,41,1,0,0,114,86,0,0,0,115,2, - 0,0,0,32,32,114,9,0,0,0,218,6,114,101,109,111, - 118,101,122,17,77,117,116,97,98,108,101,83,101,116,46,114, - 101,109,111,118,101,214,2,0,0,115,32,0,0,0,128,0, - 224,11,16,152,4,209,11,28,220,18,26,152,53,147,47,208, - 12,33,216,8,12,143,12,137,12,144,85,213,8,27,114,8, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,126,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,125,1,9,0,116,3,0,0,0,0,0,0,0, - 0,124,1,171,1,0,0,0,0,0,0,125,2,124,0,106, - 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,2,171,1,0,0,0,0,0,0,1,0,124, - 2,83,0,35,0,116,4,0,0,0,0,0,0,0,0,36, - 0,114,8,1,0,116,6,0,0,0,0,0,0,0,0,100, - 1,130,2,119,0,120,3,89,0,119,1,41,2,122,50,82, - 101,116,117,114,110,32,116,104,101,32,112,111,112,112,101,100, - 32,118,97,108,117,101,46,32,32,82,97,105,115,101,32,75, - 101,121,69,114,114,111,114,32,105,102,32,101,109,112,116,121, - 46,78,41,5,218,4,105,116,101,114,218,4,110,101,120,116, - 114,85,0,0,0,114,43,1,0,0,114,41,1,0,0,169, - 3,114,61,0,0,0,114,251,0,0,0,114,87,0,0,0, - 115,3,0,0,0,32,32,32,114,9,0,0,0,218,3,112, - 111,112,122,14,77,117,116,97,98,108,101,83,101,116,46,112, - 111,112,220,2,0,0,115,69,0,0,0,128,0,228,13,17, - 144,36,139,90,136,2,240,2,3,9,37,220,20,24,152,18, - 147,72,136,69,240,6,0,9,13,143,12,137,12,144,85,212, - 8,27,216,15,20,136,12,248,244,7,0,16,29,242,0,1, - 9,37,220,18,26,160,4,208,12,36,240,3,1,9,37,250, - 115,8,0,0,0,141,11,43,0,171,17,60,3,99,1,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,243,70,0,0,0,151,0,9,0,9,0,124,0,106, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,1,0,140,17,35, - 0,116,2,0,0,0,0,0,0,0,0,36,0,114,3,1, - 0,89,0,121,1,119,0,120,3,89,0,119,1,41,2,122, - 54,84,104,105,115,32,105,115,32,115,108,111,119,32,40,99, - 114,101,97,116,101,115,32,78,32,110,101,119,32,105,116,101, - 114,97,116,111,114,115,33,41,32,98,117,116,32,101,102,102, - 101,99,116,105,118,101,46,78,41,2,114,49,1,0,0,114, - 43,1,0,0,114,60,0,0,0,115,1,0,0,0,32,114, - 9,0,0,0,218,5,99,108,101,97,114,122,16,77,117,116, - 97,98,108,101,83,101,116,46,99,108,101,97,114,230,2,0, - 0,115,42,0,0,0,128,0,240,4,4,9,17,216,18,22, - 216,16,20,151,8,145,8,148,10,240,3,0,19,23,248,228, - 15,23,242,0,1,9,17,217,12,16,240,3,1,9,17,250, - 243,12,0,0,0,130,18,20,0,148,9,32,3,159,1,32, - 3,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,243,54,0,0,0,151,0,124,1,68, - 0,93,19,0,0,125,2,124,0,106,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,2,171, - 1,0,0,0,0,0,0,1,0,140,21,4,0,124,0,83, - 0,114,6,0,0,0,41,1,114,38,1,0,0,114,48,1, + 150,0,0,0,149,0,91,1,0,0,0,0,0,0,0,0, + 85,1,91,2,0,0,0,0,0,0,0,0,53,2,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,100,44,0,0, + 91,1,0,0,0,0,0,0,0,0,85,1,91,4,0,0, + 0,0,0,0,0,0,53,2,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,100,6,0,0,91,6,0,0,0,0, + 0,0,0,0,36,0,85,0,82,9,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,110,1,88,1,45,10,0,0,88,16, + 45,10,0,0,45,7,0,0,36,0,114,6,0,0,0,114, + 83,1,0,0,114,43,1,0,0,115,2,0,0,0,32,32, + 114,9,0,0,0,218,7,95,95,120,111,114,95,95,218,11, + 83,101,116,46,95,95,120,111,114,95,95,148,2,0,0,115, + 65,0,0,0,128,0,220,15,25,152,37,164,19,215,15,37, + 209,15,37,220,19,29,152,101,164,88,215,19,46,209,19,46, + 220,23,37,208,16,37,216,20,24,215,20,39,209,20,39,168, + 5,211,20,46,136,69,216,16,20,145,12,160,21,161,28,209, + 15,46,208,8,46,114,8,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,243, + 14,1,0,0,149,0,91,0,0,0,0,0,0,0,0,0, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,110,1,83,1,85,1,45,5,0,0,83,2, + 45,0,0,0,110,2,91,5,0,0,0,0,0,0,0,0, + 85,0,53,1,0,0,0,0,0,0,110,3,83,3,85,3, + 83,2,45,0,0,0,45,5,0,0,110,4,88,66,45,14, + 0,0,110,4,85,0,19,0,72,34,0,0,110,5,91,7, + 0,0,0,0,0,0,0,0,85,5,53,1,0,0,0,0, + 0,0,110,6,88,70,85,6,83,4,45,3,0,0,45,12, + 0,0,83,5,45,12,0,0,83,6,45,5,0,0,45,25, + 0,0,110,4,88,66,45,14,0,0,110,4,77,36,0,0, + 11,0,32,0,88,68,83,7,45,9,0,0,85,4,83,8, + 45,9,0,0,45,12,0,0,45,25,0,0,110,4,85,4, + 83,9,45,5,0,0,83,10,45,0,0,0,110,4,88,66, + 45,14,0,0,110,4,88,65,58,148,0,0,97,7,0,0, + 88,66,83,2,45,0,0,0,45,23,0,0,110,4,85,4, + 83,11,58,88,0,0,97,2,0,0,83,12,110,4,85,4, + 36,0,41,13,97,219,1,0,0,67,111,109,112,117,116,101, + 32,116,104,101,32,104,97,115,104,32,118,97,108,117,101,32, + 111,102,32,97,32,115,101,116,46,10,10,78,111,116,101,32, + 116,104,97,116,32,119,101,32,100,111,110,39,116,32,100,101, + 102,105,110,101,32,95,95,104,97,115,104,95,95,58,32,110, + 111,116,32,97,108,108,32,115,101,116,115,32,97,114,101,32, + 104,97,115,104,97,98,108,101,46,10,66,117,116,32,105,102, + 32,121,111,117,32,100,101,102,105,110,101,32,97,32,104,97, + 115,104,97,98,108,101,32,115,101,116,32,116,121,112,101,44, + 32,105,116,115,32,95,95,104,97,115,104,95,95,32,115,104, + 111,117,108,100,10,99,97,108,108,32,116,104,105,115,32,102, + 117,110,99,116,105,111,110,46,10,10,84,104,105,115,32,109, + 117,115,116,32,98,101,32,99,111,109,112,97,116,105,98,108, + 101,32,95,95,101,113,95,95,46,10,10,65,108,108,32,115, + 101,116,115,32,111,117,103,104,116,32,116,111,32,99,111,109, + 112,97,114,101,32,101,113,117,97,108,32,105,102,32,116,104, + 101,121,32,99,111,110,116,97,105,110,32,116,104,101,32,115, + 97,109,101,10,101,108,101,109,101,110,116,115,44,32,114,101, + 103,97,114,100,108,101,115,115,32,111,102,32,104,111,119,32, + 116,104,101,121,32,97,114,101,32,105,109,112,108,101,109,101, + 110,116,101,100,44,32,97,110,100,10,114,101,103,97,114,100, + 108,101,115,115,32,111,102,32,116,104,101,32,111,114,100,101, + 114,32,111,102,32,116,104,101,32,101,108,101,109,101,110,116, + 115,59,32,115,111,32,116,104,101,114,101,39,115,32,110,111, + 116,32,109,117,99,104,10,102,114,101,101,100,111,109,32,102, + 111,114,32,95,95,101,113,95,95,32,111,114,32,95,95,104, + 97,115,104,95,95,46,32,32,87,101,32,109,97,116,99,104, + 32,116,104,101,32,97,108,103,111,114,105,116,104,109,32,117, + 115,101,100,10,98,121,32,116,104,101,32,98,117,105,108,116, + 45,105,110,32,102,114,111,122,101,110,115,101,116,32,116,121, + 112,101,46,10,114,228,0,0,0,114,37,0,0,0,105,77, + 239,232,114,233,16,0,0,0,105,179,77,91,5,108,3,0, + 0,0,215,52,126,50,3,0,233,11,0,0,0,233,25,0, + 0,0,105,205,13,1,0,105,227,195,17,54,114,244,0,0, + 0,105,193,199,56,35,41,4,114,41,0,0,0,218,7,109, + 97,120,115,105,122,101,114,231,0,0,0,218,4,104,97,115, + 104,41,7,114,68,0,0,0,218,3,77,65,88,218,4,77, + 65,83,75,218,1,110,218,1,104,114,204,0,0,0,218,2, + 104,120,115,7,0,0,0,32,32,32,32,32,32,32,114,9, + 0,0,0,218,5,95,104,97,115,104,218,9,83,101,116,46, + 95,104,97,115,104,157,2,0,0,115,185,0,0,0,128,0, + 244,30,0,15,18,143,107,137,107,136,3,216,15,16,144,51, + 137,119,152,17,137,123,136,4,220,12,15,144,4,139,73,136, + 1,216,12,22,152,33,152,97,153,37,209,12,32,136,1,216, + 8,9,137,9,136,1,219,17,21,136,65,220,17,21,144,97, + 147,23,136,66,216,12,13,152,2,152,98,153,8,145,47,160, + 72,209,18,44,176,26,209,17,59,209,12,59,136,65,216,12, + 13,137,73,138,65,241,7,0,18,22,240,8,0,9,10,144, + 50,137,103,152,33,152,114,153,39,209,13,34,209,8,34,136, + 1,216,12,13,144,5,137,73,152,9,209,12,33,136,1,216, + 8,9,137,9,136,1,216,11,12,139,55,216,12,13,152,1, + 145,24,137,77,136,65,216,11,12,144,2,139,55,216,16,25, + 136,65,216,15,16,136,8,114,8,0,0,0,78,41,24,114, + 78,0,0,0,114,79,0,0,0,114,80,0,0,0,114,81, + 0,0,0,114,4,1,0,0,114,82,0,0,0,114,39,1, + 0,0,114,44,1,0,0,114,49,1,0,0,114,48,1,0, + 0,114,54,1,0,0,114,83,0,0,0,114,59,1,0,0, + 114,66,1,0,0,218,8,95,95,114,97,110,100,95,95,114, + 69,1,0,0,114,77,1,0,0,218,7,95,95,114,111,114, + 95,95,114,84,1,0,0,114,89,1,0,0,114,92,1,0, + 0,218,8,95,95,114,120,111,114,95,95,114,105,1,0,0, + 114,84,0,0,0,114,7,0,0,0,114,8,0,0,0,114, + 9,0,0,0,114,25,0,0,0,114,25,0,0,0,53,2, + 0,0,115,116,0,0,0,134,0,241,2,8,5,8,240,20, + 0,17,19,128,73,242,4,8,5,20,242,20,3,5,61,242, + 10,3,5,61,242,10,8,5,20,242,20,3,5,62,240,10, + 0,6,17,241,2,6,5,23,243,3,0,6,17,240,2,6, + 5,23,242,16,3,5,78,1,240,10,0,16,23,128,72,242, + 4,5,5,20,242,14,4,5,42,240,12,0,15,21,128,71, + 242,4,6,5,58,242,16,6,5,57,242,16,5,5,47,240, + 14,0,16,23,128,72,245,4,31,5,17,114,8,0,0,0, + 114,25,0,0,0,99,0,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,0,0,0,0,243,102,0,0,0,149, + 0,92,0,114,1,83,0,114,2,83,1,114,3,83,2,114, + 4,83,3,114,5,92,6,83,4,26,0,53,0,0,0,0, + 0,0,0,114,7,92,6,83,5,26,0,53,0,0,0,0, + 0,0,0,114,8,83,6,26,0,114,9,83,7,26,0,114, + 10,83,8,26,0,114,11,83,9,26,0,114,12,83,10,26, + 0,114,13,83,11,26,0,114,14,83,12,26,0,114,15,83, + 3,114,16,103,13,41,14,114,26,0,0,0,105,194,2,0, + 0,97,107,1,0,0,65,32,109,117,116,97,98,108,101,32, + 115,101,116,32,105,115,32,97,32,102,105,110,105,116,101,44, + 32,105,116,101,114,97,98,108,101,32,99,111,110,116,97,105, + 110,101,114,46,10,10,84,104,105,115,32,99,108,97,115,115, + 32,112,114,111,118,105,100,101,115,32,99,111,110,99,114,101, + 116,101,32,103,101,110,101,114,105,99,32,105,109,112,108,101, + 109,101,110,116,97,116,105,111,110,115,32,111,102,32,97,108, + 108,10,109,101,116,104,111,100,115,32,101,120,99,101,112,116, + 32,102,111,114,32,95,95,99,111,110,116,97,105,110,115,95, + 95,44,32,95,95,105,116,101,114,95,95,44,32,95,95,108, + 101,110,95,95,44,10,97,100,100,40,41,44,32,97,110,100, + 32,100,105,115,99,97,114,100,40,41,46,10,10,84,111,32, + 111,118,101,114,114,105,100,101,32,116,104,101,32,99,111,109, + 112,97,114,105,115,111,110,115,32,40,112,114,101,115,117,109, + 97,98,108,121,32,102,111,114,32,115,112,101,101,100,44,32, + 97,115,32,116,104,101,10,115,101,109,97,110,116,105,99,115, + 32,97,114,101,32,102,105,120,101,100,41,44,32,97,108,108, + 32,121,111,117,32,104,97,118,101,32,116,111,32,100,111,32, + 105,115,32,114,101,100,101,102,105,110,101,32,95,95,108,101, + 95,95,32,97,110,100,10,116,104,101,110,32,116,104,101,32, + 111,116,104,101,114,32,111,112,101,114,97,116,105,111,110,115, + 32,119,105,108,108,32,97,117,116,111,109,97,116,105,99,97, + 108,108,121,32,102,111,108,108,111,119,32,115,117,105,116,46, + 10,114,7,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,3,0,0,0,243,14,0,0,0, + 149,0,91,0,0,0,0,0,0,0,0,0,101,1,41,1, + 122,15,65,100,100,32,97,110,32,101,108,101,109,101,110,116, + 46,114,217,0,0,0,114,101,0,0,0,115,2,0,0,0, + 32,32,114,9,0,0,0,218,3,97,100,100,218,14,77,117, + 116,97,98,108,101,83,101,116,46,97,100,100,208,2,0,0, + 243,10,0,0,0,128,0,244,6,0,15,34,208,8,33,114, + 8,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,243,14,0,0,0,149,0, + 91,0,0,0,0,0,0,0,0,0,101,1,41,1,122,56, + 82,101,109,111,118,101,32,97,110,32,101,108,101,109,101,110, + 116,46,32,32,68,111,32,110,111,116,32,114,97,105,115,101, + 32,97,110,32,101,120,99,101,112,116,105,111,110,32,105,102, + 32,97,98,115,101,110,116,46,114,217,0,0,0,114,101,0, + 0,0,115,2,0,0,0,32,32,114,9,0,0,0,218,7, + 100,105,115,99,97,114,100,218,18,77,117,116,97,98,108,101, + 83,101,116,46,100,105,115,99,97,114,100,213,2,0,0,114, + 114,1,0,0,114,8,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,70, + 0,0,0,149,0,88,16,59,1,0,0,97,11,0,0,91, + 1,0,0,0,0,0,0,0,0,85,1,53,1,0,0,0, + 0,0,0,101,1,85,0,82,3,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,1,53,1,0, + 0,0,0,0,0,32,0,103,1,41,2,122,53,82,101,109, + 111,118,101,32,97,110,32,101,108,101,109,101,110,116,46,32, + 73,102,32,110,111,116,32,97,32,109,101,109,98,101,114,44, + 32,114,97,105,115,101,32,97,32,75,101,121,69,114,114,111, + 114,46,78,41,2,218,8,75,101,121,69,114,114,111,114,114, + 116,1,0,0,114,101,0,0,0,115,2,0,0,0,32,32, + 114,9,0,0,0,218,6,114,101,109,111,118,101,218,17,77, + 117,116,97,98,108,101,83,101,116,46,114,101,109,111,118,101, + 218,2,0,0,115,30,0,0,0,128,0,224,11,16,211,11, + 28,220,18,26,152,53,147,47,208,12,33,216,8,12,143,12, + 137,12,144,85,213,8,27,114,8,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,243,128,0,0,0,149,0,91,1,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,110,1,30,0, + 91,3,0,0,0,0,0,0,0,0,85,1,53,1,0,0, + 0,0,0,0,110,2,85,0,82,9,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,2,53,1, + 0,0,0,0,0,0,32,0,85,2,36,0,33,0,91,4, + 0,0,0,0,0,0,0,0,7,0,97,8,0,0,32,0, + 91,6,0,0,0,0,0,0,0,0,83,1,101,2,102,0, + 61,3,31,0,102,1,41,2,122,50,82,101,116,117,114,110, + 32,116,104,101,32,112,111,112,112,101,100,32,118,97,108,117, + 101,46,32,32,82,97,105,115,101,32,75,101,121,69,114,114, + 111,114,32,105,102,32,101,109,112,116,121,46,78,41,5,218, + 4,105,116,101,114,218,4,110,101,120,116,114,100,0,0,0, + 114,119,1,0,0,114,116,1,0,0,169,3,114,68,0,0, + 0,114,58,1,0,0,114,102,0,0,0,115,3,0,0,0, + 32,32,32,114,9,0,0,0,218,3,112,111,112,218,14,77, + 117,116,97,98,108,101,83,101,116,46,112,111,112,224,2,0, + 0,115,69,0,0,0,128,0,228,13,17,144,36,139,90,136, + 2,240,2,3,9,37,220,20,24,152,18,147,72,136,69,240, + 6,0,9,13,143,12,137,12,144,85,212,8,27,216,15,20, + 136,12,248,244,7,0,16,29,243,0,1,9,37,220,18,26, + 160,4,208,12,36,240,3,1,9,37,250,115,8,0,0,0, + 141,11,43,0,171,18,61,3,99,1,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,243,74,0, + 0,0,149,0,30,0,30,0,85,0,82,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,32,0,77,18,0,0,33,0,91,2, + 0,0,0,0,0,0,0,0,7,0,97,3,0,0,32,0, + 31,0,103,1,102,0,61,3,31,0,102,1,41,2,122,54, + 84,104,105,115,32,105,115,32,115,108,111,119,32,40,99,114, + 101,97,116,101,115,32,78,32,110,101,119,32,105,116,101,114, + 97,116,111,114,115,33,41,32,98,117,116,32,101,102,102,101, + 99,116,105,118,101,46,78,41,2,114,126,1,0,0,114,119, + 1,0,0,114,67,0,0,0,115,1,0,0,0,32,114,9, + 0,0,0,218,5,99,108,101,97,114,218,16,77,117,116,97, + 98,108,101,83,101,116,46,99,108,101,97,114,234,2,0,0, + 115,42,0,0,0,128,0,240,4,4,9,17,216,18,22,216, + 16,20,151,8,145,8,148,10,241,3,0,19,23,248,228,15, + 23,243,0,1,9,17,217,12,16,240,3,1,9,17,250,243, + 12,0,0,0,130,19,21,0,149,10,34,3,161,1,34,3, + 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,243,58,0,0,0,149,0,85,1,19,0, + 72,20,0,0,110,2,85,0,82,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,2,53,1, + 0,0,0,0,0,0,32,0,77,22,0,0,11,0,32,0, + 85,0,36,0,114,6,0,0,0,41,1,114,112,1,0,0, + 114,125,1,0,0,115,3,0,0,0,32,32,32,114,9,0, + 0,0,218,7,95,95,105,111,114,95,95,218,18,77,117,116, + 97,98,108,101,83,101,116,46,95,95,105,111,114,95,95,242, + 2,0,0,115,28,0,0,0,128,0,219,21,23,136,69,216, + 12,16,143,72,137,72,144,85,142,79,241,3,0,22,24,224, + 15,19,136,11,114,8,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,62, + 0,0,0,149,0,88,1,45,10,0,0,19,0,72,20,0, + 0,110,2,85,0,82,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,2,53,1,0,0,0, + 0,0,0,32,0,77,22,0,0,11,0,32,0,85,0,36, + 0,114,6,0,0,0,41,1,114,116,1,0,0,114,125,1, 0,0,115,3,0,0,0,32,32,32,114,9,0,0,0,218, - 7,95,95,105,111,114,95,95,122,18,77,117,116,97,98,108, - 101,83,101,116,46,95,95,105,111,114,95,95,238,2,0,0, - 115,28,0,0,0,128,0,219,21,23,136,69,216,12,16,143, - 72,137,72,144,85,141,79,240,3,0,22,24,224,15,19,136, - 11,114,8,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,60,0,0,0, - 151,0,124,0,124,1,122,10,0,0,68,0,93,19,0,0, - 125,2,124,0,106,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,2,171,1,0,0,0,0, - 0,0,1,0,140,21,4,0,124,0,83,0,114,6,0,0, - 0,41,1,114,41,1,0,0,114,48,1,0,0,115,3,0, - 0,0,32,32,32,114,9,0,0,0,218,8,95,95,105,97, - 110,100,95,95,122,19,77,117,116,97,98,108,101,83,101,116, - 46,95,95,105,97,110,100,95,95,243,2,0,0,115,33,0, - 0,0,128,0,216,22,26,152,82,148,105,136,69,216,12,16, - 143,76,137,76,152,21,213,12,31,240,3,0,23,32,224,15, - 19,136,11,114,8,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,208,0, - 0,0,151,0,124,1,124,0,117,0,114,18,124,0,106,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,1,0,124,0,83,0, - 116,3,0,0,0,0,0,0,0,0,124,1,116,4,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,115,17, - 124,0,106,7,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 125,1,124,1,68,0,93,41,0,0,125,2,124,2,124,0, - 118,0,114,18,124,0,106,9,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,2,171,1,0,0, - 0,0,0,0,1,0,140,25,124,0,106,11,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, - 171,1,0,0,0,0,0,0,1,0,140,43,4,0,124,0, - 83,0,114,6,0,0,0,41,6,114,51,1,0,0,114,177, - 0,0,0,114,25,0,0,0,114,252,0,0,0,114,41,1, - 0,0,114,38,1,0,0,114,48,1,0,0,115,3,0,0, - 0,32,32,32,114,9,0,0,0,218,8,95,95,105,120,111, - 114,95,95,122,19,77,117,116,97,98,108,101,83,101,116,46, - 95,95,105,120,111,114,95,95,248,2,0,0,115,100,0,0, - 0,128,0,216,11,13,144,20,137,58,216,12,16,143,74,137, - 74,140,76,240,18,0,16,20,136,11,244,15,0,20,30,152, - 98,164,35,212,19,38,216,21,25,215,21,40,209,21,40,168, - 18,211,21,44,144,2,219,25,27,144,5,216,19,24,152,68, - 145,61,216,20,24,151,76,145,76,160,21,213,20,39,224,20, - 24,151,72,145,72,152,85,149,79,240,9,0,26,28,240,10, - 0,16,20,136,11,114,8,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, - 98,0,0,0,151,0,124,1,124,0,117,0,114,18,124,0, - 106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,1,0,124,0, - 83,0,124,1,68,0,93,19,0,0,125,2,124,0,106,3, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,2,171,1,0,0,0,0,0,0,1,0,140,21, - 4,0,124,0,83,0,114,6,0,0,0,41,2,114,51,1, - 0,0,114,41,1,0,0,114,48,1,0,0,115,3,0,0, - 0,32,32,32,114,9,0,0,0,218,8,95,95,105,115,117, - 98,95,95,122,19,77,117,116,97,98,108,101,83,101,116,46, - 95,95,105,115,117,98,95,95,5,3,0,0,115,54,0,0, - 0,128,0,216,11,13,144,20,137,58,216,12,16,143,74,137, - 74,140,76,240,8,0,16,20,136,11,243,5,0,26,28,144, - 5,216,16,20,151,12,145,12,152,85,213,16,35,240,3,0, - 26,28,224,15,19,136,11,114,8,0,0,0,78,41,15,114, - 69,0,0,0,114,70,0,0,0,114,71,0,0,0,114,204, - 0,0,0,114,72,0,0,0,114,4,0,0,0,114,38,1, - 0,0,114,41,1,0,0,114,44,1,0,0,114,49,1,0, - 0,114,51,1,0,0,114,54,1,0,0,114,56,1,0,0, - 114,58,1,0,0,114,60,1,0,0,114,7,0,0,0,114, + 8,95,95,105,97,110,100,95,95,218,19,77,117,116,97,98, + 108,101,83,101,116,46,95,95,105,97,110,100,95,95,247,2, + 0,0,115,31,0,0,0,128,0,216,22,26,148,105,136,69, + 216,12,16,143,76,137,76,152,21,214,12,31,241,3,0,23, + 32,224,15,19,136,11,114,8,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 243,226,0,0,0,149,0,88,16,76,0,97,18,0,0,85, + 0,82,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,32,0,85, + 0,36,0,91,3,0,0,0,0,0,0,0,0,85,1,91, + 4,0,0,0,0,0,0,0,0,53,2,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,100,17,0,0,85,0,82, + 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,1,53,1,0,0,0,0,0,0,110,1,85, + 1,19,0,72,44,0,0,110,2,88,32,59,0,0,0,97, + 19,0,0,85,0,82,9,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,2,53,1,0,0,0, + 0,0,0,32,0,77,27,0,0,85,0,82,11,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 2,53,1,0,0,0,0,0,0,32,0,77,46,0,0,11, + 0,32,0,85,0,36,0,114,6,0,0,0,41,6,114,129, + 1,0,0,114,229,0,0,0,114,25,0,0,0,114,59,1, + 0,0,114,116,1,0,0,114,112,1,0,0,114,125,1,0, + 0,115,3,0,0,0,32,32,32,114,9,0,0,0,218,8, + 95,95,105,120,111,114,95,95,218,19,77,117,116,97,98,108, + 101,83,101,116,46,95,95,105,120,111,114,95,95,252,2,0, + 0,115,99,0,0,0,128,0,216,11,13,138,58,216,12,16, + 143,74,137,74,140,76,240,18,0,16,20,136,11,244,15,0, + 20,30,152,98,164,35,215,19,38,209,19,38,216,21,25,215, + 21,40,209,21,40,168,18,211,21,44,144,2,219,25,27,144, + 5,216,19,24,147,61,216,20,24,151,76,145,76,160,21,214, + 20,39,224,20,24,151,72,145,72,152,85,150,79,241,9,0, + 26,28,240,10,0,16,20,136,11,114,8,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,102,0,0,0,149,0,88,16,76,0,97,18, + 0,0,85,0,82,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 32,0,85,0,36,0,85,1,19,0,72,20,0,0,110,2, + 85,0,82,3,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,2,53,1,0,0,0,0,0,0, + 32,0,77,22,0,0,11,0,32,0,85,0,36,0,114,6, + 0,0,0,41,2,114,129,1,0,0,114,116,1,0,0,114, + 125,1,0,0,115,3,0,0,0,32,32,32,114,9,0,0, + 0,218,8,95,95,105,115,117,98,95,95,218,19,77,117,116, + 97,98,108,101,83,101,116,46,95,95,105,115,117,98,95,95, + 9,3,0,0,115,52,0,0,0,128,0,216,11,13,138,58, + 216,12,16,143,74,137,74,140,76,240,8,0,16,20,136,11, + 243,5,0,26,28,144,5,216,16,20,151,12,145,12,152,85, + 214,16,35,241,3,0,26,28,224,15,19,136,11,114,8,0, + 0,0,78,41,17,114,78,0,0,0,114,79,0,0,0,114, + 80,0,0,0,114,81,0,0,0,114,4,1,0,0,114,82, + 0,0,0,114,4,0,0,0,114,112,1,0,0,114,116,1, + 0,0,114,120,1,0,0,114,126,1,0,0,114,129,1,0, + 0,114,133,1,0,0,114,136,1,0,0,114,139,1,0,0, + 114,142,1,0,0,114,84,0,0,0,114,7,0,0,0,114, 8,0,0,0,114,9,0,0,0,114,26,0,0,0,114,26, - 0,0,0,190,2,0,0,115,87,0,0,0,132,0,241,2, + 0,0,0,194,2,0,0,115,87,0,0,0,134,0,241,2, 9,5,8,240,22,0,17,19,128,73,224,5,19,241,2,2, 5,34,243,3,0,6,20,240,2,2,5,34,240,8,0,6, 20,241,2,2,5,34,243,3,0,6,20,240,2,2,5,34, 242,8,4,5,28,242,12,8,5,21,242,20,6,5,17,242, - 16,3,5,20,242,10,3,5,20,242,10,11,5,20,243,26, + 16,3,5,20,242,10,3,5,20,242,10,11,5,20,245,26, 6,5,20,114,8,0,0,0,114,26,0,0,0,99,0,0, 0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0, - 0,0,243,82,0,0,0,151,0,101,0,90,1,100,0,90, - 2,100,1,90,3,100,2,90,4,100,3,90,5,101,6,100, - 4,132,0,171,0,0,0,0,0,0,0,90,7,100,12,100, - 6,132,1,90,8,100,7,132,0,90,9,100,8,132,0,90, - 10,100,9,132,0,90,11,100,10,132,0,90,12,100,11,132, - 0,90,13,100,5,90,14,121,5,41,13,114,27,0,0,0, - 122,198,65,32,77,97,112,112,105,110,103,32,105,115,32,97, - 32,103,101,110,101,114,105,99,32,99,111,110,116,97,105,110, - 101,114,32,102,111,114,32,97,115,115,111,99,105,97,116,105, - 110,103,32,107,101,121,47,118,97,108,117,101,10,32,32,32, - 32,112,97,105,114,115,46,10,10,32,32,32,32,84,104,105, - 115,32,99,108,97,115,115,32,112,114,111,118,105,100,101,115, - 32,99,111,110,99,114,101,116,101,32,103,101,110,101,114,105, - 99,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110, - 115,32,111,102,32,97,108,108,10,32,32,32,32,109,101,116, - 104,111,100,115,32,101,120,99,101,112,116,32,102,111,114,32, - 95,95,103,101,116,105,116,101,109,95,95,44,32,95,95,105, - 116,101,114,95,95,44,32,97,110,100,32,95,95,108,101,110, - 95,95,46,10,32,32,32,32,114,7,0,0,0,233,64,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,1, - 0,0,0,3,0,0,0,243,14,0,0,0,151,0,116,0, - 0,0,0,0,0,0,0,0,130,1,114,6,0,0,0,169, - 1,114,43,1,0,0,169,2,114,61,0,0,0,218,3,107, - 101,121,115,2,0,0,0,32,32,114,9,0,0,0,114,201, - 0,0,0,122,19,77,97,112,112,105,110,103,46,95,95,103, - 101,116,105,116,101,109,95,95,32,3,0,0,243,7,0,0, - 0,128,0,228,14,22,136,14,114,8,0,0,0,78,99,3, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,48,0,0,0,151,0,9,0,124,0,124,1, - 25,0,0,0,83,0,35,0,116,0,0,0,0,0,0,0, - 0,0,36,0,114,5,1,0,124,2,99,2,89,0,83,0, - 119,0,120,3,89,0,119,1,41,1,122,60,68,46,103,101, - 116,40,107,91,44,100,93,41,32,45,62,32,68,91,107,93, - 32,105,102,32,107,32,105,110,32,68,44,32,101,108,115,101, - 32,100,46,32,32,100,32,100,101,102,97,117,108,116,115,32, - 116,111,32,78,111,110,101,46,114,64,1,0,0,169,3,114, - 61,0,0,0,114,66,1,0,0,218,7,100,101,102,97,117, - 108,116,115,3,0,0,0,32,32,32,114,9,0,0,0,218, - 3,103,101,116,122,11,77,97,112,112,105,110,103,46,103,101, - 116,36,3,0,0,115,37,0,0,0,128,0,240,4,3,9, - 27,216,19,23,152,3,145,57,208,12,28,248,220,15,23,242, - 0,1,9,27,216,19,26,138,78,240,3,1,9,27,250,115, - 12,0,0,0,130,4,7,0,135,11,21,3,148,1,21,3, - 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,46,0,0,0,151,0,9,0,124,0, - 124,1,25,0,0,0,1,0,121,1,35,0,116,0,0,0, - 0,0,0,0,0,0,36,0,114,3,1,0,89,0,121,2, - 119,0,120,3,89,0,119,1,169,3,78,84,70,114,64,1, - 0,0,114,65,1,0,0,115,2,0,0,0,32,32,114,9, - 0,0,0,114,158,0,0,0,122,20,77,97,112,112,105,110, - 103,46,95,95,99,111,110,116,97,105,110,115,95,95,43,3, - 0,0,115,39,0,0,0,128,0,240,2,5,9,24,216,12, - 16,144,19,138,73,240,8,0,20,24,248,244,7,0,16,24, - 242,0,1,9,25,217,19,24,240,3,1,9,25,250,115,12, - 0,0,0,130,5,8,0,136,9,20,3,147,1,20,3,99, + 0,0,243,92,0,0,0,149,0,92,0,114,1,83,0,114, + 2,83,1,114,3,83,2,114,4,83,3,114,5,83,4,114, + 6,92,7,83,5,26,0,53,0,0,0,0,0,0,0,114, + 8,83,13,83,7,26,0,106,1,114,9,83,8,26,0,114, + 10,83,9,26,0,114,11,83,10,26,0,114,12,83,11,26, + 0,114,13,83,12,26,0,114,14,83,6,114,15,83,3,114, + 16,103,6,41,14,114,27,0,0,0,105,23,3,0,0,122, + 182,65,32,77,97,112,112,105,110,103,32,105,115,32,97,32, + 103,101,110,101,114,105,99,32,99,111,110,116,97,105,110,101, + 114,32,102,111,114,32,97,115,115,111,99,105,97,116,105,110, + 103,32,107,101,121,47,118,97,108,117,101,10,112,97,105,114, + 115,46,10,10,84,104,105,115,32,99,108,97,115,115,32,112, + 114,111,118,105,100,101,115,32,99,111,110,99,114,101,116,101, + 32,103,101,110,101,114,105,99,32,105,109,112,108,101,109,101, + 110,116,97,116,105,111,110,115,32,111,102,32,97,108,108,10, + 109,101,116,104,111,100,115,32,101,120,99,101,112,116,32,102, + 111,114,32,95,95,103,101,116,105,116,101,109,95,95,44,32, + 95,95,105,116,101,114,95,95,44,32,97,110,100,32,95,95, + 108,101,110,95,95,46,10,114,7,0,0,0,233,64,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,3,0,0,0,243,14,0,0,0,149,0,91,0,0, + 0,0,0,0,0,0,0,101,1,114,6,0,0,0,169,1, + 114,119,1,0,0,169,2,114,68,0,0,0,218,3,107,101, + 121,115,2,0,0,0,32,32,114,9,0,0,0,114,0,1, + 0,0,218,19,77,97,112,112,105,110,103,46,95,95,103,101, + 116,105,116,101,109,95,95,36,3,0,0,243,7,0,0,0, + 128,0,228,14,22,136,14,114,8,0,0,0,78,99,3,0, + 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, + 0,0,243,48,0,0,0,149,0,30,0,88,1,5,0,0, + 0,36,0,33,0,91,0,0,0,0,0,0,0,0,0,7, + 0,97,5,0,0,32,0,85,2,115,2,31,0,36,0,102, + 0,61,3,31,0,102,1,41,1,122,60,68,46,103,101,116, + 40,107,91,44,100,93,41,32,45,62,32,68,91,107,93,32, + 105,102,32,107,32,105,110,32,68,44,32,101,108,115,101,32, + 100,46,32,32,100,32,100,101,102,97,117,108,116,115,32,116, + 111,32,78,111,110,101,46,114,147,1,0,0,169,3,114,68, + 0,0,0,114,149,1,0,0,218,7,100,101,102,97,117,108, + 116,115,3,0,0,0,32,32,32,114,9,0,0,0,218,3, + 103,101,116,218,11,77,97,112,112,105,110,103,46,103,101,116, + 40,3,0,0,115,35,0,0,0,128,0,240,4,3,9,27, + 216,19,23,145,57,208,12,28,248,220,15,23,243,0,1,9, + 27,216,19,26,138,78,240,3,1,9,27,250,115,12,0,0, + 0,130,3,6,0,134,12,21,3,148,1,21,3,99,2,0, + 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, + 0,0,243,46,0,0,0,149,0,30,0,88,1,5,0,0, + 0,32,0,103,1,33,0,91,0,0,0,0,0,0,0,0, + 0,7,0,97,3,0,0,32,0,31,0,103,2,102,0,61, + 3,31,0,102,1,169,3,78,84,70,114,147,1,0,0,114, + 148,1,0,0,115,2,0,0,0,32,32,114,9,0,0,0, + 114,205,0,0,0,218,20,77,97,112,112,105,110,103,46,95, + 95,99,111,110,116,97,105,110,115,95,95,47,3,0,0,115, + 37,0,0,0,128,0,240,2,5,9,24,216,12,16,138,73, + 240,8,0,20,24,248,244,7,0,16,24,243,0,1,9,25, + 217,19,24,240,3,1,9,25,250,115,12,0,0,0,130,4, + 7,0,135,10,20,3,147,1,20,3,99,1,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 24,0,0,0,149,0,91,1,0,0,0,0,0,0,0,0, + 85,0,53,1,0,0,0,0,0,0,36,0,41,1,122,58, + 68,46,107,101,121,115,40,41,32,45,62,32,97,32,115,101, + 116,45,108,105,107,101,32,111,98,106,101,99,116,32,112,114, + 111,118,105,100,105,110,103,32,97,32,118,105,101,119,32,111, + 110,32,68,39,115,32,107,101,121,115,41,1,114,30,0,0, + 0,114,67,0,0,0,115,1,0,0,0,32,114,9,0,0, + 0,218,4,107,101,121,115,218,12,77,97,112,112,105,110,103, + 46,107,101,121,115,55,3,0,0,115,12,0,0,0,128,0, + 228,15,23,152,4,139,126,208,8,29,114,8,0,0,0,99, 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,24,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,83, - 0,41,1,122,58,68,46,107,101,121,115,40,41,32,45,62, - 32,97,32,115,101,116,45,108,105,107,101,32,111,98,106,101, - 99,116,32,112,114,111,118,105,100,105,110,103,32,97,32,118, - 105,101,119,32,111,110,32,68,39,115,32,107,101,121,115,41, - 1,114,30,0,0,0,114,60,0,0,0,115,1,0,0,0, - 32,114,9,0,0,0,218,4,107,101,121,115,122,12,77,97, - 112,112,105,110,103,46,107,101,121,115,51,3,0,0,115,12, - 0,0,0,128,0,228,15,23,152,4,139,126,208,8,29,114, - 8,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,3,0,0,0,243,24,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,83,0,41,1,122,60,68,46,105,116,101,109, - 115,40,41,32,45,62,32,97,32,115,101,116,45,108,105,107, - 101,32,111,98,106,101,99,116,32,112,114,111,118,105,100,105, - 110,103,32,97,32,118,105,101,119,32,111,110,32,68,39,115, - 32,105,116,101,109,115,41,1,114,31,0,0,0,114,60,0, - 0,0,115,1,0,0,0,32,114,9,0,0,0,218,5,105, - 116,101,109,115,122,13,77,97,112,112,105,110,103,46,105,116, - 101,109,115,55,3,0,0,115,12,0,0,0,128,0,228,15, - 24,152,20,139,127,208,8,30,114,8,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,24,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,83,0,41, - 1,122,54,68,46,118,97,108,117,101,115,40,41,32,45,62, - 32,97,110,32,111,98,106,101,99,116,32,112,114,111,118,105, - 100,105,110,103,32,97,32,118,105,101,119,32,111,110,32,68, - 39,115,32,118,97,108,117,101,115,41,1,114,32,0,0,0, - 114,60,0,0,0,115,1,0,0,0,32,114,9,0,0,0, - 218,6,118,97,108,117,101,115,122,14,77,97,112,112,105,110, - 103,46,118,97,108,117,101,115,59,3,0,0,115,13,0,0, - 0,128,0,228,15,25,152,36,211,15,31,208,8,31,114,8, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 5,0,0,0,3,0,0,0,243,148,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,124,1,116,2,0,0,0, - 0,0,0,0,0,171,2,0,0,0,0,0,0,115,6,116, - 4,0,0,0,0,0,0,0,0,83,0,116,7,0,0,0, - 0,0,0,0,0,124,0,106,9,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,116,7,0,0,0, - 0,0,0,0,0,124,1,106,9,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,107,40,0,0,83, - 0,114,6,0,0,0,41,5,114,177,0,0,0,114,27,0, - 0,0,114,50,0,0,0,218,4,100,105,99,116,114,77,1, - 0,0,114,240,0,0,0,115,2,0,0,0,32,32,114,9, - 0,0,0,114,248,0,0,0,122,14,77,97,112,112,105,110, - 103,46,95,95,101,113,95,95,63,3,0,0,115,51,0,0, - 0,128,0,220,15,25,152,37,164,23,212,15,41,220,19,33, - 208,12,33,220,15,19,144,68,151,74,145,74,147,76,211,15, - 33,164,84,168,37,175,43,169,43,171,45,211,37,56,209,15, - 56,208,8,56,114,8,0,0,0,114,6,0,0,0,41,15, - 114,69,0,0,0,114,70,0,0,0,114,71,0,0,0,114, - 204,0,0,0,114,72,0,0,0,218,15,95,95,97,98,99, - 95,116,112,102,108,97,103,115,95,95,114,4,0,0,0,114, - 201,0,0,0,114,71,1,0,0,114,158,0,0,0,114,75, - 1,0,0,114,77,1,0,0,114,79,1,0,0,114,248,0, - 0,0,114,142,0,0,0,114,7,0,0,0,114,8,0,0, - 0,114,9,0,0,0,114,27,0,0,0,114,27,0,0,0, - 19,3,0,0,115,76,0,0,0,132,0,241,2,5,5,8, - 240,14,0,17,19,128,73,240,6,0,23,29,128,79,224,5, - 19,241,2,1,5,23,243,3,0,6,20,240,2,1,5,23, - 243,6,5,5,27,242,14,6,5,24,242,16,2,5,30,242, - 8,2,5,31,242,8,2,5,32,242,8,3,5,57,240,10, - 0,20,24,129,76,114,8,0,0,0,114,27,0,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 0,0,0,0,243,50,0,0,0,151,0,101,0,90,1,100, - 0,90,2,100,1,90,3,100,2,132,0,90,4,100,3,132, - 0,90,5,100,4,132,0,90,6,2,0,101,7,101,8,171, - 1,0,0,0,0,0,0,90,9,121,5,41,6,114,29,0, - 0,0,169,1,218,8,95,109,97,112,112,105,110,103,99,2, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,243,18,0,0,0,151,0,124,1,124,0,95,0, - 0,0,0,0,0,0,0,0,121,0,114,6,0,0,0,114, - 84,1,0,0,41,2,114,61,0,0,0,218,7,109,97,112, - 112,105,110,103,115,2,0,0,0,32,32,114,9,0,0,0, - 218,8,95,95,105,110,105,116,95,95,122,20,77,97,112,112, - 105,110,103,86,105,101,119,46,95,95,105,110,105,116,95,95, - 77,3,0,0,115,9,0,0,0,128,0,216,24,31,136,4, - 141,13,114,8,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,243,44,0,0, - 0,151,0,116,1,0,0,0,0,0,0,0,0,124,0,106, - 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,83,0,114,6,0, - 0,0,41,2,114,179,0,0,0,114,85,1,0,0,114,60, - 0,0,0,115,1,0,0,0,32,114,9,0,0,0,114,152, - 0,0,0,122,19,77,97,112,112,105,110,103,86,105,101,119, - 46,95,95,108,101,110,95,95,80,3,0,0,115,17,0,0, - 0,128,0,220,15,18,144,52,151,61,145,61,211,15,33,208, - 8,33,114,8,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,243,36,0,0, - 0,151,0,100,1,106,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,83,0,41,2,78,122,38,123,48,46,95,95,99, - 108,97,115,115,95,95,46,95,95,110,97,109,101,95,95,125, - 40,123,48,46,95,109,97,112,112,105,110,103,33,114,125,41, - 41,1,218,6,102,111,114,109,97,116,114,60,0,0,0,115, - 1,0,0,0,32,114,9,0,0,0,114,194,0,0,0,122, - 20,77,97,112,112,105,110,103,86,105,101,119,46,95,95,114, - 101,112,114,95,95,83,3,0,0,115,19,0,0,0,128,0, - 216,15,55,215,15,62,209,15,62,184,116,211,15,68,208,8, - 68,114,8,0,0,0,78,41,10,114,69,0,0,0,114,70, - 0,0,0,114,71,0,0,0,114,72,0,0,0,114,88,1, - 0,0,114,152,0,0,0,114,194,0,0,0,114,73,0,0, - 0,114,80,0,0,0,114,81,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,9,0,0,0,114,29,0,0,0,114, - 29,0,0,0,73,3,0,0,115,36,0,0,0,132,0,224, - 16,27,128,73,242,4,1,5,32,242,6,1,5,34,242,6, - 1,5,69,1,241,6,0,25,36,160,76,211,24,49,209,4, - 21,114,8,0,0,0,114,29,0,0,0,99,0,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, - 243,44,0,0,0,151,0,101,0,90,1,100,0,90,2,100, - 1,90,3,101,4,100,2,132,0,171,0,0,0,0,0,0, - 0,90,5,100,3,132,0,90,6,100,4,132,0,90,7,121, - 5,41,6,114,30,0,0,0,114,7,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,24,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,1,171,1,0,0,0,0,0,0,83,0,114, - 6,0,0,0,169,1,218,3,115,101,116,114,250,0,0,0, - 115,2,0,0,0,32,32,114,9,0,0,0,114,252,0,0, - 0,122,23,75,101,121,115,86,105,101,119,46,95,102,114,111, - 109,95,105,116,101,114,97,98,108,101,93,3,0,0,243,11, - 0,0,0,128,0,228,15,18,144,50,139,119,136,14,114,8, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,3,0,0,0,243,30,0,0,0,151,0,124, - 1,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,118,0,83,0,114,6,0,0,0, - 114,84,1,0,0,114,65,1,0,0,115,2,0,0,0,32, - 32,114,9,0,0,0,114,158,0,0,0,122,21,75,101,121, - 115,86,105,101,119,46,95,95,99,111,110,116,97,105,110,115, - 95,95,97,3,0,0,115,17,0,0,0,128,0,216,15,18, - 144,100,151,109,145,109,208,15,35,208,8,35,114,8,0,0, + 3,0,0,0,243,24,0,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,36, + 0,41,1,122,60,68,46,105,116,101,109,115,40,41,32,45, + 62,32,97,32,115,101,116,45,108,105,107,101,32,111,98,106, + 101,99,116,32,112,114,111,118,105,100,105,110,103,32,97,32, + 118,105,101,119,32,111,110,32,68,39,115,32,105,116,101,109, + 115,41,1,114,31,0,0,0,114,67,0,0,0,115,1,0, + 0,0,32,114,9,0,0,0,218,5,105,116,101,109,115,218, + 13,77,97,112,112,105,110,103,46,105,116,101,109,115,59,3, + 0,0,115,12,0,0,0,128,0,228,15,24,152,20,139,127, + 208,8,30,114,8,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,3,0,0,0,243,24,0, + 0,0,149,0,91,1,0,0,0,0,0,0,0,0,85,0, + 53,1,0,0,0,0,0,0,36,0,41,1,122,54,68,46, + 118,97,108,117,101,115,40,41,32,45,62,32,97,110,32,111, + 98,106,101,99,116,32,112,114,111,118,105,100,105,110,103,32, + 97,32,118,105,101,119,32,111,110,32,68,39,115,32,118,97, + 108,117,101,115,41,1,114,32,0,0,0,114,67,0,0,0, + 115,1,0,0,0,32,114,9,0,0,0,218,6,118,97,108, + 117,101,115,218,14,77,97,112,112,105,110,103,46,118,97,108, + 117,101,115,63,3,0,0,115,13,0,0,0,128,0,228,15, + 25,152,36,211,15,31,208,8,31,114,8,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,3, + 0,0,0,243,158,0,0,0,149,0,91,1,0,0,0,0, + 0,0,0,0,85,1,91,2,0,0,0,0,0,0,0,0, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 100,6,0,0,91,4,0,0,0,0,0,0,0,0,36,0, + 91,7,0,0,0,0,0,0,0,0,85,0,82,9,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 53,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 91,7,0,0,0,0,0,0,0,0,85,1,82,9,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 53,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 58,72,0,0,36,0,114,6,0,0,0,41,5,114,229,0, + 0,0,114,27,0,0,0,114,56,0,0,0,218,4,100,105, + 99,116,114,164,1,0,0,114,43,1,0,0,115,2,0,0, + 0,32,32,114,9,0,0,0,114,54,1,0,0,218,14,77, + 97,112,112,105,110,103,46,95,95,101,113,95,95,67,3,0, + 0,115,54,0,0,0,128,0,220,15,25,152,37,164,23,215, + 15,41,209,15,41,220,19,33,208,12,33,220,15,19,144,68, + 151,74,145,74,147,76,211,15,33,164,84,168,37,175,43,169, + 43,171,45,211,37,56,209,15,56,208,8,56,114,8,0,0, + 0,114,6,0,0,0,41,17,114,78,0,0,0,114,79,0, + 0,0,114,80,0,0,0,114,81,0,0,0,114,4,1,0, + 0,114,82,0,0,0,218,15,95,95,97,98,99,95,116,112, + 102,108,97,103,115,95,95,114,4,0,0,0,114,0,1,0, + 0,114,155,1,0,0,114,205,0,0,0,114,161,1,0,0, + 114,164,1,0,0,114,167,1,0,0,114,54,1,0,0,114, + 180,0,0,0,114,84,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,9,0,0,0,114,27,0,0,0,114,27,0, + 0,0,23,3,0,0,115,76,0,0,0,134,0,241,2,5, + 5,8,240,14,0,17,19,128,73,240,6,0,23,29,128,79, + 224,5,19,241,2,1,5,23,243,3,0,6,20,240,2,1, + 5,23,244,6,5,5,27,242,14,6,5,24,242,16,2,5, + 30,242,8,2,5,31,242,8,2,5,32,242,8,3,5,57, + 240,10,0,20,24,131,76,114,8,0,0,0,114,27,0,0, + 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,0,0,0,0,243,58,0,0,0,149,0,92,0,114, + 1,83,0,114,2,83,1,114,3,83,2,114,4,83,3,26, + 0,114,5,83,4,26,0,114,6,83,5,26,0,114,7,92, + 8,34,0,92,9,53,1,0,0,0,0,0,0,114,10,83, + 2,114,11,103,6,41,7,114,29,0,0,0,105,78,3,0, + 0,169,1,218,8,95,109,97,112,112,105,110,103,99,2,0, + 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0, + 0,0,243,16,0,0,0,149,0,88,16,108,0,0,0,0, + 0,0,0,0,0,103,0,114,6,0,0,0,114,174,1,0, + 0,41,2,114,68,0,0,0,218,7,109,97,112,112,105,110, + 103,115,2,0,0,0,32,32,114,9,0,0,0,218,8,95, + 95,105,110,105,116,95,95,218,20,77,97,112,112,105,110,103, + 86,105,101,119,46,95,95,105,110,105,116,95,95,82,3,0, + 0,115,7,0,0,0,128,0,216,24,31,141,13,114,8,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,243,44,0,0,0,149,0,91,1, + 0,0,0,0,0,0,0,0,85,0,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,36,0,114,6,0,0,0,41,2,114, + 231,0,0,0,114,175,1,0,0,114,67,0,0,0,115,1, + 0,0,0,32,114,9,0,0,0,114,197,0,0,0,218,19, + 77,97,112,112,105,110,103,86,105,101,119,46,95,95,108,101, + 110,95,95,85,3,0,0,115,17,0,0,0,128,0,220,15, + 18,144,52,151,61,145,61,211,15,33,208,8,33,114,8,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,243,36,0,0,0,149,0,83,1, + 82,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,0,53,1,0,0,0,0,0,0,36,0, + 41,2,78,122,38,123,48,46,95,95,99,108,97,115,115,95, + 95,46,95,95,110,97,109,101,95,95,125,40,123,48,46,95, + 109,97,112,112,105,110,103,33,114,125,41,41,1,218,6,102, + 111,114,109,97,116,114,67,0,0,0,115,1,0,0,0,32, + 114,9,0,0,0,114,247,0,0,0,218,20,77,97,112,112, + 105,110,103,86,105,101,119,46,95,95,114,101,112,114,95,95, + 88,3,0,0,115,19,0,0,0,128,0,216,15,55,215,15, + 62,209,15,62,184,116,211,15,68,208,8,68,114,8,0,0, + 0,78,41,12,114,78,0,0,0,114,79,0,0,0,114,80, + 0,0,0,114,81,0,0,0,114,82,0,0,0,114,178,1, + 0,0,114,197,0,0,0,114,247,0,0,0,114,83,0,0, + 0,114,94,0,0,0,114,95,0,0,0,114,84,0,0,0, + 114,7,0,0,0,114,8,0,0,0,114,9,0,0,0,114, + 29,0,0,0,114,29,0,0,0,78,3,0,0,115,36,0, + 0,0,134,0,224,16,27,128,73,242,4,1,5,32,242,6, + 1,5,34,242,6,1,5,69,1,241,6,0,25,36,160,76, + 211,24,49,211,4,21,114,8,0,0,0,114,29,0,0,0, + 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,0,0,0,0,243,52,0,0,0,149,0,92,0,114,1, + 83,0,114,2,83,1,114,3,83,2,114,4,92,5,83,3, + 26,0,53,0,0,0,0,0,0,0,114,6,83,4,26,0, + 114,7,83,5,26,0,114,8,83,2,114,9,103,6,41,7, + 114,30,0,0,0,105,94,3,0,0,114,7,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,24,0,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,85,1,53,1,0,0,0,0,0,0,36, + 0,114,6,0,0,0,169,1,218,3,115,101,116,114,57,1, + 0,0,115,2,0,0,0,32,32,114,9,0,0,0,114,59, + 1,0,0,218,23,75,101,121,115,86,105,101,119,46,95,102, + 114,111,109,95,105,116,101,114,97,98,108,101,98,3,0,0, + 243,11,0,0,0,128,0,228,15,18,144,50,139,119,136,14, + 114,8,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,3,0,0,0,243,30,0,0,0,149, + 0,88,16,82,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,59,0,0,0,36,0,114,6,0, + 0,0,114,174,1,0,0,114,148,1,0,0,115,2,0,0, + 0,32,32,114,9,0,0,0,114,205,0,0,0,218,21,75, + 101,121,115,86,105,101,119,46,95,95,99,111,110,116,97,105, + 110,115,95,95,102,3,0,0,115,15,0,0,0,128,0,216, + 15,18,151,109,145,109,209,15,35,208,8,35,114,8,0,0, 0,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,35,0,0,0,243,56,0,0,0,75,0,1,0,151, - 0,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,69,0,100,0,123,3,0,0,150, - 2,151,2,134,5,5,0,1,0,121,0,55,0,140,5,173, - 3,119,1,114,6,0,0,0,114,84,1,0,0,114,60,0, - 0,0,115,1,0,0,0,32,114,9,0,0,0,114,132,0, - 0,0,122,17,75,101,121,115,86,105,101,119,46,95,95,105, - 116,101,114,95,95,100,3,0,0,115,19,0,0,0,232,0, - 248,128,0,216,19,23,151,61,145,61,215,8,32,210,8,32, - 250,115,12,0,0,0,130,16,26,1,146,1,24,4,147,6, - 26,1,78,169,8,114,69,0,0,0,114,70,0,0,0,114, - 71,0,0,0,114,72,0,0,0,114,73,0,0,0,114,252, - 0,0,0,114,158,0,0,0,114,132,0,0,0,114,7,0, - 0,0,114,8,0,0,0,114,9,0,0,0,114,30,0,0, - 0,114,30,0,0,0,89,3,0,0,115,35,0,0,0,132, - 0,224,16,18,128,73,224,5,16,241,2,1,5,23,243,3, - 0,6,17,240,2,1,5,23,242,6,1,5,36,243,6,1, - 5,33,114,8,0,0,0,114,30,0,0,0,99,0,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0, - 0,243,44,0,0,0,151,0,101,0,90,1,100,0,90,2, - 100,1,90,3,101,4,100,2,132,0,171,0,0,0,0,0, - 0,0,90,5,100,3,132,0,90,6,100,4,132,0,90,7, - 121,5,41,6,114,31,0,0,0,114,7,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, - 0,0,0,243,24,0,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,83,0, - 114,6,0,0,0,114,94,1,0,0,114,250,0,0,0,115, - 2,0,0,0,32,32,114,9,0,0,0,114,252,0,0,0, - 122,24,73,116,101,109,115,86,105,101,119,46,95,102,114,111, - 109,95,105,116,101,114,97,98,108,101,111,3,0,0,114,96, - 1,0,0,114,8,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,96,0, - 0,0,151,0,124,1,92,2,0,0,125,2,125,3,9,0, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,25,0,0,0,125,4,124,4, - 124,3,117,0,120,1,115,5,1,0,124,4,124,3,107,40, - 0,0,83,0,35,0,116,2,0,0,0,0,0,0,0,0, - 36,0,114,3,1,0,89,0,121,1,119,0,120,3,89,0, - 119,1,114,156,0,0,0,41,2,114,85,1,0,0,114,43, - 1,0,0,41,5,114,61,0,0,0,114,202,0,0,0,114, - 66,1,0,0,114,87,0,0,0,218,1,118,115,5,0,0, - 0,32,32,32,32,32,114,9,0,0,0,114,158,0,0,0, - 122,22,73,116,101,109,115,86,105,101,119,46,95,95,99,111, - 110,116,97,105,110,115,95,95,115,3,0,0,115,71,0,0, - 0,128,0,216,21,25,137,10,136,3,136,85,240,2,5,9, - 44,216,16,20,151,13,145,13,152,99,209,16,34,136,65,240, - 8,0,20,21,152,5,144,58,210,19,43,160,17,160,101,161, - 26,208,12,43,248,244,7,0,16,24,242,0,1,9,25,217, - 19,24,240,3,1,9,25,250,115,12,0,0,0,135,15,33, - 0,161,9,45,3,172,1,45,3,99,1,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,35,0,0,0,243,84, - 0,0,0,75,0,1,0,151,0,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68, - 0,93,21,0,0,125,1,124,1,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,25,0,0,0,102,2,150,1,151,1,1,0,140,23,4, - 0,121,0,173,3,119,1,114,6,0,0,0,114,84,1,0, - 0,114,65,1,0,0,115,2,0,0,0,32,32,114,9,0, - 0,0,114,132,0,0,0,122,18,73,116,101,109,115,86,105, - 101,119,46,95,95,105,116,101,114,95,95,124,3,0,0,115, - 40,0,0,0,232,0,248,128,0,216,19,23,151,61,148,61, - 136,67,216,19,22,152,4,159,13,153,13,160,99,209,24,42, - 208,18,43,211,12,43,241,3,0,20,33,249,115,4,0,0, - 0,130,38,40,1,78,114,99,1,0,0,114,7,0,0,0, - 114,8,0,0,0,114,9,0,0,0,114,31,0,0,0,114, - 31,0,0,0,107,3,0,0,115,35,0,0,0,132,0,224, - 16,18,128,73,224,5,16,241,2,1,5,23,243,3,0,6, - 17,240,2,1,5,23,242,6,7,5,44,243,18,2,5,44, - 114,8,0,0,0,114,31,0,0,0,99,0,0,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,243, - 28,0,0,0,151,0,101,0,90,1,100,0,90,2,100,1, - 90,3,100,2,132,0,90,4,100,3,132,0,90,5,121,4, - 41,5,114,32,0,0,0,114,7,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, - 0,243,90,0,0,0,151,0,124,0,106,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,0, - 93,28,0,0,125,2,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,2,25,0, - 0,0,125,3,124,3,124,1,117,0,115,6,124,3,124,1, - 107,40,0,0,115,1,140,28,1,0,121,1,4,0,121,2, - 114,73,1,0,0,114,84,1,0,0,41,4,114,61,0,0, - 0,114,87,0,0,0,114,66,1,0,0,114,103,1,0,0, - 115,4,0,0,0,32,32,32,32,114,9,0,0,0,114,158, - 0,0,0,122,23,86,97,108,117,101,115,86,105,101,119,46, - 95,95,99,111,110,116,97,105,110,115,95,95,136,3,0,0, - 115,51,0,0,0,128,0,216,19,23,151,61,148,61,136,67, - 216,16,20,151,13,145,13,152,99,209,16,34,136,65,216,15, - 16,144,69,137,122,152,81,160,37,155,90,217,23,27,240,7, - 0,20,33,240,8,0,16,21,114,8,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,35,0, - 0,0,243,80,0,0,0,75,0,1,0,151,0,124,0,106, + 0,0,35,0,0,0,243,56,0,0,0,35,0,32,0,149, + 0,85,0,82,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,21,0,83,0,104,3,0,0,118, + 1,149,2,78,5,12,0,32,0,103,0,8,0,78,5,55, + 3,102,1,114,6,0,0,0,114,174,1,0,0,114,67,0, + 0,0,115,1,0,0,0,32,114,9,0,0,0,114,165,0, + 0,0,218,17,75,101,121,115,86,105,101,119,46,95,95,105, + 116,101,114,95,95,105,3,0,0,115,18,0,0,0,233,0, + 128,0,216,19,23,151,61,145,61,215,8,32,211,8,32,249, + 115,12,0,0,0,130,16,26,1,146,1,24,4,147,6,26, + 1,78,169,10,114,78,0,0,0,114,79,0,0,0,114,80, + 0,0,0,114,81,0,0,0,114,82,0,0,0,114,83,0, + 0,0,114,59,1,0,0,114,205,0,0,0,114,165,0,0, + 0,114,84,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,9,0,0,0,114,30,0,0,0,114,30,0,0,0,94, + 3,0,0,115,35,0,0,0,134,0,224,16,18,128,73,224, + 5,16,241,2,1,5,23,243,3,0,6,17,240,2,1,5, + 23,242,6,1,5,36,245,6,1,5,33,114,8,0,0,0, + 114,30,0,0,0,99,0,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,0,0,0,0,243,52,0,0,0,149, + 0,92,0,114,1,83,0,114,2,83,1,114,3,83,2,114, + 4,92,5,83,3,26,0,53,0,0,0,0,0,0,0,114, + 6,83,4,26,0,114,7,83,5,26,0,114,8,83,2,114, + 9,103,6,41,7,114,31,0,0,0,105,112,3,0,0,114, + 7,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,243,24,0,0,0,149,0, + 91,1,0,0,0,0,0,0,0,0,85,1,53,1,0,0, + 0,0,0,0,36,0,114,6,0,0,0,114,187,1,0,0, + 114,57,1,0,0,115,2,0,0,0,32,32,114,9,0,0, + 0,114,59,1,0,0,218,24,73,116,101,109,115,86,105,101, + 119,46,95,102,114,111,109,95,105,116,101,114,97,98,108,101, + 116,3,0,0,114,190,1,0,0,114,8,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,102,0,0,0,149,0,85,1,117,2,0,0, + 112,35,30,0,85,0,82,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,2,5,0,0,0, + 110,4,88,67,76,0,61,1,40,0,0,0,0,0,0,0, + 100,4,0,0,32,0,88,67,58,72,0,0,36,0,33,0, + 91,2,0,0,0,0,0,0,0,0,7,0,97,3,0,0, + 32,0,31,0,103,1,102,0,61,3,31,0,102,1,114,203, + 0,0,0,41,2,114,175,1,0,0,114,119,1,0,0,41, + 5,114,68,0,0,0,114,1,1,0,0,114,149,1,0,0, + 114,102,0,0,0,218,1,118,115,5,0,0,0,32,32,32, + 32,32,114,9,0,0,0,114,205,0,0,0,218,22,73,116, + 101,109,115,86,105,101,119,46,95,95,99,111,110,116,97,105, + 110,115,95,95,120,3,0,0,115,65,0,0,0,128,0,216, + 21,25,137,10,136,3,240,2,5,9,44,216,16,20,151,13, + 145,13,152,99,209,16,34,136,65,240,8,0,20,21,144,58, + 215,19,43,160,17,161,26,208,12,43,248,244,7,0,16,24, + 243,0,1,9,25,217,19,24,240,3,1,9,25,250,115,12, + 0,0,0,134,15,35,0,163,10,48,3,175,1,48,3,99, + 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 35,0,0,0,243,86,0,0,0,35,0,32,0,149,0,85, + 0,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,19,0,72,21,0,0,110,1,88,16,82, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,68,0,93,19,0,0,125,1,124,0,106,0,0, + 0,0,0,85,1,5,0,0,0,52,2,118,0,149,5,32, + 0,77,23,0,0,11,0,32,0,103,0,55,3,102,1,114, + 6,0,0,0,114,174,1,0,0,114,148,1,0,0,115,2, + 0,0,0,32,32,114,9,0,0,0,114,165,0,0,0,218, + 18,73,116,101,109,115,86,105,101,119,46,95,95,105,116,101, + 114,95,95,129,3,0,0,115,37,0,0,0,233,0,128,0, + 216,19,23,151,61,148,61,136,67,216,19,22,159,13,153,13, + 160,99,209,24,42,208,18,43,212,12,43,242,3,0,20,33, + 249,115,4,0,0,0,130,39,41,1,78,114,195,1,0,0, + 114,7,0,0,0,114,8,0,0,0,114,9,0,0,0,114, + 31,0,0,0,114,31,0,0,0,112,3,0,0,115,35,0, + 0,0,134,0,224,16,18,128,73,224,5,16,241,2,1,5, + 23,243,3,0,6,17,240,2,1,5,23,242,6,7,5,44, + 245,18,2,5,44,114,8,0,0,0,114,31,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 0,0,0,0,243,36,0,0,0,149,0,92,0,114,1,83, + 0,114,2,83,1,114,3,83,2,114,4,83,3,26,0,114, + 5,83,4,26,0,114,6,83,2,114,7,103,5,41,6,114, + 32,0,0,0,105,137,3,0,0,114,7,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, + 0,0,0,243,94,0,0,0,149,0,85,0,82,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,25,0,0,0,150,1,151,1,1,0,140,21,4, - 0,121,0,173,3,119,1,114,6,0,0,0,114,84,1,0, - 0,114,65,1,0,0,115,2,0,0,0,32,32,114,9,0, - 0,0,114,132,0,0,0,122,19,86,97,108,117,101,115,86, - 105,101,119,46,95,95,105,116,101,114,95,95,143,3,0,0, - 115,35,0,0,0,232,0,248,128,0,216,19,23,151,61,148, - 61,136,67,216,18,22,151,45,145,45,160,3,209,18,36,211, - 12,36,241,3,0,20,33,249,115,4,0,0,0,130,36,38, - 1,78,41,6,114,69,0,0,0,114,70,0,0,0,114,71, - 0,0,0,114,72,0,0,0,114,158,0,0,0,114,132,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,9,0,0, - 0,114,32,0,0,0,114,32,0,0,0,132,3,0,0,115, - 17,0,0,0,132,0,224,16,18,128,73,242,4,5,5,21, - 243,14,2,5,37,114,8,0,0,0,114,32,0,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 0,0,0,0,243,104,0,0,0,151,0,101,0,90,1,100, - 0,90,2,100,1,90,3,100,2,90,4,101,5,100,3,132, - 0,171,0,0,0,0,0,0,0,90,6,101,5,100,4,132, - 0,171,0,0,0,0,0,0,0,90,7,2,0,101,8,171, - 0,0,0,0,0,0,0,90,9,101,9,102,1,100,5,132, - 1,90,10,100,6,132,0,90,11,100,7,132,0,90,12,100, - 11,100,8,132,1,90,13,100,12,100,10,132,1,90,14,121, - 9,41,13,114,28,0,0,0,122,235,65,32,77,117,116,97, - 98,108,101,77,97,112,112,105,110,103,32,105,115,32,97,32, - 103,101,110,101,114,105,99,32,99,111,110,116,97,105,110,101, - 114,32,102,111,114,32,97,115,115,111,99,105,97,116,105,110, - 103,10,32,32,32,32,107,101,121,47,118,97,108,117,101,32, - 112,97,105,114,115,46,10,10,32,32,32,32,84,104,105,115, - 32,99,108,97,115,115,32,112,114,111,118,105,100,101,115,32, - 99,111,110,99,114,101,116,101,32,103,101,110,101,114,105,99, - 32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,115, - 32,111,102,32,97,108,108,10,32,32,32,32,109,101,116,104, - 111,100,115,32,101,120,99,101,112,116,32,102,111,114,32,95, - 95,103,101,116,105,116,101,109,95,95,44,32,95,95,115,101, - 116,105,116,101,109,95,95,44,32,95,95,100,101,108,105,116, - 101,109,95,95,44,10,32,32,32,32,95,95,105,116,101,114, - 95,95,44,32,97,110,100,32,95,95,108,101,110,95,95,46, - 10,32,32,32,32,114,7,0,0,0,99,3,0,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,243, - 14,0,0,0,151,0,116,0,0,0,0,0,0,0,0,0, - 130,1,114,6,0,0,0,114,64,1,0,0,169,3,114,61, - 0,0,0,114,66,1,0,0,114,87,0,0,0,115,3,0, - 0,0,32,32,32,114,9,0,0,0,218,11,95,95,115,101, - 116,105,116,101,109,95,95,122,26,77,117,116,97,98,108,101, - 77,97,112,112,105,110,103,46,95,95,115,101,116,105,116,101, - 109,95,95,162,3,0,0,114,67,1,0,0,114,8,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,1,0, - 0,0,3,0,0,0,243,14,0,0,0,151,0,116,0,0, - 0,0,0,0,0,0,0,130,1,114,6,0,0,0,114,64, - 1,0,0,114,65,1,0,0,115,2,0,0,0,32,32,114, - 9,0,0,0,218,11,95,95,100,101,108,105,116,101,109,95, - 95,122,26,77,117,116,97,98,108,101,77,97,112,112,105,110, - 103,46,95,95,100,101,108,105,116,101,109,95,95,166,3,0, - 0,114,67,1,0,0,114,8,0,0,0,99,3,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,88,0,0,0,151,0,9,0,124,0,124,1,25,0,0, - 0,125,3,124,0,124,1,61,0,124,3,83,0,35,0,116, - 0,0,0,0,0,0,0,0,0,36,0,114,20,1,0,124, - 2,124,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,117,0,114,1,130,0,124,2,99, - 2,89,0,83,0,119,0,120,3,89,0,119,1,41,1,122, - 169,68,46,112,111,112,40,107,91,44,100,93,41,32,45,62, - 32,118,44,32,114,101,109,111,118,101,32,115,112,101,99,105, - 102,105,101,100,32,107,101,121,32,97,110,100,32,114,101,116, - 117,114,110,32,116,104,101,32,99,111,114,114,101,115,112,111, - 110,100,105,110,103,32,118,97,108,117,101,46,10,32,32,32, - 32,32,32,32,32,32,32,73,102,32,107,101,121,32,105,115, - 32,110,111,116,32,102,111,117,110,100,44,32,100,32,105,115, - 32,114,101,116,117,114,110,101,100,32,105,102,32,103,105,118, - 101,110,44,32,111,116,104,101,114,119,105,115,101,32,75,101, - 121,69,114,114,111,114,32,105,115,32,114,97,105,115,101,100, - 46,10,32,32,32,32,32,32,32,32,41,2,114,43,1,0, - 0,218,23,95,77,117,116,97,98,108,101,77,97,112,112,105, - 110,103,95,95,109,97,114,107,101,114,41,4,114,61,0,0, - 0,114,66,1,0,0,114,70,1,0,0,114,87,0,0,0, - 115,4,0,0,0,32,32,32,32,114,9,0,0,0,114,49, - 1,0,0,122,18,77,117,116,97,98,108,101,77,97,112,112, - 105,110,103,46,112,111,112,172,3,0,0,115,67,0,0,0, - 128,0,240,8,8,9,25,216,20,24,152,19,145,73,136,69, - 240,12,0,17,21,144,83,144,9,216,19,24,136,76,248,244, - 13,0,16,24,242,0,3,9,27,216,15,22,152,36,159,45, - 153,45,209,15,39,216,16,21,216,19,26,138,78,240,7,3, - 9,27,250,115,12,0,0,0,130,5,12,0,140,26,41,3, - 168,1,41,3,99,1,0,0,0,0,0,0,0,0,0,0, - 0,5,0,0,0,3,0,0,0,243,108,0,0,0,151,0, - 9,0,116,1,0,0,0,0,0,0,0,0,116,3,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,125,1,124,0,124,1,25,0, - 0,0,125,2,124,0,124,1,61,0,124,1,124,2,102,2, - 83,0,35,0,116,4,0,0,0,0,0,0,0,0,36,0, - 114,8,1,0,116,6,0,0,0,0,0,0,0,0,100,1, - 130,2,119,0,120,3,89,0,119,1,41,2,122,131,68,46, - 112,111,112,105,116,101,109,40,41,32,45,62,32,40,107,44, - 32,118,41,44,32,114,101,109,111,118,101,32,97,110,100,32, - 114,101,116,117,114,110,32,115,111,109,101,32,40,107,101,121, - 44,32,118,97,108,117,101,41,32,112,97,105,114,10,32,32, - 32,32,32,32,32,32,32,32,32,97,115,32,97,32,50,45, - 116,117,112,108,101,59,32,98,117,116,32,114,97,105,115,101, - 32,75,101,121,69,114,114,111,114,32,105,102,32,68,32,105, - 115,32,101,109,112,116,121,46,10,32,32,32,32,32,32,32, - 32,78,41,4,114,47,1,0,0,114,46,1,0,0,114,85, - 0,0,0,114,43,1,0,0,114,110,1,0,0,115,3,0, - 0,0,32,32,32,114,9,0,0,0,218,7,112,111,112,105, - 116,101,109,122,22,77,117,116,97,98,108,101,77,97,112,112, - 105,110,103,46,112,111,112,105,116,101,109,186,3,0,0,115, - 74,0,0,0,128,0,240,8,3,9,37,220,18,22,148,116, - 152,68,147,122,211,18,34,136,67,240,6,0,17,21,144,83, - 145,9,136,5,216,12,16,144,19,136,73,216,15,18,144,69, - 136,122,208,8,25,248,244,9,0,16,29,242,0,1,9,37, - 220,18,26,160,4,208,12,36,240,3,1,9,37,250,115,8, - 0,0,0,130,20,34,0,162,17,51,3,99,1,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,70,0,0,0,151,0,9,0,9,0,124,0,106,1,0, + 19,0,72,29,0,0,110,2,85,0,82,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,2, + 5,0,0,0,110,3,88,49,76,0,100,7,0,0,88,49, + 58,88,0,0,100,2,0,0,77,29,0,0,32,0,103,1, + 11,0,32,0,103,2,114,158,1,0,0,114,174,1,0,0, + 41,4,114,68,0,0,0,114,102,0,0,0,114,149,1,0, + 0,114,200,1,0,0,115,4,0,0,0,32,32,32,32,114, + 9,0,0,0,114,205,0,0,0,218,23,86,97,108,117,101, + 115,86,105,101,119,46,95,95,99,111,110,116,97,105,110,115, + 95,95,141,3,0,0,115,47,0,0,0,128,0,216,19,23, + 151,61,148,61,136,67,216,16,20,151,13,145,13,152,99,209, + 16,34,136,65,216,15,16,138,122,152,81,157,90,217,23,27, + 241,7,0,20,33,240,8,0,16,21,114,8,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 35,0,0,0,243,84,0,0,0,35,0,32,0,149,0,85, + 0,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,19,0,72,20,0,0,110,1,85,0,82, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,1,0,140,17,35,0,116, - 2,0,0,0,0,0,0,0,0,36,0,114,3,1,0,89, - 0,121,1,119,0,120,3,89,0,119,1,41,2,122,44,68, - 46,99,108,101,97,114,40,41,32,45,62,32,78,111,110,101, - 46,32,32,82,101,109,111,118,101,32,97,108,108,32,105,116, - 101,109,115,32,102,114,111,109,32,68,46,78,41,2,114,117, - 1,0,0,114,43,1,0,0,114,60,0,0,0,115,1,0, - 0,0,32,114,9,0,0,0,114,51,1,0,0,122,20,77, - 117,116,97,98,108,101,77,97,112,112,105,110,103,46,99,108, - 101,97,114,198,3,0,0,115,42,0,0,0,128,0,240,4, - 4,9,17,216,18,22,216,16,20,151,12,145,12,148,14,240, - 3,0,19,23,248,228,15,23,242,0,1,9,17,217,12,16, - 240,3,1,9,17,250,114,52,1,0,0,99,2,0,0,0, - 2,0,0,0,0,0,0,0,4,0,0,0,11,0,0,0, - 243,240,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,124,1,116,2,0,0,0,0,0,0,0,0,171,2,0, - 0,0,0,0,0,114,16,124,1,68,0,93,10,0,0,125, - 3,124,1,124,3,25,0,0,0,124,0,124,3,60,0,0, - 0,140,12,4,0,110,57,116,5,0,0,0,0,0,0,0, - 0,124,1,100,1,171,2,0,0,0,0,0,0,114,30,124, - 1,106,7,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,68,0,93, - 10,0,0,125,3,124,1,124,3,25,0,0,0,124,0,124, - 3,60,0,0,0,140,12,4,0,110,15,124,1,68,0,93, - 10,0,0,92,2,0,0,125,3,125,4,124,4,124,0,124, - 3,60,0,0,0,140,12,4,0,124,2,106,9,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,68,0,93,10,0,0,92,2,0, - 0,125,3,125,4,124,4,124,0,124,3,60,0,0,0,140, - 12,4,0,121,2,41,3,97,82,1,0,0,32,68,46,117, - 112,100,97,116,101,40,91,69,44,32,93,42,42,70,41,32, - 45,62,32,78,111,110,101,46,32,32,85,112,100,97,116,101, - 32,68,32,102,114,111,109,32,109,97,112,112,105,110,103,47, - 105,116,101,114,97,98,108,101,32,69,32,97,110,100,32,70, - 46,10,32,32,32,32,32,32,32,32,32,32,32,32,73,102, - 32,69,32,112,114,101,115,101,110,116,32,97,110,100,32,104, - 97,115,32,97,32,46,107,101,121,115,40,41,32,109,101,116, - 104,111,100,44,32,100,111,101,115,58,32,32,32,32,32,102, - 111,114,32,107,32,105,110,32,69,46,107,101,121,115,40,41, - 58,32,68,91,107,93,32,61,32,69,91,107,93,10,32,32, - 32,32,32,32,32,32,32,32,32,32,73,102,32,69,32,112, - 114,101,115,101,110,116,32,97,110,100,32,108,97,99,107,115, - 32,46,107,101,121,115,40,41,32,109,101,116,104,111,100,44, - 32,100,111,101,115,58,32,32,32,32,32,102,111,114,32,40, - 107,44,32,118,41,32,105,110,32,69,58,32,68,91,107,93, - 32,61,32,118,10,32,32,32,32,32,32,32,32,32,32,32, - 32,73,110,32,101,105,116,104,101,114,32,99,97,115,101,44, - 32,116,104,105,115,32,105,115,32,102,111,108,108,111,119,101, - 100,32,98,121,58,32,102,111,114,32,107,44,32,118,32,105, - 110,32,70,46,105,116,101,109,115,40,41,58,32,68,91,107, - 93,32,61,32,118,10,32,32,32,32,32,32,32,32,114,75, - 1,0,0,78,41,5,114,177,0,0,0,114,27,0,0,0, - 218,7,104,97,115,97,116,116,114,114,75,1,0,0,114,77, - 1,0,0,41,5,114,61,0,0,0,114,235,0,0,0,114, - 227,0,0,0,114,66,1,0,0,114,87,0,0,0,115,5, - 0,0,0,32,32,32,32,32,114,9,0,0,0,218,6,117, - 112,100,97,116,101,122,21,77,117,116,97,98,108,101,77,97, - 112,112,105,110,103,46,117,112,100,97,116,101,206,3,0,0, - 115,130,0,0,0,128,0,244,12,0,12,22,144,101,156,87, - 212,11,37,219,23,28,144,3,216,28,33,160,35,153,74,144, - 4,144,83,146,9,241,3,0,24,29,228,13,20,144,85,152, - 70,212,13,35,216,23,28,151,122,145,122,150,124,144,3,216, - 28,33,160,35,153,74,144,4,144,83,146,9,241,3,0,24, - 36,243,6,0,31,36,145,10,144,3,144,85,216,28,33,144, - 4,144,83,146,9,240,3,0,31,36,224,26,30,159,42,153, - 42,158,44,137,74,136,67,144,21,216,24,29,136,68,144,19, - 138,73,241,3,0,27,39,114,8,0,0,0,78,99,3,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,243,56,0,0,0,151,0,9,0,124,0,124,1,25, - 0,0,0,83,0,35,0,116,0,0,0,0,0,0,0,0, - 0,36,0,114,9,1,0,124,2,124,0,124,1,60,0,0, - 0,89,0,124,2,83,0,119,0,120,3,89,0,119,1,41, - 1,122,64,68,46,115,101,116,100,101,102,97,117,108,116,40, - 107,91,44,100,93,41,32,45,62,32,68,46,103,101,116,40, - 107,44,100,41,44,32,97,108,115,111,32,115,101,116,32,68, - 91,107,93,61,100,32,105,102,32,107,32,110,111,116,32,105, - 110,32,68,114,64,1,0,0,114,69,1,0,0,115,3,0, - 0,0,32,32,32,114,9,0,0,0,218,10,115,101,116,100, - 101,102,97,117,108,116,122,25,77,117,116,97,98,108,101,77, - 97,112,112,105,110,103,46,115,101,116,100,101,102,97,117,108, - 116,224,3,0,0,115,46,0,0,0,128,0,240,4,3,9, - 32,216,19,23,152,3,145,57,208,12,28,248,220,15,23,242, - 0,1,9,32,216,24,31,136,68,144,19,138,73,216,15,22, - 136,14,240,5,1,9,32,250,115,12,0,0,0,130,4,7, - 0,135,14,25,3,152,1,25,3,41,1,114,7,0,0,0, - 114,6,0,0,0,41,15,114,69,0,0,0,114,70,0,0, - 0,114,71,0,0,0,114,204,0,0,0,114,72,0,0,0, - 114,4,0,0,0,114,111,1,0,0,114,113,1,0,0,218, - 6,111,98,106,101,99,116,114,115,1,0,0,114,49,1,0, - 0,114,117,1,0,0,114,51,1,0,0,114,121,1,0,0, - 114,123,1,0,0,114,7,0,0,0,114,8,0,0,0,114, - 9,0,0,0,114,28,0,0,0,114,28,0,0,0,151,3, - 0,0,115,89,0,0,0,132,0,241,2,6,5,8,240,16, - 0,17,19,128,73,224,5,19,241,2,1,5,23,243,3,0, - 6,20,240,2,1,5,23,240,6,0,6,20,241,2,1,5, - 23,243,3,0,6,20,240,2,1,5,23,241,6,0,16,22, - 139,120,128,72,224,31,39,243,0,12,5,25,242,28,10,5, - 26,242,24,6,5,17,243,16,16,5,30,244,36,6,5,23, - 114,8,0,0,0,114,28,0,0,0,99,0,0,0,0,0, + 0,0,0,85,1,5,0,0,0,118,0,149,5,32,0,77, + 22,0,0,11,0,32,0,103,0,55,3,102,1,114,6,0, + 0,0,114,174,1,0,0,114,148,1,0,0,115,2,0,0, + 0,32,32,114,9,0,0,0,114,165,0,0,0,218,19,86, + 97,108,117,101,115,86,105,101,119,46,95,95,105,116,101,114, + 95,95,148,3,0,0,115,34,0,0,0,233,0,128,0,216, + 19,23,151,61,148,61,136,67,216,18,22,151,45,145,45,160, + 3,209,18,36,212,12,36,242,3,0,20,33,249,114,157,0, + 0,0,78,41,8,114,78,0,0,0,114,79,0,0,0,114, + 80,0,0,0,114,81,0,0,0,114,82,0,0,0,114,205, + 0,0,0,114,165,0,0,0,114,84,0,0,0,114,7,0, + 0,0,114,8,0,0,0,114,9,0,0,0,114,32,0,0, + 0,114,32,0,0,0,137,3,0,0,115,17,0,0,0,134, + 0,224,16,18,128,73,242,4,5,5,21,245,14,2,5,37, + 114,8,0,0,0,114,32,0,0,0,99,0,0,0,0,0, 0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,243, - 72,0,0,0,151,0,101,0,90,1,100,0,90,2,100,1, - 90,3,100,2,90,4,100,3,90,5,101,6,100,4,132,0, - 171,0,0,0,0,0,0,0,90,7,100,5,132,0,90,8, - 100,6,132,0,90,9,100,7,132,0,90,10,100,11,100,9, - 132,1,90,11,100,10,132,0,90,12,121,8,41,12,114,33, - 0,0,0,122,138,65,108,108,32,116,104,101,32,111,112,101, - 114,97,116,105,111,110,115,32,111,110,32,97,32,114,101,97, - 100,45,111,110,108,121,32,115,101,113,117,101,110,99,101,46, - 10,10,32,32,32,32,67,111,110,99,114,101,116,101,32,115, - 117,98,99,108,97,115,115,101,115,32,109,117,115,116,32,111, - 118,101,114,114,105,100,101,32,95,95,110,101,119,95,95,32, - 111,114,32,95,95,105,110,105,116,95,95,44,10,32,32,32, - 32,95,95,103,101,116,105,116,101,109,95,95,44,32,97,110, - 100,32,95,95,108,101,110,95,95,46,10,32,32,32,32,114, - 7,0,0,0,233,32,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,1,0,0,0,3,0,0,0,243,14, - 0,0,0,151,0,116,0,0,0,0,0,0,0,0,0,130, - 1,114,6,0,0,0,169,1,218,10,73,110,100,101,120,69, - 114,114,111,114,169,2,114,61,0,0,0,218,5,105,110,100, - 101,120,115,2,0,0,0,32,32,114,9,0,0,0,114,201, - 0,0,0,122,20,83,101,113,117,101,110,99,101,46,95,95, - 103,101,116,105,116,101,109,95,95,250,3,0,0,243,8,0, - 0,0,128,0,228,14,24,208,8,24,114,8,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 35,0,0,0,243,78,0,0,0,75,0,1,0,151,0,100, - 1,125,1,9,0,9,0,124,0,124,1,25,0,0,0,125, - 2,124,2,150,2,151,1,1,0,124,1,100,2,122,13,0, - 0,125,1,140,15,35,0,116,0,0,0,0,0,0,0,0, - 0,36,0,114,3,1,0,89,0,121,0,119,0,120,3,89, - 0,119,1,173,3,119,1,41,3,78,114,2,0,0,0,114, - 37,0,0,0,114,128,1,0,0,41,3,114,61,0,0,0, - 218,1,105,114,103,1,0,0,115,3,0,0,0,32,32,32, - 114,9,0,0,0,114,132,0,0,0,122,17,83,101,113,117, - 101,110,99,101,46,95,95,105,116,101,114,95,95,254,3,0, - 0,115,66,0,0,0,232,0,248,128,0,216,12,13,136,1, - 240,2,6,9,19,216,18,22,216,20,24,152,17,145,71,144, - 1,216,22,23,146,7,216,16,17,144,81,145,6,144,1,240, - 7,0,19,23,248,244,8,0,16,26,242,0,1,9,19,217, - 12,18,240,3,1,9,19,252,115,24,0,0,0,130,3,37, - 1,134,16,22,0,150,9,34,3,159,2,37,1,161,1,34, - 3,162,3,37,1,99,2,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,3,0,0,0,243,40,0,0,0,151, - 0,124,0,68,0,93,13,0,0,125,2,124,2,124,1,117, - 0,115,6,124,2,124,1,107,40,0,0,115,1,140,13,1, - 0,121,1,4,0,121,2,114,73,1,0,0,114,7,0,0, - 0,41,3,114,61,0,0,0,114,87,0,0,0,114,103,1, - 0,0,115,3,0,0,0,32,32,32,114,9,0,0,0,114, - 158,0,0,0,122,21,83,101,113,117,101,110,99,101,46,95, - 95,99,111,110,116,97,105,110,115,95,95,8,4,0,0,115, - 33,0,0,0,128,0,219,17,21,136,65,216,15,16,144,69, - 137,122,152,81,160,37,155,90,217,23,27,240,5,0,18,22, - 240,6,0,16,21,114,8,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,7,0,0,0,35,0,0,0,243, - 94,0,0,0,75,0,1,0,151,0,116,1,0,0,0,0, - 0,0,0,0,116,3,0,0,0,0,0,0,0,0,116,5, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,68,0,93,9,0,0,125,1,124,0,124,1,25,0, - 0,0,150,1,151,1,1,0,140,11,4,0,121,0,173,3, - 119,1,114,6,0,0,0,41,3,218,8,114,101,118,101,114, - 115,101,100,218,5,114,97,110,103,101,114,179,0,0,0,41, - 2,114,61,0,0,0,114,134,1,0,0,115,2,0,0,0, - 32,32,114,9,0,0,0,114,142,0,0,0,122,21,83,101, - 113,117,101,110,99,101,46,95,95,114,101,118,101,114,115,101, - 100,95,95,14,4,0,0,115,39,0,0,0,232,0,248,128, - 0,220,17,25,156,37,164,3,160,68,163,9,211,26,42,214, - 17,43,136,65,216,18,22,144,113,145,39,139,77,241,3,0, - 18,44,249,115,4,0,0,0,130,43,45,1,78,99,4,0, - 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, - 0,0,243,238,0,0,0,151,0,124,2,129,29,124,2,100, - 1,107,2,0,0,114,24,116,1,0,0,0,0,0,0,0, - 0,116,3,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,124,2,122,0,0,0,100,1,171,2,0, - 0,0,0,0,0,125,2,124,3,129,19,124,3,100,1,107, - 2,0,0,114,14,124,3,116,3,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,122,13,0,0,125, - 3,124,2,125,4,124,3,129,5,124,4,124,3,107,2,0, - 0,114,31,9,0,124,0,124,4,25,0,0,0,125,5,124, - 5,124,1,117,0,115,5,124,5,124,1,107,40,0,0,114, - 2,124,4,83,0,124,4,100,2,122,13,0,0,125,4,124, - 3,128,1,140,25,124,4,124,3,107,2,0,0,114,1,140, - 31,116,6,0,0,0,0,0,0,0,0,130,1,35,0,116, - 4,0,0,0,0,0,0,0,0,36,0,114,8,1,0,89, - 0,116,6,0,0,0,0,0,0,0,0,130,1,119,0,120, - 3,89,0,119,1,41,3,122,230,83,46,105,110,100,101,120, - 40,118,97,108,117,101,44,32,91,115,116,97,114,116,44,32, - 91,115,116,111,112,93,93,41,32,45,62,32,105,110,116,101, - 103,101,114,32,45,45,32,114,101,116,117,114,110,32,102,105, - 114,115,116,32,105,110,100,101,120,32,111,102,32,118,97,108, - 117,101,46,10,32,32,32,32,32,32,32,32,32,32,32,82, - 97,105,115,101,115,32,86,97,108,117,101,69,114,114,111,114, - 32,105,102,32,116,104,101,32,118,97,108,117,101,32,105,115, - 32,110,111,116,32,112,114,101,115,101,110,116,46,10,10,32, - 32,32,32,32,32,32,32,32,32,32,83,117,112,112,111,114, - 116,105,110,103,32,115,116,97,114,116,32,97,110,100,32,115, - 116,111,112,32,97,114,103,117,109,101,110,116,115,32,105,115, - 32,111,112,116,105,111,110,97,108,44,32,98,117,116,10,32, - 32,32,32,32,32,32,32,32,32,32,114,101,99,111,109,109, - 101,110,100,101,100,46,10,32,32,32,32,32,32,32,32,114, + 118,0,0,0,149,0,92,0,114,1,83,0,114,2,83,1, + 114,3,83,2,114,4,83,3,114,5,92,6,83,4,26,0, + 53,0,0,0,0,0,0,0,114,7,92,6,83,5,26,0, + 53,0,0,0,0,0,0,0,114,8,92,9,34,0,53,0, + 0,0,0,0,0,0,114,10,92,10,52,1,83,6,26,0, + 106,1,114,11,83,7,26,0,114,12,83,8,26,0,114,13, + 83,12,83,9,26,0,106,1,114,14,83,13,83,11,26,0, + 106,1,114,15,83,3,114,16,103,10,41,14,114,28,0,0, + 0,105,156,3,0,0,122,215,65,32,77,117,116,97,98,108, + 101,77,97,112,112,105,110,103,32,105,115,32,97,32,103,101, + 110,101,114,105,99,32,99,111,110,116,97,105,110,101,114,32, + 102,111,114,32,97,115,115,111,99,105,97,116,105,110,103,10, + 107,101,121,47,118,97,108,117,101,32,112,97,105,114,115,46, + 10,10,84,104,105,115,32,99,108,97,115,115,32,112,114,111, + 118,105,100,101,115,32,99,111,110,99,114,101,116,101,32,103, + 101,110,101,114,105,99,32,105,109,112,108,101,109,101,110,116, + 97,116,105,111,110,115,32,111,102,32,97,108,108,10,109,101, + 116,104,111,100,115,32,101,120,99,101,112,116,32,102,111,114, + 32,95,95,103,101,116,105,116,101,109,95,95,44,32,95,95, + 115,101,116,105,116,101,109,95,95,44,32,95,95,100,101,108, + 105,116,101,109,95,95,44,10,95,95,105,116,101,114,95,95, + 44,32,97,110,100,32,95,95,108,101,110,95,95,46,10,114, + 7,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,243,14,0,0,0,149,0, + 91,0,0,0,0,0,0,0,0,0,101,1,114,6,0,0, + 0,114,147,1,0,0,169,3,114,68,0,0,0,114,149,1, + 0,0,114,102,0,0,0,115,3,0,0,0,32,32,32,114, + 9,0,0,0,218,11,95,95,115,101,116,105,116,101,109,95, + 95,218,26,77,117,116,97,98,108,101,77,97,112,112,105,110, + 103,46,95,95,115,101,116,105,116,101,109,95,95,167,3,0, + 0,114,151,1,0,0,114,8,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, + 243,14,0,0,0,149,0,91,0,0,0,0,0,0,0,0, + 0,101,1,114,6,0,0,0,114,147,1,0,0,114,148,1, + 0,0,115,2,0,0,0,32,32,114,9,0,0,0,218,11, + 95,95,100,101,108,105,116,101,109,95,95,218,26,77,117,116, + 97,98,108,101,77,97,112,112,105,110,103,46,95,95,100,101, + 108,105,116,101,109,95,95,171,3,0,0,114,151,1,0,0, + 114,8,0,0,0,99,3,0,0,0,0,0,0,0,0,0, + 0,0,4,0,0,0,3,0,0,0,243,86,0,0,0,149, + 0,30,0,88,1,5,0,0,0,110,3,88,1,9,0,85, + 3,36,0,33,0,91,0,0,0,0,0,0,0,0,0,7, + 0,97,20,0,0,32,0,88,32,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,76,0,97, + 1,0,0,101,0,85,2,115,2,31,0,36,0,102,0,61, + 3,31,0,102,1,41,1,122,151,68,46,112,111,112,40,107, + 91,44,100,93,41,32,45,62,32,118,44,32,114,101,109,111, + 118,101,32,115,112,101,99,105,102,105,101,100,32,107,101,121, + 32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32, + 99,111,114,114,101,115,112,111,110,100,105,110,103,32,118,97, + 108,117,101,46,10,73,102,32,107,101,121,32,105,115,32,110, + 111,116,32,102,111,117,110,100,44,32,100,32,105,115,32,114, + 101,116,117,114,110,101,100,32,105,102,32,103,105,118,101,110, + 44,32,111,116,104,101,114,119,105,115,101,32,75,101,121,69, + 114,114,111,114,32,105,115,32,114,97,105,115,101,100,46,10, + 41,2,114,119,1,0,0,218,23,95,77,117,116,97,98,108, + 101,77,97,112,112,105,110,103,95,95,109,97,114,107,101,114, + 41,4,114,68,0,0,0,114,149,1,0,0,114,154,1,0, + 0,114,102,0,0,0,115,4,0,0,0,32,32,32,32,114, + 9,0,0,0,114,126,1,0,0,218,18,77,117,116,97,98, + 108,101,77,97,112,112,105,110,103,46,112,111,112,177,3,0, + 0,115,61,0,0,0,128,0,240,8,8,9,25,216,20,24, + 145,73,136,69,240,12,0,17,21,144,9,216,19,24,136,76, + 248,244,13,0,16,24,243,0,3,9,27,216,15,22,159,45, + 153,45,210,15,39,216,16,21,216,19,26,138,78,240,7,3, + 9,27,250,115,12,0,0,0,130,4,10,0,138,27,40,3, + 167,1,40,3,99,1,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,3,0,0,0,243,104,0,0,0,149,0, + 30,0,91,1,0,0,0,0,0,0,0,0,91,3,0,0, + 0,0,0,0,0,0,85,0,53,1,0,0,0,0,0,0, + 53,1,0,0,0,0,0,0,110,1,88,1,5,0,0,0, + 110,2,88,1,9,0,88,18,52,2,36,0,33,0,91,4, + 0,0,0,0,0,0,0,0,7,0,97,8,0,0,32,0, + 91,6,0,0,0,0,0,0,0,0,83,1,101,2,102,0, + 61,3,31,0,102,1,41,2,122,112,68,46,112,111,112,105, + 116,101,109,40,41,32,45,62,32,40,107,44,32,118,41,44, + 32,114,101,109,111,118,101,32,97,110,100,32,114,101,116,117, + 114,110,32,115,111,109,101,32,40,107,101,121,44,32,118,97, + 108,117,101,41,32,112,97,105,114,10,97,115,32,97,32,50, + 45,116,117,112,108,101,59,32,98,117,116,32,114,97,105,115, + 101,32,75,101,121,69,114,114,111,114,32,105,102,32,68,32, + 105,115,32,101,109,112,116,121,46,10,78,41,4,114,124,1, + 0,0,114,123,1,0,0,114,100,0,0,0,114,119,1,0, + 0,114,211,1,0,0,115,3,0,0,0,32,32,32,114,9, + 0,0,0,218,7,112,111,112,105,116,101,109,218,22,77,117, + 116,97,98,108,101,77,97,112,112,105,110,103,46,112,111,112, + 105,116,101,109,191,3,0,0,115,68,0,0,0,128,0,240, + 8,3,9,37,220,18,22,148,116,152,68,147,122,211,18,34, + 136,67,240,6,0,17,21,145,9,136,5,216,12,16,136,73, + 216,15,18,136,122,208,8,25,248,244,9,0,16,29,243,0, + 1,9,37,220,18,26,160,4,208,12,36,240,3,1,9,37, + 250,115,8,0,0,0,130,20,31,0,159,18,49,3,99,1, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,74,0,0,0,149,0,30,0,30,0,85,0, + 82,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,32,0,77,18, + 0,0,33,0,91,2,0,0,0,0,0,0,0,0,7,0, + 97,3,0,0,32,0,31,0,103,1,102,0,61,3,31,0, + 102,1,41,2,122,44,68,46,99,108,101,97,114,40,41,32, + 45,62,32,78,111,110,101,46,32,32,82,101,109,111,118,101, + 32,97,108,108,32,105,116,101,109,115,32,102,114,111,109,32, + 68,46,78,41,2,114,221,1,0,0,114,119,1,0,0,114, + 67,0,0,0,115,1,0,0,0,32,114,9,0,0,0,114, + 129,1,0,0,218,20,77,117,116,97,98,108,101,77,97,112, + 112,105,110,103,46,99,108,101,97,114,203,3,0,0,115,42, + 0,0,0,128,0,240,4,4,9,17,216,18,22,216,16,20, + 151,12,145,12,148,14,241,3,0,19,23,248,228,15,23,243, + 0,1,9,17,217,12,16,240,3,1,9,17,250,114,131,1, + 0,0,99,2,0,0,0,2,0,0,0,0,0,0,0,4, + 0,0,0,11,0,0,0,243,4,1,0,0,149,0,91,1, + 0,0,0,0,0,0,0,0,85,1,91,2,0,0,0,0, + 0,0,0,0,53,2,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,97,16,0,0,85,1,19,0,72,9,0,0, + 110,3,88,19,5,0,0,0,88,3,39,0,0,0,77,11, + 0,0,11,0,32,0,79,62,91,5,0,0,0,0,0,0, + 0,0,85,1,83,1,53,2,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,97,30,0,0,85,1,82,7,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 53,0,0,0,0,0,0,0,19,0,72,9,0,0,110,3, + 88,19,5,0,0,0,88,3,39,0,0,0,77,11,0,0, + 11,0,32,0,79,15,85,1,19,0,72,9,0,0,117,2, + 0,0,112,52,88,64,85,3,39,0,0,0,77,11,0,0, + 11,0,32,0,85,2,82,9,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,19,0,72,9,0,0,117,2,0,0,112,52,88,64, + 85,3,39,0,0,0,77,11,0,0,11,0,32,0,103,2, + 41,3,97,37,1,0,0,68,46,117,112,100,97,116,101,40, + 91,69,44,32,93,42,42,70,41,32,45,62,32,78,111,110, + 101,46,32,32,85,112,100,97,116,101,32,68,32,102,114,111, + 109,32,109,97,112,112,105,110,103,47,105,116,101,114,97,98, + 108,101,32,69,32,97,110,100,32,70,46,10,73,102,32,69, + 32,112,114,101,115,101,110,116,32,97,110,100,32,104,97,115, + 32,97,32,46,107,101,121,115,40,41,32,109,101,116,104,111, + 100,44,32,100,111,101,115,58,32,32,32,32,32,102,111,114, + 32,107,32,105,110,32,69,46,107,101,121,115,40,41,58,32, + 68,91,107,93,32,61,32,69,91,107,93,10,73,102,32,69, + 32,112,114,101,115,101,110,116,32,97,110,100,32,108,97,99, + 107,115,32,46,107,101,121,115,40,41,32,109,101,116,104,111, + 100,44,32,100,111,101,115,58,32,32,32,32,32,102,111,114, + 32,40,107,44,32,118,41,32,105,110,32,69,58,32,68,91, + 107,93,32,61,32,118,10,73,110,32,101,105,116,104,101,114, + 32,99,97,115,101,44,32,116,104,105,115,32,105,115,32,102, + 111,108,108,111,119,101,100,32,98,121,58,32,102,111,114,32, + 107,44,32,118,32,105,110,32,70,46,105,116,101,109,115,40, + 41,58,32,68,91,107,93,32,61,32,118,10,114,161,1,0, + 0,78,41,5,114,229,0,0,0,114,27,0,0,0,218,7, + 104,97,115,97,116,116,114,114,161,1,0,0,114,164,1,0, + 0,41,5,114,68,0,0,0,114,37,1,0,0,114,27,1, + 0,0,114,149,1,0,0,114,102,0,0,0,115,5,0,0, + 0,32,32,32,32,32,114,9,0,0,0,218,6,117,112,100, + 97,116,101,218,21,77,117,116,97,98,108,101,77,97,112,112, + 105,110,103,46,117,112,100,97,116,101,211,3,0,0,115,120, + 0,0,0,128,0,244,12,0,12,22,144,101,156,87,215,11, + 37,209,11,37,219,23,28,144,3,216,28,33,153,74,144,4, + 147,9,242,3,0,24,29,228,13,20,144,85,152,70,215,13, + 35,209,13,35,216,23,28,151,122,145,122,150,124,144,3,216, + 28,33,153,74,144,4,147,9,242,3,0,24,36,243,6,0, + 31,36,145,10,144,3,216,28,33,144,83,147,9,241,3,0, + 31,36,224,26,30,159,42,153,42,158,44,137,74,136,67,216, + 24,29,144,19,139,73,242,3,0,27,39,114,8,0,0,0, + 78,99,3,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,54,0,0,0,149,0,30,0,88, + 1,5,0,0,0,36,0,33,0,91,0,0,0,0,0,0, + 0,0,0,7,0,97,8,0,0,32,0,88,32,85,1,39, + 0,0,0,31,0,85,2,36,0,102,0,61,3,31,0,102, + 1,41,1,122,64,68,46,115,101,116,100,101,102,97,117,108, + 116,40,107,91,44,100,93,41,32,45,62,32,68,46,103,101, + 116,40,107,44,100,41,44,32,97,108,115,111,32,115,101,116, + 32,68,91,107,93,61,100,32,105,102,32,107,32,110,111,116, + 32,105,110,32,68,114,147,1,0,0,114,153,1,0,0,115, + 3,0,0,0,32,32,32,114,9,0,0,0,218,10,115,101, + 116,100,101,102,97,117,108,116,218,25,77,117,116,97,98,108, + 101,77,97,112,112,105,110,103,46,115,101,116,100,101,102,97, + 117,108,116,229,3,0,0,115,42,0,0,0,128,0,240,4, + 3,9,32,216,19,23,145,57,208,12,28,248,220,15,23,243, + 0,1,9,32,216,24,31,144,19,138,73,216,15,22,136,14, + 240,5,1,9,32,250,115,12,0,0,0,130,3,6,0,134, + 14,24,3,151,1,24,3,41,1,114,7,0,0,0,114,6, + 0,0,0,41,17,114,78,0,0,0,114,79,0,0,0,114, + 80,0,0,0,114,81,0,0,0,114,4,1,0,0,114,82, + 0,0,0,114,4,0,0,0,114,212,1,0,0,114,215,1, + 0,0,218,6,111,98,106,101,99,116,114,218,1,0,0,114, + 126,1,0,0,114,221,1,0,0,114,129,1,0,0,114,227, + 1,0,0,114,230,1,0,0,114,84,0,0,0,114,7,0, + 0,0,114,8,0,0,0,114,9,0,0,0,114,28,0,0, + 0,114,28,0,0,0,156,3,0,0,115,89,0,0,0,134, + 0,241,2,6,5,8,240,16,0,17,19,128,73,224,5,19, + 241,2,1,5,23,243,3,0,6,20,240,2,1,5,23,240, + 6,0,6,20,241,2,1,5,23,243,3,0,6,20,240,2, + 1,5,23,241,6,0,16,22,139,120,128,72,224,31,39,244, + 0,12,5,25,242,28,10,5,26,242,24,6,5,17,244,16, + 16,5,30,247,36,6,5,23,114,8,0,0,0,114,28,0, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,0,0,0,0,243,82,0,0,0,149,0,92,0, + 114,1,83,0,114,2,83,1,114,3,83,2,114,4,83,3, + 114,5,83,4,114,6,92,7,83,5,26,0,53,0,0,0, + 0,0,0,0,114,8,83,6,26,0,114,9,83,7,26,0, + 114,10,83,8,26,0,114,11,83,12,83,10,26,0,106,1, + 114,12,83,11,26,0,114,13,83,3,114,14,103,9,41,13, + 114,33,0,0,0,105,243,3,0,0,122,126,65,108,108,32, + 116,104,101,32,111,112,101,114,97,116,105,111,110,115,32,111, + 110,32,97,32,114,101,97,100,45,111,110,108,121,32,115,101, + 113,117,101,110,99,101,46,10,10,67,111,110,99,114,101,116, + 101,32,115,117,98,99,108,97,115,115,101,115,32,109,117,115, + 116,32,111,118,101,114,114,105,100,101,32,95,95,110,101,119, + 95,95,32,111,114,32,95,95,105,110,105,116,95,95,44,10, + 95,95,103,101,116,105,116,101,109,95,95,44,32,97,110,100, + 32,95,95,108,101,110,95,95,46,10,114,7,0,0,0,233, + 32,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,243,14,0,0,0,149,0, + 91,0,0,0,0,0,0,0,0,0,101,1,114,6,0,0, + 0,169,1,218,10,73,110,100,101,120,69,114,114,111,114,169, + 2,114,68,0,0,0,218,5,105,110,100,101,120,115,2,0, + 0,0,32,32,114,9,0,0,0,114,0,1,0,0,218,20, + 83,101,113,117,101,110,99,101,46,95,95,103,101,116,105,116, + 101,109,95,95,255,3,0,0,243,8,0,0,0,128,0,228, + 14,24,208,8,24,114,8,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,35,0,0,0,243, + 80,0,0,0,35,0,32,0,149,0,83,1,110,1,30,0, + 30,0,88,1,5,0,0,0,110,2,85,2,118,0,149,1, + 32,0,85,1,83,2,45,13,0,0,110,1,77,15,0,0, + 33,0,91,0,0,0,0,0,0,0,0,0,7,0,97,3, + 0,0,32,0,31,0,103,0,102,0,61,3,31,0,102,1, + 55,3,102,1,41,3,78,114,2,0,0,0,114,37,0,0, + 0,114,236,1,0,0,41,3,114,68,0,0,0,218,1,105, + 114,200,1,0,0,115,3,0,0,0,32,32,32,114,9,0, + 0,0,114,165,0,0,0,218,17,83,101,113,117,101,110,99, + 101,46,95,95,105,116,101,114,95,95,3,4,0,0,115,63, + 0,0,0,233,0,128,0,216,12,13,136,1,240,2,6,9, + 19,216,18,22,216,20,24,145,71,144,1,216,22,23,146,7, + 216,16,17,144,81,145,6,144,1,241,7,0,19,23,248,244, + 8,0,16,26,243,0,1,9,19,217,12,18,240,3,1,9, + 19,252,115,24,0,0,0,130,3,38,1,134,16,22,0,150, + 10,35,3,160,2,38,1,162,1,35,3,163,3,38,1,99, + 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,44,0,0,0,149,0,85,0,19,0,72, + 14,0,0,110,2,88,33,76,0,100,7,0,0,88,33,58, + 88,0,0,100,2,0,0,77,14,0,0,32,0,103,1,11, + 0,32,0,103,2,114,158,1,0,0,114,7,0,0,0,41, + 3,114,68,0,0,0,114,102,0,0,0,114,200,1,0,0, + 115,3,0,0,0,32,32,32,114,9,0,0,0,114,205,0, + 0,0,218,21,83,101,113,117,101,110,99,101,46,95,95,99, + 111,110,116,97,105,110,115,95,95,13,4,0,0,115,29,0, + 0,0,128,0,219,17,21,136,65,216,15,16,138,122,152,81, + 157,90,217,23,27,241,5,0,18,22,240,6,0,16,21,114, + 8,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,7,0,0,0,35,0,0,0,243,96,0,0,0,35,0, + 32,0,149,0,91,1,0,0,0,0,0,0,0,0,91,3, + 0,0,0,0,0,0,0,0,91,5,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,19,0,72,9, + 0,0,110,1,88,1,5,0,0,0,118,0,149,5,32,0, + 77,11,0,0,11,0,32,0,103,0,55,3,102,1,114,6, + 0,0,0,41,3,218,8,114,101,118,101,114,115,101,100,218, + 5,114,97,110,103,101,114,231,0,0,0,41,2,114,68,0, + 0,0,114,243,1,0,0,115,2,0,0,0,32,32,114,9, + 0,0,0,114,180,0,0,0,218,21,83,101,113,117,101,110, + 99,101,46,95,95,114,101,118,101,114,115,101,100,95,95,19, + 4,0,0,115,36,0,0,0,233,0,128,0,220,17,25,156, + 37,164,3,160,68,163,9,211,26,42,214,17,43,136,65,216, + 18,22,145,39,140,77,242,3,0,18,44,249,115,4,0,0, + 0,130,44,46,1,78,99,4,0,0,0,0,0,0,0,0, + 0,0,0,5,0,0,0,3,0,0,0,243,254,0,0,0, + 149,0,85,2,98,30,0,0,85,2,83,1,58,18,0,0, + 97,24,0,0,91,1,0,0,0,0,0,0,0,0,91,3, + 0,0,0,0,0,0,0,0,85,0,53,1,0,0,0,0, + 0,0,85,2,45,0,0,0,83,1,53,2,0,0,0,0, + 0,0,110,2,85,3,98,20,0,0,85,3,83,1,58,18, + 0,0,97,14,0,0,85,3,91,3,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,45,13,0,0, + 110,3,85,2,110,4,85,3,98,5,0,0,88,67,58,18, + 0,0,97,33,0,0,30,0,88,4,5,0,0,0,110,5, + 88,81,76,0,100,5,0,0,88,81,58,88,0,0,97,2, + 0,0,85,4,36,0,85,4,83,2,45,13,0,0,110,4, + 85,3,99,2,0,0,77,26,0,0,88,67,58,18,0,0, + 97,2,0,0,77,33,0,0,91,6,0,0,0,0,0,0, + 0,0,101,1,33,0,91,4,0,0,0,0,0,0,0,0, + 7,0,97,8,0,0,32,0,31,0,91,6,0,0,0,0, + 0,0,0,0,101,1,102,0,61,3,31,0,102,1,41,3, + 122,189,83,46,105,110,100,101,120,40,118,97,108,117,101,44, + 32,91,115,116,97,114,116,44,32,91,115,116,111,112,93,93, + 41,32,45,62,32,105,110,116,101,103,101,114,32,45,45,32, + 114,101,116,117,114,110,32,102,105,114,115,116,32,105,110,100, + 101,120,32,111,102,32,118,97,108,117,101,46,10,82,97,105, + 115,101,115,32,86,97,108,117,101,69,114,114,111,114,32,105, + 102,32,116,104,101,32,118,97,108,117,101,32,105,115,32,110, + 111,116,32,112,114,101,115,101,110,116,46,10,10,83,117,112, + 112,111,114,116,105,110,103,32,115,116,97,114,116,32,97,110, + 100,32,115,116,111,112,32,97,114,103,117,109,101,110,116,115, + 32,105,115,32,111,112,116,105,111,110,97,108,44,32,98,117, + 116,10,114,101,99,111,109,109,101,110,100,101,100,46,10,114, 2,0,0,0,114,37,0,0,0,41,4,218,3,109,97,120, - 114,179,0,0,0,114,129,1,0,0,218,10,86,97,108,117, - 101,69,114,114,111,114,41,6,114,61,0,0,0,114,87,0, + 114,231,0,0,0,114,237,1,0,0,218,10,86,97,108,117, + 101,69,114,114,111,114,41,6,114,68,0,0,0,114,102,0, 0,0,218,5,115,116,97,114,116,218,4,115,116,111,112,114, - 134,1,0,0,114,103,1,0,0,115,6,0,0,0,32,32, - 32,32,32,32,114,9,0,0,0,114,131,1,0,0,122,14, - 83,101,113,117,101,110,99,101,46,105,110,100,101,120,18,4, - 0,0,115,171,0,0,0,128,0,240,14,0,12,17,208,11, - 28,160,21,168,17,162,25,220,20,23,156,3,152,68,155,9, - 160,69,209,24,41,168,49,211,20,45,136,69,216,11,15,208, - 11,27,160,4,160,113,162,8,216,12,16,148,67,152,4,147, - 73,209,12,29,136,68,224,12,17,136,1,216,14,18,136,108, - 152,97,160,36,154,104,240,2,3,13,22,216,20,24,152,17, - 145,71,144,1,240,6,0,16,17,144,69,137,122,152,81,160, - 37,154,90,216,23,24,144,8,216,12,13,144,17,137,70,136, - 65,240,15,0,15,19,137,108,152,97,160,36,155,104,244,16, - 0,15,25,208,8,24,248,244,11,0,20,30,242,0,1,13, - 22,216,16,21,244,8,0,15,25,208,8,24,240,11,1,13, - 22,250,115,17,0,0,0,191,5,65,35,0,193,35,9,65, - 52,3,193,51,1,65,52,3,99,2,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,44,0, - 0,0,135,1,151,0,116,1,0,0,0,0,0,0,0,0, - 136,1,102,1,100,1,132,8,124,0,68,0,171,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,83,0,41,2, - 122,66,83,46,99,111,117,110,116,40,118,97,108,117,101,41, - 32,45,62,32,105,110,116,101,103,101,114,32,45,45,32,114, - 101,116,117,114,110,32,110,117,109,98,101,114,32,111,102,32, - 111,99,99,117,114,114,101,110,99,101,115,32,111,102,32,118, - 97,108,117,101,99,1,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,51,0,0,0,243,54,0,0,0,149,1, - 75,0,1,0,151,0,124,0,93,16,0,0,125,1,124,1, - 137,2,117,0,115,6,124,1,137,2,107,40,0,0,115,1, - 140,13,100,0,150,1,151,1,1,0,140,18,4,0,121,1, - 173,3,119,1,41,2,114,37,0,0,0,78,114,7,0,0, - 0,41,3,114,212,0,0,0,114,103,1,0,0,114,87,0, - 0,0,115,3,0,0,0,32,32,128,114,9,0,0,0,114, - 215,0,0,0,122,33,83,101,113,117,101,110,99,101,46,99, - 111,117,110,116,46,60,108,111,99,97,108,115,62,46,60,103, - 101,110,101,120,112,114,62,43,4,0,0,115,30,0,0,0, - 248,232,0,248,128,0,208,18,63,153,100,152,17,160,97,168, - 53,161,106,176,65,184,21,179,74,148,49,153,100,249,115,8, - 0,0,0,131,14,25,1,146,7,25,1,41,1,218,3,115, - 117,109,114,86,0,0,0,115,2,0,0,0,32,96,114,9, - 0,0,0,218,5,99,111,117,110,116,122,14,83,101,113,117, - 101,110,99,101,46,99,111,117,110,116,41,4,0,0,115,20, - 0,0,0,248,128,0,228,15,18,211,18,63,153,100,211,18, - 63,211,15,63,208,8,63,114,8,0,0,0,41,2,114,2, - 0,0,0,78,41,13,114,69,0,0,0,114,70,0,0,0, - 114,71,0,0,0,114,204,0,0,0,114,72,0,0,0,114, - 82,1,0,0,114,4,0,0,0,114,201,0,0,0,114,132, - 0,0,0,114,158,0,0,0,114,142,0,0,0,114,131,1, - 0,0,114,147,1,0,0,114,7,0,0,0,114,8,0,0, - 0,114,9,0,0,0,114,33,0,0,0,114,33,0,0,0, - 238,3,0,0,115,65,0,0,0,132,0,241,2,4,5,8, - 240,12,0,17,19,128,73,240,6,0,23,29,128,79,224,5, - 19,241,2,1,5,25,243,3,0,6,20,240,2,1,5,25, - 242,6,8,5,19,242,20,4,5,21,242,12,2,5,26,243, - 8,21,5,25,243,46,2,5,64,1,114,8,0,0,0,114, - 33,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,0,0,0,0,243,40,0,0,0,135,0, - 151,0,101,0,90,1,100,0,90,2,136,0,102,1,100,1, - 132,8,90,3,136,0,102,1,100,2,132,8,90,4,136,0, - 120,1,90,5,83,0,41,3,218,24,95,68,101,112,114,101, - 99,97,116,101,66,121,116,101,83,116,114,105,110,103,77,101, - 116,97,99,4,0,0,0,0,0,0,0,0,0,0,0,6, - 0,0,0,11,0,0,0,243,98,0,0,0,149,1,151,0, - 124,1,100,1,107,55,0,0,114,23,100,2,100,0,108,0, - 125,5,124,5,106,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,3,100,4,172,5,171,2, - 0,0,0,0,0,0,1,0,116,5,0,0,0,0,0,0, - 0,0,137,6,124,0,141,12,0,0,124,0,124,1,124,2, - 124,3,102,4,105,0,124,4,164,1,142,1,83,0,41,6, - 78,114,35,0,0,0,114,2,0,0,0,250,26,99,111,108, - 108,101,99,116,105,111,110,115,46,97,98,99,46,66,121,116, - 101,83,116,114,105,110,103,169,2,233,3,0,0,0,233,14, - 0,0,0,169,1,114,44,1,0,0,41,4,218,8,119,97, - 114,110,105,110,103,115,218,11,95,100,101,112,114,101,99,97, - 116,101,100,114,183,0,0,0,114,184,0,0,0,41,7,114, - 66,0,0,0,114,213,0,0,0,218,5,98,97,115,101,115, - 218,9,110,97,109,101,115,112,97,99,101,218,6,107,119,97, - 114,103,115,114,156,1,0,0,114,189,0,0,0,115,7,0, - 0,0,32,32,32,32,32,32,128,114,9,0,0,0,114,184, - 0,0,0,122,32,95,68,101,112,114,101,99,97,116,101,66, - 121,116,101,83,116,114,105,110,103,77,101,116,97,46,95,95, - 110,101,119,95,95,51,4,0,0,115,67,0,0,0,248,128, - 0,216,11,15,144,60,210,11,31,219,12,27,224,12,20,215, - 12,32,209,12,32,216,16,44,216,23,30,240,5,0,13,33, - 244,0,3,13,14,244,8,0,16,21,137,119,137,127,152,115, - 160,68,168,37,176,25,209,15,69,184,102,209,15,69,208,8, - 69,114,8,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,80,0,0,0, - 149,1,151,0,100,1,100,0,108,0,125,2,124,2,106,3, + 243,1,0,0,114,200,1,0,0,115,6,0,0,0,32,32, + 32,32,32,32,114,9,0,0,0,114,239,1,0,0,218,14, + 83,101,113,117,101,110,99,101,46,105,110,100,101,120,23,4, + 0,0,115,161,0,0,0,128,0,240,14,0,12,17,209,11, + 28,160,21,168,17,163,25,220,20,23,156,3,152,68,155,9, + 160,69,209,24,41,168,49,211,20,45,136,69,216,11,15,209, + 11,27,160,4,160,113,163,8,216,12,16,148,67,152,4,147, + 73,209,12,29,136,68,224,12,17,136,1,216,14,18,137,108, + 152,97,155,104,240,2,3,13,22,216,20,24,145,71,144,1, + 240,6,0,16,17,138,122,152,81,155,90,216,23,24,144,8, + 216,12,13,144,17,137,70,136,65,240,15,0,15,19,139,108, + 152,97,157,104,244,16,0,15,25,208,8,24,248,244,11,0, + 20,30,243,0,1,13,22,216,16,21,244,8,0,15,25,208, + 8,24,240,11,1,13,22,250,115,18,0,0,0,193,4,4, + 65,42,0,193,42,10,65,60,3,193,59,1,65,60,3,99, + 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,243,46,0,0,0,94,1,149,0,91,1,0, + 0,0,0,0,0,0,0,85,1,52,1,83,1,26,0,106, + 8,85,0,19,0,53,0,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,36,0,41,2,122,66,83,46,99,111,117, + 110,116,40,118,97,108,117,101,41,32,45,62,32,105,110,116, + 101,103,101,114,32,45,45,32,114,101,116,117,114,110,32,110, + 117,109,98,101,114,32,111,102,32,111,99,99,117,114,114,101, + 110,99,101,115,32,111,102,32,118,97,108,117,101,99,1,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,51,0, + 0,0,243,64,0,0,0,62,1,35,0,32,0,149,0,85, + 0,19,0,72,19,0,0,111,17,84,2,76,0,100,8,0, + 0,85,1,84,2,58,88,0,0,100,2,0,0,77,15,0, + 0,83,0,118,0,149,5,32,0,77,21,0,0,11,0,32, + 0,103,1,55,3,102,1,41,2,114,37,0,0,0,78,114, + 7,0,0,0,41,3,114,12,1,0,0,114,200,1,0,0, + 114,102,0,0,0,115,3,0,0,0,32,32,128,114,9,0, + 0,0,114,15,1,0,0,218,33,83,101,113,117,101,110,99, + 101,46,99,111,117,110,116,46,60,108,111,99,97,108,115,62, + 46,60,103,101,110,101,120,112,114,62,48,4,0,0,115,29, + 0,0,0,248,233,0,128,0,208,18,63,154,100,152,17,168, + 53,162,106,176,65,184,21,177,74,151,49,145,49,154,100,249, + 115,8,0,0,0,131,14,30,1,149,9,30,1,41,1,218, + 3,115,117,109,114,101,0,0,0,115,2,0,0,0,32,96, + 114,9,0,0,0,218,5,99,111,117,110,116,218,14,83,101, + 113,117,101,110,99,101,46,99,111,117,110,116,46,4,0,0, + 115,20,0,0,0,248,128,0,228,15,18,212,18,63,153,100, + 211,18,63,211,15,63,208,8,63,114,8,0,0,0,41,2, + 114,2,0,0,0,78,41,15,114,78,0,0,0,114,79,0, + 0,0,114,80,0,0,0,114,81,0,0,0,114,4,1,0, + 0,114,82,0,0,0,114,172,1,0,0,114,4,0,0,0, + 114,0,1,0,0,114,165,0,0,0,114,205,0,0,0,114, + 180,0,0,0,114,239,1,0,0,114,5,2,0,0,114,84, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,9,0, + 0,0,114,33,0,0,0,114,33,0,0,0,243,3,0,0, + 115,65,0,0,0,134,0,241,2,4,5,8,240,12,0,17, + 19,128,73,240,6,0,23,29,128,79,224,5,19,241,2,1, + 5,25,243,3,0,6,20,240,2,1,5,25,242,6,8,5, + 19,242,20,4,5,21,242,12,2,5,26,244,8,21,5,25, + 245,46,2,5,64,1,114,8,0,0,0,114,33,0,0,0, + 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,0,0,0,0,243,52,0,0,0,94,0,149,0,92,0, + 114,1,83,0,114,2,83,1,114,3,85,0,52,1,83,2, + 26,0,106,8,114,4,85,0,52,1,83,3,26,0,106,8, + 114,5,83,4,114,6,85,0,61,1,114,7,36,0,41,5, + 218,24,95,68,101,112,114,101,99,97,116,101,66,121,116,101, + 83,116,114,105,110,103,77,101,116,97,105,55,4,0,0,99, + 4,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, + 11,0,0,0,243,92,0,0,0,62,1,149,0,85,1,83, + 1,58,119,0,0,97,20,0,0,83,2,83,0,75,0,110, + 5,85,5,82,3,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,83,3,83,4,83,5,57,2,32, + 0,91,4,0,0,0,0,0,0,0,0,84,6,85,0,93, + 12,0,0,34,0,88,1,88,35,52,4,48,0,85,4,68, + 1,54,1,36,0,41,6,78,114,35,0,0,0,114,2,0, + 0,0,250,26,99,111,108,108,101,99,116,105,111,110,115,46, + 97,98,99,46,66,121,116,101,83,116,114,105,110,103,169,2, + 233,3,0,0,0,233,17,0,0,0,169,1,114,120,1,0, + 0,41,4,218,8,119,97,114,110,105,110,103,115,218,11,95, + 100,101,112,114,101,99,97,116,101,100,114,235,0,0,0,114, + 236,0,0,0,41,7,114,74,0,0,0,114,13,1,0,0, + 218,5,98,97,115,101,115,218,9,110,97,109,101,115,112,97, + 99,101,218,6,107,119,97,114,103,115,114,15,2,0,0,114, + 241,0,0,0,115,7,0,0,0,32,32,32,32,32,32,128, + 114,9,0,0,0,114,236,0,0,0,218,32,95,68,101,112, + 114,101,99,97,116,101,66,121,116,101,83,116,114,105,110,103, + 77,101,116,97,46,95,95,110,101,119,95,95,56,4,0,0, + 115,63,0,0,0,248,128,0,216,11,15,144,60,211,11,31, + 219,12,27,224,12,20,215,12,32,209,12,32,216,16,44,216, + 23,30,240,5,0,13,33,241,0,3,13,14,244,8,0,16, + 21,137,119,138,127,152,115,168,37,209,15,69,184,102,209,15, + 69,208,8,69,114,8,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,74, + 0,0,0,62,1,149,0,83,1,83,0,75,0,110,2,85, + 2,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,2,83,3,83,4,57,2,32,0,91, + 4,0,0,0,0,0,0,0,0,84,3,85,0,93,13,0, + 0,85,1,53,1,0,0,0,0,0,0,36,0,41,5,78, + 114,2,0,0,0,114,10,2,0,0,114,11,2,0,0,114, + 14,2,0,0,41,4,114,15,2,0,0,114,16,2,0,0, + 114,235,0,0,0,218,17,95,95,105,110,115,116,97,110,99, + 101,99,104,101,99,107,95,95,41,4,114,74,0,0,0,218, + 8,105,110,115,116,97,110,99,101,114,15,2,0,0,114,241, + 0,0,0,115,4,0,0,0,32,32,32,128,114,9,0,0, + 0,114,22,2,0,0,218,42,95,68,101,112,114,101,99,97, + 116,101,66,121,116,101,83,116,114,105,110,103,77,101,116,97, + 46,95,95,105,110,115,116,97,110,99,101,99,104,101,99,107, + 95,95,66,4,0,0,115,49,0,0,0,248,128,0,219,8, + 23,224,8,16,215,8,28,209,8,28,216,12,40,216,19,26, + 240,5,0,9,29,241,0,3,9,10,244,8,0,16,21,137, + 119,209,15,40,168,24,211,15,50,208,8,50,114,8,0,0, + 0,114,7,0,0,0,41,8,114,78,0,0,0,114,79,0, + 0,0,114,80,0,0,0,114,81,0,0,0,114,236,0,0, + 0,114,22,2,0,0,114,84,0,0,0,114,5,1,0,0, + 114,6,1,0,0,115,1,0,0,0,64,114,9,0,0,0, + 114,8,2,0,0,114,8,2,0,0,55,4,0,0,115,19, + 0,0,0,248,134,0,245,2,8,5,70,1,247,20,7,5, + 51,243,0,7,5,51,114,8,0,0,0,114,8,2,0,0, + 99,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,0,0,0,0,243,28,0,0,0,149,0,92,0,114,1, + 83,0,114,2,83,1,114,3,83,2,114,4,83,3,114,5, + 83,3,114,6,103,4,41,5,114,35,0,0,0,105,75,4, + 0,0,97,143,1,0,0,68,101,112,114,101,99,97,116,101, + 100,32,65,66,67,32,115,101,114,118,105,110,103,32,97,115, + 32,97,32,99,111,109,109,111,110,32,115,117,112,101,114,116, + 121,112,101,32,111,102,32,96,96,98,121,116,101,115,96,96, + 32,97,110,100,32,96,96,98,121,116,101,97,114,114,97,121, + 96,96,46,10,10,84,104,105,115,32,65,66,67,32,105,115, + 32,115,99,104,101,100,117,108,101,100,32,102,111,114,32,114, + 101,109,111,118,97,108,32,105,110,32,80,121,116,104,111,110, + 32,51,46,49,55,46,10,85,115,101,32,96,96,105,115,105, + 110,115,116,97,110,99,101,40,111,98,106,44,32,99,111,108, + 108,101,99,116,105,111,110,115,46,97,98,99,46,66,117,102, + 102,101,114,41,96,96,32,116,111,32,116,101,115,116,32,105, + 102,32,96,96,111,98,106,96,96,10,105,109,112,108,101,109, + 101,110,116,115,32,116,104,101,32,98,117,102,102,101,114,32, + 112,114,111,116,111,99,111,108,32,97,116,32,114,117,110,116, + 105,109,101,46,32,70,111,114,32,117,115,101,32,105,110,32, + 116,121,112,101,32,97,110,110,111,116,97,116,105,111,110,115, + 44,10,101,105,116,104,101,114,32,117,115,101,32,96,96,66, + 117,102,102,101,114,96,96,32,111,114,32,97,32,117,110,105, + 111,110,32,116,104,97,116,32,101,120,112,108,105,99,105,116, + 108,121,32,115,112,101,99,105,102,105,101,115,32,116,104,101, + 32,116,121,112,101,115,32,121,111,117,114,10,99,111,100,101, + 32,115,117,112,112,111,114,116,115,32,40,101,46,103,46,44, + 32,96,96,98,121,116,101,115,32,124,32,98,121,116,101,97, + 114,114,97,121,32,124,32,109,101,109,111,114,121,118,105,101, + 119,96,96,41,46,10,114,7,0,0,0,78,41,7,114,78, + 0,0,0,114,79,0,0,0,114,80,0,0,0,114,81,0, + 0,0,114,4,1,0,0,114,82,0,0,0,114,84,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,9,0,0,0, + 114,35,0,0,0,114,35,0,0,0,75,4,0,0,115,14, + 0,0,0,134,0,241,2,7,5,8,240,18,0,17,19,131, + 73,114,8,0,0,0,114,35,0,0,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, + 243,122,0,0,0,149,0,92,0,114,1,83,0,114,2,83, + 1,114,3,83,2,114,4,83,3,114,5,92,6,83,4,26, + 0,53,0,0,0,0,0,0,0,114,7,92,6,83,5,26, + 0,53,0,0,0,0,0,0,0,114,8,92,6,83,6,26, + 0,53,0,0,0,0,0,0,0,114,9,83,7,26,0,114, + 10,83,8,26,0,114,11,83,9,26,0,114,12,83,10,26, + 0,114,13,83,15,83,11,26,0,106,1,114,14,83,12,26, + 0,114,15,83,13,26,0,114,16,83,3,114,17,103,14,41, + 16,114,34,0,0,0,105,91,4,0,0,122,162,65,108,108, + 32,116,104,101,32,111,112,101,114,97,116,105,111,110,115,32, + 111,110,32,97,32,114,101,97,100,45,119,114,105,116,101,32, + 115,101,113,117,101,110,99,101,46,10,10,67,111,110,99,114, + 101,116,101,32,115,117,98,99,108,97,115,115,101,115,32,109, + 117,115,116,32,112,114,111,118,105,100,101,32,95,95,110,101, + 119,95,95,32,111,114,32,95,95,105,110,105,116,95,95,44, + 10,95,95,103,101,116,105,116,101,109,95,95,44,32,95,95, + 115,101,116,105,116,101,109,95,95,44,32,95,95,100,101,108, + 105,116,101,109,95,95,44,32,95,95,108,101,110,95,95,44, + 32,97,110,100,32,105,110,115,101,114,116,40,41,46,10,114, + 7,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,243,14,0,0,0,149,0, + 91,0,0,0,0,0,0,0,0,0,101,1,114,6,0,0, + 0,114,236,1,0,0,169,3,114,68,0,0,0,114,239,1, + 0,0,114,102,0,0,0,115,3,0,0,0,32,32,32,114, + 9,0,0,0,114,212,1,0,0,218,27,77,117,116,97,98, + 108,101,83,101,113,117,101,110,99,101,46,95,95,115,101,116, + 105,116,101,109,95,95,100,4,0,0,114,241,1,0,0,114, + 8,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,243,14,0,0,0,149,0, + 91,0,0,0,0,0,0,0,0,0,101,1,114,6,0,0, + 0,114,236,1,0,0,114,238,1,0,0,115,2,0,0,0, + 32,32,114,9,0,0,0,114,215,1,0,0,218,27,77,117, + 116,97,98,108,101,83,101,113,117,101,110,99,101,46,95,95, + 100,101,108,105,116,101,109,95,95,104,4,0,0,114,241,1, + 0,0,114,8,0,0,0,99,3,0,0,0,0,0,0,0, + 0,0,0,0,1,0,0,0,3,0,0,0,243,14,0,0, + 0,149,0,91,0,0,0,0,0,0,0,0,0,101,1,41, + 1,122,51,83,46,105,110,115,101,114,116,40,105,110,100,101, + 120,44,32,118,97,108,117,101,41,32,45,45,32,105,110,115, + 101,114,116,32,118,97,108,117,101,32,98,101,102,111,114,101, + 32,105,110,100,101,120,114,236,1,0,0,114,28,2,0,0, + 115,3,0,0,0,32,32,32,114,9,0,0,0,218,6,105, + 110,115,101,114,116,218,22,77,117,116,97,98,108,101,83,101, + 113,117,101,110,99,101,46,105,110,115,101,114,116,108,4,0, + 0,115,10,0,0,0,128,0,244,6,0,15,25,208,8,24, + 114,8,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,5,0,0,0,3,0,0,0,243,58,0,0,0,149, + 0,85,0,82,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,91,3,0,0,0,0,0,0,0, + 0,85,0,53,1,0,0,0,0,0,0,85,1,53,2,0, + 0,0,0,0,0,32,0,103,1,41,2,122,58,83,46,97, + 112,112,101,110,100,40,118,97,108,117,101,41,32,45,45,32, + 97,112,112,101,110,100,32,118,97,108,117,101,32,116,111,32, + 116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,115, + 101,113,117,101,110,99,101,78,41,2,114,33,2,0,0,114, + 231,0,0,0,114,101,0,0,0,115,2,0,0,0,32,32, + 114,9,0,0,0,218,6,97,112,112,101,110,100,218,22,77, + 117,116,97,98,108,101,83,101,113,117,101,110,99,101,46,97, + 112,112,101,110,100,113,4,0,0,115,20,0,0,0,128,0, + 224,8,12,143,11,137,11,148,67,152,4,147,73,152,117,213, + 8,37,114,8,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,74,0,0, + 0,149,0,30,0,30,0,85,0,82,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,32,0,77,18,0,0,33,0,91,2,0, + 0,0,0,0,0,0,0,7,0,97,3,0,0,32,0,31, + 0,103,1,102,0,61,3,31,0,102,1,41,2,122,44,83, + 46,99,108,101,97,114,40,41,32,45,62,32,78,111,110,101, + 32,45,45,32,114,101,109,111,118,101,32,97,108,108,32,105, + 116,101,109,115,32,102,114,111,109,32,83,78,41,2,114,126, + 1,0,0,114,237,1,0,0,114,67,0,0,0,115,1,0, + 0,0,32,114,9,0,0,0,114,129,1,0,0,218,21,77, + 117,116,97,98,108,101,83,101,113,117,101,110,99,101,46,99, + 108,101,97,114,117,4,0,0,115,42,0,0,0,128,0,240, + 4,4,9,17,216,18,22,216,16,20,151,8,145,8,148,10, + 241,3,0,19,23,248,228,15,25,243,0,1,9,17,217,12, + 16,240,3,1,9,17,250,114,131,1,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, + 0,243,118,0,0,0,149,0,91,1,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,110,1,91,3, + 0,0,0,0,0,0,0,0,85,1,83,1,45,2,0,0, + 53,1,0,0,0,0,0,0,19,0,72,28,0,0,110,2, + 88,1,85,2,45,10,0,0,83,2,45,10,0,0,5,0, + 0,0,88,2,5,0,0,0,115,2,88,2,39,0,0,0, + 88,1,85,2,45,10,0,0,83,2,45,10,0,0,39,0, + 0,0,77,30,0,0,11,0,32,0,103,3,41,4,122,33, + 83,46,114,101,118,101,114,115,101,40,41,32,45,45,32,114, + 101,118,101,114,115,101,32,42,73,78,32,80,76,65,67,69, + 42,114,228,0,0,0,114,37,0,0,0,78,41,2,114,231, + 0,0,0,114,249,1,0,0,41,3,114,68,0,0,0,114, + 102,1,0,0,114,243,1,0,0,115,3,0,0,0,32,32, + 32,114,9,0,0,0,218,7,114,101,118,101,114,115,101,218, + 23,77,117,116,97,98,108,101,83,101,113,117,101,110,99,101, + 46,114,101,118,101,114,115,101,125,4,0,0,115,65,0,0, + 0,128,0,228,12,15,144,4,139,73,136,1,220,17,22,144, + 113,152,33,145,116,150,27,136,65,216,35,39,168,33,169,3, + 168,65,169,5,161,59,176,4,177,7,208,12,32,136,68,137, + 71,144,84,152,65,153,35,152,97,153,37,147,91,242,3,0, + 18,29,114,8,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,86,0,0, + 0,149,0,88,16,76,0,97,11,0,0,91,1,0,0,0, + 0,0,0,0,0,85,1,53,1,0,0,0,0,0,0,110, + 1,85,1,19,0,72,20,0,0,110,2,85,0,82,3,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,2,100,3,172,4,171,2,0,0,0,0,0,0, - 1,0,116,4,0,0,0,0,0,0,0,0,137,3,124,0, - 141,13,0,0,124,1,171,1,0,0,0,0,0,0,83,0, - 41,5,78,114,2,0,0,0,114,151,1,0,0,114,152,1, - 0,0,114,155,1,0,0,41,4,114,156,1,0,0,114,157, - 1,0,0,114,183,0,0,0,218,17,95,95,105,110,115,116, - 97,110,99,101,99,104,101,99,107,95,95,41,4,114,66,0, - 0,0,218,8,105,110,115,116,97,110,99,101,114,156,1,0, - 0,114,189,0,0,0,115,4,0,0,0,32,32,32,128,114, - 9,0,0,0,114,162,1,0,0,122,42,95,68,101,112,114, - 101,99,97,116,101,66,121,116,101,83,116,114,105,110,103,77, - 101,116,97,46,95,95,105,110,115,116,97,110,99,101,99,104, - 101,99,107,95,95,61,4,0,0,115,49,0,0,0,248,128, - 0,219,8,23,224,8,16,215,8,28,209,8,28,216,12,40, - 216,19,26,240,5,0,9,29,244,0,3,9,10,244,8,0, - 16,21,137,119,209,15,40,168,24,211,15,50,208,8,50,114, - 8,0,0,0,41,6,114,69,0,0,0,114,70,0,0,0, - 114,71,0,0,0,114,184,0,0,0,114,162,1,0,0,114, - 205,0,0,0,114,206,0,0,0,115,1,0,0,0,64,114, - 9,0,0,0,114,149,1,0,0,114,149,1,0,0,50,4, - 0,0,115,19,0,0,0,248,132,0,244,2,8,5,70,1, - 247,20,7,5,51,240,0,7,5,51,114,8,0,0,0,114, - 149,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,1,0,0,0,0,0,0,0,243,20,0,0,0,151,0, - 101,0,90,1,100,0,90,2,100,1,90,3,100,2,90,4, - 121,3,41,4,114,35,0,0,0,122,77,84,104,105,115,32, - 117,110,105,102,105,101,115,32,98,121,116,101,115,32,97,110, - 100,32,98,121,116,101,97,114,114,97,121,46,10,10,32,32, - 32,32,88,88,88,32,83,104,111,117,108,100,32,97,100,100, - 32,97,108,108,32,116,104,101,105,114,32,109,101,116,104,111, - 100,115,46,10,32,32,32,32,114,7,0,0,0,78,41,5, - 114,69,0,0,0,114,70,0,0,0,114,71,0,0,0,114, - 204,0,0,0,114,72,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,9,0,0,0,114,35,0,0,0,114,35,0, - 0,0,70,4,0,0,115,14,0,0,0,132,0,241,2,3, - 5,8,240,10,0,17,19,129,73,114,8,0,0,0,114,35, - 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,0,0,0,0,243,112,0,0,0,151,0,101, - 0,90,1,100,0,90,2,100,1,90,3,100,2,90,4,101, - 5,100,3,132,0,171,0,0,0,0,0,0,0,90,6,101, - 5,100,4,132,0,171,0,0,0,0,0,0,0,90,7,101, - 5,100,5,132,0,171,0,0,0,0,0,0,0,90,8,100, - 6,132,0,90,9,100,7,132,0,90,10,100,8,132,0,90, - 11,100,9,132,0,90,12,100,14,100,10,132,1,90,13,100, - 11,132,0,90,14,100,12,132,0,90,15,121,13,41,15,114, - 34,0,0,0,122,174,65,108,108,32,116,104,101,32,111,112, - 101,114,97,116,105,111,110,115,32,111,110,32,97,32,114,101, - 97,100,45,119,114,105,116,101,32,115,101,113,117,101,110,99, - 101,46,10,10,32,32,32,32,67,111,110,99,114,101,116,101, - 32,115,117,98,99,108,97,115,115,101,115,32,109,117,115,116, - 32,112,114,111,118,105,100,101,32,95,95,110,101,119,95,95, - 32,111,114,32,95,95,105,110,105,116,95,95,44,10,32,32, - 32,32,95,95,103,101,116,105,116,101,109,95,95,44,32,95, - 95,115,101,116,105,116,101,109,95,95,44,32,95,95,100,101, - 108,105,116,101,109,95,95,44,32,95,95,108,101,110,95,95, - 44,32,97,110,100,32,105,110,115,101,114,116,40,41,46,10, - 32,32,32,32,114,7,0,0,0,99,3,0,0,0,0,0, - 0,0,0,0,0,0,1,0,0,0,3,0,0,0,243,14, - 0,0,0,151,0,116,0,0,0,0,0,0,0,0,0,130, - 1,114,6,0,0,0,114,128,1,0,0,169,3,114,61,0, - 0,0,114,131,1,0,0,114,87,0,0,0,115,3,0,0, - 0,32,32,32,114,9,0,0,0,114,111,1,0,0,122,27, - 77,117,116,97,98,108,101,83,101,113,117,101,110,99,101,46, - 95,95,115,101,116,105,116,101,109,95,95,91,4,0,0,114, - 132,1,0,0,114,8,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,1,0,0,0,3,0,0,0,243,14, - 0,0,0,151,0,116,0,0,0,0,0,0,0,0,0,130, - 1,114,6,0,0,0,114,128,1,0,0,114,130,1,0,0, - 115,2,0,0,0,32,32,114,9,0,0,0,114,113,1,0, - 0,122,27,77,117,116,97,98,108,101,83,101,113,117,101,110, - 99,101,46,95,95,100,101,108,105,116,101,109,95,95,95,4, - 0,0,114,132,1,0,0,114,8,0,0,0,99,3,0,0, - 0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0, - 0,243,14,0,0,0,151,0,116,0,0,0,0,0,0,0, - 0,0,130,1,41,1,122,51,83,46,105,110,115,101,114,116, - 40,105,110,100,101,120,44,32,118,97,108,117,101,41,32,45, - 45,32,105,110,115,101,114,116,32,118,97,108,117,101,32,98, - 101,102,111,114,101,32,105,110,100,101,120,114,128,1,0,0, - 114,167,1,0,0,115,3,0,0,0,32,32,32,114,9,0, - 0,0,218,6,105,110,115,101,114,116,122,22,77,117,116,97, - 98,108,101,83,101,113,117,101,110,99,101,46,105,110,115,101, - 114,116,99,4,0,0,115,10,0,0,0,128,0,244,6,0, - 15,25,208,8,24,114,8,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,243, - 58,0,0,0,151,0,124,0,106,1,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,3,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 124,1,171,2,0,0,0,0,0,0,1,0,121,1,41,2, - 122,58,83,46,97,112,112,101,110,100,40,118,97,108,117,101, - 41,32,45,45,32,97,112,112,101,110,100,32,118,97,108,117, - 101,32,116,111,32,116,104,101,32,101,110,100,32,111,102,32, - 116,104,101,32,115,101,113,117,101,110,99,101,78,41,2,114, - 170,1,0,0,114,179,0,0,0,114,86,0,0,0,115,2, - 0,0,0,32,32,114,9,0,0,0,218,6,97,112,112,101, - 110,100,122,22,77,117,116,97,98,108,101,83,101,113,117,101, - 110,99,101,46,97,112,112,101,110,100,104,4,0,0,115,20, - 0,0,0,128,0,224,8,12,143,11,137,11,148,67,152,4, - 147,73,152,117,213,8,37,114,8,0,0,0,99,1,0,0, + 0,85,2,53,1,0,0,0,0,0,0,32,0,77,22,0, + 0,11,0,32,0,103,1,41,2,122,77,83,46,101,120,116, + 101,110,100,40,105,116,101,114,97,98,108,101,41,32,45,45, + 32,101,120,116,101,110,100,32,115,101,113,117,101,110,99,101, + 32,98,121,32,97,112,112,101,110,100,105,110,103,32,101,108, + 101,109,101,110,116,115,32,102,114,111,109,32,116,104,101,32, + 105,116,101,114,97,98,108,101,78,41,2,114,233,0,0,0, + 114,36,2,0,0,41,3,114,68,0,0,0,114,167,1,0, + 0,114,200,1,0,0,115,3,0,0,0,32,32,32,114,9, + 0,0,0,218,6,101,120,116,101,110,100,218,22,77,117,116, + 97,98,108,101,83,101,113,117,101,110,99,101,46,101,120,116, + 101,110,100,131,4,0,0,115,37,0,0,0,128,0,224,11, + 17,138,62,220,21,25,152,38,147,92,136,70,219,17,23,136, + 65,216,12,16,143,75,137,75,152,1,142,78,242,3,0,18, + 24,114,8,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,3,0,0,0,243,18,0,0,0, + 149,0,88,1,5,0,0,0,110,2,88,1,9,0,85,2, + 36,0,41,1,122,134,83,46,112,111,112,40,91,105,110,100, + 101,120,93,41,32,45,62,32,105,116,101,109,32,45,45,32, + 114,101,109,111,118,101,32,97,110,100,32,114,101,116,117,114, + 110,32,105,116,101,109,32,97,116,32,105,110,100,101,120,32, + 40,100,101,102,97,117,108,116,32,108,97,115,116,41,46,10, + 82,97,105,115,101,32,73,110,100,101,120,69,114,114,111,114, + 32,105,102,32,108,105,115,116,32,105,115,32,101,109,112,116, + 121,32,111,114,32,105,110,100,101,120,32,105,115,32,111,117, + 116,32,111,102,32,114,97,110,103,101,46,10,114,7,0,0, + 0,41,3,114,68,0,0,0,114,239,1,0,0,114,200,1, + 0,0,115,3,0,0,0,32,32,32,114,9,0,0,0,114, + 126,1,0,0,218,19,77,117,116,97,98,108,101,83,101,113, + 117,101,110,99,101,46,112,111,112,138,4,0,0,115,21,0, + 0,0,128,0,240,8,0,13,17,137,75,136,1,216,12,16, + 136,75,216,15,16,136,8,114,8,0,0,0,99,2,0,0, 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,70,0,0,0,151,0,9,0,9,0,124,0,106,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,1,0,140,17,35,0, - 116,2,0,0,0,0,0,0,0,0,36,0,114,3,1,0, - 89,0,121,1,119,0,120,3,89,0,119,1,41,2,122,44, - 83,46,99,108,101,97,114,40,41,32,45,62,32,78,111,110, - 101,32,45,45,32,114,101,109,111,118,101,32,97,108,108,32, - 105,116,101,109,115,32,102,114,111,109,32,83,78,41,2,114, - 49,1,0,0,114,129,1,0,0,114,60,0,0,0,115,1, - 0,0,0,32,114,9,0,0,0,114,51,1,0,0,122,21, - 77,117,116,97,98,108,101,83,101,113,117,101,110,99,101,46, - 99,108,101,97,114,108,4,0,0,115,42,0,0,0,128,0, - 240,4,4,9,17,216,18,22,216,16,20,151,8,145,8,148, - 10,240,3,0,19,23,248,228,15,25,242,0,1,9,17,217, - 12,16,240,3,1,9,17,250,114,52,1,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, - 0,0,243,122,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,125,1,116, - 3,0,0,0,0,0,0,0,0,124,1,100,1,122,2,0, - 0,171,1,0,0,0,0,0,0,68,0,93,31,0,0,125, - 2,124,0,124,1,124,2,122,10,0,0,100,2,122,10,0, - 0,25,0,0,0,124,0,124,2,25,0,0,0,99,2,124, - 0,124,2,60,0,0,0,124,0,124,1,124,2,122,10,0, - 0,100,2,122,10,0,0,60,0,0,0,140,33,4,0,121, - 3,41,4,122,33,83,46,114,101,118,101,114,115,101,40,41, - 32,45,45,32,114,101,118,101,114,115,101,32,42,73,78,32, - 80,76,65,67,69,42,114,176,0,0,0,114,37,0,0,0, - 78,41,2,114,179,0,0,0,114,138,1,0,0,41,3,114, - 61,0,0,0,114,29,1,0,0,114,134,1,0,0,115,3, - 0,0,0,32,32,32,114,9,0,0,0,218,7,114,101,118, - 101,114,115,101,122,23,77,117,116,97,98,108,101,83,101,113, - 117,101,110,99,101,46,114,101,118,101,114,115,101,116,4,0, - 0,115,73,0,0,0,128,0,228,12,15,144,4,139,73,136, - 1,220,17,22,144,113,152,33,145,116,150,27,136,65,216,35, - 39,168,1,168,33,169,3,168,65,169,5,161,59,176,4,176, - 81,177,7,208,12,32,136,68,144,17,137,71,144,84,152,33, - 152,65,153,35,152,97,153,37,146,91,241,3,0,18,29,114, - 8,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,243,82,0,0,0,151,0, - 124,1,124,0,117,0,114,11,116,1,0,0,0,0,0,0, - 0,0,124,1,171,1,0,0,0,0,0,0,125,1,124,1, - 68,0,93,19,0,0,125,2,124,0,106,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, - 171,1,0,0,0,0,0,0,1,0,140,21,4,0,121,1, - 41,2,122,77,83,46,101,120,116,101,110,100,40,105,116,101, - 114,97,98,108,101,41,32,45,45,32,101,120,116,101,110,100, - 32,115,101,113,117,101,110,99,101,32,98,121,32,97,112,112, - 101,110,100,105,110,103,32,101,108,101,109,101,110,116,115,32, - 102,114,111,109,32,116,104,101,32,105,116,101,114,97,98,108, - 101,78,41,2,114,181,0,0,0,114,172,1,0,0,41,3, - 114,61,0,0,0,114,79,1,0,0,114,103,1,0,0,115, - 3,0,0,0,32,32,32,114,9,0,0,0,218,6,101,120, - 116,101,110,100,122,22,77,117,116,97,98,108,101,83,101,113, - 117,101,110,99,101,46,101,120,116,101,110,100,122,4,0,0, - 115,39,0,0,0,128,0,224,11,17,144,84,137,62,220,21, - 25,152,38,147,92,136,70,219,17,23,136,65,216,12,16,143, - 75,137,75,152,1,141,78,241,3,0,18,24,114,8,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,3,0,0,0,243,22,0,0,0,151,0,124,0,124, - 1,25,0,0,0,125,2,124,0,124,1,61,0,124,2,83, - 0,41,1,122,153,83,46,112,111,112,40,91,105,110,100,101, - 120,93,41,32,45,62,32,105,116,101,109,32,45,45,32,114, - 101,109,111,118,101,32,97,110,100,32,114,101,116,117,114,110, - 32,105,116,101,109,32,97,116,32,105,110,100,101,120,32,40, - 100,101,102,97,117,108,116,32,108,97,115,116,41,46,10,32, - 32,32,32,32,32,32,32,32,32,32,82,97,105,115,101,32, - 73,110,100,101,120,69,114,114,111,114,32,105,102,32,108,105, - 115,116,32,105,115,32,101,109,112,116,121,32,111,114,32,105, - 110,100,101,120,32,105,115,32,111,117,116,32,111,102,32,114, - 97,110,103,101,46,10,32,32,32,32,32,32,32,32,114,7, - 0,0,0,41,3,114,61,0,0,0,114,131,1,0,0,114, - 103,1,0,0,115,3,0,0,0,32,32,32,114,9,0,0, - 0,114,49,1,0,0,122,19,77,117,116,97,98,108,101,83, - 101,113,117,101,110,99,101,46,112,111,112,129,4,0,0,115, - 25,0,0,0,128,0,240,8,0,13,17,144,21,137,75,136, - 1,216,12,16,144,21,136,75,216,15,16,136,8,114,8,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,40,0,0,0,151,0,124,0, - 124,0,106,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 61,0,121,1,41,2,122,118,83,46,114,101,109,111,118,101, - 40,118,97,108,117,101,41,32,45,45,32,114,101,109,111,118, - 101,32,102,105,114,115,116,32,111,99,99,117,114,114,101,110, - 99,101,32,111,102,32,118,97,108,117,101,46,10,32,32,32, - 32,32,32,32,32,32,32,32,82,97,105,115,101,32,86,97, - 108,117,101,69,114,114,111,114,32,105,102,32,116,104,101,32, - 118,97,108,117,101,32,105,115,32,110,111,116,32,112,114,101, - 115,101,110,116,46,10,32,32,32,32,32,32,32,32,78,41, - 1,114,131,1,0,0,114,86,0,0,0,115,2,0,0,0, - 32,32,114,9,0,0,0,114,44,1,0,0,122,22,77,117, - 116,97,98,108,101,83,101,113,117,101,110,99,101,46,114,101, - 109,111,118,101,137,4,0,0,115,21,0,0,0,128,0,240, - 8,0,13,17,144,20,151,26,145,26,152,69,211,17,34,209, - 12,35,114,8,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,243,40,0,0, - 0,151,0,124,0,106,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,1,0,124,0,83,0,114,6,0,0,0,41,1, - 114,177,1,0,0,41,2,114,61,0,0,0,114,79,1,0, - 0,115,2,0,0,0,32,32,114,9,0,0,0,218,8,95, - 95,105,97,100,100,95,95,122,24,77,117,116,97,98,108,101, - 83,101,113,117,101,110,99,101,46,95,95,105,97,100,100,95, - 95,143,4,0,0,115,19,0,0,0,128,0,216,8,12,143, - 11,137,11,144,70,212,8,27,216,15,19,136,11,114,8,0, - 0,0,78,41,1,114,191,0,0,0,41,16,114,69,0,0, - 0,114,70,0,0,0,114,71,0,0,0,114,204,0,0,0, - 114,72,0,0,0,114,4,0,0,0,114,111,1,0,0,114, - 113,1,0,0,114,170,1,0,0,114,172,1,0,0,114,51, - 1,0,0,114,175,1,0,0,114,177,1,0,0,114,49,1, - 0,0,114,44,1,0,0,114,181,1,0,0,114,7,0,0, - 0,114,8,0,0,0,114,9,0,0,0,114,34,0,0,0, - 114,34,0,0,0,82,4,0,0,115,107,0,0,0,132,0, - 241,2,4,5,8,240,12,0,17,19,128,73,224,5,19,241, - 2,1,5,25,243,3,0,6,20,240,2,1,5,25,240,6, - 0,6,20,241,2,1,5,25,243,3,0,6,20,240,2,1, - 5,25,240,6,0,6,20,241,2,2,5,25,243,3,0,6, - 20,240,2,2,5,25,242,8,2,5,38,242,8,6,5,17, - 242,16,4,5,56,242,12,5,5,27,243,14,6,5,17,242, - 16,4,5,36,243,12,2,5,20,114,8,0,0,0,114,34, - 0,0,0,41,85,114,204,0,0,0,218,3,97,98,99,114, - 3,0,0,0,114,4,0,0,0,114,24,1,0,0,114,217, - 0,0,0,114,181,0,0,0,114,171,0,0,0,114,80,0, - 0,0,218,12,69,108,108,105,112,115,105,115,84,121,112,101, - 114,10,0,0,0,114,223,0,0,0,218,7,95,95,97,108, - 108,95,95,114,69,0,0,0,114,46,1,0,0,218,14,98, - 121,116,101,115,95,105,116,101,114,97,116,111,114,218,9,98, - 121,116,101,97,114,114,97,121,218,18,98,121,116,101,97,114, - 114,97,121,95,105,116,101,114,97,116,111,114,114,75,1,0, - 0,218,16,100,105,99,116,95,107,101,121,105,116,101,114,97, - 116,111,114,114,79,1,0,0,218,18,100,105,99,116,95,118, - 97,108,117,101,105,116,101,114,97,116,111,114,114,77,1,0, - 0,218,17,100,105,99,116,95,105,116,101,109,105,116,101,114, - 97,116,111,114,218,13,108,105,115,116,95,105,116,101,114,97, - 116,111,114,114,137,1,0,0,218,20,108,105,115,116,95,114, - 101,118,101,114,115,101,105,116,101,114,97,116,111,114,114,138, - 1,0,0,218,14,114,97,110,103,101,95,105,116,101,114,97, - 116,111,114,218,18,108,111,110,103,114,97,110,103,101,95,105, - 116,101,114,97,116,111,114,114,95,1,0,0,218,12,115,101, - 116,95,105,116,101,114,97,116,111,114,218,12,115,116,114,95, - 105,116,101,114,97,116,111,114,218,14,116,117,112,108,101,95, - 105,116,101,114,97,116,111,114,218,3,122,105,112,218,12,122, - 105,112,95,105,116,101,114,97,116,111,114,218,9,100,105,99, - 116,95,107,101,121,115,218,11,100,105,99,116,95,118,97,108, - 117,101,115,218,10,100,105,99,116,95,105,116,101,109,115,114, - 49,0,0,0,218,12,109,97,112,112,105,110,103,112,114,111, - 120,121,218,9,103,101,110,101,114,97,116,111,114,114,42,0, - 0,0,218,9,99,111,114,111,117,116,105,110,101,114,104,0, - 0,0,114,45,0,0,0,218,15,97,115,121,110,99,95,103, - 101,110,101,114,97,116,111,114,114,56,0,0,0,114,16,0, - 0,0,114,11,0,0,0,114,12,0,0,0,218,8,114,101, - 103,105,115,116,101,114,114,13,0,0,0,114,14,0,0,0, - 114,15,0,0,0,114,17,0,0,0,114,18,0,0,0,114, - 20,0,0,0,114,19,0,0,0,114,21,0,0,0,114,22, - 0,0,0,114,24,0,0,0,114,36,0,0,0,114,174,0, - 0,0,114,182,0,0,0,114,196,0,0,0,114,23,0,0, - 0,114,25,0,0,0,218,9,102,114,111,122,101,110,115,101, - 116,114,26,0,0,0,114,27,0,0,0,114,29,0,0,0, - 114,30,0,0,0,114,31,0,0,0,114,32,0,0,0,114, - 28,0,0,0,114,81,1,0,0,114,33,0,0,0,114,178, - 0,0,0,218,3,115,116,114,114,172,0,0,0,114,149,1, - 0,0,114,35,0,0,0,218,5,98,121,116,101,115,114,34, - 0,0,0,114,7,0,0,0,114,8,0,0,0,114,9,0, - 0,0,218,8,60,109,111,100,117,108,101,62,114,211,1,0, - 0,1,0,0,0,115,1,5,0,0,240,3,1,1,1,241, - 8,3,1,4,247,62,0,1,40,219,0,10,225,15,19,144, - 68,152,19,145,73,139,127,128,12,217,15,19,144,67,139,121, - 128,12,218,0,14,217,15,19,144,66,139,120,128,12,216,4, - 6,242,4,9,11,13,128,7,240,30,0,12,29,128,8,241, - 18,0,18,22,145,100,152,51,147,105,147,31,128,14,217,21, - 25,153,36,153,121,155,123,211,26,43,211,21,44,208,0,18, - 225,19,23,153,4,152,82,159,87,153,87,155,89,155,15,211, - 19,40,208,0,16,217,21,25,153,36,152,114,159,121,153,121, - 155,123,211,26,43,211,21,44,208,0,18,217,20,24,153,20, - 152,98,159,104,153,104,155,106,211,25,41,211,20,42,208,0, - 17,217,16,20,145,84,152,34,147,88,147,14,128,13,217,23, - 27,153,68,161,24,168,34,163,28,211,28,46,211,23,47,208, - 0,20,217,17,21,145,100,153,53,160,17,155,56,147,110,211, - 17,37,128,14,217,21,25,153,36,153,117,160,81,168,36,161, - 89,211,31,47,211,26,48,211,21,49,208,0,18,217,15,19, - 145,68,153,19,155,21,147,75,211,15,32,128,12,217,15,19, - 145,68,152,18,147,72,139,126,128,12,217,17,21,145,100,152, - 50,147,104,147,30,128,14,217,15,19,145,68,153,19,155,21, - 147,75,211,15,32,128,12,225,12,16,144,18,151,23,145,23, - 147,25,139,79,128,9,217,14,18,144,50,151,57,145,57,147, - 59,211,14,31,128,11,217,13,17,144,34,151,40,145,40,147, - 42,211,13,29,128,10,225,15,19,144,68,151,77,145,77,211, - 15,34,128,12,217,12,16,146,47,211,17,36,211,12,37,128, - 9,226,0,23,217,8,13,139,7,128,5,217,12,16,144,21, - 139,75,128,9,216,0,5,135,11,129,11,132,13,216,4,9, - 226,0,22,217,6,9,131,101,128,3,217,18,22,144,115,147, - 41,128,15,216,4,7,242,10,10,1,16,244,24,12,1,30, - 152,23,245,0,12,1,30,244,30,14,1,50,152,39,245,0, - 14,1,50,244,34,38,1,30,144,9,244,0,38,1,30,240, - 82,1,0,1,10,215,0,18,209,0,18,144,57,212,0,29, - 244,6,14,1,50,152,103,245,0,14,1,50,244,34,16,1, - 30,144,77,244,0,16,1,30,244,38,45,1,30,144,93,244, - 0,45,1,30,240,96,1,0,1,15,215,0,23,209,0,23, - 152,15,212,0,40,244,6,15,1,50,152,23,245,0,15,1, - 50,244,36,16,1,30,136,120,244,0,16,1,30,240,38,0, - 1,9,215,0,17,209,0,17,144,46,212,0,33,216,0,8, - 215,0,17,209,0,17,208,18,36,212,0,37,224,0,8,215, - 0,17,209,0,17,208,18,34,212,0,35,216,0,8,215,0, - 17,209,0,17,208,18,36,212,0,37,216,0,8,215,0,17, - 209,0,17,208,18,35,212,0,36,216,0,8,215,0,17,209, - 0,17,144,45,212,0,32,216,0,8,215,0,17,209,0,17, - 208,18,38,212,0,39,216,0,8,215,0,17,209,0,17,144, - 46,212,0,33,216,0,8,215,0,17,209,0,17,208,18,36, - 212,0,37,216,0,8,215,0,17,209,0,17,144,44,212,0, - 31,216,0,8,215,0,17,209,0,17,144,44,212,0,31,216, - 0,8,215,0,17,209,0,17,144,46,212,0,33,216,0,8, - 215,0,17,209,0,17,144,44,212,0,31,244,6,13,1,30, - 144,24,244,0,13,1,30,244,32,45,1,30,144,8,244,0, - 45,1,30,240,96,1,0,1,10,215,0,18,209,0,18,144, - 57,212,0,29,244,6,12,1,30,144,103,245,0,12,1,30, - 244,30,14,1,50,152,39,245,0,14,1,50,244,34,8,1, - 30,144,21,152,8,160,41,244,0,8,1,30,244,22,12,1, - 30,144,119,245,0,12,1,30,244,30,52,1,64,1,152,76, - 244,0,52,1,64,1,242,108,1,10,1,86,1,242,24,15, - 1,21,244,36,14,1,59,152,23,245,0,14,1,59,244,40, - 71,2,1,17,136,42,244,0,71,2,1,17,240,84,4,0, - 1,4,135,12,129,12,136,89,212,0,23,244,6,77,1,1, - 20,144,19,244,0,77,1,1,20,240,96,2,0,1,11,215, - 0,19,209,0,19,144,67,212,0,24,244,10,49,1,24,136, - 106,244,0,49,1,24,240,102,1,0,1,8,215,0,16,209, - 0,16,144,28,212,0,30,244,6,13,1,50,144,37,244,0, - 13,1,50,244,32,12,1,33,136,123,152,67,244,0,12,1, - 33,240,30,0,1,9,215,0,17,209,0,17,144,41,212,0, - 28,244,6,19,1,44,144,11,152,83,244,0,19,1,44,240, - 44,0,1,10,215,0,18,209,0,18,144,58,212,0,30,244, - 6,13,1,37,144,27,152,106,244,0,13,1,37,240,32,0, - 1,11,215,0,19,209,0,19,144,75,212,0,32,244,6,79, - 1,1,23,144,87,244,0,79,1,1,23,240,100,2,0,1, - 15,215,0,23,209,0,23,152,4,212,0,29,244,10,61,1, - 64,1,136,122,152,58,244,0,61,1,64,1,240,126,1,0, - 1,9,215,0,17,209,0,17,144,37,212,0,24,216,0,8, - 215,0,17,209,0,17,144,35,212,0,22,216,0,8,215,0, - 17,209,0,17,144,37,212,0,24,216,0,8,215,0,17,209, - 0,17,144,42,212,0,29,244,4,18,1,51,152,119,244,0, - 18,1,51,244,40,6,1,19,144,24,208,37,61,245,0,6, - 1,19,240,16,0,1,11,215,0,19,209,0,19,144,69,212, - 0,26,216,0,10,215,0,19,209,0,19,144,73,212,0,30, - 244,6,63,1,20,144,104,244,0,63,1,20,240,68,2,0, - 1,16,215,0,24,209,0,24,152,20,212,0,30,216,0,15, - 215,0,24,209,0,24,152,25,213,0,35,114,8,0,0,0, + 0,243,38,0,0,0,149,0,88,0,82,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,1, + 53,1,0,0,0,0,0,0,9,0,103,1,41,2,122,99, + 83,46,114,101,109,111,118,101,40,118,97,108,117,101,41,32, + 45,45,32,114,101,109,111,118,101,32,102,105,114,115,116,32, + 111,99,99,117,114,114,101,110,99,101,32,111,102,32,118,97, + 108,117,101,46,10,82,97,105,115,101,32,86,97,108,117,101, + 69,114,114,111,114,32,105,102,32,116,104,101,32,118,97,108, + 117,101,32,105,115,32,110,111,116,32,112,114,101,115,101,110, + 116,46,10,78,41,1,114,239,1,0,0,114,101,0,0,0, + 115,2,0,0,0,32,32,114,9,0,0,0,114,120,1,0, + 0,218,22,77,117,116,97,98,108,101,83,101,113,117,101,110, + 99,101,46,114,101,109,111,118,101,146,4,0,0,115,19,0, + 0,0,128,0,240,8,0,13,17,151,26,145,26,152,69,211, + 17,34,209,12,35,114,8,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 40,0,0,0,149,0,85,0,82,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,32,0,85,0,36,0,114,6,0,0, + 0,41,1,114,44,2,0,0,41,2,114,68,0,0,0,114, + 167,1,0,0,115,2,0,0,0,32,32,114,9,0,0,0, + 218,8,95,95,105,97,100,100,95,95,218,24,77,117,116,97, + 98,108,101,83,101,113,117,101,110,99,101,46,95,95,105,97, + 100,100,95,95,152,4,0,0,115,19,0,0,0,128,0,216, + 8,12,143,11,137,11,144,70,212,8,27,216,15,19,136,11, + 114,8,0,0,0,78,41,1,114,244,0,0,0,41,18,114, + 78,0,0,0,114,79,0,0,0,114,80,0,0,0,114,81, + 0,0,0,114,4,1,0,0,114,82,0,0,0,114,4,0, + 0,0,114,212,1,0,0,114,215,1,0,0,114,33,2,0, + 0,114,36,2,0,0,114,129,1,0,0,114,41,2,0,0, + 114,44,2,0,0,114,126,1,0,0,114,120,1,0,0,114, + 51,2,0,0,114,84,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,9,0,0,0,114,34,0,0,0,114,34,0, + 0,0,91,4,0,0,115,107,0,0,0,134,0,241,2,4, + 5,8,240,12,0,17,19,128,73,224,5,19,241,2,1,5, + 25,243,3,0,6,20,240,2,1,5,25,240,6,0,6,20, + 241,2,1,5,25,243,3,0,6,20,240,2,1,5,25,240, + 6,0,6,20,241,2,2,5,25,243,3,0,6,20,240,2, + 2,5,25,242,8,2,5,38,242,8,6,5,17,242,16,4, + 5,56,242,12,5,5,27,244,14,6,5,17,242,16,4,5, + 36,245,12,2,5,20,114,8,0,0,0,114,34,0,0,0, + 41,87,114,4,1,0,0,218,3,97,98,99,114,3,0,0, + 0,114,4,0,0,0,114,41,0,0,0,114,40,0,0,0, + 114,233,0,0,0,114,223,0,0,0,114,94,0,0,0,218, + 12,69,108,108,105,112,115,105,115,84,121,112,101,114,10,0, + 0,0,114,23,1,0,0,218,7,95,95,97,108,108,95,95, + 114,78,0,0,0,114,123,1,0,0,218,14,98,121,116,101, + 115,95,105,116,101,114,97,116,111,114,218,9,98,121,116,101, + 97,114,114,97,121,218,18,98,121,116,101,97,114,114,97,121, + 95,105,116,101,114,97,116,111,114,114,161,1,0,0,218,16, + 100,105,99,116,95,107,101,121,105,116,101,114,97,116,111,114, + 114,167,1,0,0,218,18,100,105,99,116,95,118,97,108,117, + 101,105,116,101,114,97,116,111,114,114,164,1,0,0,218,17, + 100,105,99,116,95,105,116,101,109,105,116,101,114,97,116,111, + 114,218,13,108,105,115,116,95,105,116,101,114,97,116,111,114, + 114,248,1,0,0,218,20,108,105,115,116,95,114,101,118,101, + 114,115,101,105,116,101,114,97,116,111,114,114,249,1,0,0, + 218,14,114,97,110,103,101,95,105,116,101,114,97,116,111,114, + 218,18,108,111,110,103,114,97,110,103,101,95,105,116,101,114, + 97,116,111,114,114,188,1,0,0,218,12,115,101,116,95,105, + 116,101,114,97,116,111,114,218,12,115,116,114,95,105,116,101, + 114,97,116,111,114,218,14,116,117,112,108,101,95,105,116,101, + 114,97,116,111,114,218,3,122,105,112,218,12,122,105,112,95, + 105,116,101,114,97,116,111,114,218,9,100,105,99,116,95,107, + 101,121,115,218,11,100,105,99,116,95,118,97,108,117,101,115, + 218,10,100,105,99,116,95,105,116,101,109,115,114,55,0,0, + 0,218,12,109,97,112,112,105,110,103,112,114,111,120,121,114, + 44,0,0,0,218,16,102,114,97,109,101,108,111,99,97,108, + 115,112,114,111,120,121,218,9,103,101,110,101,114,97,116,111, + 114,114,48,0,0,0,218,9,99,111,114,111,117,116,105,110, + 101,114,121,0,0,0,114,51,0,0,0,218,15,97,115,121, + 110,99,95,103,101,110,101,114,97,116,111,114,114,62,0,0, + 0,114,16,0,0,0,114,11,0,0,0,114,12,0,0,0, + 218,8,114,101,103,105,115,116,101,114,114,13,0,0,0,114, + 14,0,0,0,114,15,0,0,0,114,17,0,0,0,114,18, + 0,0,0,114,20,0,0,0,114,19,0,0,0,114,21,0, + 0,0,114,22,0,0,0,114,24,0,0,0,114,36,0,0, + 0,114,226,0,0,0,114,234,0,0,0,114,249,0,0,0, + 114,23,0,0,0,114,25,0,0,0,218,9,102,114,111,122, + 101,110,115,101,116,114,26,0,0,0,114,27,0,0,0,114, + 29,0,0,0,114,30,0,0,0,114,31,0,0,0,114,32, + 0,0,0,114,28,0,0,0,114,170,1,0,0,114,33,0, + 0,0,114,230,0,0,0,218,3,115,116,114,114,224,0,0, + 0,114,8,2,0,0,114,35,0,0,0,218,5,98,121,116, + 101,115,114,34,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,9,0,0,0,218,8,60,109,111,100,117,108,101,62, + 114,83,2,0,0,1,0,0,0,115,33,5,0,0,240,3, + 1,1,1,241,8,3,1,4,247,62,0,1,40,219,0,10, + 225,15,19,144,68,152,19,145,73,139,127,128,12,217,15,19, + 144,67,139,121,128,12,218,0,14,217,15,19,144,66,139,120, + 128,12,216,4,6,242,4,9,11,13,128,7,240,30,0,12, + 29,128,8,241,18,0,18,22,145,100,152,51,147,105,147,31, + 128,14,217,21,25,153,36,153,121,155,123,211,26,43,211,21, + 44,208,0,18,225,19,23,153,4,152,82,159,87,153,87,155, + 89,155,15,211,19,40,208,0,16,217,21,25,153,36,152,114, + 159,121,153,121,155,123,211,26,43,211,21,44,208,0,18,217, + 20,24,153,20,152,98,159,104,153,104,155,106,211,25,41,211, + 20,42,208,0,17,217,16,20,145,84,152,34,147,88,147,14, + 128,13,217,23,27,153,68,161,24,168,34,163,28,211,28,46, + 211,23,47,208,0,20,217,17,21,145,100,153,53,160,17,155, + 56,147,110,211,17,37,128,14,217,21,25,153,36,153,117,160, + 81,168,36,161,89,211,31,47,211,26,48,211,21,49,208,0, + 18,217,15,19,145,68,153,19,155,21,147,75,211,15,32,128, + 12,217,15,19,145,68,152,18,147,72,139,126,128,12,217,17, + 21,145,100,152,50,147,104,147,30,128,14,217,15,19,145,68, + 153,19,155,21,147,75,211,15,32,128,12,225,12,16,144,18, + 151,23,145,23,147,25,139,79,128,9,217,14,18,144,50,151, + 57,145,57,147,59,211,14,31,128,11,217,13,17,144,34,151, + 40,145,40,147,42,211,13,29,128,10,225,15,19,144,68,151, + 77,145,77,211,15,34,128,12,242,2,1,1,42,225,19,40, + 211,19,42,208,0,16,216,4,25,217,12,16,146,47,211,17, + 36,211,12,37,128,9,226,0,23,217,8,13,139,7,128,5, + 217,12,16,144,21,139,75,128,9,216,0,5,135,11,129,11, + 132,13,216,4,9,226,0,22,217,6,9,131,101,128,3,217, + 18,22,144,115,147,41,128,15,216,4,7,242,10,10,1,16, + 244,24,12,1,30,152,23,242,0,12,1,30,244,30,14,1, + 50,152,39,242,0,14,1,50,244,34,38,1,30,144,9,244, + 0,38,1,30,240,82,1,0,1,10,215,0,18,209,0,18, + 144,57,212,0,29,244,6,14,1,50,152,103,242,0,14,1, + 50,244,34,16,1,30,144,77,244,0,16,1,30,244,38,45, + 1,30,144,93,244,0,45,1,30,240,96,1,0,1,15,215, + 0,23,209,0,23,152,15,212,0,40,244,6,15,1,50,152, + 23,242,0,15,1,50,244,36,16,1,30,136,120,244,0,16, + 1,30,240,38,0,1,9,215,0,17,209,0,17,144,46,212, + 0,33,216,0,8,215,0,17,209,0,17,208,18,36,212,0, + 37,224,0,8,215,0,17,209,0,17,208,18,34,212,0,35, + 216,0,8,215,0,17,209,0,17,208,18,36,212,0,37,216, + 0,8,215,0,17,209,0,17,208,18,35,212,0,36,216,0, + 8,215,0,17,209,0,17,144,45,212,0,32,216,0,8,215, + 0,17,209,0,17,208,18,38,212,0,39,216,0,8,215,0, + 17,209,0,17,144,46,212,0,33,216,0,8,215,0,17,209, + 0,17,208,18,36,212,0,37,216,0,8,215,0,17,209,0, + 17,144,44,212,0,31,216,0,8,215,0,17,209,0,17,144, + 44,212,0,31,216,0,8,215,0,17,209,0,17,144,46,212, + 0,33,216,0,8,215,0,17,209,0,17,144,44,212,0,31, + 244,6,13,1,30,144,24,244,0,13,1,30,244,32,45,1, + 30,144,8,244,0,45,1,30,240,96,1,0,1,10,215,0, + 18,209,0,18,144,57,212,0,29,244,6,12,1,30,144,103, + 242,0,12,1,30,244,30,14,1,50,152,39,242,0,14,1, + 50,244,34,8,1,30,144,21,152,8,160,41,244,0,8,1, + 30,244,22,12,1,30,144,119,242,0,12,1,30,244,30,52, + 1,64,1,152,76,244,0,52,1,64,1,242,108,1,10,1, + 86,1,242,24,15,1,21,244,36,14,1,59,152,23,242,0, + 14,1,59,244,40,71,2,1,17,136,42,244,0,71,2,1, + 17,240,84,4,0,1,4,135,12,129,12,136,89,212,0,23, + 244,6,77,1,1,20,144,19,244,0,77,1,1,20,240,96, + 2,0,1,11,215,0,19,209,0,19,144,67,212,0,24,244, + 10,49,1,24,136,106,244,0,49,1,24,240,102,1,0,1, + 8,215,0,16,209,0,16,144,28,212,0,30,216,0,7,215, + 0,16,209,0,16,208,17,33,212,0,34,244,6,13,1,50, + 144,37,244,0,13,1,50,244,32,12,1,33,136,123,152,67, + 244,0,12,1,33,240,30,0,1,9,215,0,17,209,0,17, + 144,41,212,0,28,244,6,19,1,44,144,11,152,83,244,0, + 19,1,44,240,44,0,1,10,215,0,18,209,0,18,144,58, + 212,0,30,244,6,13,1,37,144,27,152,106,244,0,13,1, + 37,240,32,0,1,11,215,0,19,209,0,19,144,75,212,0, + 32,244,6,79,1,1,23,144,87,244,0,79,1,1,23,240, + 100,2,0,1,15,215,0,23,209,0,23,152,4,212,0,29, + 244,10,61,1,64,1,136,122,152,58,244,0,61,1,64,1, + 240,126,1,0,1,9,215,0,17,209,0,17,144,37,212,0, + 24,216,0,8,215,0,17,209,0,17,144,35,212,0,22,216, + 0,8,215,0,17,209,0,17,144,37,212,0,24,216,0,8, + 215,0,17,209,0,17,144,42,212,0,29,244,4,18,1,51, + 152,119,244,0,18,1,51,244,40,10,1,19,144,24,208,37, + 61,242,0,10,1,19,240,24,0,1,11,215,0,19,209,0, + 19,144,69,212,0,26,216,0,10,215,0,19,209,0,19,144, + 73,212,0,30,244,6,63,1,20,144,104,244,0,63,1,20, + 240,68,2,0,1,16,215,0,24,209,0,24,152,20,212,0, + 30,216,0,15,215,0,24,209,0,24,152,25,213,0,35,114, + 8,0,0,0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/_sitebuiltins.h b/contrib/tools/python3/Python/frozen_modules/_sitebuiltins.h index 763b96a7030..5913f78f1a3 100644 --- a/contrib/tools/python3/Python/frozen_modules/_sitebuiltins.h +++ b/contrib/tools/python3/Python/frozen_modules/_sitebuiltins.h @@ -1,298 +1,308 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M___sitebuiltins[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,0,0,0,0,243,82,0,0,0,151,0,100,0,90,0, - 100,1,100,2,108,1,90,1,2,0,71,0,100,3,132,0, - 100,4,101,2,171,3,0,0,0,0,0,0,90,3,2,0, - 71,0,100,5,132,0,100,6,101,2,171,3,0,0,0,0, - 0,0,90,4,2,0,71,0,100,7,132,0,100,8,101,2, - 171,3,0,0,0,0,0,0,90,5,121,2,41,9,122,61, + 0,0,0,0,0,243,82,0,0,0,149,0,83,0,114,0, + 83,1,83,2,75,1,114,1,24,0,34,0,83,3,26,0, + 83,4,92,2,53,3,0,0,0,0,0,0,114,3,24,0, + 34,0,83,5,26,0,83,6,92,2,53,3,0,0,0,0, + 0,0,114,4,24,0,34,0,83,7,26,0,83,8,92,2, + 53,3,0,0,0,0,0,0,114,5,103,2,41,9,122,61, 10,84,104,101,32,111,98,106,101,99,116,115,32,117,115,101, 100,32,98,121,32,116,104,101,32,115,105,116,101,32,109,111, 100,117,108,101,32,116,111,32,97,100,100,32,99,117,115,116, 111,109,32,98,117,105,108,116,105,110,115,46,10,233,0,0, 0,0,78,99,0,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,0,0,0,0,243,32,0,0,0,151,0,101, - 0,90,1,100,0,90,2,100,1,132,0,90,3,100,2,132, - 0,90,4,100,5,100,4,132,1,90,5,121,3,41,6,218, - 7,81,117,105,116,116,101,114,99,3,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,3,0,0,0,243,32,0, - 0,0,151,0,124,1,124,0,95,0,0,0,0,0,0,0, - 0,0,124,2,124,0,95,1,0,0,0,0,0,0,0,0, - 121,0,169,1,78,169,2,218,4,110,97,109,101,218,3,101, - 111,102,41,3,218,4,115,101,108,102,114,8,0,0,0,114, - 9,0,0,0,115,3,0,0,0,32,32,32,250,22,60,102, - 114,111,122,101,110,32,95,115,105,116,101,98,117,105,108,116, - 105,110,115,62,218,8,95,95,105,110,105,116,95,95,122,16, - 81,117,105,116,116,101,114,46,95,95,105,110,105,116,95,95, - 14,0,0,0,115,16,0,0,0,128,0,216,20,24,136,4, - 140,9,216,19,22,136,4,141,8,243,0,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,3, - 0,0,0,243,60,0,0,0,151,0,100,1,124,0,106,0, + 2,0,0,0,0,0,0,0,243,42,0,0,0,149,0,92, + 0,114,1,83,0,114,2,83,1,114,3,83,2,26,0,114, + 4,83,3,26,0,114,5,83,7,83,5,26,0,106,1,114, + 6,83,6,114,7,103,4,41,8,218,7,81,117,105,116,116, + 101,114,233,13,0,0,0,99,3,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,3,0,0,0,243,28,0,0, + 0,149,0,88,16,108,0,0,0,0,0,0,0,0,0,88, + 32,108,1,0,0,0,0,0,0,0,0,103,0,169,1,78, + 169,2,218,4,110,97,109,101,218,3,101,111,102,41,3,218, + 4,115,101,108,102,114,9,0,0,0,114,10,0,0,0,115, + 3,0,0,0,32,32,32,218,22,60,102,114,111,122,101,110, + 32,95,115,105,116,101,98,117,105,108,116,105,110,115,62,218, + 8,95,95,105,110,105,116,95,95,218,16,81,117,105,116,116, + 101,114,46,95,95,105,110,105,116,95,95,14,0,0,0,115, + 12,0,0,0,128,0,216,20,24,140,9,216,19,22,141,8, + 243,0,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,5,0,0,0,3,0,0,0,243,64,0,0,0,149, + 0,83,1,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,60,1,14,0,83,2,85, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,60,1,14,0,83,3,51,5,36,0,41, + 4,78,122,4,85,115,101,32,122,6,40,41,32,111,114,32, + 122,8,32,116,111,32,101,120,105,116,114,8,0,0,0,169, + 1,114,11,0,0,0,115,1,0,0,0,32,114,12,0,0, + 0,218,8,95,95,114,101,112,114,95,95,218,16,81,117,105, + 116,116,101,114,46,95,95,114,101,112,114,95,95,17,0,0, + 0,115,21,0,0,0,129,0,216,43,47,175,57,172,57,176, + 100,183,104,180,104,208,15,63,208,8,63,114,15,0,0,0, + 78,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,100,0,0,0,149,0,30,0,91, + 0,0,0,0,0,0,0,0,0,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,5,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,155,1,100,2,124,0,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,155,1,100,3, - 157,5,83,0,41,4,78,122,4,85,115,101,32,122,6,40, - 41,32,111,114,32,122,8,32,116,111,32,101,120,105,116,114, - 7,0,0,0,169,1,114,10,0,0,0,115,1,0,0,0, - 32,114,11,0,0,0,218,8,95,95,114,101,112,114,95,95, - 122,16,81,117,105,116,116,101,114,46,95,95,114,101,112,114, - 95,95,17,0,0,0,115,21,0,0,0,129,0,216,43,47, - 175,57,171,57,176,100,183,104,179,104,208,15,63,208,8,63, - 114,13,0,0,0,78,99,2,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,120,0,0,0, - 151,0,9,0,116,0,0,0,0,0,0,0,0,0,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,5,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,1,0, - 116,7,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,130,1,35,0,1,0,89,0,116,7,0,0, - 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 130,1,120,3,89,0,119,1,114,6,0,0,0,41,4,218, - 3,115,121,115,218,5,115,116,100,105,110,218,5,99,108,111, - 115,101,218,10,83,121,115,116,101,109,69,120,105,116,41,2, - 114,10,0,0,0,218,4,99,111,100,101,115,2,0,0,0, - 32,32,114,11,0,0,0,218,8,95,95,99,97,108,108,95, - 95,122,16,81,117,105,116,116,101,114,46,95,95,99,97,108, - 108,95,95,19,0,0,0,115,55,0,0,0,128,0,240,6, - 3,9,17,220,12,15,143,73,137,73,143,79,137,79,212,12, - 29,244,6,0,15,25,152,20,211,14,30,208,8,30,248,240, - 5,1,9,17,216,12,16,220,14,24,152,20,211,14,30,208, - 8,30,250,115,8,0,0,0,130,30,43,0,171,2,57,3, - 114,6,0,0,0,41,6,218,8,95,95,110,97,109,101,95, - 95,218,10,95,95,109,111,100,117,108,101,95,95,218,12,95, - 95,113,117,97,108,110,97,109,101,95,95,114,12,0,0,0, - 114,16,0,0,0,114,23,0,0,0,169,0,114,13,0,0, - 0,114,11,0,0,0,114,4,0,0,0,114,4,0,0,0, - 13,0,0,0,115,18,0,0,0,132,0,242,2,2,5,23, - 242,6,1,5,64,1,244,4,7,5,31,114,13,0,0,0, + 0,53,0,0,0,0,0,0,0,32,0,91,7,0,0,0, + 0,0,0,0,0,85,1,53,1,0,0,0,0,0,0,101, + 1,33,0,32,0,31,0,78,15,61,3,31,0,102,1,114, + 7,0,0,0,41,4,218,3,115,121,115,218,5,115,116,100, + 105,110,218,5,99,108,111,115,101,218,10,83,121,115,116,101, + 109,69,120,105,116,41,2,114,11,0,0,0,218,4,99,111, + 100,101,115,2,0,0,0,32,32,114,12,0,0,0,218,8, + 95,95,99,97,108,108,95,95,218,16,81,117,105,116,116,101, + 114,46,95,95,99,97,108,108,95,95,19,0,0,0,115,44, + 0,0,0,128,0,240,6,3,9,17,220,12,15,143,73,137, + 73,143,79,137,79,212,12,29,244,6,0,15,25,152,20,211, + 14,30,208,8,30,248,240,5,1,9,17,217,12,16,250,115, + 8,0,0,0,130,30,43,0,171,2,47,3,41,2,114,10, + 0,0,0,114,9,0,0,0,114,7,0,0,0,41,8,218, + 8,95,95,110,97,109,101,95,95,218,10,95,95,109,111,100, + 117,108,101,95,95,218,12,95,95,113,117,97,108,110,97,109, + 101,95,95,218,15,95,95,102,105,114,115,116,108,105,110,101, + 110,111,95,95,114,13,0,0,0,114,18,0,0,0,114,26, + 0,0,0,218,21,95,95,115,116,97,116,105,99,95,97,116, + 116,114,105,98,117,116,101,115,95,95,169,0,114,15,0,0, + 0,114,12,0,0,0,114,4,0,0,0,114,4,0,0,0, + 13,0,0,0,115,18,0,0,0,134,0,242,2,2,5,23, + 242,6,1,5,64,1,247,4,7,5,31,114,15,0,0,0, 114,4,0,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,0,0,0,0,243,46,0,0,0,151, - 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,90, - 4,100,8,100,3,132,1,90,5,100,4,132,0,90,6,100, - 5,132,0,90,7,100,6,132,0,90,8,121,7,41,9,218, - 8,95,80,114,105,110,116,101,114,122,110,105,110,116,101,114, - 97,99,116,105,118,101,32,112,114,111,109,112,116,32,111,98, - 106,101,99,116,115,32,102,111,114,32,112,114,105,110,116,105, - 110,103,32,116,104,101,32,108,105,99,101,110,115,101,32,116, - 101,120,116,44,32,97,32,108,105,115,116,32,111,102,10,32, - 32,32,32,99,111,110,116,114,105,98,117,116,111,114,115,32, - 97,110,100,32,116,104,101,32,99,111,112,121,114,105,103,104, - 116,32,110,111,116,105,99,101,46,233,23,0,0,0,99,5, - 0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,3, - 0,0,0,243,178,0,0,0,151,0,100,1,100,0,108,0, - 125,5,124,1,124,0,95,1,0,0,0,0,0,0,0,0, - 124,2,124,0,95,2,0,0,0,0,0,0,0,0,100,0, - 124,0,95,3,0,0,0,0,0,0,0,0,124,4,68,0, - 143,6,143,7,99,3,103,0,99,2,93,37,0,0,125,6, - 124,3,68,0,93,30,0,0,125,7,124,5,106,8,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,6,124,7,171,2,0,0,0,0,0,0, - 145,3,140,32,4,0,140,39,4,0,99,3,125,7,125,6, - 124,0,95,6,0,0,0,0,0,0,0,0,121,0,99,2, - 1,0,99,3,125,7,125,6,119,0,169,2,78,114,2,0, - 0,0,41,7,218,2,111,115,218,14,95,80,114,105,110,116, - 101,114,95,95,110,97,109,101,218,14,95,80,114,105,110,116, - 101,114,95,95,100,97,116,97,218,15,95,80,114,105,110,116, - 101,114,95,95,108,105,110,101,115,218,4,112,97,116,104,218, - 4,106,111,105,110,218,19,95,80,114,105,110,116,101,114,95, - 95,102,105,108,101,110,97,109,101,115,41,8,114,10,0,0, - 0,114,8,0,0,0,218,4,100,97,116,97,218,5,102,105, - 108,101,115,218,4,100,105,114,115,114,33,0,0,0,218,3, - 100,105,114,218,8,102,105,108,101,110,97,109,101,115,8,0, - 0,0,32,32,32,32,32,32,32,32,114,11,0,0,0,114, - 12,0,0,0,122,17,95,80,114,105,110,116,101,114,46,95, - 95,105,110,105,116,95,95,35,0,0,0,115,91,0,0,0, - 128,0,219,8,17,216,22,26,136,4,140,11,216,22,26,136, - 4,140,11,216,23,27,136,4,140,12,225,39,43,244,3,2, - 28,51,217,39,43,160,3,219,44,49,160,8,240,5,0,29, - 31,159,71,153,71,159,76,153,76,168,19,168,104,213,28,55, - 224,44,49,240,5,0,29,56,216,39,43,242,3,2,28,51, - 136,4,213,8,24,249,243,0,2,28,51,115,5,0,0,0, - 159,42,65,19,6,99,1,0,0,0,0,0,0,0,0,0, - 0,0,7,0,0,0,3,0,0,0,243,70,1,0,0,151, - 0,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,114,1,121,0,100,0,125,1,124, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,68,0,93,42,0,0,125,2,9,0,116, - 5,0,0,0,0,0,0,0,0,124,2,100,1,172,2,171, - 2,0,0,0,0,0,0,53,0,125,3,124,3,106,7,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,125,1,100,0,100,0,100, - 0,171,2,0,0,0,0,0,0,1,0,1,0,110,1,4, - 0,124,1,115,12,124,0,106,10,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,125,1,124,1,106, - 13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,3,171,1,0,0,0,0,0,0,124,0,95, - 0,0,0,0,0,0,0,0,0,116,15,0,0,0,0,0, - 0,0,0,124,0,106,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,124,0,95,8,0,0,0,0,0,0,0,0,121,0,35, - 0,49,0,115,1,119,2,1,0,89,0,1,0,1,0,140, - 75,120,3,89,0,119,1,35,0,116,8,0,0,0,0,0, - 0,0,0,36,0,114,3,1,0,89,0,140,131,119,0,120, - 3,89,0,119,1,41,4,78,122,5,117,116,102,45,56,41, - 1,218,8,101,110,99,111,100,105,110,103,218,1,10,41,9, - 114,36,0,0,0,114,39,0,0,0,218,4,111,112,101,110, - 218,4,114,101,97,100,218,7,79,83,69,114,114,111,114,114, - 35,0,0,0,218,5,115,112,108,105,116,218,3,108,101,110, - 218,17,95,80,114,105,110,116,101,114,95,95,108,105,110,101, - 99,110,116,41,4,114,10,0,0,0,114,40,0,0,0,114, - 44,0,0,0,218,2,102,112,115,4,0,0,0,32,32,32, - 32,114,11,0,0,0,218,7,95,95,115,101,116,117,112,122, - 16,95,80,114,105,110,116,101,114,46,95,95,115,101,116,117, - 112,44,0,0,0,115,143,0,0,0,128,0,216,11,15,143, - 60,138,60,216,12,18,216,15,19,136,4,216,24,28,215,24, - 40,212,24,40,136,72,240,2,5,13,21,220,21,25,152,40, - 168,87,213,21,53,184,18,216,27,29,159,55,153,55,155,57, - 144,68,247,3,0,22,54,225,16,21,240,9,0,25,41,241, - 14,0,16,20,216,19,23,151,59,145,59,136,68,216,23,27, - 151,122,145,122,160,36,211,23,39,136,4,140,12,220,25,28, - 152,84,159,92,153,92,211,25,42,136,4,141,14,247,17,0, - 22,54,208,21,53,251,244,6,0,20,27,242,0,1,13,21, - 217,16,20,240,3,1,13,21,250,115,39,0,0,0,160,13, - 66,20,2,173,17,66,8,5,190,8,66,20,2,194,8,5, - 66,17,9,194,13,7,66,20,2,194,20,9,66,32,5,194, - 31,1,66,32,5,99,1,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,3,0,0,0,243,194,0,0,0,151, - 0,124,0,106,1,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,1, - 0,116,3,0,0,0,0,0,0,0,0,124,0,106,4,0, + 0,0,2,0,0,0,0,0,0,0,243,56,0,0,0,149, + 0,92,0,114,1,83,0,114,2,83,1,114,3,83,2,114, + 4,83,3,114,5,83,10,83,4,26,0,106,1,114,6,83, + 5,26,0,114,7,83,6,26,0,114,8,83,7,26,0,114, + 9,83,8,114,10,103,9,41,11,218,8,95,80,114,105,110, + 116,101,114,233,29,0,0,0,122,106,105,110,116,101,114,97, + 99,116,105,118,101,32,112,114,111,109,112,116,32,111,98,106, + 101,99,116,115,32,102,111,114,32,112,114,105,110,116,105,110, + 103,32,116,104,101,32,108,105,99,101,110,115,101,32,116,101, + 120,116,44,32,97,32,108,105,115,116,32,111,102,10,99,111, + 110,116,114,105,98,117,116,111,114,115,32,97,110,100,32,116, + 104,101,32,99,111,112,121,114,105,103,104,116,32,110,111,116, + 105,99,101,46,233,23,0,0,0,99,5,0,0,0,0,0, + 0,0,0,0,0,0,9,0,0,0,3,0,0,0,243,184, + 0,0,0,149,0,83,1,83,0,75,0,110,5,88,16,108, + 1,0,0,0,0,0,0,0,0,88,32,108,2,0,0,0, + 0,0,0,0,0,83,0,85,0,108,3,0,0,0,0,0, + 0,0,0,85,4,19,0,86,6,86,7,115,3,47,0,115, + 2,19,0,72,40,0,0,110,6,85,3,19,0,19,0,72, + 30,0,0,110,7,85,5,82,8,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,82,11,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88, + 103,53,2,0,0,0,0,0,0,80,3,77,32,0,0,11, + 0,32,0,77,42,0,0,11,0,32,0,115,3,110,7,110, + 6,85,0,108,6,0,0,0,0,0,0,0,0,103,0,115, + 2,32,0,115,3,110,7,110,6,102,0,169,2,78,114,2, + 0,0,0,41,7,218,2,111,115,218,14,95,80,114,105,110, + 116,101,114,95,95,110,97,109,101,218,14,95,80,114,105,110, + 116,101,114,95,95,100,97,116,97,218,15,95,80,114,105,110, + 116,101,114,95,95,108,105,110,101,115,218,4,112,97,116,104, + 218,4,106,111,105,110,218,19,95,80,114,105,110,116,101,114, + 95,95,102,105,108,101,110,97,109,101,115,41,8,114,11,0, + 0,0,114,9,0,0,0,218,4,100,97,116,97,218,5,102, + 105,108,101,115,218,4,100,105,114,115,114,40,0,0,0,218, + 3,100,105,114,218,8,102,105,108,101,110,97,109,101,115,8, + 0,0,0,32,32,32,32,32,32,32,32,114,12,0,0,0, + 114,13,0,0,0,218,17,95,80,114,105,110,116,101,114,46, + 95,95,105,110,105,116,95,95,35,0,0,0,115,85,0,0, + 0,128,0,219,8,17,216,22,26,140,11,216,22,26,140,11, + 216,23,27,136,4,140,12,225,39,43,244,3,2,28,51,218, + 39,43,160,3,220,44,49,160,8,240,5,0,29,31,159,71, + 153,71,159,76,153,76,168,19,214,28,55,225,44,49,241,5, + 0,29,56,217,39,43,242,3,2,28,51,136,4,213,8,24, + 249,243,0,2,28,51,115,5,0,0,0,157,47,65,22,6, + 99,1,0,0,0,0,0,0,0,0,0,0,0,7,0,0, + 0,3,0,0,0,243,100,1,0,0,149,0,85,0,82,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,124,0,106,6,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,107, - 26,0,0,114,27,100,1,106,9,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,106,4,0, + 0,0,40,0,0,0,0,0,0,0,97,1,0,0,103,0, + 83,0,110,1,85,0,82,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,19,0,72,39,0,0, + 110,2,30,0,91,5,0,0,0,0,0,0,0,0,85,2, + 83,1,83,2,57,2,2,0,110,3,85,3,82,7,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,83,0,100,2,124,0,106, - 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,102,1,100,3,122,5,0,0,122,6,0,0,83, - 0,41,4,78,114,47,0,0,0,122,33,84,121,112,101,32, - 37,115,40,41,32,116,111,32,115,101,101,32,116,104,101,32, - 102,117,108,108,32,37,115,32,116,101,120,116,233,2,0,0, - 0,41,6,218,15,95,80,114,105,110,116,101,114,95,95,115, - 101,116,117,112,114,52,0,0,0,114,36,0,0,0,218,8, - 77,65,88,76,73,78,69,83,114,38,0,0,0,114,34,0, - 0,0,114,15,0,0,0,115,1,0,0,0,32,114,11,0, - 0,0,114,16,0,0,0,122,17,95,80,114,105,110,116,101, - 114,46,95,95,114,101,112,114,95,95,60,0,0,0,115,73, - 0,0,0,128,0,216,8,12,143,12,137,12,140,14,220,11, - 14,136,116,143,124,137,124,211,11,28,160,4,167,13,161,13, - 210,11,45,216,19,23,151,57,145,57,152,84,159,92,153,92, - 211,19,42,208,12,42,224,19,54,184,52,191,59,185,59,184, - 46,200,17,209,58,74,209,19,75,208,12,75,114,13,0,0, - 0,99,1,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,3,0,0,0,243,22,1,0,0,151,0,124,0,106, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,1,0,100,1,125, - 1,100,2,125,2,9,0,9,0,116,3,0,0,0,0,0, - 0,0,0,124,2,124,2,124,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,122,0,0, - 0,171,2,0,0,0,0,0,0,68,0,93,26,0,0,125, - 3,116,7,0,0,0,0,0,0,0,0,124,0,106,8,0, + 53,0,0,0,0,0,0,0,110,1,83,0,83,0,83,0, + 53,2,0,0,0,0,0,0,32,0,32,0,79,2,11,0, + 32,0,85,1,40,0,0,0,0,0,0,0,100,12,0,0, + 85,0,82,10,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,110,1,85,1,82,13,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,3, + 53,1,0,0,0,0,0,0,85,0,108,0,0,0,0,0, + 0,0,0,0,91,15,0,0,0,0,0,0,0,0,85,0, + 82,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,85,0,108,8, + 0,0,0,0,0,0,0,0,103,0,33,0,44,0,40,0, + 0,0,0,0,0,0,100,1,0,0,102,2,32,0,31,0, + 32,0,32,0,78,86,61,3,31,0,102,1,33,0,91,8, + 0,0,0,0,0,0,0,0,7,0,97,4,0,0,32,0, + 31,0,77,141,0,0,102,0,61,3,31,0,102,1,41,4, + 78,122,5,117,116,102,45,56,41,1,218,8,101,110,99,111, + 100,105,110,103,218,1,10,41,9,114,43,0,0,0,114,46, + 0,0,0,218,4,111,112,101,110,218,4,114,101,97,100,218, + 7,79,83,69,114,114,111,114,114,42,0,0,0,218,5,115, + 112,108,105,116,218,3,108,101,110,218,17,95,80,114,105,110, + 116,101,114,95,95,108,105,110,101,99,110,116,41,4,114,11, + 0,0,0,114,47,0,0,0,114,51,0,0,0,218,2,102, + 112,115,4,0,0,0,32,32,32,32,114,12,0,0,0,218, + 7,95,95,115,101,116,117,112,218,16,95,80,114,105,110,116, + 101,114,46,95,95,115,101,116,117,112,44,0,0,0,115,143, + 0,0,0,128,0,216,11,15,143,60,143,60,216,12,18,216, + 15,19,136,4,216,24,28,215,24,40,212,24,40,136,72,240, + 2,5,13,21,220,21,25,152,40,168,87,210,21,53,184,18, + 216,27,29,159,55,153,55,155,57,144,68,247,3,0,22,54, + 225,16,21,241,9,0,25,41,246,14,0,16,20,216,19,23, + 151,59,145,59,136,68,216,23,27,151,122,145,122,160,36,211, + 23,39,136,4,140,12,220,25,28,152,84,159,92,153,92,211, + 25,42,136,4,141,14,247,17,0,22,54,213,21,53,251,244, + 6,0,20,27,243,0,1,13,21,218,16,20,240,3,1,13, + 21,250,115,40,0,0,0,165,10,66,33,2,175,17,66,16, + 5,193,0,8,66,33,2,194,16,10,66,30,9,194,26,7, + 66,33,2,194,33,10,66,47,5,194,46,1,66,47,5,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,196,0,0,0,149,0,85,0,82,1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,3,25,0,0,0,171,1,0,0,0,0,0,0,1, - 0,140,28,4,0,9,0,124,2,124,0,106,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122, - 13,0,0,125,2,100,0,125,4,124,4,128,20,116,11,0, - 0,0,0,0,0,0,0,124,1,171,1,0,0,0,0,0, - 0,125,4,124,4,100,3,118,1,114,2,100,0,125,4,124, - 4,128,1,140,20,124,4,100,4,107,40,0,0,114,1,121, - 0,140,102,35,0,116,12,0,0,0,0,0,0,0,0,36, - 0,114,3,1,0,89,0,121,0,119,0,120,3,89,0,119, - 1,41,5,78,122,48,72,105,116,32,82,101,116,117,114,110, - 32,102,111,114,32,109,111,114,101,44,32,111,114,32,113,32, - 40,97,110,100,32,82,101,116,117,114,110,41,32,116,111,32, - 113,117,105,116,58,32,114,2,0,0,0,41,2,218,0,218, - 1,113,114,62,0,0,0,41,7,114,58,0,0,0,218,5, - 114,97,110,103,101,114,59,0,0,0,218,5,112,114,105,110, - 116,114,36,0,0,0,218,5,105,110,112,117,116,218,10,73, - 110,100,101,120,69,114,114,111,114,41,5,114,10,0,0,0, - 218,6,112,114,111,109,112,116,218,6,108,105,110,101,110,111, - 218,1,105,218,3,107,101,121,115,5,0,0,0,32,32,32, - 32,32,114,11,0,0,0,114,23,0,0,0,122,17,95,80, - 114,105,110,116,101,114,46,95,95,99,97,108,108,95,95,67, - 0,0,0,115,163,0,0,0,128,0,216,8,12,143,12,137, - 12,140,14,216,17,67,136,6,216,17,18,136,6,216,14,15, - 240,2,13,13,26,220,25,30,152,118,160,118,176,4,183,13, - 177,13,209,39,61,214,25,62,144,65,220,20,25,152,36,159, - 44,153,44,160,113,153,47,213,20,42,241,3,0,26,63,240, - 10,0,17,23,152,36,159,45,153,45,209,16,39,144,6,216, - 22,26,144,3,216,22,25,144,107,220,26,31,160,6,155,45, - 144,67,216,23,26,160,41,209,23,43,216,30,34,152,3,240, - 7,0,23,26,145,107,240,8,0,20,23,152,35,146,58,216, - 20,25,240,29,0,15,16,248,244,8,0,20,30,242,0,1, - 13,22,217,16,21,240,3,1,13,22,250,115,17,0,0,0, - 151,54,65,60,0,193,60,9,66,8,3,194,7,1,66,8, - 3,78,41,2,114,27,0,0,0,114,27,0,0,0,41,9, - 114,24,0,0,0,114,25,0,0,0,114,26,0,0,0,218, - 7,95,95,100,111,99,95,95,114,59,0,0,0,114,12,0, - 0,0,114,58,0,0,0,114,16,0,0,0,114,23,0,0, - 0,114,27,0,0,0,114,13,0,0,0,114,11,0,0,0, - 114,29,0,0,0,114,29,0,0,0,29,0,0,0,115,35, - 0,0,0,132,0,241,2,1,5,46,240,6,0,16,18,128, - 72,243,4,7,5,51,242,18,14,5,43,242,32,5,5,76, - 1,243,14,18,5,26,114,13,0,0,0,114,29,0,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,0,0,0,0,243,28,0,0,0,151,0,101,0,90,1, - 100,0,90,2,100,1,90,3,100,2,132,0,90,4,100,3, - 132,0,90,5,121,4,41,5,218,7,95,72,101,108,112,101, - 114,97,51,1,0,0,68,101,102,105,110,101,32,116,104,101, - 32,98,117,105,108,116,105,110,32,39,104,101,108,112,39,46, - 10,10,32,32,32,32,84,104,105,115,32,105,115,32,97,32, - 119,114,97,112,112,101,114,32,97,114,111,117,110,100,32,112, - 121,100,111,99,46,104,101,108,112,32,116,104,97,116,32,112, - 114,111,118,105,100,101,115,32,97,32,104,101,108,112,102,117, - 108,32,109,101,115,115,97,103,101,10,32,32,32,32,119,104, - 101,110,32,39,104,101,108,112,39,32,105,115,32,116,121,112, - 101,100,32,97,116,32,116,104,101,32,80,121,116,104,111,110, - 32,105,110,116,101,114,97,99,116,105,118,101,32,112,114,111, - 109,112,116,46,10,10,32,32,32,32,67,97,108,108,105,110, - 103,32,104,101,108,112,40,41,32,97,116,32,116,104,101,32, - 80,121,116,104,111,110,32,112,114,111,109,112,116,32,115,116, - 97,114,116,115,32,97,110,32,105,110,116,101,114,97,99,116, - 105,118,101,32,104,101,108,112,32,115,101,115,115,105,111,110, - 46,10,32,32,32,32,67,97,108,108,105,110,103,32,104,101, - 108,112,40,116,104,105,110,103,41,32,112,114,105,110,116,115, - 32,104,101,108,112,32,102,111,114,32,116,104,101,32,112,121, - 116,104,111,110,32,111,98,106,101,99,116,32,39,116,104,105, - 110,103,39,46,10,32,32,32,32,99,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,243,4, - 0,0,0,151,0,121,1,41,2,78,122,72,84,121,112,101, - 32,104,101,108,112,40,41,32,102,111,114,32,105,110,116,101, - 114,97,99,116,105,118,101,32,104,101,108,112,44,32,111,114, - 32,104,101,108,112,40,111,98,106,101,99,116,41,32,102,111, - 114,32,104,101,108,112,32,97,98,111,117,116,32,111,98,106, - 101,99,116,46,114,27,0,0,0,114,15,0,0,0,115,1, - 0,0,0,32,114,11,0,0,0,114,16,0,0,0,122,16, - 95,72,101,108,112,101,114,46,95,95,114,101,112,114,95,95, - 98,0,0,0,115,7,0,0,0,128,0,240,2,1,16,56, - 114,13,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,5,0,0,0,15,0,0,0,243,46,0,0,0,151, - 0,100,1,100,0,108,0,125,3,2,0,124,3,106,2,0, + 0,53,0,0,0,0,0,0,0,32,0,91,3,0,0,0, + 0,0,0,0,0,85,0,82,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,85,0,82,6,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,58,58,0,0,97,27,0, + 0,83,1,82,9,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,0,82,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,36,0,83,2,85,0,82,10,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52, + 1,83,3,45,5,0,0,45,6,0,0,36,0,41,4,78, + 114,55,0,0,0,122,33,84,121,112,101,32,37,115,40,41, + 32,116,111,32,115,101,101,32,116,104,101,32,102,117,108,108, + 32,37,115,32,116,101,120,116,233,2,0,0,0,41,6,218, + 15,95,80,114,105,110,116,101,114,95,95,115,101,116,117,112, + 114,60,0,0,0,114,43,0,0,0,218,8,77,65,88,76, + 73,78,69,83,114,45,0,0,0,114,41,0,0,0,114,17, + 0,0,0,115,1,0,0,0,32,114,12,0,0,0,114,18, + 0,0,0,218,17,95,80,114,105,110,116,101,114,46,95,95, + 114,101,112,114,95,95,60,0,0,0,115,73,0,0,0,128, + 0,216,8,12,143,12,137,12,140,14,220,11,14,136,116,143, + 124,137,124,211,11,28,160,4,167,13,161,13,211,11,45,216, + 19,23,151,57,145,57,152,84,159,92,153,92,211,19,42,208, + 12,42,224,19,54,184,52,191,59,185,59,184,46,200,17,209, + 58,74,209,19,75,208,12,75,114,15,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, + 0,0,243,38,1,0,0,149,0,85,0,82,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 0,0,0,0,0,0,0,32,0,83,1,110,1,83,2,110, + 2,30,0,30,0,91,3,0,0,0,0,0,0,0,0,88, + 34,85,0,82,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,45,0,0,0,53,2,0,0,0, + 0,0,0,19,0,72,27,0,0,110,3,91,7,0,0,0, + 0,0,0,0,0,85,0,82,8,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,3,5,0,0, + 0,53,1,0,0,0,0,0,0,32,0,77,29,0,0,11, + 0,32,0,88,32,82,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,45,13,0,0,110,2,83, + 0,110,4,85,4,99,24,0,0,91,11,0,0,0,0,0, + 0,0,0,85,1,53,1,0,0,0,0,0,0,110,4,85, + 4,83,3,59,1,0,0,97,2,0,0,83,0,110,4,85, + 4,99,2,0,0,77,24,0,0,85,4,83,4,58,88,0, + 0,97,1,0,0,103,0,30,0,77,109,0,0,33,0,91, + 12,0,0,0,0,0,0,0,0,7,0,97,3,0,0,32, + 0,31,0,103,0,102,0,61,3,31,0,102,1,41,5,78, + 122,48,72,105,116,32,82,101,116,117,114,110,32,102,111,114, + 32,109,111,114,101,44,32,111,114,32,113,32,40,97,110,100, + 32,82,101,116,117,114,110,41,32,116,111,32,113,117,105,116, + 58,32,114,2,0,0,0,41,2,218,0,218,1,113,114,72, + 0,0,0,41,7,114,67,0,0,0,218,5,114,97,110,103, + 101,114,68,0,0,0,218,5,112,114,105,110,116,114,43,0, + 0,0,218,5,105,110,112,117,116,218,10,73,110,100,101,120, + 69,114,114,111,114,41,5,114,11,0,0,0,218,6,112,114, + 111,109,112,116,218,6,108,105,110,101,110,111,218,1,105,218, + 3,107,101,121,115,5,0,0,0,32,32,32,32,32,114,12, + 0,0,0,114,26,0,0,0,218,17,95,80,114,105,110,116, + 101,114,46,95,95,99,97,108,108,95,95,67,0,0,0,115, + 164,0,0,0,128,0,216,8,12,143,12,137,12,140,14,216, + 17,67,136,6,216,17,18,136,6,216,14,15,240,2,13,13, + 26,220,25,30,152,118,176,4,183,13,177,13,209,39,61,214, + 25,62,144,65,220,20,25,152,36,159,44,153,44,160,113,153, + 47,214,20,42,241,3,0,26,63,240,10,0,17,23,159,45, + 153,45,209,16,39,144,6,216,22,26,144,3,216,22,25,145, + 107,220,26,31,160,6,155,45,144,67,216,23,26,160,41,211, + 23,43,216,30,34,152,3,240,7,0,23,26,147,107,240,8, + 0,20,23,152,35,147,58,216,20,25,240,3,0,20,30,241, + 27,0,15,16,248,244,8,0,20,30,243,0,1,13,22,217, + 16,21,240,3,1,13,22,250,115,17,0,0,0,151,55,66, + 3,0,194,3,10,66,16,3,194,15,1,66,16,3,41,5, + 218,6,95,95,100,97,116,97,218,11,95,95,102,105,108,101, + 110,97,109,101,115,218,9,95,95,108,105,110,101,99,110,116, + 218,7,95,95,108,105,110,101,115,218,6,95,95,110,97,109, + 101,78,41,2,114,33,0,0,0,114,33,0,0,0,41,11, + 114,28,0,0,0,114,29,0,0,0,114,30,0,0,0,114, + 31,0,0,0,218,7,95,95,100,111,99,95,95,114,68,0, + 0,0,114,13,0,0,0,114,67,0,0,0,114,18,0,0, + 0,114,26,0,0,0,114,32,0,0,0,114,33,0,0,0, + 114,15,0,0,0,114,12,0,0,0,114,35,0,0,0,114, + 35,0,0,0,29,0,0,0,115,35,0,0,0,134,0,241, + 2,1,5,46,240,6,0,16,18,128,72,244,4,7,5,51, + 242,18,14,5,43,242,32,5,5,76,1,245,14,18,5,26, + 114,15,0,0,0,114,35,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,243, + 36,0,0,0,149,0,92,0,114,1,83,0,114,2,83,1, + 114,3,83,2,114,4,83,3,26,0,114,5,83,4,26,0, + 114,6,83,5,114,7,103,6,41,7,218,7,95,72,101,108, + 112,101,114,233,88,0,0,0,97,31,1,0,0,68,101,102, + 105,110,101,32,116,104,101,32,98,117,105,108,116,105,110,32, + 39,104,101,108,112,39,46,10,10,84,104,105,115,32,105,115, + 32,97,32,119,114,97,112,112,101,114,32,97,114,111,117,110, + 100,32,112,121,100,111,99,46,104,101,108,112,32,116,104,97, + 116,32,112,114,111,118,105,100,101,115,32,97,32,104,101,108, + 112,102,117,108,32,109,101,115,115,97,103,101,10,119,104,101, + 110,32,39,104,101,108,112,39,32,105,115,32,116,121,112,101, + 100,32,97,116,32,116,104,101,32,80,121,116,104,111,110,32, + 105,110,116,101,114,97,99,116,105,118,101,32,112,114,111,109, + 112,116,46,10,10,67,97,108,108,105,110,103,32,104,101,108, + 112,40,41,32,97,116,32,116,104,101,32,80,121,116,104,111, + 110,32,112,114,111,109,112,116,32,115,116,97,114,116,115,32, + 97,110,32,105,110,116,101,114,97,99,116,105,118,101,32,104, + 101,108,112,32,115,101,115,115,105,111,110,46,10,67,97,108, + 108,105,110,103,32,104,101,108,112,40,116,104,105,110,103,41, + 32,112,114,105,110,116,115,32,104,101,108,112,32,102,111,114, + 32,116,104,101,32,112,121,116,104,111,110,32,111,98,106,101, + 99,116,32,39,116,104,105,110,103,39,46,10,99,1,0,0, + 0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0, + 0,243,4,0,0,0,149,0,103,1,41,2,78,122,72,84, + 121,112,101,32,104,101,108,112,40,41,32,102,111,114,32,105, + 110,116,101,114,97,99,116,105,118,101,32,104,101,108,112,44, + 32,111,114,32,104,101,108,112,40,111,98,106,101,99,116,41, + 32,102,111,114,32,104,101,108,112,32,97,98,111,117,116,32, + 111,98,106,101,99,116,46,114,33,0,0,0,114,17,0,0, + 0,115,1,0,0,0,32,114,12,0,0,0,114,18,0,0, + 0,218,16,95,72,101,108,112,101,114,46,95,95,114,101,112, + 114,95,95,98,0,0,0,115,7,0,0,0,128,0,240,2, + 1,16,56,114,15,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,5,0,0,0,15,0,0,0,243,46,0, + 0,0,149,0,83,1,83,0,75,0,110,3,85,3,82,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,105,0,124,2,164,1,142,1,83,0,114,32,0, - 0,0,41,2,218,5,112,121,100,111,99,218,4,104,101,108, - 112,41,4,114,10,0,0,0,218,4,97,114,103,115,218,4, - 107,119,100,115,114,76,0,0,0,115,4,0,0,0,32,32, - 32,32,114,11,0,0,0,114,23,0,0,0,122,16,95,72, - 101,108,112,101,114,46,95,95,99,97,108,108,95,95,101,0, - 0,0,115,27,0,0,0,128,0,219,8,20,216,15,25,136, - 117,143,122,137,122,152,52,208,15,40,160,52,209,15,40,208, - 8,40,114,13,0,0,0,78,41,6,114,24,0,0,0,114, - 25,0,0,0,114,26,0,0,0,114,71,0,0,0,114,16, - 0,0,0,114,23,0,0,0,114,27,0,0,0,114,13,0, - 0,0,114,11,0,0,0,114,73,0,0,0,114,73,0,0, - 0,88,0,0,0,115,17,0,0,0,132,0,241,2,7,5, - 8,242,18,2,5,56,243,6,2,5,41,114,13,0,0,0, - 114,73,0,0,0,41,6,114,71,0,0,0,114,18,0,0, - 0,218,6,111,98,106,101,99,116,114,4,0,0,0,114,29, - 0,0,0,114,73,0,0,0,114,27,0,0,0,114,13,0, - 0,0,114,11,0,0,0,218,8,60,109,111,100,117,108,101, - 62,114,81,0,0,0,1,0,0,0,115,52,0,0,0,240, + 0,0,34,0,85,1,48,0,85,2,68,1,54,1,36,0, + 114,39,0,0,0,41,2,218,5,112,121,100,111,99,218,4, + 104,101,108,112,41,4,114,11,0,0,0,218,4,97,114,103, + 115,218,4,107,119,100,115,114,94,0,0,0,115,4,0,0, + 0,32,32,32,32,114,12,0,0,0,114,26,0,0,0,218, + 16,95,72,101,108,112,101,114,46,95,95,99,97,108,108,95, + 95,101,0,0,0,115,25,0,0,0,128,0,219,8,20,216, + 15,20,143,122,138,122,152,52,208,15,40,160,52,209,15,40, + 208,8,40,114,15,0,0,0,114,33,0,0,0,78,41,8, + 114,28,0,0,0,114,29,0,0,0,114,30,0,0,0,114, + 31,0,0,0,114,87,0,0,0,114,18,0,0,0,114,26, + 0,0,0,114,32,0,0,0,114,33,0,0,0,114,15,0, + 0,0,114,12,0,0,0,114,89,0,0,0,114,89,0,0, + 0,88,0,0,0,115,17,0,0,0,134,0,241,2,7,5, + 8,242,18,2,5,56,245,6,2,5,41,114,15,0,0,0, + 114,89,0,0,0,41,6,114,87,0,0,0,114,21,0,0, + 0,218,6,111,98,106,101,99,116,114,4,0,0,0,114,35, + 0,0,0,114,89,0,0,0,114,33,0,0,0,114,15,0, + 0,0,114,12,0,0,0,218,8,60,109,111,100,117,108,101, + 62,114,100,0,0,0,1,0,0,0,115,52,0,0,0,240, 3,1,1,1,241,2,2,1,4,243,20,0,1,11,244,4, 13,1,31,136,102,244,0,13,1,31,244,32,56,1,26,136, 118,244,0,56,1,26,244,118,1,15,1,41,136,102,245,0, - 15,1,41,114,13,0,0,0, + 15,1,41,114,15,0,0,0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/abc.h b/contrib/tools/python3/Python/frozen_modules/abc.h index 21933e85049..45af5c3560f 100644 --- a/contrib/tools/python3/Python/frozen_modules/abc.h +++ b/contrib/tools/python3/Python/frozen_modules/abc.h @@ -1,504 +1,496 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__abc[] = { - 227,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,0,0,0,0,243,226,0,0,0,151,0,100,0,90,0, - 100,1,132,0,90,1,2,0,71,0,100,2,132,0,100,3, - 101,2,171,3,0,0,0,0,0,0,90,3,2,0,71,0, - 100,4,132,0,100,5,101,4,171,3,0,0,0,0,0,0, - 90,5,2,0,71,0,100,6,132,0,100,7,101,6,171,3, - 0,0,0,0,0,0,90,7,9,0,100,8,100,9,108,8, - 109,9,90,9,109,10,90,10,109,11,90,11,109,12,90,12, - 109,13,90,13,109,14,90,14,109,15,90,15,109,16,90,16, - 1,0,2,0,71,0,100,10,132,0,100,11,101,17,171,3, - 0,0,0,0,0,0,90,18,100,14,132,0,90,22,2,0, - 71,0,100,15,132,0,100,16,101,18,172,17,171,3,0,0, - 0,0,0,0,90,23,121,18,35,0,101,19,36,0,114,18, - 1,0,100,8,100,12,108,20,109,18,90,18,109,9,90,9, - 1,0,100,13,101,18,95,21,0,0,0,0,0,0,0,0, - 89,0,140,38,119,0,120,3,89,0,119,1,41,19,122,51, - 65,98,115,116,114,97,99,116,32,66,97,115,101,32,67,108, - 97,115,115,101,115,32,40,65,66,67,115,41,32,97,99,99, - 111,114,100,105,110,103,32,116,111,32,80,69,80,32,51,49, - 49,57,46,99,1,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,3,0,0,0,243,20,0,0,0,151,0,100, - 1,124,0,95,0,0,0,0,0,0,0,0,0,124,0,83, - 0,41,2,97,73,2,0,0,65,32,100,101,99,111,114,97, - 116,111,114,32,105,110,100,105,99,97,116,105,110,103,32,97, - 98,115,116,114,97,99,116,32,109,101,116,104,111,100,115,46, - 10,10,32,32,32,32,82,101,113,117,105,114,101,115,32,116, - 104,97,116,32,116,104,101,32,109,101,116,97,99,108,97,115, - 115,32,105,115,32,65,66,67,77,101,116,97,32,111,114,32, - 100,101,114,105,118,101,100,32,102,114,111,109,32,105,116,46, - 32,32,65,10,32,32,32,32,99,108,97,115,115,32,116,104, - 97,116,32,104,97,115,32,97,32,109,101,116,97,99,108,97, - 115,115,32,100,101,114,105,118,101,100,32,102,114,111,109,32, - 65,66,67,77,101,116,97,32,99,97,110,110,111,116,32,98, - 101,10,32,32,32,32,105,110,115,116,97,110,116,105,97,116, + 227,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0, + 0,0,0,0,0,243,222,0,0,0,149,0,83,0,114,0, + 83,1,26,0,114,1,24,0,34,0,83,2,26,0,83,3, + 92,2,53,3,0,0,0,0,0,0,114,3,24,0,34,0, + 83,4,26,0,83,5,92,4,53,3,0,0,0,0,0,0, + 114,5,24,0,34,0,83,6,26,0,83,7,92,6,53,3, + 0,0,0,0,0,0,114,7,30,0,83,8,83,9,75,8, + 74,9,114,9,74,10,114,10,74,11,114,11,74,12,114,12, + 74,13,114,13,74,14,114,14,74,15,114,15,74,16,114,16, + 32,0,24,0,34,0,83,10,26,0,83,11,92,17,53,3, + 0,0,0,0,0,0,114,18,83,14,26,0,114,22,24,0, + 34,0,83,15,26,0,83,16,92,18,83,17,57,3,114,23, + 103,18,33,0,92,19,7,0,97,18,0,0,32,0,83,8, + 83,12,75,20,74,18,114,18,74,9,114,9,32,0,83,13, + 92,18,108,21,0,0,0,0,0,0,0,0,31,0,78,36, + 102,0,61,3,31,0,102,1,41,19,122,51,65,98,115,116, + 114,97,99,116,32,66,97,115,101,32,67,108,97,115,115,101, + 115,32,40,65,66,67,115,41,32,97,99,99,111,114,100,105, + 110,103,32,116,111,32,80,69,80,32,51,49,49,57,46,99, + 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 3,0,0,0,243,20,0,0,0,149,0,83,1,85,0,108, + 0,0,0,0,0,0,0,0,0,85,0,36,0,41,2,97, + 25,2,0,0,65,32,100,101,99,111,114,97,116,111,114,32, + 105,110,100,105,99,97,116,105,110,103,32,97,98,115,116,114, + 97,99,116,32,109,101,116,104,111,100,115,46,10,10,82,101, + 113,117,105,114,101,115,32,116,104,97,116,32,116,104,101,32, + 109,101,116,97,99,108,97,115,115,32,105,115,32,65,66,67, + 77,101,116,97,32,111,114,32,100,101,114,105,118,101,100,32, + 102,114,111,109,32,105,116,46,32,32,65,10,99,108,97,115, + 115,32,116,104,97,116,32,104,97,115,32,97,32,109,101,116, + 97,99,108,97,115,115,32,100,101,114,105,118,101,100,32,102, + 114,111,109,32,65,66,67,77,101,116,97,32,99,97,110,110, + 111,116,32,98,101,10,105,110,115,116,97,110,116,105,97,116, 101,100,32,117,110,108,101,115,115,32,97,108,108,32,111,102, 32,105,116,115,32,97,98,115,116,114,97,99,116,32,109,101, 116,104,111,100,115,32,97,114,101,32,111,118,101,114,114,105, - 100,100,101,110,46,10,32,32,32,32,84,104,101,32,97,98, - 115,116,114,97,99,116,32,109,101,116,104,111,100,115,32,99, - 97,110,32,98,101,32,99,97,108,108,101,100,32,117,115,105, - 110,103,32,97,110,121,32,111,102,32,116,104,101,32,110,111, - 114,109,97,108,10,32,32,32,32,39,115,117,112,101,114,39, - 32,99,97,108,108,32,109,101,99,104,97,110,105,115,109,115, - 46,32,32,97,98,115,116,114,97,99,116,109,101,116,104,111, - 100,40,41,32,109,97,121,32,98,101,32,117,115,101,100,32, - 116,111,32,100,101,99,108,97,114,101,10,32,32,32,32,97, - 98,115,116,114,97,99,116,32,109,101,116,104,111,100,115,32, - 102,111,114,32,112,114,111,112,101,114,116,105,101,115,32,97, - 110,100,32,100,101,115,99,114,105,112,116,111,114,115,46,10, - 10,32,32,32,32,85,115,97,103,101,58,10,10,32,32,32, - 32,32,32,32,32,99,108,97,115,115,32,67,40,109,101,116, - 97,99,108,97,115,115,61,65,66,67,77,101,116,97,41,58, - 10,32,32,32,32,32,32,32,32,32,32,32,32,64,97,98, - 115,116,114,97,99,116,109,101,116,104,111,100,10,32,32,32, - 32,32,32,32,32,32,32,32,32,100,101,102,32,109,121,95, - 97,98,115,116,114,97,99,116,95,109,101,116,104,111,100,40, - 115,101,108,102,44,32,97,114,103,49,44,32,97,114,103,50, - 44,32,97,114,103,78,41,58,10,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,46,46,46,10,32,32,32, - 32,84,41,1,218,20,95,95,105,115,97,98,115,116,114,97, - 99,116,109,101,116,104,111,100,95,95,41,1,218,7,102,117, - 110,99,111,98,106,115,1,0,0,0,32,250,12,60,102,114, - 111,122,101,110,32,97,98,99,62,218,14,97,98,115,116,114, - 97,99,116,109,101,116,104,111,100,114,6,0,0,0,7,0, - 0,0,115,17,0,0,0,128,0,240,34,0,36,40,128,71, - 212,4,32,216,11,18,128,78,243,0,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0, - 0,0,243,38,0,0,0,135,0,151,0,101,0,90,1,100, - 0,90,2,100,1,90,3,100,2,90,4,136,0,102,1,100, - 3,132,8,90,5,136,0,120,1,90,6,83,0,41,4,218, - 19,97,98,115,116,114,97,99,116,99,108,97,115,115,109,101, - 116,104,111,100,97,8,1,0,0,65,32,100,101,99,111,114, - 97,116,111,114,32,105,110,100,105,99,97,116,105,110,103,32, - 97,98,115,116,114,97,99,116,32,99,108,97,115,115,109,101, - 116,104,111,100,115,46,10,10,32,32,32,32,68,101,112,114, - 101,99,97,116,101,100,44,32,117,115,101,32,39,99,108,97, - 115,115,109,101,116,104,111,100,39,32,119,105,116,104,32,39, - 97,98,115,116,114,97,99,116,109,101,116,104,111,100,39,32, - 105,110,115,116,101,97,100,58,10,10,32,32,32,32,32,32, - 32,32,99,108,97,115,115,32,67,40,65,66,67,41,58,10, - 32,32,32,32,32,32,32,32,32,32,32,32,64,99,108,97, - 115,115,109,101,116,104,111,100,10,32,32,32,32,32,32,32, + 100,100,101,110,46,10,84,104,101,32,97,98,115,116,114,97, + 99,116,32,109,101,116,104,111,100,115,32,99,97,110,32,98, + 101,32,99,97,108,108,101,100,32,117,115,105,110,103,32,97, + 110,121,32,111,102,32,116,104,101,32,110,111,114,109,97,108, + 10,39,115,117,112,101,114,39,32,99,97,108,108,32,109,101, + 99,104,97,110,105,115,109,115,46,32,32,97,98,115,116,114, + 97,99,116,109,101,116,104,111,100,40,41,32,109,97,121,32, + 98,101,32,117,115,101,100,32,116,111,32,100,101,99,108,97, + 114,101,10,97,98,115,116,114,97,99,116,32,109,101,116,104, + 111,100,115,32,102,111,114,32,112,114,111,112,101,114,116,105, + 101,115,32,97,110,100,32,100,101,115,99,114,105,112,116,111, + 114,115,46,10,10,85,115,97,103,101,58,10,10,32,32,32, + 32,99,108,97,115,115,32,67,40,109,101,116,97,99,108,97, + 115,115,61,65,66,67,77,101,116,97,41,58,10,32,32,32, 32,32,32,32,32,64,97,98,115,116,114,97,99,116,109,101, - 116,104,111,100,10,32,32,32,32,32,32,32,32,32,32,32, - 32,100,101,102,32,109,121,95,97,98,115,116,114,97,99,116, - 95,99,108,97,115,115,109,101,116,104,111,100,40,99,108,115, - 44,32,46,46,46,41,58,10,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,46,46,46,10,10,32,32,32, - 32,84,99,2,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,50,0,0,0,149,1,151,0, - 100,1,124,1,95,0,0,0,0,0,0,0,0,0,116,2, - 0,0,0,0,0,0,0,0,137,2,124,0,141,9,0,0, - 124,1,171,1,0,0,0,0,0,0,1,0,121,0,169,2, - 78,84,169,3,114,3,0,0,0,218,5,115,117,112,101,114, - 218,8,95,95,105,110,105,116,95,95,169,3,218,4,115,101, - 108,102,218,8,99,97,108,108,97,98,108,101,218,9,95,95, - 99,108,97,115,115,95,95,115,3,0,0,0,32,32,128,114, - 5,0,0,0,114,14,0,0,0,122,28,97,98,115,116,114, - 97,99,116,99,108,97,115,115,109,101,116,104,111,100,46,95, - 95,105,110,105,116,95,95,43,0,0,0,243,24,0,0,0, - 248,128,0,216,40,44,136,8,212,8,37,220,8,13,137,7, - 209,8,24,152,24,213,8,34,114,7,0,0,0,169,7,218, - 8,95,95,110,97,109,101,95,95,218,10,95,95,109,111,100, - 117,108,101,95,95,218,12,95,95,113,117,97,108,110,97,109, - 101,95,95,218,7,95,95,100,111,99,95,95,114,3,0,0, - 0,114,14,0,0,0,218,13,95,95,99,108,97,115,115,99, - 101,108,108,95,95,169,1,114,18,0,0,0,115,1,0,0, - 0,64,114,5,0,0,0,114,9,0,0,0,114,9,0,0, - 0,28,0,0,0,243,26,0,0,0,248,132,0,241,2,10, - 5,8,240,24,0,28,32,208,4,24,247,4,2,5,35,240, - 0,2,5,35,114,7,0,0,0,114,9,0,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0, - 0,0,0,243,38,0,0,0,135,0,151,0,101,0,90,1, - 100,0,90,2,100,1,90,3,100,2,90,4,136,0,102,1, - 100,3,132,8,90,5,136,0,120,1,90,6,83,0,41,4, - 218,20,97,98,115,116,114,97,99,116,115,116,97,116,105,99, - 109,101,116,104,111,100,97,7,1,0,0,65,32,100,101,99, - 111,114,97,116,111,114,32,105,110,100,105,99,97,116,105,110, - 103,32,97,98,115,116,114,97,99,116,32,115,116,97,116,105, - 99,109,101,116,104,111,100,115,46,10,10,32,32,32,32,68, - 101,112,114,101,99,97,116,101,100,44,32,117,115,101,32,39, - 115,116,97,116,105,99,109,101,116,104,111,100,39,32,119,105, + 116,104,111,100,10,32,32,32,32,32,32,32,32,100,101,102, + 32,109,121,95,97,98,115,116,114,97,99,116,95,109,101,116, + 104,111,100,40,115,101,108,102,44,32,97,114,103,49,44,32, + 97,114,103,50,44,32,97,114,103,78,41,58,10,32,32,32, + 32,32,32,32,32,32,32,32,32,46,46,46,10,84,41,1, + 218,20,95,95,105,115,97,98,115,116,114,97,99,116,109,101, + 116,104,111,100,95,95,41,1,218,7,102,117,110,99,111,98, + 106,115,1,0,0,0,32,218,12,60,102,114,111,122,101,110, + 32,97,98,99,62,218,14,97,98,115,116,114,97,99,116,109, + 101,116,104,111,100,114,6,0,0,0,7,0,0,0,115,17, + 0,0,0,128,0,240,34,0,36,40,128,71,212,4,32,216, + 11,18,128,78,243,0,0,0,0,99,0,0,0,0,0,0, + 0,0,0,0,0,0,2,0,0,0,0,0,0,0,243,48, + 0,0,0,94,0,149,0,92,0,114,1,83,0,114,2,83, + 1,114,3,83,2,114,4,83,3,114,5,85,0,52,1,83, + 4,26,0,106,8,114,6,83,5,114,7,85,0,61,1,114, + 8,36,0,41,6,218,19,97,98,115,116,114,97,99,116,99, + 108,97,115,115,109,101,116,104,111,100,233,28,0,0,0,122, + 236,65,32,100,101,99,111,114,97,116,111,114,32,105,110,100, + 105,99,97,116,105,110,103,32,97,98,115,116,114,97,99,116, + 32,99,108,97,115,115,109,101,116,104,111,100,115,46,10,10, + 68,101,112,114,101,99,97,116,101,100,44,32,117,115,101,32, + 39,99,108,97,115,115,109,101,116,104,111,100,39,32,119,105, 116,104,32,39,97,98,115,116,114,97,99,116,109,101,116,104, 111,100,39,32,105,110,115,116,101,97,100,58,10,10,32,32, - 32,32,32,32,32,32,99,108,97,115,115,32,67,40,65,66, - 67,41,58,10,32,32,32,32,32,32,32,32,32,32,32,32, - 64,115,116,97,116,105,99,109,101,116,104,111,100,10,32,32, - 32,32,32,32,32,32,32,32,32,32,64,97,98,115,116,114, - 97,99,116,109,101,116,104,111,100,10,32,32,32,32,32,32, - 32,32,32,32,32,32,100,101,102,32,109,121,95,97,98,115, - 116,114,97,99,116,95,115,116,97,116,105,99,109,101,116,104, - 111,100,40,46,46,46,41,58,10,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,46,46,46,10,10,32,32, - 32,32,84,99,2,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,0,0,0,243,50,0,0,0,149,1,151, - 0,100,1,124,1,95,0,0,0,0,0,0,0,0,0,116, - 2,0,0,0,0,0,0,0,0,137,2,124,0,141,9,0, - 0,124,1,171,1,0,0,0,0,0,0,1,0,121,0,114, - 11,0,0,0,114,12,0,0,0,114,15,0,0,0,115,3, - 0,0,0,32,32,128,114,5,0,0,0,114,14,0,0,0, - 122,29,97,98,115,116,114,97,99,116,115,116,97,116,105,99, - 109,101,116,104,111,100,46,95,95,105,110,105,116,95,95,63, - 0,0,0,114,19,0,0,0,114,7,0,0,0,114,20,0, - 0,0,114,26,0,0,0,115,1,0,0,0,64,114,5,0, - 0,0,114,29,0,0,0,114,29,0,0,0,48,0,0,0, - 114,27,0,0,0,114,7,0,0,0,114,29,0,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 0,0,0,0,243,20,0,0,0,151,0,101,0,90,1,100, - 0,90,2,100,1,90,3,100,2,90,4,121,3,41,4,218, - 16,97,98,115,116,114,97,99,116,112,114,111,112,101,114,116, - 121,122,249,65,32,100,101,99,111,114,97,116,111,114,32,105, - 110,100,105,99,97,116,105,110,103,32,97,98,115,116,114,97, - 99,116,32,112,114,111,112,101,114,116,105,101,115,46,10,10, - 32,32,32,32,68,101,112,114,101,99,97,116,101,100,44,32, - 117,115,101,32,39,112,114,111,112,101,114,116,121,39,32,119, - 105,116,104,32,39,97,98,115,116,114,97,99,116,109,101,116, - 104,111,100,39,32,105,110,115,116,101,97,100,58,10,10,32, - 32,32,32,32,32,32,32,99,108,97,115,115,32,67,40,65, - 66,67,41,58,10,32,32,32,32,32,32,32,32,32,32,32, - 32,64,112,114,111,112,101,114,116,121,10,32,32,32,32,32, - 32,32,32,32,32,32,32,64,97,98,115,116,114,97,99,116, - 109,101,116,104,111,100,10,32,32,32,32,32,32,32,32,32, - 32,32,32,100,101,102,32,109,121,95,97,98,115,116,114,97, - 99,116,95,112,114,111,112,101,114,116,121,40,115,101,108,102, - 41,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,46,46,46,10,10,32,32,32,32,84,78,41,5, - 114,21,0,0,0,114,22,0,0,0,114,23,0,0,0,114, - 24,0,0,0,114,3,0,0,0,169,0,114,7,0,0,0, - 114,5,0,0,0,114,32,0,0,0,114,32,0,0,0,68, - 0,0,0,115,15,0,0,0,132,0,241,2,10,5,8,240, - 24,0,28,32,209,4,24,114,7,0,0,0,114,32,0,0, - 0,233,0,0,0,0,41,8,218,15,103,101,116,95,99,97, - 99,104,101,95,116,111,107,101,110,218,9,95,97,98,99,95, - 105,110,105,116,218,13,95,97,98,99,95,114,101,103,105,115, - 116,101,114,218,18,95,97,98,99,95,105,110,115,116,97,110, - 99,101,99,104,101,99,107,218,18,95,97,98,99,95,115,117, - 98,99,108,97,115,115,99,104,101,99,107,218,9,95,103,101, - 116,95,100,117,109,112,218,15,95,114,101,115,101,116,95,114, - 101,103,105,115,116,114,121,218,13,95,114,101,115,101,116,95, - 99,97,99,104,101,115,99,0,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,0,0,0,0,243,72,0,0,0, - 135,0,151,0,101,0,90,1,100,0,90,2,100,1,90,3, - 136,0,102,1,100,2,132,8,90,4,100,3,132,0,90,5, - 100,4,132,0,90,6,100,5,132,0,90,7,100,9,100,6, - 132,1,90,8,100,7,132,0,90,9,100,8,132,0,90,10, - 136,0,120,1,90,11,83,0,41,10,218,7,65,66,67,77, - 101,116,97,97,144,2,0,0,77,101,116,97,99,108,97,115, - 115,32,102,111,114,32,100,101,102,105,110,105,110,103,32,65, - 98,115,116,114,97,99,116,32,66,97,115,101,32,67,108,97, - 115,115,101,115,32,40,65,66,67,115,41,46,10,10,32,32, - 32,32,32,32,32,32,85,115,101,32,116,104,105,115,32,109, - 101,116,97,99,108,97,115,115,32,116,111,32,99,114,101,97, - 116,101,32,97,110,32,65,66,67,46,32,32,65,110,32,65, - 66,67,32,99,97,110,32,98,101,32,115,117,98,99,108,97, - 115,115,101,100,10,32,32,32,32,32,32,32,32,100,105,114, - 101,99,116,108,121,44,32,97,110,100,32,116,104,101,110,32, - 97,99,116,115,32,97,115,32,97,32,109,105,120,45,105,110, - 32,99,108,97,115,115,46,32,32,89,111,117,32,99,97,110, - 32,97,108,115,111,32,114,101,103,105,115,116,101,114,10,32, - 32,32,32,32,32,32,32,117,110,114,101,108,97,116,101,100, - 32,99,111,110,99,114,101,116,101,32,99,108,97,115,115,101, - 115,32,40,101,118,101,110,32,98,117,105,108,116,45,105,110, - 32,99,108,97,115,115,101,115,41,32,97,110,100,32,117,110, - 114,101,108,97,116,101,100,10,32,32,32,32,32,32,32,32, - 65,66,67,115,32,97,115,32,39,118,105,114,116,117,97,108, - 32,115,117,98,99,108,97,115,115,101,115,39,32,45,45,32, - 116,104,101,115,101,32,97,110,100,32,116,104,101,105,114,32, - 100,101,115,99,101,110,100,97,110,116,115,32,119,105,108,108, - 10,32,32,32,32,32,32,32,32,98,101,32,99,111,110,115, - 105,100,101,114,101,100,32,115,117,98,99,108,97,115,115,101, - 115,32,111,102,32,116,104,101,32,114,101,103,105,115,116,101, - 114,105,110,103,32,65,66,67,32,98,121,32,116,104,101,32, - 98,117,105,108,116,45,105,110,10,32,32,32,32,32,32,32, - 32,105,115,115,117,98,99,108,97,115,115,40,41,32,102,117, - 110,99,116,105,111,110,44,32,98,117,116,32,116,104,101,32, + 32,32,99,108,97,115,115,32,67,40,65,66,67,41,58,10, + 32,32,32,32,32,32,32,32,64,99,108,97,115,115,109,101, + 116,104,111,100,10,32,32,32,32,32,32,32,32,64,97,98, + 115,116,114,97,99,116,109,101,116,104,111,100,10,32,32,32, + 32,32,32,32,32,100,101,102,32,109,121,95,97,98,115,116, + 114,97,99,116,95,99,108,97,115,115,109,101,116,104,111,100, + 40,99,108,115,44,32,46,46,46,41,58,10,32,32,32,32, + 32,32,32,32,32,32,32,32,46,46,46,10,10,84,99,2, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, + 0,0,0,243,50,0,0,0,62,1,149,0,83,1,85,1, + 108,0,0,0,0,0,0,0,0,0,91,2,0,0,0,0, + 0,0,0,0,84,2,85,0,93,9,0,0,85,1,53,1, + 0,0,0,0,0,0,32,0,103,0,169,2,78,84,169,3, + 114,3,0,0,0,218,5,115,117,112,101,114,218,8,95,95, + 105,110,105,116,95,95,169,3,218,4,115,101,108,102,218,8, + 99,97,108,108,97,98,108,101,218,9,95,95,99,108,97,115, + 115,95,95,115,3,0,0,0,32,32,128,114,5,0,0,0, + 114,15,0,0,0,218,28,97,98,115,116,114,97,99,116,99, + 108,97,115,115,109,101,116,104,111,100,46,95,95,105,110,105, + 116,95,95,43,0,0,0,243,24,0,0,0,248,128,0,216, + 40,44,136,8,212,8,37,220,8,13,137,7,209,8,24,152, + 24,213,8,34,114,7,0,0,0,169,0,169,9,218,8,95, + 95,110,97,109,101,95,95,218,10,95,95,109,111,100,117,108, + 101,95,95,218,12,95,95,113,117,97,108,110,97,109,101,95, + 95,218,15,95,95,102,105,114,115,116,108,105,110,101,110,111, + 95,95,218,7,95,95,100,111,99,95,95,114,3,0,0,0, + 114,15,0,0,0,218,21,95,95,115,116,97,116,105,99,95, + 97,116,116,114,105,98,117,116,101,115,95,95,218,13,95,95, + 99,108,97,115,115,99,101,108,108,95,95,169,1,114,19,0, + 0,0,115,1,0,0,0,64,114,5,0,0,0,114,9,0, + 0,0,114,9,0,0,0,28,0,0,0,243,26,0,0,0, + 248,134,0,241,2,10,5,8,240,24,0,28,32,208,4,24, + 247,4,2,5,35,243,0,2,5,35,114,7,0,0,0,114, + 9,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, + 0,2,0,0,0,0,0,0,0,243,48,0,0,0,94,0, + 149,0,92,0,114,1,83,0,114,2,83,1,114,3,83,2, + 114,4,83,3,114,5,85,0,52,1,83,4,26,0,106,8, + 114,6,83,5,114,7,85,0,61,1,114,8,36,0,41,6, + 218,20,97,98,115,116,114,97,99,116,115,116,97,116,105,99, + 109,101,116,104,111,100,233,48,0,0,0,122,235,65,32,100, + 101,99,111,114,97,116,111,114,32,105,110,100,105,99,97,116, + 105,110,103,32,97,98,115,116,114,97,99,116,32,115,116,97, + 116,105,99,109,101,116,104,111,100,115,46,10,10,68,101,112, + 114,101,99,97,116,101,100,44,32,117,115,101,32,39,115,116, + 97,116,105,99,109,101,116,104,111,100,39,32,119,105,116,104, + 32,39,97,98,115,116,114,97,99,116,109,101,116,104,111,100, + 39,32,105,110,115,116,101,97,100,58,10,10,32,32,32,32, + 99,108,97,115,115,32,67,40,65,66,67,41,58,10,32,32, + 32,32,32,32,32,32,64,115,116,97,116,105,99,109,101,116, + 104,111,100,10,32,32,32,32,32,32,32,32,64,97,98,115, + 116,114,97,99,116,109,101,116,104,111,100,10,32,32,32,32, + 32,32,32,32,100,101,102,32,109,121,95,97,98,115,116,114, + 97,99,116,95,115,116,97,116,105,99,109,101,116,104,111,100, + 40,46,46,46,41,58,10,32,32,32,32,32,32,32,32,32, + 32,32,32,46,46,46,10,10,84,99,2,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,50, + 0,0,0,62,1,149,0,83,1,85,1,108,0,0,0,0, + 0,0,0,0,0,91,2,0,0,0,0,0,0,0,0,84, + 2,85,0,93,9,0,0,85,1,53,1,0,0,0,0,0, + 0,32,0,103,0,114,12,0,0,0,114,13,0,0,0,114, + 16,0,0,0,115,3,0,0,0,32,32,128,114,5,0,0, + 0,114,15,0,0,0,218,29,97,98,115,116,114,97,99,116, + 115,116,97,116,105,99,109,101,116,104,111,100,46,95,95,105, + 110,105,116,95,95,63,0,0,0,114,21,0,0,0,114,7, + 0,0,0,114,22,0,0,0,114,23,0,0,0,114,31,0, + 0,0,115,1,0,0,0,64,114,5,0,0,0,114,34,0, + 0,0,114,34,0,0,0,48,0,0,0,114,32,0,0,0, + 114,7,0,0,0,114,34,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,243, + 28,0,0,0,149,0,92,0,114,1,83,0,114,2,83,1, + 114,3,83,2,114,4,83,3,114,5,83,4,114,6,103,5, + 41,6,218,16,97,98,115,116,114,97,99,116,112,114,111,112, + 101,114,116,121,233,68,0,0,0,122,221,65,32,100,101,99, + 111,114,97,116,111,114,32,105,110,100,105,99,97,116,105,110, + 103,32,97,98,115,116,114,97,99,116,32,112,114,111,112,101, + 114,116,105,101,115,46,10,10,68,101,112,114,101,99,97,116, + 101,100,44,32,117,115,101,32,39,112,114,111,112,101,114,116, + 121,39,32,119,105,116,104,32,39,97,98,115,116,114,97,99, + 116,109,101,116,104,111,100,39,32,105,110,115,116,101,97,100, + 58,10,10,32,32,32,32,99,108,97,115,115,32,67,40,65, + 66,67,41,58,10,32,32,32,32,32,32,32,32,64,112,114, + 111,112,101,114,116,121,10,32,32,32,32,32,32,32,32,64, + 97,98,115,116,114,97,99,116,109,101,116,104,111,100,10,32, + 32,32,32,32,32,32,32,100,101,102,32,109,121,95,97,98, + 115,116,114,97,99,116,95,112,114,111,112,101,114,116,121,40, + 115,101,108,102,41,58,10,32,32,32,32,32,32,32,32,32, + 32,32,32,46,46,46,10,10,84,114,22,0,0,0,78,41, + 7,114,24,0,0,0,114,25,0,0,0,114,26,0,0,0, + 114,27,0,0,0,114,28,0,0,0,114,3,0,0,0,114, + 29,0,0,0,114,22,0,0,0,114,7,0,0,0,114,5, + 0,0,0,114,39,0,0,0,114,39,0,0,0,68,0,0, + 0,115,15,0,0,0,134,0,241,2,10,5,8,240,24,0, + 28,32,211,4,24,114,7,0,0,0,114,39,0,0,0,233, + 0,0,0,0,41,8,218,15,103,101,116,95,99,97,99,104, + 101,95,116,111,107,101,110,218,9,95,97,98,99,95,105,110, + 105,116,218,13,95,97,98,99,95,114,101,103,105,115,116,101, + 114,218,18,95,97,98,99,95,105,110,115,116,97,110,99,101, + 99,104,101,99,107,218,18,95,97,98,99,95,115,117,98,99, + 108,97,115,115,99,104,101,99,107,218,9,95,103,101,116,95, + 100,117,109,112,218,15,95,114,101,115,101,116,95,114,101,103, + 105,115,116,114,121,218,13,95,114,101,115,101,116,95,99,97, + 99,104,101,115,99,0,0,0,0,0,0,0,0,0,0,0, + 0,2,0,0,0,0,0,0,0,243,84,0,0,0,94,0, + 149,0,92,0,114,1,83,0,114,2,83,1,114,3,83,2, + 114,4,85,0,52,1,83,3,26,0,106,8,114,5,83,4, + 26,0,114,6,83,5,26,0,114,7,83,6,26,0,114,8, + 83,11,83,7,26,0,106,1,114,9,83,8,26,0,114,10, + 83,9,26,0,114,11,83,10,114,12,85,0,61,1,114,13, + 36,0,41,12,218,7,65,66,67,77,101,116,97,233,92,0, + 0,0,97,64,2,0,0,77,101,116,97,99,108,97,115,115, + 32,102,111,114,32,100,101,102,105,110,105,110,103,32,65,98, + 115,116,114,97,99,116,32,66,97,115,101,32,67,108,97,115, + 115,101,115,32,40,65,66,67,115,41,46,10,10,85,115,101, + 32,116,104,105,115,32,109,101,116,97,99,108,97,115,115,32, + 116,111,32,99,114,101,97,116,101,32,97,110,32,65,66,67, + 46,32,32,65,110,32,65,66,67,32,99,97,110,32,98,101, + 32,115,117,98,99,108,97,115,115,101,100,10,100,105,114,101, + 99,116,108,121,44,32,97,110,100,32,116,104,101,110,32,97, + 99,116,115,32,97,115,32,97,32,109,105,120,45,105,110,32, + 99,108,97,115,115,46,32,32,89,111,117,32,99,97,110,32, + 97,108,115,111,32,114,101,103,105,115,116,101,114,10,117,110, + 114,101,108,97,116,101,100,32,99,111,110,99,114,101,116,101, + 32,99,108,97,115,115,101,115,32,40,101,118,101,110,32,98, + 117,105,108,116,45,105,110,32,99,108,97,115,115,101,115,41, + 32,97,110,100,32,117,110,114,101,108,97,116,101,100,10,65, + 66,67,115,32,97,115,32,39,118,105,114,116,117,97,108,32, + 115,117,98,99,108,97,115,115,101,115,39,32,45,45,32,116, + 104,101,115,101,32,97,110,100,32,116,104,101,105,114,32,100, + 101,115,99,101,110,100,97,110,116,115,32,119,105,108,108,10, + 98,101,32,99,111,110,115,105,100,101,114,101,100,32,115,117, + 98,99,108,97,115,115,101,115,32,111,102,32,116,104,101,32, 114,101,103,105,115,116,101,114,105,110,103,32,65,66,67,32, - 119,111,110,39,116,32,115,104,111,119,32,117,112,32,105,110, - 10,32,32,32,32,32,32,32,32,116,104,101,105,114,32,77, - 82,79,32,40,77,101,116,104,111,100,32,82,101,115,111,108, - 117,116,105,111,110,32,79,114,100,101,114,41,32,110,111,114, - 32,119,105,108,108,32,109,101,116,104,111,100,10,32,32,32, - 32,32,32,32,32,105,109,112,108,101,109,101,110,116,97,116, - 105,111,110,115,32,100,101,102,105,110,101,100,32,98,121,32, - 116,104,101,32,114,101,103,105,115,116,101,114,105,110,103,32, - 65,66,67,32,98,101,32,99,97,108,108,97,98,108,101,32, - 40,110,111,116,10,32,32,32,32,32,32,32,32,101,118,101, - 110,32,118,105,97,32,115,117,112,101,114,40,41,41,46,10, - 32,32,32,32,32,32,32,32,99,4,0,0,0,4,0,0, - 0,0,0,0,0,6,0,0,0,11,0,0,0,243,68,0, - 0,0,149,1,151,0,116,1,0,0,0,0,0,0,0,0, - 137,6,124,0,141,4,0,0,124,0,124,1,124,2,124,3, - 102,4,105,0,124,4,164,1,142,1,125,5,116,5,0,0, - 0,0,0,0,0,0,124,5,171,1,0,0,0,0,0,0, - 1,0,124,5,83,0,169,1,78,41,3,114,13,0,0,0, - 218,7,95,95,110,101,119,95,95,114,36,0,0,0,41,7, - 218,4,109,99,108,115,218,4,110,97,109,101,218,5,98,97, - 115,101,115,218,9,110,97,109,101,115,112,97,99,101,218,6, - 107,119,97,114,103,115,218,3,99,108,115,114,18,0,0,0, - 115,7,0,0,0,32,32,32,32,32,32,128,114,5,0,0, - 0,114,47,0,0,0,122,15,65,66,67,77,101,116,97,46, - 95,95,110,101,119,95,95,105,0,0,0,115,40,0,0,0, - 248,128,0,220,18,23,145,39,145,47,160,36,168,4,168,101, - 176,89,209,18,73,192,38,209,18,73,136,67,220,12,21,144, - 99,140,78,216,19,22,136,74,114,7,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,243,26,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,124,1,171,2,0,0,0,0,0,0,83, - 0,41,1,122,123,82,101,103,105,115,116,101,114,32,97,32, - 118,105,114,116,117,97,108,32,115,117,98,99,108,97,115,115, - 32,111,102,32,97,110,32,65,66,67,46,10,10,32,32,32, - 32,32,32,32,32,32,32,32,32,82,101,116,117,114,110,115, - 32,116,104,101,32,115,117,98,99,108,97,115,115,44,32,116, - 111,32,97,108,108,111,119,32,117,115,97,103,101,32,97,115, - 32,97,32,99,108,97,115,115,32,100,101,99,111,114,97,116, - 111,114,46,10,32,32,32,32,32,32,32,32,32,32,32,32, - 41,1,114,37,0,0,0,169,2,114,53,0,0,0,218,8, - 115,117,98,99,108,97,115,115,115,2,0,0,0,32,32,114, - 5,0,0,0,218,8,114,101,103,105,115,116,101,114,122,16, - 65,66,67,77,101,116,97,46,114,101,103,105,115,116,101,114, - 110,0,0,0,115,17,0,0,0,128,0,244,10,0,20,33, - 160,19,160,104,211,19,47,208,12,47,114,7,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,26,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,124,1,171,2,0,0,0,0,0, - 0,83,0,41,1,122,39,79,118,101,114,114,105,100,101,32, - 102,111,114,32,105,115,105,110,115,116,97,110,99,101,40,105, - 110,115,116,97,110,99,101,44,32,99,108,115,41,46,41,1, - 114,38,0,0,0,41,2,114,53,0,0,0,218,8,105,110, - 115,116,97,110,99,101,115,2,0,0,0,32,32,114,5,0, - 0,0,218,17,95,95,105,110,115,116,97,110,99,101,99,104, - 101,99,107,95,95,122,25,65,66,67,77,101,116,97,46,95, + 98,121,32,116,104,101,32,98,117,105,108,116,45,105,110,10, + 105,115,115,117,98,99,108,97,115,115,40,41,32,102,117,110, + 99,116,105,111,110,44,32,98,117,116,32,116,104,101,32,114, + 101,103,105,115,116,101,114,105,110,103,32,65,66,67,32,119, + 111,110,39,116,32,115,104,111,119,32,117,112,32,105,110,10, + 116,104,101,105,114,32,77,82,79,32,40,77,101,116,104,111, + 100,32,82,101,115,111,108,117,116,105,111,110,32,79,114,100, + 101,114,41,32,110,111,114,32,119,105,108,108,32,109,101,116, + 104,111,100,10,105,109,112,108,101,109,101,110,116,97,116,105, + 111,110,115,32,100,101,102,105,110,101,100,32,98,121,32,116, + 104,101,32,114,101,103,105,115,116,101,114,105,110,103,32,65, + 66,67,32,98,101,32,99,97,108,108,97,98,108,101,32,40, + 110,111,116,10,101,118,101,110,32,118,105,97,32,115,117,112, + 101,114,40,41,41,46,10,99,4,0,0,0,4,0,0,0, + 0,0,0,0,6,0,0,0,11,0,0,0,243,66,0,0, + 0,62,1,149,0,91,0,0,0,0,0,0,0,0,0,84, + 6,85,0,93,4,0,0,34,0,88,1,88,35,52,4,48, + 0,85,4,68,1,54,1,110,5,91,5,0,0,0,0,0, + 0,0,0,85,5,53,1,0,0,0,0,0,0,32,0,85, + 5,36,0,169,1,78,41,3,114,14,0,0,0,218,7,95, + 95,110,101,119,95,95,114,43,0,0,0,41,7,218,4,109, + 99,108,115,218,4,110,97,109,101,218,5,98,97,115,101,115, + 218,9,110,97,109,101,115,112,97,99,101,218,6,107,119,97, + 114,103,115,218,3,99,108,115,114,19,0,0,0,115,7,0, + 0,0,32,32,32,32,32,32,128,114,5,0,0,0,114,55, + 0,0,0,218,15,65,66,67,77,101,116,97,46,95,95,110, + 101,119,95,95,105,0,0,0,115,36,0,0,0,248,128,0, + 220,18,23,145,39,146,47,160,36,168,101,209,18,73,192,38, + 209,18,73,136,67,220,12,21,144,99,140,78,216,19,22,136, + 74,114,7,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,24,0,0,0, + 149,0,91,1,0,0,0,0,0,0,0,0,88,1,53,2, + 0,0,0,0,0,0,36,0,41,1,122,99,82,101,103,105, + 115,116,101,114,32,97,32,118,105,114,116,117,97,108,32,115, + 117,98,99,108,97,115,115,32,111,102,32,97,110,32,65,66, + 67,46,10,10,82,101,116,117,114,110,115,32,116,104,101,32, + 115,117,98,99,108,97,115,115,44,32,116,111,32,97,108,108, + 111,119,32,117,115,97,103,101,32,97,115,32,97,32,99,108, + 97,115,115,32,100,101,99,111,114,97,116,111,114,46,10,41, + 1,114,44,0,0,0,169,2,114,61,0,0,0,218,8,115, + 117,98,99,108,97,115,115,115,2,0,0,0,32,32,114,5, + 0,0,0,218,8,114,101,103,105,115,116,101,114,218,16,65, + 66,67,77,101,116,97,46,114,101,103,105,115,116,101,114,110, + 0,0,0,115,15,0,0,0,128,0,244,10,0,20,33,160, + 19,211,19,47,208,12,47,114,7,0,0,0,99,2,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,243,24,0,0,0,149,0,91,1,0,0,0,0,0,0, + 0,0,88,1,53,2,0,0,0,0,0,0,36,0,41,1, + 122,39,79,118,101,114,114,105,100,101,32,102,111,114,32,105, + 115,105,110,115,116,97,110,99,101,40,105,110,115,116,97,110, + 99,101,44,32,99,108,115,41,46,41,1,114,45,0,0,0, + 41,2,114,61,0,0,0,218,8,105,110,115,116,97,110,99, + 101,115,2,0,0,0,32,32,114,5,0,0,0,218,17,95, 95,105,110,115,116,97,110,99,101,99,104,101,99,107,95,95, - 117,0,0,0,243,15,0,0,0,128,0,228,19,37,160,99, - 168,56,211,19,52,208,12,52,114,7,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,243,26,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,124,1,171,2,0,0,0,0,0,0,83, - 0,41,1,122,39,79,118,101,114,114,105,100,101,32,102,111, - 114,32,105,115,115,117,98,99,108,97,115,115,40,115,117,98, - 99,108,97,115,115,44,32,99,108,115,41,46,41,1,114,39, - 0,0,0,114,55,0,0,0,115,2,0,0,0,32,32,114, - 5,0,0,0,218,17,95,95,115,117,98,99,108,97,115,115, - 99,104,101,99,107,95,95,122,25,65,66,67,77,101,116,97, - 46,95,95,115,117,98,99,108,97,115,115,99,104,101,99,107, - 95,95,121,0,0,0,114,61,0,0,0,114,7,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,6,0,0, - 0,3,0,0,0,243,34,1,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,100,1,124,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,155,0, - 100,2,124,0,106,4,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,155,0,157,4,124,1,172,3, - 171,2,0,0,0,0,0,0,1,0,116,1,0,0,0,0, - 0,0,0,0,100,4,116,7,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,155,0,157,2,124,1,172,3, - 171,2,0,0,0,0,0,0,1,0,116,9,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,92,4, - 0,0,125,2,125,3,125,4,125,5,116,1,0,0,0,0, - 0,0,0,0,100,5,124,2,155,2,157,2,124,1,172,3, - 171,2,0,0,0,0,0,0,1,0,116,1,0,0,0,0, - 0,0,0,0,100,6,124,3,155,2,157,2,124,1,172,3, - 171,2,0,0,0,0,0,0,1,0,116,1,0,0,0,0, - 0,0,0,0,100,7,124,4,155,2,157,2,124,1,172,3, - 171,2,0,0,0,0,0,0,1,0,116,1,0,0,0,0, - 0,0,0,0,100,8,124,5,155,2,157,2,124,1,172,3, - 171,2,0,0,0,0,0,0,1,0,121,9,41,10,122,39, - 68,101,98,117,103,32,104,101,108,112,101,114,32,116,111,32, - 112,114,105,110,116,32,116,104,101,32,65,66,67,32,114,101, - 103,105,115,116,114,121,46,122,7,67,108,97,115,115,58,32, - 218,1,46,41,1,218,4,102,105,108,101,122,14,73,110,118, - 46,32,99,111,117,110,116,101,114,58,32,122,15,95,97,98, - 99,95,114,101,103,105,115,116,114,121,58,32,122,12,95,97, - 98,99,95,99,97,99,104,101,58,32,122,21,95,97,98,99, - 95,110,101,103,97,116,105,118,101,95,99,97,99,104,101,58, - 32,122,29,95,97,98,99,95,110,101,103,97,116,105,118,101, - 95,99,97,99,104,101,95,118,101,114,115,105,111,110,58,32, - 78,41,5,218,5,112,114,105,110,116,114,22,0,0,0,114, - 23,0,0,0,114,35,0,0,0,114,40,0,0,0,41,6, - 114,53,0,0,0,114,66,0,0,0,218,13,95,97,98,99, - 95,114,101,103,105,115,116,114,121,218,10,95,97,98,99,95, - 99,97,99,104,101,218,19,95,97,98,99,95,110,101,103,97, - 116,105,118,101,95,99,97,99,104,101,218,27,95,97,98,99, + 218,25,65,66,67,77,101,116,97,46,95,95,105,110,115,116, + 97,110,99,101,99,104,101,99,107,95,95,117,0,0,0,243, + 13,0,0,0,128,0,228,19,37,160,99,211,19,52,208,12, + 52,114,7,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,24,0,0,0, + 149,0,91,1,0,0,0,0,0,0,0,0,88,1,53,2, + 0,0,0,0,0,0,36,0,41,1,122,39,79,118,101,114, + 114,105,100,101,32,102,111,114,32,105,115,115,117,98,99,108, + 97,115,115,40,115,117,98,99,108,97,115,115,44,32,99,108, + 115,41,46,41,1,114,46,0,0,0,114,64,0,0,0,115, + 2,0,0,0,32,32,114,5,0,0,0,218,17,95,95,115, + 117,98,99,108,97,115,115,99,104,101,99,107,95,95,218,25, + 65,66,67,77,101,116,97,46,95,95,115,117,98,99,108,97, + 115,115,99,104,101,99,107,95,95,121,0,0,0,114,72,0, + 0,0,114,7,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,6,0,0,0,3,0,0,0,243,4,1,0, + 0,149,0,91,1,0,0,0,0,0,0,0,0,83,1,85, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,14,0,83,2,85,0,82,4,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14, + 0,51,4,85,1,83,3,57,2,32,0,91,1,0,0,0, + 0,0,0,0,0,83,4,91,7,0,0,0,0,0,0,0, + 0,53,0,0,0,0,0,0,0,14,0,51,2,85,1,83, + 3,57,2,32,0,91,9,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,117,4,0,0,112,35,110, + 4,110,5,91,1,0,0,0,0,0,0,0,0,83,5,85, + 2,60,2,14,0,51,2,85,1,83,3,57,2,32,0,91, + 1,0,0,0,0,0,0,0,0,83,6,85,3,60,2,14, + 0,51,2,85,1,83,3,57,2,32,0,91,1,0,0,0, + 0,0,0,0,0,83,7,85,4,60,2,14,0,51,2,85, + 1,83,3,57,2,32,0,91,1,0,0,0,0,0,0,0, + 0,83,8,85,5,60,2,14,0,51,2,85,1,83,3,57, + 2,32,0,103,9,41,10,122,39,68,101,98,117,103,32,104, + 101,108,112,101,114,32,116,111,32,112,114,105,110,116,32,116, + 104,101,32,65,66,67,32,114,101,103,105,115,116,114,121,46, + 122,7,67,108,97,115,115,58,32,218,1,46,41,1,218,4, + 102,105,108,101,122,14,73,110,118,46,32,99,111,117,110,116, + 101,114,58,32,122,15,95,97,98,99,95,114,101,103,105,115, + 116,114,121,58,32,122,12,95,97,98,99,95,99,97,99,104, + 101,58,32,122,21,95,97,98,99,95,110,101,103,97,116,105, + 118,101,95,99,97,99,104,101,58,32,122,29,95,97,98,99, 95,110,101,103,97,116,105,118,101,95,99,97,99,104,101,95, - 118,101,114,115,105,111,110,115,6,0,0,0,32,32,32,32, - 32,32,114,5,0,0,0,218,14,95,100,117,109,112,95,114, - 101,103,105,115,116,114,121,122,22,65,66,67,77,101,116,97, - 46,95,100,117,109,112,95,114,101,103,105,115,116,114,121,125, - 0,0,0,115,158,0,0,0,128,0,228,12,17,144,71,152, - 67,159,78,153,78,208,27,43,168,49,168,83,215,45,61,209, - 45,61,208,44,62,208,18,63,192,100,213,12,75,220,12,17, - 144,78,164,63,211,35,52,208,34,53,208,18,54,184,84,213, - 12,66,228,44,53,176,99,171,78,241,3,1,13,42,136,93, - 152,74,208,40,59,216,13,40,220,12,17,144,79,160,77,208, - 35,52,208,18,53,184,68,213,12,65,220,12,17,144,76,160, - 26,160,14,208,18,47,176,100,213,12,59,220,12,17,208,20, - 41,208,42,61,208,41,64,208,18,65,200,4,213,12,77,220, - 12,17,208,20,49,208,50,77,208,49,80,208,18,81,216,23, - 27,246,3,1,13,29,114,7,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 243,26,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,1,0,121,1,41, - 2,122,46,67,108,101,97,114,32,116,104,101,32,114,101,103, - 105,115,116,114,121,32,40,102,111,114,32,100,101,98,117,103, - 103,105,110,103,32,111,114,32,116,101,115,116,105,110,103,41, - 46,78,41,1,114,41,0,0,0,169,1,114,53,0,0,0, - 115,1,0,0,0,32,114,5,0,0,0,218,19,95,97,98, - 99,95,114,101,103,105,115,116,114,121,95,99,108,101,97,114, - 122,27,65,66,67,77,101,116,97,46,95,97,98,99,95,114, - 101,103,105,115,116,114,121,95,99,108,101,97,114,137,0,0, - 0,115,10,0,0,0,128,0,228,12,27,152,67,213,12,32, - 114,7,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,3,0,0,0,243,26,0,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,1,0,121,1,41,2,122,44,67,108,101, - 97,114,32,116,104,101,32,99,97,99,104,101,115,32,40,102, - 111,114,32,100,101,98,117,103,103,105,110,103,32,111,114,32, - 116,101,115,116,105,110,103,41,46,78,41,1,114,42,0,0, - 0,114,74,0,0,0,115,1,0,0,0,32,114,5,0,0, - 0,218,17,95,97,98,99,95,99,97,99,104,101,115,95,99, - 108,101,97,114,122,25,65,66,67,77,101,116,97,46,95,97, - 98,99,95,99,97,99,104,101,115,95,99,108,101,97,114,141, - 0,0,0,115,10,0,0,0,128,0,228,12,25,152,35,213, - 12,30,114,7,0,0,0,114,46,0,0,0,41,12,114,21, - 0,0,0,114,22,0,0,0,114,23,0,0,0,114,24,0, - 0,0,114,47,0,0,0,114,57,0,0,0,114,60,0,0, - 0,114,63,0,0,0,114,72,0,0,0,114,75,0,0,0, - 114,77,0,0,0,114,25,0,0,0,114,26,0,0,0,115, - 1,0,0,0,64,114,5,0,0,0,114,44,0,0,0,114, - 44,0,0,0,92,0,0,0,115,43,0,0,0,248,132,0, - 241,2,11,9,12,244,24,3,9,23,242,10,5,9,48,242, - 14,2,9,53,242,8,2,9,53,243,8,10,9,29,242,24, - 2,9,33,246,8,2,9,31,114,7,0,0,0,114,44,0, - 0,0,41,2,114,44,0,0,0,114,35,0,0,0,218,3, - 97,98,99,99,1,0,0,0,0,0,0,0,0,0,0,0, - 7,0,0,0,3,0,0,0,243,118,1,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,124,0,100,1,171,2,0, - 0,0,0,0,0,115,2,124,0,83,0,116,3,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,125,1,124, - 0,106,4,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,68,0,93,64,0,0,125,2,116,7,0, - 0,0,0,0,0,0,0,124,2,100,1,100,2,171,3,0, - 0,0,0,0,0,68,0,93,46,0,0,125,3,116,7,0, - 0,0,0,0,0,0,0,124,0,124,3,100,3,171,3,0, - 0,0,0,0,0,125,4,116,7,0,0,0,0,0,0,0, - 0,124,4,100,4,100,5,171,3,0,0,0,0,0,0,115, - 1,140,30,124,1,106,9,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,3,171,1,0,0,0, - 0,0,0,1,0,140,48,4,0,140,66,4,0,124,0,106, - 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,13,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,68, - 0,93,36,0,0,92,2,0,0,125,3,125,4,116,7,0, - 0,0,0,0,0,0,0,124,4,100,4,100,5,171,3,0, - 0,0,0,0,0,115,1,140,20,124,1,106,9,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 3,171,1,0,0,0,0,0,0,1,0,140,38,4,0,116, - 15,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,124,0,95,8,0,0,0,0,0,0,0,0,124, - 0,83,0,41,6,97,155,2,0,0,82,101,99,97,108,99, - 117,108,97,116,101,32,116,104,101,32,115,101,116,32,111,102, - 32,97,98,115,116,114,97,99,116,32,109,101,116,104,111,100, - 115,32,111,102,32,97,110,32,97,98,115,116,114,97,99,116, - 32,99,108,97,115,115,46,10,10,32,32,32,32,73,102,32, - 97,32,99,108,97,115,115,32,104,97,115,32,104,97,100,32, - 111,110,101,32,111,102,32,105,116,115,32,97,98,115,116,114, - 97,99,116,32,109,101,116,104,111,100,115,32,105,109,112,108, - 101,109,101,110,116,101,100,32,97,102,116,101,114,32,116,104, - 101,10,32,32,32,32,99,108,97,115,115,32,119,97,115,32, - 99,114,101,97,116,101,100,44,32,116,104,101,32,109,101,116, - 104,111,100,32,119,105,108,108,32,110,111,116,32,98,101,32, - 99,111,110,115,105,100,101,114,101,100,32,105,109,112,108,101, - 109,101,110,116,101,100,32,117,110,116,105,108,10,32,32,32, - 32,116,104,105,115,32,102,117,110,99,116,105,111,110,32,105, - 115,32,99,97,108,108,101,100,46,32,65,108,116,101,114,110, - 97,116,105,118,101,108,121,44,32,105,102,32,97,32,110,101, - 119,32,97,98,115,116,114,97,99,116,32,109,101,116,104,111, - 100,32,104,97,115,32,98,101,101,110,10,32,32,32,32,97, - 100,100,101,100,32,116,111,32,116,104,101,32,99,108,97,115, - 115,44,32,105,116,32,119,105,108,108,32,111,110,108,121,32, - 98,101,32,99,111,110,115,105,100,101,114,101,100,32,97,110, - 32,97,98,115,116,114,97,99,116,32,109,101,116,104,111,100, - 32,111,102,32,116,104,101,10,32,32,32,32,99,108,97,115, - 115,32,97,102,116,101,114,32,116,104,105,115,32,102,117,110, - 99,116,105,111,110,32,105,115,32,99,97,108,108,101,100,46, - 10,10,32,32,32,32,84,104,105,115,32,102,117,110,99,116, - 105,111,110,32,115,104,111,117,108,100,32,98,101,32,99,97, - 108,108,101,100,32,98,101,102,111,114,101,32,97,110,121,32, - 117,115,101,32,105,115,32,109,97,100,101,32,111,102,32,116, - 104,101,32,99,108,97,115,115,44,10,32,32,32,32,117,115, - 117,97,108,108,121,32,105,110,32,99,108,97,115,115,32,100, - 101,99,111,114,97,116,111,114,115,32,116,104,97,116,32,97, - 100,100,32,109,101,116,104,111,100,115,32,116,111,32,116,104, - 101,32,115,117,98,106,101,99,116,32,99,108,97,115,115,46, - 10,10,32,32,32,32,82,101,116,117,114,110,115,32,99,108, - 115,44,32,116,111,32,97,108,108,111,119,32,117,115,97,103, - 101,32,97,115,32,97,32,99,108,97,115,115,32,100,101,99, - 111,114,97,116,111,114,46,10,10,32,32,32,32,73,102,32, - 99,108,115,32,105,115,32,110,111,116,32,97,110,32,105,110, - 115,116,97,110,99,101,32,111,102,32,65,66,67,77,101,116, - 97,44,32,100,111,101,115,32,110,111,116,104,105,110,103,46, - 10,32,32,32,32,218,19,95,95,97,98,115,116,114,97,99, - 116,109,101,116,104,111,100,115,95,95,114,33,0,0,0,78, - 114,3,0,0,0,70,41,9,218,7,104,97,115,97,116,116, - 114,218,3,115,101,116,218,9,95,95,98,97,115,101,115,95, - 95,218,7,103,101,116,97,116,116,114,218,3,97,100,100,218, - 8,95,95,100,105,99,116,95,95,218,5,105,116,101,109,115, - 218,9,102,114,111,122,101,110,115,101,116,114,80,0,0,0, - 41,5,114,53,0,0,0,218,9,97,98,115,116,114,97,99, - 116,115,218,4,115,99,108,115,114,49,0,0,0,218,5,118, - 97,108,117,101,115,5,0,0,0,32,32,32,32,32,114,5, - 0,0,0,218,22,117,112,100,97,116,101,95,97,98,115,116, - 114,97,99,116,109,101,116,104,111,100,115,114,92,0,0,0, - 146,0,0,0,115,178,0,0,0,128,0,244,32,0,12,19, - 144,51,208,24,45,212,11,46,240,8,0,16,19,136,10,228, + 118,101,114,115,105,111,110,58,32,78,41,5,218,5,112,114, + 105,110,116,114,25,0,0,0,114,26,0,0,0,114,42,0, + 0,0,114,47,0,0,0,41,6,114,61,0,0,0,114,78, + 0,0,0,218,13,95,97,98,99,95,114,101,103,105,115,116, + 114,121,218,10,95,97,98,99,95,99,97,99,104,101,218,19, + 95,97,98,99,95,110,101,103,97,116,105,118,101,95,99,97, + 99,104,101,218,27,95,97,98,99,95,110,101,103,97,116,105, + 118,101,95,99,97,99,104,101,95,118,101,114,115,105,111,110, + 115,6,0,0,0,32,32,32,32,32,32,114,5,0,0,0, + 218,14,95,100,117,109,112,95,114,101,103,105,115,116,114,121, + 218,22,65,66,67,77,101,116,97,46,95,100,117,109,112,95, + 114,101,103,105,115,116,114,121,125,0,0,0,115,156,0,0, + 0,128,0,228,12,17,144,71,152,67,159,78,153,78,208,27, + 43,168,49,168,83,215,45,61,209,45,61,208,44,62,208,18, + 63,192,100,210,12,75,220,12,17,144,78,164,63,211,35,52, + 208,34,53,208,18,54,184,84,210,12,66,228,44,53,176,99, + 171,78,241,3,1,13,42,136,93,208,40,59,216,13,40,220, + 12,17,144,79,160,77,209,35,52,208,18,53,184,68,210,12, + 65,220,12,17,144,76,160,26,161,14,208,18,47,176,100,210, + 12,59,220,12,17,208,20,41,208,42,61,209,41,64,208,18, + 65,200,4,210,12,77,220,12,17,208,20,49,208,50,77,209, + 49,80,208,18,81,216,23,27,243,3,1,13,29,114,7,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,243,26,0,0,0,149,0,91,1, + 0,0,0,0,0,0,0,0,85,0,53,1,0,0,0,0, + 0,0,32,0,103,1,41,2,122,46,67,108,101,97,114,32, + 116,104,101,32,114,101,103,105,115,116,114,121,32,40,102,111, + 114,32,100,101,98,117,103,103,105,110,103,32,111,114,32,116, + 101,115,116,105,110,103,41,46,78,41,1,114,48,0,0,0, + 169,1,114,61,0,0,0,115,1,0,0,0,32,114,5,0, + 0,0,218,19,95,97,98,99,95,114,101,103,105,115,116,114, + 121,95,99,108,101,97,114,218,27,65,66,67,77,101,116,97, + 46,95,97,98,99,95,114,101,103,105,115,116,114,121,95,99, + 108,101,97,114,137,0,0,0,115,10,0,0,0,128,0,228, + 12,27,152,67,213,12,32,114,7,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,243,26,0,0,0,149,0,91,1,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,32,0,103,1, + 41,2,122,44,67,108,101,97,114,32,116,104,101,32,99,97, + 99,104,101,115,32,40,102,111,114,32,100,101,98,117,103,103, + 105,110,103,32,111,114,32,116,101,115,116,105,110,103,41,46, + 78,41,1,114,49,0,0,0,114,87,0,0,0,115,1,0, + 0,0,32,114,5,0,0,0,218,17,95,97,98,99,95,99, + 97,99,104,101,115,95,99,108,101,97,114,218,25,65,66,67, + 77,101,116,97,46,95,97,98,99,95,99,97,99,104,101,115, + 95,99,108,101,97,114,141,0,0,0,115,10,0,0,0,128, + 0,228,12,25,152,35,213,12,30,114,7,0,0,0,114,22, + 0,0,0,114,54,0,0,0,41,14,114,24,0,0,0,114, + 25,0,0,0,114,26,0,0,0,114,27,0,0,0,114,28, + 0,0,0,114,55,0,0,0,114,66,0,0,0,114,70,0, + 0,0,114,74,0,0,0,114,84,0,0,0,114,88,0,0, + 0,114,91,0,0,0,114,29,0,0,0,114,30,0,0,0, + 114,31,0,0,0,115,1,0,0,0,64,114,5,0,0,0, + 114,51,0,0,0,114,51,0,0,0,92,0,0,0,115,48, + 0,0,0,248,134,0,241,2,11,9,12,245,24,3,9,23, + 242,10,5,9,48,242,14,2,9,53,242,8,2,9,53,244, + 8,10,9,29,242,24,2,9,33,247,8,2,9,31,240,0, + 2,9,31,114,7,0,0,0,114,51,0,0,0,41,2,114, + 51,0,0,0,114,42,0,0,0,218,3,97,98,99,99,1, + 0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,3, + 0,0,0,243,160,1,0,0,149,0,91,1,0,0,0,0, + 0,0,0,0,85,0,83,1,53,2,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,100,2,0,0,85,0,36,0, + 91,3,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,110,1,85,0,82,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,19,0,72,72,0,0, + 110,2,91,7,0,0,0,0,0,0,0,0,85,2,83,1, + 83,2,53,3,0,0,0,0,0,0,19,0,72,52,0,0, + 110,3,91,7,0,0,0,0,0,0,0,0,88,3,83,3, + 53,3,0,0,0,0,0,0,110,4,91,7,0,0,0,0, + 0,0,0,0,85,4,83,4,83,5,53,3,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,100,2,0,0,77,35, + 0,0,85,1,82,9,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,3,53,1,0,0,0,0, + 0,0,32,0,77,54,0,0,11,0,32,0,77,74,0,0, + 11,0,32,0,85,0,82,10,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,82,13,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,19,0,72,42,0,0,117,2,0,0, + 112,52,91,7,0,0,0,0,0,0,0,0,85,4,83,4, + 83,5,53,3,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,100,2,0,0,77,25,0,0,85,1,82,9,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,3,53,1,0,0,0,0,0,0,32,0,77,44,0,0, + 11,0,32,0,91,15,0,0,0,0,0,0,0,0,85,1, + 53,1,0,0,0,0,0,0,85,0,108,8,0,0,0,0, + 0,0,0,0,85,0,36,0,41,6,97,115,2,0,0,82, + 101,99,97,108,99,117,108,97,116,101,32,116,104,101,32,115, + 101,116,32,111,102,32,97,98,115,116,114,97,99,116,32,109, + 101,116,104,111,100,115,32,111,102,32,97,110,32,97,98,115, + 116,114,97,99,116,32,99,108,97,115,115,46,10,10,73,102, + 32,97,32,99,108,97,115,115,32,104,97,115,32,104,97,100, + 32,111,110,101,32,111,102,32,105,116,115,32,97,98,115,116, + 114,97,99,116,32,109,101,116,104,111,100,115,32,105,109,112, + 108,101,109,101,110,116,101,100,32,97,102,116,101,114,32,116, + 104,101,10,99,108,97,115,115,32,119,97,115,32,99,114,101, + 97,116,101,100,44,32,116,104,101,32,109,101,116,104,111,100, + 32,119,105,108,108,32,110,111,116,32,98,101,32,99,111,110, + 115,105,100,101,114,101,100,32,105,109,112,108,101,109,101,110, + 116,101,100,32,117,110,116,105,108,10,116,104,105,115,32,102, + 117,110,99,116,105,111,110,32,105,115,32,99,97,108,108,101, + 100,46,32,65,108,116,101,114,110,97,116,105,118,101,108,121, + 44,32,105,102,32,97,32,110,101,119,32,97,98,115,116,114, + 97,99,116,32,109,101,116,104,111,100,32,104,97,115,32,98, + 101,101,110,10,97,100,100,101,100,32,116,111,32,116,104,101, + 32,99,108,97,115,115,44,32,105,116,32,119,105,108,108,32, + 111,110,108,121,32,98,101,32,99,111,110,115,105,100,101,114, + 101,100,32,97,110,32,97,98,115,116,114,97,99,116,32,109, + 101,116,104,111,100,32,111,102,32,116,104,101,10,99,108,97, + 115,115,32,97,102,116,101,114,32,116,104,105,115,32,102,117, + 110,99,116,105,111,110,32,105,115,32,99,97,108,108,101,100, + 46,10,10,84,104,105,115,32,102,117,110,99,116,105,111,110, + 32,115,104,111,117,108,100,32,98,101,32,99,97,108,108,101, + 100,32,98,101,102,111,114,101,32,97,110,121,32,117,115,101, + 32,105,115,32,109,97,100,101,32,111,102,32,116,104,101,32, + 99,108,97,115,115,44,10,117,115,117,97,108,108,121,32,105, + 110,32,99,108,97,115,115,32,100,101,99,111,114,97,116,111, + 114,115,32,116,104,97,116,32,97,100,100,32,109,101,116,104, + 111,100,115,32,116,111,32,116,104,101,32,115,117,98,106,101, + 99,116,32,99,108,97,115,115,46,10,10,82,101,116,117,114, + 110,115,32,99,108,115,44,32,116,111,32,97,108,108,111,119, + 32,117,115,97,103,101,32,97,115,32,97,32,99,108,97,115, + 115,32,100,101,99,111,114,97,116,111,114,46,10,10,73,102, + 32,99,108,115,32,105,115,32,110,111,116,32,97,110,32,105, + 110,115,116,97,110,99,101,32,111,102,32,65,66,67,77,101, + 116,97,44,32,100,111,101,115,32,110,111,116,104,105,110,103, + 46,10,218,19,95,95,97,98,115,116,114,97,99,116,109,101, + 116,104,111,100,115,95,95,114,22,0,0,0,78,114,3,0, + 0,0,70,41,9,218,7,104,97,115,97,116,116,114,218,3, + 115,101,116,218,9,95,95,98,97,115,101,115,95,95,218,7, + 103,101,116,97,116,116,114,218,3,97,100,100,218,8,95,95, + 100,105,99,116,95,95,218,5,105,116,101,109,115,218,9,102, + 114,111,122,101,110,115,101,116,114,95,0,0,0,41,5,114, + 61,0,0,0,218,9,97,98,115,116,114,97,99,116,115,218, + 4,115,99,108,115,114,57,0,0,0,218,5,118,97,108,117, + 101,115,5,0,0,0,32,32,32,32,32,114,5,0,0,0, + 218,22,117,112,100,97,116,101,95,97,98,115,116,114,97,99, + 116,109,101,116,104,111,100,115,114,107,0,0,0,146,0,0, + 0,115,183,0,0,0,128,0,244,32,0,12,19,144,51,208, + 24,45,215,11,46,209,11,46,240,8,0,16,19,136,10,228, 16,19,147,5,128,73,240,6,0,17,20,151,13,148,13,136, 4,220,20,27,152,68,208,34,55,184,18,214,20,60,136,68, - 220,20,27,152,67,160,20,160,116,211,20,44,136,69,220,15, - 22,144,117,208,30,52,176,101,213,15,60,216,16,25,151,13, - 145,13,152,100,213,16,35,241,7,0,21,61,240,3,0,17, - 30,240,12,0,24,27,151,124,145,124,215,23,41,209,23,41, - 214,23,43,137,11,136,4,136,101,220,11,18,144,53,208,26, - 48,176,37,213,11,56,216,12,21,143,77,137,77,152,36,213, - 12,31,240,5,0,24,44,244,6,0,31,40,168,9,211,30, - 50,128,67,212,4,27,216,11,14,128,74,114,7,0,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,0,0,0,0,243,20,0,0,0,151,0,101,0,90,1, - 100,0,90,2,100,1,90,3,100,2,90,4,121,3,41,4, - 218,3,65,66,67,122,86,72,101,108,112,101,114,32,99,108, - 97,115,115,32,116,104,97,116,32,112,114,111,118,105,100,101, - 115,32,97,32,115,116,97,110,100,97,114,100,32,119,97,121, - 32,116,111,32,99,114,101,97,116,101,32,97,110,32,65,66, - 67,32,117,115,105,110,103,10,32,32,32,32,105,110,104,101, - 114,105,116,97,110,99,101,46,10,32,32,32,32,114,33,0, - 0,0,78,41,5,114,21,0,0,0,114,22,0,0,0,114, - 23,0,0,0,114,24,0,0,0,218,9,95,95,115,108,111, - 116,115,95,95,114,33,0,0,0,114,7,0,0,0,114,5, - 0,0,0,114,94,0,0,0,114,94,0,0,0,184,0,0, - 0,115,14,0,0,0,132,0,241,2,2,5,8,240,6,0, - 17,19,129,73,114,7,0,0,0,114,94,0,0,0,41,1, - 218,9,109,101,116,97,99,108,97,115,115,78,41,24,114,24, - 0,0,0,114,6,0,0,0,218,11,99,108,97,115,115,109, - 101,116,104,111,100,114,9,0,0,0,218,12,115,116,97,116, - 105,99,109,101,116,104,111,100,114,29,0,0,0,218,8,112, - 114,111,112,101,114,116,121,114,32,0,0,0,218,4,95,97, - 98,99,114,35,0,0,0,114,36,0,0,0,114,37,0,0, - 0,114,38,0,0,0,114,39,0,0,0,114,40,0,0,0, - 114,41,0,0,0,114,42,0,0,0,218,4,116,121,112,101, - 114,44,0,0,0,218,11,73,109,112,111,114,116,69,114,114, - 111,114,218,7,95,112,121,95,97,98,99,114,22,0,0,0, - 114,92,0,0,0,114,94,0,0,0,114,33,0,0,0,114, - 7,0,0,0,114,5,0,0,0,218,8,60,109,111,100,117, - 108,101,62,114,104,0,0,0,1,0,0,0,115,131,0,0, - 0,240,3,1,1,1,241,8,0,1,58,242,6,18,1,19, - 244,42,17,1,35,152,43,244,0,17,1,35,244,40,17,1, - 35,152,60,244,0,17,1,35,244,40,13,1,32,144,120,244, - 0,13,1,32,240,32,59,1,31,247,2,2,5,54,247,0, - 2,5,54,243,0,2,5,54,244,14,51,5,31,144,36,244, - 0,51,5,31,242,108,1,35,1,15,244,76,1,4,1,19, - 144,71,246,0,4,1,19,248,240,65,3,0,8,19,242,0, - 2,1,31,223,4,48,216,25,30,128,71,214,4,22,240,5, - 2,1,31,250,115,17,0,0,0,168,20,65,23,0,193,23, - 20,65,46,3,193,45,1,65,46,3, + 220,20,27,152,67,160,116,211,20,44,136,69,220,15,22,144, + 117,208,30,52,176,101,215,15,60,211,15,60,216,16,25,151, + 13,145,13,152,100,214,16,35,243,7,0,21,61,241,3,0, + 17,30,240,12,0,24,27,151,124,145,124,215,23,41,209,23, + 41,214,23,43,137,11,136,4,220,11,18,144,53,208,26,48, + 176,37,215,11,56,211,11,56,216,12,21,143,77,137,77,152, + 36,214,12,31,241,5,0,24,44,244,6,0,31,40,168,9, + 211,30,50,128,67,212,4,27,216,11,14,128,74,114,7,0, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,1, + 0,0,0,0,0,0,0,243,28,0,0,0,149,0,92,0, + 114,1,83,0,114,2,83,1,114,3,83,2,114,4,83,3, + 114,5,83,3,114,6,103,4,41,5,218,3,65,66,67,233, + 184,0,0,0,122,78,72,101,108,112,101,114,32,99,108,97, + 115,115,32,116,104,97,116,32,112,114,111,118,105,100,101,115, + 32,97,32,115,116,97,110,100,97,114,100,32,119,97,121,32, + 116,111,32,99,114,101,97,116,101,32,97,110,32,65,66,67, + 32,117,115,105,110,103,10,105,110,104,101,114,105,116,97,110, + 99,101,46,10,114,22,0,0,0,78,41,7,114,24,0,0, + 0,114,25,0,0,0,114,26,0,0,0,114,27,0,0,0, + 114,28,0,0,0,218,9,95,95,115,108,111,116,115,95,95, + 114,29,0,0,0,114,22,0,0,0,114,7,0,0,0,114, + 5,0,0,0,114,109,0,0,0,114,109,0,0,0,184,0, + 0,0,115,14,0,0,0,134,0,241,2,2,5,8,240,6, + 0,17,19,131,73,114,7,0,0,0,114,109,0,0,0,41, + 1,218,9,109,101,116,97,99,108,97,115,115,78,41,24,114, + 28,0,0,0,114,6,0,0,0,218,11,99,108,97,115,115, + 109,101,116,104,111,100,114,9,0,0,0,218,12,115,116,97, + 116,105,99,109,101,116,104,111,100,114,34,0,0,0,218,8, + 112,114,111,112,101,114,116,121,114,39,0,0,0,218,4,95, + 97,98,99,114,42,0,0,0,114,43,0,0,0,114,44,0, + 0,0,114,45,0,0,0,114,46,0,0,0,114,47,0,0, + 0,114,48,0,0,0,114,49,0,0,0,218,4,116,121,112, + 101,114,51,0,0,0,218,11,73,109,112,111,114,116,69,114, + 114,111,114,218,7,95,112,121,95,97,98,99,114,25,0,0, + 0,114,107,0,0,0,114,109,0,0,0,114,22,0,0,0, + 114,7,0,0,0,114,5,0,0,0,218,8,60,109,111,100, + 117,108,101,62,114,120,0,0,0,1,0,0,0,115,131,0, + 0,0,240,3,1,1,1,241,8,0,1,58,242,6,18,1, + 19,244,42,17,1,35,152,43,244,0,17,1,35,244,40,17, + 1,35,152,60,244,0,17,1,35,244,40,13,1,32,144,120, + 244,0,13,1,32,240,32,59,1,31,247,2,2,5,54,247, + 0,2,5,54,243,0,2,5,54,244,14,51,5,31,144,36, + 244,0,51,5,31,242,108,1,35,1,15,244,76,1,4,1, + 19,144,71,243,0,4,1,19,248,240,65,3,0,8,19,243, + 0,2,1,31,223,4,48,216,25,30,128,71,214,4,22,240, + 5,2,1,31,250,115,17,0,0,0,168,20,65,20,0,193, + 20,21,65,44,3,193,43,1,65,44,3, }; diff --git a/contrib/tools/python3/Python/frozen_modules/codecs.h b/contrib/tools/python3/Python/frozen_modules/codecs.h index 51020562ae7..28ef0139c59 100644 --- a/contrib/tools/python3/Python/frozen_modules/codecs.h +++ b/contrib/tools/python3/Python/frozen_modules/codecs.h @@ -1,2643 +1,2536 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__codecs[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,0,0,0,0,243,136,2,0,0,151,0,100,0,90,0, - 100,1,100,2,108,1,90,1,100,1,100,2,108,2,90,2, - 9,0,100,1,100,3,108,3,173,2,1,0,103,0,100,5, - 162,1,90,7,100,6,90,8,100,7,120,1,90,9,90,10, - 100,8,120,1,90,11,90,12,100,9,90,13,100,10,90,14, - 101,2,106,30,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,11,107,40,0,0,114,7,101,10, - 120,1,90,16,90,17,101,13,90,18,110,6,101,12,120,1, - 90,16,90,17,101,14,90,18,101,10,90,19,101,12,90,20, - 101,13,90,21,101,14,90,22,2,0,71,0,100,12,132,0, - 100,13,101,23,171,3,0,0,0,0,0,0,90,24,2,0, - 71,0,100,14,132,0,100,15,171,2,0,0,0,0,0,0, - 90,25,2,0,71,0,100,16,132,0,100,17,101,26,171,3, - 0,0,0,0,0,0,90,27,2,0,71,0,100,18,132,0, - 100,19,101,27,171,3,0,0,0,0,0,0,90,28,2,0, - 71,0,100,20,132,0,100,21,101,26,171,3,0,0,0,0, - 0,0,90,29,2,0,71,0,100,22,132,0,100,23,101,29, - 171,3,0,0,0,0,0,0,90,30,2,0,71,0,100,24, - 132,0,100,25,101,25,171,3,0,0,0,0,0,0,90,31, - 2,0,71,0,100,26,132,0,100,27,101,25,171,3,0,0, - 0,0,0,0,90,32,2,0,71,0,100,28,132,0,100,29, - 171,2,0,0,0,0,0,0,90,33,2,0,71,0,100,30, - 132,0,100,31,171,2,0,0,0,0,0,0,90,34,100,50, - 100,33,132,1,90,35,100,51,100,34,132,1,90,36,100,35, - 132,0,90,37,100,36,132,0,90,38,100,37,132,0,90,39, - 100,38,132,0,90,40,100,39,132,0,90,41,100,40,132,0, - 90,42,100,52,100,41,132,1,90,43,100,52,100,42,132,1, - 90,44,100,43,132,0,90,45,100,44,132,0,90,46,9,0, - 2,0,101,47,100,32,171,1,0,0,0,0,0,0,90,48, - 2,0,101,47,100,45,171,1,0,0,0,0,0,0,90,49, - 2,0,101,47,100,46,171,1,0,0,0,0,0,0,90,50, - 2,0,101,47,100,47,171,1,0,0,0,0,0,0,90,51, - 2,0,101,47,100,48,171,1,0,0,0,0,0,0,90,52, - 2,0,101,47,100,49,171,1,0,0,0,0,0,0,90,53, - 100,1,90,55,101,55,114,5,100,1,100,2,108,56,90,56, - 121,2,121,2,35,0,101,4,36,0,114,16,90,5,2,0, - 101,6,100,4,101,5,122,6,0,0,171,1,0,0,0,0, - 0,0,130,1,100,2,90,5,91,5,119,1,119,0,120,3, - 89,0,119,1,35,0,101,54,36,0,114,15,1,0,100,2, - 90,48,100,2,90,49,100,2,90,50,100,2,90,51,100,2, - 90,52,100,2,90,53,89,0,140,53,119,0,120,3,89,0, - 119,1,41,53,122,158,32,99,111,100,101,99,115,32,45,45, - 32,80,121,116,104,111,110,32,67,111,100,101,99,32,82,101, - 103,105,115,116,114,121,44,32,65,80,73,32,97,110,100,32, - 104,101,108,112,101,114,115,46,10,10,10,87,114,105,116,116, - 101,110,32,98,121,32,77,97,114,99,45,65,110,100,114,101, - 32,76,101,109,98,117,114,103,32,40,109,97,108,64,108,101, - 109,98,117,114,103,46,99,111,109,41,46,10,10,40,99,41, - 32,67,111,112,121,114,105,103,104,116,32,67,78,82,73,44, - 32,65,108,108,32,82,105,103,104,116,115,32,82,101,115,101, - 114,118,101,100,46,32,78,79,32,87,65,82,82,65,78,84, - 89,46,10,10,233,0,0,0,0,78,41,1,218,1,42,122, - 37,70,97,105,108,101,100,32,116,111,32,108,111,97,100,32, - 116,104,101,32,98,117,105,108,116,105,110,32,99,111,100,101, - 99,115,58,32,37,115,41,44,218,8,114,101,103,105,115,116, - 101,114,218,6,108,111,111,107,117,112,218,4,111,112,101,110, - 218,11,69,110,99,111,100,101,100,70,105,108,101,218,3,66, - 79,77,218,6,66,79,77,95,66,69,218,6,66,79,77,95, - 76,69,218,8,66,79,77,51,50,95,66,69,218,8,66,79, - 77,51,50,95,76,69,218,8,66,79,77,54,52,95,66,69, - 218,8,66,79,77,54,52,95,76,69,218,8,66,79,77,95, - 85,84,70,56,218,9,66,79,77,95,85,84,70,49,54,218, - 12,66,79,77,95,85,84,70,49,54,95,76,69,218,12,66, - 79,77,95,85,84,70,49,54,95,66,69,218,9,66,79,77, - 95,85,84,70,51,50,218,12,66,79,77,95,85,84,70,51, - 50,95,76,69,218,12,66,79,77,95,85,84,70,51,50,95, - 66,69,218,9,67,111,100,101,99,73,110,102,111,218,5,67, - 111,100,101,99,218,18,73,110,99,114,101,109,101,110,116,97, - 108,69,110,99,111,100,101,114,218,18,73,110,99,114,101,109, - 101,110,116,97,108,68,101,99,111,100,101,114,218,12,83,116, - 114,101,97,109,82,101,97,100,101,114,218,12,83,116,114,101, - 97,109,87,114,105,116,101,114,218,18,83,116,114,101,97,109, - 82,101,97,100,101,114,87,114,105,116,101,114,218,13,83,116, - 114,101,97,109,82,101,99,111,100,101,114,218,10,103,101,116, - 101,110,99,111,100,101,114,218,10,103,101,116,100,101,99,111, - 100,101,114,218,21,103,101,116,105,110,99,114,101,109,101,110, - 116,97,108,101,110,99,111,100,101,114,218,21,103,101,116,105, - 110,99,114,101,109,101,110,116,97,108,100,101,99,111,100,101, - 114,218,9,103,101,116,114,101,97,100,101,114,218,9,103,101, - 116,119,114,105,116,101,114,218,6,101,110,99,111,100,101,218, - 6,100,101,99,111,100,101,218,10,105,116,101,114,101,110,99, - 111,100,101,218,10,105,116,101,114,100,101,99,111,100,101,218, - 13,115,116,114,105,99,116,95,101,114,114,111,114,115,218,13, - 105,103,110,111,114,101,95,101,114,114,111,114,115,218,14,114, - 101,112,108,97,99,101,95,101,114,114,111,114,115,218,24,120, - 109,108,99,104,97,114,114,101,102,114,101,112,108,97,99,101, - 95,101,114,114,111,114,115,218,23,98,97,99,107,115,108,97, - 115,104,114,101,112,108,97,99,101,95,101,114,114,111,114,115, - 218,18,110,97,109,101,114,101,112,108,97,99,101,95,101,114, - 114,111,114,115,218,14,114,101,103,105,115,116,101,114,95,101, - 114,114,111,114,218,12,108,111,111,107,117,112,95,101,114,114, - 111,114,115,3,0,0,0,239,187,191,115,2,0,0,0,255, - 254,115,2,0,0,0,254,255,115,4,0,0,0,255,254,0, - 0,115,4,0,0,0,0,0,254,255,218,6,108,105,116,116, - 108,101,99,0,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,0,0,0,0,243,44,0,0,0,151,0,101,0, - 90,1,100,0,90,2,100,1,90,3,100,2,90,4,9,0, - 9,0,100,7,100,3,100,4,156,1,100,5,132,3,90,5, - 100,6,132,0,90,6,121,3,41,8,114,22,0,0,0,122, - 48,67,111,100,101,99,32,100,101,116,97,105,108,115,32,119, - 104,101,110,32,108,111,111,107,105,110,103,32,117,112,32,116, - 104,101,32,99,111,100,101,99,32,114,101,103,105,115,116,114, - 121,84,78,41,1,218,17,95,105,115,95,116,101,120,116,95, - 101,110,99,111,100,105,110,103,99,8,0,0,0,0,0,0, - 0,1,0,0,0,7,0,0,0,3,0,0,0,243,174,0, - 0,0,151,0,116,0,0,0,0,0,0,0,0,0,106,3, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,124,1,124,2,124,3,124,4,102,4,171,2, - 0,0,0,0,0,0,125,9,124,7,124,9,95,2,0,0, - 0,0,0,0,0,0,124,1,124,9,95,3,0,0,0,0, - 0,0,0,0,124,2,124,9,95,4,0,0,0,0,0,0, - 0,0,124,5,124,9,95,5,0,0,0,0,0,0,0,0, - 124,6,124,9,95,6,0,0,0,0,0,0,0,0,124,4, - 124,9,95,7,0,0,0,0,0,0,0,0,124,3,124,9, - 95,8,0,0,0,0,0,0,0,0,124,8,129,7,124,8, - 124,9,95,9,0,0,0,0,0,0,0,0,124,9,83,0, - 169,1,78,41,10,218,5,116,117,112,108,101,218,7,95,95, - 110,101,119,95,95,218,4,110,97,109,101,114,36,0,0,0, - 114,37,0,0,0,218,18,105,110,99,114,101,109,101,110,116, - 97,108,101,110,99,111,100,101,114,218,18,105,110,99,114,101, - 109,101,110,116,97,108,100,101,99,111,100,101,114,218,12,115, - 116,114,101,97,109,119,114,105,116,101,114,218,12,115,116,114, - 101,97,109,114,101,97,100,101,114,114,50,0,0,0,41,10, - 218,3,99,108,115,114,36,0,0,0,114,37,0,0,0,114, - 59,0,0,0,114,58,0,0,0,114,56,0,0,0,114,57, - 0,0,0,114,55,0,0,0,114,50,0,0,0,218,4,115, - 101,108,102,115,10,0,0,0,32,32,32,32,32,32,32,32, - 32,32,250,15,60,102,114,111,122,101,110,32,99,111,100,101, - 99,115,62,114,54,0,0,0,122,17,67,111,100,101,99,73, - 110,102,111,46,95,95,110,101,119,95,95,94,0,0,0,115, - 101,0,0,0,128,0,244,6,0,16,21,143,125,137,125,152, - 83,160,54,168,54,176,60,192,28,208,34,78,211,15,79,136, - 4,216,20,24,136,4,140,9,216,22,28,136,4,140,11,216, - 22,28,136,4,140,11,216,34,52,136,4,212,8,31,216,34, - 52,136,4,212,8,31,216,28,40,136,4,212,8,25,216,28, - 40,136,4,212,8,25,216,11,28,208,11,40,216,37,54,136, - 68,212,12,34,216,15,19,136,11,243,0,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,3, - 0,0,0,243,138,0,0,0,151,0,100,1,124,0,106,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,4,0,0, + 0,0,0,0,0,243,160,2,0,0,149,0,83,0,114,0, + 83,1,83,2,75,1,114,1,83,1,83,2,75,2,114,2, + 30,0,83,1,83,3,75,3,55,2,32,0,47,0,83,5, + 81,1,114,7,83,6,114,8,83,7,61,1,114,9,114,10, + 83,8,61,1,114,11,114,12,83,9,114,13,83,10,114,14, + 92,2,82,30,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,11,58,88,0,0,97,7,0,0, + 92,10,61,1,114,16,114,17,92,13,114,18,79,6,92,12, + 61,1,114,16,114,17,92,14,114,18,92,10,114,19,92,12, + 114,20,92,13,114,21,92,14,114,22,24,0,34,0,83,12, + 26,0,83,13,92,23,53,3,0,0,0,0,0,0,114,24, + 24,0,34,0,83,14,26,0,83,15,53,2,0,0,0,0, + 0,0,114,25,24,0,34,0,83,16,26,0,83,17,92,26, + 53,3,0,0,0,0,0,0,114,27,24,0,34,0,83,18, + 26,0,83,19,92,27,53,3,0,0,0,0,0,0,114,28, + 24,0,34,0,83,20,26,0,83,21,92,26,53,3,0,0, + 0,0,0,0,114,29,24,0,34,0,83,22,26,0,83,23, + 92,29,53,3,0,0,0,0,0,0,114,30,24,0,34,0, + 83,24,26,0,83,25,92,25,53,3,0,0,0,0,0,0, + 114,31,24,0,34,0,83,26,26,0,83,27,92,25,53,3, + 0,0,0,0,0,0,114,32,24,0,34,0,83,28,26,0, + 83,29,53,2,0,0,0,0,0,0,114,33,24,0,34,0, + 83,30,26,0,83,31,53,2,0,0,0,0,0,0,114,34, + 83,50,83,33,26,0,106,1,114,35,83,51,83,34,26,0, + 106,1,114,36,83,35,26,0,114,37,83,36,26,0,114,38, + 83,37,26,0,114,39,83,38,26,0,114,40,83,39,26,0, + 114,41,83,40,26,0,114,42,83,52,83,41,26,0,106,1, + 114,43,83,52,83,42,26,0,106,1,114,44,83,43,26,0, + 114,45,83,44,26,0,114,46,30,0,92,47,34,0,83,32, + 53,1,0,0,0,0,0,0,114,48,92,47,34,0,83,45, + 53,1,0,0,0,0,0,0,114,49,92,47,34,0,83,46, + 53,1,0,0,0,0,0,0,114,50,92,47,34,0,83,47, + 53,1,0,0,0,0,0,0,114,51,92,47,34,0,83,48, + 53,1,0,0,0,0,0,0,114,52,92,47,34,0,83,49, + 53,1,0,0,0,0,0,0,114,53,83,1,114,55,92,55, + 40,0,0,0,0,0,0,0,97,5,0,0,83,1,83,2, + 75,56,114,56,103,2,103,2,33,0,92,4,7,0,97,16, + 0,0,114,5,92,6,34,0,83,4,92,5,45,6,0,0, + 53,1,0,0,0,0,0,0,101,1,83,2,114,5,67,5, + 102,1,102,0,61,3,31,0,102,1,33,0,92,54,7,0, + 97,15,0,0,32,0,83,2,114,48,83,2,114,49,83,2, + 114,50,83,2,114,51,83,2,114,52,83,2,114,53,31,0, + 78,60,102,0,61,3,31,0,102,1,41,53,122,157,99,111, + 100,101,99,115,32,45,45,32,80,121,116,104,111,110,32,67, + 111,100,101,99,32,82,101,103,105,115,116,114,121,44,32,65, + 80,73,32,97,110,100,32,104,101,108,112,101,114,115,46,10, + 10,10,87,114,105,116,116,101,110,32,98,121,32,77,97,114, + 99,45,65,110,100,114,101,32,76,101,109,98,117,114,103,32, + 40,109,97,108,64,108,101,109,98,117,114,103,46,99,111,109, + 41,46,10,10,40,99,41,32,67,111,112,121,114,105,103,104, + 116,32,67,78,82,73,44,32,65,108,108,32,82,105,103,104, + 116,115,32,82,101,115,101,114,118,101,100,46,32,78,79,32, + 87,65,82,82,65,78,84,89,46,10,10,233,0,0,0,0, + 78,41,1,218,1,42,122,37,70,97,105,108,101,100,32,116, + 111,32,108,111,97,100,32,116,104,101,32,98,117,105,108,116, + 105,110,32,99,111,100,101,99,115,58,32,37,115,41,44,218, + 8,114,101,103,105,115,116,101,114,218,6,108,111,111,107,117, + 112,218,4,111,112,101,110,218,11,69,110,99,111,100,101,100, + 70,105,108,101,218,3,66,79,77,218,6,66,79,77,95,66, + 69,218,6,66,79,77,95,76,69,218,8,66,79,77,51,50, + 95,66,69,218,8,66,79,77,51,50,95,76,69,218,8,66, + 79,77,54,52,95,66,69,218,8,66,79,77,54,52,95,76, + 69,218,8,66,79,77,95,85,84,70,56,218,9,66,79,77, + 95,85,84,70,49,54,218,12,66,79,77,95,85,84,70,49, + 54,95,76,69,218,12,66,79,77,95,85,84,70,49,54,95, + 66,69,218,9,66,79,77,95,85,84,70,51,50,218,12,66, + 79,77,95,85,84,70,51,50,95,76,69,218,12,66,79,77, + 95,85,84,70,51,50,95,66,69,218,9,67,111,100,101,99, + 73,110,102,111,218,5,67,111,100,101,99,218,18,73,110,99, + 114,101,109,101,110,116,97,108,69,110,99,111,100,101,114,218, + 18,73,110,99,114,101,109,101,110,116,97,108,68,101,99,111, + 100,101,114,218,12,83,116,114,101,97,109,82,101,97,100,101, + 114,218,12,83,116,114,101,97,109,87,114,105,116,101,114,218, + 18,83,116,114,101,97,109,82,101,97,100,101,114,87,114,105, + 116,101,114,218,13,83,116,114,101,97,109,82,101,99,111,100, + 101,114,218,10,103,101,116,101,110,99,111,100,101,114,218,10, + 103,101,116,100,101,99,111,100,101,114,218,21,103,101,116,105, + 110,99,114,101,109,101,110,116,97,108,101,110,99,111,100,101, + 114,218,21,103,101,116,105,110,99,114,101,109,101,110,116,97, + 108,100,101,99,111,100,101,114,218,9,103,101,116,114,101,97, + 100,101,114,218,9,103,101,116,119,114,105,116,101,114,218,6, + 101,110,99,111,100,101,218,6,100,101,99,111,100,101,218,10, + 105,116,101,114,101,110,99,111,100,101,218,10,105,116,101,114, + 100,101,99,111,100,101,218,13,115,116,114,105,99,116,95,101, + 114,114,111,114,115,218,13,105,103,110,111,114,101,95,101,114, + 114,111,114,115,218,14,114,101,112,108,97,99,101,95,101,114, + 114,111,114,115,218,24,120,109,108,99,104,97,114,114,101,102, + 114,101,112,108,97,99,101,95,101,114,114,111,114,115,218,23, + 98,97,99,107,115,108,97,115,104,114,101,112,108,97,99,101, + 95,101,114,114,111,114,115,218,18,110,97,109,101,114,101,112, + 108,97,99,101,95,101,114,114,111,114,115,218,14,114,101,103, + 105,115,116,101,114,95,101,114,114,111,114,218,12,108,111,111, + 107,117,112,95,101,114,114,111,114,115,3,0,0,0,239,187, + 191,115,2,0,0,0,255,254,115,2,0,0,0,254,255,115, + 4,0,0,0,255,254,0,0,115,4,0,0,0,0,0,254, + 255,218,6,108,105,116,116,108,101,99,0,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,0,0,0,0,243,62, + 0,0,0,149,0,92,0,114,1,83,0,114,2,83,1,114, + 3,83,2,114,4,83,3,114,5,30,0,30,0,83,10,83, + 4,83,5,46,1,83,6,26,0,106,2,106,1,114,6,83, + 7,26,0,114,7,83,8,26,0,114,8,83,9,114,9,103, + 4,41,11,114,22,0,0,0,233,83,0,0,0,122,48,67, + 111,100,101,99,32,100,101,116,97,105,108,115,32,119,104,101, + 110,32,108,111,111,107,105,110,103,32,117,112,32,116,104,101, + 32,99,111,100,101,99,32,114,101,103,105,115,116,114,121,84, + 78,41,1,218,17,95,105,115,95,116,101,120,116,95,101,110, + 99,111,100,105,110,103,99,8,0,0,0,0,0,0,0,1, + 0,0,0,7,0,0,0,3,0,0,0,243,156,0,0,0, + 149,0,91,0,0,0,0,0,0,0,0,0,82,3,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,106,6,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,116,9,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,102,4,122,6,0,0, - 83,0,41,2,78,122,37,60,37,115,46,37,115,32,111,98, - 106,101,99,116,32,102,111,114,32,101,110,99,111,100,105,110, - 103,32,37,115,32,97,116,32,37,35,120,62,41,5,218,9, - 95,95,99,108,97,115,115,95,95,218,10,95,95,109,111,100, - 117,108,101,95,95,218,12,95,95,113,117,97,108,110,97,109, - 101,95,95,114,55,0,0,0,218,2,105,100,169,1,114,61, - 0,0,0,115,1,0,0,0,32,114,62,0,0,0,218,8, - 95,95,114,101,112,114,95,95,122,18,67,111,100,101,99,73, - 110,102,111,46,95,95,114,101,112,114,95,95,109,0,0,0, - 115,58,0,0,0,128,0,216,15,54,216,17,21,151,30,145, - 30,215,17,42,209,17,42,168,68,175,78,169,78,215,44,71, - 209,44,71,216,17,21,151,25,145,25,156,66,152,116,155,72, - 240,3,1,17,38,241,3,2,16,38,240,0,2,9,38,114, - 63,0,0,0,41,5,78,78,78,78,78,41,7,218,8,95, - 95,110,97,109,101,95,95,114,66,0,0,0,114,67,0,0, - 0,218,7,95,95,100,111,99,95,95,114,50,0,0,0,114, - 54,0,0,0,114,70,0,0,0,169,0,114,63,0,0,0, - 114,62,0,0,0,114,22,0,0,0,114,22,0,0,0,83, - 0,0,0,115,37,0,0,0,132,0,217,4,58,240,16,0, - 25,29,208,4,21,224,69,73,216,63,67,240,3,13,5,20, - 224,29,33,244,5,13,5,20,243,30,3,5,38,114,63,0, - 0,0,114,22,0,0,0,99,0,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,0,0,0,0,243,32,0,0, - 0,151,0,101,0,90,1,100,0,90,2,100,1,90,3,100, - 5,100,2,132,1,90,4,100,5,100,3,132,1,90,5,121, - 4,41,6,114,23,0,0,0,97,57,4,0,0,32,68,101, - 102,105,110,101,115,32,116,104,101,32,105,110,116,101,114,102, - 97,99,101,32,102,111,114,32,115,116,97,116,101,108,101,115, - 115,32,101,110,99,111,100,101,114,115,47,100,101,99,111,100, - 101,114,115,46,10,10,32,32,32,32,32,32,32,32,84,104, - 101,32,46,101,110,99,111,100,101,40,41,47,46,100,101,99, - 111,100,101,40,41,32,109,101,116,104,111,100,115,32,109,97, - 121,32,117,115,101,32,100,105,102,102,101,114,101,110,116,32, - 101,114,114,111,114,10,32,32,32,32,32,32,32,32,104,97, - 110,100,108,105,110,103,32,115,99,104,101,109,101,115,32,98, - 121,32,112,114,111,118,105,100,105,110,103,32,116,104,101,32, - 101,114,114,111,114,115,32,97,114,103,117,109,101,110,116,46, - 32,84,104,101,115,101,10,32,32,32,32,32,32,32,32,115, - 116,114,105,110,103,32,118,97,108,117,101,115,32,97,114,101, - 32,112,114,101,100,101,102,105,110,101,100,58,10,10,32,32, - 32,32,32,32,32,32,32,39,115,116,114,105,99,116,39,32, - 45,32,114,97,105,115,101,32,97,32,86,97,108,117,101,69, - 114,114,111,114,32,101,114,114,111,114,32,40,111,114,32,97, - 32,115,117,98,99,108,97,115,115,41,10,32,32,32,32,32, - 32,32,32,32,39,105,103,110,111,114,101,39,32,45,32,105, - 103,110,111,114,101,32,116,104,101,32,99,104,97,114,97,99, - 116,101,114,32,97,110,100,32,99,111,110,116,105,110,117,101, - 32,119,105,116,104,32,116,104,101,32,110,101,120,116,10,32, - 32,32,32,32,32,32,32,32,39,114,101,112,108,97,99,101, - 39,32,45,32,114,101,112,108,97,99,101,32,119,105,116,104, - 32,97,32,115,117,105,116,97,98,108,101,32,114,101,112,108, - 97,99,101,109,101,110,116,32,99,104,97,114,97,99,116,101, - 114,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,80,121,116,104,111,110,32,119,105, - 108,108,32,117,115,101,32,116,104,101,32,111,102,102,105,99, - 105,97,108,32,85,43,70,70,70,68,32,82,69,80,76,65, - 67,69,77,69,78,84,10,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,67,72,65,82,65, - 67,84,69,82,32,102,111,114,32,116,104,101,32,98,117,105, - 108,116,105,110,32,85,110,105,99,111,100,101,32,99,111,100, - 101,99,115,32,111,110,10,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,100,101,99,111,100, - 105,110,103,32,97,110,100,32,39,63,39,32,111,110,32,101, - 110,99,111,100,105,110,103,46,10,32,32,32,32,32,32,32, - 32,32,39,115,117,114,114,111,103,97,116,101,101,115,99,97, - 112,101,39,32,45,32,114,101,112,108,97,99,101,32,119,105, - 116,104,32,112,114,105,118,97,116,101,32,99,111,100,101,32, - 112,111,105,110,116,115,32,85,43,68,67,110,110,46,10,32, - 32,32,32,32,32,32,32,32,39,120,109,108,99,104,97,114, - 114,101,102,114,101,112,108,97,99,101,39,32,45,32,82,101, - 112,108,97,99,101,32,119,105,116,104,32,116,104,101,32,97, - 112,112,114,111,112,114,105,97,116,101,32,88,77,76,10,32, + 88,1,88,35,85,4,52,4,53,2,0,0,0,0,0,0, + 110,9,88,121,108,2,0,0,0,0,0,0,0,0,88,25, + 108,3,0,0,0,0,0,0,0,0,88,41,108,4,0,0, + 0,0,0,0,0,0,88,89,108,5,0,0,0,0,0,0, + 0,0,88,105,108,6,0,0,0,0,0,0,0,0,88,73, + 108,7,0,0,0,0,0,0,0,0,88,57,108,8,0,0, + 0,0,0,0,0,0,85,8,98,6,0,0,88,137,108,9, + 0,0,0,0,0,0,0,0,85,9,36,0,169,1,78,41, + 10,218,5,116,117,112,108,101,218,7,95,95,110,101,119,95, + 95,218,4,110,97,109,101,114,36,0,0,0,114,37,0,0, + 0,218,18,105,110,99,114,101,109,101,110,116,97,108,101,110, + 99,111,100,101,114,218,18,105,110,99,114,101,109,101,110,116, + 97,108,100,101,99,111,100,101,114,218,12,115,116,114,101,97, + 109,119,114,105,116,101,114,218,12,115,116,114,101,97,109,114, + 101,97,100,101,114,114,51,0,0,0,41,10,218,3,99,108, + 115,114,36,0,0,0,114,37,0,0,0,114,60,0,0,0, + 114,59,0,0,0,114,57,0,0,0,114,58,0,0,0,114, + 56,0,0,0,114,51,0,0,0,218,4,115,101,108,102,115, + 10,0,0,0,32,32,32,32,32,32,32,32,32,32,218,15, + 60,102,114,111,122,101,110,32,99,111,100,101,99,115,62,114, + 55,0,0,0,218,17,67,111,100,101,99,73,110,102,111,46, + 95,95,110,101,119,95,95,94,0,0,0,115,81,0,0,0, + 128,0,244,6,0,16,21,143,125,137,125,152,83,168,54,192, + 28,208,34,78,211,15,79,136,4,216,20,24,140,9,216,22, + 28,140,11,216,22,28,140,11,216,34,52,212,8,31,216,34, + 52,212,8,31,216,28,40,212,8,25,216,28,40,212,8,25, + 216,11,28,209,11,40,216,37,54,212,12,34,216,15,19,136, + 11,243,0,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,7,0,0,0,3,0,0,0,243,138,0,0,0, + 149,0,83,1,85,0,82,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0, + 82,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,82,4,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,0,82,6,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,91,9, + 0,0,0,0,0,0,0,0,85,0,53,1,0,0,0,0, + 0,0,52,4,45,6,0,0,36,0,41,2,78,122,37,60, + 37,115,46,37,115,32,111,98,106,101,99,116,32,102,111,114, + 32,101,110,99,111,100,105,110,103,32,37,115,32,97,116,32, + 37,35,120,62,41,5,218,9,95,95,99,108,97,115,115,95, + 95,218,10,95,95,109,111,100,117,108,101,95,95,218,12,95, + 95,113,117,97,108,110,97,109,101,95,95,114,56,0,0,0, + 218,2,105,100,169,1,114,62,0,0,0,115,1,0,0,0, + 32,114,63,0,0,0,218,8,95,95,114,101,112,114,95,95, + 218,18,67,111,100,101,99,73,110,102,111,46,95,95,114,101, + 112,114,95,95,109,0,0,0,115,58,0,0,0,128,0,216, + 15,54,216,17,21,151,30,145,30,215,17,42,209,17,42,168, + 68,175,78,169,78,215,44,71,209,44,71,216,17,21,151,25, + 145,25,156,66,152,116,155,72,240,3,1,17,38,241,3,2, + 16,38,240,0,2,9,38,114,65,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,243,24,0,0,0,149,0,91,1,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,36,0,114,53, + 0,0,0,41,1,114,54,0,0,0,114,71,0,0,0,115, + 1,0,0,0,32,114,63,0,0,0,218,14,95,95,103,101, + 116,110,101,119,97,114,103,115,95,95,218,24,67,111,100,101, + 99,73,110,102,111,46,95,95,103,101,116,110,101,119,97,114, + 103,115,95,95,114,0,0,0,115,12,0,0,0,128,0,220, + 15,20,144,84,139,123,208,8,26,114,65,0,0,0,41,8, + 114,51,0,0,0,114,37,0,0,0,114,36,0,0,0,114, + 58,0,0,0,114,57,0,0,0,114,56,0,0,0,114,60, + 0,0,0,114,59,0,0,0,41,5,78,78,78,78,78,41, + 10,218,8,95,95,110,97,109,101,95,95,114,68,0,0,0, + 114,69,0,0,0,218,15,95,95,102,105,114,115,116,108,105, + 110,101,110,111,95,95,218,7,95,95,100,111,99,95,95,114, + 51,0,0,0,114,55,0,0,0,114,72,0,0,0,114,75, + 0,0,0,218,21,95,95,115,116,97,116,105,99,95,97,116, + 116,114,105,98,117,116,101,115,95,95,169,0,114,65,0,0, + 0,114,63,0,0,0,114,22,0,0,0,114,22,0,0,0, + 83,0,0,0,115,42,0,0,0,134,0,217,4,58,240,16, + 0,25,29,208,4,21,224,69,73,216,63,67,240,3,13,5, + 20,224,29,33,246,5,13,5,20,242,30,3,5,38,245,10, + 1,5,27,114,65,0,0,0,114,22,0,0,0,99,0,0, + 0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0, + 0,0,243,44,0,0,0,149,0,92,0,114,1,83,0,114, + 2,83,1,114,3,83,2,114,4,83,7,83,3,26,0,106, + 1,114,5,83,7,83,4,26,0,106,1,114,6,83,5,114, + 7,103,6,41,8,114,23,0,0,0,233,117,0,0,0,97, + 180,3,0,0,68,101,102,105,110,101,115,32,116,104,101,32, + 105,110,116,101,114,102,97,99,101,32,102,111,114,32,115,116, + 97,116,101,108,101,115,115,32,101,110,99,111,100,101,114,115, + 47,100,101,99,111,100,101,114,115,46,10,10,84,104,101,32, + 46,101,110,99,111,100,101,40,41,47,46,100,101,99,111,100, + 101,40,41,32,109,101,116,104,111,100,115,32,109,97,121,32, + 117,115,101,32,100,105,102,102,101,114,101,110,116,32,101,114, + 114,111,114,10,104,97,110,100,108,105,110,103,32,115,99,104, + 101,109,101,115,32,98,121,32,112,114,111,118,105,100,105,110, + 103,32,116,104,101,32,101,114,114,111,114,115,32,97,114,103, + 117,109,101,110,116,46,32,84,104,101,115,101,10,115,116,114, + 105,110,103,32,118,97,108,117,101,115,32,97,114,101,32,112, + 114,101,100,101,102,105,110,101,100,58,10,10,32,39,115,116, + 114,105,99,116,39,32,45,32,114,97,105,115,101,32,97,32, + 86,97,108,117,101,69,114,114,111,114,32,101,114,114,111,114, + 32,40,111,114,32,97,32,115,117,98,99,108,97,115,115,41, + 10,32,39,105,103,110,111,114,101,39,32,45,32,105,103,110, + 111,114,101,32,116,104,101,32,99,104,97,114,97,99,116,101, + 114,32,97,110,100,32,99,111,110,116,105,110,117,101,32,119, + 105,116,104,32,116,104,101,32,110,101,120,116,10,32,39,114, + 101,112,108,97,99,101,39,32,45,32,114,101,112,108,97,99, + 101,32,119,105,116,104,32,97,32,115,117,105,116,97,98,108, + 101,32,114,101,112,108,97,99,101,109,101,110,116,32,99,104, + 97,114,97,99,116,101,114,59,10,32,32,32,32,32,32,32, + 32,32,32,32,32,80,121,116,104,111,110,32,119,105,108,108, + 32,117,115,101,32,116,104,101,32,111,102,102,105,99,105,97, + 108,32,85,43,70,70,70,68,32,82,69,80,76,65,67,69, + 77,69,78,84,10,32,32,32,32,32,32,32,32,32,32,32, + 32,67,72,65,82,65,67,84,69,82,32,102,111,114,32,116, + 104,101,32,98,117,105,108,116,105,110,32,85,110,105,99,111, + 100,101,32,99,111,100,101,99,115,32,111,110,10,32,32,32, + 32,32,32,32,32,32,32,32,32,100,101,99,111,100,105,110, + 103,32,97,110,100,32,39,63,39,32,111,110,32,101,110,99, + 111,100,105,110,103,46,10,32,39,115,117,114,114,111,103,97, + 116,101,101,115,99,97,112,101,39,32,45,32,114,101,112,108, + 97,99,101,32,119,105,116,104,32,112,114,105,118,97,116,101, + 32,99,111,100,101,32,112,111,105,110,116,115,32,85,43,68, + 67,110,110,46,10,32,39,120,109,108,99,104,97,114,114,101, + 102,114,101,112,108,97,99,101,39,32,45,32,82,101,112,108, + 97,99,101,32,119,105,116,104,32,116,104,101,32,97,112,112, + 114,111,112,114,105,97,116,101,32,88,77,76,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,104, - 97,114,97,99,116,101,114,32,114,101,102,101,114,101,110,99, - 101,32,40,111,110,108,121,32,102,111,114,32,101,110,99,111, - 100,105,110,103,41,46,10,32,32,32,32,32,32,32,32,32, - 39,98,97,99,107,115,108,97,115,104,114,101,112,108,97,99, - 101,39,32,32,45,32,82,101,112,108,97,99,101,32,119,105, - 116,104,32,98,97,99,107,115,108,97,115,104,101,100,32,101, - 115,99,97,112,101,32,115,101,113,117,101,110,99,101,115,46, - 10,32,32,32,32,32,32,32,32,32,39,110,97,109,101,114, - 101,112,108,97,99,101,39,32,32,32,32,32,32,32,45,32, - 82,101,112,108,97,99,101,32,119,105,116,104,32,92,78,123, - 46,46,46,125,32,101,115,99,97,112,101,32,115,101,113,117, - 101,110,99,101,115,10,32,32,32,32,32,32,32,32,32,32, + 32,32,32,32,99,104,97,114,97,99,116,101,114,32,114,101, + 102,101,114,101,110,99,101,32,40,111,110,108,121,32,102,111, + 114,32,101,110,99,111,100,105,110,103,41,46,10,32,39,98, + 97,99,107,115,108,97,115,104,114,101,112,108,97,99,101,39, + 32,32,45,32,82,101,112,108,97,99,101,32,119,105,116,104, + 32,98,97,99,107,115,108,97,115,104,101,100,32,101,115,99, + 97,112,101,32,115,101,113,117,101,110,99,101,115,46,10,32, + 39,110,97,109,101,114,101,112,108,97,99,101,39,32,32,32, + 32,32,32,32,45,32,82,101,112,108,97,99,101,32,119,105, + 116,104,32,92,78,123,46,46,46,125,32,101,115,99,97,112, + 101,32,115,101,113,117,101,110,99,101,115,10,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,40,111,110,108,121,32,102,111,114,32,101, - 110,99,111,100,105,110,103,41,46,10,10,32,32,32,32,32, - 32,32,32,84,104,101,32,115,101,116,32,111,102,32,97,108, - 108,111,119,101,100,32,118,97,108,117,101,115,32,99,97,110, - 32,98,101,32,101,120,116,101,110,100,101,100,32,118,105,97, - 32,114,101,103,105,115,116,101,114,95,101,114,114,111,114,46, - 10,10,32,32,32,32,99,3,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,3,0,0,0,243,14,0,0,0, - 151,0,116,0,0,0,0,0,0,0,0,0,130,1,41,1, - 97,35,2,0,0,32,69,110,99,111,100,101,115,32,116,104, - 101,32,111,98,106,101,99,116,32,105,110,112,117,116,32,97, - 110,100,32,114,101,116,117,114,110,115,32,97,32,116,117,112, - 108,101,32,40,111,117,116,112,117,116,10,32,32,32,32,32, - 32,32,32,32,32,32,32,111,98,106,101,99,116,44,32,108, - 101,110,103,116,104,32,99,111,110,115,117,109,101,100,41,46, - 10,10,32,32,32,32,32,32,32,32,32,32,32,32,101,114, - 114,111,114,115,32,100,101,102,105,110,101,115,32,116,104,101, - 32,101,114,114,111,114,32,104,97,110,100,108,105,110,103,32, - 116,111,32,97,112,112,108,121,46,32,73,116,32,100,101,102, - 97,117,108,116,115,32,116,111,10,32,32,32,32,32,32,32, - 32,32,32,32,32,39,115,116,114,105,99,116,39,32,104,97, - 110,100,108,105,110,103,46,10,10,32,32,32,32,32,32,32, - 32,32,32,32,32,84,104,101,32,109,101,116,104,111,100,32, - 109,97,121,32,110,111,116,32,115,116,111,114,101,32,115,116, - 97,116,101,32,105,110,32,116,104,101,32,67,111,100,101,99, - 32,105,110,115,116,97,110,99,101,46,32,85,115,101,10,32, - 32,32,32,32,32,32,32,32,32,32,32,83,116,114,101,97, - 109,87,114,105,116,101,114,32,102,111,114,32,99,111,100,101, - 99,115,32,119,104,105,99,104,32,104,97,118,101,32,116,111, - 32,107,101,101,112,32,115,116,97,116,101,32,105,110,32,111, - 114,100,101,114,32,116,111,10,32,32,32,32,32,32,32,32, - 32,32,32,32,109,97,107,101,32,101,110,99,111,100,105,110, - 103,32,101,102,102,105,99,105,101,110,116,46,10,10,32,32, - 32,32,32,32,32,32,32,32,32,32,84,104,101,32,101,110, - 99,111,100,101,114,32,109,117,115,116,32,98,101,32,97,98, - 108,101,32,116,111,32,104,97,110,100,108,101,32,122,101,114, - 111,32,108,101,110,103,116,104,32,105,110,112,117,116,32,97, - 110,100,10,32,32,32,32,32,32,32,32,32,32,32,32,114, - 101,116,117,114,110,32,97,110,32,101,109,112,116,121,32,111, - 98,106,101,99,116,32,111,102,32,116,104,101,32,111,117,116, - 112,117,116,32,111,98,106,101,99,116,32,116,121,112,101,32, - 105,110,32,116,104,105,115,10,32,32,32,32,32,32,32,32, - 32,32,32,32,115,105,116,117,97,116,105,111,110,46,10,10, - 32,32,32,32,32,32,32,32,169,1,218,19,78,111,116,73, - 109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,169, - 3,114,61,0,0,0,218,5,105,110,112,117,116,218,6,101, - 114,114,111,114,115,115,3,0,0,0,32,32,32,114,62,0, - 0,0,114,36,0,0,0,122,12,67,111,100,101,99,46,101, - 110,99,111,100,101,138,0,0,0,115,10,0,0,0,128,0, - 244,34,0,15,34,208,8,33,114,63,0,0,0,99,3,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, - 0,0,243,14,0,0,0,151,0,116,0,0,0,0,0,0, - 0,0,0,130,1,41,1,97,242,2,0,0,32,68,101,99, - 111,100,101,115,32,116,104,101,32,111,98,106,101,99,116,32, - 105,110,112,117,116,32,97,110,100,32,114,101,116,117,114,110, - 115,32,97,32,116,117,112,108,101,32,40,111,117,116,112,117, - 116,10,32,32,32,32,32,32,32,32,32,32,32,32,111,98, + 32,32,32,40,111,110,108,121,32,102,111,114,32,101,110,99, + 111,100,105,110,103,41,46,10,10,84,104,101,32,115,101,116, + 32,111,102,32,97,108,108,111,119,101,100,32,118,97,108,117, + 101,115,32,99,97,110,32,98,101,32,101,120,116,101,110,100, + 101,100,32,118,105,97,32,114,101,103,105,115,116,101,114,95, + 101,114,114,111,114,46,10,10,99,3,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,3,0,0,0,243,14,0, + 0,0,149,0,91,0,0,0,0,0,0,0,0,0,101,1, + 41,1,97,174,1,0,0,69,110,99,111,100,101,115,32,116, + 104,101,32,111,98,106,101,99,116,32,105,110,112,117,116,32, + 97,110,100,32,114,101,116,117,114,110,115,32,97,32,116,117, + 112,108,101,32,40,111,117,116,112,117,116,10,111,98,106,101, + 99,116,44,32,108,101,110,103,116,104,32,99,111,110,115,117, + 109,101,100,41,46,10,10,101,114,114,111,114,115,32,100,101, + 102,105,110,101,115,32,116,104,101,32,101,114,114,111,114,32, + 104,97,110,100,108,105,110,103,32,116,111,32,97,112,112,108, + 121,46,32,73,116,32,100,101,102,97,117,108,116,115,32,116, + 111,10,39,115,116,114,105,99,116,39,32,104,97,110,100,108, + 105,110,103,46,10,10,84,104,101,32,109,101,116,104,111,100, + 32,109,97,121,32,110,111,116,32,115,116,111,114,101,32,115, + 116,97,116,101,32,105,110,32,116,104,101,32,67,111,100,101, + 99,32,105,110,115,116,97,110,99,101,46,32,85,115,101,10, + 83,116,114,101,97,109,87,114,105,116,101,114,32,102,111,114, + 32,99,111,100,101,99,115,32,119,104,105,99,104,32,104,97, + 118,101,32,116,111,32,107,101,101,112,32,115,116,97,116,101, + 32,105,110,32,111,114,100,101,114,32,116,111,10,109,97,107, + 101,32,101,110,99,111,100,105,110,103,32,101,102,102,105,99, + 105,101,110,116,46,10,10,84,104,101,32,101,110,99,111,100, + 101,114,32,109,117,115,116,32,98,101,32,97,98,108,101,32, + 116,111,32,104,97,110,100,108,101,32,122,101,114,111,32,108, + 101,110,103,116,104,32,105,110,112,117,116,32,97,110,100,10, + 114,101,116,117,114,110,32,97,110,32,101,109,112,116,121,32, + 111,98,106,101,99,116,32,111,102,32,116,104,101,32,111,117, + 116,112,117,116,32,111,98,106,101,99,116,32,116,121,112,101, + 32,105,110,32,116,104,105,115,10,115,105,116,117,97,116,105, + 111,110,46,10,10,169,1,218,19,78,111,116,73,109,112,108, + 101,109,101,110,116,101,100,69,114,114,111,114,169,3,114,62, + 0,0,0,218,5,105,110,112,117,116,218,6,101,114,114,111, + 114,115,115,3,0,0,0,32,32,32,114,63,0,0,0,114, + 36,0,0,0,218,12,67,111,100,101,99,46,101,110,99,111, + 100,101,141,0,0,0,115,10,0,0,0,128,0,244,34,0, + 15,34,208,8,33,114,65,0,0,0,99,3,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,243, + 14,0,0,0,149,0,91,0,0,0,0,0,0,0,0,0, + 101,1,41,1,97,89,2,0,0,68,101,99,111,100,101,115, + 32,116,104,101,32,111,98,106,101,99,116,32,105,110,112,117, + 116,32,97,110,100,32,114,101,116,117,114,110,115,32,97,32, + 116,117,112,108,101,32,40,111,117,116,112,117,116,10,111,98, 106,101,99,116,44,32,108,101,110,103,116,104,32,99,111,110, - 115,117,109,101,100,41,46,10,10,32,32,32,32,32,32,32, - 32,32,32,32,32,105,110,112,117,116,32,109,117,115,116,32, - 98,101,32,97,110,32,111,98,106,101,99,116,32,119,104,105, - 99,104,32,112,114,111,118,105,100,101,115,32,116,104,101,32, - 98,102,95,103,101,116,114,101,97,100,98,117,102,10,32,32, - 32,32,32,32,32,32,32,32,32,32,98,117,102,102,101,114, - 32,115,108,111,116,46,32,80,121,116,104,111,110,32,115,116, - 114,105,110,103,115,44,32,98,117,102,102,101,114,32,111,98, - 106,101,99,116,115,32,97,110,100,32,109,101,109,111,114,121, - 10,32,32,32,32,32,32,32,32,32,32,32,32,109,97,112, - 112,101,100,32,102,105,108,101,115,32,97,114,101,32,101,120, - 97,109,112,108,101,115,32,111,102,32,111,98,106,101,99,116, - 115,32,112,114,111,118,105,100,105,110,103,32,116,104,105,115, - 32,115,108,111,116,46,10,10,32,32,32,32,32,32,32,32, - 32,32,32,32,101,114,114,111,114,115,32,100,101,102,105,110, + 115,117,109,101,100,41,46,10,10,105,110,112,117,116,32,109, + 117,115,116,32,98,101,32,97,110,32,111,98,106,101,99,116, + 32,119,104,105,99,104,32,112,114,111,118,105,100,101,115,32, + 116,104,101,32,98,102,95,103,101,116,114,101,97,100,98,117, + 102,10,98,117,102,102,101,114,32,115,108,111,116,46,32,80, + 121,116,104,111,110,32,115,116,114,105,110,103,115,44,32,98, + 117,102,102,101,114,32,111,98,106,101,99,116,115,32,97,110, + 100,32,109,101,109,111,114,121,10,109,97,112,112,101,100,32, + 102,105,108,101,115,32,97,114,101,32,101,120,97,109,112,108, + 101,115,32,111,102,32,111,98,106,101,99,116,115,32,112,114, + 111,118,105,100,105,110,103,32,116,104,105,115,32,115,108,111, + 116,46,10,10,101,114,114,111,114,115,32,100,101,102,105,110, 101,115,32,116,104,101,32,101,114,114,111,114,32,104,97,110, 100,108,105,110,103,32,116,111,32,97,112,112,108,121,46,32, - 73,116,32,100,101,102,97,117,108,116,115,32,116,111,10,32, - 32,32,32,32,32,32,32,32,32,32,32,39,115,116,114,105, - 99,116,39,32,104,97,110,100,108,105,110,103,46,10,10,32, - 32,32,32,32,32,32,32,32,32,32,32,84,104,101,32,109, - 101,116,104,111,100,32,109,97,121,32,110,111,116,32,115,116, - 111,114,101,32,115,116,97,116,101,32,105,110,32,116,104,101, - 32,67,111,100,101,99,32,105,110,115,116,97,110,99,101,46, - 32,85,115,101,10,32,32,32,32,32,32,32,32,32,32,32, - 32,83,116,114,101,97,109,82,101,97,100,101,114,32,102,111, - 114,32,99,111,100,101,99,115,32,119,104,105,99,104,32,104, - 97,118,101,32,116,111,32,107,101,101,112,32,115,116,97,116, - 101,32,105,110,32,111,114,100,101,114,32,116,111,10,32,32, - 32,32,32,32,32,32,32,32,32,32,109,97,107,101,32,100, + 73,116,32,100,101,102,97,117,108,116,115,32,116,111,10,39, + 115,116,114,105,99,116,39,32,104,97,110,100,108,105,110,103, + 46,10,10,84,104,101,32,109,101,116,104,111,100,32,109,97, + 121,32,110,111,116,32,115,116,111,114,101,32,115,116,97,116, + 101,32,105,110,32,116,104,101,32,67,111,100,101,99,32,105, + 110,115,116,97,110,99,101,46,32,85,115,101,10,83,116,114, + 101,97,109,82,101,97,100,101,114,32,102,111,114,32,99,111, + 100,101,99,115,32,119,104,105,99,104,32,104,97,118,101,32, + 116,111,32,107,101,101,112,32,115,116,97,116,101,32,105,110, + 32,111,114,100,101,114,32,116,111,10,109,97,107,101,32,100, 101,99,111,100,105,110,103,32,101,102,102,105,99,105,101,110, - 116,46,10,10,32,32,32,32,32,32,32,32,32,32,32,32, - 84,104,101,32,100,101,99,111,100,101,114,32,109,117,115,116, - 32,98,101,32,97,98,108,101,32,116,111,32,104,97,110,100, - 108,101,32,122,101,114,111,32,108,101,110,103,116,104,32,105, - 110,112,117,116,32,97,110,100,10,32,32,32,32,32,32,32, - 32,32,32,32,32,114,101,116,117,114,110,32,97,110,32,101, - 109,112,116,121,32,111,98,106,101,99,116,32,111,102,32,116, - 104,101,32,111,117,116,112,117,116,32,111,98,106,101,99,116, - 32,116,121,112,101,32,105,110,32,116,104,105,115,10,32,32, - 32,32,32,32,32,32,32,32,32,32,115,105,116,117,97,116, - 105,111,110,46,10,10,32,32,32,32,32,32,32,32,114,76, - 0,0,0,114,78,0,0,0,115,3,0,0,0,32,32,32, - 114,62,0,0,0,114,37,0,0,0,122,12,67,111,100,101, - 99,46,100,101,99,111,100,101,157,0,0,0,115,10,0,0, - 0,128,0,244,42,0,15,34,208,8,33,114,63,0,0,0, - 78,169,1,218,6,115,116,114,105,99,116,41,6,114,71,0, - 0,0,114,66,0,0,0,114,67,0,0,0,114,72,0,0, - 0,114,36,0,0,0,114,37,0,0,0,114,73,0,0,0, - 114,63,0,0,0,114,62,0,0,0,114,23,0,0,0,114, - 23,0,0,0,114,0,0,0,115,17,0,0,0,132,0,241, - 4,21,5,8,243,44,17,5,34,244,38,21,5,34,114,63, - 0,0,0,114,23,0,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,0,0,0,0,243,50,0, - 0,0,151,0,101,0,90,1,100,0,90,2,100,1,90,3, - 100,8,100,2,132,1,90,4,100,9,100,3,132,1,90,5, - 100,4,132,0,90,6,100,5,132,0,90,7,100,6,132,0, - 90,8,121,7,41,10,114,24,0,0,0,122,232,10,32,32, - 32,32,65,110,32,73,110,99,114,101,109,101,110,116,97,108, + 116,46,10,10,84,104,101,32,100,101,99,111,100,101,114,32, + 109,117,115,116,32,98,101,32,97,98,108,101,32,116,111,32, + 104,97,110,100,108,101,32,122,101,114,111,32,108,101,110,103, + 116,104,32,105,110,112,117,116,32,97,110,100,10,114,101,116, + 117,114,110,32,97,110,32,101,109,112,116,121,32,111,98,106, + 101,99,116,32,111,102,32,116,104,101,32,111,117,116,112,117, + 116,32,111,98,106,101,99,116,32,116,121,112,101,32,105,110, + 32,116,104,105,115,10,115,105,116,117,97,116,105,111,110,46, + 10,10,114,85,0,0,0,114,87,0,0,0,115,3,0,0, + 0,32,32,32,114,63,0,0,0,114,37,0,0,0,218,12, + 67,111,100,101,99,46,100,101,99,111,100,101,160,0,0,0, + 115,10,0,0,0,128,0,244,42,0,15,34,208,8,33,114, + 65,0,0,0,114,81,0,0,0,78,169,1,218,6,115,116, + 114,105,99,116,41,8,114,77,0,0,0,114,68,0,0,0, + 114,69,0,0,0,114,78,0,0,0,114,79,0,0,0,114, + 36,0,0,0,114,37,0,0,0,114,80,0,0,0,114,81, + 0,0,0,114,65,0,0,0,114,63,0,0,0,114,23,0, + 0,0,114,23,0,0,0,117,0,0,0,115,17,0,0,0, + 134,0,241,4,21,5,8,244,44,17,5,34,247,38,21,5, + 34,114,65,0,0,0,114,23,0,0,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, + 243,62,0,0,0,149,0,92,0,114,1,83,0,114,2,83, + 1,114,3,83,2,114,4,83,10,83,3,26,0,106,1,114, + 5,83,11,83,4,26,0,106,1,114,6,83,5,26,0,114, + 7,83,6,26,0,114,8,83,7,26,0,114,9,83,8,114, + 10,103,9,41,12,114,24,0,0,0,233,183,0,0,0,122, + 216,10,65,110,32,73,110,99,114,101,109,101,110,116,97,108, 69,110,99,111,100,101,114,32,101,110,99,111,100,101,115,32, 97,110,32,105,110,112,117,116,32,105,110,32,109,117,108,116, 105,112,108,101,32,115,116,101,112,115,46,32,84,104,101,32, - 105,110,112,117,116,32,99,97,110,10,32,32,32,32,98,101, - 32,112,97,115,115,101,100,32,112,105,101,99,101,32,98,121, - 32,112,105,101,99,101,32,116,111,32,116,104,101,32,101,110, - 99,111,100,101,40,41,32,109,101,116,104,111,100,46,32,84, - 104,101,32,73,110,99,114,101,109,101,110,116,97,108,69,110, - 99,111,100,101,114,10,32,32,32,32,114,101,109,101,109,98, - 101,114,115,32,116,104,101,32,115,116,97,116,101,32,111,102, - 32,116,104,101,32,101,110,99,111,100,105,110,103,32,112,114, - 111,99,101,115,115,32,98,101,116,119,101,101,110,32,99,97, - 108,108,115,32,116,111,32,101,110,99,111,100,101,40,41,46, - 10,32,32,32,32,99,2,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,3,0,0,0,243,32,0,0,0,151, - 0,124,1,124,0,95,0,0,0,0,0,0,0,0,0,100, - 1,124,0,95,1,0,0,0,0,0,0,0,0,121,2,41, - 3,122,244,10,32,32,32,32,32,32,32,32,67,114,101,97, - 116,101,115,32,97,110,32,73,110,99,114,101,109,101,110,116, - 97,108,69,110,99,111,100,101,114,32,105,110,115,116,97,110, - 99,101,46,10,10,32,32,32,32,32,32,32,32,84,104,101, + 105,110,112,117,116,32,99,97,110,10,98,101,32,112,97,115, + 115,101,100,32,112,105,101,99,101,32,98,121,32,112,105,101, + 99,101,32,116,111,32,116,104,101,32,101,110,99,111,100,101, + 40,41,32,109,101,116,104,111,100,46,32,84,104,101,32,73, + 110,99,114,101,109,101,110,116,97,108,69,110,99,111,100,101, + 114,10,114,101,109,101,109,98,101,114,115,32,116,104,101,32, + 115,116,97,116,101,32,111,102,32,116,104,101,32,101,110,99, + 111,100,105,110,103,32,112,114,111,99,101,115,115,32,98,101, + 116,119,101,101,110,32,99,97,108,108,115,32,116,111,32,101, + 110,99,111,100,101,40,41,46,10,99,2,0,0,0,0,0, + 0,0,0,0,0,0,2,0,0,0,3,0,0,0,243,30, + 0,0,0,149,0,88,16,108,0,0,0,0,0,0,0,0, + 0,83,1,85,0,108,1,0,0,0,0,0,0,0,0,103, + 2,41,3,122,204,10,67,114,101,97,116,101,115,32,97,110, 32,73,110,99,114,101,109,101,110,116,97,108,69,110,99,111, - 100,101,114,32,109,97,121,32,117,115,101,32,100,105,102,102, - 101,114,101,110,116,32,101,114,114,111,114,32,104,97,110,100, - 108,105,110,103,32,115,99,104,101,109,101,115,32,98,121,10, - 32,32,32,32,32,32,32,32,112,114,111,118,105,100,105,110, - 103,32,116,104,101,32,101,114,114,111,114,115,32,107,101,121, - 119,111,114,100,32,97,114,103,117,109,101,110,116,46,32,83, - 101,101,32,116,104,101,32,109,111,100,117,108,101,32,100,111, - 99,115,116,114,105,110,103,10,32,32,32,32,32,32,32,32, - 102,111,114,32,97,32,108,105,115,116,32,111,102,32,112,111, - 115,115,105,98,108,101,32,118,97,108,117,101,115,46,10,32, - 32,32,32,32,32,32,32,218,0,78,41,2,114,80,0,0, - 0,218,6,98,117,102,102,101,114,169,2,114,61,0,0,0, - 114,80,0,0,0,115,2,0,0,0,32,32,114,62,0,0, - 0,218,8,95,95,105,110,105,116,95,95,122,27,73,110,99, - 114,101,109,101,110,116,97,108,69,110,99,111,100,101,114,46, - 95,95,105,110,105,116,95,95,186,0,0,0,115,18,0,0, - 0,128,0,240,16,0,23,29,136,4,140,11,216,22,24,136, - 4,141,11,114,63,0,0,0,99,3,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,3,0,0,0,243,14,0, - 0,0,151,0,116,0,0,0,0,0,0,0,0,0,130,1, - 41,1,122,65,10,32,32,32,32,32,32,32,32,69,110,99, + 100,101,114,32,105,110,115,116,97,110,99,101,46,10,10,84, + 104,101,32,73,110,99,114,101,109,101,110,116,97,108,69,110, + 99,111,100,101,114,32,109,97,121,32,117,115,101,32,100,105, + 102,102,101,114,101,110,116,32,101,114,114,111,114,32,104,97, + 110,100,108,105,110,103,32,115,99,104,101,109,101,115,32,98, + 121,10,112,114,111,118,105,100,105,110,103,32,116,104,101,32, + 101,114,114,111,114,115,32,107,101,121,119,111,114,100,32,97, + 114,103,117,109,101,110,116,46,32,83,101,101,32,116,104,101, + 32,109,111,100,117,108,101,32,100,111,99,115,116,114,105,110, + 103,10,102,111,114,32,97,32,108,105,115,116,32,111,102,32, + 112,111,115,115,105,98,108,101,32,118,97,108,117,101,115,46, + 10,218,0,78,41,2,114,89,0,0,0,218,6,98,117,102, + 102,101,114,169,2,114,62,0,0,0,114,89,0,0,0,115, + 2,0,0,0,32,32,114,63,0,0,0,218,8,95,95,105, + 110,105,116,95,95,218,27,73,110,99,114,101,109,101,110,116, + 97,108,69,110,99,111,100,101,114,46,95,95,105,110,105,116, + 95,95,189,0,0,0,115,16,0,0,0,128,0,240,16,0, + 23,29,140,11,216,22,24,136,4,141,11,114,65,0,0,0, + 99,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,3,0,0,0,243,14,0,0,0,149,0,91,0,0,0, + 0,0,0,0,0,0,101,1,41,1,122,49,10,69,110,99, 111,100,101,115,32,105,110,112,117,116,32,97,110,100,32,114, 101,116,117,114,110,115,32,116,104,101,32,114,101,115,117,108, - 116,105,110,103,32,111,98,106,101,99,116,46,10,32,32,32, - 32,32,32,32,32,114,76,0,0,0,169,3,114,61,0,0, - 0,114,79,0,0,0,218,5,102,105,110,97,108,115,3,0, - 0,0,32,32,32,114,62,0,0,0,114,36,0,0,0,122, - 25,73,110,99,114,101,109,101,110,116,97,108,69,110,99,111, - 100,101,114,46,101,110,99,111,100,101,197,0,0,0,243,10, - 0,0,0,128,0,244,8,0,15,34,208,8,33,114,63,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,243,4,0,0,0,151,0,121,1, - 41,2,122,58,10,32,32,32,32,32,32,32,32,82,101,115, + 116,105,110,103,32,111,98,106,101,99,116,46,10,114,85,0, + 0,0,169,3,114,62,0,0,0,114,88,0,0,0,218,5, + 102,105,110,97,108,115,3,0,0,0,32,32,32,114,63,0, + 0,0,114,36,0,0,0,218,25,73,110,99,114,101,109,101, + 110,116,97,108,69,110,99,111,100,101,114,46,101,110,99,111, + 100,101,200,0,0,0,243,10,0,0,0,128,0,244,8,0, + 15,34,208,8,33,114,65,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,243, + 4,0,0,0,149,0,103,1,41,2,122,42,10,82,101,115, 101,116,115,32,116,104,101,32,101,110,99,111,100,101,114,32, 116,111,32,116,104,101,32,105,110,105,116,105,97,108,32,115, - 116,97,116,101,46,10,32,32,32,32,32,32,32,32,78,114, - 73,0,0,0,114,69,0,0,0,115,1,0,0,0,32,114, - 62,0,0,0,218,5,114,101,115,101,116,122,24,73,110,99, - 114,101,109,101,110,116,97,108,69,110,99,111,100,101,114,46, - 114,101,115,101,116,203,0,0,0,243,2,0,0,0,129,0, - 114,63,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,243,4,0,0,0,151, - 0,121,1,41,2,122,58,10,32,32,32,32,32,32,32,32, + 116,97,116,101,46,10,78,114,81,0,0,0,114,71,0,0, + 0,115,1,0,0,0,32,114,63,0,0,0,218,5,114,101, + 115,101,116,218,24,73,110,99,114,101,109,101,110,116,97,108, + 69,110,99,111,100,101,114,46,114,101,115,101,116,206,0,0, + 0,243,2,0,0,0,129,0,114,65,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, + 0,0,243,4,0,0,0,149,0,103,1,41,2,122,42,10, 82,101,116,117,114,110,32,116,104,101,32,99,117,114,114,101, 110,116,32,115,116,97,116,101,32,111,102,32,116,104,101,32, - 101,110,99,111,100,101,114,46,10,32,32,32,32,32,32,32, - 32,114,2,0,0,0,114,73,0,0,0,114,69,0,0,0, - 115,1,0,0,0,32,114,62,0,0,0,218,8,103,101,116, - 115,116,97,116,101,122,27,73,110,99,114,101,109,101,110,116, - 97,108,69,110,99,111,100,101,114,46,103,101,116,115,116,97, - 116,101,208,0,0,0,115,7,0,0,0,128,0,240,8,0, - 16,17,114,63,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,243,4,0,0, - 0,151,0,121,1,41,2,122,108,10,32,32,32,32,32,32, - 32,32,83,101,116,32,116,104,101,32,99,117,114,114,101,110, + 101,110,99,111,100,101,114,46,10,114,2,0,0,0,114,81, + 0,0,0,114,71,0,0,0,115,1,0,0,0,32,114,63, + 0,0,0,218,8,103,101,116,115,116,97,116,101,218,27,73, + 110,99,114,101,109,101,110,116,97,108,69,110,99,111,100,101, + 114,46,103,101,116,115,116,97,116,101,211,0,0,0,115,7, + 0,0,0,128,0,240,8,0,16,17,114,65,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 3,0,0,0,243,4,0,0,0,149,0,103,1,41,2,122, + 84,10,83,101,116,32,116,104,101,32,99,117,114,114,101,110, 116,32,115,116,97,116,101,32,111,102,32,116,104,101,32,101, 110,99,111,100,101,114,46,32,115,116,97,116,101,32,109,117, - 115,116,32,104,97,118,101,32,98,101,101,110,10,32,32,32, - 32,32,32,32,32,114,101,116,117,114,110,101,100,32,98,121, - 32,103,101,116,115,116,97,116,101,40,41,46,10,32,32,32, - 32,32,32,32,32,78,114,73,0,0,0,169,2,114,61,0, + 115,116,32,104,97,118,101,32,98,101,101,110,10,114,101,116, + 117,114,110,101,100,32,98,121,32,103,101,116,115,116,97,116, + 101,40,41,46,10,78,114,81,0,0,0,169,2,114,62,0, 0,0,218,5,115,116,97,116,101,115,2,0,0,0,32,32, - 114,62,0,0,0,218,8,115,101,116,115,116,97,116,101,122, + 114,63,0,0,0,218,8,115,101,116,115,116,97,116,101,218, 27,73,110,99,114,101,109,101,110,116,97,108,69,110,99,111, - 100,101,114,46,115,101,116,115,116,97,116,101,214,0,0,0, - 114,96,0,0,0,114,63,0,0,0,78,114,82,0,0,0, - 169,1,70,41,9,114,71,0,0,0,114,66,0,0,0,114, - 67,0,0,0,114,72,0,0,0,114,89,0,0,0,114,36, - 0,0,0,114,95,0,0,0,114,98,0,0,0,114,102,0, - 0,0,114,73,0,0,0,114,63,0,0,0,114,62,0,0, - 0,114,24,0,0,0,114,24,0,0,0,180,0,0,0,115, - 32,0,0,0,132,0,241,2,4,5,8,243,10,9,5,25, - 243,22,4,5,34,242,12,3,5,12,242,10,4,5,17,243, - 12,4,5,12,114,63,0,0,0,114,24,0,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0, - 0,0,0,243,56,0,0,0,151,0,101,0,90,1,100,0, - 90,2,100,1,90,3,100,9,100,2,132,1,90,4,100,3, - 132,0,90,5,100,10,100,4,132,1,90,6,100,5,132,0, - 90,7,100,6,132,0,90,8,100,7,132,0,90,9,121,8, - 41,11,218,26,66,117,102,102,101,114,101,100,73,110,99,114, - 101,109,101,110,116,97,108,69,110,99,111,100,101,114,122,192, - 10,32,32,32,32,84,104,105,115,32,115,117,98,99,108,97, - 115,115,32,111,102,32,73,110,99,114,101,109,101,110,116,97, - 108,69,110,99,111,100,101,114,32,99,97,110,32,98,101,32, - 117,115,101,100,32,97,115,32,116,104,101,32,98,97,115,101, - 99,108,97,115,115,32,102,111,114,32,97,110,10,32,32,32, - 32,105,110,99,114,101,109,101,110,116,97,108,32,101,110,99, - 111,100,101,114,32,105,102,32,116,104,101,32,101,110,99,111, - 100,101,114,32,109,117,115,116,32,107,101,101,112,32,115,111, - 109,101,32,111,102,32,116,104,101,32,111,117,116,112,117,116, - 32,105,110,32,97,10,32,32,32,32,98,117,102,102,101,114, - 32,98,101,116,119,101,101,110,32,99,97,108,108,115,32,116, - 111,32,101,110,99,111,100,101,40,41,46,10,32,32,32,32, - 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,62,0,0,0,151,0,116,0,0,0, - 0,0,0,0,0,0,106,3,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,124,1,171,2, - 0,0,0,0,0,0,1,0,100,1,124,0,95,2,0,0, - 0,0,0,0,0,0,121,0,169,2,78,114,86,0,0,0, - 41,3,114,24,0,0,0,114,89,0,0,0,114,87,0,0, - 0,114,88,0,0,0,115,2,0,0,0,32,32,114,62,0, - 0,0,114,89,0,0,0,122,35,66,117,102,102,101,114,101, - 100,73,110,99,114,101,109,101,110,116,97,108,69,110,99,111, - 100,101,114,46,95,95,105,110,105,116,95,95,226,0,0,0, - 115,25,0,0,0,128,0,220,8,26,215,8,35,209,8,35, - 160,68,168,38,212,8,49,224,22,24,136,4,141,11,114,63, - 0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,3,0,0,0,243,14,0,0,0,151,0,116, - 0,0,0,0,0,0,0,0,0,130,1,114,52,0,0,0, - 114,76,0,0,0,169,4,114,61,0,0,0,114,79,0,0, - 0,114,80,0,0,0,114,92,0,0,0,115,4,0,0,0, - 32,32,32,32,114,62,0,0,0,218,14,95,98,117,102,102, - 101,114,95,101,110,99,111,100,101,122,41,66,117,102,102,101, - 114,101,100,73,110,99,114,101,109,101,110,116,97,108,69,110, - 99,111,100,101,114,46,95,98,117,102,102,101,114,95,101,110, - 99,111,100,101,231,0,0,0,243,10,0,0,0,128,0,244, - 6,0,15,34,208,8,33,114,63,0,0,0,99,3,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, - 0,243,120,0,0,0,151,0,124,0,106,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 122,0,0,0,125,3,124,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,3,124,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,2,171,3,0,0,0,0,0,0,92,2, - 0,0,125,4,125,5,124,3,124,5,100,0,26,0,124,0, - 95,0,0,0,0,0,0,0,0,0,124,4,83,0,114,52, - 0,0,0,41,3,114,87,0,0,0,114,110,0,0,0,114, - 80,0,0,0,169,6,114,61,0,0,0,114,79,0,0,0, - 114,92,0,0,0,218,4,100,97,116,97,218,6,114,101,115, - 117,108,116,218,8,99,111,110,115,117,109,101,100,115,6,0, - 0,0,32,32,32,32,32,32,114,62,0,0,0,114,36,0, - 0,0,122,33,66,117,102,102,101,114,101,100,73,110,99,114, - 101,109,101,110,116,97,108,69,110,99,111,100,101,114,46,101, - 110,99,111,100,101,236,0,0,0,243,63,0,0,0,128,0, - 224,15,19,143,123,137,123,152,85,209,15,34,136,4,216,29, - 33,215,29,48,209,29,48,176,20,176,116,183,123,177,123,192, - 69,211,29,74,209,8,26,136,22,144,24,224,22,26,152,56, - 152,57,144,111,136,4,140,11,216,15,21,136,13,114,63,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,60,0,0,0,151,0,116,0, - 0,0,0,0,0,0,0,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,1,0,100,1,124,0,95,2,0,0, - 0,0,0,0,0,0,121,0,114,107,0,0,0,41,3,114, - 24,0,0,0,114,95,0,0,0,114,87,0,0,0,114,69, - 0,0,0,115,1,0,0,0,32,114,62,0,0,0,114,95, - 0,0,0,122,32,66,117,102,102,101,114,101,100,73,110,99, - 114,101,109,101,110,116,97,108,69,110,99,111,100,101,114,46, - 114,101,115,101,116,244,0,0,0,115,23,0,0,0,128,0, - 220,8,26,215,8,32,209,8,32,160,20,212,8,38,216,22, - 24,136,4,141,11,114,63,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,243, - 34,0,0,0,151,0,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,120,1,115,2, - 1,0,100,1,83,0,169,2,78,114,2,0,0,0,169,1, - 114,87,0,0,0,114,69,0,0,0,115,1,0,0,0,32, - 114,62,0,0,0,114,98,0,0,0,122,35,66,117,102,102, + 100,101,114,46,115,101,116,115,116,97,116,101,217,0,0,0, + 114,111,0,0,0,114,65,0,0,0,41,2,114,99,0,0, + 0,114,89,0,0,0,78,114,93,0,0,0,169,1,70,41, + 11,114,77,0,0,0,114,68,0,0,0,114,69,0,0,0, + 114,78,0,0,0,114,79,0,0,0,114,101,0,0,0,114, + 36,0,0,0,114,109,0,0,0,114,113,0,0,0,114,118, + 0,0,0,114,80,0,0,0,114,81,0,0,0,114,65,0, + 0,0,114,63,0,0,0,114,24,0,0,0,114,24,0,0, + 0,183,0,0,0,115,32,0,0,0,134,0,241,2,4,5, + 8,244,10,9,5,25,244,22,4,5,34,242,12,3,5,12, + 242,10,4,5,17,245,12,4,5,12,114,65,0,0,0,114, + 24,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, + 0,2,0,0,0,0,0,0,0,243,68,0,0,0,149,0, + 92,0,114,1,83,0,114,2,83,1,114,3,83,2,114,4, + 83,11,83,3,26,0,106,1,114,5,83,4,26,0,114,6, + 83,12,83,5,26,0,106,1,114,7,83,6,26,0,114,8, + 83,7,26,0,114,9,83,8,26,0,114,10,83,9,114,11, + 103,10,41,13,218,26,66,117,102,102,101,114,101,100,73,110, + 99,114,101,109,101,110,116,97,108,69,110,99,111,100,101,114, + 233,223,0,0,0,122,176,10,84,104,105,115,32,115,117,98, + 99,108,97,115,115,32,111,102,32,73,110,99,114,101,109,101, + 110,116,97,108,69,110,99,111,100,101,114,32,99,97,110,32, + 98,101,32,117,115,101,100,32,97,115,32,116,104,101,32,98, + 97,115,101,99,108,97,115,115,32,102,111,114,32,97,110,10, + 105,110,99,114,101,109,101,110,116,97,108,32,101,110,99,111, + 100,101,114,32,105,102,32,116,104,101,32,101,110,99,111,100, + 101,114,32,109,117,115,116,32,107,101,101,112,32,115,111,109, + 101,32,111,102,32,116,104,101,32,111,117,116,112,117,116,32, + 105,110,32,97,10,98,117,102,102,101,114,32,98,101,116,119, + 101,101,110,32,99,97,108,108,115,32,116,111,32,101,110,99, + 111,100,101,40,41,46,10,99,2,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,60,0,0, + 0,149,0,91,0,0,0,0,0,0,0,0,0,82,3,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,88,1,53,2,0,0,0,0,0,0,32,0,83,1,85, + 0,108,2,0,0,0,0,0,0,0,0,103,0,169,2,78, + 114,98,0,0,0,41,3,114,24,0,0,0,114,101,0,0, + 0,114,99,0,0,0,114,100,0,0,0,115,2,0,0,0, + 32,32,114,63,0,0,0,114,101,0,0,0,218,35,66,117, + 102,102,101,114,101,100,73,110,99,114,101,109,101,110,116,97, + 108,69,110,99,111,100,101,114,46,95,95,105,110,105,116,95, + 95,229,0,0,0,115,23,0,0,0,128,0,220,8,26,215, + 8,35,209,8,35,160,68,212,8,49,224,22,24,136,4,141, + 11,114,65,0,0,0,99,4,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,3,0,0,0,243,14,0,0,0, + 149,0,91,0,0,0,0,0,0,0,0,0,101,1,114,53, + 0,0,0,114,85,0,0,0,169,4,114,62,0,0,0,114, + 88,0,0,0,114,89,0,0,0,114,105,0,0,0,115,4, + 0,0,0,32,32,32,32,114,63,0,0,0,218,14,95,98, + 117,102,102,101,114,95,101,110,99,111,100,101,218,41,66,117, + 102,102,101,114,101,100,73,110,99,114,101,109,101,110,116,97, + 108,69,110,99,111,100,101,114,46,95,98,117,102,102,101,114, + 95,101,110,99,111,100,101,234,0,0,0,243,10,0,0,0, + 128,0,244,6,0,15,34,208,8,33,114,65,0,0,0,99, + 3,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, + 3,0,0,0,243,114,0,0,0,149,0,85,0,82,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,1,45,0,0,0,110,3,85,0,82,3,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88, + 48,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,2,53,3,0,0,0,0,0,0,117, + 2,0,0,112,69,88,53,83,0,4,0,85,0,108,0,0, + 0,0,0,0,0,0,0,85,4,36,0,114,53,0,0,0, + 41,3,114,99,0,0,0,114,129,0,0,0,114,89,0,0, + 0,169,6,114,62,0,0,0,114,88,0,0,0,114,105,0, + 0,0,218,4,100,97,116,97,218,6,114,101,115,117,108,116, + 218,8,99,111,110,115,117,109,101,100,115,6,0,0,0,32, + 32,32,32,32,32,114,63,0,0,0,114,36,0,0,0,218, + 33,66,117,102,102,101,114,101,100,73,110,99,114,101,109,101, + 110,116,97,108,69,110,99,111,100,101,114,46,101,110,99,111, + 100,101,239,0,0,0,243,57,0,0,0,128,0,224,15,19, + 143,123,137,123,152,85,209,15,34,136,4,216,29,33,215,29, + 48,209,29,48,176,20,183,123,177,123,192,69,211,29,74,209, + 8,26,136,22,224,22,26,152,57,144,111,136,4,140,11,216, + 15,21,136,13,114,65,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,60, + 0,0,0,149,0,91,0,0,0,0,0,0,0,0,0,82, + 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,32,0,83, + 1,85,0,108,2,0,0,0,0,0,0,0,0,103,0,114, + 125,0,0,0,41,3,114,24,0,0,0,114,109,0,0,0, + 114,99,0,0,0,114,71,0,0,0,115,1,0,0,0,32, + 114,63,0,0,0,114,109,0,0,0,218,32,66,117,102,102, 101,114,101,100,73,110,99,114,101,109,101,110,116,97,108,69, - 110,99,111,100,101,114,46,103,101,116,115,116,97,116,101,248, - 0,0,0,115,17,0,0,0,128,0,216,15,19,143,123,137, - 123,210,15,31,152,97,208,8,31,114,63,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,243,26,0,0,0,151,0,124,1,120,1,115,2, - 1,0,100,1,124,0,95,0,0,0,0,0,0,0,0,0, - 121,0,114,107,0,0,0,114,121,0,0,0,114,100,0,0, - 0,115,2,0,0,0,32,32,114,62,0,0,0,114,102,0, - 0,0,122,35,66,117,102,102,101,114,101,100,73,110,99,114, - 101,109,101,110,116,97,108,69,110,99,111,100,101,114,46,115, - 101,116,115,116,97,116,101,251,0,0,0,115,13,0,0,0, - 128,0,216,22,27,146,107,152,114,136,4,141,11,114,63,0, - 0,0,78,114,82,0,0,0,114,103,0,0,0,41,10,114, - 71,0,0,0,114,66,0,0,0,114,67,0,0,0,114,72, - 0,0,0,114,89,0,0,0,114,110,0,0,0,114,36,0, - 0,0,114,95,0,0,0,114,98,0,0,0,114,102,0,0, - 0,114,73,0,0,0,114,63,0,0,0,114,62,0,0,0, - 114,105,0,0,0,114,105,0,0,0,220,0,0,0,115,37, - 0,0,0,132,0,241,2,4,5,8,243,10,3,5,25,242, - 10,3,5,34,243,10,6,5,22,242,16,2,5,25,242,8, - 1,5,32,243,6,1,5,34,114,63,0,0,0,114,105,0, - 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,2, - 0,0,0,0,0,0,0,243,50,0,0,0,151,0,101,0, - 90,1,100,0,90,2,100,1,90,3,100,8,100,2,132,1, - 90,4,100,9,100,3,132,1,90,5,100,4,132,0,90,6, - 100,5,132,0,90,7,100,6,132,0,90,8,121,7,41,10, - 114,25,0,0,0,122,232,10,32,32,32,32,65,110,32,73, - 110,99,114,101,109,101,110,116,97,108,68,101,99,111,100,101, - 114,32,100,101,99,111,100,101,115,32,97,110,32,105,110,112, - 117,116,32,105,110,32,109,117,108,116,105,112,108,101,32,115, - 116,101,112,115,46,32,84,104,101,32,105,110,112,117,116,32, - 99,97,110,10,32,32,32,32,98,101,32,112,97,115,115,101, - 100,32,112,105,101,99,101,32,98,121,32,112,105,101,99,101, - 32,116,111,32,116,104,101,32,100,101,99,111,100,101,40,41, - 32,109,101,116,104,111,100,46,32,84,104,101,32,73,110,99, - 114,101,109,101,110,116,97,108,68,101,99,111,100,101,114,10, - 32,32,32,32,114,101,109,101,109,98,101,114,115,32,116,104, - 101,32,115,116,97,116,101,32,111,102,32,116,104,101,32,100, - 101,99,111,100,105,110,103,32,112,114,111,99,101,115,115,32, - 98,101,116,119,101,101,110,32,99,97,108,108,115,32,116,111, - 32,100,101,99,111,100,101,40,41,46,10,32,32,32,32,99, + 110,99,111,100,101,114,46,114,101,115,101,116,247,0,0,0, + 115,23,0,0,0,128,0,220,8,26,215,8,32,209,8,32, + 160,20,212,8,38,216,22,24,136,4,141,11,114,65,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,243,44,0,0,0,149,0,85,0,82, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,61,1,40,0,0,0,0,0,0,0,100,2,0, + 0,32,0,83,1,36,0,169,2,78,114,2,0,0,0,169, + 1,114,99,0,0,0,114,71,0,0,0,115,1,0,0,0, + 32,114,63,0,0,0,114,113,0,0,0,218,35,66,117,102, + 102,101,114,101,100,73,110,99,114,101,109,101,110,116,97,108, + 69,110,99,111,100,101,114,46,103,101,116,115,116,97,116,101, + 251,0,0,0,115,17,0,0,0,128,0,216,15,19,143,123, + 137,123,215,15,31,152,97,208,8,31,114,65,0,0,0,99, 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 3,0,0,0,243,18,0,0,0,151,0,124,1,124,0,95, - 0,0,0,0,0,0,0,0,0,121,1,41,2,122,243,10, - 32,32,32,32,32,32,32,32,67,114,101,97,116,101,32,97, - 110,32,73,110,99,114,101,109,101,110,116,97,108,68,101,99, - 111,100,101,114,32,105,110,115,116,97,110,99,101,46,10,10, - 32,32,32,32,32,32,32,32,84,104,101,32,73,110,99,114, - 101,109,101,110,116,97,108,68,101,99,111,100,101,114,32,109, - 97,121,32,117,115,101,32,100,105,102,102,101,114,101,110,116, - 32,101,114,114,111,114,32,104,97,110,100,108,105,110,103,32, - 115,99,104,101,109,101,115,32,98,121,10,32,32,32,32,32, - 32,32,32,112,114,111,118,105,100,105,110,103,32,116,104,101, - 32,101,114,114,111,114,115,32,107,101,121,119,111,114,100,32, - 97,114,103,117,109,101,110,116,46,32,83,101,101,32,116,104, - 101,32,109,111,100,117,108,101,32,100,111,99,115,116,114,105, - 110,103,10,32,32,32,32,32,32,32,32,102,111,114,32,97, - 32,108,105,115,116,32,111,102,32,112,111,115,115,105,98,108, - 101,32,118,97,108,117,101,115,46,10,32,32,32,32,32,32, - 32,32,78,41,1,114,80,0,0,0,114,88,0,0,0,115, - 2,0,0,0,32,32,114,62,0,0,0,114,89,0,0,0, - 122,27,73,110,99,114,101,109,101,110,116,97,108,68,101,99, - 111,100,101,114,46,95,95,105,110,105,116,95,95,4,1,0, - 0,115,11,0,0,0,128,0,240,16,0,23,29,136,4,141, - 11,114,63,0,0,0,99,3,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,3,0,0,0,243,14,0,0,0, - 151,0,116,0,0,0,0,0,0,0,0,0,130,1,41,1, - 122,64,10,32,32,32,32,32,32,32,32,68,101,99,111,100, - 101,32,105,110,112,117,116,32,97,110,100,32,114,101,116,117, - 114,110,115,32,116,104,101,32,114,101,115,117,108,116,105,110, - 103,32,111,98,106,101,99,116,46,10,32,32,32,32,32,32, - 32,32,114,76,0,0,0,114,91,0,0,0,115,3,0,0, - 0,32,32,32,114,62,0,0,0,114,37,0,0,0,122,25, + 3,0,0,0,243,36,0,0,0,149,0,85,1,61,1,40, + 0,0,0,0,0,0,0,100,2,0,0,32,0,83,1,85, + 0,108,0,0,0,0,0,0,0,0,0,103,0,114,125,0, + 0,0,114,143,0,0,0,114,116,0,0,0,115,2,0,0, + 0,32,32,114,63,0,0,0,114,118,0,0,0,218,35,66, + 117,102,102,101,114,101,100,73,110,99,114,101,109,101,110,116, + 97,108,69,110,99,111,100,101,114,46,115,101,116,115,116,97, + 116,101,254,0,0,0,115,13,0,0,0,128,0,216,22,27, + 151,107,152,114,136,4,141,11,114,65,0,0,0,114,143,0, + 0,0,78,114,93,0,0,0,114,120,0,0,0,41,12,114, + 77,0,0,0,114,68,0,0,0,114,69,0,0,0,114,78, + 0,0,0,114,79,0,0,0,114,101,0,0,0,114,129,0, + 0,0,114,36,0,0,0,114,109,0,0,0,114,113,0,0, + 0,114,118,0,0,0,114,80,0,0,0,114,81,0,0,0, + 114,65,0,0,0,114,63,0,0,0,114,122,0,0,0,114, + 122,0,0,0,223,0,0,0,115,37,0,0,0,134,0,241, + 2,4,5,8,244,10,3,5,25,242,10,3,5,34,244,10, + 6,5,22,242,16,2,5,25,242,8,1,5,32,245,6,1, + 5,34,114,65,0,0,0,114,122,0,0,0,99,0,0,0, + 0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0, + 0,243,62,0,0,0,149,0,92,0,114,1,83,0,114,2, + 83,1,114,3,83,2,114,4,83,10,83,3,26,0,106,1, + 114,5,83,11,83,4,26,0,106,1,114,6,83,5,26,0, + 114,7,83,6,26,0,114,8,83,7,26,0,114,9,83,8, + 114,10,103,9,41,12,114,25,0,0,0,105,1,1,0,0, + 122,216,10,65,110,32,73,110,99,114,101,109,101,110,116,97, + 108,68,101,99,111,100,101,114,32,100,101,99,111,100,101,115, + 32,97,110,32,105,110,112,117,116,32,105,110,32,109,117,108, + 116,105,112,108,101,32,115,116,101,112,115,46,32,84,104,101, + 32,105,110,112,117,116,32,99,97,110,10,98,101,32,112,97, + 115,115,101,100,32,112,105,101,99,101,32,98,121,32,112,105, + 101,99,101,32,116,111,32,116,104,101,32,100,101,99,111,100, + 101,40,41,32,109,101,116,104,111,100,46,32,84,104,101,32, 73,110,99,114,101,109,101,110,116,97,108,68,101,99,111,100, - 101,114,46,100,101,99,111,100,101,14,1,0,0,114,93,0, - 0,0,114,63,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,243,4,0,0, - 0,151,0,121,1,41,2,122,57,10,32,32,32,32,32,32, - 32,32,82,101,115,101,116,32,116,104,101,32,100,101,99,111, - 100,101,114,32,116,111,32,116,104,101,32,105,110,105,116,105, - 97,108,32,115,116,97,116,101,46,10,32,32,32,32,32,32, - 32,32,78,114,73,0,0,0,114,69,0,0,0,115,1,0, - 0,0,32,114,62,0,0,0,114,95,0,0,0,122,24,73, + 101,114,10,114,101,109,101,109,98,101,114,115,32,116,104,101, + 32,115,116,97,116,101,32,111,102,32,116,104,101,32,100,101, + 99,111,100,105,110,103,32,112,114,111,99,101,115,115,32,98, + 101,116,119,101,101,110,32,99,97,108,108,115,32,116,111,32, + 100,101,99,111,100,101,40,41,46,10,99,2,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,243, + 16,0,0,0,149,0,88,16,108,0,0,0,0,0,0,0, + 0,0,103,1,41,2,122,203,10,67,114,101,97,116,101,32, + 97,110,32,73,110,99,114,101,109,101,110,116,97,108,68,101, + 99,111,100,101,114,32,105,110,115,116,97,110,99,101,46,10, + 10,84,104,101,32,73,110,99,114,101,109,101,110,116,97,108, + 68,101,99,111,100,101,114,32,109,97,121,32,117,115,101,32, + 100,105,102,102,101,114,101,110,116,32,101,114,114,111,114,32, + 104,97,110,100,108,105,110,103,32,115,99,104,101,109,101,115, + 32,98,121,10,112,114,111,118,105,100,105,110,103,32,116,104, + 101,32,101,114,114,111,114,115,32,107,101,121,119,111,114,100, + 32,97,114,103,117,109,101,110,116,46,32,83,101,101,32,116, + 104,101,32,109,111,100,117,108,101,32,100,111,99,115,116,114, + 105,110,103,10,102,111,114,32,97,32,108,105,115,116,32,111, + 102,32,112,111,115,115,105,98,108,101,32,118,97,108,117,101, + 115,46,10,78,169,1,114,89,0,0,0,114,100,0,0,0, + 115,2,0,0,0,32,32,114,63,0,0,0,114,101,0,0, + 0,218,27,73,110,99,114,101,109,101,110,116,97,108,68,101, + 99,111,100,101,114,46,95,95,105,110,105,116,95,95,7,1, + 0,0,115,9,0,0,0,128,0,240,16,0,23,29,141,11, + 114,65,0,0,0,99,3,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,243,14,0,0,0,149, + 0,91,0,0,0,0,0,0,0,0,0,101,1,41,1,122, + 48,10,68,101,99,111,100,101,32,105,110,112,117,116,32,97, + 110,100,32,114,101,116,117,114,110,115,32,116,104,101,32,114, + 101,115,117,108,116,105,110,103,32,111,98,106,101,99,116,46, + 10,114,85,0,0,0,114,104,0,0,0,115,3,0,0,0, + 32,32,32,114,63,0,0,0,114,37,0,0,0,218,25,73, 110,99,114,101,109,101,110,116,97,108,68,101,99,111,100,101, - 114,46,114,101,115,101,116,20,1,0,0,114,96,0,0,0, - 114,63,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,243,4,0,0,0,151, - 0,121,1,41,2,97,9,2,0,0,10,32,32,32,32,32, - 32,32,32,82,101,116,117,114,110,32,116,104,101,32,99,117, - 114,114,101,110,116,32,115,116,97,116,101,32,111,102,32,116, - 104,101,32,100,101,99,111,100,101,114,46,10,10,32,32,32, - 32,32,32,32,32,84,104,105,115,32,109,117,115,116,32,98, - 101,32,97,32,40,98,117,102,102,101,114,101,100,95,105,110, - 112,117,116,44,32,97,100,100,105,116,105,111,110,97,108,95, - 115,116,97,116,101,95,105,110,102,111,41,32,116,117,112,108, - 101,46,10,32,32,32,32,32,32,32,32,98,117,102,102,101, - 114,101,100,95,105,110,112,117,116,32,109,117,115,116,32,98, - 101,32,97,32,98,121,116,101,115,32,111,98,106,101,99,116, - 32,99,111,110,116,97,105,110,105,110,103,32,98,121,116,101, - 115,32,116,104,97,116,10,32,32,32,32,32,32,32,32,119, - 101,114,101,32,112,97,115,115,101,100,32,116,111,32,100,101, - 99,111,100,101,40,41,32,116,104,97,116,32,104,97,118,101, - 32,110,111,116,32,121,101,116,32,98,101,101,110,32,99,111, - 110,118,101,114,116,101,100,46,10,32,32,32,32,32,32,32, - 32,97,100,100,105,116,105,111,110,97,108,95,115,116,97,116, - 101,95,105,110,102,111,32,109,117,115,116,32,98,101,32,97, - 32,110,111,110,45,110,101,103,97,116,105,118,101,32,105,110, - 116,101,103,101,114,10,32,32,32,32,32,32,32,32,114,101, - 112,114,101,115,101,110,116,105,110,103,32,116,104,101,32,115, - 116,97,116,101,32,111,102,32,116,104,101,32,100,101,99,111, - 100,101,114,32,87,73,84,72,79,85,84,32,121,101,116,32, - 104,97,118,105,110,103,10,32,32,32,32,32,32,32,32,112, - 114,111,99,101,115,115,101,100,32,116,104,101,32,99,111,110, - 116,101,110,116,115,32,111,102,32,98,117,102,102,101,114,101, - 100,95,105,110,112,117,116,46,32,32,73,110,32,116,104,101, - 32,105,110,105,116,105,97,108,32,115,116,97,116,101,10,32, - 32,32,32,32,32,32,32,97,110,100,32,97,102,116,101,114, - 32,114,101,115,101,116,40,41,44,32,103,101,116,115,116,97, - 116,101,40,41,32,109,117,115,116,32,114,101,116,117,114,110, - 32,40,98,34,34,44,32,48,41,46,10,32,32,32,32,32, - 32,32,32,41,2,114,63,0,0,0,114,2,0,0,0,114, - 73,0,0,0,114,69,0,0,0,115,1,0,0,0,32,114, - 62,0,0,0,114,98,0,0,0,122,27,73,110,99,114,101, - 109,101,110,116,97,108,68,101,99,111,100,101,114,46,103,101, - 116,115,116,97,116,101,25,1,0,0,115,7,0,0,0,128, - 0,240,24,0,16,24,114,63,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 243,4,0,0,0,151,0,121,1,41,2,122,182,10,32,32, - 32,32,32,32,32,32,83,101,116,32,116,104,101,32,99,117, - 114,114,101,110,116,32,115,116,97,116,101,32,111,102,32,116, - 104,101,32,100,101,99,111,100,101,114,46,10,10,32,32,32, - 32,32,32,32,32,115,116,97,116,101,32,109,117,115,116,32, - 104,97,118,101,32,98,101,101,110,32,114,101,116,117,114,110, - 101,100,32,98,121,32,103,101,116,115,116,97,116,101,40,41, - 46,32,32,84,104,101,32,101,102,102,101,99,116,32,111,102, - 10,32,32,32,32,32,32,32,32,115,101,116,115,116,97,116, - 101,40,40,98,34,34,44,32,48,41,41,32,109,117,115,116, - 32,98,101,32,101,113,117,105,118,97,108,101,110,116,32,116, - 111,32,114,101,115,101,116,40,41,46,10,32,32,32,32,32, - 32,32,32,78,114,73,0,0,0,114,100,0,0,0,115,2, - 0,0,0,32,32,114,62,0,0,0,114,102,0,0,0,122, - 27,73,110,99,114,101,109,101,110,116,97,108,68,101,99,111, - 100,101,114,46,115,101,116,115,116,97,116,101,39,1,0,0, - 114,96,0,0,0,114,63,0,0,0,78,114,82,0,0,0, - 114,103,0,0,0,41,9,114,71,0,0,0,114,66,0,0, - 0,114,67,0,0,0,114,72,0,0,0,114,89,0,0,0, - 114,37,0,0,0,114,95,0,0,0,114,98,0,0,0,114, - 102,0,0,0,114,73,0,0,0,114,63,0,0,0,114,62, - 0,0,0,114,25,0,0,0,114,25,0,0,0,254,0,0, - 0,115,32,0,0,0,132,0,241,2,4,5,8,243,10,8, - 5,29,243,20,4,5,34,242,12,3,5,12,242,10,12,5, - 24,243,28,6,5,12,114,63,0,0,0,114,25,0,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,0,0,0,0,243,56,0,0,0,151,0,101,0,90,1, - 100,0,90,2,100,1,90,3,100,9,100,2,132,1,90,4, - 100,3,132,0,90,5,100,10,100,4,132,1,90,6,100,5, - 132,0,90,7,100,6,132,0,90,8,100,7,132,0,90,9, - 121,8,41,11,218,26,66,117,102,102,101,114,101,100,73,110, + 114,46,100,101,99,111,100,101,17,1,0,0,114,107,0,0, + 0,114,65,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,3,0,0,0,243,4,0,0,0, + 149,0,103,1,41,2,122,41,10,82,101,115,101,116,32,116, + 104,101,32,100,101,99,111,100,101,114,32,116,111,32,116,104, + 101,32,105,110,105,116,105,97,108,32,115,116,97,116,101,46, + 10,78,114,81,0,0,0,114,71,0,0,0,115,1,0,0, + 0,32,114,63,0,0,0,114,109,0,0,0,218,24,73,110, 99,114,101,109,101,110,116,97,108,68,101,99,111,100,101,114, - 122,174,10,32,32,32,32,84,104,105,115,32,115,117,98,99, - 108,97,115,115,32,111,102,32,73,110,99,114,101,109,101,110, - 116,97,108,68,101,99,111,100,101,114,32,99,97,110,32,98, - 101,32,117,115,101,100,32,97,115,32,116,104,101,32,98,97, - 115,101,99,108,97,115,115,32,102,111,114,32,97,110,10,32, - 32,32,32,105,110,99,114,101,109,101,110,116,97,108,32,100, - 101,99,111,100,101,114,32,105,102,32,116,104,101,32,100,101, - 99,111,100,101,114,32,109,117,115,116,32,98,101,32,97,98, - 108,101,32,116,111,32,104,97,110,100,108,101,32,105,110,99, - 111,109,112,108,101,116,101,10,32,32,32,32,98,121,116,101, - 32,115,101,113,117,101,110,99,101,115,46,10,32,32,32,32, - 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,62,0,0,0,151,0,116,0,0,0, - 0,0,0,0,0,0,106,3,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,124,1,171,2, - 0,0,0,0,0,0,1,0,100,1,124,0,95,2,0,0, - 0,0,0,0,0,0,121,0,169,2,78,114,63,0,0,0, - 41,3,114,25,0,0,0,114,89,0,0,0,114,87,0,0, - 0,114,88,0,0,0,115,2,0,0,0,32,32,114,62,0, - 0,0,114,89,0,0,0,122,35,66,117,102,102,101,114,101, - 100,73,110,99,114,101,109,101,110,116,97,108,68,101,99,111, - 100,101,114,46,95,95,105,110,105,116,95,95,53,1,0,0, - 115,25,0,0,0,128,0,220,8,26,215,8,35,209,8,35, - 160,68,168,38,212,8,49,224,22,25,136,4,141,11,114,63, - 0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,3,0,0,0,243,14,0,0,0,151,0,116, - 0,0,0,0,0,0,0,0,0,130,1,114,52,0,0,0, - 114,76,0,0,0,114,109,0,0,0,115,4,0,0,0,32, - 32,32,32,114,62,0,0,0,218,14,95,98,117,102,102,101, - 114,95,100,101,99,111,100,101,122,41,66,117,102,102,101,114, - 101,100,73,110,99,114,101,109,101,110,116,97,108,68,101,99, - 111,100,101,114,46,95,98,117,102,102,101,114,95,100,101,99, - 111,100,101,58,1,0,0,114,111,0,0,0,114,63,0,0, - 0,99,3,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,3,0,0,0,243,120,0,0,0,151,0,124,0,106, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,1,122,0,0,0,125,3,124,0,106,3,0, + 46,114,101,115,101,116,23,1,0,0,114,111,0,0,0,114, + 65,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,243,4,0,0,0,149,0, + 103,1,41,2,97,193,1,0,0,10,82,101,116,117,114,110, + 32,116,104,101,32,99,117,114,114,101,110,116,32,115,116,97, + 116,101,32,111,102,32,116,104,101,32,100,101,99,111,100,101, + 114,46,10,10,84,104,105,115,32,109,117,115,116,32,98,101, + 32,97,32,40,98,117,102,102,101,114,101,100,95,105,110,112, + 117,116,44,32,97,100,100,105,116,105,111,110,97,108,95,115, + 116,97,116,101,95,105,110,102,111,41,32,116,117,112,108,101, + 46,10,98,117,102,102,101,114,101,100,95,105,110,112,117,116, + 32,109,117,115,116,32,98,101,32,97,32,98,121,116,101,115, + 32,111,98,106,101,99,116,32,99,111,110,116,97,105,110,105, + 110,103,32,98,121,116,101,115,32,116,104,97,116,10,119,101, + 114,101,32,112,97,115,115,101,100,32,116,111,32,100,101,99, + 111,100,101,40,41,32,116,104,97,116,32,104,97,118,101,32, + 110,111,116,32,121,101,116,32,98,101,101,110,32,99,111,110, + 118,101,114,116,101,100,46,10,97,100,100,105,116,105,111,110, + 97,108,95,115,116,97,116,101,95,105,110,102,111,32,109,117, + 115,116,32,98,101,32,97,32,110,111,110,45,110,101,103,97, + 116,105,118,101,32,105,110,116,101,103,101,114,10,114,101,112, + 114,101,115,101,110,116,105,110,103,32,116,104,101,32,115,116, + 97,116,101,32,111,102,32,116,104,101,32,100,101,99,111,100, + 101,114,32,87,73,84,72,79,85,84,32,121,101,116,32,104, + 97,118,105,110,103,10,112,114,111,99,101,115,115,101,100,32, + 116,104,101,32,99,111,110,116,101,110,116,115,32,111,102,32, + 98,117,102,102,101,114,101,100,95,105,110,112,117,116,46,32, + 32,73,110,32,116,104,101,32,105,110,105,116,105,97,108,32, + 115,116,97,116,101,10,97,110,100,32,97,102,116,101,114,32, + 114,101,115,101,116,40,41,44,32,103,101,116,115,116,97,116, + 101,40,41,32,109,117,115,116,32,114,101,116,117,114,110,32, + 40,98,34,34,44,32,48,41,46,10,41,2,114,65,0,0, + 0,114,2,0,0,0,114,81,0,0,0,114,71,0,0,0, + 115,1,0,0,0,32,114,63,0,0,0,114,113,0,0,0, + 218,27,73,110,99,114,101,109,101,110,116,97,108,68,101,99, + 111,100,101,114,46,103,101,116,115,116,97,116,101,28,1,0, + 0,115,7,0,0,0,128,0,240,24,0,16,24,114,65,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,1, + 0,0,0,3,0,0,0,243,4,0,0,0,149,0,103,1, + 41,2,122,150,10,83,101,116,32,116,104,101,32,99,117,114, + 114,101,110,116,32,115,116,97,116,101,32,111,102,32,116,104, + 101,32,100,101,99,111,100,101,114,46,10,10,115,116,97,116, + 101,32,109,117,115,116,32,104,97,118,101,32,98,101,101,110, + 32,114,101,116,117,114,110,101,100,32,98,121,32,103,101,116, + 115,116,97,116,101,40,41,46,32,32,84,104,101,32,101,102, + 102,101,99,116,32,111,102,10,115,101,116,115,116,97,116,101, + 40,40,98,34,34,44,32,48,41,41,32,109,117,115,116,32, + 98,101,32,101,113,117,105,118,97,108,101,110,116,32,116,111, + 32,114,101,115,101,116,40,41,46,10,78,114,81,0,0,0, + 114,116,0,0,0,115,2,0,0,0,32,32,114,63,0,0, + 0,114,118,0,0,0,218,27,73,110,99,114,101,109,101,110, + 116,97,108,68,101,99,111,100,101,114,46,115,101,116,115,116, + 97,116,101,42,1,0,0,114,111,0,0,0,114,65,0,0, + 0,114,149,0,0,0,78,114,93,0,0,0,114,120,0,0, + 0,41,11,114,77,0,0,0,114,68,0,0,0,114,69,0, + 0,0,114,78,0,0,0,114,79,0,0,0,114,101,0,0, + 0,114,37,0,0,0,114,109,0,0,0,114,113,0,0,0, + 114,118,0,0,0,114,80,0,0,0,114,81,0,0,0,114, + 65,0,0,0,114,63,0,0,0,114,25,0,0,0,114,25, + 0,0,0,1,1,0,0,115,32,0,0,0,134,0,241,2, + 4,5,8,244,10,8,5,29,244,20,4,5,34,242,12,3, + 5,12,242,10,12,5,24,245,28,6,5,12,114,65,0,0, + 0,114,25,0,0,0,99,0,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,0,0,0,0,243,68,0,0,0, + 149,0,92,0,114,1,83,0,114,2,83,1,114,3,83,2, + 114,4,83,11,83,3,26,0,106,1,114,5,83,4,26,0, + 114,6,83,12,83,5,26,0,106,1,114,7,83,6,26,0, + 114,8,83,7,26,0,114,9,83,8,26,0,114,10,83,9, + 114,11,103,10,41,13,218,26,66,117,102,102,101,114,101,100, + 73,110,99,114,101,109,101,110,116,97,108,68,101,99,111,100, + 101,114,105,50,1,0,0,122,158,10,84,104,105,115,32,115, + 117,98,99,108,97,115,115,32,111,102,32,73,110,99,114,101, + 109,101,110,116,97,108,68,101,99,111,100,101,114,32,99,97, + 110,32,98,101,32,117,115,101,100,32,97,115,32,116,104,101, + 32,98,97,115,101,99,108,97,115,115,32,102,111,114,32,97, + 110,10,105,110,99,114,101,109,101,110,116,97,108,32,100,101, + 99,111,100,101,114,32,105,102,32,116,104,101,32,100,101,99, + 111,100,101,114,32,109,117,115,116,32,98,101,32,97,98,108, + 101,32,116,111,32,104,97,110,100,108,101,32,105,110,99,111, + 109,112,108,101,116,101,10,98,121,116,101,32,115,101,113,117, + 101,110,99,101,115,46,10,99,2,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,60,0,0, + 0,149,0,91,0,0,0,0,0,0,0,0,0,82,3,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,3,124,0,106,4,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,2,171,3,0,0,0, - 0,0,0,92,2,0,0,125,4,125,5,124,3,124,5,100, - 0,26,0,124,0,95,0,0,0,0,0,0,0,0,0,124, - 4,83,0,114,52,0,0,0,41,3,114,87,0,0,0,114, - 134,0,0,0,114,80,0,0,0,114,113,0,0,0,115,6, - 0,0,0,32,32,32,32,32,32,114,62,0,0,0,114,37, - 0,0,0,122,33,66,117,102,102,101,114,101,100,73,110,99, - 114,101,109,101,110,116,97,108,68,101,99,111,100,101,114,46, - 100,101,99,111,100,101,63,1,0,0,114,117,0,0,0,114, - 63,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,3,0,0,0,243,60,0,0,0,151,0, - 116,0,0,0,0,0,0,0,0,0,106,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,1,0,100,1,124,0,95,2, - 0,0,0,0,0,0,0,0,121,0,114,132,0,0,0,41, - 3,114,25,0,0,0,114,95,0,0,0,114,87,0,0,0, - 114,69,0,0,0,115,1,0,0,0,32,114,62,0,0,0, - 114,95,0,0,0,122,32,66,117,102,102,101,114,101,100,73, - 110,99,114,101,109,101,110,116,97,108,68,101,99,111,100,101, - 114,46,114,101,115,101,116,71,1,0,0,115,23,0,0,0, - 128,0,220,8,26,215,8,32,209,8,32,160,20,212,8,38, - 216,22,25,136,4,141,11,114,63,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0, - 0,243,30,0,0,0,151,0,124,0,106,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, - 102,2,83,0,114,120,0,0,0,114,121,0,0,0,114,69, - 0,0,0,115,1,0,0,0,32,114,62,0,0,0,114,98, - 0,0,0,122,35,66,117,102,102,101,114,101,100,73,110,99, - 114,101,109,101,110,116,97,108,68,101,99,111,100,101,114,46, - 103,101,116,115,116,97,116,101,75,1,0,0,115,17,0,0, - 0,128,0,224,16,20,151,11,145,11,152,81,208,15,31,208, - 8,31,114,63,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,3,0,0,0,243,24,0,0, - 0,151,0,124,1,100,1,25,0,0,0,124,0,95,0,0, - 0,0,0,0,0,0,0,121,0,114,120,0,0,0,114,121, - 0,0,0,114,100,0,0,0,115,2,0,0,0,32,32,114, - 62,0,0,0,114,102,0,0,0,122,35,66,117,102,102,101, - 114,101,100,73,110,99,114,101,109,101,110,116,97,108,68,101, - 99,111,100,101,114,46,115,101,116,115,116,97,116,101,79,1, - 0,0,115,13,0,0,0,128,0,224,22,27,152,65,145,104, - 136,4,141,11,114,63,0,0,0,78,114,82,0,0,0,114, - 103,0,0,0,41,10,114,71,0,0,0,114,66,0,0,0, - 114,67,0,0,0,114,72,0,0,0,114,89,0,0,0,114, - 134,0,0,0,114,37,0,0,0,114,95,0,0,0,114,98, - 0,0,0,114,102,0,0,0,114,73,0,0,0,114,63,0, - 0,0,114,62,0,0,0,114,130,0,0,0,114,130,0,0, - 0,47,1,0,0,115,37,0,0,0,132,0,241,2,4,5, - 8,243,10,3,5,26,242,10,3,5,34,243,10,6,5,22, - 242,16,2,5,26,242,8,2,5,32,243,8,2,5,31,114, - 63,0,0,0,114,130,0,0,0,99,0,0,0,0,0,0, - 0,0,0,0,0,0,2,0,0,0,0,0,0,0,243,74, - 0,0,0,151,0,101,0,90,1,100,0,90,2,100,11,100, - 1,132,1,90,3,100,2,132,0,90,4,100,3,132,0,90, - 5,100,4,132,0,90,6,100,12,100,5,132,1,90,7,101, - 8,102,1,100,6,132,1,90,9,100,7,132,0,90,10,100, - 8,132,0,90,11,100,9,132,0,90,12,121,10,41,13,114, - 27,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,3,0,0,0,243,32,0,0,0,151,0, - 124,1,124,0,95,0,0,0,0,0,0,0,0,0,124,2, - 124,0,95,1,0,0,0,0,0,0,0,0,121,1,41,2, - 97,119,3,0,0,32,67,114,101,97,116,101,115,32,97,32, - 83,116,114,101,97,109,87,114,105,116,101,114,32,105,110,115, - 116,97,110,99,101,46,10,10,32,32,32,32,32,32,32,32, - 32,32,32,32,115,116,114,101,97,109,32,109,117,115,116,32, - 98,101,32,97,32,102,105,108,101,45,108,105,107,101,32,111, - 98,106,101,99,116,32,111,112,101,110,32,102,111,114,32,119, - 114,105,116,105,110,103,46,10,10,32,32,32,32,32,32,32, - 32,32,32,32,32,84,104,101,32,83,116,114,101,97,109,87, - 114,105,116,101,114,32,109,97,121,32,117,115,101,32,100,105, - 102,102,101,114,101,110,116,32,101,114,114,111,114,32,104,97, - 110,100,108,105,110,103,10,32,32,32,32,32,32,32,32,32, - 32,32,32,115,99,104,101,109,101,115,32,98,121,32,112,114, - 111,118,105,100,105,110,103,32,116,104,101,32,101,114,114,111, - 114,115,32,107,101,121,119,111,114,100,32,97,114,103,117,109, - 101,110,116,46,32,84,104,101,115,101,10,32,32,32,32,32, - 32,32,32,32,32,32,32,112,97,114,97,109,101,116,101,114, - 115,32,97,114,101,32,112,114,101,100,101,102,105,110,101,100, - 58,10,10,32,32,32,32,32,32,32,32,32,32,32,32,32, - 39,115,116,114,105,99,116,39,32,45,32,114,97,105,115,101, - 32,97,32,86,97,108,117,101,69,114,114,111,114,32,40,111, - 114,32,97,32,115,117,98,99,108,97,115,115,41,10,32,32, - 32,32,32,32,32,32,32,32,32,32,32,39,105,103,110,111, - 114,101,39,32,45,32,105,103,110,111,114,101,32,116,104,101, - 32,99,104,97,114,97,99,116,101,114,32,97,110,100,32,99, - 111,110,116,105,110,117,101,32,119,105,116,104,32,116,104,101, - 32,110,101,120,116,10,32,32,32,32,32,32,32,32,32,32, - 32,32,32,39,114,101,112,108,97,99,101,39,45,32,114,101, - 112,108,97,99,101,32,119,105,116,104,32,97,32,115,117,105, - 116,97,98,108,101,32,114,101,112,108,97,99,101,109,101,110, - 116,32,99,104,97,114,97,99,116,101,114,10,32,32,32,32, - 32,32,32,32,32,32,32,32,32,39,120,109,108,99,104,97, - 114,114,101,102,114,101,112,108,97,99,101,39,32,45,32,82, - 101,112,108,97,99,101,32,119,105,116,104,32,116,104,101,32, - 97,112,112,114,111,112,114,105,97,116,101,32,88,77,76,10, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, + 0,88,1,53,2,0,0,0,0,0,0,32,0,83,1,85, + 0,108,2,0,0,0,0,0,0,0,0,103,0,169,2,78, + 114,65,0,0,0,41,3,114,25,0,0,0,114,101,0,0, + 0,114,99,0,0,0,114,100,0,0,0,115,2,0,0,0, + 32,32,114,63,0,0,0,114,101,0,0,0,218,35,66,117, + 102,102,101,114,101,100,73,110,99,114,101,109,101,110,116,97, + 108,68,101,99,111,100,101,114,46,95,95,105,110,105,116,95, + 95,56,1,0,0,115,23,0,0,0,128,0,220,8,26,215, + 8,35,209,8,35,160,68,212,8,49,224,22,25,136,4,141, + 11,114,65,0,0,0,99,4,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,3,0,0,0,243,14,0,0,0, + 149,0,91,0,0,0,0,0,0,0,0,0,101,1,114,53, + 0,0,0,114,85,0,0,0,114,128,0,0,0,115,4,0, + 0,0,32,32,32,32,114,63,0,0,0,218,14,95,98,117, + 102,102,101,114,95,100,101,99,111,100,101,218,41,66,117,102, + 102,101,114,101,100,73,110,99,114,101,109,101,110,116,97,108, + 68,101,99,111,100,101,114,46,95,98,117,102,102,101,114,95, + 100,101,99,111,100,101,61,1,0,0,114,131,0,0,0,114, + 65,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,3,0,0,0,243,114,0,0,0,149,0, + 85,0,82,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,1,45,0,0,0,110,3,85,0, + 82,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,88,48,82,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,2,53,3,0,0, + 0,0,0,0,117,2,0,0,112,69,88,53,83,0,4,0, + 85,0,108,0,0,0,0,0,0,0,0,0,85,4,36,0, + 114,53,0,0,0,41,3,114,99,0,0,0,114,165,0,0, + 0,114,89,0,0,0,114,133,0,0,0,115,6,0,0,0, + 32,32,32,32,32,32,114,63,0,0,0,114,37,0,0,0, + 218,33,66,117,102,102,101,114,101,100,73,110,99,114,101,109, + 101,110,116,97,108,68,101,99,111,100,101,114,46,100,101,99, + 111,100,101,66,1,0,0,114,138,0,0,0,114,65,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,3,0,0,0,243,60,0,0,0,149,0,91,0,0, + 0,0,0,0,0,0,0,82,3,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,32,0,83,1,85,0,108,2,0,0,0, + 0,0,0,0,0,103,0,114,162,0,0,0,41,3,114,25, + 0,0,0,114,109,0,0,0,114,99,0,0,0,114,71,0, + 0,0,115,1,0,0,0,32,114,63,0,0,0,114,109,0, + 0,0,218,32,66,117,102,102,101,114,101,100,73,110,99,114, + 101,109,101,110,116,97,108,68,101,99,111,100,101,114,46,114, + 101,115,101,116,74,1,0,0,115,23,0,0,0,128,0,220, + 8,26,215,8,32,209,8,32,160,20,212,8,38,216,22,25, + 136,4,141,11,114,65,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,2,0,0,0,3,0,0,0,243,30, + 0,0,0,149,0,85,0,82,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,1,52,2,36, + 0,114,142,0,0,0,114,143,0,0,0,114,71,0,0,0, + 115,1,0,0,0,32,114,63,0,0,0,114,113,0,0,0, + 218,35,66,117,102,102,101,114,101,100,73,110,99,114,101,109, + 101,110,116,97,108,68,101,99,111,100,101,114,46,103,101,116, + 115,116,97,116,101,78,1,0,0,115,17,0,0,0,128,0, + 224,16,20,151,11,145,11,152,81,208,15,31,208,8,31,114, + 65,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,2,0,0,0,3,0,0,0,243,24,0,0,0,149,0, + 85,1,83,1,5,0,0,0,85,0,108,0,0,0,0,0, + 0,0,0,0,103,0,114,142,0,0,0,114,143,0,0,0, + 114,116,0,0,0,115,2,0,0,0,32,32,114,63,0,0, + 0,114,118,0,0,0,218,35,66,117,102,102,101,114,101,100, + 73,110,99,114,101,109,101,110,116,97,108,68,101,99,111,100, + 101,114,46,115,101,116,115,116,97,116,101,82,1,0,0,115, + 13,0,0,0,128,0,224,22,27,152,65,145,104,136,4,141, + 11,114,65,0,0,0,114,143,0,0,0,78,114,93,0,0, + 0,114,120,0,0,0,41,12,114,77,0,0,0,114,68,0, + 0,0,114,69,0,0,0,114,78,0,0,0,114,79,0,0, + 0,114,101,0,0,0,114,165,0,0,0,114,37,0,0,0, + 114,109,0,0,0,114,113,0,0,0,114,118,0,0,0,114, + 80,0,0,0,114,81,0,0,0,114,65,0,0,0,114,63, + 0,0,0,114,160,0,0,0,114,160,0,0,0,50,1,0, + 0,115,37,0,0,0,134,0,241,2,4,5,8,244,10,3, + 5,26,242,10,3,5,34,244,10,6,5,22,242,16,2,5, + 26,242,8,2,5,32,245,8,2,5,31,114,65,0,0,0, + 114,160,0,0,0,99,0,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,0,0,0,0,243,88,0,0,0,149, + 0,92,0,114,1,83,0,114,2,83,1,114,3,83,13,83, + 2,26,0,106,1,114,4,83,3,26,0,114,5,83,4,26, + 0,114,6,83,5,26,0,114,7,83,14,83,6,26,0,106, + 1,114,8,92,9,52,1,83,7,26,0,106,1,114,10,83, + 8,26,0,114,11,83,9,26,0,114,12,83,10,26,0,114, + 13,83,11,114,14,103,12,41,15,114,27,0,0,0,105,93, + 1,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,3,0,0,0,243,28,0,0,0,149,0,88, + 16,108,0,0,0,0,0,0,0,0,0,88,32,108,1,0, + 0,0,0,0,0,0,0,103,1,41,2,97,198,2,0,0, + 67,114,101,97,116,101,115,32,97,32,83,116,114,101,97,109, + 87,114,105,116,101,114,32,105,110,115,116,97,110,99,101,46, + 10,10,115,116,114,101,97,109,32,109,117,115,116,32,98,101, + 32,97,32,102,105,108,101,45,108,105,107,101,32,111,98,106, + 101,99,116,32,111,112,101,110,32,102,111,114,32,119,114,105, + 116,105,110,103,46,10,10,84,104,101,32,83,116,114,101,97, + 109,87,114,105,116,101,114,32,109,97,121,32,117,115,101,32, + 100,105,102,102,101,114,101,110,116,32,101,114,114,111,114,32, + 104,97,110,100,108,105,110,103,10,115,99,104,101,109,101,115, + 32,98,121,32,112,114,111,118,105,100,105,110,103,32,116,104, + 101,32,101,114,114,111,114,115,32,107,101,121,119,111,114,100, + 32,97,114,103,117,109,101,110,116,46,32,84,104,101,115,101, + 10,112,97,114,97,109,101,116,101,114,115,32,97,114,101,32, + 112,114,101,100,101,102,105,110,101,100,58,10,10,32,39,115, + 116,114,105,99,116,39,32,45,32,114,97,105,115,101,32,97, + 32,86,97,108,117,101,69,114,114,111,114,32,40,111,114,32, + 97,32,115,117,98,99,108,97,115,115,41,10,32,39,105,103, + 110,111,114,101,39,32,45,32,105,103,110,111,114,101,32,116, + 104,101,32,99,104,97,114,97,99,116,101,114,32,97,110,100, + 32,99,111,110,116,105,110,117,101,32,119,105,116,104,32,116, + 104,101,32,110,101,120,116,10,32,39,114,101,112,108,97,99, + 101,39,45,32,114,101,112,108,97,99,101,32,119,105,116,104, + 32,97,32,115,117,105,116,97,98,108,101,32,114,101,112,108, + 97,99,101,109,101,110,116,32,99,104,97,114,97,99,116,101, + 114,10,32,39,120,109,108,99,104,97,114,114,101,102,114,101, + 112,108,97,99,101,39,32,45,32,82,101,112,108,97,99,101, + 32,119,105,116,104,32,116,104,101,32,97,112,112,114,111,112, + 114,105,97,116,101,32,88,77,76,10,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,99,104,97,114,97,99,116,101,114,32,114,101,102, - 101,114,101,110,99,101,46,10,32,32,32,32,32,32,32,32, - 32,32,32,32,32,39,98,97,99,107,115,108,97,115,104,114, - 101,112,108,97,99,101,39,32,32,45,32,82,101,112,108,97, - 99,101,32,119,105,116,104,32,98,97,99,107,115,108,97,115, - 104,101,100,32,101,115,99,97,112,101,10,32,32,32,32,32, + 32,99,104,97,114,97,99,116,101,114,32,114,101,102,101,114, + 101,110,99,101,46,10,32,39,98,97,99,107,115,108,97,115, + 104,114,101,112,108,97,99,101,39,32,32,45,32,82,101,112, + 108,97,99,101,32,119,105,116,104,32,98,97,99,107,115,108, + 97,115,104,101,100,32,101,115,99,97,112,101,10,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101, - 113,117,101,110,99,101,115,46,10,32,32,32,32,32,32,32, - 32,32,32,32,32,32,39,110,97,109,101,114,101,112,108,97, - 99,101,39,32,32,32,32,32,32,32,45,32,82,101,112,108, - 97,99,101,32,119,105,116,104,32,92,78,123,46,46,46,125, - 32,101,115,99,97,112,101,32,115,101,113,117,101,110,99,101, - 115,46,10,10,32,32,32,32,32,32,32,32,32,32,32,32, - 84,104,101,32,115,101,116,32,111,102,32,97,108,108,111,119, - 101,100,32,112,97,114,97,109,101,116,101,114,32,118,97,108, - 117,101,115,32,99,97,110,32,98,101,32,101,120,116,101,110, - 100,101,100,32,118,105,97,10,32,32,32,32,32,32,32,32, - 32,32,32,32,114,101,103,105,115,116,101,114,95,101,114,114, - 111,114,46,10,32,32,32,32,32,32,32,32,78,41,2,218, - 6,115,116,114,101,97,109,114,80,0,0,0,169,3,114,61, - 0,0,0,114,141,0,0,0,114,80,0,0,0,115,3,0, - 0,0,32,32,32,114,62,0,0,0,114,89,0,0,0,122, - 21,83,116,114,101,97,109,87,114,105,116,101,114,46,95,95, - 105,110,105,116,95,95,92,1,0,0,115,18,0,0,0,128, - 0,240,44,0,23,29,136,4,140,11,216,22,28,136,4,141, - 11,114,63,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,120,0,0,0, - 151,0,124,0,106,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,124,0,106,2,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,2,0,0,0,0,0,0,92,2,0,0,125,2,125,3, - 124,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,106,7,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,2,171,1,0,0, - 0,0,0,0,1,0,121,1,41,2,122,62,32,87,114,105, - 116,101,115,32,116,104,101,32,111,98,106,101,99,116,39,115, - 32,99,111,110,116,101,110,116,115,32,101,110,99,111,100,101, - 100,32,116,111,32,115,101,108,102,46,115,116,114,101,97,109, - 46,10,32,32,32,32,32,32,32,32,78,41,4,114,36,0, - 0,0,114,80,0,0,0,114,141,0,0,0,218,5,119,114, - 105,116,101,41,4,114,61,0,0,0,218,6,111,98,106,101, - 99,116,114,114,0,0,0,114,116,0,0,0,115,4,0,0, - 0,32,32,32,32,114,62,0,0,0,114,144,0,0,0,122, - 18,83,116,114,101,97,109,87,114,105,116,101,114,46,119,114, - 105,116,101,117,1,0,0,115,46,0,0,0,128,0,240,8, - 0,26,30,159,27,153,27,160,86,168,84,175,91,169,91,211, - 25,57,137,14,136,4,136,104,216,8,12,143,11,137,11,215, - 8,25,209,8,25,152,36,213,8,31,114,63,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 3,0,0,0,243,68,0,0,0,151,0,124,0,106,1,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,1,106,3,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,1,171,1,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,1,0,121,2,41,3,122, - 91,32,87,114,105,116,101,115,32,116,104,101,32,99,111,110, - 99,97,116,101,110,97,116,101,100,32,108,105,115,116,32,111, - 102,32,115,116,114,105,110,103,115,32,116,111,32,116,104,101, - 32,115,116,114,101,97,109,10,32,32,32,32,32,32,32,32, - 32,32,32,32,117,115,105,110,103,32,46,119,114,105,116,101, - 40,41,46,10,32,32,32,32,32,32,32,32,114,86,0,0, - 0,78,41,2,114,144,0,0,0,218,4,106,111,105,110,169, - 2,114,61,0,0,0,218,4,108,105,115,116,115,2,0,0, - 0,32,32,114,62,0,0,0,218,10,119,114,105,116,101,108, - 105,110,101,115,122,23,83,116,114,101,97,109,87,114,105,116, - 101,114,46,119,114,105,116,101,108,105,110,101,115,124,1,0, - 0,115,24,0,0,0,128,0,240,10,0,9,13,143,10,137, - 10,144,50,151,55,145,55,152,52,147,61,213,8,33,114,63, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,243,4,0,0,0,151,0,121, - 1,41,2,97,50,1,0,0,32,82,101,115,101,116,115,32, - 116,104,101,32,99,111,100,101,99,32,98,117,102,102,101,114, - 115,32,117,115,101,100,32,102,111,114,32,107,101,101,112,105, - 110,103,32,105,110,116,101,114,110,97,108,32,115,116,97,116, - 101,46,10,10,32,32,32,32,32,32,32,32,32,32,32,32, - 67,97,108,108,105,110,103,32,116,104,105,115,32,109,101,116, - 104,111,100,32,115,104,111,117,108,100,32,101,110,115,117,114, - 101,32,116,104,97,116,32,116,104,101,32,100,97,116,97,32, - 111,110,32,116,104,101,10,32,32,32,32,32,32,32,32,32, - 32,32,32,111,117,116,112,117,116,32,105,115,32,112,117,116, - 32,105,110,116,111,32,97,32,99,108,101,97,110,32,115,116, - 97,116,101,44,32,116,104,97,116,32,97,108,108,111,119,115, - 32,97,112,112,101,110,100,105,110,103,10,32,32,32,32,32, - 32,32,32,32,32,32,32,111,102,32,110,101,119,32,102,114, + 32,32,32,32,115,101,113,117,101,110,99,101,115,46,10,32, + 39,110,97,109,101,114,101,112,108,97,99,101,39,32,32,32, + 32,32,32,32,45,32,82,101,112,108,97,99,101,32,119,105, + 116,104,32,92,78,123,46,46,46,125,32,101,115,99,97,112, + 101,32,115,101,113,117,101,110,99,101,115,46,10,10,84,104, + 101,32,115,101,116,32,111,102,32,97,108,108,111,119,101,100, + 32,112,97,114,97,109,101,116,101,114,32,118,97,108,117,101, + 115,32,99,97,110,32,98,101,32,101,120,116,101,110,100,101, + 100,32,118,105,97,10,114,101,103,105,115,116,101,114,95,101, + 114,114,111,114,46,10,78,41,2,218,6,115,116,114,101,97, + 109,114,89,0,0,0,169,3,114,62,0,0,0,114,177,0, + 0,0,114,89,0,0,0,115,3,0,0,0,32,32,32,114, + 63,0,0,0,114,101,0,0,0,218,21,83,116,114,101,97, + 109,87,114,105,116,101,114,46,95,95,105,110,105,116,95,95, + 95,1,0,0,115,14,0,0,0,128,0,240,44,0,23,29, + 140,11,216,22,28,141,11,114,65,0,0,0,99,2,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,243,116,0,0,0,149,0,85,0,82,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,16, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,2,0,0,0,0,0,0,117,2,0,0, + 112,35,85,0,82,4,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,7,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,2,53,1, + 0,0,0,0,0,0,32,0,103,1,41,2,122,61,87,114, + 105,116,101,115,32,116,104,101,32,111,98,106,101,99,116,39, + 115,32,99,111,110,116,101,110,116,115,32,101,110,99,111,100, + 101,100,32,116,111,32,115,101,108,102,46,115,116,114,101,97, + 109,46,10,32,32,32,32,32,32,32,32,78,41,4,114,36, + 0,0,0,114,89,0,0,0,114,177,0,0,0,218,5,119, + 114,105,116,101,41,4,114,62,0,0,0,218,6,111,98,106, + 101,99,116,114,134,0,0,0,114,136,0,0,0,115,4,0, + 0,0,32,32,32,32,114,63,0,0,0,114,181,0,0,0, + 218,18,83,116,114,101,97,109,87,114,105,116,101,114,46,119, + 114,105,116,101,120,1,0,0,115,42,0,0,0,128,0,240, + 8,0,26,30,159,27,153,27,160,86,175,91,169,91,211,25, + 57,137,14,136,4,216,8,12,143,11,137,11,215,8,25,209, + 8,25,152,36,213,8,31,114,65,0,0,0,99,2,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, + 0,243,68,0,0,0,149,0,85,0,82,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,1, + 82,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,1,53,1,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,32,0,103,2,41,3,122,70,87,114, + 105,116,101,115,32,116,104,101,32,99,111,110,99,97,116,101, + 110,97,116,101,100,32,108,105,115,116,32,111,102,32,115,116, + 114,105,110,103,115,32,116,111,32,116,104,101,32,115,116,114, + 101,97,109,10,117,115,105,110,103,32,46,119,114,105,116,101, + 40,41,46,10,114,98,0,0,0,78,41,2,114,181,0,0, + 0,218,4,106,111,105,110,169,2,114,62,0,0,0,218,4, + 108,105,115,116,115,2,0,0,0,32,32,114,63,0,0,0, + 218,10,119,114,105,116,101,108,105,110,101,115,218,23,83,116, + 114,101,97,109,87,114,105,116,101,114,46,119,114,105,116,101, + 108,105,110,101,115,127,1,0,0,115,24,0,0,0,128,0, + 240,10,0,9,13,143,10,137,10,144,50,151,55,145,55,152, + 52,147,61,213,8,33,114,65,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, + 243,4,0,0,0,149,0,103,1,41,2,122,249,82,101,115, + 101,116,115,32,116,104,101,32,99,111,100,101,99,32,98,117, + 102,102,101,114,115,32,117,115,101,100,32,102,111,114,32,107, + 101,101,112,105,110,103,32,105,110,116,101,114,110,97,108,32, + 115,116,97,116,101,46,10,10,67,97,108,108,105,110,103,32, + 116,104,105,115,32,109,101,116,104,111,100,32,115,104,111,117, + 108,100,32,101,110,115,117,114,101,32,116,104,97,116,32,116, + 104,101,32,100,97,116,97,32,111,110,32,116,104,101,10,111, + 117,116,112,117,116,32,105,115,32,112,117,116,32,105,110,116, + 111,32,97,32,99,108,101,97,110,32,115,116,97,116,101,44, + 32,116,104,97,116,32,97,108,108,111,119,115,32,97,112,112, + 101,110,100,105,110,103,10,111,102,32,110,101,119,32,102,114, 101,115,104,32,100,97,116,97,32,119,105,116,104,111,117,116, 32,104,97,118,105,110,103,32,116,111,32,114,101,115,99,97, - 110,32,116,104,101,32,119,104,111,108,101,10,32,32,32,32, - 32,32,32,32,32,32,32,32,115,116,114,101,97,109,32,116, - 111,32,114,101,99,111,118,101,114,32,115,116,97,116,101,46, - 10,10,32,32,32,32,32,32,32,32,78,114,73,0,0,0, - 114,69,0,0,0,115,1,0,0,0,32,114,62,0,0,0, - 114,95,0,0,0,122,18,83,116,114,101,97,109,87,114,105, - 116,101,114,46,114,101,115,101,116,131,1,0,0,115,7,0, - 0,0,128,0,240,20,0,9,13,114,63,0,0,0,99,3, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,116,0,0,0,151,0,124,0,106,0,0,0, + 110,32,116,104,101,32,119,104,111,108,101,10,115,116,114,101, + 97,109,32,116,111,32,114,101,99,111,118,101,114,32,115,116, + 97,116,101,46,10,10,78,114,81,0,0,0,114,71,0,0, + 0,115,1,0,0,0,32,114,63,0,0,0,114,109,0,0, + 0,218,18,83,116,114,101,97,109,87,114,105,116,101,114,46, + 114,101,115,101,116,134,1,0,0,115,7,0,0,0,128,0, + 240,20,0,9,13,114,65,0,0,0,99,3,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 118,0,0,0,149,0,85,0,82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,82,3,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,124,2,171,2,0,0,0,0,0,0, - 1,0,124,2,100,1,107,40,0,0,114,23,124,1,100,1, - 107,40,0,0,114,17,124,0,106,5,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,1,0,121,0,121,0,121,0,114,120,0,0, - 0,169,3,114,141,0,0,0,218,4,115,101,101,107,114,95, - 0,0,0,169,3,114,61,0,0,0,218,6,111,102,102,115, - 101,116,218,6,119,104,101,110,99,101,115,3,0,0,0,32, - 32,32,114,62,0,0,0,114,154,0,0,0,122,17,83,116, - 114,101,97,109,87,114,105,116,101,114,46,115,101,101,107,143, - 1,0,0,115,51,0,0,0,128,0,216,8,12,143,11,137, - 11,215,8,24,209,8,24,152,22,160,22,212,8,40,216,11, - 17,144,81,138,59,152,54,160,81,154,59,216,12,16,143,74, - 137,74,141,76,240,3,0,28,39,136,59,114,63,0,0,0, - 99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,40,0,0,0,151,0,2,0,124,2, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,171,2,0,0,0,0,0,0, - 83,0,169,1,122,63,32,73,110,104,101,114,105,116,32,97, - 108,108,32,111,116,104,101,114,32,109,101,116,104,111,100,115, - 32,102,114,111,109,32,116,104,101,32,117,110,100,101,114,108, - 121,105,110,103,32,115,116,114,101,97,109,46,10,32,32,32, - 32,32,32,32,32,169,1,114,141,0,0,0,169,3,114,61, - 0,0,0,114,55,0,0,0,218,7,103,101,116,97,116,116, - 114,115,3,0,0,0,32,32,32,114,62,0,0,0,218,11, - 95,95,103,101,116,97,116,116,114,95,95,122,24,83,116,114, - 101,97,109,87,114,105,116,101,114,46,95,95,103,101,116,97, - 116,116,114,95,95,148,1,0,0,243,21,0,0,0,128,0, - 241,10,0,16,23,144,116,151,123,145,123,160,68,211,15,41, - 208,8,41,114,63,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,3,0,0,0,243,6,0, - 0,0,151,0,124,0,83,0,114,52,0,0,0,114,73,0, - 0,0,114,69,0,0,0,115,1,0,0,0,32,114,62,0, - 0,0,218,9,95,95,101,110,116,101,114,95,95,122,22,83, - 116,114,101,97,109,87,114,105,116,101,114,46,95,95,101,110, - 116,101,114,95,95,155,1,0,0,243,7,0,0,0,128,0, - 216,15,19,136,11,114,63,0,0,0,99,4,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,243, - 56,0,0,0,151,0,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,3,0,0, + 88,18,53,2,0,0,0,0,0,0,32,0,85,2,83,1, + 58,88,0,0,97,24,0,0,85,1,83,1,58,88,0,0, + 97,17,0,0,85,0,82,5,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,32,0,103,0,103,0,103,0,114,142,0,0,0,169, + 3,114,177,0,0,0,218,4,115,101,101,107,114,109,0,0, + 0,169,3,114,62,0,0,0,218,6,111,102,102,115,101,116, + 218,6,119,104,101,110,99,101,115,3,0,0,0,32,32,32, + 114,63,0,0,0,114,194,0,0,0,218,17,83,116,114,101, + 97,109,87,114,105,116,101,114,46,115,101,101,107,146,1,0, + 0,115,49,0,0,0,128,0,216,8,12,143,11,137,11,215, + 8,24,209,8,24,152,22,212,8,40,216,11,17,144,81,139, + 59,152,54,160,81,155,59,216,12,16,143,74,137,74,141,76, + 240,3,0,28,39,136,59,114,65,0,0,0,99,3,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,243,40,0,0,0,149,0,85,2,34,0,85,0,82,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,1,0,121,0,114,52,0,0, - 0,169,2,114,141,0,0,0,218,5,99,108,111,115,101,169, - 4,114,61,0,0,0,218,4,116,121,112,101,218,5,118,97, - 108,117,101,218,2,116,98,115,4,0,0,0,32,32,32,32, - 114,62,0,0,0,218,8,95,95,101,120,105,116,95,95,122, - 21,83,116,114,101,97,109,87,114,105,116,101,114,46,95,95, - 101,120,105,116,95,95,158,1,0,0,243,18,0,0,0,128, - 0,216,8,12,143,11,137,11,215,8,25,209,8,25,213,8, - 27,114,63,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,70,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,100,1,124,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,106,4,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,122,6,0,0,171,1,0,0, - 0,0,0,0,130,1,169,2,78,122,18,99,97,110,39,116, - 32,115,101,114,105,97,108,105,122,101,32,37,115,169,3,218, - 9,84,121,112,101,69,114,114,111,114,114,65,0,0,0,114, - 71,0,0,0,169,2,114,61,0,0,0,218,5,112,114,111, - 116,111,115,2,0,0,0,32,32,114,62,0,0,0,218,13, - 95,95,114,101,100,117,99,101,95,101,120,95,95,122,26,83, - 116,114,101,97,109,87,114,105,116,101,114,46,95,95,114,101, - 100,117,99,101,95,101,120,95,95,161,1,0,0,243,29,0, - 0,0,128,0,220,14,23,208,24,44,168,116,175,126,169,126, - 215,47,70,209,47,70,209,24,70,211,14,71,208,8,71,114, - 63,0,0,0,78,114,82,0,0,0,169,1,114,2,0,0, - 0,41,13,114,71,0,0,0,114,66,0,0,0,114,67,0, - 0,0,114,89,0,0,0,114,144,0,0,0,114,150,0,0, - 0,114,95,0,0,0,114,154,0,0,0,114,162,0,0,0, - 114,163,0,0,0,114,166,0,0,0,114,175,0,0,0,114, - 183,0,0,0,114,73,0,0,0,114,63,0,0,0,114,62, - 0,0,0,114,27,0,0,0,114,27,0,0,0,90,1,0, - 0,115,53,0,0,0,132,0,243,4,23,5,29,242,50,5, - 5,32,242,14,5,5,34,242,14,10,5,13,243,24,3,5, - 25,240,12,0,29,36,243,3,5,5,42,242,14,1,5,20, - 242,6,1,5,28,243,6,1,5,72,1,114,63,0,0,0, - 114,27,0,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,0,0,0,0,243,110,0,0,0,151, - 0,101,0,90,1,100,0,90,2,101,3,90,4,100,15,100, - 1,132,1,90,5,100,15,100,2,132,1,90,6,100,16,100, - 3,132,1,90,7,100,17,100,5,132,1,90,8,100,17,100, - 6,132,1,90,9,100,7,132,0,90,10,100,18,100,8,132, - 1,90,11,100,9,132,0,90,12,100,10,132,0,90,13,101, - 14,102,1,100,11,132,1,90,15,100,12,132,0,90,16,100, - 13,132,0,90,17,100,14,132,0,90,18,121,4,41,19,114, - 26,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,3,0,0,0,243,136,0,0,0,151,0, - 124,1,124,0,95,0,0,0,0,0,0,0,0,0,124,2, - 124,0,95,1,0,0,0,0,0,0,0,0,100,1,124,0, - 95,2,0,0,0,0,0,0,0,0,124,0,106,7,0,0, + 0,0,85,1,53,2,0,0,0,0,0,0,36,0,169,1, + 122,62,73,110,104,101,114,105,116,32,97,108,108,32,111,116, + 104,101,114,32,109,101,116,104,111,100,115,32,102,114,111,109, + 32,116,104,101,32,117,110,100,101,114,108,121,105,110,103,32, + 115,116,114,101,97,109,46,10,32,32,32,32,32,32,32,32, + 169,1,114,177,0,0,0,169,3,114,62,0,0,0,114,56, + 0,0,0,218,7,103,101,116,97,116,116,114,115,3,0,0, + 0,32,32,32,114,63,0,0,0,218,11,95,95,103,101,116, + 97,116,116,114,95,95,218,24,83,116,114,101,97,109,87,114, + 105,116,101,114,46,95,95,103,101,116,97,116,116,114,95,95, + 151,1,0,0,243,21,0,0,0,128,0,241,10,0,16,23, + 144,116,151,123,145,123,160,68,211,15,41,208,8,41,114,65, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,3,0,0,0,243,6,0,0,0,149,0,85, + 0,36,0,114,53,0,0,0,114,81,0,0,0,114,71,0, + 0,0,115,1,0,0,0,32,114,63,0,0,0,218,9,95, + 95,101,110,116,101,114,95,95,218,22,83,116,114,101,97,109, + 87,114,105,116,101,114,46,95,95,101,110,116,101,114,95,95, + 158,1,0,0,243,7,0,0,0,128,0,216,15,19,136,11, + 114,65,0,0,0,99,4,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,3,0,0,0,243,56,0,0,0,149, + 0,85,0,82,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,82,3,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,0,0,0,0, + 0,0,0,32,0,103,0,114,53,0,0,0,169,2,114,177, + 0,0,0,218,5,99,108,111,115,101,169,4,114,62,0,0, + 0,218,4,116,121,112,101,218,5,118,97,108,117,101,218,2, + 116,98,115,4,0,0,0,32,32,32,32,114,63,0,0,0, + 218,8,95,95,101,120,105,116,95,95,218,21,83,116,114,101, + 97,109,87,114,105,116,101,114,46,95,95,101,120,105,116,95, + 95,161,1,0,0,243,18,0,0,0,128,0,216,8,12,143, + 11,137,11,215,8,25,209,8,25,213,8,27,114,65,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,70,0,0,0,149,0,91,1,0, + 0,0,0,0,0,0,0,83,1,85,0,82,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,45,6,0,0,53,1,0,0,0,0,0,0,101, + 1,169,2,78,122,18,99,97,110,39,116,32,115,101,114,105, + 97,108,105,122,101,32,37,115,169,3,218,9,84,121,112,101, + 69,114,114,111,114,114,67,0,0,0,114,77,0,0,0,169, + 2,114,62,0,0,0,218,5,112,114,111,116,111,115,2,0, + 0,0,32,32,114,63,0,0,0,218,13,95,95,114,101,100, + 117,99,101,95,101,120,95,95,218,26,83,116,114,101,97,109, + 87,114,105,116,101,114,46,95,95,114,101,100,117,99,101,95, + 101,120,95,95,164,1,0,0,243,29,0,0,0,128,0,220, + 14,23,208,24,44,168,116,175,126,169,126,215,47,70,209,47, + 70,209,24,70,211,14,71,208,8,71,114,65,0,0,0,41, + 2,114,89,0,0,0,114,177,0,0,0,78,114,93,0,0, + 0,169,1,114,2,0,0,0,41,15,114,77,0,0,0,114, + 68,0,0,0,114,69,0,0,0,114,78,0,0,0,114,101, + 0,0,0,114,181,0,0,0,114,188,0,0,0,114,109,0, + 0,0,114,194,0,0,0,114,203,0,0,0,114,204,0,0, + 0,114,208,0,0,0,114,218,0,0,0,114,227,0,0,0, + 114,80,0,0,0,114,81,0,0,0,114,65,0,0,0,114, + 63,0,0,0,114,27,0,0,0,114,27,0,0,0,93,1, + 0,0,115,53,0,0,0,134,0,244,4,23,5,29,242,50, + 5,5,32,242,14,5,5,34,242,14,10,5,13,244,24,3, + 5,25,240,12,0,29,36,244,3,5,5,42,242,14,1,5, + 20,242,6,1,5,28,245,6,1,5,72,1,114,65,0,0, + 0,114,27,0,0,0,99,0,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,0,0,0,0,243,132,0,0,0, + 149,0,92,0,114,1,83,0,114,2,83,1,114,3,92,4, + 114,5,83,17,83,2,26,0,106,1,114,6,83,17,83,3, + 26,0,106,1,114,7,83,18,83,4,26,0,106,1,114,8, + 83,19,83,6,26,0,106,1,114,9,83,19,83,7,26,0, + 106,1,114,10,83,8,26,0,114,11,83,20,83,9,26,0, + 106,1,114,12,83,10,26,0,114,13,83,11,26,0,114,14, + 92,15,52,1,83,12,26,0,106,1,114,16,83,13,26,0, + 114,17,83,14,26,0,114,18,83,15,26,0,114,19,83,16, + 114,20,103,5,41,21,114,26,0,0,0,105,169,1,0,0, + 99,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,3,0,0,0,243,132,0,0,0,149,0,88,16,108,0, + 0,0,0,0,0,0,0,0,88,32,108,1,0,0,0,0, + 0,0,0,0,83,1,85,0,108,2,0,0,0,0,0,0, + 0,0,85,0,82,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 85,0,108,4,0,0,0,0,0,0,0,0,85,0,82,8, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,124,0,95,4,0,0,0,0, - 0,0,0,0,124,0,106,8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,95,5,0,0, - 0,0,0,0,0,0,100,2,124,0,95,6,0,0,0,0, - 0,0,0,0,121,2,41,3,97,141,2,0,0,32,67,114, - 101,97,116,101,115,32,97,32,83,116,114,101,97,109,82,101, - 97,100,101,114,32,105,110,115,116,97,110,99,101,46,10,10, - 32,32,32,32,32,32,32,32,32,32,32,32,115,116,114,101, - 97,109,32,109,117,115,116,32,98,101,32,97,32,102,105,108, - 101,45,108,105,107,101,32,111,98,106,101,99,116,32,111,112, - 101,110,32,102,111,114,32,114,101,97,100,105,110,103,46,10, - 10,32,32,32,32,32,32,32,32,32,32,32,32,84,104,101, - 32,83,116,114,101,97,109,82,101,97,100,101,114,32,109,97, - 121,32,117,115,101,32,100,105,102,102,101,114,101,110,116,32, - 101,114,114,111,114,32,104,97,110,100,108,105,110,103,10,32, - 32,32,32,32,32,32,32,32,32,32,32,115,99,104,101,109, - 101,115,32,98,121,32,112,114,111,118,105,100,105,110,103,32, - 116,104,101,32,101,114,114,111,114,115,32,107,101,121,119,111, - 114,100,32,97,114,103,117,109,101,110,116,46,32,84,104,101, - 115,101,10,32,32,32,32,32,32,32,32,32,32,32,32,112, - 97,114,97,109,101,116,101,114,115,32,97,114,101,32,112,114, - 101,100,101,102,105,110,101,100,58,10,10,32,32,32,32,32, - 32,32,32,32,32,32,32,32,39,115,116,114,105,99,116,39, - 32,45,32,114,97,105,115,101,32,97,32,86,97,108,117,101, - 69,114,114,111,114,32,40,111,114,32,97,32,115,117,98,99, - 108,97,115,115,41,10,32,32,32,32,32,32,32,32,32,32, - 32,32,32,39,105,103,110,111,114,101,39,32,45,32,105,103, - 110,111,114,101,32,116,104,101,32,99,104,97,114,97,99,116, - 101,114,32,97,110,100,32,99,111,110,116,105,110,117,101,32, - 119,105,116,104,32,116,104,101,32,110,101,120,116,10,32,32, - 32,32,32,32,32,32,32,32,32,32,32,39,114,101,112,108, - 97,99,101,39,45,32,114,101,112,108,97,99,101,32,119,105, - 116,104,32,97,32,115,117,105,116,97,98,108,101,32,114,101, - 112,108,97,99,101,109,101,110,116,32,99,104,97,114,97,99, - 116,101,114,10,32,32,32,32,32,32,32,32,32,32,32,32, - 32,39,98,97,99,107,115,108,97,115,104,114,101,112,108,97, - 99,101,39,32,45,32,82,101,112,108,97,99,101,32,119,105, - 116,104,32,98,97,99,107,115,108,97,115,104,101,100,32,101, - 115,99,97,112,101,32,115,101,113,117,101,110,99,101,115,59, - 10,10,32,32,32,32,32,32,32,32,32,32,32,32,84,104, - 101,32,115,101,116,32,111,102,32,97,108,108,111,119,101,100, - 32,112,97,114,97,109,101,116,101,114,32,118,97,108,117,101, - 115,32,99,97,110,32,98,101,32,101,120,116,101,110,100,101, - 100,32,118,105,97,10,32,32,32,32,32,32,32,32,32,32, - 32,32,114,101,103,105,115,116,101,114,95,101,114,114,111,114, - 46,10,32,32,32,32,32,32,32,32,114,63,0,0,0,78, - 41,7,114,141,0,0,0,114,80,0,0,0,218,10,98,121, - 116,101,98,117,102,102,101,114,218,14,99,104,97,114,98,117, - 102,102,101,114,116,121,112,101,218,17,95,101,109,112,116,121, - 95,99,104,97,114,98,117,102,102,101,114,218,10,99,104,97, - 114,98,117,102,102,101,114,218,10,108,105,110,101,98,117,102, - 102,101,114,114,142,0,0,0,115,3,0,0,0,32,32,32, - 114,62,0,0,0,114,89,0,0,0,122,21,83,116,114,101, - 97,109,82,101,97,100,101,114,46,95,95,105,110,105,116,95, - 95,170,1,0,0,115,62,0,0,0,128,0,240,36,0,23, - 29,136,4,140,11,216,22,28,136,4,140,11,216,26,29,136, - 4,140,15,216,33,37,215,33,52,209,33,52,211,33,54,136, - 4,212,8,30,216,26,30,215,26,48,209,26,48,136,4,140, - 15,216,26,30,136,4,141,15,114,63,0,0,0,99,3,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, - 0,0,243,14,0,0,0,151,0,116,0,0,0,0,0,0, - 0,0,0,130,1,114,52,0,0,0,114,76,0,0,0,114, - 78,0,0,0,115,3,0,0,0,32,32,32,114,62,0,0, - 0,114,37,0,0,0,122,19,83,116,114,101,97,109,82,101, - 97,100,101,114,46,100,101,99,111,100,101,195,1,0,0,115, - 8,0,0,0,128,0,220,14,33,208,8,33,114,63,0,0, - 0,99,4,0,0,0,0,0,0,0,0,0,0,0,6,0, - 0,0,3,0,0,0,243,70,3,0,0,151,0,124,0,106, + 0,0,85,0,108,5,0,0,0,0,0,0,0,0,83,2, + 85,0,108,6,0,0,0,0,0,0,0,0,103,2,41,3, + 97,12,2,0,0,67,114,101,97,116,101,115,32,97,32,83, + 116,114,101,97,109,82,101,97,100,101,114,32,105,110,115,116, + 97,110,99,101,46,10,10,115,116,114,101,97,109,32,109,117, + 115,116,32,98,101,32,97,32,102,105,108,101,45,108,105,107, + 101,32,111,98,106,101,99,116,32,111,112,101,110,32,102,111, + 114,32,114,101,97,100,105,110,103,46,10,10,84,104,101,32, + 83,116,114,101,97,109,82,101,97,100,101,114,32,109,97,121, + 32,117,115,101,32,100,105,102,102,101,114,101,110,116,32,101, + 114,114,111,114,32,104,97,110,100,108,105,110,103,10,115,99, + 104,101,109,101,115,32,98,121,32,112,114,111,118,105,100,105, + 110,103,32,116,104,101,32,101,114,114,111,114,115,32,107,101, + 121,119,111,114,100,32,97,114,103,117,109,101,110,116,46,32, + 84,104,101,115,101,10,112,97,114,97,109,101,116,101,114,115, + 32,97,114,101,32,112,114,101,100,101,102,105,110,101,100,58, + 10,10,32,39,115,116,114,105,99,116,39,32,45,32,114,97, + 105,115,101,32,97,32,86,97,108,117,101,69,114,114,111,114, + 32,40,111,114,32,97,32,115,117,98,99,108,97,115,115,41, + 10,32,39,105,103,110,111,114,101,39,32,45,32,105,103,110, + 111,114,101,32,116,104,101,32,99,104,97,114,97,99,116,101, + 114,32,97,110,100,32,99,111,110,116,105,110,117,101,32,119, + 105,116,104,32,116,104,101,32,110,101,120,116,10,32,39,114, + 101,112,108,97,99,101,39,45,32,114,101,112,108,97,99,101, + 32,119,105,116,104,32,97,32,115,117,105,116,97,98,108,101, + 32,114,101,112,108,97,99,101,109,101,110,116,32,99,104,97, + 114,97,99,116,101,114,10,32,39,98,97,99,107,115,108,97, + 115,104,114,101,112,108,97,99,101,39,32,45,32,82,101,112, + 108,97,99,101,32,119,105,116,104,32,98,97,99,107,115,108, + 97,115,104,101,100,32,101,115,99,97,112,101,32,115,101,113, + 117,101,110,99,101,115,59,10,10,84,104,101,32,115,101,116, + 32,111,102,32,97,108,108,111,119,101,100,32,112,97,114,97, + 109,101,116,101,114,32,118,97,108,117,101,115,32,99,97,110, + 32,98,101,32,101,120,116,101,110,100,101,100,32,118,105,97, + 10,114,101,103,105,115,116,101,114,95,101,114,114,111,114,46, + 10,114,65,0,0,0,78,41,7,114,177,0,0,0,114,89, + 0,0,0,218,10,98,121,116,101,98,117,102,102,101,114,218, + 14,99,104,97,114,98,117,102,102,101,114,116,121,112,101,218, + 17,95,101,109,112,116,121,95,99,104,97,114,98,117,102,102, + 101,114,218,10,99,104,97,114,98,117,102,102,101,114,218,10, + 108,105,110,101,98,117,102,102,101,114,114,178,0,0,0,115, + 3,0,0,0,32,32,32,114,63,0,0,0,114,101,0,0, + 0,218,21,83,116,114,101,97,109,82,101,97,100,101,114,46, + 95,95,105,110,105,116,95,95,173,1,0,0,115,58,0,0, + 0,128,0,240,36,0,23,29,140,11,216,22,28,140,11,216, + 26,29,136,4,140,15,216,33,37,215,33,52,209,33,52,211, + 33,54,136,4,212,8,30,216,26,30,215,26,48,209,26,48, + 136,4,140,15,216,26,30,136,4,141,15,114,65,0,0,0, + 99,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,3,0,0,0,243,14,0,0,0,149,0,91,0,0,0, + 0,0,0,0,0,0,101,1,114,53,0,0,0,114,85,0, + 0,0,114,87,0,0,0,115,3,0,0,0,32,32,32,114, + 63,0,0,0,114,37,0,0,0,218,19,83,116,114,101,97, + 109,82,101,97,100,101,114,46,100,101,99,111,100,101,198,1, + 0,0,115,8,0,0,0,128,0,220,14,33,208,8,33,114, + 65,0,0,0,99,4,0,0,0,0,0,0,0,0,0,0, + 0,6,0,0,0,3,0,0,0,243,112,3,0,0,149,0, + 85,0,82,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,97,49, + 0,0,85,0,82,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,5,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,0,82,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,85,0,108,3,0,0, + 0,0,0,0,0,0,83,1,85,0,108,0,0,0,0,0, + 0,0,0,0,85,2,83,2,58,18,0,0,97,2,0,0, + 85,1,110,2,30,0,85,2,83,2,58,188,0,0,97,26, + 0,0,91,9,0,0,0,0,0,0,0,0,85,0,82,6, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,114,49,124,0,106,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,106,5,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,124,0,95, - 3,0,0,0,0,0,0,0,0,100,1,124,0,95,0,0, - 0,0,0,0,0,0,0,124,2,100,2,107,2,0,0,114, - 2,124,1,125,2,9,0,124,2,100,2,107,92,0,0,114, - 25,116,9,0,0,0,0,0,0,0,0,124,0,106,6,0, + 0,0,53,1,0,0,0,0,0,0,85,2,58,188,0,0, + 97,1,0,0,79,153,85,1,83,2,58,18,0,0,97,27, + 0,0,85,0,82,10,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,13,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,110,4,79,27,85,0,82,10,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,13, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,124,2,107,92,0,0,114, - 1,110,144,124,1,100,2,107,2,0,0,114,27,124,0,106, - 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,13,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,125, - 4,110,27,124,0,106,10,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,13,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,171, - 1,0,0,0,0,0,0,125,4,124,0,106,14,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 4,122,0,0,0,125,5,124,5,115,1,110,67,9,0,124, - 0,106,17,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,5,124,0,106,18,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,2,0, - 0,0,0,0,0,92,2,0,0,125,6,125,7,124,5,124, - 7,100,1,26,0,124,0,95,7,0,0,0,0,0,0,0, - 0,124,0,120,1,106,6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,6,122,13,0,0,99, - 2,95,3,0,0,0,0,0,0,0,0,124,4,115,1,110, - 1,140,174,124,2,100,2,107,2,0,0,114,31,124,0,106, - 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,125,10,124,0,106,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,95,3,0, - 0,0,0,0,0,0,0,124,10,83,0,124,0,106,6,0, + 0,0,85,1,53,1,0,0,0,0,0,0,110,4,85,0, + 82,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,4,45,0,0,0,110,5,85,5,40,0, + 0,0,0,0,0,0,100,1,0,0,79,70,30,0,85,0, + 82,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,88,80,82,18,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,2,0,0,0,0, + 0,0,117,2,0,0,112,103,88,87,83,1,4,0,85,0, + 108,7,0,0,0,0,0,0,0,0,85,0,61,1,82,6, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,1,124,2,26,0,125,10,124,0,106,6,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 2,100,1,26,0,124,0,95,3,0,0,0,0,0,0,0, - 0,124,10,83,0,35,0,116,20,0,0,0,0,0,0,0, - 0,36,0,114,90,125,8,124,3,114,77,124,0,106,17,0, + 0,0,85,6,45,13,0,0,115,2,108,3,0,0,0,0, + 0,0,0,0,85,4,40,0,0,0,0,0,0,0,100,1, + 0,0,79,2,77,185,0,0,85,2,83,2,58,18,0,0, + 97,31,0,0,85,0,82,6,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,110,10,85,0,82,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,5,100,1,124,8,106,22,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,26,0,124,0,106, - 18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,2,0,0,0,0,0,0,92,2,0,0,125, - 6,125,7,124,6,106,25,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,3,172,4,171,1,0, - 0,0,0,0,0,125,9,116,9,0,0,0,0,0,0,0, - 0,124,9,171,1,0,0,0,0,0,0,100,5,107,26,0, - 0,114,2,130,0,130,0,89,0,100,1,125,8,126,8,140, - 202,100,1,125,8,126,8,119,1,119,0,120,3,89,0,119, - 1,41,6,97,236,4,0,0,32,68,101,99,111,100,101,115, - 32,100,97,116,97,32,102,114,111,109,32,116,104,101,32,115, - 116,114,101,97,109,32,115,101,108,102,46,115,116,114,101,97, - 109,32,97,110,100,32,114,101,116,117,114,110,115,32,116,104, - 101,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101, + 0,0,85,0,108,3,0,0,0,0,0,0,0,0,85,10, + 36,0,85,0,82,6,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,83,1,85,2,4,0,110,10, + 85,0,82,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,2,83,1,4,0,85,0,108,3, + 0,0,0,0,0,0,0,0,85,10,36,0,33,0,91,20, + 0,0,0,0,0,0,0,0,7,0,97,92,0,0,110,8, + 85,3,40,0,0,0,0,0,0,0,97,79,0,0,85,0, + 82,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,5,83,1,85,8,82,22,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0, + 85,0,82,18,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,2,0,0,0,0,0,0,117,2, + 0,0,112,103,85,6,82,25,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,3,83,4,57,1, + 110,9,91,9,0,0,0,0,0,0,0,0,85,9,53,1, + 0,0,0,0,0,0,83,5,58,58,0,0,97,1,0,0, + 101,0,31,0,83,1,110,8,65,8,78,210,101,0,83,1, + 110,8,65,8,102,1,102,0,61,3,31,0,102,1,41,6, + 97,255,3,0,0,68,101,99,111,100,101,115,32,100,97,116, + 97,32,102,114,111,109,32,116,104,101,32,115,116,114,101,97, + 109,32,115,101,108,102,46,115,116,114,101,97,109,32,97,110, + 100,32,114,101,116,117,114,110,115,32,116,104,101,10,114,101, 115,117,108,116,105,110,103,32,111,98,106,101,99,116,46,10, - 10,32,32,32,32,32,32,32,32,32,32,32,32,99,104,97, - 114,115,32,105,110,100,105,99,97,116,101,115,32,116,104,101, - 32,110,117,109,98,101,114,32,111,102,32,100,101,99,111,100, - 101,100,32,99,111,100,101,32,112,111,105,110,116,115,32,111, - 114,32,98,121,116,101,115,32,116,111,10,32,32,32,32,32, - 32,32,32,32,32,32,32,114,101,116,117,114,110,46,32,114, - 101,97,100,40,41,32,119,105,108,108,32,110,101,118,101,114, - 32,114,101,116,117,114,110,32,109,111,114,101,32,100,97,116, - 97,32,116,104,97,110,32,114,101,113,117,101,115,116,101,100, - 44,10,32,32,32,32,32,32,32,32,32,32,32,32,98,117, - 116,32,105,116,32,109,105,103,104,116,32,114,101,116,117,114, - 110,32,108,101,115,115,44,32,105,102,32,116,104,101,114,101, - 32,105,115,32,110,111,116,32,101,110,111,117,103,104,32,97, - 118,97,105,108,97,98,108,101,46,10,10,32,32,32,32,32, - 32,32,32,32,32,32,32,115,105,122,101,32,105,110,100,105, + 10,99,104,97,114,115,32,105,110,100,105,99,97,116,101,115, + 32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,100, + 101,99,111,100,101,100,32,99,111,100,101,32,112,111,105,110, + 116,115,32,111,114,32,98,121,116,101,115,32,116,111,10,114, + 101,116,117,114,110,46,32,114,101,97,100,40,41,32,119,105, + 108,108,32,110,101,118,101,114,32,114,101,116,117,114,110,32, + 109,111,114,101,32,100,97,116,97,32,116,104,97,110,32,114, + 101,113,117,101,115,116,101,100,44,10,98,117,116,32,105,116, + 32,109,105,103,104,116,32,114,101,116,117,114,110,32,108,101, + 115,115,44,32,105,102,32,116,104,101,114,101,32,105,115,32, + 110,111,116,32,101,110,111,117,103,104,32,97,118,97,105,108, + 97,98,108,101,46,10,10,115,105,122,101,32,105,110,100,105, 99,97,116,101,115,32,116,104,101,32,97,112,112,114,111,120, 105,109,97,116,101,32,109,97,120,105,109,117,109,32,110,117, 109,98,101,114,32,111,102,32,100,101,99,111,100,101,100,10, - 32,32,32,32,32,32,32,32,32,32,32,32,98,121,116,101, - 115,32,111,114,32,99,111,100,101,32,112,111,105,110,116,115, - 32,116,111,32,114,101,97,100,32,102,111,114,32,100,101,99, - 111,100,105,110,103,46,32,84,104,101,32,100,101,99,111,100, - 101,114,10,32,32,32,32,32,32,32,32,32,32,32,32,99, - 97,110,32,109,111,100,105,102,121,32,116,104,105,115,32,115, - 101,116,116,105,110,103,32,97,115,32,97,112,112,114,111,112, - 114,105,97,116,101,46,32,84,104,101,32,100,101,102,97,117, - 108,116,32,118,97,108,117,101,10,32,32,32,32,32,32,32, - 32,32,32,32,32,45,49,32,105,110,100,105,99,97,116,101, - 115,32,116,111,32,114,101,97,100,32,97,110,100,32,100,101, - 99,111,100,101,32,97,115,32,109,117,99,104,32,97,115,32, - 112,111,115,115,105,98,108,101,46,32,32,115,105,122,101,10, - 32,32,32,32,32,32,32,32,32,32,32,32,105,115,32,105, + 98,121,116,101,115,32,111,114,32,99,111,100,101,32,112,111, + 105,110,116,115,32,116,111,32,114,101,97,100,32,102,111,114, + 32,100,101,99,111,100,105,110,103,46,32,84,104,101,32,100, + 101,99,111,100,101,114,10,99,97,110,32,109,111,100,105,102, + 121,32,116,104,105,115,32,115,101,116,116,105,110,103,32,97, + 115,32,97,112,112,114,111,112,114,105,97,116,101,46,32,84, + 104,101,32,100,101,102,97,117,108,116,32,118,97,108,117,101, + 10,45,49,32,105,110,100,105,99,97,116,101,115,32,116,111, + 32,114,101,97,100,32,97,110,100,32,100,101,99,111,100,101, + 32,97,115,32,109,117,99,104,32,97,115,32,112,111,115,115, + 105,98,108,101,46,32,32,115,105,122,101,10,105,115,32,105, 110,116,101,110,100,101,100,32,116,111,32,112,114,101,118,101, 110,116,32,104,97,118,105,110,103,32,116,111,32,100,101,99, 111,100,101,32,104,117,103,101,32,102,105,108,101,115,32,105, - 110,32,111,110,101,10,32,32,32,32,32,32,32,32,32,32, - 32,32,115,116,101,112,46,10,10,32,32,32,32,32,32,32, - 32,32,32,32,32,73,102,32,102,105,114,115,116,108,105,110, - 101,32,105,115,32,116,114,117,101,44,32,97,110,100,32,97, - 32,85,110,105,99,111,100,101,68,101,99,111,100,101,69,114, - 114,111,114,32,104,97,112,112,101,110,115,10,32,32,32,32, - 32,32,32,32,32,32,32,32,97,102,116,101,114,32,116,104, - 101,32,102,105,114,115,116,32,108,105,110,101,32,116,101,114, - 109,105,110,97,116,111,114,32,105,110,32,116,104,101,32,105, - 110,112,117,116,32,111,110,108,121,32,116,104,101,32,102,105, - 114,115,116,32,108,105,110,101,10,32,32,32,32,32,32,32, - 32,32,32,32,32,119,105,108,108,32,98,101,32,114,101,116, + 110,32,111,110,101,10,115,116,101,112,46,10,10,73,102,32, + 102,105,114,115,116,108,105,110,101,32,105,115,32,116,114,117, + 101,44,32,97,110,100,32,97,32,85,110,105,99,111,100,101, + 68,101,99,111,100,101,69,114,114,111,114,32,104,97,112,112, + 101,110,115,10,97,102,116,101,114,32,116,104,101,32,102,105, + 114,115,116,32,108,105,110,101,32,116,101,114,109,105,110,97, + 116,111,114,32,105,110,32,116,104,101,32,105,110,112,117,116, + 32,111,110,108,121,32,116,104,101,32,102,105,114,115,116,32, + 108,105,110,101,10,119,105,108,108,32,98,101,32,114,101,116, 117,114,110,101,100,44,32,116,104,101,32,114,101,115,116,32, 111,102,32,116,104,101,32,105,110,112,117,116,32,119,105,108, 108,32,98,101,32,107,101,112,116,32,117,110,116,105,108,32, - 116,104,101,10,32,32,32,32,32,32,32,32,32,32,32,32, - 110,101,120,116,32,99,97,108,108,32,116,111,32,114,101,97, - 100,40,41,46,10,10,32,32,32,32,32,32,32,32,32,32, - 32,32,84,104,101,32,109,101,116,104,111,100,32,115,104,111, - 117,108,100,32,117,115,101,32,97,32,103,114,101,101,100,121, - 32,114,101,97,100,32,115,116,114,97,116,101,103,121,44,32, - 109,101,97,110,105,110,103,32,116,104,97,116,10,32,32,32, - 32,32,32,32,32,32,32,32,32,105,116,32,115,104,111,117, - 108,100,32,114,101,97,100,32,97,115,32,109,117,99,104,32, - 100,97,116,97,32,97,115,32,105,115,32,97,108,108,111,119, - 101,100,32,119,105,116,104,105,110,32,116,104,101,10,32,32, - 32,32,32,32,32,32,32,32,32,32,100,101,102,105,110,105, + 116,104,101,10,110,101,120,116,32,99,97,108,108,32,116,111, + 32,114,101,97,100,40,41,46,10,10,84,104,101,32,109,101, + 116,104,111,100,32,115,104,111,117,108,100,32,117,115,101,32, + 97,32,103,114,101,101,100,121,32,114,101,97,100,32,115,116, + 114,97,116,101,103,121,44,32,109,101,97,110,105,110,103,32, + 116,104,97,116,10,105,116,32,115,104,111,117,108,100,32,114, + 101,97,100,32,97,115,32,109,117,99,104,32,100,97,116,97, + 32,97,115,32,105,115,32,97,108,108,111,119,101,100,32,119, + 105,116,104,105,110,32,116,104,101,10,100,101,102,105,110,105, 116,105,111,110,32,111,102,32,116,104,101,32,101,110,99,111, 100,105,110,103,32,97,110,100,32,116,104,101,32,103,105,118, 101,110,32,115,105,122,101,44,32,101,46,103,46,32,32,105, - 102,10,32,32,32,32,32,32,32,32,32,32,32,32,111,112, - 116,105,111,110,97,108,32,101,110,99,111,100,105,110,103,32, - 101,110,100,105,110,103,115,32,111,114,32,115,116,97,116,101, - 32,109,97,114,107,101,114,115,32,97,114,101,32,97,118,97, - 105,108,97,98,108,101,10,32,32,32,32,32,32,32,32,32, - 32,32,32,111,110,32,116,104,101,32,115,116,114,101,97,109, - 44,32,116,104,101,115,101,32,115,104,111,117,108,100,32,98, - 101,32,114,101,97,100,32,116,111,111,46,10,32,32,32,32, - 32,32,32,32,78,114,2,0,0,0,84,169,1,218,8,107, - 101,101,112,101,110,100,115,233,1,0,0,0,41,13,114,192, - 0,0,0,114,190,0,0,0,114,147,0,0,0,114,191,0, - 0,0,218,3,108,101,110,114,141,0,0,0,218,4,114,101, - 97,100,114,188,0,0,0,114,37,0,0,0,114,80,0,0, + 102,10,111,112,116,105,111,110,97,108,32,101,110,99,111,100, + 105,110,103,32,101,110,100,105,110,103,115,32,111,114,32,115, + 116,97,116,101,32,109,97,114,107,101,114,115,32,97,114,101, + 32,97,118,97,105,108,97,98,108,101,10,111,110,32,116,104, + 101,32,115,116,114,101,97,109,44,32,116,104,101,115,101,32, + 115,104,111,117,108,100,32,98,101,32,114,101,97,100,32,116, + 111,111,46,10,78,114,2,0,0,0,84,169,1,218,8,107, + 101,101,112,101,110,100,115,233,1,0,0,0,41,13,114,237, + 0,0,0,114,235,0,0,0,114,185,0,0,0,114,236,0, + 0,0,218,3,108,101,110,114,177,0,0,0,218,4,114,101, + 97,100,114,233,0,0,0,114,37,0,0,0,114,89,0,0, 0,218,18,85,110,105,99,111,100,101,68,101,99,111,100,101, 69,114,114,111,114,218,5,115,116,97,114,116,218,10,115,112, - 108,105,116,108,105,110,101,115,41,11,114,61,0,0,0,218, + 108,105,116,108,105,110,101,115,41,11,114,62,0,0,0,218, 4,115,105,122,101,218,5,99,104,97,114,115,218,9,102,105, 114,115,116,108,105,110,101,218,7,110,101,119,100,97,116,97, - 114,114,0,0,0,218,8,110,101,119,99,104,97,114,115,218, + 114,134,0,0,0,218,8,110,101,119,99,104,97,114,115,218, 12,100,101,99,111,100,101,100,98,121,116,101,115,218,3,101, - 120,99,218,5,108,105,110,101,115,114,115,0,0,0,115,11, - 0,0,0,32,32,32,32,32,32,32,32,32,32,32,114,62, - 0,0,0,114,199,0,0,0,122,17,83,116,114,101,97,109, - 82,101,97,100,101,114,46,114,101,97,100,198,1,0,0,115, - 152,1,0,0,128,0,240,56,0,12,16,143,63,138,63,216, + 120,99,218,5,108,105,110,101,115,114,135,0,0,0,115,11, + 0,0,0,32,32,32,32,32,32,32,32,32,32,32,114,63, + 0,0,0,114,246,0,0,0,218,17,83,116,114,101,97,109, + 82,101,97,100,101,114,46,114,101,97,100,201,1,0,0,115, + 146,1,0,0,128,0,240,56,0,12,16,143,63,143,63,216, 30,34,215,30,52,209,30,52,215,30,57,209,30,57,184,36, 191,47,185,47,211,30,74,136,68,140,79,216,30,34,136,68, - 140,79,224,11,16,144,49,138,57,240,6,0,21,25,136,69, - 240,6,0,15,19,224,15,20,152,1,138,122,220,19,22,144, - 116,151,127,145,127,211,19,39,168,53,210,19,48,216,20,25, - 224,15,19,144,97,138,120,216,26,30,159,43,153,43,215,26, + 140,79,224,11,16,144,49,139,57,240,6,0,21,25,136,69, + 240,6,0,15,19,224,15,20,152,1,139,122,220,19,22,144, + 116,151,127,145,127,211,19,39,168,53,211,19,48,216,20,25, + 224,15,19,144,97,139,120,216,26,30,159,43,153,43,215,26, 42,209,26,42,211,26,44,145,7,224,26,30,159,43,153,43, 215,26,42,209,26,42,168,52,211,26,48,144,7,224,19,23, - 151,63,145,63,160,87,209,19,44,136,68,217,19,23,216,16, - 21,240,2,10,13,26,216,41,45,175,27,169,27,176,84,184, - 52,191,59,185,59,211,41,71,209,16,38,144,8,152,44,240, - 22,0,31,35,160,60,160,61,208,30,49,136,68,140,79,224, - 12,16,143,79,138,79,152,120,209,12,39,141,79,225,19,26, - 216,16,21,240,63,0,15,19,240,64,1,0,12,17,144,49, - 138,57,224,21,25,151,95,145,95,136,70,216,30,34,215,30, - 52,209,30,52,136,68,140,79,240,10,0,16,22,136,13,240, - 5,0,22,26,151,95,145,95,160,86,160,101,208,21,44,136, - 70,216,30,34,159,111,153,111,168,101,168,102,208,30,53,136, - 68,140,79,216,15,21,136,13,248,244,49,0,20,38,242,0, - 8,13,26,217,19,28,224,24,28,159,11,153,11,160,68,168, - 26,168,35,175,41,169,41,208,36,52,176,100,183,107,177,107, - 211,24,66,241,3,0,21,43,144,72,152,108,224,28,36,215, - 28,47,209,28,47,184,20,208,28,47,211,28,62,144,69,220, - 23,26,152,53,147,122,160,49,146,125,216,24,29,224,20,25, - 244,7,0,24,37,251,240,11,8,13,26,250,115,25,0,0, - 0,194,50,31,68,61,0,196,61,9,70,32,3,197,6,65, - 16,70,27,3,198,27,5,70,32,3,78,99,3,0,0,0, - 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, - 243,38,4,0,0,151,0,124,0,106,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,114,104,124, - 0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,1,25,0,0,0,125,3,124,0,106, + 151,63,145,63,160,87,209,19,44,136,68,222,19,23,216,16, + 21,240,2,10,13,26,216,41,45,175,27,169,27,176,84,191, + 59,185,59,211,41,71,209,16,38,144,8,240,22,0,31,35, + 160,61,208,30,49,136,68,140,79,224,12,16,143,79,138,79, + 152,120,209,12,39,141,79,230,19,26,216,16,21,241,63,0, + 15,19,240,64,1,0,12,17,144,49,139,57,224,21,25,151, + 95,145,95,136,70,216,30,34,215,30,52,209,30,52,136,68, + 140,79,240,10,0,16,22,136,13,240,5,0,22,26,151,95, + 145,95,160,86,160,101,208,21,44,136,70,216,30,34,159,111, + 153,111,168,101,168,102,208,30,53,136,68,140,79,216,15,21, + 136,13,248,244,49,0,20,38,243,0,8,13,26,222,19,28, + 224,24,28,159,11,153,11,160,68,168,26,168,35,175,41,169, + 41,208,36,52,176,100,183,107,177,107,211,24,66,241,3,0, + 21,43,144,72,224,28,36,215,28,47,209,28,47,184,20,208, + 28,47,208,28,62,144,69,220,23,26,152,53,147,122,160,49, + 147,125,216,24,29,244,3,0,24,37,240,6,0,21,26,251, + 240,17,8,13,26,250,115,31,0,0,0,195,0,29,69,15, + 0,197,15,10,70,53,3,197,25,65,17,70,48,3,198,47, + 1,70,48,3,198,48,5,70,53,3,78,99,3,0,0,0, + 0,0,0,0,0,0,0,0,6,0,0,0,3,0,0,0, + 243,142,4,0,0,149,0,85,0,82,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,97,107,0,0,85,0,82,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, + 1,5,0,0,0,110,3,85,0,82,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,1,9, + 0,91,3,0,0,0,0,0,0,0,0,85,0,82,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,1,61,0,116,3,0,0,0,0,0,0,0, - 0,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,100, - 2,107,40,0,0,114,27,124,0,106,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,25, - 0,0,0,124,0,95,2,0,0,0,0,0,0,0,0,100, - 3,124,0,95,0,0,0,0,0,0,0,0,0,124,2,115, - 21,124,3,106,7,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,4,172,5,171,1,0,0,0, - 0,0,0,100,1,25,0,0,0,125,3,124,3,83,0,124, - 1,120,1,115,2,1,0,100,6,125,4,124,0,106,8,0, + 0,53,1,0,0,0,0,0,0,83,2,58,88,0,0,97, + 27,0,0,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,1,5,0,0,0,85, + 0,108,2,0,0,0,0,0,0,0,0,83,3,85,0,108, + 0,0,0,0,0,0,0,0,0,85,2,40,0,0,0,0, + 0,0,0,100,18,0,0,85,3,82,7,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,4,83, + 5,57,1,83,1,5,0,0,0,110,3,85,3,36,0,85, + 1,61,1,40,0,0,0,0,0,0,0,100,2,0,0,32, + 0,83,6,110,4,85,0,82,8,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,110,3,30,0,85, + 0,82,11,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,4,83,7,83,8,57,2,110,5,85, + 5,40,0,0,0,0,0,0,0,97,104,0,0,91,13,0, + 0,0,0,0,0,0,0,85,5,91,14,0,0,0,0,0, + 0,0,0,53,2,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,97,22,0,0,85,5,82,17,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,9,53, + 1,0,0,0,0,0,0,40,0,0,0,0,0,0,0,100, + 43,0,0,91,13,0,0,0,0,0,0,0,0,85,5,91, + 18,0,0,0,0,0,0,0,0,53,2,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,97,40,0,0,85,5,82, + 17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,83,10,53,1,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,97,18,0,0,88,80,82,11,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, + 2,83,2,83,11,57,2,45,13,0,0,110,5,88,53,45, + 13,0,0,110,3,85,3,82,7,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,7,83,5,57, + 1,110,6,85,6,40,0,0,0,0,0,0,0,97,222,0, + 0,91,3,0,0,0,0,0,0,0,0,85,6,53,1,0, + 0,0,0,0,0,83,2,58,148,0,0,97,111,0,0,85, + 6,83,1,5,0,0,0,110,3,85,6,83,1,9,0,91, + 3,0,0,0,0,0,0,0,0,85,6,53,1,0,0,0, + 0,0,0,83,2,58,148,0,0,97,37,0,0,85,6,83, + 12,61,2,61,2,5,0,0,0,85,0,82,4,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45, + 13,0,0,115,3,115,2,39,0,0,0,88,96,108,0,0, + 0,0,0,0,0,0,0,83,3,85,0,108,2,0,0,0, + 0,0,0,0,0,79,23,85,6,83,1,5,0,0,0,85, + 0,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,45,0,0,0,85,0,108,2,0,0,0, + 0,0,0,0,0,85,2,40,0,0,0,0,0,0,0,100, + 18,0,0,85,3,82,7,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,4,83,5,57,1,83, + 1,5,0,0,0,110,3,30,0,85,3,36,0,85,6,83, + 1,5,0,0,0,110,7,85,6,83,1,5,0,0,0,82, + 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,83,4,83,5,57,1,83,1,5,0,0,0,110, + 8,88,120,58,119,0,0,97,65,0,0,85,0,82,8,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,125,3,9,0,124,0,106,11,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,4,100,7,172, - 8,171,2,0,0,0,0,0,0,125,5,124,5,114,88,116, - 13,0,0,0,0,0,0,0,0,124,5,116,14,0,0,0, - 0,0,0,0,0,171,2,0,0,0,0,0,0,114,17,124, - 5,106,17,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,9,171,1,0,0,0,0,0,0,115, - 33,116,13,0,0,0,0,0,0,0,0,124,5,116,18,0, - 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,114, - 39,124,5,106,17,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,10,171,1,0,0,0,0,0, - 0,114,22,124,5,124,0,106,11,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,2,100,2,172, - 11,171,2,0,0,0,0,0,0,122,13,0,0,125,5,124, - 3,124,5,122,13,0,0,125,3,124,3,106,7,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, - 7,172,5,171,1,0,0,0,0,0,0,125,6,124,6,114, - 217,116,3,0,0,0,0,0,0,0,0,124,6,171,1,0, - 0,0,0,0,0,100,2,107,68,0,0,114,109,124,6,100, - 1,25,0,0,0,125,3,124,6,100,1,61,0,116,3,0, - 0,0,0,0,0,0,0,124,6,171,1,0,0,0,0,0, - 0,100,2,107,68,0,0,114,38,124,6,100,12,120,2,120, - 2,25,0,0,0,124,0,106,4,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,122,13,0,0,99, - 3,99,2,60,0,0,0,124,6,124,0,95,0,0,0,0, - 0,0,0,0,0,100,3,124,0,95,2,0,0,0,0,0, - 0,0,0,110,23,124,6,100,1,25,0,0,0,124,0,106, - 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,0,0,0,124,0,95,2,0,0,0,0,0, - 0,0,0,124,2,115,21,124,3,106,7,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,4,172, - 5,171,1,0,0,0,0,0,0,100,1,25,0,0,0,125, - 3,9,0,124,3,83,0,124,6,100,1,25,0,0,0,125, - 7,124,6,100,1,25,0,0,0,106,7,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,4,172, - 5,171,1,0,0,0,0,0,0,100,1,25,0,0,0,125, - 8,124,7,124,8,107,55,0,0,114,60,124,0,106,8,0, + 0,82,21,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,6,83,2,83,3,4,0,53,1,0, + 0,0,0,0,0,85,0,82,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,45,0,0,0,85, + 0,108,2,0,0,0,0,0,0,0,0,85,2,40,0,0, + 0,0,0,0,0,97,5,0,0,85,7,110,3,30,0,85, + 3,36,0,85,8,110,3,30,0,85,3,36,0,85,5,40, + 0,0,0,0,0,0,0,97,3,0,0,85,1,98,35,0, + 0,85,3,40,0,0,0,0,0,0,0,97,25,0,0,85, + 2,40,0,0,0,0,0,0,0,100,18,0,0,85,3,82, + 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,83,4,83,5,57,1,83,1,5,0,0,0,110, + 3,30,0,85,3,36,0,85,4,83,13,58,18,0,0,97, + 5,0,0,85,4,83,14,45,18,0,0,110,4,71,1,77, + 178,0,0,41,15,122,132,82,101,97,100,32,111,110,101,32, + 108,105,110,101,32,102,114,111,109,32,116,104,101,32,105,110, + 112,117,116,32,115,116,114,101,97,109,32,97,110,100,32,114, + 101,116,117,114,110,32,116,104,101,10,100,101,99,111,100,101, + 100,32,100,97,116,97,46,10,10,115,105,122,101,44,32,105, + 102,32,103,105,118,101,110,44,32,105,115,32,112,97,115,115, + 101,100,32,97,115,32,115,105,122,101,32,97,114,103,117,109, + 101,110,116,32,116,111,32,116,104,101,10,114,101,97,100,40, + 41,32,109,101,116,104,111,100,46,10,10,114,2,0,0,0, + 114,244,0,0,0,78,70,114,242,0,0,0,233,72,0,0, + 0,84,41,1,114,252,0,0,0,218,1,13,243,1,0,0, + 0,13,41,2,114,250,0,0,0,114,251,0,0,0,233,255, + 255,255,255,105,64,31,0,0,233,2,0,0,0,41,11,114, + 237,0,0,0,114,245,0,0,0,114,236,0,0,0,114,249, + 0,0,0,114,235,0,0,0,114,246,0,0,0,218,10,105, + 115,105,110,115,116,97,110,99,101,218,3,115,116,114,218,8, + 101,110,100,115,119,105,116,104,218,5,98,121,116,101,115,114, + 185,0,0,0,41,9,114,62,0,0,0,114,250,0,0,0, + 114,243,0,0,0,218,4,108,105,110,101,218,8,114,101,97, + 100,115,105,122,101,114,134,0,0,0,114,1,1,0,0,218, + 12,108,105,110,101,48,119,105,116,104,101,110,100,218,15,108, + 105,110,101,48,119,105,116,104,111,117,116,101,110,100,115,9, + 0,0,0,32,32,32,32,32,32,32,32,32,114,63,0,0, + 0,218,8,114,101,97,100,108,105,110,101,218,21,83,116,114, + 101,97,109,82,101,97,100,101,114,46,114,101,97,100,108,105, + 110,101,25,2,0,0,115,63,2,0,0,128,0,240,22,0, + 12,16,143,63,143,63,216,19,23,151,63,145,63,160,49,209, + 19,37,136,68,216,16,20,151,15,145,15,160,1,208,16,34, + 220,15,18,144,52,151,63,145,63,211,15,35,160,113,211,15, + 40,240,6,0,35,39,167,47,161,47,176,33,209,34,52,144, + 4,148,15,216,34,38,144,4,148,15,222,19,27,216,23,27, + 151,127,145,127,176,5,144,127,208,23,54,176,113,209,23,57, + 144,4,216,19,23,136,75,224,19,23,151,58,152,50,136,8, + 216,15,19,215,15,37,209,15,37,136,4,224,14,18,216,19, + 23,151,57,145,57,152,88,176,20,144,57,208,19,54,136,68, + 222,15,19,244,8,0,21,31,152,116,164,83,215,20,41,209, + 20,41,168,100,175,109,169,109,184,68,215,46,65,209,46,65, + 220,20,30,152,116,164,85,215,20,43,209,20,43,176,4,183, + 13,177,13,184,101,215,48,68,209,48,68,216,20,24,159,73, + 153,73,168,49,176,65,152,73,208,28,54,209,20,54,144,68, + 224,12,16,137,76,136,68,216,20,24,151,79,145,79,168,84, + 144,79,208,20,50,136,69,222,15,20,220,19,22,144,117,147, + 58,160,1,147,62,240,6,0,28,33,160,17,153,56,144,68, + 216,24,29,152,97,152,8,220,23,26,152,53,147,122,160,65, + 147,126,224,24,29,152,98,155,9,160,84,167,95,161,95,209, + 24,52,155,9,216,42,47,156,15,216,42,46,152,4,157,15, + 240,6,0,43,48,176,1,169,40,176,84,183,95,177,95,209, + 42,68,152,4,156,15,222,27,35,216,31,35,159,127,153,127, + 184,5,152,127,208,31,62,184,113,209,31,65,152,4,216,20, + 25,240,38,0,16,20,136,11,240,37,0,32,37,160,81,153, + 120,144,12,216,34,39,168,1,161,40,215,34,53,209,34,53, + 184,117,208,34,53,208,34,69,192,97,209,34,72,144,15,216, + 19,31,211,19,50,224,38,42,215,38,60,209,38,60,215,38, + 65,209,38,65,192,37,200,1,200,2,192,41,211,38,76,216, + 38,42,167,111,161,111,241,3,1,39,54,144,68,148,79,230, + 23,31,216,31,43,152,4,240,6,0,21,26,240,16,0,16, + 20,136,11,240,19,0,32,47,152,4,216,20,25,240,16,0, + 16,20,136,11,246,13,0,20,24,152,52,209,27,43,222,19, + 23,166,8,216,27,31,159,63,153,63,176,69,152,63,208,27, + 58,184,49,209,27,61,144,68,216,16,21,240,6,0,16,20, + 136,11,240,5,0,16,24,152,36,139,127,216,16,24,152,65, + 145,13,144,8,242,93,1,0,15,19,114,65,0,0,0,99, + 3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,68,0,0,0,149,0,85,0,82,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,53,0,0,0,0,0,0,0,110,3,85,3,82,3,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,106,21,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,6,100,2,100,3,26,0,171,1,0, - 0,0,0,0,0,124,0,106,4,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,122,0,0,0,124, - 0,95,2,0,0,0,0,0,0,0,0,124,2,114,5,124, - 7,125,3,9,0,124,3,83,0,124,8,125,3,9,0,124, - 3,83,0,124,5,114,2,124,1,129,28,124,3,114,23,124, - 2,115,21,124,3,106,7,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,4,172,5,171,1,0, - 0,0,0,0,0,100,1,25,0,0,0,125,3,9,0,124, - 3,83,0,124,4,100,13,107,2,0,0,114,5,124,4,100, - 14,122,18,0,0,125,4,144,1,140,139,41,15,122,177,32, - 82,101,97,100,32,111,110,101,32,108,105,110,101,32,102,114, - 111,109,32,116,104,101,32,105,110,112,117,116,32,115,116,114, - 101,97,109,32,97,110,100,32,114,101,116,117,114,110,32,116, - 104,101,10,32,32,32,32,32,32,32,32,32,32,32,32,100, - 101,99,111,100,101,100,32,100,97,116,97,46,10,10,32,32, - 32,32,32,32,32,32,32,32,32,32,115,105,122,101,44,32, - 105,102,32,103,105,118,101,110,44,32,105,115,32,112,97,115, - 115,101,100,32,97,115,32,115,105,122,101,32,97,114,103,117, - 109,101,110,116,32,116,111,32,116,104,101,10,32,32,32,32, - 32,32,32,32,32,32,32,32,114,101,97,100,40,41,32,109, - 101,116,104,111,100,46,10,10,32,32,32,32,32,32,32,32, - 114,2,0,0,0,114,197,0,0,0,78,70,114,195,0,0, - 0,233,72,0,0,0,84,41,1,114,205,0,0,0,218,1, - 13,243,1,0,0,0,13,41,2,114,203,0,0,0,114,204, - 0,0,0,233,255,255,255,255,105,64,31,0,0,233,2,0, - 0,0,41,11,114,192,0,0,0,114,198,0,0,0,114,191, - 0,0,0,114,202,0,0,0,114,190,0,0,0,114,199,0, - 0,0,218,10,105,115,105,110,115,116,97,110,99,101,218,3, - 115,116,114,218,8,101,110,100,115,119,105,116,104,218,5,98, - 121,116,101,115,114,147,0,0,0,41,9,114,61,0,0,0, - 114,203,0,0,0,114,196,0,0,0,218,4,108,105,110,101, - 218,8,114,101,97,100,115,105,122,101,114,114,0,0,0,114, - 210,0,0,0,218,12,108,105,110,101,48,119,105,116,104,101, - 110,100,218,15,108,105,110,101,48,119,105,116,104,111,117,116, - 101,110,100,115,9,0,0,0,32,32,32,32,32,32,32,32, - 32,114,62,0,0,0,218,8,114,101,97,100,108,105,110,101, - 122,21,83,116,114,101,97,109,82,101,97,100,101,114,46,114, - 101,97,100,108,105,110,101,22,2,0,0,115,59,2,0,0, - 128,0,240,22,0,12,16,143,63,138,63,216,19,23,151,63, - 145,63,160,49,209,19,37,136,68,216,16,20,151,15,145,15, - 160,1,208,16,34,220,15,18,144,52,151,63,145,63,211,15, - 35,160,113,210,15,40,240,6,0,35,39,167,47,161,47,176, - 33,209,34,52,144,4,148,15,216,34,38,144,4,148,15,217, - 19,27,216,23,27,151,127,145,127,176,5,144,127,211,23,54, - 176,113,209,23,57,144,4,216,19,23,136,75,224,19,23,146, - 58,152,50,136,8,216,15,19,215,15,37,209,15,37,136,4, - 224,14,18,216,19,23,151,57,145,57,152,88,176,20,144,57, - 211,19,54,136,68,217,15,19,244,8,0,21,31,152,116,164, - 83,212,20,41,168,100,175,109,169,109,184,68,212,46,65,220, - 20,30,152,116,164,85,212,20,43,176,4,183,13,177,13,184, - 101,212,48,68,216,20,24,152,68,159,73,153,73,168,49,176, - 65,152,73,211,28,54,209,20,54,144,68,224,12,16,144,68, - 137,76,136,68,216,20,24,151,79,145,79,168,84,144,79,211, - 20,50,136,69,217,15,20,220,19,22,144,117,147,58,160,1, - 146,62,240,6,0,28,33,160,17,153,56,144,68,216,24,29, - 152,97,152,8,220,23,26,152,53,147,122,160,65,146,126,224, - 24,29,152,98,155,9,160,84,167,95,161,95,209,24,52,155, - 9,216,42,47,152,4,156,15,216,42,46,152,4,157,15,240, - 6,0,43,48,176,1,169,40,176,84,183,95,177,95,209,42, - 68,152,4,156,15,217,27,35,216,31,35,159,127,153,127,184, - 5,152,127,211,31,62,184,113,209,31,65,152,4,216,20,25, - 240,38,0,16,20,136,11,240,37,0,32,37,160,81,153,120, - 144,12,216,34,39,168,1,161,40,215,34,53,209,34,53,184, - 117,208,34,53,211,34,69,192,97,209,34,72,144,15,216,19, - 31,160,63,210,19,50,224,38,42,215,38,60,209,38,60,215, - 38,65,209,38,65,192,37,200,1,200,2,192,41,211,38,76, - 216,38,42,167,111,161,111,241,3,1,39,54,144,68,148,79, - 225,23,31,216,31,43,152,4,240,6,0,21,26,240,16,0, - 16,20,136,11,240,19,0,32,47,152,4,216,20,25,240,16, - 0,16,20,136,11,241,13,0,20,24,152,52,208,27,43,217, - 19,23,161,8,216,27,31,159,63,153,63,176,69,152,63,211, - 27,58,184,49,209,27,61,144,68,216,16,21,240,6,0,16, - 20,136,11,240,5,0,16,24,152,36,138,127,216,16,24,152, - 65,145,13,144,8,241,93,1,0,15,19,114,63,0,0,0, - 99,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,3,0,0,0,243,68,0,0,0,151,0,124,0,106,1, + 0,85,2,53,1,0,0,0,0,0,0,36,0,41,1,97, + 14,1,0,0,82,101,97,100,32,97,108,108,32,108,105,110, + 101,115,32,97,118,97,105,108,97,98,108,101,32,111,110,32, + 116,104,101,32,105,110,112,117,116,32,115,116,114,101,97,109, + 10,97,110,100,32,114,101,116,117,114,110,32,116,104,101,109, + 32,97,115,32,97,32,108,105,115,116,46,10,10,76,105,110, + 101,32,98,114,101,97,107,115,32,97,114,101,32,105,109,112, + 108,101,109,101,110,116,101,100,32,117,115,105,110,103,32,116, + 104,101,32,99,111,100,101,99,39,115,32,100,101,99,111,100, + 101,114,10,109,101,116,104,111,100,32,97,110,100,32,97,114, + 101,32,105,110,99,108,117,100,101,100,32,105,110,32,116,104, + 101,32,108,105,115,116,32,101,110,116,114,105,101,115,46,10, + 10,115,105,122,101,104,105,110,116,44,32,105,102,32,103,105, + 118,101,110,44,32,105,115,32,105,103,110,111,114,101,100,32, + 115,105,110,99,101,32,116,104,101,114,101,32,105,115,32,110, + 111,32,101,102,102,105,99,105,101,110,116,10,119,97,121,32, + 111,102,32,102,105,110,100,105,110,103,32,116,104,101,32,116, + 114,117,101,32,101,110,100,45,111,102,45,108,105,110,101,46, + 10,10,41,2,114,246,0,0,0,114,249,0,0,0,41,4, + 114,62,0,0,0,218,8,115,105,122,101,104,105,110,116,114, + 243,0,0,0,114,134,0,0,0,115,4,0,0,0,32,32, + 32,32,114,63,0,0,0,218,9,114,101,97,100,108,105,110, + 101,115,218,22,83,116,114,101,97,109,82,101,97,100,101,114, + 46,114,101,97,100,108,105,110,101,115,100,2,0,0,115,30, + 0,0,0,128,0,240,24,0,16,20,143,121,137,121,139,123, + 136,4,216,15,19,143,127,137,127,152,120,211,15,40,208,8, + 40,114,65,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,3,0,0,0,243,66,0,0,0, + 149,0,83,1,85,0,108,0,0,0,0,0,0,0,0,0, + 85,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,0,108,2,0,0,0,0,0,0, + 0,0,83,2,85,0,108,3,0,0,0,0,0,0,0,0, + 103,2,41,3,122,191,82,101,115,101,116,115,32,116,104,101, + 32,99,111,100,101,99,32,98,117,102,102,101,114,115,32,117, + 115,101,100,32,102,111,114,32,107,101,101,112,105,110,103,32, + 105,110,116,101,114,110,97,108,32,115,116,97,116,101,46,10, + 10,78,111,116,101,32,116,104,97,116,32,110,111,32,115,116, + 114,101,97,109,32,114,101,112,111,115,105,116,105,111,110,105, + 110,103,32,115,104,111,117,108,100,32,116,97,107,101,32,112, + 108,97,99,101,46,10,84,104,105,115,32,109,101,116,104,111, + 100,32,105,115,32,112,114,105,109,97,114,105,108,121,32,105, + 110,116,101,110,100,101,100,32,116,111,32,98,101,32,97,98, + 108,101,32,116,111,32,114,101,99,111,118,101,114,10,102,114, + 111,109,32,100,101,99,111,100,105,110,103,32,101,114,114,111, + 114,115,46,10,10,114,65,0,0,0,78,41,4,114,233,0, + 0,0,114,235,0,0,0,114,236,0,0,0,114,237,0,0, + 0,114,71,0,0,0,115,1,0,0,0,32,114,63,0,0, + 0,114,109,0,0,0,218,18,83,116,114,101,97,109,82,101, + 97,100,101,114,46,114,101,115,101,116,115,2,0,0,115,31, + 0,0,0,128,0,240,18,0,27,30,136,4,140,15,216,26, + 30,215,26,48,209,26,48,136,4,140,15,216,26,30,136,4, + 141,15,114,65,0,0,0,99,3,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,90,0,0, + 0,149,0,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,88,18,53, + 2,0,0,0,0,0,0,32,0,85,0,82,5,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 0,0,0,0,0,0,0,32,0,103,1,41,2,122,91,83, + 101,116,32,116,104,101,32,105,110,112,117,116,32,115,116,114, + 101,97,109,39,115,32,99,117,114,114,101,110,116,32,112,111, + 115,105,116,105,111,110,46,10,10,82,101,115,101,116,115,32, + 116,104,101,32,99,111,100,101,99,32,98,117,102,102,101,114, + 115,32,117,115,101,100,32,102,111,114,32,107,101,101,112,105, + 110,103,32,115,116,97,116,101,46,10,78,114,193,0,0,0, + 114,195,0,0,0,115,3,0,0,0,32,32,32,114,63,0, + 0,0,114,194,0,0,0,218,17,83,116,114,101,97,109,82, + 101,97,100,101,114,46,115,101,101,107,128,2,0,0,115,31, + 0,0,0,128,0,240,10,0,9,13,143,11,137,11,215,8, + 24,209,8,24,152,22,212,8,40,216,8,12,143,10,137,10, + 141,12,114,65,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,3,0,0,0,243,64,0,0, + 0,149,0,85,0,82,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0, + 0,110,1,85,1,40,0,0,0,0,0,0,0,97,2,0, + 0,85,1,36,0,91,2,0,0,0,0,0,0,0,0,101, + 1,169,1,122,51,82,101,116,117,114,110,32,116,104,101,32, + 110,101,120,116,32,100,101,99,111,100,101,100,32,108,105,110, + 101,32,102,114,111,109,32,116,104,101,32,105,110,112,117,116, + 32,115,116,114,101,97,109,46,41,2,114,17,1,0,0,218, + 13,83,116,111,112,73,116,101,114,97,116,105,111,110,41,2, + 114,62,0,0,0,114,13,1,0,0,115,2,0,0,0,32, + 32,114,63,0,0,0,218,8,95,95,110,101,120,116,95,95, + 218,21,83,116,114,101,97,109,82,101,97,100,101,114,46,95, + 95,110,101,120,116,95,95,136,2,0,0,115,29,0,0,0, + 128,0,240,6,0,16,20,143,125,137,125,139,127,136,4,222, + 11,15,216,19,23,136,75,220,14,27,208,8,27,114,65,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,1, + 0,0,0,3,0,0,0,243,6,0,0,0,149,0,85,0, + 36,0,114,53,0,0,0,114,81,0,0,0,114,71,0,0, + 0,115,1,0,0,0,32,114,63,0,0,0,218,8,95,95, + 105,116,101,114,95,95,218,21,83,116,114,101,97,109,82,101, + 97,100,101,114,46,95,95,105,116,101,114,95,95,144,2,0, + 0,114,210,0,0,0,114,65,0,0,0,99,3,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 243,40,0,0,0,149,0,85,2,34,0,85,0,82,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,125,3,124,3,106,3, + 0,85,1,53,2,0,0,0,0,0,0,36,0,114,200,0, + 0,0,114,201,0,0,0,114,202,0,0,0,115,3,0,0, + 0,32,32,32,114,63,0,0,0,114,204,0,0,0,218,24, + 83,116,114,101,97,109,82,101,97,100,101,114,46,95,95,103, + 101,116,97,116,116,114,95,95,147,2,0,0,114,206,0,0, + 0,114,65,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,3,0,0,0,243,6,0,0,0, + 149,0,85,0,36,0,114,53,0,0,0,114,81,0,0,0, + 114,71,0,0,0,115,1,0,0,0,32,114,63,0,0,0, + 114,208,0,0,0,218,22,83,116,114,101,97,109,82,101,97, + 100,101,114,46,95,95,101,110,116,101,114,95,95,154,2,0, + 0,114,210,0,0,0,114,65,0,0,0,99,4,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, + 243,56,0,0,0,149,0,85,0,82,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,3,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,2,171,1,0,0,0,0,0,0,83,0,41,1, - 97,83,1,0,0,32,82,101,97,100,32,97,108,108,32,108, - 105,110,101,115,32,97,118,97,105,108,97,98,108,101,32,111, - 110,32,116,104,101,32,105,110,112,117,116,32,115,116,114,101, - 97,109,10,32,32,32,32,32,32,32,32,32,32,32,32,97, - 110,100,32,114,101,116,117,114,110,32,116,104,101,109,32,97, - 115,32,97,32,108,105,115,116,46,10,10,32,32,32,32,32, - 32,32,32,32,32,32,32,76,105,110,101,32,98,114,101,97, - 107,115,32,97,114,101,32,105,109,112,108,101,109,101,110,116, - 101,100,32,117,115,105,110,103,32,116,104,101,32,99,111,100, - 101,99,39,115,32,100,101,99,111,100,101,114,10,32,32,32, - 32,32,32,32,32,32,32,32,32,109,101,116,104,111,100,32, - 97,110,100,32,97,114,101,32,105,110,99,108,117,100,101,100, - 32,105,110,32,116,104,101,32,108,105,115,116,32,101,110,116, - 114,105,101,115,46,10,10,32,32,32,32,32,32,32,32,32, - 32,32,32,115,105,122,101,104,105,110,116,44,32,105,102,32, - 103,105,118,101,110,44,32,105,115,32,105,103,110,111,114,101, - 100,32,115,105,110,99,101,32,116,104,101,114,101,32,105,115, - 32,110,111,32,101,102,102,105,99,105,101,110,116,10,32,32, - 32,32,32,32,32,32,32,32,32,32,119,97,121,32,116,111, - 32,102,105,110,100,105,110,103,32,116,104,101,32,116,114,117, - 101,32,101,110,100,45,111,102,45,108,105,110,101,46,10,10, - 32,32,32,32,32,32,32,32,41,2,114,199,0,0,0,114, - 202,0,0,0,41,4,114,61,0,0,0,218,8,115,105,122, - 101,104,105,110,116,114,196,0,0,0,114,114,0,0,0,115, - 4,0,0,0,32,32,32,32,114,62,0,0,0,218,9,114, - 101,97,100,108,105,110,101,115,122,22,83,116,114,101,97,109, - 82,101,97,100,101,114,46,114,101,97,100,108,105,110,101,115, - 97,2,0,0,115,30,0,0,0,128,0,240,24,0,16,20, - 143,121,137,121,139,123,136,4,216,15,19,143,127,137,127,152, - 120,211,15,40,208,8,40,114,63,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0, - 0,243,66,0,0,0,151,0,100,1,124,0,95,0,0,0, - 0,0,0,0,0,0,124,0,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,95,2, - 0,0,0,0,0,0,0,0,100,2,124,0,95,3,0,0, - 0,0,0,0,0,0,121,2,41,3,122,236,32,82,101,115, - 101,116,115,32,116,104,101,32,99,111,100,101,99,32,98,117, - 102,102,101,114,115,32,117,115,101,100,32,102,111,114,32,107, - 101,101,112,105,110,103,32,105,110,116,101,114,110,97,108,32, - 115,116,97,116,101,46,10,10,32,32,32,32,32,32,32,32, - 32,32,32,32,78,111,116,101,32,116,104,97,116,32,110,111, - 32,115,116,114,101,97,109,32,114,101,112,111,115,105,116,105, - 111,110,105,110,103,32,115,104,111,117,108,100,32,116,97,107, - 101,32,112,108,97,99,101,46,10,32,32,32,32,32,32,32, - 32,32,32,32,32,84,104,105,115,32,109,101,116,104,111,100, - 32,105,115,32,112,114,105,109,97,114,105,108,121,32,105,110, - 116,101,110,100,101,100,32,116,111,32,98,101,32,97,98,108, - 101,32,116,111,32,114,101,99,111,118,101,114,10,32,32,32, - 32,32,32,32,32,32,32,32,32,102,114,111,109,32,100,101, - 99,111,100,105,110,103,32,101,114,114,111,114,115,46,10,10, - 32,32,32,32,32,32,32,32,114,63,0,0,0,78,41,4, - 114,188,0,0,0,114,190,0,0,0,114,191,0,0,0,114, - 192,0,0,0,114,69,0,0,0,115,1,0,0,0,32,114, - 62,0,0,0,114,95,0,0,0,122,18,83,116,114,101,97, - 109,82,101,97,100,101,114,46,114,101,115,101,116,112,2,0, - 0,115,31,0,0,0,128,0,240,18,0,27,30,136,4,140, - 15,216,26,30,215,26,48,209,26,48,136,4,140,15,216,26, - 30,136,4,141,15,114,63,0,0,0,99,3,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, - 92,0,0,0,151,0,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,3,0,0, + 0,53,0,0,0,0,0,0,0,32,0,103,0,114,53,0, + 0,0,114,212,0,0,0,114,214,0,0,0,115,4,0,0, + 0,32,32,32,32,114,63,0,0,0,114,218,0,0,0,218, + 21,83,116,114,101,97,109,82,101,97,100,101,114,46,95,95, + 101,120,105,116,95,95,157,2,0,0,114,220,0,0,0,114, + 65,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,243,70,0,0,0,149,0, + 91,1,0,0,0,0,0,0,0,0,83,1,85,0,82,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,124,2,171,2,0,0,0,0,0,0,1,0,124,0, - 106,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,1,0,121,1, - 41,2,122,112,32,83,101,116,32,116,104,101,32,105,110,112, - 117,116,32,115,116,114,101,97,109,39,115,32,99,117,114,114, - 101,110,116,32,112,111,115,105,116,105,111,110,46,10,10,32, - 32,32,32,32,32,32,32,32,32,32,32,82,101,115,101,116, - 115,32,116,104,101,32,99,111,100,101,99,32,98,117,102,102, - 101,114,115,32,117,115,101,100,32,102,111,114,32,107,101,101, - 112,105,110,103,32,115,116,97,116,101,46,10,32,32,32,32, - 32,32,32,32,78,114,153,0,0,0,114,155,0,0,0,115, - 3,0,0,0,32,32,32,114,62,0,0,0,114,154,0,0, - 0,122,17,83,116,114,101,97,109,82,101,97,100,101,114,46, - 115,101,101,107,125,2,0,0,115,33,0,0,0,128,0,240, - 10,0,9,13,143,11,137,11,215,8,24,209,8,24,152,22, - 160,22,212,8,40,216,8,12,143,10,137,10,141,12,114,63, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,3,0,0,0,243,54,0,0,0,151,0,124, - 0,106,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,125,1,124, - 1,114,2,124,1,83,0,116,2,0,0,0,0,0,0,0, - 0,130,1,169,1,122,52,32,82,101,116,117,114,110,32,116, - 104,101,32,110,101,120,116,32,100,101,99,111,100,101,100,32, - 108,105,110,101,32,102,114,111,109,32,116,104,101,32,105,110, - 112,117,116,32,115,116,114,101,97,109,46,41,2,114,225,0, - 0,0,218,13,83,116,111,112,73,116,101,114,97,116,105,111, - 110,41,2,114,61,0,0,0,114,221,0,0,0,115,2,0, - 0,0,32,32,114,62,0,0,0,218,8,95,95,110,101,120, - 116,95,95,122,21,83,116,114,101,97,109,82,101,97,100,101, - 114,46,95,95,110,101,120,116,95,95,133,2,0,0,115,29, - 0,0,0,128,0,240,6,0,16,20,143,125,137,125,139,127, - 136,4,217,11,15,216,19,23,136,75,220,14,27,208,8,27, - 114,63,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,3,0,0,0,243,6,0,0,0,151, - 0,124,0,83,0,114,52,0,0,0,114,73,0,0,0,114, - 69,0,0,0,115,1,0,0,0,32,114,62,0,0,0,218, - 8,95,95,105,116,101,114,95,95,122,21,83,116,114,101,97, - 109,82,101,97,100,101,114,46,95,95,105,116,101,114,95,95, - 141,2,0,0,114,167,0,0,0,114,63,0,0,0,99,3, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,40,0,0,0,151,0,2,0,124,2,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,2,0,0,0,0,0,0,83,0, - 114,159,0,0,0,114,160,0,0,0,114,161,0,0,0,115, - 3,0,0,0,32,32,32,114,62,0,0,0,114,163,0,0, - 0,122,24,83,116,114,101,97,109,82,101,97,100,101,114,46, - 95,95,103,101,116,97,116,116,114,95,95,144,2,0,0,114, - 164,0,0,0,114,63,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,1,0,0,0,3,0,0,0,243,6, - 0,0,0,151,0,124,0,83,0,114,52,0,0,0,114,73, - 0,0,0,114,69,0,0,0,115,1,0,0,0,32,114,62, - 0,0,0,114,166,0,0,0,122,22,83,116,114,101,97,109, - 82,101,97,100,101,114,46,95,95,101,110,116,101,114,95,95, - 151,2,0,0,114,167,0,0,0,114,63,0,0,0,99,4, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,243,56,0,0,0,151,0,124,0,106,0,0,0, + 0,0,82,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,45,6,0,0,53,1,0,0,0,0, + 0,0,101,1,114,222,0,0,0,114,223,0,0,0,114,225, + 0,0,0,115,2,0,0,0,32,32,114,63,0,0,0,114, + 227,0,0,0,218,26,83,116,114,101,97,109,82,101,97,100, + 101,114,46,95,95,114,101,100,117,99,101,95,101,120,95,95, + 160,2,0,0,114,229,0,0,0,114,65,0,0,0,41,6, + 114,235,0,0,0,114,233,0,0,0,114,236,0,0,0,114, + 89,0,0,0,114,237,0,0,0,114,177,0,0,0,114,93, + 0,0,0,41,3,114,7,1,0,0,114,7,1,0,0,70, + 169,2,78,84,114,230,0,0,0,41,21,114,77,0,0,0, + 114,68,0,0,0,114,69,0,0,0,114,78,0,0,0,114, + 10,1,0,0,114,234,0,0,0,114,101,0,0,0,114,37, + 0,0,0,114,246,0,0,0,114,17,1,0,0,114,21,1, + 0,0,114,109,0,0,0,114,194,0,0,0,114,30,1,0, + 0,114,33,1,0,0,114,203,0,0,0,114,204,0,0,0, + 114,208,0,0,0,114,218,0,0,0,114,227,0,0,0,114, + 80,0,0,0,114,81,0,0,0,114,65,0,0,0,114,63, + 0,0,0,114,26,0,0,0,114,26,0,0,0,169,1,0, + 0,115,82,0,0,0,134,0,224,21,24,128,78,244,4,23, + 5,31,244,50,1,5,34,244,6,78,1,5,22,244,96,2, + 73,1,5,20,244,86,2,13,5,41,242,30,11,5,31,244, + 26,6,5,21,242,16,6,5,28,242,16,1,5,20,240,8, + 0,29,36,244,3,5,5,42,242,14,1,5,20,242,6,1, + 5,28,245,6,1,5,72,1,114,65,0,0,0,114,26,0, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,0,0,0,0,243,138,0,0,0,149,0,92,0, + 114,1,83,0,114,2,83,1,114,3,83,2,114,4,83,3, + 114,5,83,20,83,4,26,0,106,1,114,6,83,21,83,5, + 26,0,106,1,114,7,83,22,83,7,26,0,106,1,114,8, + 83,22,83,8,26,0,106,1,114,9,83,9,26,0,114,10, + 83,10,26,0,114,11,83,11,26,0,114,12,83,12,26,0, + 114,13,83,13,26,0,114,14,83,23,83,14,26,0,106,1, + 114,15,92,16,52,1,83,15,26,0,106,1,114,17,83,16, + 26,0,114,18,83,17,26,0,114,19,83,18,26,0,114,20, + 83,19,114,21,103,6,41,24,114,28,0,0,0,105,165,2, + 0,0,122,220,83,116,114,101,97,109,82,101,97,100,101,114, + 87,114,105,116,101,114,32,105,110,115,116,97,110,99,101,115, + 32,97,108,108,111,119,32,119,114,97,112,112,105,110,103,32, + 115,116,114,101,97,109,115,32,119,104,105,99,104,10,119,111, + 114,107,32,105,110,32,98,111,116,104,32,114,101,97,100,32, + 97,110,100,32,119,114,105,116,101,32,109,111,100,101,115,46, + 10,10,84,104,101,32,100,101,115,105,103,110,32,105,115,32, + 115,117,99,104,32,116,104,97,116,32,111,110,101,32,99,97, + 110,32,117,115,101,32,116,104,101,32,102,97,99,116,111,114, + 121,32,102,117,110,99,116,105,111,110,115,10,114,101,116,117, + 114,110,101,100,32,98,121,32,116,104,101,32,99,111,100,101, + 99,46,108,111,111,107,117,112,40,41,32,102,117,110,99,116, + 105,111,110,32,116,111,32,99,111,110,115,116,114,117,99,116, + 32,116,104,101,10,105,110,115,116,97,110,99,101,46,10,10, + 218,7,117,110,107,110,111,119,110,99,5,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,80, + 0,0,0,149,0,88,16,108,0,0,0,0,0,0,0,0, + 0,85,2,34,0,88,20,53,2,0,0,0,0,0,0,85, + 0,108,1,0,0,0,0,0,0,0,0,85,3,34,0,88, + 20,53,2,0,0,0,0,0,0,85,0,108,2,0,0,0, + 0,0,0,0,0,88,64,108,3,0,0,0,0,0,0,0, + 0,103,1,41,2,97,13,1,0,0,67,114,101,97,116,101, + 115,32,97,32,83,116,114,101,97,109,82,101,97,100,101,114, + 87,114,105,116,101,114,32,105,110,115,116,97,110,99,101,46, + 10,10,115,116,114,101,97,109,32,109,117,115,116,32,98,101, + 32,97,32,83,116,114,101,97,109,45,108,105,107,101,32,111, + 98,106,101,99,116,46,10,10,82,101,97,100,101,114,44,32, + 87,114,105,116,101,114,32,109,117,115,116,32,98,101,32,102, + 97,99,116,111,114,121,32,102,117,110,99,116,105,111,110,115, + 32,111,114,32,99,108,97,115,115,101,115,10,112,114,111,118, + 105,100,105,110,103,32,116,104,101,32,83,116,114,101,97,109, + 82,101,97,100,101,114,44,32,83,116,114,101,97,109,87,114, + 105,116,101,114,32,105,110,116,101,114,102,97,99,101,32,114, + 101,115,112,46,10,10,69,114,114,111,114,32,104,97,110,100, + 108,105,110,103,32,105,115,32,100,111,110,101,32,105,110,32, + 116,104,101,32,115,97,109,101,32,119,97,121,32,97,115,32, + 100,101,102,105,110,101,100,32,102,111,114,32,116,104,101,10, + 83,116,114,101,97,109,87,114,105,116,101,114,47,82,101,97, + 100,101,114,115,46,10,10,78,41,4,114,177,0,0,0,218, + 6,114,101,97,100,101,114,218,6,119,114,105,116,101,114,114, + 89,0,0,0,41,5,114,62,0,0,0,114,177,0,0,0, + 218,6,82,101,97,100,101,114,218,6,87,114,105,116,101,114, + 114,89,0,0,0,115,5,0,0,0,32,32,32,32,32,114, + 63,0,0,0,114,101,0,0,0,218,27,83,116,114,101,97, + 109,82,101,97,100,101,114,87,114,105,116,101,114,46,95,95, + 105,110,105,116,95,95,178,2,0,0,115,38,0,0,0,128, + 0,240,26,0,23,29,140,11,217,22,28,152,86,211,22,44, + 136,4,140,11,217,22,28,152,86,211,22,44,136,4,140,11, + 216,22,28,141,11,114,65,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 56,0,0,0,149,0,85,0,82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,82,3,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,1,0,121,0, - 114,52,0,0,0,114,169,0,0,0,114,171,0,0,0,115, - 4,0,0,0,32,32,32,32,114,62,0,0,0,114,175,0, - 0,0,122,21,83,116,114,101,97,109,82,101,97,100,101,114, - 46,95,95,101,120,105,116,95,95,154,2,0,0,114,176,0, - 0,0,114,63,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,3,0,0,0,243,70,0,0, - 0,151,0,116,1,0,0,0,0,0,0,0,0,100,1,124, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,106,4,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,122,6,0,0,171,1,0, - 0,0,0,0,0,130,1,114,178,0,0,0,114,179,0,0, - 0,114,181,0,0,0,115,2,0,0,0,32,32,114,62,0, - 0,0,114,183,0,0,0,122,26,83,116,114,101,97,109,82, - 101,97,100,101,114,46,95,95,114,101,100,117,99,101,95,101, - 120,95,95,157,2,0,0,114,184,0,0,0,114,63,0,0, - 0,114,82,0,0,0,41,3,114,215,0,0,0,114,215,0, - 0,0,70,41,2,78,84,114,185,0,0,0,41,19,114,71, - 0,0,0,114,66,0,0,0,114,67,0,0,0,114,218,0, - 0,0,114,189,0,0,0,114,89,0,0,0,114,37,0,0, - 0,114,199,0,0,0,114,225,0,0,0,114,228,0,0,0, - 114,95,0,0,0,114,154,0,0,0,114,234,0,0,0,114, - 236,0,0,0,114,162,0,0,0,114,163,0,0,0,114,166, - 0,0,0,114,175,0,0,0,114,183,0,0,0,114,73,0, - 0,0,114,63,0,0,0,114,62,0,0,0,114,26,0,0, - 0,114,26,0,0,0,166,1,0,0,115,82,0,0,0,132, - 0,224,21,24,128,78,243,4,23,5,31,243,50,1,5,34, - 243,6,78,1,5,22,243,96,2,73,1,5,20,243,86,2, - 13,5,41,242,30,11,5,31,243,26,6,5,21,242,16,6, - 5,28,242,16,1,5,20,240,8,0,29,36,243,3,5,5, - 42,242,14,1,5,20,242,6,1,5,28,243,6,1,5,72, - 1,114,63,0,0,0,114,26,0,0,0,99,0,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, - 243,118,0,0,0,151,0,101,0,90,1,100,0,90,2,100, - 1,90,3,100,2,90,4,100,18,100,3,132,1,90,5,100, - 19,100,4,132,1,90,6,100,20,100,6,132,1,90,7,100, - 20,100,7,132,1,90,8,100,8,132,0,90,9,100,9,132, - 0,90,10,100,10,132,0,90,11,100,11,132,0,90,12,100, - 12,132,0,90,13,100,21,100,13,132,1,90,14,101,15,102, - 1,100,14,132,1,90,16,100,15,132,0,90,17,100,16,132, - 0,90,18,100,17,132,0,90,19,121,5,41,22,114,28,0, - 0,0,97,1,1,0,0,32,83,116,114,101,97,109,82,101, - 97,100,101,114,87,114,105,116,101,114,32,105,110,115,116,97, - 110,99,101,115,32,97,108,108,111,119,32,119,114,97,112,112, - 105,110,103,32,115,116,114,101,97,109,115,32,119,104,105,99, - 104,10,32,32,32,32,32,32,32,32,119,111,114,107,32,105, - 110,32,98,111,116,104,32,114,101,97,100,32,97,110,100,32, - 119,114,105,116,101,32,109,111,100,101,115,46,10,10,32,32, - 32,32,32,32,32,32,84,104,101,32,100,101,115,105,103,110, - 32,105,115,32,115,117,99,104,32,116,104,97,116,32,111,110, - 101,32,99,97,110,32,117,115,101,32,116,104,101,32,102,97, - 99,116,111,114,121,32,102,117,110,99,116,105,111,110,115,10, - 32,32,32,32,32,32,32,32,114,101,116,117,114,110,101,100, - 32,98,121,32,116,104,101,32,99,111,100,101,99,46,108,111, - 111,107,117,112,40,41,32,102,117,110,99,116,105,111,110,32, - 116,111,32,99,111,110,115,116,114,117,99,116,32,116,104,101, - 10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99, - 101,46,10,10,32,32,32,32,218,7,117,110,107,110,111,119, - 110,99,5,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,243,88,0,0,0,151,0,124,1,124, - 0,95,0,0,0,0,0,0,0,0,0,2,0,124,2,124, - 1,124,4,171,2,0,0,0,0,0,0,124,0,95,1,0, - 0,0,0,0,0,0,0,2,0,124,3,124,1,124,4,171, - 2,0,0,0,0,0,0,124,0,95,2,0,0,0,0,0, - 0,0,0,124,4,124,0,95,3,0,0,0,0,0,0,0, - 0,121,1,41,2,97,82,1,0,0,32,67,114,101,97,116, - 101,115,32,97,32,83,116,114,101,97,109,82,101,97,100,101, - 114,87,114,105,116,101,114,32,105,110,115,116,97,110,99,101, - 46,10,10,32,32,32,32,32,32,32,32,32,32,32,32,115, - 116,114,101,97,109,32,109,117,115,116,32,98,101,32,97,32, - 83,116,114,101,97,109,45,108,105,107,101,32,111,98,106,101, - 99,116,46,10,10,32,32,32,32,32,32,32,32,32,32,32, - 32,82,101,97,100,101,114,44,32,87,114,105,116,101,114,32, - 109,117,115,116,32,98,101,32,102,97,99,116,111,114,121,32, - 102,117,110,99,116,105,111,110,115,32,111,114,32,99,108,97, - 115,115,101,115,10,32,32,32,32,32,32,32,32,32,32,32, - 32,112,114,111,118,105,100,105,110,103,32,116,104,101,32,83, - 116,114,101,97,109,82,101,97,100,101,114,44,32,83,116,114, - 101,97,109,87,114,105,116,101,114,32,105,110,116,101,114,102, - 97,99,101,32,114,101,115,112,46,10,10,32,32,32,32,32, - 32,32,32,32,32,32,32,69,114,114,111,114,32,104,97,110, - 100,108,105,110,103,32,105,115,32,100,111,110,101,32,105,110, - 32,116,104,101,32,115,97,109,101,32,119,97,121,32,97,115, - 32,100,101,102,105,110,101,100,32,102,111,114,32,116,104,101, - 10,32,32,32,32,32,32,32,32,32,32,32,32,83,116,114, - 101,97,109,87,114,105,116,101,114,47,82,101,97,100,101,114, - 115,46,10,10,32,32,32,32,32,32,32,32,78,41,4,114, - 141,0,0,0,218,6,114,101,97,100,101,114,218,6,119,114, - 105,116,101,114,114,80,0,0,0,41,5,114,61,0,0,0, - 114,141,0,0,0,218,6,82,101,97,100,101,114,218,6,87, - 114,105,116,101,114,114,80,0,0,0,115,5,0,0,0,32, - 32,32,32,32,114,62,0,0,0,114,89,0,0,0,122,27, - 83,116,114,101,97,109,82,101,97,100,101,114,87,114,105,116, - 101,114,46,95,95,105,110,105,116,95,95,175,2,0,0,115, - 46,0,0,0,128,0,240,26,0,23,29,136,4,140,11,217, - 22,28,152,86,160,86,211,22,44,136,4,140,11,217,22,28, - 152,86,160,86,211,22,44,136,4,140,11,216,22,28,136,4, - 141,11,114,63,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,243,56,0,0, - 0,151,0,124,0,106,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,3,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,171, - 1,0,0,0,0,0,0,83,0,114,52,0,0,0,41,2, - 114,244,0,0,0,114,199,0,0,0,169,2,114,61,0,0, - 0,114,203,0,0,0,115,2,0,0,0,32,32,114,62,0, - 0,0,114,199,0,0,0,122,23,83,116,114,101,97,109,82, - 101,97,100,101,114,87,114,105,116,101,114,46,114,101,97,100, - 193,2,0,0,115,23,0,0,0,128,0,224,15,19,143,123, - 137,123,215,15,31,209,15,31,160,4,211,15,37,208,8,37, - 114,63,0,0,0,78,99,2,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,243,56,0,0,0, - 151,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,1,171,1, - 0,0,0,0,0,0,83,0,114,52,0,0,0,41,2,114, - 244,0,0,0,114,225,0,0,0,114,249,0,0,0,115,2, - 0,0,0,32,32,114,62,0,0,0,114,225,0,0,0,122, + 85,1,53,1,0,0,0,0,0,0,36,0,114,53,0,0, + 0,41,2,114,47,1,0,0,114,246,0,0,0,41,2,114, + 62,0,0,0,114,250,0,0,0,115,2,0,0,0,32,32, + 114,63,0,0,0,114,246,0,0,0,218,23,83,116,114,101, + 97,109,82,101,97,100,101,114,87,114,105,116,101,114,46,114, + 101,97,100,196,2,0,0,115,23,0,0,0,128,0,224,15, + 19,143,123,137,123,215,15,31,209,15,31,160,4,211,15,37, + 208,8,37,114,65,0,0,0,78,99,3,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,56, + 0,0,0,149,0,85,0,82,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,82,3,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88, + 18,53,2,0,0,0,0,0,0,36,0,114,53,0,0,0, + 41,2,114,47,1,0,0,114,17,1,0,0,41,3,114,62, + 0,0,0,114,250,0,0,0,114,243,0,0,0,115,3,0, + 0,0,32,32,32,114,63,0,0,0,114,17,1,0,0,218, 27,83,116,114,101,97,109,82,101,97,100,101,114,87,114,105, - 116,101,114,46,114,101,97,100,108,105,110,101,197,2,0,0, + 116,101,114,46,114,101,97,100,108,105,110,101,200,2,0,0, 115,23,0,0,0,128,0,224,15,19,143,123,137,123,215,15, - 35,209,15,35,160,68,211,15,41,208,8,41,114,63,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,3,0,0,0,243,56,0,0,0,151,0,124,0,106, + 35,209,15,35,160,68,211,15,51,208,8,51,114,65,0,0, + 0,99,3,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,56,0,0,0,149,0,85,0,82, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,3,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,1,171,1,0,0,0,0,0, - 0,83,0,114,52,0,0,0,41,2,114,244,0,0,0,114, - 228,0,0,0,41,2,114,61,0,0,0,114,227,0,0,0, - 115,2,0,0,0,32,32,114,62,0,0,0,114,228,0,0, - 0,122,28,83,116,114,101,97,109,82,101,97,100,101,114,87, - 114,105,116,101,114,46,114,101,97,100,108,105,110,101,115,201, - 2,0,0,115,23,0,0,0,128,0,224,15,19,143,123,137, - 123,215,15,36,209,15,36,160,88,211,15,46,208,8,46,114, - 63,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,3,0,0,0,243,44,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,0,106,2,0,0, + 0,0,0,82,3,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,88,18,53,2,0,0,0,0,0, + 0,36,0,114,53,0,0,0,41,2,114,47,1,0,0,114, + 21,1,0,0,41,3,114,62,0,0,0,114,20,1,0,0, + 114,243,0,0,0,115,3,0,0,0,32,32,32,114,63,0, + 0,0,114,21,1,0,0,218,28,83,116,114,101,97,109,82, + 101,97,100,101,114,87,114,105,116,101,114,46,114,101,97,100, + 108,105,110,101,115,204,2,0,0,115,23,0,0,0,128,0, + 224,15,19,143,123,137,123,215,15,36,209,15,36,160,88,211, + 15,56,208,8,56,114,65,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 44,0,0,0,149,0,91,1,0,0,0,0,0,0,0,0, + 85,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,36,0, + 114,28,1,0,0,41,2,218,4,110,101,120,116,114,47,1, + 0,0,114,71,0,0,0,115,1,0,0,0,32,114,63,0, + 0,0,114,30,1,0,0,218,27,83,116,114,101,97,109,82, + 101,97,100,101,114,87,114,105,116,101,114,46,95,95,110,101, + 120,116,95,95,208,2,0,0,115,19,0,0,0,128,0,244, + 6,0,16,20,144,68,151,75,145,75,211,15,32,208,8,32, + 114,65,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,243,6,0,0,0,149, + 0,85,0,36,0,114,53,0,0,0,114,81,0,0,0,114, + 71,0,0,0,115,1,0,0,0,32,114,63,0,0,0,114, + 33,1,0,0,218,27,83,116,114,101,97,109,82,101,97,100, + 101,114,87,114,105,116,101,114,46,95,95,105,116,101,114,95, + 95,213,2,0,0,114,210,0,0,0,114,65,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,56,0,0,0,149,0,85,0,82,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,83,0,114,232,0,0,0,41, - 2,218,4,110,101,120,116,114,244,0,0,0,114,69,0,0, - 0,115,1,0,0,0,32,114,62,0,0,0,114,234,0,0, - 0,122,27,83,116,114,101,97,109,82,101,97,100,101,114,87, - 114,105,116,101,114,46,95,95,110,101,120,116,95,95,205,2, - 0,0,115,19,0,0,0,128,0,244,6,0,16,20,144,68, - 151,75,145,75,211,15,32,208,8,32,114,63,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 3,0,0,0,243,6,0,0,0,151,0,124,0,83,0,114, - 52,0,0,0,114,73,0,0,0,114,69,0,0,0,115,1, - 0,0,0,32,114,62,0,0,0,114,236,0,0,0,122,27, - 83,116,114,101,97,109,82,101,97,100,101,114,87,114,105,116, - 101,114,46,95,95,105,116,101,114,95,95,210,2,0,0,114, - 167,0,0,0,114,63,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,56, - 0,0,0,151,0,124,0,106,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,106,3,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,171,1,0,0,0,0,0,0,83,0,114,52,0,0,0, - 41,2,114,245,0,0,0,114,144,0,0,0,41,2,114,61, - 0,0,0,114,114,0,0,0,115,2,0,0,0,32,32,114, - 62,0,0,0,114,144,0,0,0,122,24,83,116,114,101,97, - 109,82,101,97,100,101,114,87,114,105,116,101,114,46,119,114, - 105,116,101,213,2,0,0,115,23,0,0,0,128,0,224,15, - 19,143,123,137,123,215,15,32,209,15,32,160,20,211,15,38, - 208,8,38,114,63,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,3,0,0,0,243,56,0, - 0,0,151,0,124,0,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 171,1,0,0,0,0,0,0,83,0,114,52,0,0,0,41, - 2,114,245,0,0,0,114,150,0,0,0,114,148,0,0,0, - 115,2,0,0,0,32,32,114,62,0,0,0,114,150,0,0, - 0,122,29,83,116,114,101,97,109,82,101,97,100,101,114,87, - 114,105,116,101,114,46,119,114,105,116,101,108,105,110,101,115, - 217,2,0,0,115,23,0,0,0,128,0,224,15,19,143,123, - 137,123,215,15,37,209,15,37,160,100,211,15,43,208,8,43, - 114,63,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,3,0,0,0,243,108,0,0,0,151, - 0,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,3,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0, - 0,0,0,1,0,124,0,106,4,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,106,3,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,1,0,121,0,114,52,0,0,0, - 169,3,114,244,0,0,0,114,95,0,0,0,114,245,0,0, - 0,114,69,0,0,0,115,1,0,0,0,32,114,62,0,0, - 0,114,95,0,0,0,122,24,83,116,114,101,97,109,82,101, - 97,100,101,114,87,114,105,116,101,114,46,114,101,115,101,116, - 221,2,0,0,243,34,0,0,0,128,0,224,8,12,143,11, - 137,11,215,8,25,209,8,25,212,8,27,216,8,12,143,11, - 137,11,215,8,25,209,8,25,213,8,27,114,63,0,0,0, - 99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,188,0,0,0,151,0,124,0,106,0, + 0,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,1,53,1,0,0,0,0,0,0,36, + 0,114,53,0,0,0,41,2,114,48,1,0,0,114,181,0, + 0,0,41,2,114,62,0,0,0,114,134,0,0,0,115,2, + 0,0,0,32,32,114,63,0,0,0,114,181,0,0,0,218, + 24,83,116,114,101,97,109,82,101,97,100,101,114,87,114,105, + 116,101,114,46,119,114,105,116,101,216,2,0,0,115,23,0, + 0,0,128,0,224,15,19,143,123,137,123,215,15,32,209,15, + 32,160,20,211,15,38,208,8,38,114,65,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, + 0,0,0,243,56,0,0,0,149,0,85,0,82,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,124,2,171,2,0,0,0,0, - 0,0,1,0,124,0,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,7,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,1,0,124,2,100,1,107,40,0,0, - 114,33,124,1,100,1,107,40,0,0,114,27,124,0,106,8, + 82,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,1,53,1,0,0,0,0,0,0,36,0, + 114,53,0,0,0,41,2,114,48,1,0,0,114,188,0,0, + 0,114,186,0,0,0,115,2,0,0,0,32,32,114,63,0, + 0,0,114,188,0,0,0,218,29,83,116,114,101,97,109,82, + 101,97,100,101,114,87,114,105,116,101,114,46,119,114,105,116, + 101,108,105,110,101,115,220,2,0,0,115,23,0,0,0,128, + 0,224,15,19,143,123,137,123,215,15,37,209,15,37,160,100, + 211,15,43,208,8,43,114,65,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, + 243,108,0,0,0,149,0,85,0,82,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,3,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,7,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,1,0, - 121,0,121,0,121,0,114,120,0,0,0,41,5,114,141,0, - 0,0,114,154,0,0,0,114,244,0,0,0,114,95,0,0, - 0,114,245,0,0,0,114,155,0,0,0,115,3,0,0,0, - 32,32,32,114,62,0,0,0,114,154,0,0,0,122,23,83, - 116,114,101,97,109,82,101,97,100,101,114,87,114,105,116,101, - 114,46,115,101,101,107,226,2,0,0,115,74,0,0,0,128, - 0,216,8,12,143,11,137,11,215,8,24,209,8,24,152,22, - 160,22,212,8,40,216,8,12,143,11,137,11,215,8,25,209, - 8,25,212,8,27,216,11,17,144,81,138,59,152,54,160,81, - 154,59,216,12,16,143,75,137,75,215,12,29,209,12,29,213, - 12,31,240,3,0,28,39,136,59,114,63,0,0,0,99,3, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,40,0,0,0,151,0,2,0,124,2,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,2,0,0,0,0,0,0,83,0, - 114,159,0,0,0,114,160,0,0,0,114,161,0,0,0,115, - 3,0,0,0,32,32,32,114,62,0,0,0,114,163,0,0, - 0,122,30,83,116,114,101,97,109,82,101,97,100,101,114,87, - 114,105,116,101,114,46,95,95,103,101,116,97,116,116,114,95, - 95,232,2,0,0,114,164,0,0,0,114,63,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 3,0,0,0,243,6,0,0,0,151,0,124,0,83,0,114, - 52,0,0,0,114,73,0,0,0,114,69,0,0,0,115,1, - 0,0,0,32,114,62,0,0,0,114,166,0,0,0,122,28, - 83,116,114,101,97,109,82,101,97,100,101,114,87,114,105,116, - 101,114,46,95,95,101,110,116,101,114,95,95,241,2,0,0, - 114,167,0,0,0,114,63,0,0,0,99,4,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,243, - 56,0,0,0,151,0,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,3,0,0, + 0,53,0,0,0,0,0,0,0,32,0,85,0,82,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,1,0,121,0,114,52,0,0, - 0,114,169,0,0,0,114,171,0,0,0,115,4,0,0,0, - 32,32,32,32,114,62,0,0,0,114,175,0,0,0,122,27, - 83,116,114,101,97,109,82,101,97,100,101,114,87,114,105,116, - 101,114,46,95,95,101,120,105,116,95,95,244,2,0,0,114, - 176,0,0,0,114,63,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,70, - 0,0,0,151,0,116,1,0,0,0,0,0,0,0,0,100, - 1,124,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,4,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,122,6,0,0,171, - 1,0,0,0,0,0,0,130,1,114,178,0,0,0,114,179, - 0,0,0,114,181,0,0,0,115,2,0,0,0,32,32,114, - 62,0,0,0,114,183,0,0,0,122,32,83,116,114,101,97, - 109,82,101,97,100,101,114,87,114,105,116,101,114,46,95,95, - 114,101,100,117,99,101,95,101,120,95,95,247,2,0,0,114, - 184,0,0,0,114,63,0,0,0,114,82,0,0,0,169,1, - 114,215,0,0,0,114,52,0,0,0,114,185,0,0,0,41, - 20,114,71,0,0,0,114,66,0,0,0,114,67,0,0,0, - 114,72,0,0,0,218,8,101,110,99,111,100,105,110,103,114, - 89,0,0,0,114,199,0,0,0,114,225,0,0,0,114,228, - 0,0,0,114,234,0,0,0,114,236,0,0,0,114,144,0, - 0,0,114,150,0,0,0,114,95,0,0,0,114,154,0,0, - 0,114,162,0,0,0,114,163,0,0,0,114,166,0,0,0, - 114,175,0,0,0,114,183,0,0,0,114,73,0,0,0,114, - 63,0,0,0,114,62,0,0,0,114,28,0,0,0,114,28, - 0,0,0,162,2,0,0,115,90,0,0,0,132,0,241,4, - 7,5,8,240,18,0,16,25,128,72,243,4,16,5,29,243, - 36,2,5,38,243,8,2,5,42,243,8,2,5,47,242,8, - 3,5,33,242,10,1,5,20,242,6,2,5,39,242,8,2, - 5,44,242,8,3,5,28,243,10,4,5,32,240,14,0,29, - 36,243,3,5,5,42,242,18,1,5,20,242,6,1,5,28, - 243,6,1,5,72,1,114,63,0,0,0,114,28,0,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,0,0,0,0,243,124,0,0,0,151,0,101,0,90,1, - 100,0,90,2,100,1,90,3,100,2,90,4,100,2,90,5, - 9,0,100,18,100,3,132,1,90,6,100,19,100,4,132,1, - 90,7,100,20,100,6,132,1,90,8,100,20,100,7,132,1, - 90,9,100,8,132,0,90,10,100,9,132,0,90,11,100,10, - 132,0,90,12,100,11,132,0,90,13,100,12,132,0,90,14, - 100,21,100,13,132,1,90,15,101,16,102,1,100,14,132,1, - 90,17,100,15,132,0,90,18,100,16,132,0,90,19,100,17, - 132,0,90,20,121,5,41,22,114,29,0,0,0,97,66,2, - 0,0,32,83,116,114,101,97,109,82,101,99,111,100,101,114, - 32,105,110,115,116,97,110,99,101,115,32,116,114,97,110,115, - 108,97,116,101,32,100,97,116,97,32,102,114,111,109,32,111, - 110,101,32,101,110,99,111,100,105,110,103,32,116,111,32,97, - 110,111,116,104,101,114,46,10,10,32,32,32,32,32,32,32, - 32,84,104,101,121,32,117,115,101,32,116,104,101,32,99,111, - 109,112,108,101,116,101,32,115,101,116,32,111,102,32,65,80, - 73,115,32,114,101,116,117,114,110,101,100,32,98,121,32,116, - 104,101,10,32,32,32,32,32,32,32,32,99,111,100,101,99, - 115,46,108,111,111,107,117,112,40,41,32,102,117,110,99,116, - 105,111,110,32,116,111,32,105,109,112,108,101,109,101,110,116, - 32,116,104,101,105,114,32,116,97,115,107,46,10,10,32,32, - 32,32,32,32,32,32,68,97,116,97,32,119,114,105,116,116, - 101,110,32,116,111,32,116,104,101,32,83,116,114,101,97,109, - 82,101,99,111,100,101,114,32,105,115,32,102,105,114,115,116, - 32,100,101,99,111,100,101,100,32,105,110,116,111,32,97,110, - 10,32,32,32,32,32,32,32,32,105,110,116,101,114,109,101, - 100,105,97,116,101,32,102,111,114,109,97,116,32,40,100,101, - 112,101,110,100,105,110,103,32,111,110,32,116,104,101,32,34, - 100,101,99,111,100,101,34,32,99,111,100,101,99,41,32,97, - 110,100,32,116,104,101,110,10,32,32,32,32,32,32,32,32, - 119,114,105,116,116,101,110,32,116,111,32,116,104,101,32,117, - 110,100,101,114,108,121,105,110,103,32,115,116,114,101,97,109, - 32,117,115,105,110,103,32,97,110,32,105,110,115,116,97,110, - 99,101,32,111,102,32,116,104,101,32,112,114,111,118,105,100, - 101,100,10,32,32,32,32,32,32,32,32,87,114,105,116,101, - 114,32,99,108,97,115,115,46,10,10,32,32,32,32,32,32, - 32,32,73,110,32,116,104,101,32,111,116,104,101,114,32,100, - 105,114,101,99,116,105,111,110,44,32,100,97,116,97,32,105, - 115,32,114,101,97,100,32,102,114,111,109,32,116,104,101,32, - 117,110,100,101,114,108,121,105,110,103,32,115,116,114,101,97, - 109,32,117,115,105,110,103,10,32,32,32,32,32,32,32,32, - 97,32,82,101,97,100,101,114,32,105,110,115,116,97,110,99, - 101,32,97,110,100,32,116,104,101,110,32,101,110,99,111,100, - 101,100,32,97,110,100,32,114,101,116,117,114,110,101,100,32, - 116,111,32,116,104,101,32,99,97,108,108,101,114,46,10,10, - 32,32,32,32,114,242,0,0,0,99,7,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,116, - 0,0,0,151,0,124,1,124,0,95,0,0,0,0,0,0, - 0,0,0,124,2,124,0,95,1,0,0,0,0,0,0,0, - 0,124,3,124,0,95,2,0,0,0,0,0,0,0,0,2, - 0,124,4,124,1,124,6,171,2,0,0,0,0,0,0,124, - 0,95,3,0,0,0,0,0,0,0,0,2,0,124,5,124, - 1,124,6,171,2,0,0,0,0,0,0,124,0,95,4,0, - 0,0,0,0,0,0,0,124,6,124,0,95,5,0,0,0, - 0,0,0,0,0,121,1,41,2,97,233,2,0,0,32,67, - 114,101,97,116,101,115,32,97,32,83,116,114,101,97,109,82, - 101,99,111,100,101,114,32,105,110,115,116,97,110,99,101,32, - 119,104,105,99,104,32,105,109,112,108,101,109,101,110,116,115, - 32,97,32,116,119,111,45,119,97,121,10,32,32,32,32,32, - 32,32,32,32,32,32,32,99,111,110,118,101,114,115,105,111, - 110,58,32,101,110,99,111,100,101,32,97,110,100,32,100,101, - 99,111,100,101,32,119,111,114,107,32,111,110,32,116,104,101, - 32,102,114,111,110,116,101,110,100,32,40,116,104,101,10,32, - 32,32,32,32,32,32,32,32,32,32,32,100,97,116,97,32, - 118,105,115,105,98,108,101,32,116,111,32,46,114,101,97,100, - 40,41,32,97,110,100,32,46,119,114,105,116,101,40,41,41, - 32,119,104,105,108,101,32,82,101,97,100,101,114,32,97,110, - 100,32,87,114,105,116,101,114,10,32,32,32,32,32,32,32, - 32,32,32,32,32,119,111,114,107,32,111,110,32,116,104,101, - 32,98,97,99,107,101,110,100,32,40,116,104,101,32,100,97, - 116,97,32,105,110,32,115,116,114,101,97,109,41,46,10,10, - 32,32,32,32,32,32,32,32,32,32,32,32,89,111,117,32, - 99,97,110,32,117,115,101,32,116,104,101,115,101,32,111,98, - 106,101,99,116,115,32,116,111,32,100,111,32,116,114,97,110, - 115,112,97,114,101,110,116,10,32,32,32,32,32,32,32,32, - 32,32,32,32,116,114,97,110,115,99,111,100,105,110,103,115, - 32,102,114,111,109,32,101,46,103,46,32,108,97,116,105,110, - 45,49,32,116,111,32,117,116,102,45,56,32,97,110,100,32, - 98,97,99,107,46,10,10,32,32,32,32,32,32,32,32,32, - 32,32,32,115,116,114,101,97,109,32,109,117,115,116,32,98, - 101,32,97,32,102,105,108,101,45,108,105,107,101,32,111,98, - 106,101,99,116,46,10,10,32,32,32,32,32,32,32,32,32, - 32,32,32,101,110,99,111,100,101,32,97,110,100,32,100,101, - 99,111,100,101,32,109,117,115,116,32,97,100,104,101,114,101, - 32,116,111,32,116,104,101,32,67,111,100,101,99,32,105,110, - 116,101,114,102,97,99,101,59,32,82,101,97,100,101,114,32, - 97,110,100,10,32,32,32,32,32,32,32,32,32,32,32,32, - 87,114,105,116,101,114,32,109,117,115,116,32,98,101,32,102, - 97,99,116,111,114,121,32,102,117,110,99,116,105,111,110,115, - 32,111,114,32,99,108,97,115,115,101,115,32,112,114,111,118, - 105,100,105,110,103,32,116,104,101,10,32,32,32,32,32,32, - 32,32,32,32,32,32,83,116,114,101,97,109,82,101,97,100, - 101,114,32,97,110,100,32,83,116,114,101,97,109,87,114,105, - 116,101,114,32,105,110,116,101,114,102,97,99,101,115,32,114, - 101,115,112,46,10,10,32,32,32,32,32,32,32,32,32,32, - 32,32,69,114,114,111,114,32,104,97,110,100,108,105,110,103, - 32,105,115,32,100,111,110,101,32,105,110,32,116,104,101,32, - 115,97,109,101,32,119,97,121,32,97,115,32,100,101,102,105, - 110,101,100,32,102,111,114,32,116,104,101,10,32,32,32,32, - 32,32,32,32,32,32,32,32,83,116,114,101,97,109,87,114, - 105,116,101,114,47,82,101,97,100,101,114,115,46,10,10,32, - 32,32,32,32,32,32,32,78,41,6,114,141,0,0,0,114, - 36,0,0,0,114,37,0,0,0,114,244,0,0,0,114,245, - 0,0,0,114,80,0,0,0,41,7,114,61,0,0,0,114, - 141,0,0,0,114,36,0,0,0,114,37,0,0,0,114,246, - 0,0,0,114,247,0,0,0,114,80,0,0,0,115,7,0, - 0,0,32,32,32,32,32,32,32,114,62,0,0,0,114,89, - 0,0,0,122,22,83,116,114,101,97,109,82,101,99,111,100, - 101,114,46,95,95,105,110,105,116,95,95,16,3,0,0,115, - 60,0,0,0,128,0,240,42,0,23,29,136,4,140,11,216, - 22,28,136,4,140,11,216,22,28,136,4,140,11,217,22,28, - 152,86,160,86,211,22,44,136,4,140,11,217,22,28,152,86, - 160,86,211,22,44,136,4,140,11,216,22,28,136,4,141,11, - 114,63,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,243,122,0,0,0,151, - 0,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,3,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,171,1,0, - 0,0,0,0,0,125,2,124,0,106,5,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,2,124, - 0,106,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,2,0,0,0,0,0,0,92,2,0, - 0,125,2,125,3,124,2,83,0,114,52,0,0,0,41,4, - 114,244,0,0,0,114,199,0,0,0,114,36,0,0,0,114, - 80,0,0,0,169,4,114,61,0,0,0,114,203,0,0,0, - 114,114,0,0,0,218,12,98,121,116,101,115,101,110,99,111, - 100,101,100,115,4,0,0,0,32,32,32,32,114,62,0,0, - 0,114,199,0,0,0,122,18,83,116,114,101,97,109,82,101, - 99,111,100,101,114,46,114,101,97,100,44,3,0,0,115,52, - 0,0,0,128,0,224,15,19,143,123,137,123,215,15,31,209, - 15,31,160,4,211,15,37,136,4,216,29,33,159,91,153,91, - 168,20,168,116,175,123,169,123,211,29,59,209,8,26,136,4, - 136,108,216,15,19,136,11,114,63,0,0,0,78,99,2,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,243,180,0,0,0,151,0,124,1,128,27,124,0,106, + 0,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,32,0,103, + 0,114,53,0,0,0,169,3,114,47,1,0,0,114,109,0, + 0,0,114,48,1,0,0,114,71,0,0,0,115,1,0,0, + 0,32,114,63,0,0,0,114,109,0,0,0,218,24,83,116, + 114,101,97,109,82,101,97,100,101,114,87,114,105,116,101,114, + 46,114,101,115,101,116,224,2,0,0,243,34,0,0,0,128, + 0,224,8,12,143,11,137,11,215,8,25,209,8,25,212,8, + 27,216,8,12,143,11,137,11,215,8,25,209,8,25,213,8, + 27,114,65,0,0,0,99,3,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,190,0,0,0, + 149,0,85,0,82,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,88,18,53,2, + 0,0,0,0,0,0,32,0,85,0,82,4,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,7, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,53,0,0,0,0,0,0,0,32,0,85,2,83,1, + 58,88,0,0,97,34,0,0,85,1,83,1,58,88,0,0, + 97,27,0,0,85,0,82,8,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,82,7,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,32,0,103,0,103,0,103,0,114,142, + 0,0,0,41,5,114,177,0,0,0,114,194,0,0,0,114, + 47,1,0,0,114,109,0,0,0,114,48,1,0,0,114,195, + 0,0,0,115,3,0,0,0,32,32,32,114,63,0,0,0, + 114,194,0,0,0,218,23,83,116,114,101,97,109,82,101,97, + 100,101,114,87,114,105,116,101,114,46,115,101,101,107,229,2, + 0,0,115,72,0,0,0,128,0,216,8,12,143,11,137,11, + 215,8,24,209,8,24,152,22,212,8,40,216,8,12,143,11, + 137,11,215,8,25,209,8,25,212,8,27,216,11,17,144,81, + 139,59,152,54,160,81,155,59,216,12,16,143,75,137,75,215, + 12,29,209,12,29,213,12,31,240,3,0,28,39,136,59,114, + 65,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,243,40,0,0,0,149,0, + 85,2,34,0,85,0,82,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,1,53,2,0,0, + 0,0,0,0,36,0,114,200,0,0,0,114,201,0,0,0, + 114,202,0,0,0,115,3,0,0,0,32,32,32,114,63,0, + 0,0,114,204,0,0,0,218,30,83,116,114,101,97,109,82, + 101,97,100,101,114,87,114,105,116,101,114,46,95,95,103,101, + 116,97,116,116,114,95,95,235,2,0,0,114,206,0,0,0, + 114,65,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,243,6,0,0,0,149, + 0,85,0,36,0,114,53,0,0,0,114,81,0,0,0,114, + 71,0,0,0,115,1,0,0,0,32,114,63,0,0,0,114, + 208,0,0,0,218,28,83,116,114,101,97,109,82,101,97,100, + 101,114,87,114,105,116,101,114,46,95,95,101,110,116,101,114, + 95,95,244,2,0,0,114,210,0,0,0,114,65,0,0,0, + 99,4,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,3,0,0,0,243,56,0,0,0,149,0,85,0,82,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,3,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,125, - 2,110,27,124,0,106,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,3,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,171, - 1,0,0,0,0,0,0,125,2,124,0,106,5,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 2,124,0,106,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,92, - 2,0,0,125,2,125,3,124,2,83,0,114,52,0,0,0, - 41,4,114,244,0,0,0,114,225,0,0,0,114,36,0,0, - 0,114,80,0,0,0,114,14,1,0,0,115,4,0,0,0, - 32,32,32,32,114,62,0,0,0,114,225,0,0,0,122,22, - 83,116,114,101,97,109,82,101,99,111,100,101,114,46,114,101, - 97,100,108,105,110,101,50,3,0,0,115,75,0,0,0,128, - 0,224,11,15,136,60,216,19,23,151,59,145,59,215,19,39, - 209,19,39,211,19,41,137,68,224,19,23,151,59,145,59,215, - 19,39,209,19,39,168,4,211,19,45,136,68,216,29,33,159, - 91,153,91,168,20,168,116,175,123,169,123,211,29,59,209,8, - 26,136,4,136,108,216,15,19,136,11,114,63,0,0,0,99, + 0,0,82,3,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,32,0, + 103,0,114,53,0,0,0,114,212,0,0,0,114,214,0,0, + 0,115,4,0,0,0,32,32,32,32,114,63,0,0,0,114, + 218,0,0,0,218,27,83,116,114,101,97,109,82,101,97,100, + 101,114,87,114,105,116,101,114,46,95,95,101,120,105,116,95, + 95,247,2,0,0,114,220,0,0,0,114,65,0,0,0,99, 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,152,0,0,0,151,0,124,0,106,0,0, + 3,0,0,0,243,70,0,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,83,1,85,0,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,106,3,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,125,2,124, - 0,106,5,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,2,124,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,2,0, - 0,0,0,0,0,92,2,0,0,125,2,125,3,124,2,106, - 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,1,172,2,171,1,0,0,0,0,0,0,83, - 0,41,3,78,84,114,195,0,0,0,41,5,114,244,0,0, - 0,114,199,0,0,0,114,36,0,0,0,114,80,0,0,0, - 114,202,0,0,0,41,4,114,61,0,0,0,114,227,0,0, - 0,114,114,0,0,0,114,15,1,0,0,115,4,0,0,0, - 32,32,32,32,114,62,0,0,0,114,228,0,0,0,122,23, - 83,116,114,101,97,109,82,101,99,111,100,101,114,46,114,101, - 97,100,108,105,110,101,115,59,3,0,0,115,62,0,0,0, - 128,0,224,15,19,143,123,137,123,215,15,31,209,15,31,211, - 15,33,136,4,216,29,33,159,91,153,91,168,20,168,116,175, - 123,169,123,211,29,59,209,8,26,136,4,136,108,216,15,19, - 143,127,137,127,168,4,136,127,211,15,45,208,8,45,114,63, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,110,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,124,0,106,2,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,125,1,124,0,106,5,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,124,0,106,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,92, - 2,0,0,125,1,125,2,124,1,83,0,114,232,0,0,0, - 41,4,114,253,0,0,0,114,244,0,0,0,114,36,0,0, - 0,114,80,0,0,0,41,3,114,61,0,0,0,114,114,0, - 0,0,114,15,1,0,0,115,3,0,0,0,32,32,32,114, - 62,0,0,0,114,234,0,0,0,122,22,83,116,114,101,97, - 109,82,101,99,111,100,101,114,46,95,95,110,101,120,116,95, - 95,65,3,0,0,115,48,0,0,0,128,0,244,6,0,16, - 20,144,68,151,75,145,75,211,15,32,136,4,216,29,33,159, - 91,153,91,168,20,168,116,175,123,169,123,211,29,59,209,8, - 26,136,4,136,108,216,15,19,136,11,114,63,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 3,0,0,0,243,6,0,0,0,151,0,124,0,83,0,114, - 52,0,0,0,114,73,0,0,0,114,69,0,0,0,115,1, - 0,0,0,32,114,62,0,0,0,114,236,0,0,0,122,22, - 83,116,114,101,97,109,82,101,99,111,100,101,114,46,95,95, - 105,116,101,114,95,95,72,3,0,0,114,167,0,0,0,114, - 63,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,243,118,0,0,0,151,0, - 124,0,106,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,124,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,92,2,0,0,125,1,125,2,124,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,106,7,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,171,1,0,0,0,0, - 0,0,83,0,114,52,0,0,0,41,4,114,37,0,0,0, - 114,80,0,0,0,114,245,0,0,0,114,144,0,0,0,41, - 3,114,61,0,0,0,114,114,0,0,0,218,12,98,121,116, - 101,115,100,101,99,111,100,101,100,115,3,0,0,0,32,32, - 32,114,62,0,0,0,114,144,0,0,0,122,19,83,116,114, - 101,97,109,82,101,99,111,100,101,114,46,119,114,105,116,101, - 75,3,0,0,115,48,0,0,0,128,0,224,29,33,159,91, - 153,91,168,20,168,116,175,123,169,123,211,29,59,209,8,26, - 136,4,136,108,216,15,19,143,123,137,123,215,15,32,209,15, - 32,160,20,211,15,38,208,8,38,114,63,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,152,0,0,0,151,0,100,1,106,1,0,0, + 0,45,6,0,0,53,1,0,0,0,0,0,0,101,1,114, + 222,0,0,0,114,223,0,0,0,114,225,0,0,0,115,2, + 0,0,0,32,32,114,63,0,0,0,114,227,0,0,0,218, + 32,83,116,114,101,97,109,82,101,97,100,101,114,87,114,105, + 116,101,114,46,95,95,114,101,100,117,99,101,95,101,120,95, + 95,250,2,0,0,114,229,0,0,0,114,65,0,0,0,41, + 4,114,89,0,0,0,114,47,1,0,0,114,177,0,0,0, + 114,48,1,0,0,114,93,0,0,0,169,1,114,7,1,0, + 0,114,43,1,0,0,114,230,0,0,0,41,22,114,77,0, + 0,0,114,68,0,0,0,114,69,0,0,0,114,78,0,0, + 0,114,79,0,0,0,218,8,101,110,99,111,100,105,110,103, + 114,101,0,0,0,114,246,0,0,0,114,17,1,0,0,114, + 21,1,0,0,114,30,1,0,0,114,33,1,0,0,114,181, + 0,0,0,114,188,0,0,0,114,109,0,0,0,114,194,0, + 0,0,114,203,0,0,0,114,204,0,0,0,114,208,0,0, + 0,114,218,0,0,0,114,227,0,0,0,114,80,0,0,0, + 114,81,0,0,0,114,65,0,0,0,114,63,0,0,0,114, + 28,0,0,0,114,28,0,0,0,165,2,0,0,115,90,0, + 0,0,134,0,241,4,7,5,8,240,18,0,16,25,128,72, + 244,4,16,5,29,244,36,2,5,38,244,8,2,5,52,244, + 8,2,5,57,242,8,3,5,33,242,10,1,5,20,242,6, + 2,5,39,242,8,2,5,44,242,8,3,5,28,244,10,4, + 5,32,240,14,0,29,36,244,3,5,5,42,242,18,1,5, + 20,242,6,1,5,28,245,6,1,5,72,1,114,65,0,0, + 0,114,28,0,0,0,99,0,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,0,0,0,0,243,144,0,0,0, + 149,0,92,0,114,1,83,0,114,2,83,1,114,3,83,2, + 114,4,83,3,114,5,83,3,114,6,30,0,83,20,83,4, + 26,0,106,1,114,7,83,21,83,5,26,0,106,1,114,8, + 83,22,83,7,26,0,106,1,114,9,83,22,83,8,26,0, + 106,1,114,10,83,9,26,0,114,11,83,10,26,0,114,12, + 83,11,26,0,114,13,83,12,26,0,114,14,83,13,26,0, + 114,15,83,23,83,14,26,0,106,1,114,16,92,17,52,1, + 83,15,26,0,106,1,114,18,83,16,26,0,114,19,83,17, + 26,0,114,20,83,18,26,0,114,21,83,19,114,22,103,6, + 41,24,114,29,0,0,0,105,255,2,0,0,97,253,1,0, + 0,83,116,114,101,97,109,82,101,99,111,100,101,114,32,105, + 110,115,116,97,110,99,101,115,32,116,114,97,110,115,108,97, + 116,101,32,100,97,116,97,32,102,114,111,109,32,111,110,101, + 32,101,110,99,111,100,105,110,103,32,116,111,32,97,110,111, + 116,104,101,114,46,10,10,84,104,101,121,32,117,115,101,32, + 116,104,101,32,99,111,109,112,108,101,116,101,32,115,101,116, + 32,111,102,32,65,80,73,115,32,114,101,116,117,114,110,101, + 100,32,98,121,32,116,104,101,10,99,111,100,101,99,115,46, + 108,111,111,107,117,112,40,41,32,102,117,110,99,116,105,111, + 110,32,116,111,32,105,109,112,108,101,109,101,110,116,32,116, + 104,101,105,114,32,116,97,115,107,46,10,10,68,97,116,97, + 32,119,114,105,116,116,101,110,32,116,111,32,116,104,101,32, + 83,116,114,101,97,109,82,101,99,111,100,101,114,32,105,115, + 32,102,105,114,115,116,32,100,101,99,111,100,101,100,32,105, + 110,116,111,32,97,110,10,105,110,116,101,114,109,101,100,105, + 97,116,101,32,102,111,114,109,97,116,32,40,100,101,112,101, + 110,100,105,110,103,32,111,110,32,116,104,101,32,34,100,101, + 99,111,100,101,34,32,99,111,100,101,99,41,32,97,110,100, + 32,116,104,101,110,10,119,114,105,116,116,101,110,32,116,111, + 32,116,104,101,32,117,110,100,101,114,108,121,105,110,103,32, + 115,116,114,101,97,109,32,117,115,105,110,103,32,97,110,32, + 105,110,115,116,97,110,99,101,32,111,102,32,116,104,101,32, + 112,114,111,118,105,100,101,100,10,87,114,105,116,101,114,32, + 99,108,97,115,115,46,10,10,73,110,32,116,104,101,32,111, + 116,104,101,114,32,100,105,114,101,99,116,105,111,110,44,32, + 100,97,116,97,32,105,115,32,114,101,97,100,32,102,114,111, + 109,32,116,104,101,32,117,110,100,101,114,108,121,105,110,103, + 32,115,116,114,101,97,109,32,117,115,105,110,103,10,97,32, + 82,101,97,100,101,114,32,105,110,115,116,97,110,99,101,32, + 97,110,100,32,116,104,101,110,32,101,110,99,111,100,101,100, + 32,97,110,100,32,114,101,116,117,114,110,101,100,32,116,111, + 32,116,104,101,32,99,97,108,108,101,114,46,10,10,114,45, + 1,0,0,99,7,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,3,0,0,0,243,104,0,0,0,149,0,88, + 16,108,0,0,0,0,0,0,0,0,0,88,32,108,1,0, + 0,0,0,0,0,0,0,88,48,108,2,0,0,0,0,0, + 0,0,0,85,4,34,0,88,22,53,2,0,0,0,0,0, + 0,85,0,108,3,0,0,0,0,0,0,0,0,85,5,34, + 0,88,22,53,2,0,0,0,0,0,0,85,0,108,4,0, + 0,0,0,0,0,0,0,88,96,108,5,0,0,0,0,0, + 0,0,0,103,1,41,2,97,92,2,0,0,67,114,101,97, + 116,101,115,32,97,32,83,116,114,101,97,109,82,101,99,111, + 100,101,114,32,105,110,115,116,97,110,99,101,32,119,104,105, + 99,104,32,105,109,112,108,101,109,101,110,116,115,32,97,32, + 116,119,111,45,119,97,121,10,99,111,110,118,101,114,115,105, + 111,110,58,32,101,110,99,111,100,101,32,97,110,100,32,100, + 101,99,111,100,101,32,119,111,114,107,32,111,110,32,116,104, + 101,32,102,114,111,110,116,101,110,100,32,40,116,104,101,10, + 100,97,116,97,32,118,105,115,105,98,108,101,32,116,111,32, + 46,114,101,97,100,40,41,32,97,110,100,32,46,119,114,105, + 116,101,40,41,41,32,119,104,105,108,101,32,82,101,97,100, + 101,114,32,97,110,100,32,87,114,105,116,101,114,10,119,111, + 114,107,32,111,110,32,116,104,101,32,98,97,99,107,101,110, + 100,32,40,116,104,101,32,100,97,116,97,32,105,110,32,115, + 116,114,101,97,109,41,46,10,10,89,111,117,32,99,97,110, + 32,117,115,101,32,116,104,101,115,101,32,111,98,106,101,99, + 116,115,32,116,111,32,100,111,32,116,114,97,110,115,112,97, + 114,101,110,116,10,116,114,97,110,115,99,111,100,105,110,103, + 115,32,102,114,111,109,32,101,46,103,46,32,108,97,116,105, + 110,45,49,32,116,111,32,117,116,102,45,56,32,97,110,100, + 32,98,97,99,107,46,10,10,115,116,114,101,97,109,32,109, + 117,115,116,32,98,101,32,97,32,102,105,108,101,45,108,105, + 107,101,32,111,98,106,101,99,116,46,10,10,101,110,99,111, + 100,101,32,97,110,100,32,100,101,99,111,100,101,32,109,117, + 115,116,32,97,100,104,101,114,101,32,116,111,32,116,104,101, + 32,67,111,100,101,99,32,105,110,116,101,114,102,97,99,101, + 59,32,82,101,97,100,101,114,32,97,110,100,10,87,114,105, + 116,101,114,32,109,117,115,116,32,98,101,32,102,97,99,116, + 111,114,121,32,102,117,110,99,116,105,111,110,115,32,111,114, + 32,99,108,97,115,115,101,115,32,112,114,111,118,105,100,105, + 110,103,32,116,104,101,10,83,116,114,101,97,109,82,101,97, + 100,101,114,32,97,110,100,32,83,116,114,101,97,109,87,114, + 105,116,101,114,32,105,110,116,101,114,102,97,99,101,115,32, + 114,101,115,112,46,10,10,69,114,114,111,114,32,104,97,110, + 100,108,105,110,103,32,105,115,32,100,111,110,101,32,105,110, + 32,116,104,101,32,115,97,109,101,32,119,97,121,32,97,115, + 32,100,101,102,105,110,101,100,32,102,111,114,32,116,104,101, + 10,83,116,114,101,97,109,87,114,105,116,101,114,47,82,101, + 97,100,101,114,115,46,10,10,78,41,6,114,177,0,0,0, + 114,36,0,0,0,114,37,0,0,0,114,47,1,0,0,114, + 48,1,0,0,114,89,0,0,0,41,7,114,62,0,0,0, + 114,177,0,0,0,114,36,0,0,0,114,37,0,0,0,114, + 49,1,0,0,114,50,1,0,0,114,89,0,0,0,115,7, + 0,0,0,32,32,32,32,32,32,32,114,63,0,0,0,114, + 101,0,0,0,218,22,83,116,114,101,97,109,82,101,99,111, + 100,101,114,46,95,95,105,110,105,116,95,95,19,3,0,0, + 115,48,0,0,0,128,0,240,42,0,23,29,140,11,216,22, + 28,140,11,216,22,28,140,11,217,22,28,152,86,211,22,44, + 136,4,140,11,217,22,28,152,86,211,22,44,136,4,140,11, + 216,22,28,141,11,114,65,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 118,0,0,0,149,0,85,0,82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,82,3,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,1,53,1,0,0,0,0,0,0,110,2,85,0,82,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,125,2,124,0,106,3, + 0,0,88,32,82,6,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,2,0,0,0,0,0,0, + 117,2,0,0,112,35,85,2,36,0,114,53,0,0,0,41, + 4,114,47,1,0,0,114,246,0,0,0,114,36,0,0,0, + 114,89,0,0,0,169,4,114,62,0,0,0,114,250,0,0, + 0,114,134,0,0,0,218,12,98,121,116,101,115,101,110,99, + 111,100,101,100,115,4,0,0,0,32,32,32,32,114,63,0, + 0,0,114,246,0,0,0,218,18,83,116,114,101,97,109,82, + 101,99,111,100,101,114,46,114,101,97,100,47,3,0,0,115, + 48,0,0,0,128,0,224,15,19,143,123,137,123,215,15,31, + 209,15,31,160,4,211,15,37,136,4,216,29,33,159,91,153, + 91,168,20,175,123,169,123,211,29,59,209,8,26,136,4,216, + 15,19,136,11,114,65,0,0,0,78,99,2,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 178,0,0,0,149,0,85,1,99,27,0,0,85,0,82,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,2,124,0,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,92,2,0,0,125,2,125,3,124,0,106,6,0,0, + 0,0,82,3,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,110,2, + 79,27,85,0,82,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,110,2,85,0,82,5,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,32, + 82,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,2,0,0,0,0,0,0,117,2,0,0, + 112,35,85,2,36,0,114,53,0,0,0,41,4,114,47,1, + 0,0,114,17,1,0,0,114,36,0,0,0,114,89,0,0, + 0,114,87,1,0,0,115,4,0,0,0,32,32,32,32,114, + 63,0,0,0,114,17,1,0,0,218,22,83,116,114,101,97, + 109,82,101,99,111,100,101,114,46,114,101,97,100,108,105,110, + 101,53,3,0,0,115,71,0,0,0,128,0,224,11,15,137, + 60,216,19,23,151,59,145,59,215,19,39,209,19,39,211,19, + 41,137,68,224,19,23,151,59,145,59,215,19,39,209,19,39, + 168,4,211,19,45,136,68,216,29,33,159,91,153,91,168,20, + 175,123,169,123,211,29,59,209,8,26,136,4,216,15,19,136, + 11,114,65,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,142,0,0,0, + 149,0,85,0,82,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,110,2,85,0,82,5,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,88,32,82,6, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,2,171,1,0,0,0,0,0,0,83,0, - 114,132,0,0,0,41,5,114,147,0,0,0,114,37,0,0, - 0,114,80,0,0,0,114,245,0,0,0,114,144,0,0,0, - 41,4,114,61,0,0,0,114,149,0,0,0,114,114,0,0, - 0,114,21,1,0,0,115,4,0,0,0,32,32,32,32,114, - 62,0,0,0,114,150,0,0,0,122,24,83,116,114,101,97, - 109,82,101,99,111,100,101,114,46,119,114,105,116,101,108,105, - 110,101,115,80,3,0,0,115,61,0,0,0,128,0,224,15, - 18,143,120,137,120,152,4,139,126,136,4,216,29,33,159,91, - 153,91,168,20,168,116,175,123,169,123,211,29,59,209,8,26, - 136,4,136,108,216,15,19,143,123,137,123,215,15,32,209,15, - 32,160,20,211,15,38,208,8,38,114,63,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,243,108,0,0,0,151,0,124,0,106,0,0,0, + 0,0,53,2,0,0,0,0,0,0,117,2,0,0,112,35, + 85,2,82,9,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,1,83,2,57,1,36,0,41,3, + 78,84,114,242,0,0,0,41,5,114,47,1,0,0,114,246, + 0,0,0,114,36,0,0,0,114,89,0,0,0,114,249,0, + 0,0,41,4,114,62,0,0,0,114,20,1,0,0,114,134, + 0,0,0,114,88,1,0,0,115,4,0,0,0,32,32,32, + 32,114,63,0,0,0,114,21,1,0,0,218,23,83,116,114, + 101,97,109,82,101,99,111,100,101,114,46,114,101,97,100,108, + 105,110,101,115,62,3,0,0,115,58,0,0,0,128,0,224, + 15,19,143,123,137,123,215,15,31,209,15,31,211,15,33,136, + 4,216,29,33,159,91,153,91,168,20,175,123,169,123,211,29, + 59,209,8,26,136,4,216,15,19,143,127,137,127,168,4,136, + 127,208,15,45,208,8,45,114,65,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,243,106,0,0,0,149,0,91,1,0,0,0,0,0,0, + 0,0,85,0,82,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 110,1,85,0,82,5,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,88,16,82,6,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,2, + 0,0,0,0,0,0,117,2,0,0,112,18,85,1,36,0, + 114,28,1,0,0,41,4,114,59,1,0,0,114,47,1,0, + 0,114,36,0,0,0,114,89,0,0,0,41,3,114,62,0, + 0,0,114,134,0,0,0,114,88,1,0,0,115,3,0,0, + 0,32,32,32,114,63,0,0,0,114,30,1,0,0,218,22, + 83,116,114,101,97,109,82,101,99,111,100,101,114,46,95,95, + 110,101,120,116,95,95,68,3,0,0,115,44,0,0,0,128, + 0,244,6,0,16,20,144,68,151,75,145,75,211,15,32,136, + 4,216,29,33,159,91,153,91,168,20,175,123,169,123,211,29, + 59,209,8,26,136,4,216,15,19,136,11,114,65,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,3,0,0,0,243,6,0,0,0,149,0,85,0,36,0, + 114,53,0,0,0,114,81,0,0,0,114,71,0,0,0,115, + 1,0,0,0,32,114,63,0,0,0,114,33,1,0,0,218, + 22,83,116,114,101,97,109,82,101,99,111,100,101,114,46,95, + 95,105,116,101,114,95,95,75,3,0,0,114,210,0,0,0, + 114,65,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,4,0,0,0,3,0,0,0,243,114,0,0,0,149, + 0,85,0,82,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,88,16,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,2,0, + 0,0,0,0,0,117,2,0,0,112,18,85,0,82,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,1,0,124,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,106,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, - 1,0,121,0,114,52,0,0,0,114,2,1,0,0,114,69, - 0,0,0,115,1,0,0,0,32,114,62,0,0,0,114,95, - 0,0,0,122,19,83,116,114,101,97,109,82,101,99,111,100, - 101,114,46,114,101,115,101,116,86,3,0,0,114,3,1,0, - 0,114,63,0,0,0,99,3,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,116,0,0,0, - 151,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,1,124,2, - 171,2,0,0,0,0,0,0,1,0,124,0,106,4,0,0, + 0,82,7,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,1,53,1,0,0,0,0,0,0,36, + 0,114,53,0,0,0,41,4,114,37,0,0,0,114,89,0, + 0,0,114,48,1,0,0,114,181,0,0,0,41,3,114,62, + 0,0,0,114,134,0,0,0,218,12,98,121,116,101,115,100, + 101,99,111,100,101,100,115,3,0,0,0,32,32,32,114,63, + 0,0,0,114,181,0,0,0,218,19,83,116,114,101,97,109, + 82,101,99,111,100,101,114,46,119,114,105,116,101,78,3,0, + 0,115,44,0,0,0,128,0,224,29,33,159,91,153,91,168, + 20,175,123,169,123,211,29,59,209,8,26,136,4,216,15,19, + 143,123,137,123,215,15,32,209,15,32,160,20,211,15,38,208, + 8,38,114,65,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,148,0,0, + 0,149,0,83,1,82,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,1,53,1,0,0,0, + 0,0,0,110,2,85,0,82,3,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,88,32,82,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,124,2,171,2,0,0,0,0,0,0, - 1,0,121,0,114,52,0,0,0,41,3,114,244,0,0,0, - 114,154,0,0,0,114,245,0,0,0,114,155,0,0,0,115, - 3,0,0,0,32,32,32,114,62,0,0,0,114,154,0,0, - 0,122,18,83,116,114,101,97,109,82,101,99,111,100,101,114, - 46,115,101,101,107,91,3,0,0,115,44,0,0,0,128,0, - 240,6,0,9,13,143,11,137,11,215,8,24,209,8,24,152, - 22,160,22,212,8,40,216,8,12,143,11,137,11,215,8,24, - 209,8,24,152,22,160,22,213,8,40,114,63,0,0,0,99, - 3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,40,0,0,0,151,0,2,0,124,2,124, - 0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,1,171,2,0,0,0,0,0,0,83, - 0,114,159,0,0,0,114,160,0,0,0,114,161,0,0,0, - 115,3,0,0,0,32,32,32,114,62,0,0,0,114,163,0, - 0,0,122,25,83,116,114,101,97,109,82,101,99,111,100,101, - 114,46,95,95,103,101,116,97,116,116,114,95,95,97,3,0, - 0,114,164,0,0,0,114,63,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, - 243,6,0,0,0,151,0,124,0,83,0,114,52,0,0,0, - 114,73,0,0,0,114,69,0,0,0,115,1,0,0,0,32, - 114,62,0,0,0,114,166,0,0,0,122,23,83,116,114,101, - 97,109,82,101,99,111,100,101,114,46,95,95,101,110,116,101, - 114,95,95,104,3,0,0,114,167,0,0,0,114,63,0,0, - 0,99,4,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,3,0,0,0,243,56,0,0,0,151,0,124,0,106, + 0,53,2,0,0,0,0,0,0,117,2,0,0,112,35,85, + 0,82,6,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,82,9,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,2,53,1,0,0,0, + 0,0,0,36,0,114,162,0,0,0,41,5,114,185,0,0, + 0,114,37,0,0,0,114,89,0,0,0,114,48,1,0,0, + 114,181,0,0,0,41,4,114,62,0,0,0,114,187,0,0, + 0,114,134,0,0,0,114,99,1,0,0,115,4,0,0,0, + 32,32,32,32,114,63,0,0,0,114,188,0,0,0,218,24, + 83,116,114,101,97,109,82,101,99,111,100,101,114,46,119,114, + 105,116,101,108,105,110,101,115,83,3,0,0,115,57,0,0, + 0,128,0,224,15,18,143,120,137,120,152,4,139,126,136,4, + 216,29,33,159,91,153,91,168,20,175,123,169,123,211,29,59, + 209,8,26,136,4,216,15,19,143,123,137,123,215,15,32,209, + 15,32,160,20,211,15,38,208,8,38,114,65,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 3,0,0,0,243,108,0,0,0,149,0,85,0,82,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,3,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,1, - 0,121,0,114,52,0,0,0,114,169,0,0,0,114,171,0, - 0,0,115,4,0,0,0,32,32,32,32,114,62,0,0,0, - 114,175,0,0,0,122,22,83,116,114,101,97,109,82,101,99, - 111,100,101,114,46,95,95,101,120,105,116,95,95,107,3,0, - 0,114,176,0,0,0,114,63,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,70,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,100,1,124,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,122,6,0, - 0,171,1,0,0,0,0,0,0,130,1,114,178,0,0,0, - 114,179,0,0,0,114,181,0,0,0,115,2,0,0,0,32, - 32,114,62,0,0,0,114,183,0,0,0,122,27,83,116,114, - 101,97,109,82,101,99,111,100,101,114,46,95,95,114,101,100, - 117,99,101,95,101,120,95,95,110,3,0,0,114,184,0,0, - 0,114,63,0,0,0,114,82,0,0,0,114,9,1,0,0, - 114,52,0,0,0,114,185,0,0,0,41,21,114,71,0,0, - 0,114,66,0,0,0,114,67,0,0,0,114,72,0,0,0, - 218,13,100,97,116,97,95,101,110,99,111,100,105,110,103,218, - 13,102,105,108,101,95,101,110,99,111,100,105,110,103,114,89, - 0,0,0,114,199,0,0,0,114,225,0,0,0,114,228,0, - 0,0,114,234,0,0,0,114,236,0,0,0,114,144,0,0, - 0,114,150,0,0,0,114,95,0,0,0,114,154,0,0,0, - 114,162,0,0,0,114,163,0,0,0,114,166,0,0,0,114, - 175,0,0,0,114,183,0,0,0,114,73,0,0,0,114,63, - 0,0,0,114,62,0,0,0,114,29,0,0,0,114,29,0, - 0,0,252,2,0,0,115,100,0,0,0,132,0,241,4,13, - 5,8,240,30,0,21,30,128,77,216,20,29,128,77,240,6, - 0,25,33,243,3,26,5,29,243,56,4,5,20,243,12,7, - 5,20,243,18,4,5,46,242,12,5,5,20,242,14,1,5, - 20,242,6,3,5,39,242,10,4,5,39,242,12,3,5,28, - 243,10,4,5,41,240,14,0,29,36,243,3,5,5,42,242, - 14,1,5,20,242,6,1,5,28,243,6,1,5,72,1,114, - 63,0,0,0,114,29,0,0,0,114,83,0,0,0,99,5, - 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,3, - 0,0,0,243,232,0,0,0,151,0,124,2,129,9,100,1, - 124,1,118,1,114,5,124,1,100,1,122,0,0,0,125,1, - 116,1,0,0,0,0,0,0,0,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 124,1,124,4,171,3,0,0,0,0,0,0,125,5,124,2, - 128,2,124,5,83,0,9,0,116,5,0,0,0,0,0,0, - 0,0,124,2,171,1,0,0,0,0,0,0,125,6,116,7, - 0,0,0,0,0,0,0,0,124,5,124,6,106,8,0,0, + 0,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,32,0,85, + 0,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,82,3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0, + 0,32,0,103,0,114,53,0,0,0,114,68,1,0,0,114, + 71,0,0,0,115,1,0,0,0,32,114,63,0,0,0,114, + 109,0,0,0,218,19,83,116,114,101,97,109,82,101,99,111, + 100,101,114,46,114,101,115,101,116,89,3,0,0,114,70,1, + 0,0,114,65,0,0,0,99,3,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,112,0,0, + 0,149,0,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,88,18,53, + 2,0,0,0,0,0,0,32,0,85,0,82,4,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82, + 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,88,18,53,2,0,0,0,0,0,0,32,0,103, + 0,114,53,0,0,0,41,3,114,47,1,0,0,114,194,0, + 0,0,114,48,1,0,0,114,195,0,0,0,115,3,0,0, + 0,32,32,32,114,63,0,0,0,114,194,0,0,0,218,18, + 83,116,114,101,97,109,82,101,99,111,100,101,114,46,115,101, + 101,107,94,3,0,0,115,40,0,0,0,128,0,240,6,0, + 9,13,143,11,137,11,215,8,24,209,8,24,152,22,212,8, + 40,216,8,12,143,11,137,11,215,8,24,209,8,24,152,22, + 213,8,40,114,65,0,0,0,99,3,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,243,40,0, + 0,0,149,0,85,2,34,0,85,0,82,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,1, + 53,2,0,0,0,0,0,0,36,0,114,200,0,0,0,114, + 201,0,0,0,114,202,0,0,0,115,3,0,0,0,32,32, + 32,114,63,0,0,0,114,204,0,0,0,218,25,83,116,114, + 101,97,109,82,101,99,111,100,101,114,46,95,95,103,101,116, + 97,116,116,114,95,95,100,3,0,0,114,206,0,0,0,114, + 65,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,243,6,0,0,0,149,0, + 85,0,36,0,114,53,0,0,0,114,81,0,0,0,114,71, + 0,0,0,115,1,0,0,0,32,114,63,0,0,0,114,208, + 0,0,0,218,23,83,116,114,101,97,109,82,101,99,111,100, + 101,114,46,95,95,101,110,116,101,114,95,95,107,3,0,0, + 114,210,0,0,0,114,65,0,0,0,99,4,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,243, + 56,0,0,0,149,0,85,0,82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,82,3,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,6,106,10,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,3,171,4,0,0,0,0,0,0, - 125,7,124,2,124,7,95,6,0,0,0,0,0,0,0,0, - 124,7,83,0,35,0,1,0,124,5,106,15,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,1,0,130,0,120,3,89,0,119,1, - 41,2,97,155,4,0,0,32,79,112,101,110,32,97,110,32, - 101,110,99,111,100,101,100,32,102,105,108,101,32,117,115,105, - 110,103,32,116,104,101,32,103,105,118,101,110,32,109,111,100, - 101,32,97,110,100,32,114,101,116,117,114,110,10,32,32,32, - 32,32,32,32,32,97,32,119,114,97,112,112,101,100,32,118, - 101,114,115,105,111,110,32,112,114,111,118,105,100,105,110,103, - 32,116,114,97,110,115,112,97,114,101,110,116,32,101,110,99, - 111,100,105,110,103,47,100,101,99,111,100,105,110,103,46,10, - 10,32,32,32,32,32,32,32,32,78,111,116,101,58,32,84, - 104,101,32,119,114,97,112,112,101,100,32,118,101,114,115,105, - 111,110,32,119,105,108,108,32,111,110,108,121,32,97,99,99, - 101,112,116,32,116,104,101,32,111,98,106,101,99,116,32,102, - 111,114,109,97,116,10,32,32,32,32,32,32,32,32,100,101, - 102,105,110,101,100,32,98,121,32,116,104,101,32,99,111,100, - 101,99,115,44,32,105,46,101,46,32,85,110,105,99,111,100, - 101,32,111,98,106,101,99,116,115,32,102,111,114,32,109,111, - 115,116,32,98,117,105,108,116,105,110,10,32,32,32,32,32, - 32,32,32,99,111,100,101,99,115,46,32,79,117,116,112,117, - 116,32,105,115,32,97,108,115,111,32,99,111,100,101,99,32, - 100,101,112,101,110,100,101,110,116,32,97,110,100,32,119,105, - 108,108,32,117,115,117,97,108,108,121,32,98,101,10,32,32, - 32,32,32,32,32,32,85,110,105,99,111,100,101,32,97,115, - 32,119,101,108,108,46,10,10,32,32,32,32,32,32,32,32, - 73,102,32,101,110,99,111,100,105,110,103,32,105,115,32,110, - 111,116,32,78,111,110,101,44,32,116,104,101,110,32,116,104, - 101,10,32,32,32,32,32,32,32,32,117,110,100,101,114,108, - 121,105,110,103,32,101,110,99,111,100,101,100,32,102,105,108, - 101,115,32,97,114,101,32,97,108,119,97,121,115,32,111,112, - 101,110,101,100,32,105,110,32,98,105,110,97,114,121,32,109, - 111,100,101,46,10,32,32,32,32,32,32,32,32,84,104,101, - 32,100,101,102,97,117,108,116,32,102,105,108,101,32,109,111, - 100,101,32,105,115,32,39,114,39,44,32,109,101,97,110,105, - 110,103,32,116,111,32,111,112,101,110,32,116,104,101,32,102, - 105,108,101,32,105,110,32,114,101,97,100,32,109,111,100,101, - 46,10,10,32,32,32,32,32,32,32,32,101,110,99,111,100, - 105,110,103,32,115,112,101,99,105,102,105,101,115,32,116,104, - 101,32,101,110,99,111,100,105,110,103,32,119,104,105,99,104, - 32,105,115,32,116,111,32,98,101,32,117,115,101,100,32,102, - 111,114,32,116,104,101,10,32,32,32,32,32,32,32,32,102, - 105,108,101,46,10,10,32,32,32,32,32,32,32,32,101,114, - 114,111,114,115,32,109,97,121,32,98,101,32,103,105,118,101, - 110,32,116,111,32,100,101,102,105,110,101,32,116,104,101,32, - 101,114,114,111,114,32,104,97,110,100,108,105,110,103,46,32, - 73,116,32,100,101,102,97,117,108,116,115,10,32,32,32,32, - 32,32,32,32,116,111,32,39,115,116,114,105,99,116,39,32, - 119,104,105,99,104,32,99,97,117,115,101,115,32,86,97,108, - 117,101,69,114,114,111,114,115,32,116,111,32,98,101,32,114, - 97,105,115,101,100,32,105,110,32,99,97,115,101,32,97,110, - 10,32,32,32,32,32,32,32,32,101,110,99,111,100,105,110, - 103,32,101,114,114,111,114,32,111,99,99,117,114,115,46,10, - 10,32,32,32,32,32,32,32,32,98,117,102,102,101,114,105, - 110,103,32,104,97,115,32,116,104,101,32,115,97,109,101,32, - 109,101,97,110,105,110,103,32,97,115,32,102,111,114,32,116, - 104,101,32,98,117,105,108,116,105,110,32,111,112,101,110,40, - 41,32,65,80,73,46,10,32,32,32,32,32,32,32,32,73, - 116,32,100,101,102,97,117,108,116,115,32,116,111,32,45,49, - 32,119,104,105,99,104,32,109,101,97,110,115,32,116,104,97, - 116,32,116,104,101,32,100,101,102,97,117,108,116,32,98,117, - 102,102,101,114,32,115,105,122,101,32,119,105,108,108,10,32, - 32,32,32,32,32,32,32,98,101,32,117,115,101,100,46,10, - 10,32,32,32,32,32,32,32,32,84,104,101,32,114,101,116, - 117,114,110,101,100,32,119,114,97,112,112,101,100,32,102,105, - 108,101,32,111,98,106,101,99,116,32,112,114,111,118,105,100, - 101,115,32,97,110,32,101,120,116,114,97,32,97,116,116,114, - 105,98,117,116,101,10,32,32,32,32,32,32,32,32,46,101, - 110,99,111,100,105,110,103,32,119,104,105,99,104,32,97,108, - 108,111,119,115,32,113,117,101,114,121,105,110,103,32,116,104, - 101,32,117,115,101,100,32,101,110,99,111,100,105,110,103,46, - 32,84,104,105,115,10,32,32,32,32,32,32,32,32,97,116, - 116,114,105,98,117,116,101,32,105,115,32,111,110,108,121,32, - 97,118,97,105,108,97,98,108,101,32,105,102,32,97,110,32, - 101,110,99,111,100,105,110,103,32,119,97,115,32,115,112,101, - 99,105,102,105,101,100,32,97,115,10,32,32,32,32,32,32, - 32,32,112,97,114,97,109,101,116,101,114,46,10,10,32,32, - 32,32,218,1,98,41,8,218,8,98,117,105,108,116,105,110, - 115,114,6,0,0,0,114,5,0,0,0,114,28,0,0,0, - 114,59,0,0,0,114,58,0,0,0,114,10,1,0,0,114, - 170,0,0,0,41,8,218,8,102,105,108,101,110,97,109,101, - 218,4,109,111,100,101,114,10,1,0,0,114,80,0,0,0, - 218,9,98,117,102,102,101,114,105,110,103,218,4,102,105,108, - 101,218,4,105,110,102,111,218,3,115,114,119,115,8,0,0, - 0,32,32,32,32,32,32,32,32,114,62,0,0,0,114,6, - 0,0,0,114,6,0,0,0,115,3,0,0,115,129,0,0, - 0,128,0,240,62,0,8,16,208,7,27,216,7,10,144,36, - 129,127,224,15,19,144,99,137,122,136,4,220,11,19,143,61, - 137,61,152,24,160,52,168,25,211,11,51,128,68,216,7,15, - 208,7,23,216,15,19,136,11,240,4,8,5,14,220,15,21, - 144,104,211,15,31,136,4,220,14,32,160,20,160,116,215,39, - 56,209,39,56,184,36,215,58,75,209,58,75,200,86,211,14, - 84,136,3,224,23,31,136,3,140,12,216,15,18,136,10,248, - 240,2,2,5,14,216,8,12,143,10,137,10,140,12,216,8, - 13,250,115,11,0,0,0,168,53,65,30,0,193,30,19,65, - 49,3,99,4,0,0,0,0,0,0,0,0,0,0,0,8, - 0,0,0,3,0,0,0,243,198,0,0,0,151,0,124,2, - 128,2,124,1,125,2,116,1,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,125,4,116,1,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 125,5,116,3,0,0,0,0,0,0,0,0,124,0,124,4, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,4,106,6,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,5,106,8,0,0, + 53,0,0,0,0,0,0,0,32,0,103,0,114,53,0,0, + 0,114,212,0,0,0,114,214,0,0,0,115,4,0,0,0, + 32,32,32,32,114,63,0,0,0,114,218,0,0,0,218,22, + 83,116,114,101,97,109,82,101,99,111,100,101,114,46,95,95, + 101,120,105,116,95,95,110,3,0,0,114,220,0,0,0,114, + 65,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,243,70,0,0,0,149,0, + 91,1,0,0,0,0,0,0,0,0,83,1,85,0,82,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,5,106,10,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,3,171,6,0,0,0,0,0,0, - 125,6,124,1,124,6,95,6,0,0,0,0,0,0,0,0, - 124,2,124,6,95,7,0,0,0,0,0,0,0,0,124,6, - 83,0,41,1,97,218,3,0,0,32,82,101,116,117,114,110, - 32,97,32,119,114,97,112,112,101,100,32,118,101,114,115,105, - 111,110,32,111,102,32,102,105,108,101,32,119,104,105,99,104, - 32,112,114,111,118,105,100,101,115,32,116,114,97,110,115,112, - 97,114,101,110,116,10,32,32,32,32,32,32,32,32,101,110, - 99,111,100,105,110,103,32,116,114,97,110,115,108,97,116,105, - 111,110,46,10,10,32,32,32,32,32,32,32,32,68,97,116, - 97,32,119,114,105,116,116,101,110,32,116,111,32,116,104,101, - 32,119,114,97,112,112,101,100,32,102,105,108,101,32,105,115, - 32,100,101,99,111,100,101,100,32,97,99,99,111,114,100,105, - 110,103,10,32,32,32,32,32,32,32,32,116,111,32,116,104, - 101,32,103,105,118,101,110,32,100,97,116,97,95,101,110,99, - 111,100,105,110,103,32,97,110,100,32,116,104,101,110,32,101, - 110,99,111,100,101,100,32,116,111,32,116,104,101,32,117,110, - 100,101,114,108,121,105,110,103,10,32,32,32,32,32,32,32, - 32,102,105,108,101,32,117,115,105,110,103,32,102,105,108,101, - 95,101,110,99,111,100,105,110,103,46,32,84,104,101,32,105, - 110,116,101,114,109,101,100,105,97,116,101,32,100,97,116,97, - 32,116,121,112,101,10,32,32,32,32,32,32,32,32,119,105, - 108,108,32,117,115,117,97,108,108,121,32,98,101,32,85,110, - 105,99,111,100,101,32,98,117,116,32,100,101,112,101,110,100, - 115,32,111,110,32,116,104,101,32,115,112,101,99,105,102,105, - 101,100,32,99,111,100,101,99,115,46,10,10,32,32,32,32, - 32,32,32,32,66,121,116,101,115,32,114,101,97,100,32,102, - 114,111,109,32,116,104,101,32,102,105,108,101,32,97,114,101, - 32,100,101,99,111,100,101,100,32,117,115,105,110,103,32,102, - 105,108,101,95,101,110,99,111,100,105,110,103,32,97,110,100, - 32,116,104,101,110,10,32,32,32,32,32,32,32,32,112,97, - 115,115,101,100,32,98,97,99,107,32,116,111,32,116,104,101, - 32,99,97,108,108,101,114,32,101,110,99,111,100,101,100,32, - 117,115,105,110,103,32,100,97,116,97,95,101,110,99,111,100, - 105,110,103,46,10,10,32,32,32,32,32,32,32,32,73,102, - 32,102,105,108,101,95,101,110,99,111,100,105,110,103,32,105, - 115,32,110,111,116,32,103,105,118,101,110,44,32,105,116,32, - 100,101,102,97,117,108,116,115,32,116,111,32,100,97,116,97, - 95,101,110,99,111,100,105,110,103,46,10,10,32,32,32,32, - 32,32,32,32,101,114,114,111,114,115,32,109,97,121,32,98, - 101,32,103,105,118,101,110,32,116,111,32,100,101,102,105,110, - 101,32,116,104,101,32,101,114,114,111,114,32,104,97,110,100, - 108,105,110,103,46,32,73,116,32,100,101,102,97,117,108,116, - 115,10,32,32,32,32,32,32,32,32,116,111,32,39,115,116, + 0,0,82,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,45,6,0,0,53,1,0,0,0,0, + 0,0,101,1,114,222,0,0,0,114,223,0,0,0,114,225, + 0,0,0,115,2,0,0,0,32,32,114,63,0,0,0,114, + 227,0,0,0,218,27,83,116,114,101,97,109,82,101,99,111, + 100,101,114,46,95,95,114,101,100,117,99,101,95,101,120,95, + 95,113,3,0,0,114,229,0,0,0,114,65,0,0,0,41, + 6,114,37,0,0,0,114,36,0,0,0,114,89,0,0,0, + 114,47,1,0,0,114,177,0,0,0,114,48,1,0,0,114, + 93,0,0,0,114,81,1,0,0,114,53,0,0,0,114,230, + 0,0,0,41,23,114,77,0,0,0,114,68,0,0,0,114, + 69,0,0,0,114,78,0,0,0,114,79,0,0,0,218,13, + 100,97,116,97,95,101,110,99,111,100,105,110,103,218,13,102, + 105,108,101,95,101,110,99,111,100,105,110,103,114,101,0,0, + 0,114,246,0,0,0,114,17,1,0,0,114,21,1,0,0, + 114,30,1,0,0,114,33,1,0,0,114,181,0,0,0,114, + 188,0,0,0,114,109,0,0,0,114,194,0,0,0,114,203, + 0,0,0,114,204,0,0,0,114,208,0,0,0,114,218,0, + 0,0,114,227,0,0,0,114,80,0,0,0,114,81,0,0, + 0,114,65,0,0,0,114,63,0,0,0,114,29,0,0,0, + 114,29,0,0,0,255,2,0,0,115,100,0,0,0,134,0, + 241,4,13,5,8,240,30,0,21,30,128,77,216,20,29,128, + 77,240,6,0,25,33,244,3,26,5,29,244,56,4,5,20, + 244,12,7,5,20,244,18,4,5,46,242,12,5,5,20,242, + 14,1,5,20,242,6,3,5,39,242,10,4,5,39,242,12, + 3,5,28,244,10,4,5,41,240,14,0,29,36,244,3,5, + 5,42,242,14,1,5,20,242,6,1,5,28,245,6,1,5, + 72,1,114,65,0,0,0,114,29,0,0,0,114,94,0,0, + 0,99,5,0,0,0,0,0,0,0,0,0,0,0,6,0, + 0,0,3,0,0,0,243,236,0,0,0,149,0,85,2,98, + 11,0,0,83,1,85,1,59,1,0,0,97,5,0,0,85, + 1,83,1,45,0,0,0,110,1,91,0,0,0,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,88,1,85,4,53,3,0, + 0,0,0,0,0,110,5,85,2,99,2,0,0,85,5,36, + 0,30,0,91,5,0,0,0,0,0,0,0,0,85,2,53, + 1,0,0,0,0,0,0,110,6,91,7,0,0,0,0,0, + 0,0,0,88,86,82,8,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,6,82,10,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 3,53,4,0,0,0,0,0,0,110,7,88,39,108,6,0, + 0,0,0,0,0,0,0,85,7,36,0,33,0,32,0,85, + 5,82,15,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,32,0,101, + 0,61,3,31,0,102,1,41,2,97,246,3,0,0,79,112, + 101,110,32,97,110,32,101,110,99,111,100,101,100,32,102,105, + 108,101,32,117,115,105,110,103,32,116,104,101,32,103,105,118, + 101,110,32,109,111,100,101,32,97,110,100,32,114,101,116,117, + 114,110,10,97,32,119,114,97,112,112,101,100,32,118,101,114, + 115,105,111,110,32,112,114,111,118,105,100,105,110,103,32,116, + 114,97,110,115,112,97,114,101,110,116,32,101,110,99,111,100, + 105,110,103,47,100,101,99,111,100,105,110,103,46,10,10,78, + 111,116,101,58,32,84,104,101,32,119,114,97,112,112,101,100, + 32,118,101,114,115,105,111,110,32,119,105,108,108,32,111,110, + 108,121,32,97,99,99,101,112,116,32,116,104,101,32,111,98, + 106,101,99,116,32,102,111,114,109,97,116,10,100,101,102,105, + 110,101,100,32,98,121,32,116,104,101,32,99,111,100,101,99, + 115,44,32,105,46,101,46,32,85,110,105,99,111,100,101,32, + 111,98,106,101,99,116,115,32,102,111,114,32,109,111,115,116, + 32,98,117,105,108,116,105,110,10,99,111,100,101,99,115,46, + 32,79,117,116,112,117,116,32,105,115,32,97,108,115,111,32, + 99,111,100,101,99,32,100,101,112,101,110,100,101,110,116,32, + 97,110,100,32,119,105,108,108,32,117,115,117,97,108,108,121, + 32,98,101,10,85,110,105,99,111,100,101,32,97,115,32,119, + 101,108,108,46,10,10,73,102,32,101,110,99,111,100,105,110, + 103,32,105,115,32,110,111,116,32,78,111,110,101,44,32,116, + 104,101,110,32,116,104,101,10,117,110,100,101,114,108,121,105, + 110,103,32,101,110,99,111,100,101,100,32,102,105,108,101,115, + 32,97,114,101,32,97,108,119,97,121,115,32,111,112,101,110, + 101,100,32,105,110,32,98,105,110,97,114,121,32,109,111,100, + 101,46,10,84,104,101,32,100,101,102,97,117,108,116,32,102, + 105,108,101,32,109,111,100,101,32,105,115,32,39,114,39,44, + 32,109,101,97,110,105,110,103,32,116,111,32,111,112,101,110, + 32,116,104,101,32,102,105,108,101,32,105,110,32,114,101,97, + 100,32,109,111,100,101,46,10,10,101,110,99,111,100,105,110, + 103,32,115,112,101,99,105,102,105,101,115,32,116,104,101,32, + 101,110,99,111,100,105,110,103,32,119,104,105,99,104,32,105, + 115,32,116,111,32,98,101,32,117,115,101,100,32,102,111,114, + 32,116,104,101,10,102,105,108,101,46,10,10,101,114,114,111, + 114,115,32,109,97,121,32,98,101,32,103,105,118,101,110,32, + 116,111,32,100,101,102,105,110,101,32,116,104,101,32,101,114, + 114,111,114,32,104,97,110,100,108,105,110,103,46,32,73,116, + 32,100,101,102,97,117,108,116,115,10,116,111,32,39,115,116, 114,105,99,116,39,32,119,104,105,99,104,32,99,97,117,115, 101,115,32,86,97,108,117,101,69,114,114,111,114,115,32,116, 111,32,98,101,32,114,97,105,115,101,100,32,105,110,32,99, - 97,115,101,32,97,110,10,32,32,32,32,32,32,32,32,101, - 110,99,111,100,105,110,103,32,101,114,114,111,114,32,111,99, - 99,117,114,115,46,10,10,32,32,32,32,32,32,32,32,84, - 104,101,32,114,101,116,117,114,110,101,100,32,119,114,97,112, - 112,101,100,32,102,105,108,101,32,111,98,106,101,99,116,32, - 112,114,111,118,105,100,101,115,32,116,119,111,32,101,120,116, - 114,97,32,97,116,116,114,105,98,117,116,101,115,10,32,32, - 32,32,32,32,32,32,46,100,97,116,97,95,101,110,99,111, - 100,105,110,103,32,97,110,100,32,46,102,105,108,101,95,101, - 110,99,111,100,105,110,103,32,119,104,105,99,104,32,114,101, - 102,108,101,99,116,32,116,104,101,32,103,105,118,101,110,10, - 32,32,32,32,32,32,32,32,112,97,114,97,109,101,116,101, - 114,115,32,111,102,32,116,104,101,32,115,97,109,101,32,110, - 97,109,101,46,32,84,104,101,32,97,116,116,114,105,98,117, - 116,101,115,32,99,97,110,32,98,101,32,117,115,101,100,32, - 102,111,114,10,32,32,32,32,32,32,32,32,105,110,116,114, - 111,115,112,101,99,116,105,111,110,32,98,121,32,80,121,116, - 104,111,110,32,112,114,111,103,114,97,109,115,46,10,10,32, - 32,32,32,41,8,114,5,0,0,0,114,29,0,0,0,114, - 36,0,0,0,114,37,0,0,0,114,59,0,0,0,114,58, - 0,0,0,114,29,1,0,0,114,30,1,0,0,41,7,114, - 37,1,0,0,114,29,1,0,0,114,30,1,0,0,114,80, - 0,0,0,218,9,100,97,116,97,95,105,110,102,111,218,9, - 102,105,108,101,95,105,110,102,111,218,2,115,114,115,7,0, - 0,0,32,32,32,32,32,32,32,114,62,0,0,0,114,7, - 0,0,0,114,7,0,0,0,164,3,0,0,115,106,0,0, - 0,128,0,240,50,0,8,21,208,7,28,216,24,37,136,13, - 220,16,22,144,125,211,16,37,128,73,220,16,22,144,125,211, - 16,37,128,73,220,9,22,144,116,152,89,215,29,45,209,29, - 45,168,121,215,47,63,209,47,63,216,23,32,215,23,45,209, - 23,45,168,121,215,47,69,209,47,69,192,118,243,3,1,10, - 79,1,128,66,240,6,0,24,37,128,66,212,4,20,216,23, - 36,128,66,212,4,20,216,11,13,128,73,114,63,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,3,0,0,0,243,44,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,83,0,41,1,122,158,32,76,111,111,107,117, - 112,32,117,112,32,116,104,101,32,99,111,100,101,99,32,102, - 111,114,32,116,104,101,32,103,105,118,101,110,32,101,110,99, - 111,100,105,110,103,32,97,110,100,32,114,101,116,117,114,110, - 10,32,32,32,32,32,32,32,32,105,116,115,32,101,110,99, - 111,100,101,114,32,102,117,110,99,116,105,111,110,46,10,10, - 32,32,32,32,32,32,32,32,82,97,105,115,101,115,32,97, - 32,76,111,111,107,117,112,69,114,114,111,114,32,105,110,32, - 99,97,115,101,32,116,104,101,32,101,110,99,111,100,105,110, - 103,32,99,97,110,110,111,116,32,98,101,32,102,111,117,110, - 100,46,10,10,32,32,32,32,41,2,114,5,0,0,0,114, - 36,0,0,0,169,1,114,10,1,0,0,115,1,0,0,0, - 32,114,62,0,0,0,114,30,0,0,0,114,30,0,0,0, - 202,3,0,0,243,21,0,0,0,128,0,244,16,0,12,18, - 144,40,211,11,27,215,11,34,209,11,34,208,4,34,114,63, + 97,115,101,32,97,110,10,101,110,99,111,100,105,110,103,32, + 101,114,114,111,114,32,111,99,99,117,114,115,46,10,10,98, + 117,102,102,101,114,105,110,103,32,104,97,115,32,116,104,101, + 32,115,97,109,101,32,109,101,97,110,105,110,103,32,97,115, + 32,102,111,114,32,116,104,101,32,98,117,105,108,116,105,110, + 32,111,112,101,110,40,41,32,65,80,73,46,10,73,116,32, + 100,101,102,97,117,108,116,115,32,116,111,32,45,49,32,119, + 104,105,99,104,32,109,101,97,110,115,32,116,104,97,116,32, + 116,104,101,32,100,101,102,97,117,108,116,32,98,117,102,102, + 101,114,32,115,105,122,101,32,119,105,108,108,10,98,101,32, + 117,115,101,100,46,10,10,84,104,101,32,114,101,116,117,114, + 110,101,100,32,119,114,97,112,112,101,100,32,102,105,108,101, + 32,111,98,106,101,99,116,32,112,114,111,118,105,100,101,115, + 32,97,110,32,101,120,116,114,97,32,97,116,116,114,105,98, + 117,116,101,10,46,101,110,99,111,100,105,110,103,32,119,104, + 105,99,104,32,97,108,108,111,119,115,32,113,117,101,114,121, + 105,110,103,32,116,104,101,32,117,115,101,100,32,101,110,99, + 111,100,105,110,103,46,32,84,104,105,115,10,97,116,116,114, + 105,98,117,116,101,32,105,115,32,111,110,108,121,32,97,118, + 97,105,108,97,98,108,101,32,105,102,32,97,110,32,101,110, + 99,111,100,105,110,103,32,119,97,115,32,115,112,101,99,105, + 102,105,101,100,32,97,115,10,112,97,114,97,109,101,116,101, + 114,46,10,10,218,1,98,41,8,218,8,98,117,105,108,116, + 105,110,115,114,6,0,0,0,114,5,0,0,0,114,28,0, + 0,0,114,60,0,0,0,114,59,0,0,0,114,82,1,0, + 0,114,213,0,0,0,41,8,218,8,102,105,108,101,110,97, + 109,101,218,4,109,111,100,101,114,82,1,0,0,114,89,0, + 0,0,218,9,98,117,102,102,101,114,105,110,103,218,4,102, + 105,108,101,218,4,105,110,102,111,218,3,115,114,119,115,8, + 0,0,0,32,32,32,32,32,32,32,32,114,63,0,0,0, + 114,6,0,0,0,114,6,0,0,0,118,3,0,0,115,123, + 0,0,0,128,0,240,62,0,8,16,209,7,27,216,7,10, + 144,36,131,127,224,15,19,144,99,137,122,136,4,220,11,19, + 143,61,138,61,152,24,168,25,211,11,51,128,68,216,7,15, + 209,7,23,216,15,19,136,11,240,4,8,5,14,220,15,21, + 144,104,211,15,31,136,4,220,14,32,160,20,215,39,56,209, + 39,56,184,36,215,58,75,209,58,75,200,86,211,14,84,136, + 3,224,23,31,140,12,216,15,18,136,10,248,240,2,2,5, + 14,216,8,12,143,10,137,10,140,12,216,8,13,250,115,11, + 0,0,0,172,51,65,32,0,193,32,19,65,51,3,99,4, + 0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,3, + 0,0,0,243,194,0,0,0,149,0,85,2,99,2,0,0, + 85,1,110,2,91,1,0,0,0,0,0,0,0,0,85,1, + 53,1,0,0,0,0,0,0,110,4,91,1,0,0,0,0, + 0,0,0,0,85,2,53,1,0,0,0,0,0,0,110,5, + 91,3,0,0,0,0,0,0,0,0,88,4,82,4,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,4,82,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,5,82,8,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,5,82,10, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,3,53,6,0,0,0,0,0,0,110,6,88,22, + 108,6,0,0,0,0,0,0,0,0,88,38,108,7,0,0, + 0,0,0,0,0,0,85,6,36,0,41,1,97,93,3,0, + 0,82,101,116,117,114,110,32,97,32,119,114,97,112,112,101, + 100,32,118,101,114,115,105,111,110,32,111,102,32,102,105,108, + 101,32,119,104,105,99,104,32,112,114,111,118,105,100,101,115, + 32,116,114,97,110,115,112,97,114,101,110,116,10,101,110,99, + 111,100,105,110,103,32,116,114,97,110,115,108,97,116,105,111, + 110,46,10,10,68,97,116,97,32,119,114,105,116,116,101,110, + 32,116,111,32,116,104,101,32,119,114,97,112,112,101,100,32, + 102,105,108,101,32,105,115,32,100,101,99,111,100,101,100,32, + 97,99,99,111,114,100,105,110,103,10,116,111,32,116,104,101, + 32,103,105,118,101,110,32,100,97,116,97,95,101,110,99,111, + 100,105,110,103,32,97,110,100,32,116,104,101,110,32,101,110, + 99,111,100,101,100,32,116,111,32,116,104,101,32,117,110,100, + 101,114,108,121,105,110,103,10,102,105,108,101,32,117,115,105, + 110,103,32,102,105,108,101,95,101,110,99,111,100,105,110,103, + 46,32,84,104,101,32,105,110,116,101,114,109,101,100,105,97, + 116,101,32,100,97,116,97,32,116,121,112,101,10,119,105,108, + 108,32,117,115,117,97,108,108,121,32,98,101,32,85,110,105, + 99,111,100,101,32,98,117,116,32,100,101,112,101,110,100,115, + 32,111,110,32,116,104,101,32,115,112,101,99,105,102,105,101, + 100,32,99,111,100,101,99,115,46,10,10,66,121,116,101,115, + 32,114,101,97,100,32,102,114,111,109,32,116,104,101,32,102, + 105,108,101,32,97,114,101,32,100,101,99,111,100,101,100,32, + 117,115,105,110,103,32,102,105,108,101,95,101,110,99,111,100, + 105,110,103,32,97,110,100,32,116,104,101,110,10,112,97,115, + 115,101,100,32,98,97,99,107,32,116,111,32,116,104,101,32, + 99,97,108,108,101,114,32,101,110,99,111,100,101,100,32,117, + 115,105,110,103,32,100,97,116,97,95,101,110,99,111,100,105, + 110,103,46,10,10,73,102,32,102,105,108,101,95,101,110,99, + 111,100,105,110,103,32,105,115,32,110,111,116,32,103,105,118, + 101,110,44,32,105,116,32,100,101,102,97,117,108,116,115,32, + 116,111,32,100,97,116,97,95,101,110,99,111,100,105,110,103, + 46,10,10,101,114,114,111,114,115,32,109,97,121,32,98,101, + 32,103,105,118,101,110,32,116,111,32,100,101,102,105,110,101, + 32,116,104,101,32,101,114,114,111,114,32,104,97,110,100,108, + 105,110,103,46,32,73,116,32,100,101,102,97,117,108,116,115, + 10,116,111,32,39,115,116,114,105,99,116,39,32,119,104,105, + 99,104,32,99,97,117,115,101,115,32,86,97,108,117,101,69, + 114,114,111,114,115,32,116,111,32,98,101,32,114,97,105,115, + 101,100,32,105,110,32,99,97,115,101,32,97,110,10,101,110, + 99,111,100,105,110,103,32,101,114,114,111,114,32,111,99,99, + 117,114,115,46,10,10,84,104,101,32,114,101,116,117,114,110, + 101,100,32,119,114,97,112,112,101,100,32,102,105,108,101,32, + 111,98,106,101,99,116,32,112,114,111,118,105,100,101,115,32, + 116,119,111,32,101,120,116,114,97,32,97,116,116,114,105,98, + 117,116,101,115,10,46,100,97,116,97,95,101,110,99,111,100, + 105,110,103,32,97,110,100,32,46,102,105,108,101,95,101,110, + 99,111,100,105,110,103,32,119,104,105,99,104,32,114,101,102, + 108,101,99,116,32,116,104,101,32,103,105,118,101,110,10,112, + 97,114,97,109,101,116,101,114,115,32,111,102,32,116,104,101, + 32,115,97,109,101,32,110,97,109,101,46,32,84,104,101,32, + 97,116,116,114,105,98,117,116,101,115,32,99,97,110,32,98, + 101,32,117,115,101,100,32,102,111,114,10,105,110,116,114,111, + 115,112,101,99,116,105,111,110,32,98,121,32,80,121,116,104, + 111,110,32,112,114,111,103,114,97,109,115,46,10,10,41,8, + 114,5,0,0,0,114,29,0,0,0,114,36,0,0,0,114, + 37,0,0,0,114,60,0,0,0,114,59,0,0,0,114,115, + 1,0,0,114,116,1,0,0,41,7,114,123,1,0,0,114, + 115,1,0,0,114,116,1,0,0,114,89,0,0,0,218,9, + 100,97,116,97,95,105,110,102,111,218,9,102,105,108,101,95, + 105,110,102,111,218,2,115,114,115,7,0,0,0,32,32,32, + 32,32,32,32,114,63,0,0,0,114,7,0,0,0,114,7, + 0,0,0,167,3,0,0,115,100,0,0,0,128,0,240,50, + 0,8,21,209,7,28,216,24,37,136,13,220,16,22,144,125, + 211,16,37,128,73,220,16,22,144,125,211,16,37,128,73,220, + 9,22,144,116,215,29,45,209,29,45,168,121,215,47,63,209, + 47,63,216,23,32,215,23,45,209,23,45,168,121,215,47,69, + 209,47,69,192,118,243,3,1,10,79,1,128,66,240,6,0, + 24,37,212,4,20,216,23,36,212,4,20,216,11,13,128,73, + 114,65,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,3,0,0,0,243,44,0,0,0,149, + 0,91,1,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,36,0,41,1,122,137,76, + 111,111,107,117,112,32,117,112,32,116,104,101,32,99,111,100, + 101,99,32,102,111,114,32,116,104,101,32,103,105,118,101,110, + 32,101,110,99,111,100,105,110,103,32,97,110,100,32,114,101, + 116,117,114,110,10,105,116,115,32,101,110,99,111,100,101,114, + 32,102,117,110,99,116,105,111,110,46,10,10,82,97,105,115, + 101,115,32,97,32,76,111,111,107,117,112,69,114,114,111,114, + 32,105,110,32,99,97,115,101,32,116,104,101,32,101,110,99, + 111,100,105,110,103,32,99,97,110,110,111,116,32,98,101,32, + 102,111,117,110,100,46,10,10,41,2,114,5,0,0,0,114, + 36,0,0,0,169,1,114,82,1,0,0,115,1,0,0,0, + 32,114,63,0,0,0,114,30,0,0,0,114,30,0,0,0, + 205,3,0,0,243,21,0,0,0,128,0,244,16,0,12,18, + 144,40,211,11,27,215,11,34,209,11,34,208,4,34,114,65, 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,0,0,0,243,44,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,83,0,41,1,122,158,32,76,111, - 111,107,117,112,32,117,112,32,116,104,101,32,99,111,100,101, - 99,32,102,111,114,32,116,104,101,32,103,105,118,101,110,32, - 101,110,99,111,100,105,110,103,32,97,110,100,32,114,101,116, - 117,114,110,10,32,32,32,32,32,32,32,32,105,116,115,32, - 100,101,99,111,100,101,114,32,102,117,110,99,116,105,111,110, - 46,10,10,32,32,32,32,32,32,32,32,82,97,105,115,101, - 115,32,97,32,76,111,111,107,117,112,69,114,114,111,114,32, - 105,110,32,99,97,115,101,32,116,104,101,32,101,110,99,111, - 100,105,110,103,32,99,97,110,110,111,116,32,98,101,32,102, - 111,117,110,100,46,10,10,32,32,32,32,41,2,114,5,0, - 0,0,114,37,0,0,0,114,45,1,0,0,115,1,0,0, - 0,32,114,62,0,0,0,114,31,0,0,0,114,31,0,0, - 0,212,3,0,0,114,46,1,0,0,114,63,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,74,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,106, - 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,125,1,124,1,128,11,116,5,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,130,1,124, - 1,83,0,41,1,122,247,32,76,111,111,107,117,112,32,117, - 112,32,116,104,101,32,99,111,100,101,99,32,102,111,114,32, - 116,104,101,32,103,105,118,101,110,32,101,110,99,111,100,105, - 110,103,32,97,110,100,32,114,101,116,117,114,110,10,32,32, - 32,32,32,32,32,32,105,116,115,32,73,110,99,114,101,109, - 101,110,116,97,108,69,110,99,111,100,101,114,32,99,108,97, - 115,115,32,111,114,32,102,97,99,116,111,114,121,32,102,117, - 110,99,116,105,111,110,46,10,10,32,32,32,32,32,32,32, - 32,82,97,105,115,101,115,32,97,32,76,111,111,107,117,112, - 69,114,114,111,114,32,105,110,32,99,97,115,101,32,116,104, - 101,32,101,110,99,111,100,105,110,103,32,99,97,110,110,111, - 116,32,98,101,32,102,111,117,110,100,10,32,32,32,32,32, - 32,32,32,111,114,32,116,104,101,32,99,111,100,101,99,115, - 32,100,111,101,115,110,39,116,32,112,114,111,118,105,100,101, - 32,97,110,32,105,110,99,114,101,109,101,110,116,97,108,32, - 101,110,99,111,100,101,114,46,10,10,32,32,32,32,41,3, - 114,5,0,0,0,114,56,0,0,0,218,11,76,111,111,107, - 117,112,69,114,114,111,114,41,2,114,10,1,0,0,218,7, - 101,110,99,111,100,101,114,115,2,0,0,0,32,32,114,62, - 0,0,0,114,32,0,0,0,114,32,0,0,0,222,3,0, - 0,243,41,0,0,0,128,0,244,18,0,15,21,144,88,211, - 14,30,215,14,49,209,14,49,128,71,216,7,14,128,127,220, - 14,25,152,40,211,14,35,208,8,35,216,11,18,128,78,114, - 63,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,3,0,0,0,243,74,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,125,1,124,1,128,11,116,5, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,130,1,124,1,83,0,41,1,122,247,32,76,111,111, + 3,0,0,0,3,0,0,0,243,44,0,0,0,149,0,91, + 1,0,0,0,0,0,0,0,0,85,0,53,1,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,36,0,41,1,122,137,76,111,111, 107,117,112,32,117,112,32,116,104,101,32,99,111,100,101,99, 32,102,111,114,32,116,104,101,32,103,105,118,101,110,32,101, 110,99,111,100,105,110,103,32,97,110,100,32,114,101,116,117, - 114,110,10,32,32,32,32,32,32,32,32,105,116,115,32,73, - 110,99,114,101,109,101,110,116,97,108,68,101,99,111,100,101, - 114,32,99,108,97,115,115,32,111,114,32,102,97,99,116,111, - 114,121,32,102,117,110,99,116,105,111,110,46,10,10,32,32, - 32,32,32,32,32,32,82,97,105,115,101,115,32,97,32,76, - 111,111,107,117,112,69,114,114,111,114,32,105,110,32,99,97, - 115,101,32,116,104,101,32,101,110,99,111,100,105,110,103,32, - 99,97,110,110,111,116,32,98,101,32,102,111,117,110,100,10, - 32,32,32,32,32,32,32,32,111,114,32,116,104,101,32,99, - 111,100,101,99,115,32,100,111,101,115,110,39,116,32,112,114, - 111,118,105,100,101,32,97,110,32,105,110,99,114,101,109,101, - 110,116,97,108,32,100,101,99,111,100,101,114,46,10,10,32, - 32,32,32,41,3,114,5,0,0,0,114,57,0,0,0,114, - 49,1,0,0,41,2,114,10,1,0,0,218,7,100,101,99, - 111,100,101,114,115,2,0,0,0,32,32,114,62,0,0,0, - 114,33,0,0,0,114,33,0,0,0,236,3,0,0,114,51, - 1,0,0,114,63,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,3,0,0,0,243,44,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,83,0,41,1, - 122,180,32,76,111,111,107,117,112,32,117,112,32,116,104,101, - 32,99,111,100,101,99,32,102,111,114,32,116,104,101,32,103, - 105,118,101,110,32,101,110,99,111,100,105,110,103,32,97,110, - 100,32,114,101,116,117,114,110,10,32,32,32,32,32,32,32, - 32,105,116,115,32,83,116,114,101,97,109,82,101,97,100,101, - 114,32,99,108,97,115,115,32,111,114,32,102,97,99,116,111, - 114,121,32,102,117,110,99,116,105,111,110,46,10,10,32,32, - 32,32,32,32,32,32,82,97,105,115,101,115,32,97,32,76, - 111,111,107,117,112,69,114,114,111,114,32,105,110,32,99,97, - 115,101,32,116,104,101,32,101,110,99,111,100,105,110,103,32, - 99,97,110,110,111,116,32,98,101,32,102,111,117,110,100,46, - 10,10,32,32,32,32,41,2,114,5,0,0,0,114,59,0, - 0,0,114,45,1,0,0,115,1,0,0,0,32,114,62,0, - 0,0,114,34,0,0,0,114,34,0,0,0,250,3,0,0, - 243,21,0,0,0,128,0,244,16,0,12,18,144,40,211,11, - 27,215,11,40,209,11,40,208,4,40,114,63,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,44,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,106, - 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,83,0,41,1,122,180,32,76,111,111,107,117,112, - 32,117,112,32,116,104,101,32,99,111,100,101,99,32,102,111, - 114,32,116,104,101,32,103,105,118,101,110,32,101,110,99,111, - 100,105,110,103,32,97,110,100,32,114,101,116,117,114,110,10, - 32,32,32,32,32,32,32,32,105,116,115,32,83,116,114,101, - 97,109,87,114,105,116,101,114,32,99,108,97,115,115,32,111, - 114,32,102,97,99,116,111,114,121,32,102,117,110,99,116,105, - 111,110,46,10,10,32,32,32,32,32,32,32,32,82,97,105, + 114,110,10,105,116,115,32,100,101,99,111,100,101,114,32,102, + 117,110,99,116,105,111,110,46,10,10,82,97,105,115,101,115, + 32,97,32,76,111,111,107,117,112,69,114,114,111,114,32,105, + 110,32,99,97,115,101,32,116,104,101,32,101,110,99,111,100, + 105,110,103,32,99,97,110,110,111,116,32,98,101,32,102,111, + 117,110,100,46,10,10,41,2,114,5,0,0,0,114,37,0, + 0,0,114,131,1,0,0,115,1,0,0,0,32,114,63,0, + 0,0,114,31,0,0,0,114,31,0,0,0,215,3,0,0, + 114,132,1,0,0,114,65,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 76,0,0,0,149,0,91,1,0,0,0,0,0,0,0,0, + 85,0,53,1,0,0,0,0,0,0,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,1, + 85,1,99,11,0,0,91,5,0,0,0,0,0,0,0,0, + 85,0,53,1,0,0,0,0,0,0,101,1,85,1,36,0, + 41,1,122,218,76,111,111,107,117,112,32,117,112,32,116,104, + 101,32,99,111,100,101,99,32,102,111,114,32,116,104,101,32, + 103,105,118,101,110,32,101,110,99,111,100,105,110,103,32,97, + 110,100,32,114,101,116,117,114,110,10,105,116,115,32,73,110, + 99,114,101,109,101,110,116,97,108,69,110,99,111,100,101,114, + 32,99,108,97,115,115,32,111,114,32,102,97,99,116,111,114, + 121,32,102,117,110,99,116,105,111,110,46,10,10,82,97,105, 115,101,115,32,97,32,76,111,111,107,117,112,69,114,114,111, 114,32,105,110,32,99,97,115,101,32,116,104,101,32,101,110, 99,111,100,105,110,103,32,99,97,110,110,111,116,32,98,101, - 32,102,111,117,110,100,46,10,10,32,32,32,32,41,2,114, - 5,0,0,0,114,58,0,0,0,114,45,1,0,0,115,1, - 0,0,0,32,114,62,0,0,0,114,35,0,0,0,114,35, - 0,0,0,4,4,0,0,114,55,1,0,0,114,63,0,0, - 0,99,3,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,43,0,0,0,243,160,0,0,0,75,0,1,0,151, - 0,2,0,116,1,0,0,0,0,0,0,0,0,124,1,171, - 1,0,0,0,0,0,0,124,2,102,1,105,0,124,3,164, - 1,142,1,125,4,124,0,68,0,93,26,0,0,125,5,124, - 4,106,3,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,5,171,1,0,0,0,0,0,0,125, - 6,124,6,115,1,140,23,124,6,150,1,151,1,1,0,140, - 28,4,0,124,4,106,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,1,100,2,171,2,0, - 0,0,0,0,0,125,6,124,6,114,5,124,6,150,1,151, - 1,1,0,121,3,121,3,173,3,119,1,41,4,122,191,10, - 32,32,32,32,69,110,99,111,100,105,110,103,32,105,116,101, - 114,97,116,111,114,46,10,10,32,32,32,32,69,110,99,111, - 100,101,115,32,116,104,101,32,105,110,112,117,116,32,115,116, - 114,105,110,103,115,32,102,114,111,109,32,116,104,101,32,105, - 116,101,114,97,116,111,114,32,117,115,105,110,103,32,97,110, - 32,73,110,99,114,101,109,101,110,116,97,108,69,110,99,111, - 100,101,114,46,10,10,32,32,32,32,101,114,114,111,114,115, - 32,97,110,100,32,107,119,97,114,103,115,32,97,114,101,32, - 112,97,115,115,101,100,32,116,104,114,111,117,103,104,32,116, - 111,32,116,104,101,32,73,110,99,114,101,109,101,110,116,97, - 108,69,110,99,111,100,101,114,10,32,32,32,32,99,111,110, - 115,116,114,117,99,116,111,114,46,10,32,32,32,32,114,86, - 0,0,0,84,78,41,2,114,32,0,0,0,114,36,0,0, - 0,41,7,218,8,105,116,101,114,97,116,111,114,114,10,1, - 0,0,114,80,0,0,0,218,6,107,119,97,114,103,115,114, - 50,1,0,0,114,79,0,0,0,218,6,111,117,116,112,117, - 116,115,7,0,0,0,32,32,32,32,32,32,32,114,62,0, - 0,0,114,38,0,0,0,114,38,0,0,0,14,4,0,0, - 115,94,0,0,0,232,0,248,128,0,240,18,0,15,46,212, - 14,35,160,72,211,14,45,168,102,209,14,63,184,6,209,14, - 63,128,71,219,17,25,136,5,216,17,24,151,30,145,30,160, - 5,211,17,38,136,6,218,11,17,216,18,24,139,76,240,7, - 0,18,26,240,8,0,14,21,143,94,137,94,152,66,160,4, - 211,13,37,128,70,217,7,13,216,14,20,139,12,240,3,0, - 8,14,249,243,10,0,0,0,130,43,65,14,1,174,32,65, - 14,1,99,3,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,43,0,0,0,243,160,0,0,0,75,0,1,0, - 151,0,2,0,116,1,0,0,0,0,0,0,0,0,124,1, - 171,1,0,0,0,0,0,0,124,2,102,1,105,0,124,3, - 164,1,142,1,125,4,124,0,68,0,93,26,0,0,125,5, - 124,4,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,5,171,1,0,0,0,0,0,0, - 125,6,124,6,115,1,140,23,124,6,150,1,151,1,1,0, - 140,28,4,0,124,4,106,3,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,1,100,2,171,2, - 0,0,0,0,0,0,125,6,124,6,114,5,124,6,150,1, - 151,1,1,0,121,3,121,3,173,3,119,1,41,4,122,191, - 10,32,32,32,32,68,101,99,111,100,105,110,103,32,105,116, - 101,114,97,116,111,114,46,10,10,32,32,32,32,68,101,99, - 111,100,101,115,32,116,104,101,32,105,110,112,117,116,32,115, - 116,114,105,110,103,115,32,102,114,111,109,32,116,104,101,32, - 105,116,101,114,97,116,111,114,32,117,115,105,110,103,32,97, - 110,32,73,110,99,114,101,109,101,110,116,97,108,68,101,99, - 111,100,101,114,46,10,10,32,32,32,32,101,114,114,111,114, - 115,32,97,110,100,32,107,119,97,114,103,115,32,97,114,101, - 32,112,97,115,115,101,100,32,116,104,114,111,117,103,104,32, - 116,111,32,116,104,101,32,73,110,99,114,101,109,101,110,116, - 97,108,68,101,99,111,100,101,114,10,32,32,32,32,99,111, - 110,115,116,114,117,99,116,111,114,46,10,32,32,32,32,114, - 63,0,0,0,84,78,41,2,114,33,0,0,0,114,37,0, - 0,0,41,7,114,58,1,0,0,114,10,1,0,0,114,80, - 0,0,0,114,59,1,0,0,114,53,1,0,0,114,79,0, - 0,0,114,60,1,0,0,115,7,0,0,0,32,32,32,32, - 32,32,32,114,62,0,0,0,114,39,0,0,0,114,39,0, - 0,0,32,4,0,0,115,94,0,0,0,232,0,248,128,0, - 240,18,0,15,46,212,14,35,160,72,211,14,45,168,102,209, - 14,63,184,6,209,14,63,128,71,219,17,25,136,5,216,17, - 24,151,30,145,30,160,5,211,17,38,136,6,218,11,17,216, - 18,24,139,76,240,7,0,18,26,240,8,0,14,21,143,94, - 137,94,152,67,160,20,211,13,38,128,70,217,7,13,216,14, - 20,139,12,240,3,0,8,14,249,114,61,1,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,3, - 0,0,0,243,46,0,0,0,151,0,124,0,68,0,143,1, - 99,2,105,0,99,2,93,5,0,0,125,1,124,1,124,1, - 147,2,140,7,4,0,99,2,125,1,83,0,99,2,1,0, - 99,2,125,1,119,0,41,1,122,136,32,109,97,107,101,95, - 105,100,101,110,116,105,116,121,95,100,105,99,116,40,114,110, - 103,41,32,45,62,32,100,105,99,116,10,10,32,32,32,32, - 32,32,32,32,82,101,116,117,114,110,32,97,32,100,105,99, - 116,105,111,110,97,114,121,32,119,104,101,114,101,32,101,108, - 101,109,101,110,116,115,32,111,102,32,116,104,101,32,114,110, - 103,32,115,101,113,117,101,110,99,101,32,97,114,101,10,32, - 32,32,32,32,32,32,32,109,97,112,112,101,100,32,116,111, - 32,116,104,101,109,115,101,108,118,101,115,46,10,10,32,32, - 32,32,114,73,0,0,0,41,2,218,3,114,110,103,218,1, - 105,115,2,0,0,0,32,32,114,62,0,0,0,218,18,109, - 97,107,101,95,105,100,101,110,116,105,116,121,95,100,105,99, - 116,114,66,1,0,0,52,4,0,0,115,32,0,0,0,128, - 0,241,16,0,26,29,211,11,29,153,19,144,65,136,65,136, - 97,137,67,152,19,209,11,29,208,4,29,249,210,11,29,115, - 4,0,0,0,133,10,18,4,99,1,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,88,0, - 0,0,151,0,105,0,125,1,124,0,106,1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,68,0,93,20,0,0,92,2,0,0, - 125,2,125,3,124,3,124,1,118,1,114,6,124,2,124,1, - 124,3,60,0,0,0,140,16,100,1,124,1,124,3,60,0, - 0,0,140,22,4,0,124,1,83,0,41,2,97,130,1,0, - 0,32,67,114,101,97,116,101,115,32,97,110,32,101,110,99, - 111,100,105,110,103,32,109,97,112,32,102,114,111,109,32,97, - 32,100,101,99,111,100,105,110,103,32,109,97,112,46,10,10, - 32,32,32,32,32,32,32,32,73,102,32,97,32,116,97,114, - 103,101,116,32,109,97,112,112,105,110,103,32,105,110,32,116, - 104,101,32,100,101,99,111,100,105,110,103,32,109,97,112,32, - 111,99,99,117,114,115,32,109,117,108,116,105,112,108,101,10, - 32,32,32,32,32,32,32,32,116,105,109,101,115,44,32,116, - 104,101,110,32,116,104,97,116,32,116,97,114,103,101,116,32, - 105,115,32,109,97,112,112,101,100,32,116,111,32,78,111,110, - 101,32,40,117,110,100,101,102,105,110,101,100,32,109,97,112, - 112,105,110,103,41,44,10,32,32,32,32,32,32,32,32,99, - 97,117,115,105,110,103,32,97,110,32,101,120,99,101,112,116, - 105,111,110,32,119,104,101,110,32,101,110,99,111,117,110,116, - 101,114,101,100,32,98,121,32,116,104,101,32,99,104,97,114, - 109,97,112,32,99,111,100,101,99,10,32,32,32,32,32,32, - 32,32,100,117,114,105,110,103,32,116,114,97,110,115,108,97, - 116,105,111,110,46,10,10,32,32,32,32,32,32,32,32,79, - 110,101,32,101,120,97,109,112,108,101,32,119,104,101,114,101, - 32,116,104,105,115,32,104,97,112,112,101,110,115,32,105,115, - 32,99,112,56,55,53,46,112,121,32,119,104,105,99,104,32, - 100,101,99,111,100,101,115,10,32,32,32,32,32,32,32,32, - 109,117,108,116,105,112,108,101,32,99,104,97,114,97,99,116, - 101,114,32,116,111,32,92,117,48,48,49,97,46,10,10,32, - 32,32,32,78,41,1,218,5,105,116,101,109,115,41,4,218, - 12,100,101,99,111,100,105,110,103,95,109,97,112,218,1,109, - 218,1,107,218,1,118,115,4,0,0,0,32,32,32,32,114, - 62,0,0,0,218,17,109,97,107,101,95,101,110,99,111,100, - 105,110,103,95,109,97,112,114,73,1,0,0,62,4,0,0, - 115,64,0,0,0,128,0,240,26,0,9,11,128,65,216,15, - 27,215,15,33,209,15,33,214,15,35,137,3,136,1,136,33, - 216,15,16,144,65,137,118,216,19,20,136,65,136,97,138,68, - 224,19,23,136,65,136,97,138,68,240,9,0,16,36,240,10, - 0,12,13,128,72,114,63,0,0,0,218,6,105,103,110,111, - 114,101,218,7,114,101,112,108,97,99,101,218,17,120,109,108, - 99,104,97,114,114,101,102,114,101,112,108,97,99,101,218,16, - 98,97,99,107,115,108,97,115,104,114,101,112,108,97,99,101, - 218,11,110,97,109,101,114,101,112,108,97,99,101,41,4,218, - 1,114,78,114,83,0,0,0,114,215,0,0,0,41,2,78, - 114,83,0,0,0,114,82,0,0,0,41,57,114,72,0,0, - 0,114,33,1,0,0,218,3,115,121,115,218,7,95,99,111, - 100,101,99,115,218,11,73,109,112,111,114,116,69,114,114,111, - 114,218,3,119,104,121,218,11,83,121,115,116,101,109,69,114, - 114,111,114,218,7,95,95,97,108,108,95,95,114,15,0,0, - 0,114,10,0,0,0,114,17,0,0,0,114,9,0,0,0, - 114,18,0,0,0,114,20,0,0,0,114,21,0,0,0,218, - 9,98,121,116,101,111,114,100,101,114,114,8,0,0,0,114, - 16,0,0,0,114,19,0,0,0,114,12,0,0,0,114,11, - 0,0,0,114,14,0,0,0,114,13,0,0,0,114,53,0, - 0,0,114,22,0,0,0,114,23,0,0,0,114,145,0,0, - 0,114,24,0,0,0,114,105,0,0,0,114,25,0,0,0, - 114,130,0,0,0,114,27,0,0,0,114,26,0,0,0,114, - 28,0,0,0,114,29,0,0,0,114,6,0,0,0,114,7, - 0,0,0,114,30,0,0,0,114,31,0,0,0,114,32,0, - 0,0,114,33,0,0,0,114,34,0,0,0,114,35,0,0, - 0,114,38,0,0,0,114,39,0,0,0,114,66,1,0,0, - 114,73,1,0,0,114,47,0,0,0,114,40,0,0,0,114, - 41,0,0,0,114,42,0,0,0,114,43,0,0,0,114,44, - 0,0,0,114,45,0,0,0,114,49,1,0,0,218,6,95, - 102,97,108,115,101,218,9,101,110,99,111,100,105,110,103,115, - 114,73,0,0,0,114,63,0,0,0,114,62,0,0,0,218, - 8,60,109,111,100,117,108,101,62,114,89,1,0,0,1,0, - 0,0,115,20,2,0,0,240,3,1,1,1,241,2,7,1, - 4,243,18,0,1,16,219,0,10,240,8,3,1,69,1,220, - 4,25,242,8,13,11,45,128,7,240,48,0,12,27,128,8, - 240,6,0,25,36,208,0,35,128,6,136,28,240,6,0,25, - 36,208,0,35,128,6,136,28,240,6,0,16,35,128,12,240, - 6,0,16,35,128,12,224,3,6,135,61,129,61,144,72,210, - 3,28,240,6,0,23,35,208,4,34,128,67,136,41,240,6, - 0,17,29,129,73,240,10,0,23,35,208,4,34,128,67,136, - 41,240,6,0,17,29,128,73,240,6,0,12,24,128,8,216, - 11,23,128,8,216,11,23,128,8,216,11,23,128,8,244,10, - 29,1,38,144,5,244,0,29,1,38,247,62,64,1,1,34, - 241,0,64,1,1,34,244,68,2,38,1,12,152,22,244,0, - 38,1,12,244,80,1,32,1,34,208,33,51,244,0,32,1, - 34,244,68,1,47,1,12,152,22,244,0,47,1,12,244,98, - 1,34,1,31,208,33,51,244,0,34,1,31,244,86,1,72, - 1,1,72,1,144,53,244,0,72,1,1,72,1,244,88,2, - 120,3,1,72,1,144,53,244,0,120,3,1,72,1,247,120, - 7,86,1,1,72,1,241,0,86,1,1,72,1,247,116,2, - 115,1,1,72,1,241,0,115,1,1,72,1,243,110,3,47, - 1,14,243,98,1,34,1,14,242,76,1,8,1,35,242,20, - 8,1,35,242,20,12,1,19,242,28,12,1,19,242,28,8, - 1,41,242,20,8,1,41,243,20,16,1,21,243,36,16,1, - 21,242,40,8,1,30,242,20,19,1,13,240,46,14,1,30, - 217,20,32,160,24,211,20,42,128,77,217,20,32,160,24,211, - 20,42,128,77,217,21,33,160,41,211,21,44,128,78,217,31, - 43,208,44,63,211,31,64,208,4,28,217,30,42,208,43,61, - 211,30,62,208,4,27,217,25,37,160,109,211,25,52,208,4, - 22,240,24,0,10,11,128,6,217,3,9,220,4,20,240,3, - 0,4,10,248,240,111,34,0,8,19,242,0,1,1,69,1, - 217,10,21,208,22,61,192,3,209,22,67,211,10,68,208,4, - 68,251,240,3,1,1,69,1,251,240,86,34,0,8,19,242, - 0,7,1,30,224,20,24,128,77,216,20,24,128,77,216,21, - 25,128,78,216,31,35,208,4,28,216,30,34,208,4,27,216, - 25,29,210,4,22,240,15,7,1,30,250,115,41,0,0,0, - 140,5,68,21,0,195,27,48,68,45,0,196,21,5,68,42, - 3,196,26,11,68,37,3,196,37,5,68,42,3,196,45,17, - 69,1,3,197,0,1,69,1,3, + 32,102,111,117,110,100,10,111,114,32,116,104,101,32,99,111, + 100,101,99,115,32,100,111,101,115,110,39,116,32,112,114,111, + 118,105,100,101,32,97,110,32,105,110,99,114,101,109,101,110, + 116,97,108,32,101,110,99,111,100,101,114,46,10,10,41,3, + 114,5,0,0,0,114,57,0,0,0,218,11,76,111,111,107, + 117,112,69,114,114,111,114,41,2,114,82,1,0,0,218,7, + 101,110,99,111,100,101,114,115,2,0,0,0,32,32,114,63, + 0,0,0,114,32,0,0,0,114,32,0,0,0,225,3,0, + 0,243,41,0,0,0,128,0,244,18,0,15,21,144,88,211, + 14,30,215,14,49,209,14,49,128,71,216,7,14,129,127,220, + 14,25,152,40,211,14,35,208,8,35,216,11,18,128,78,114, + 65,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,243,76,0,0,0,149,0, + 91,1,0,0,0,0,0,0,0,0,85,0,53,1,0,0, + 0,0,0,0,82,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,110,1,85,1,99,11,0,0, + 91,5,0,0,0,0,0,0,0,0,85,0,53,1,0,0, + 0,0,0,0,101,1,85,1,36,0,41,1,122,218,76,111, + 111,107,117,112,32,117,112,32,116,104,101,32,99,111,100,101, + 99,32,102,111,114,32,116,104,101,32,103,105,118,101,110,32, + 101,110,99,111,100,105,110,103,32,97,110,100,32,114,101,116, + 117,114,110,10,105,116,115,32,73,110,99,114,101,109,101,110, + 116,97,108,68,101,99,111,100,101,114,32,99,108,97,115,115, + 32,111,114,32,102,97,99,116,111,114,121,32,102,117,110,99, + 116,105,111,110,46,10,10,82,97,105,115,101,115,32,97,32, + 76,111,111,107,117,112,69,114,114,111,114,32,105,110,32,99, + 97,115,101,32,116,104,101,32,101,110,99,111,100,105,110,103, + 32,99,97,110,110,111,116,32,98,101,32,102,111,117,110,100, + 10,111,114,32,116,104,101,32,99,111,100,101,99,115,32,100, + 111,101,115,110,39,116,32,112,114,111,118,105,100,101,32,97, + 110,32,105,110,99,114,101,109,101,110,116,97,108,32,100,101, + 99,111,100,101,114,46,10,10,41,3,114,5,0,0,0,114, + 58,0,0,0,114,135,1,0,0,41,2,114,82,1,0,0, + 218,7,100,101,99,111,100,101,114,115,2,0,0,0,32,32, + 114,63,0,0,0,114,33,0,0,0,114,33,0,0,0,239, + 3,0,0,114,137,1,0,0,114,65,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, + 0,0,243,44,0,0,0,149,0,91,1,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,82,2,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,36,0,41,1,122,159,76,111,111,107,117,112,32,117,112, + 32,116,104,101,32,99,111,100,101,99,32,102,111,114,32,116, + 104,101,32,103,105,118,101,110,32,101,110,99,111,100,105,110, + 103,32,97,110,100,32,114,101,116,117,114,110,10,105,116,115, + 32,83,116,114,101,97,109,82,101,97,100,101,114,32,99,108, + 97,115,115,32,111,114,32,102,97,99,116,111,114,121,32,102, + 117,110,99,116,105,111,110,46,10,10,82,97,105,115,101,115, + 32,97,32,76,111,111,107,117,112,69,114,114,111,114,32,105, + 110,32,99,97,115,101,32,116,104,101,32,101,110,99,111,100, + 105,110,103,32,99,97,110,110,111,116,32,98,101,32,102,111, + 117,110,100,46,10,10,41,2,114,5,0,0,0,114,60,0, + 0,0,114,131,1,0,0,115,1,0,0,0,32,114,63,0, + 0,0,114,34,0,0,0,114,34,0,0,0,253,3,0,0, + 243,21,0,0,0,128,0,244,16,0,12,18,144,40,211,11, + 27,215,11,40,209,11,40,208,4,40,114,65,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,44,0,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,36,0,41,1,122,159,76,111,111,107,117,112,32, + 117,112,32,116,104,101,32,99,111,100,101,99,32,102,111,114, + 32,116,104,101,32,103,105,118,101,110,32,101,110,99,111,100, + 105,110,103,32,97,110,100,32,114,101,116,117,114,110,10,105, + 116,115,32,83,116,114,101,97,109,87,114,105,116,101,114,32, + 99,108,97,115,115,32,111,114,32,102,97,99,116,111,114,121, + 32,102,117,110,99,116,105,111,110,46,10,10,82,97,105,115, + 101,115,32,97,32,76,111,111,107,117,112,69,114,114,111,114, + 32,105,110,32,99,97,115,101,32,116,104,101,32,101,110,99, + 111,100,105,110,103,32,99,97,110,110,111,116,32,98,101,32, + 102,111,117,110,100,46,10,10,41,2,114,5,0,0,0,114, + 59,0,0,0,114,131,1,0,0,115,1,0,0,0,32,114, + 63,0,0,0,114,35,0,0,0,114,35,0,0,0,7,4, + 0,0,114,141,1,0,0,114,65,0,0,0,99,3,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,43,0,0, + 0,243,186,0,0,0,35,0,32,0,149,0,91,1,0,0, + 0,0,0,0,0,0,85,1,53,1,0,0,0,0,0,0, + 34,0,85,2,52,1,48,0,85,3,68,1,54,1,110,4, + 85,0,19,0,72,33,0,0,110,5,85,4,82,3,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,5,53,1,0,0,0,0,0,0,110,6,85,6,40,0, + 0,0,0,0,0,0,100,2,0,0,77,29,0,0,85,6, + 118,0,149,5,32,0,77,35,0,0,11,0,32,0,85,4, + 82,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,1,83,2,53,2,0,0,0,0,0,0, + 110,6,85,6,40,0,0,0,0,0,0,0,97,5,0,0, + 85,6,118,0,149,5,32,0,103,3,103,3,55,3,102,1, + 41,4,122,171,10,69,110,99,111,100,105,110,103,32,105,116, + 101,114,97,116,111,114,46,10,10,69,110,99,111,100,101,115, + 32,116,104,101,32,105,110,112,117,116,32,115,116,114,105,110, + 103,115,32,102,114,111,109,32,116,104,101,32,105,116,101,114, + 97,116,111,114,32,117,115,105,110,103,32,97,110,32,73,110, + 99,114,101,109,101,110,116,97,108,69,110,99,111,100,101,114, + 46,10,10,101,114,114,111,114,115,32,97,110,100,32,107,119, + 97,114,103,115,32,97,114,101,32,112,97,115,115,101,100,32, + 116,104,114,111,117,103,104,32,116,111,32,116,104,101,32,73, + 110,99,114,101,109,101,110,116,97,108,69,110,99,111,100,101, + 114,10,99,111,110,115,116,114,117,99,116,111,114,46,10,114, + 98,0,0,0,84,78,41,2,114,32,0,0,0,114,36,0, + 0,0,41,7,218,8,105,116,101,114,97,116,111,114,114,82, + 1,0,0,114,89,0,0,0,218,6,107,119,97,114,103,115, + 114,136,1,0,0,114,88,0,0,0,218,6,111,117,116,112, + 117,116,115,7,0,0,0,32,32,32,32,32,32,32,114,63, + 0,0,0,114,38,0,0,0,114,38,0,0,0,17,4,0, + 0,115,92,0,0,0,233,0,128,0,244,18,0,15,36,160, + 72,212,14,45,168,102,209,14,63,184,6,209,14,63,128,71, + 219,17,25,136,5,216,17,24,151,30,145,30,160,5,211,17, + 38,136,6,223,11,17,136,54,216,18,24,140,76,241,7,0, + 18,26,240,8,0,14,21,143,94,137,94,152,66,160,4,211, + 13,37,128,70,222,7,13,216,14,20,139,12,240,3,0,8, + 14,249,243,10,0,0,0,130,46,65,27,1,180,39,65,27, + 1,99,3,0,0,0,0,0,0,0,0,0,0,0,5,0, + 0,0,43,0,0,0,243,186,0,0,0,35,0,32,0,149, + 0,91,1,0,0,0,0,0,0,0,0,85,1,53,1,0, + 0,0,0,0,0,34,0,85,2,52,1,48,0,85,3,68, + 1,54,1,110,4,85,0,19,0,72,33,0,0,110,5,85, + 4,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,5,53,1,0,0,0,0,0,0,110, + 6,85,6,40,0,0,0,0,0,0,0,100,2,0,0,77, + 29,0,0,85,6,118,0,149,5,32,0,77,35,0,0,11, + 0,32,0,85,4,82,3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,1,83,2,53,2,0, + 0,0,0,0,0,110,6,85,6,40,0,0,0,0,0,0, + 0,97,5,0,0,85,6,118,0,149,5,32,0,103,3,103, + 3,55,3,102,1,41,4,122,171,10,68,101,99,111,100,105, + 110,103,32,105,116,101,114,97,116,111,114,46,10,10,68,101, + 99,111,100,101,115,32,116,104,101,32,105,110,112,117,116,32, + 115,116,114,105,110,103,115,32,102,114,111,109,32,116,104,101, + 32,105,116,101,114,97,116,111,114,32,117,115,105,110,103,32, + 97,110,32,73,110,99,114,101,109,101,110,116,97,108,68,101, + 99,111,100,101,114,46,10,10,101,114,114,111,114,115,32,97, + 110,100,32,107,119,97,114,103,115,32,97,114,101,32,112,97, + 115,115,101,100,32,116,104,114,111,117,103,104,32,116,111,32, + 116,104,101,32,73,110,99,114,101,109,101,110,116,97,108,68, + 101,99,111,100,101,114,10,99,111,110,115,116,114,117,99,116, + 111,114,46,10,114,65,0,0,0,84,78,41,2,114,33,0, + 0,0,114,37,0,0,0,41,7,114,144,1,0,0,114,82, + 1,0,0,114,89,0,0,0,114,145,1,0,0,114,139,1, + 0,0,114,88,0,0,0,114,146,1,0,0,115,7,0,0, + 0,32,32,32,32,32,32,32,114,63,0,0,0,114,39,0, + 0,0,114,39,0,0,0,35,4,0,0,115,92,0,0,0, + 233,0,128,0,244,18,0,15,36,160,72,212,14,45,168,102, + 209,14,63,184,6,209,14,63,128,71,219,17,25,136,5,216, + 17,24,151,30,145,30,160,5,211,17,38,136,6,223,11,17, + 136,54,216,18,24,140,76,241,7,0,18,26,240,8,0,14, + 21,143,94,137,94,152,67,160,20,211,13,38,128,70,222,7, + 13,216,14,20,139,12,240,3,0,8,14,249,114,147,1,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,5,0, + 0,0,3,0,0,0,243,50,0,0,0,149,0,85,0,19, + 0,86,1,115,2,48,0,115,2,19,0,72,5,0,0,111, + 17,85,1,95,2,77,7,0,0,11,0,32,0,115,2,110, + 1,36,0,115,2,32,0,115,2,110,1,102,0,41,1,122, + 115,109,97,107,101,95,105,100,101,110,116,105,116,121,95,100, + 105,99,116,40,114,110,103,41,32,45,62,32,100,105,99,116, + 10,10,82,101,116,117,114,110,32,97,32,100,105,99,116,105, + 111,110,97,114,121,32,119,104,101,114,101,32,101,108,101,109, + 101,110,116,115,32,111,102,32,116,104,101,32,114,110,103,32, + 115,101,113,117,101,110,99,101,32,97,114,101,10,109,97,112, + 112,101,100,32,116,111,32,116,104,101,109,115,101,108,118,101, + 115,46,10,10,114,81,0,0,0,41,2,218,3,114,110,103, + 218,1,105,115,2,0,0,0,32,32,114,63,0,0,0,218, + 18,109,97,107,101,95,105,100,101,110,116,105,116,121,95,100, + 105,99,116,114,152,1,0,0,55,4,0,0,115,30,0,0, + 0,128,0,241,16,0,26,29,211,11,29,154,19,144,65,136, + 97,138,67,153,19,209,11,29,208,4,29,249,210,11,29,115, + 4,0,0,0,133,12,20,4,99,1,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,243,90,0, + 0,0,149,0,48,0,110,1,85,0,82,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,19,0,72,20,0,0,117,2,0,0, + 112,35,88,49,59,1,0,0,97,6,0,0,88,33,85,3, + 39,0,0,0,77,16,0,0,83,1,88,19,39,0,0,0, + 77,22,0,0,11,0,32,0,85,1,36,0,41,2,97,77, + 1,0,0,67,114,101,97,116,101,115,32,97,110,32,101,110, + 99,111,100,105,110,103,32,109,97,112,32,102,114,111,109,32, + 97,32,100,101,99,111,100,105,110,103,32,109,97,112,46,10, + 10,73,102,32,97,32,116,97,114,103,101,116,32,109,97,112, + 112,105,110,103,32,105,110,32,116,104,101,32,100,101,99,111, + 100,105,110,103,32,109,97,112,32,111,99,99,117,114,115,32, + 109,117,108,116,105,112,108,101,10,116,105,109,101,115,44,32, + 116,104,101,110,32,116,104,97,116,32,116,97,114,103,101,116, + 32,105,115,32,109,97,112,112,101,100,32,116,111,32,78,111, + 110,101,32,40,117,110,100,101,102,105,110,101,100,32,109,97, + 112,112,105,110,103,41,44,10,99,97,117,115,105,110,103,32, + 97,110,32,101,120,99,101,112,116,105,111,110,32,119,104,101, + 110,32,101,110,99,111,117,110,116,101,114,101,100,32,98,121, + 32,116,104,101,32,99,104,97,114,109,97,112,32,99,111,100, + 101,99,10,100,117,114,105,110,103,32,116,114,97,110,115,108, + 97,116,105,111,110,46,10,10,79,110,101,32,101,120,97,109, + 112,108,101,32,119,104,101,114,101,32,116,104,105,115,32,104, + 97,112,112,101,110,115,32,105,115,32,99,112,56,55,53,46, + 112,121,32,119,104,105,99,104,32,100,101,99,111,100,101,115, + 10,109,117,108,116,105,112,108,101,32,99,104,97,114,97,99, + 116,101,114,32,116,111,32,92,117,48,48,49,97,46,10,10, + 78,41,1,218,5,105,116,101,109,115,41,4,218,12,100,101, + 99,111,100,105,110,103,95,109,97,112,218,1,109,218,1,107, + 218,1,118,115,4,0,0,0,32,32,32,32,114,63,0,0, + 0,218,17,109,97,107,101,95,101,110,99,111,100,105,110,103, + 95,109,97,112,114,159,1,0,0,65,4,0,0,115,56,0, + 0,0,128,0,240,26,0,9,11,128,65,216,15,27,215,15, + 33,209,15,33,214,15,35,137,3,136,1,216,15,16,139,118, + 216,19,20,136,97,139,68,224,19,23,136,65,139,68,241,9, + 0,16,36,240,10,0,12,13,128,72,114,65,0,0,0,218, + 6,105,103,110,111,114,101,218,7,114,101,112,108,97,99,101, + 218,17,120,109,108,99,104,97,114,114,101,102,114,101,112,108, + 97,99,101,218,16,98,97,99,107,115,108,97,115,104,114,101, + 112,108,97,99,101,218,11,110,97,109,101,114,101,112,108,97, + 99,101,41,4,218,1,114,78,114,94,0,0,0,114,7,1, + 0,0,41,2,78,114,94,0,0,0,114,93,0,0,0,41, + 57,114,79,0,0,0,114,119,1,0,0,218,3,115,121,115, + 218,7,95,99,111,100,101,99,115,218,11,73,109,112,111,114, + 116,69,114,114,111,114,218,3,119,104,121,218,11,83,121,115, + 116,101,109,69,114,114,111,114,218,7,95,95,97,108,108,95, + 95,114,15,0,0,0,114,10,0,0,0,114,17,0,0,0, + 114,9,0,0,0,114,18,0,0,0,114,20,0,0,0,114, + 21,0,0,0,218,9,98,121,116,101,111,114,100,101,114,114, + 8,0,0,0,114,16,0,0,0,114,19,0,0,0,114,12, + 0,0,0,114,11,0,0,0,114,14,0,0,0,114,13,0, + 0,0,114,54,0,0,0,114,22,0,0,0,114,23,0,0, + 0,114,182,0,0,0,114,24,0,0,0,114,122,0,0,0, + 114,25,0,0,0,114,160,0,0,0,114,27,0,0,0,114, + 26,0,0,0,114,28,0,0,0,114,29,0,0,0,114,6, + 0,0,0,114,7,0,0,0,114,30,0,0,0,114,31,0, + 0,0,114,32,0,0,0,114,33,0,0,0,114,34,0,0, + 0,114,35,0,0,0,114,38,0,0,0,114,39,0,0,0, + 114,152,1,0,0,114,159,1,0,0,114,47,0,0,0,114, + 40,0,0,0,114,41,0,0,0,114,42,0,0,0,114,43, + 0,0,0,114,44,0,0,0,114,45,0,0,0,114,135,1, + 0,0,218,6,95,102,97,108,115,101,218,9,101,110,99,111, + 100,105,110,103,115,114,81,0,0,0,114,65,0,0,0,114, + 63,0,0,0,218,8,60,109,111,100,117,108,101,62,114,175, + 1,0,0,1,0,0,0,115,21,2,0,0,240,3,1,1, + 1,241,2,7,1,4,243,18,0,1,16,219,0,10,240,8, + 3,1,69,1,220,4,25,242,8,13,11,45,128,7,240,48, + 0,12,27,128,8,240,6,0,25,36,208,0,35,128,6,136, + 28,240,6,0,25,36,208,0,35,128,6,136,28,240,6,0, + 16,35,128,12,240,6,0,16,35,128,12,224,3,6,135,61, + 129,61,144,72,211,3,28,240,6,0,23,35,208,4,34,128, + 67,136,41,240,6,0,17,29,129,73,240,10,0,23,35,208, + 4,34,128,67,136,41,240,6,0,17,29,128,73,240,6,0, + 12,24,128,8,216,11,23,128,8,216,11,23,128,8,216,11, + 23,128,8,244,10,32,1,27,144,5,244,0,32,1,27,247, + 68,1,64,1,1,34,241,0,64,1,1,34,244,68,2,38, + 1,12,152,22,244,0,38,1,12,244,80,1,32,1,34,208, + 33,51,244,0,32,1,34,244,68,1,47,1,12,152,22,244, + 0,47,1,12,244,98,1,34,1,31,208,33,51,244,0,34, + 1,31,244,86,1,72,1,1,72,1,144,53,244,0,72,1, + 1,72,1,244,88,2,120,3,1,72,1,144,53,244,0,120, + 3,1,72,1,247,120,7,86,1,1,72,1,241,0,86,1, + 1,72,1,247,116,2,115,1,1,72,1,241,0,115,1,1, + 72,1,244,110,3,47,1,14,244,98,1,34,1,14,242,76, + 1,8,1,35,242,20,8,1,35,242,20,12,1,19,242,28, + 12,1,19,242,28,8,1,41,242,20,8,1,41,244,20,16, + 1,21,244,36,16,1,21,242,40,8,1,30,242,20,19,1, + 13,240,46,14,1,30,217,20,32,160,24,211,20,42,128,77, + 217,20,32,160,24,211,20,42,128,77,217,21,33,160,41,211, + 21,44,128,78,217,31,43,208,44,63,211,31,64,208,4,28, + 217,30,42,208,43,61,211,30,62,208,4,27,217,25,37,160, + 109,211,25,52,208,4,22,240,24,0,10,11,128,6,222,3, + 9,220,4,20,240,3,0,4,10,248,240,117,34,0,8,19, + 243,0,1,1,69,1,217,10,21,208,22,61,192,3,209,22, + 67,211,10,68,208,4,68,251,240,3,1,1,69,1,251,240, + 92,34,0,8,19,243,0,7,1,30,224,20,24,128,77,216, + 20,24,128,77,216,21,25,128,78,216,31,35,208,4,28,216, + 30,34,208,4,27,216,25,29,210,4,22,240,15,7,1,30, + 250,115,41,0,0,0,140,5,68,31,0,195,32,48,68,56, + 0,196,31,6,68,53,3,196,37,11,68,48,3,196,48,5, + 68,53,3,196,56,18,69,13,3,197,12,1,69,13,3, }; diff --git a/contrib/tools/python3/Python/frozen_modules/frozen_only.h b/contrib/tools/python3/Python/frozen_modules/frozen_only.h index e6d3c55c264..ded8f67eb32 100644 --- a/contrib/tools/python3/Python/frozen_modules/frozen_only.h +++ b/contrib/tools/python3/Python/frozen_modules/frozen_only.h @@ -1,12 +1,12 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__frozen_only[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,0,0,0,0,243,24,0,0,0,151,0,100,0,90,0, - 2,0,101,1,100,1,171,1,0,0,0,0,0,0,1,0, - 121,2,41,3,84,122,12,72,101,108,108,111,32,119,111,114, + 0,0,0,0,0,243,24,0,0,0,149,0,83,0,114,0, + 92,1,34,0,83,1,53,1,0,0,0,0,0,0,32,0, + 103,2,41,3,84,122,12,72,101,108,108,111,32,119,111,114, 108,100,33,78,41,2,218,11,105,110,105,116,105,97,108,105, 122,101,100,218,5,112,114,105,110,116,169,0,243,0,0,0, - 0,250,20,60,102,114,111,122,101,110,32,102,114,111,122,101, + 0,218,20,60,102,114,111,122,101,110,32,102,114,111,122,101, 110,95,111,110,108,121,62,218,8,60,109,111,100,117,108,101, 62,114,7,0,0,0,1,0,0,0,115,18,0,0,0,240, 3,1,1,1,216,14,18,128,11,217,0,5,128,110,213,0, diff --git a/contrib/tools/python3/Python/frozen_modules/genericpath.h b/contrib/tools/python3/Python/frozen_modules/genericpath.h index de57e9cd64a..dff06c86ca5 100644 --- a/contrib/tools/python3/Python/frozen_modules/genericpath.h +++ b/contrib/tools/python3/Python/frozen_modules/genericpath.h @@ -1,427 +1,490 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__genericpath[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,0,0,0,0,243,166,0,0,0,151,0,100,0,90,0, - 100,1,100,2,108,1,90,1,100,1,100,2,108,2,90,2, - 103,0,100,3,162,1,90,3,100,4,132,0,90,4,100,5, - 132,0,90,5,100,6,132,0,90,6,100,7,132,0,90,7, - 100,8,132,0,90,8,100,9,132,0,90,9,100,10,132,0, - 90,10,100,11,132,0,90,11,100,12,132,0,90,12,100,13, - 132,0,90,13,100,14,132,0,90,14,100,15,132,0,90,15, - 100,16,132,0,90,16,100,17,132,0,90,17,101,18,106,38, + 0,0,0,0,0,243,184,0,0,0,149,0,83,0,114,0, + 83,1,83,2,75,1,114,1,83,1,83,2,75,2,114,2, + 47,0,83,3,81,1,114,3,83,4,26,0,114,4,83,5, + 26,0,114,5,83,6,26,0,114,6,83,7,26,0,114,7, + 83,8,26,0,114,8,83,9,26,0,114,9,83,10,26,0, + 114,10,83,11,26,0,114,11,83,12,26,0,114,12,83,13, + 26,0,114,13,83,14,26,0,114,14,83,15,26,0,114,15, + 83,16,26,0,114,16,83,17,26,0,114,17,83,18,26,0, + 114,18,83,19,26,0,114,19,83,20,26,0,114,20,92,21, + 82,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,24,0,34,0,83,21,26,0,83,22,53,2, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,114,23, + 103,2,41,23,122,152,10,80,97,116,104,32,111,112,101,114, + 97,116,105,111,110,115,32,99,111,109,109,111,110,32,116,111, + 32,109,111,114,101,32,116,104,97,110,32,111,110,101,32,79, + 83,10,68,111,32,110,111,116,32,117,115,101,32,100,105,114, + 101,99,116,108,121,46,32,32,84,104,101,32,79,83,32,115, + 112,101,99,105,102,105,99,32,109,111,100,117,108,101,115,32, + 105,109,112,111,114,116,32,116,104,101,32,97,112,112,114,111, + 112,114,105,97,116,101,10,102,117,110,99,116,105,111,110,115, + 32,102,114,111,109,32,116,104,105,115,32,109,111,100,117,108, + 101,32,116,104,101,109,115,101,108,118,101,115,46,10,233,0, + 0,0,0,78,41,16,218,12,99,111,109,109,111,110,112,114, + 101,102,105,120,218,6,101,120,105,115,116,115,218,8,103,101, + 116,97,116,105,109,101,218,8,103,101,116,99,116,105,109,101, + 218,8,103,101,116,109,116,105,109,101,218,7,103,101,116,115, + 105,122,101,218,10,105,115,100,101,118,100,114,105,118,101,218, + 5,105,115,100,105,114,218,6,105,115,102,105,108,101,218,10, + 105,115,106,117,110,99,116,105,111,110,218,6,105,115,108,105, + 110,107,218,7,108,101,120,105,115,116,115,218,8,115,97,109, + 101,102,105,108,101,218,12,115,97,109,101,111,112,101,110,102, + 105,108,101,218,8,115,97,109,101,115,116,97,116,218,13,65, + 76,76,79,87,95,77,73,83,83,73,78,71,99,1,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,243,94,0,0,0,149,0,30,0,91,0,0,0,0,0, + 0,0,0,0,82,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,85,0,53,1,0,0, + 0,0,0,0,32,0,103,2,33,0,91,4,0,0,0,0, + 0,0,0,0,91,6,0,0,0,0,0,0,0,0,52,2, + 7,0,97,3,0,0,32,0,31,0,103,1,102,0,61,3, + 31,0,102,1,41,3,122,68,84,101,115,116,32,119,104,101, + 116,104,101,114,32,97,32,112,97,116,104,32,101,120,105,115, + 116,115,46,32,32,82,101,116,117,114,110,115,32,70,97,108, + 115,101,32,102,111,114,32,98,114,111,107,101,110,32,115,121, + 109,98,111,108,105,99,32,108,105,110,107,115,70,84,41,4, + 218,2,111,115,218,4,115,116,97,116,218,7,79,83,69,114, + 114,111,114,218,10,86,97,108,117,101,69,114,114,111,114,169, + 1,218,4,112,97,116,104,115,1,0,0,0,32,218,20,60, + 102,114,111,122,101,110,32,103,101,110,101,114,105,99,112,97, + 116,104,62,114,4,0,0,0,114,4,0,0,0,16,0,0, + 0,115,48,0,0,0,128,0,240,4,3,5,21,220,8,10, + 143,7,138,7,144,4,140,13,240,6,0,12,16,248,244,5, + 0,13,20,148,90,208,11,32,243,0,1,5,21,217,15,20, + 240,3,1,5,21,250,243,12,0,0,0,130,22,25,0,153, + 16,44,3,171,1,44,3,99,1,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,94,0,0, + 0,149,0,30,0,91,0,0,0,0,0,0,0,0,0,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,85,0,53,1,0,0,0,0,0,0,32, + 0,103,2,33,0,91,4,0,0,0,0,0,0,0,0,91, + 6,0,0,0,0,0,0,0,0,52,2,7,0,97,3,0, + 0,32,0,31,0,103,1,102,0,61,3,31,0,102,1,41, + 3,122,67,84,101,115,116,32,119,104,101,116,104,101,114,32, + 97,32,112,97,116,104,32,101,120,105,115,116,115,46,32,32, + 82,101,116,117,114,110,115,32,84,114,117,101,32,102,111,114, + 32,98,114,111,107,101,110,32,115,121,109,98,111,108,105,99, + 32,108,105,110,107,115,70,84,41,4,114,20,0,0,0,218, + 5,108,115,116,97,116,114,22,0,0,0,114,23,0,0,0, + 114,24,0,0,0,115,1,0,0,0,32,114,26,0,0,0, + 114,14,0,0,0,114,14,0,0,0,26,0,0,0,115,48, + 0,0,0,128,0,240,4,3,5,21,220,8,10,143,8,138, + 8,144,20,140,14,240,6,0,12,16,248,244,5,0,13,20, + 148,90,208,11,32,243,0,1,5,21,217,15,20,240,3,1, + 5,21,250,114,27,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,243,156,0, + 0,0,149,0,30,0,91,0,0,0,0,0,0,0,0,0, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,34,0,85,0,53,1,0,0,0,0,0,0, + 110,1,91,2,0,0,0,0,0,0,0,0,82,8,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,2,0,71,0,100,18,132,0,100,19,171,2,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,90,20,121,2, - 41,20,122,152,10,80,97,116,104,32,111,112,101,114,97,116, - 105,111,110,115,32,99,111,109,109,111,110,32,116,111,32,109, - 111,114,101,32,116,104,97,110,32,111,110,101,32,79,83,10, - 68,111,32,110,111,116,32,117,115,101,32,100,105,114,101,99, - 116,108,121,46,32,32,84,104,101,32,79,83,32,115,112,101, - 99,105,102,105,99,32,109,111,100,117,108,101,115,32,105,109, - 112,111,114,116,32,116,104,101,32,97,112,112,114,111,112,114, - 105,97,116,101,10,102,117,110,99,116,105,111,110,115,32,102, - 114,111,109,32,116,104,105,115,32,109,111,100,117,108,101,32, - 116,104,101,109,115,101,108,118,101,115,46,10,233,0,0,0, - 0,78,41,13,218,12,99,111,109,109,111,110,112,114,101,102, - 105,120,218,6,101,120,105,115,116,115,218,8,103,101,116,97, - 116,105,109,101,218,8,103,101,116,99,116,105,109,101,218,8, - 103,101,116,109,116,105,109,101,218,7,103,101,116,115,105,122, - 101,218,5,105,115,100,105,114,218,6,105,115,102,105,108,101, - 218,6,105,115,108,105,110,107,218,8,115,97,109,101,102,105, - 108,101,218,12,115,97,109,101,111,112,101,110,102,105,108,101, - 218,8,115,97,109,101,115,116,97,116,218,13,65,76,76,79, - 87,95,77,73,83,83,73,78,71,99,1,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,90, - 0,0,0,151,0,9,0,116,1,0,0,0,0,0,0,0, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,1, - 0,121,2,35,0,116,4,0,0,0,0,0,0,0,0,116, - 6,0,0,0,0,0,0,0,0,102,2,36,0,114,3,1, - 0,89,0,121,1,119,0,120,3,89,0,119,1,41,3,122, - 68,84,101,115,116,32,119,104,101,116,104,101,114,32,97,32, - 112,97,116,104,32,101,120,105,115,116,115,46,32,32,82,101, - 116,117,114,110,115,32,70,97,108,115,101,32,102,111,114,32, - 98,114,111,107,101,110,32,115,121,109,98,111,108,105,99,32, - 108,105,110,107,115,70,84,41,4,218,2,111,115,218,4,115, - 116,97,116,218,7,79,83,69,114,114,111,114,218,10,86,97, - 108,117,101,69,114,114,111,114,41,1,218,4,112,97,116,104, - 115,1,0,0,0,32,250,20,60,102,114,111,122,101,110,32, - 103,101,110,101,114,105,99,112,97,116,104,62,114,4,0,0, - 0,114,4,0,0,0,16,0,0,0,115,48,0,0,0,128, - 0,240,4,3,5,21,220,8,10,143,7,137,7,144,4,140, - 13,240,6,0,12,16,248,244,5,0,13,20,148,90,208,11, - 32,242,0,1,5,21,217,15,20,240,3,1,5,21,250,115, - 12,0,0,0,130,21,24,0,152,15,42,3,169,1,42,3, + 34,0,85,1,82,10,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 36,0,33,0,91,4,0,0,0,0,0,0,0,0,91,6, + 0,0,0,0,0,0,0,0,52,2,7,0,97,3,0,0, + 32,0,31,0,103,1,102,0,61,3,31,0,102,1,41,2, + 122,37,84,101,115,116,32,119,104,101,116,104,101,114,32,97, + 32,112,97,116,104,32,105,115,32,97,32,114,101,103,117,108, + 97,114,32,102,105,108,101,70,41,6,114,20,0,0,0,114, + 21,0,0,0,114,22,0,0,0,114,23,0,0,0,218,7, + 83,95,73,83,82,69,71,218,7,115,116,95,109,111,100,101, + 169,2,114,25,0,0,0,218,2,115,116,115,2,0,0,0, + 32,32,114,26,0,0,0,114,11,0,0,0,114,11,0,0, + 0,36,0,0,0,115,66,0,0,0,128,0,240,4,3,5, + 21,220,13,15,143,87,138,87,144,84,139,93,136,2,244,6, + 0,12,16,143,60,138,60,152,2,159,10,153,10,211,11,35, + 208,4,35,248,244,5,0,13,20,148,90,208,11,32,243,0, + 1,5,21,217,15,20,240,3,1,5,21,250,243,15,0,0, + 0,130,22,56,0,184,16,65,11,3,193,10,1,65,11,3, 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,150,0,0,0,151,0,9,0,116,1, - 0,0,0,0,0,0,0,0,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,125,1,116,3,0,0,0,0,0,0, - 0,0,106,8,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,106,10,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,83,0,35,0,116,4,0,0,0,0,0,0, - 0,0,116,6,0,0,0,0,0,0,0,0,102,2,36,0, - 114,3,1,0,89,0,121,1,119,0,120,3,89,0,119,1, - 41,2,122,37,84,101,115,116,32,119,104,101,116,104,101,114, - 32,97,32,112,97,116,104,32,105,115,32,97,32,114,101,103, - 117,108,97,114,32,102,105,108,101,70,41,6,114,17,0,0, - 0,114,18,0,0,0,114,19,0,0,0,114,20,0,0,0, - 218,7,83,95,73,83,82,69,71,218,7,115,116,95,109,111, - 100,101,169,2,114,21,0,0,0,218,2,115,116,115,2,0, - 0,0,32,32,114,22,0,0,0,114,10,0,0,0,114,10, - 0,0,0,27,0,0,0,115,66,0,0,0,128,0,240,4, - 3,5,21,220,13,15,143,87,137,87,144,84,139,93,136,2, - 244,6,0,12,16,143,60,137,60,152,2,159,10,153,10,211, - 11,35,208,4,35,248,244,5,0,13,20,148,90,208,11,32, - 242,0,1,5,21,217,15,20,240,3,1,5,21,250,243,15, - 0,0,0,130,21,54,0,182,15,65,8,3,193,7,1,65, - 8,3,99,1,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,150,0,0,0,151,0,9,0, - 116,1,0,0,0,0,0,0,0,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,125,1,116,3,0,0,0,0, - 0,0,0,0,106,8,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,106,10,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,83,0,35,0,116,4,0,0,0,0, - 0,0,0,0,116,6,0,0,0,0,0,0,0,0,102,2, - 36,0,114,3,1,0,89,0,121,1,119,0,120,3,89,0, - 119,1,41,2,122,60,82,101,116,117,114,110,32,116,114,117, - 101,32,105,102,32,116,104,101,32,112,97,116,104,110,97,109, - 101,32,114,101,102,101,114,115,32,116,111,32,97,110,32,101, - 120,105,115,116,105,110,103,32,100,105,114,101,99,116,111,114, - 121,46,70,41,6,114,17,0,0,0,114,18,0,0,0,114, - 19,0,0,0,114,20,0,0,0,218,7,83,95,73,83,68, - 73,82,114,25,0,0,0,41,2,218,1,115,114,27,0,0, - 0,115,2,0,0,0,32,32,114,22,0,0,0,114,9,0, - 0,0,114,9,0,0,0,39,0,0,0,115,66,0,0,0, - 128,0,240,4,3,5,21,220,13,15,143,87,137,87,144,81, - 139,90,136,2,244,6,0,12,16,143,60,137,60,152,2,159, - 10,153,10,211,11,35,208,4,35,248,244,5,0,13,20,148, - 90,208,11,32,242,0,1,5,21,217,15,20,240,3,1,5, - 21,250,114,28,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,5,0,0,0,3,0,0,0,243,160,0,0, - 0,151,0,9,0,116,1,0,0,0,0,0,0,0,0,106, + 0,3,0,0,0,243,156,0,0,0,149,0,30,0,91,0, + 0,0,0,0,0,0,0,0,82,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,85,0, + 53,1,0,0,0,0,0,0,110,1,91,2,0,0,0,0, + 0,0,0,0,82,8,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,85,1,82,10,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 53,1,0,0,0,0,0,0,36,0,33,0,91,4,0,0, + 0,0,0,0,0,0,91,6,0,0,0,0,0,0,0,0, + 52,2,7,0,97,3,0,0,32,0,31,0,103,1,102,0, + 61,3,31,0,102,1,41,2,122,60,82,101,116,117,114,110, + 32,116,114,117,101,32,105,102,32,116,104,101,32,112,97,116, + 104,110,97,109,101,32,114,101,102,101,114,115,32,116,111,32, + 97,110,32,101,120,105,115,116,105,110,103,32,100,105,114,101, + 99,116,111,114,121,46,70,41,6,114,20,0,0,0,114,21, + 0,0,0,114,22,0,0,0,114,23,0,0,0,218,7,83, + 95,73,83,68,73,82,114,32,0,0,0,41,2,218,1,115, + 114,34,0,0,0,115,2,0,0,0,32,32,114,26,0,0, + 0,114,10,0,0,0,114,10,0,0,0,48,0,0,0,115, + 66,0,0,0,128,0,240,4,3,5,21,220,13,15,143,87, + 138,87,144,81,139,90,136,2,244,6,0,12,16,143,60,138, + 60,152,2,159,10,153,10,211,11,35,208,4,35,248,244,5, + 0,13,20,148,90,208,11,32,243,0,1,5,21,217,15,20, + 240,3,1,5,21,250,114,35,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, + 243,166,0,0,0,149,0,30,0,91,0,0,0,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,85,0,53,1,0,0,0, + 0,0,0,110,1,91,10,0,0,0,0,0,0,0,0,82, + 12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,85,1,82,14,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,36,0,33,0,91,4,0,0,0,0,0,0,0, + 0,91,6,0,0,0,0,0,0,0,0,91,8,0,0,0, + 0,0,0,0,0,52,3,7,0,97,3,0,0,32,0,31, + 0,103,1,102,0,61,3,31,0,102,1,41,2,122,38,84, + 101,115,116,32,119,104,101,116,104,101,114,32,97,32,112,97, + 116,104,32,105,115,32,97,32,115,121,109,98,111,108,105,99, + 32,108,105,110,107,70,41,8,114,20,0,0,0,114,29,0, + 0,0,114,22,0,0,0,114,23,0,0,0,218,14,65,116, + 116,114,105,98,117,116,101,69,114,114,111,114,114,21,0,0, + 0,218,7,83,95,73,83,76,78,75,114,32,0,0,0,114, + 33,0,0,0,115,2,0,0,0,32,32,114,26,0,0,0, + 114,13,0,0,0,114,13,0,0,0,60,0,0,0,115,68, + 0,0,0,128,0,240,4,3,5,21,220,13,15,143,88,138, + 88,144,100,139,94,136,2,244,6,0,12,16,143,60,138,60, + 152,2,159,10,153,10,211,11,35,208,4,35,248,244,5,0, + 13,20,148,90,164,30,208,11,48,243,0,1,5,21,217,15, + 20,240,3,1,5,21,250,115,15,0,0,0,130,22,56,0, + 184,21,65,16,3,193,15,1,65,16,3,99,1,0,0,0, + 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, + 243,48,0,0,0,149,0,91,0,0,0,0,0,0,0,0, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,85,0,53,1,0,0,0,0,0, + 0,32,0,103,1,41,2,122,85,84,101,115,116,32,119,104, + 101,116,104,101,114,32,97,32,112,97,116,104,32,105,115,32, + 97,32,106,117,110,99,116,105,111,110,10,74,117,110,99,116, + 105,111,110,115,32,97,114,101,32,110,111,116,32,115,117,112, + 112,111,114,116,101,100,32,111,110,32,116,104,101,32,99,117, + 114,114,101,110,116,32,112,108,97,116,102,111,114,109,70,169, + 2,114,20,0,0,0,218,6,102,115,112,97,116,104,114,24, + 0,0,0,115,1,0,0,0,32,114,26,0,0,0,114,12, + 0,0,0,114,12,0,0,0,70,0,0,0,243,18,0,0, + 0,128,0,244,6,0,5,7,135,73,130,73,136,100,132,79, + 216,11,16,243,0,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,3,0,0,0,243,48,0, + 0,0,149,0,91,0,0,0,0,0,0,0,0,0,82,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,34,0,85,0,53,1,0,0,0,0,0,0,32,0, + 103,1,41,2,122,117,68,101,116,101,114,109,105,110,101,115, + 32,119,104,101,116,104,101,114,32,116,104,101,32,115,112,101, + 99,105,102,105,101,100,32,112,97,116,104,32,105,115,32,111, + 110,32,97,32,87,105,110,100,111,119,115,32,68,101,118,32, + 68,114,105,118,101,46,10,68,101,118,32,68,114,105,118,101, + 115,32,97,114,101,32,110,111,116,32,115,117,112,112,111,114, + 116,101,100,32,111,110,32,116,104,101,32,99,117,114,114,101, + 110,116,32,112,108,97,116,102,111,114,109,70,114,43,0,0, + 0,114,24,0,0,0,115,1,0,0,0,32,114,26,0,0, + 0,114,9,0,0,0,114,9,0,0,0,77,0,0,0,114, + 45,0,0,0,114,46,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,66, + 0,0,0,149,0,91,0,0,0,0,0,0,0,0,0,82, 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,125,1,116, - 11,0,0,0,0,0,0,0,0,106,12,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,106, - 14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,83,0,35,0,116, - 4,0,0,0,0,0,0,0,0,116,6,0,0,0,0,0, - 0,0,0,116,8,0,0,0,0,0,0,0,0,102,3,36, - 0,114,3,1,0,89,0,121,1,119,0,120,3,89,0,119, - 1,41,2,122,38,84,101,115,116,32,119,104,101,116,104,101, - 114,32,97,32,112,97,116,104,32,105,115,32,97,32,115,121, - 109,98,111,108,105,99,32,108,105,110,107,70,41,8,114,17, - 0,0,0,218,5,108,115,116,97,116,114,19,0,0,0,114, - 20,0,0,0,218,14,65,116,116,114,105,98,117,116,101,69, - 114,114,111,114,114,18,0,0,0,218,7,83,95,73,83,76, - 78,75,114,25,0,0,0,114,26,0,0,0,115,2,0,0, - 0,32,32,114,22,0,0,0,114,11,0,0,0,114,11,0, - 0,0,51,0,0,0,115,68,0,0,0,128,0,240,4,3, - 5,21,220,13,15,143,88,137,88,144,100,139,94,136,2,244, - 6,0,12,16,143,60,137,60,152,2,159,10,153,10,211,11, - 35,208,4,35,248,244,5,0,13,20,148,90,164,30,208,11, - 48,242,0,1,5,21,217,15,20,240,3,1,5,21,250,115, - 15,0,0,0,130,21,54,0,182,20,65,13,3,193,12,1, - 65,13,3,99,1,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,0,0,0,243,64,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,106,4,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,83,0,41,1,122, - 49,82,101,116,117,114,110,32,116,104,101,32,115,105,122,101, - 32,111,102,32,97,32,102,105,108,101,44,32,114,101,112,111, - 114,116,101,100,32,98,121,32,111,115,46,115,116,97,116,40, - 41,46,41,3,114,17,0,0,0,114,18,0,0,0,218,7, - 115,116,95,115,105,122,101,169,1,218,8,102,105,108,101,110, - 97,109,101,115,1,0,0,0,32,114,22,0,0,0,114,8, - 0,0,0,114,8,0,0,0,60,0,0,0,115,23,0,0, - 0,128,0,228,11,13,143,55,137,55,144,56,211,11,28,215, - 11,36,209,11,36,208,4,36,243,0,0,0,0,99,1,0, + 0,0,0,34,0,85,0,53,1,0,0,0,0,0,0,82, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,36,0,41,1,122,49,82,101,116,117,114,110,32, + 116,104,101,32,115,105,122,101,32,111,102,32,97,32,102,105, + 108,101,44,32,114,101,112,111,114,116,101,100,32,98,121,32, + 111,115,46,115,116,97,116,40,41,46,41,3,114,20,0,0, + 0,114,21,0,0,0,218,7,115,116,95,115,105,122,101,169, + 1,218,8,102,105,108,101,110,97,109,101,115,1,0,0,0, + 32,114,26,0,0,0,114,8,0,0,0,114,8,0,0,0, + 84,0,0,0,115,23,0,0,0,128,0,228,11,13,143,55, + 138,55,144,56,211,11,28,215,11,36,209,11,36,208,4,36, + 114,46,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,3,0,0,0,243,66,0,0,0,149, + 0,91,0,0,0,0,0,0,0,0,0,82,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,85,0,53,1,0,0,0,0,0,0,82,4,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36, + 0,41,1,122,67,82,101,116,117,114,110,32,116,104,101,32, + 108,97,115,116,32,109,111,100,105,102,105,99,97,116,105,111, + 110,32,116,105,109,101,32,111,102,32,97,32,102,105,108,101, + 44,32,114,101,112,111,114,116,101,100,32,98,121,32,111,115, + 46,115,116,97,116,40,41,46,41,3,114,20,0,0,0,114, + 21,0,0,0,218,8,115,116,95,109,116,105,109,101,114,50, + 0,0,0,115,1,0,0,0,32,114,26,0,0,0,114,7, + 0,0,0,114,7,0,0,0,89,0,0,0,243,23,0,0, + 0,128,0,228,11,13,143,55,138,55,144,56,211,11,28,215, + 11,37,209,11,37,208,4,37,114,46,0,0,0,99,1,0, 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,64,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,106,4,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,83,0,41,1,122,67,82,101,116,117,114, - 110,32,116,104,101,32,108,97,115,116,32,109,111,100,105,102, - 105,99,97,116,105,111,110,32,116,105,109,101,32,111,102,32, - 97,32,102,105,108,101,44,32,114,101,112,111,114,116,101,100, - 32,98,121,32,111,115,46,115,116,97,116,40,41,46,41,3, - 114,17,0,0,0,114,18,0,0,0,218,8,115,116,95,109, - 116,105,109,101,114,38,0,0,0,115,1,0,0,0,32,114, - 22,0,0,0,114,7,0,0,0,114,7,0,0,0,65,0, - 0,0,243,23,0,0,0,128,0,228,11,13,143,55,137,55, - 144,56,211,11,28,215,11,37,209,11,37,208,4,37,114,40, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,0,0,0,243,64,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,106,4,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,83,0,41,1,122, - 61,82,101,116,117,114,110,32,116,104,101,32,108,97,115,116, - 32,97,99,99,101,115,115,32,116,105,109,101,32,111,102,32, - 97,32,102,105,108,101,44,32,114,101,112,111,114,116,101,100, - 32,98,121,32,111,115,46,115,116,97,116,40,41,46,41,3, - 114,17,0,0,0,114,18,0,0,0,218,8,115,116,95,97, - 116,105,109,101,114,38,0,0,0,115,1,0,0,0,32,114, - 22,0,0,0,114,5,0,0,0,114,5,0,0,0,70,0, - 0,0,114,43,0,0,0,114,40,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, - 0,243,64,0,0,0,151,0,116,1,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,83,0,41,1,122,65,82,101,116,117,114,110, - 32,116,104,101,32,109,101,116,97,100,97,116,97,32,99,104, - 97,110,103,101,32,116,105,109,101,32,111,102,32,97,32,102, - 105,108,101,44,32,114,101,112,111,114,116,101,100,32,98,121, - 32,111,115,46,115,116,97,116,40,41,46,41,3,114,17,0, - 0,0,114,18,0,0,0,218,8,115,116,95,99,116,105,109, - 101,114,38,0,0,0,115,1,0,0,0,32,114,22,0,0, - 0,114,6,0,0,0,114,6,0,0,0,75,0,0,0,114, - 43,0,0,0,114,40,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,6,0,0,0,3,0,0,0,243,244, - 0,0,0,151,0,124,0,115,1,121,1,116,1,0,0,0, - 0,0,0,0,0,124,0,100,2,25,0,0,0,116,2,0, - 0,0,0,0,0,0,0,116,4,0,0,0,0,0,0,0, - 0,102,2,171,2,0,0,0,0,0,0,115,35,116,5,0, - 0,0,0,0,0,0,0,116,7,0,0,0,0,0,0,0, - 0,116,8,0,0,0,0,0,0,0,0,106,10,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 0,171,2,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,125,0,116,13,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,125,1,116,15,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,125,2,116, - 17,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,68,0,93,20,0,0,92,2,0,0,125,3,125, - 4,124,4,124,2,124,3,25,0,0,0,107,55,0,0,115, - 1,140,15,124,1,100,3,124,3,26,0,99,2,1,0,83, - 0,4,0,124,1,83,0,41,4,122,71,71,105,118,101,110, - 32,97,32,108,105,115,116,32,111,102,32,112,97,116,104,110, - 97,109,101,115,44,32,114,101,116,117,114,110,115,32,116,104, - 101,32,108,111,110,103,101,115,116,32,99,111,109,109,111,110, - 32,108,101,97,100,105,110,103,32,99,111,109,112,111,110,101, - 110,116,218,0,114,2,0,0,0,78,41,9,218,10,105,115, - 105,110,115,116,97,110,99,101,218,4,108,105,115,116,218,5, - 116,117,112,108,101,218,3,109,97,112,114,17,0,0,0,218, - 6,102,115,112,97,116,104,218,3,109,105,110,218,3,109,97, - 120,218,9,101,110,117,109,101,114,97,116,101,41,5,218,1, - 109,218,2,115,49,218,2,115,50,218,1,105,218,1,99,115, - 5,0,0,0,32,32,32,32,32,114,22,0,0,0,114,3, - 0,0,0,114,3,0,0,0,81,0,0,0,115,113,0,0, - 0,128,0,225,11,12,144,82,244,10,0,12,22,144,97,152, - 1,145,100,156,84,164,53,152,77,212,11,42,220,12,17,148, - 35,148,98,151,105,145,105,160,17,211,18,35,211,12,36,136, - 1,220,9,12,136,81,139,22,128,66,220,9,12,136,81,139, - 22,128,66,220,16,25,152,34,150,13,137,4,136,1,136,49, - 216,11,12,144,2,144,49,145,5,139,58,216,19,21,144,98, - 144,113,144,54,138,77,240,5,0,17,30,240,6,0,12,14, - 128,73,114,40,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,3,0,0,0,243,106,0,0, - 0,151,0,124,0,106,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,107, - 40,0,0,120,1,114,25,1,0,124,0,106,2,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,107,40,0,0,83,0,41,1,122,53,84, - 101,115,116,32,119,104,101,116,104,101,114,32,116,119,111,32, - 115,116,97,116,32,98,117,102,102,101,114,115,32,114,101,102, - 101,114,101,110,99,101,32,116,104,101,32,115,97,109,101,32, - 102,105,108,101,41,2,218,6,115,116,95,105,110,111,218,6, - 115,116,95,100,101,118,41,2,114,59,0,0,0,114,60,0, - 0,0,115,2,0,0,0,32,32,114,22,0,0,0,114,14, - 0,0,0,114,14,0,0,0,99,0,0,0,115,44,0,0, - 0,128,0,224,12,14,143,73,137,73,152,18,159,25,153,25, - 209,12,34,242,0,1,13,35,216,12,14,143,73,137,73,152, - 18,159,25,153,25,209,12,34,240,3,1,5,36,114,40,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,110,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,125,2,116,1,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 125,3,116,5,0,0,0,0,0,0,0,0,124,2,124,3, - 171,2,0,0,0,0,0,0,83,0,41,1,122,213,84,101, - 115,116,32,119,104,101,116,104,101,114,32,116,119,111,32,112, - 97,116,104,110,97,109,101,115,32,114,101,102,101,114,101,110, - 99,101,32,116,104,101,32,115,97,109,101,32,97,99,116,117, - 97,108,32,102,105,108,101,32,111,114,32,100,105,114,101,99, - 116,111,114,121,10,10,32,32,32,32,84,104,105,115,32,105, - 115,32,100,101,116,101,114,109,105,110,101,100,32,98,121,32, - 116,104,101,32,100,101,118,105,99,101,32,110,117,109,98,101, - 114,32,97,110,100,32,105,45,110,111,100,101,32,110,117,109, - 98,101,114,32,97,110,100,10,32,32,32,32,114,97,105,115, - 101,115,32,97,110,32,101,120,99,101,112,116,105,111,110,32, - 105,102,32,97,110,32,111,115,46,115,116,97,116,40,41,32, - 99,97,108,108,32,111,110,32,101,105,116,104,101,114,32,112, - 97,116,104,110,97,109,101,32,102,97,105,108,115,46,10,32, - 32,32,32,41,3,114,17,0,0,0,114,18,0,0,0,114, - 14,0,0,0,41,4,218,2,102,49,218,2,102,50,114,59, - 0,0,0,114,60,0,0,0,115,4,0,0,0,32,32,32, - 32,114,22,0,0,0,114,12,0,0,0,114,12,0,0,0, - 106,0,0,0,115,43,0,0,0,128,0,244,12,0,10,12, - 143,23,137,23,144,18,139,27,128,66,220,9,11,143,23,137, - 23,144,18,139,27,128,66,220,11,19,144,66,152,2,211,11, - 27,208,4,27,114,40,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,110, - 0,0,0,151,0,116,1,0,0,0,0,0,0,0,0,106, - 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,125,2,116, - 1,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,171, - 1,0,0,0,0,0,0,125,3,116,5,0,0,0,0,0, - 0,0,0,124,2,124,3,171,2,0,0,0,0,0,0,83, + 0,0,243,66,0,0,0,149,0,91,0,0,0,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,85,0,53,1,0,0,0, + 0,0,0,82,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,36,0,41,1,122,61,82,101,116, + 117,114,110,32,116,104,101,32,108,97,115,116,32,97,99,99, + 101,115,115,32,116,105,109,101,32,111,102,32,97,32,102,105, + 108,101,44,32,114,101,112,111,114,116,101,100,32,98,121,32, + 111,115,46,115,116,97,116,40,41,46,41,3,114,20,0,0, + 0,114,21,0,0,0,218,8,115,116,95,97,116,105,109,101, + 114,50,0,0,0,115,1,0,0,0,32,114,26,0,0,0, + 114,5,0,0,0,114,5,0,0,0,94,0,0,0,114,54, + 0,0,0,114,46,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,3,0,0,0,243,66,0, + 0,0,149,0,91,0,0,0,0,0,0,0,0,0,82,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,34,0,85,0,53,1,0,0,0,0,0,0,82,4, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,36,0,41,1,122,65,82,101,116,117,114,110,32,116, + 104,101,32,109,101,116,97,100,97,116,97,32,99,104,97,110, + 103,101,32,116,105,109,101,32,111,102,32,97,32,102,105,108, + 101,44,32,114,101,112,111,114,116,101,100,32,98,121,32,111, + 115,46,115,116,97,116,40,41,46,41,3,114,20,0,0,0, + 114,21,0,0,0,218,8,115,116,95,99,116,105,109,101,114, + 50,0,0,0,115,1,0,0,0,32,114,26,0,0,0,114, + 6,0,0,0,114,6,0,0,0,99,0,0,0,114,54,0, + 0,0,114,46,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,6,0,0,0,3,0,0,0,243,10,1,0, + 0,149,0,85,0,40,0,0,0,0,0,0,0,100,1,0, + 0,103,1,91,1,0,0,0,0,0,0,0,0,85,0,83, + 2,5,0,0,0,91,2,0,0,0,0,0,0,0,0,91, + 4,0,0,0,0,0,0,0,0,52,2,53,2,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,100,35,0,0,91, + 5,0,0,0,0,0,0,0,0,91,7,0,0,0,0,0, + 0,0,0,91,8,0,0,0,0,0,0,0,0,82,10,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,0,53,2,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,110,0,91,13,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,110,1,91,15,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,110, + 2,91,17,0,0,0,0,0,0,0,0,85,1,53,1,0, + 0,0,0,0,0,19,0,72,20,0,0,117,2,0,0,112, + 52,88,66,85,3,5,0,0,0,58,119,0,0,100,2,0, + 0,77,15,0,0,85,1,83,3,85,3,4,0,115,2,32, + 0,36,0,11,0,32,0,85,1,36,0,41,4,122,71,71, + 105,118,101,110,32,97,32,108,105,115,116,32,111,102,32,112, + 97,116,104,110,97,109,101,115,44,32,114,101,116,117,114,110, + 115,32,116,104,101,32,108,111,110,103,101,115,116,32,99,111, + 109,109,111,110,32,108,101,97,100,105,110,103,32,99,111,109, + 112,111,110,101,110,116,218,0,114,2,0,0,0,78,41,9, + 218,10,105,115,105,110,115,116,97,110,99,101,218,4,108,105, + 115,116,218,5,116,117,112,108,101,218,3,109,97,112,114,20, + 0,0,0,114,44,0,0,0,218,3,109,105,110,218,3,109, + 97,120,218,9,101,110,117,109,101,114,97,116,101,41,5,218, + 1,109,218,2,115,49,218,2,115,50,218,1,105,218,1,99, + 115,5,0,0,0,32,32,32,32,32,114,26,0,0,0,114, + 3,0,0,0,114,3,0,0,0,105,0,0,0,115,112,0, + 0,0,128,0,230,11,12,144,82,244,10,0,12,22,144,97, + 152,1,145,100,156,84,164,53,152,77,215,11,42,209,11,42, + 220,12,17,148,35,148,98,151,105,145,105,160,17,211,18,35, + 211,12,36,136,1,220,9,12,136,81,139,22,128,66,220,9, + 12,136,81,139,22,128,66,220,16,25,152,34,150,13,137,4, + 136,1,216,11,12,144,49,145,5,141,58,216,19,21,144,98, + 144,113,144,54,138,77,241,5,0,17,30,240,6,0,12,14, + 128,73,114,46,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,3,0,0,0,243,116,0,0, + 0,149,0,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,1,82,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,58, + 72,0,0,61,1,40,0,0,0,0,0,0,0,97,25,0, + 0,32,0,85,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,1,82,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,58, + 72,0,0,36,0,41,1,122,53,84,101,115,116,32,119,104, + 101,116,104,101,114,32,116,119,111,32,115,116,97,116,32,98, + 117,102,102,101,114,115,32,114,101,102,101,114,101,110,99,101, + 32,116,104,101,32,115,97,109,101,32,102,105,108,101,41,2, + 218,6,115,116,95,105,110,111,218,6,115,116,95,100,101,118, + 41,2,114,69,0,0,0,114,70,0,0,0,115,2,0,0, + 0,32,32,114,26,0,0,0,114,17,0,0,0,114,17,0, + 0,0,123,0,0,0,115,44,0,0,0,128,0,224,12,14, + 143,73,137,73,152,18,159,25,153,25,209,12,34,247,0,1, + 13,35,216,12,14,143,73,137,73,152,18,159,25,153,25,209, + 12,34,240,3,1,5,36,114,46,0,0,0,99,2,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,243,112,0,0,0,149,0,91,0,0,0,0,0,0,0, + 0,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,85,0,53,1,0,0,0,0, + 0,0,110,2,91,0,0,0,0,0,0,0,0,0,82,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,34,0,85,1,53,1,0,0,0,0,0,0,110,3, + 91,5,0,0,0,0,0,0,0,0,88,35,53,2,0,0, + 0,0,0,0,36,0,41,1,122,201,84,101,115,116,32,119, + 104,101,116,104,101,114,32,116,119,111,32,112,97,116,104,110, + 97,109,101,115,32,114,101,102,101,114,101,110,99,101,32,116, + 104,101,32,115,97,109,101,32,97,99,116,117,97,108,32,102, + 105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121, + 10,10,84,104,105,115,32,105,115,32,100,101,116,101,114,109, + 105,110,101,100,32,98,121,32,116,104,101,32,100,101,118,105, + 99,101,32,110,117,109,98,101,114,32,97,110,100,32,105,45, + 110,111,100,101,32,110,117,109,98,101,114,32,97,110,100,10, + 114,97,105,115,101,115,32,97,110,32,101,120,99,101,112,116, + 105,111,110,32,105,102,32,97,110,32,111,115,46,115,116,97, + 116,40,41,32,99,97,108,108,32,111,110,32,101,105,116,104, + 101,114,32,112,97,116,104,110,97,109,101,32,102,97,105,108, + 115,46,10,41,3,114,20,0,0,0,114,21,0,0,0,114, + 17,0,0,0,41,4,218,2,102,49,218,2,102,50,114,69, + 0,0,0,114,70,0,0,0,115,4,0,0,0,32,32,32, + 32,114,26,0,0,0,114,15,0,0,0,114,15,0,0,0, + 130,0,0,0,115,41,0,0,0,128,0,244,12,0,10,12, + 143,23,138,23,144,18,139,27,128,66,220,9,11,143,23,138, + 23,144,18,139,27,128,66,220,11,19,144,66,211,11,27,208, + 4,27,114,46,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,112,0,0, + 0,149,0,91,0,0,0,0,0,0,0,0,0,82,2,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,34,0,85,0,53,1,0,0,0,0,0,0,110,2,91, + 0,0,0,0,0,0,0,0,0,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,85, + 1,53,1,0,0,0,0,0,0,110,3,91,5,0,0,0, + 0,0,0,0,0,88,35,53,2,0,0,0,0,0,0,36, 0,41,1,122,58,84,101,115,116,32,119,104,101,116,104,101, 114,32,116,119,111,32,111,112,101,110,32,102,105,108,101,32, 111,98,106,101,99,116,115,32,114,101,102,101,114,101,110,99, 101,32,116,104,101,32,115,97,109,101,32,102,105,108,101,41, - 3,114,17,0,0,0,218,5,102,115,116,97,116,114,14,0, - 0,0,41,4,218,3,102,112,49,218,3,102,112,50,114,59, - 0,0,0,114,60,0,0,0,115,4,0,0,0,32,32,32, - 32,114,22,0,0,0,114,13,0,0,0,114,13,0,0,0, - 119,0,0,0,115,41,0,0,0,128,0,228,9,11,143,24, - 137,24,144,35,139,29,128,66,220,9,11,143,24,137,24,144, - 35,139,29,128,66,220,11,19,144,66,152,2,211,11,27,208, - 4,27,114,40,0,0,0,99,4,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,3,0,0,0,243,240,0,0, - 0,151,0,124,0,106,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,125,4,124,2,114,29,124,0,106,1,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 2,171,1,0,0,0,0,0,0,125,5,116,3,0,0,0, - 0,0,0,0,0,124,4,124,5,171,2,0,0,0,0,0, - 0,125,4,124,0,106,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,3,171,1,0,0,0, - 0,0,0,125,6,124,6,124,4,107,68,0,0,114,42,124, - 4,100,1,122,0,0,0,125,7,124,7,124,6,107,2,0, - 0,114,32,124,0,124,7,124,7,100,1,122,0,0,0,26, - 0,124,3,107,55,0,0,114,10,124,0,100,2,124,6,26, - 0,124,0,124,6,100,2,26,0,102,2,83,0,124,7,100, - 1,122,13,0,0,125,7,124,7,124,6,107,2,0,0,114, - 1,140,32,124,0,124,0,100,2,100,3,26,0,102,2,83, - 0,41,4,122,164,83,112,108,105,116,32,116,104,101,32,101, - 120,116,101,110,115,105,111,110,32,102,114,111,109,32,97,32, - 112,97,116,104,110,97,109,101,46,10,10,32,32,32,32,69, + 3,114,20,0,0,0,218,5,102,115,116,97,116,114,17,0, + 0,0,41,4,218,3,102,112,49,218,3,102,112,50,114,69, + 0,0,0,114,70,0,0,0,115,4,0,0,0,32,32,32, + 32,114,26,0,0,0,114,16,0,0,0,114,16,0,0,0, + 143,0,0,0,115,39,0,0,0,128,0,228,9,11,143,24, + 138,24,144,35,139,29,128,66,220,9,11,143,24,138,24,144, + 35,139,29,128,66,220,11,19,144,66,211,11,27,208,4,27, + 114,46,0,0,0,99,4,0,0,0,0,0,0,0,0,0, + 0,0,4,0,0,0,3,0,0,0,243,246,0,0,0,149, + 0,85,0,82,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,1,53,1,0,0,0,0,0, + 0,110,4,85,2,40,0,0,0,0,0,0,0,97,28,0, + 0,85,0,82,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,2,53,1,0,0,0,0,0, + 0,110,5,91,3,0,0,0,0,0,0,0,0,88,69,53, + 2,0,0,0,0,0,0,110,4,85,0,82,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 3,53,1,0,0,0,0,0,0,110,6,88,100,58,148,0, + 0,97,42,0,0,85,4,83,1,45,0,0,0,110,7,88, + 118,58,18,0,0,97,32,0,0,88,7,85,7,83,1,45, + 0,0,0,4,0,85,3,58,119,0,0,97,9,0,0,85, + 0,83,2,85,6,4,0,88,6,83,2,4,0,52,2,36, + 0,85,7,83,1,45,13,0,0,110,7,88,118,58,18,0, + 0,97,2,0,0,77,32,0,0,88,0,83,2,83,3,4, + 0,52,2,36,0,41,4,122,156,83,112,108,105,116,32,116, + 104,101,32,101,120,116,101,110,115,105,111,110,32,102,114,111, + 109,32,97,32,112,97,116,104,110,97,109,101,46,10,10,69, 120,116,101,110,115,105,111,110,32,105,115,32,101,118,101,114, 121,116,104,105,110,103,32,102,114,111,109,32,116,104,101,32, 108,97,115,116,32,100,111,116,32,116,111,32,116,104,101,32, - 101,110,100,44,32,105,103,110,111,114,105,110,103,10,32,32, - 32,32,108,101,97,100,105,110,103,32,100,111,116,115,46,32, - 32,82,101,116,117,114,110,115,32,34,40,114,111,111,116,44, - 32,101,120,116,41,34,59,32,101,120,116,32,109,97,121,32, - 98,101,32,101,109,112,116,121,46,233,1,0,0,0,78,114, - 2,0,0,0,41,2,218,5,114,102,105,110,100,114,56,0, - 0,0,41,8,218,1,112,218,3,115,101,112,218,6,97,108, - 116,115,101,112,218,6,101,120,116,115,101,112,218,8,115,101, - 112,73,110,100,101,120,218,11,97,108,116,115,101,112,73,110, - 100,101,120,218,8,100,111,116,73,110,100,101,120,218,13,102, - 105,108,101,110,97,109,101,73,110,100,101,120,115,8,0,0, - 0,32,32,32,32,32,32,32,32,114,22,0,0,0,218,9, - 95,115,112,108,105,116,101,120,116,114,84,0,0,0,133,0, - 0,0,115,162,0,0,0,128,0,240,14,0,16,17,143,119, - 137,119,144,115,139,124,128,72,217,7,13,216,22,23,151,103, - 145,103,152,102,147,111,136,11,220,19,22,144,120,160,27,211, - 19,45,136,8,224,15,16,143,119,137,119,144,118,139,127,128, - 72,216,7,15,144,40,210,7,26,224,24,32,160,49,153,12, - 136,13,216,14,27,152,104,210,14,38,216,15,16,144,29,152, - 125,168,81,153,127,208,15,47,176,54,210,15,57,216,23,24, - 152,25,152,40,144,124,160,81,160,120,160,121,160,92,208,23, - 49,208,16,49,216,12,25,152,81,209,12,30,136,77,240,7, - 0,15,28,152,104,211,14,38,240,10,0,12,13,136,97,144, - 2,144,17,136,101,136,56,128,79,114,40,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,7, - 0,0,0,243,208,0,0,0,151,0,100,1,120,1,125,2, - 125,3,124,1,68,0,93,76,0,0,125,4,116,1,0,0, - 0,0,0,0,0,0,124,4,116,2,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,114,3,100,2,125,2, - 140,22,116,1,0,0,0,0,0,0,0,0,124,4,116,4, - 0,0,0,0,0,0,0,0,171,2,0,0,0,0,0,0, - 114,3,100,2,125,3,140,41,116,7,0,0,0,0,0,0, - 0,0,124,0,155,0,100,3,124,4,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,10, + 101,110,100,44,32,105,103,110,111,114,105,110,103,10,108,101, + 97,100,105,110,103,32,100,111,116,115,46,32,32,82,101,116, + 117,114,110,115,32,34,40,114,111,111,116,44,32,101,120,116, + 41,34,59,32,101,120,116,32,109,97,121,32,98,101,32,101, + 109,112,116,121,46,233,1,0,0,0,78,114,2,0,0,0, + 41,2,218,5,114,102,105,110,100,114,66,0,0,0,41,8, + 218,1,112,218,3,115,101,112,218,6,97,108,116,115,101,112, + 218,6,101,120,116,115,101,112,218,8,115,101,112,73,110,100, + 101,120,218,11,97,108,116,115,101,112,73,110,100,101,120,218, + 8,100,111,116,73,110,100,101,120,218,13,102,105,108,101,110, + 97,109,101,73,110,100,101,120,115,8,0,0,0,32,32,32, + 32,32,32,32,32,114,26,0,0,0,218,9,95,115,112,108, + 105,116,101,120,116,114,94,0,0,0,157,0,0,0,115,148, + 0,0,0,128,0,240,14,0,16,17,143,119,137,119,144,115, + 139,124,128,72,222,7,13,216,22,23,151,103,145,103,152,102, + 147,111,136,11,220,19,22,144,120,211,19,45,136,8,224,15, + 16,143,119,137,119,144,118,139,127,128,72,216,7,15,211,7, + 26,224,24,32,160,49,153,12,136,13,216,14,27,211,14,38, + 216,15,16,152,125,168,81,153,127,208,15,47,176,54,211,15, + 57,216,23,24,152,25,152,40,144,124,160,81,160,121,160,92, + 208,23,49,208,16,49,216,12,25,152,81,209,12,30,136,77, + 240,7,0,15,28,213,14,38,240,10,0,12,13,144,2,144, + 17,136,101,136,56,128,79,114,46,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,6,0,0,0,7,0,0, + 0,243,254,0,0,0,149,0,83,1,61,1,112,35,85,1, + 19,0,72,89,0,0,110,4,91,1,0,0,0,0,0,0, + 0,0,85,4,91,2,0,0,0,0,0,0,0,0,53,2, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,97,4, + 0,0,83,2,110,2,77,28,0,0,91,1,0,0,0,0, + 0,0,0,0,85,4,91,4,0,0,0,0,0,0,0,0, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 97,4,0,0,83,2,110,3,77,53,0,0,91,7,0,0, + 0,0,0,0,0,0,85,0,14,0,83,3,85,4,82,8, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,155,2,157,3,171,1,0,0,0,0,0,0,100,0, - 130,2,4,0,124,2,114,15,124,3,114,12,116,7,0,0, - 0,0,0,0,0,0,100,4,171,1,0,0,0,0,0,0, - 100,0,130,2,121,0,121,0,41,5,78,70,84,122,59,40, - 41,32,97,114,103,117,109,101,110,116,32,109,117,115,116,32, - 98,101,32,115,116,114,44,32,98,121,116,101,115,44,32,111, - 114,32,111,115,46,80,97,116,104,76,105,107,101,32,111,98, - 106,101,99,116,44,32,110,111,116,32,122,46,67,97,110,39, - 116,32,109,105,120,32,115,116,114,105,110,103,115,32,97,110, - 100,32,98,121,116,101,115,32,105,110,32,112,97,116,104,32, - 99,111,109,112,111,110,101,110,116,115,41,6,114,50,0,0, - 0,218,3,115,116,114,218,5,98,121,116,101,115,218,9,84, - 121,112,101,69,114,114,111,114,218,9,95,95,99,108,97,115, - 115,95,95,218,8,95,95,110,97,109,101,95,95,41,5,218, - 8,102,117,110,99,110,97,109,101,218,4,97,114,103,115,218, - 6,104,97,115,115,116,114,218,8,104,97,115,98,121,116,101, - 115,114,31,0,0,0,115,5,0,0,0,32,32,32,32,32, - 114,22,0,0,0,218,16,95,99,104,101,99,107,95,97,114, - 103,95,116,121,112,101,115,114,95,0,0,0,156,0,0,0, - 115,129,0,0,0,128,0,216,24,29,208,4,29,128,70,136, - 88,219,13,17,136,1,220,11,21,144,97,156,19,212,11,29, - 216,21,25,137,70,220,13,23,152,1,156,53,212,13,33,216, - 23,27,137,72,228,18,27,152,120,152,106,240,0,1,41,55, - 216,55,56,183,123,177,123,215,55,75,209,55,75,208,54,78, + 0,0,82,10,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,60,2,14,0,51,3,53,1,0,0, + 0,0,0,0,83,0,101,2,11,0,32,0,85,2,40,0, + 0,0,0,0,0,0,97,20,0,0,85,3,40,0,0,0, + 0,0,0,0,97,12,0,0,91,7,0,0,0,0,0,0, + 0,0,83,4,53,1,0,0,0,0,0,0,83,0,101,2, + 103,0,103,0,41,5,78,70,84,122,59,40,41,32,97,114, + 103,117,109,101,110,116,32,109,117,115,116,32,98,101,32,115, + 116,114,44,32,98,121,116,101,115,44,32,111,114,32,111,115, + 46,80,97,116,104,76,105,107,101,32,111,98,106,101,99,116, + 44,32,110,111,116,32,122,46,67,97,110,39,116,32,109,105, + 120,32,115,116,114,105,110,103,115,32,97,110,100,32,98,121, + 116,101,115,32,105,110,32,112,97,116,104,32,99,111,109,112, + 111,110,101,110,116,115,41,6,114,61,0,0,0,218,3,115, + 116,114,218,5,98,121,116,101,115,218,9,84,121,112,101,69, + 114,114,111,114,218,9,95,95,99,108,97,115,115,95,95,218, + 8,95,95,110,97,109,101,95,95,41,5,218,8,102,117,110, + 99,110,97,109,101,218,4,97,114,103,115,218,6,104,97,115, + 115,116,114,218,8,104,97,115,98,121,116,101,115,114,38,0, + 0,0,115,5,0,0,0,32,32,32,32,32,114,26,0,0, + 0,218,16,95,99,104,101,99,107,95,97,114,103,95,116,121, + 112,101,115,114,105,0,0,0,180,0,0,0,115,133,0,0, + 0,128,0,216,24,29,208,4,29,128,70,219,13,17,136,1, + 220,11,21,144,97,156,19,215,11,29,209,11,29,216,21,25, + 138,70,220,13,23,152,1,156,53,215,13,33,209,13,33,216, + 23,27,138,72,228,18,27,152,120,152,106,240,0,1,41,55, + 216,55,56,183,123,177,123,215,55,75,209,55,75,209,54,78, 240,3,1,29,80,1,243,0,1,19,81,1,216,86,90,240, - 3,1,13,91,1,240,13,0,14,18,241,16,0,8,14,145, + 3,1,13,91,1,241,13,0,14,18,246,16,0,8,14,150, 40,220,14,23,208,24,72,211,14,73,200,116,208,8,83,240, - 3,0,19,27,128,118,114,40,0,0,0,99,0,0,0,0, + 3,0,19,27,128,118,114,46,0,0,0,99,0,0,0,0, 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, - 243,28,0,0,0,151,0,101,0,90,1,100,0,90,2,100, - 1,90,3,100,2,132,0,90,4,100,3,132,0,90,5,121, - 4,41,5,114,15,0,0,0,122,36,83,112,101,99,105,97, - 108,32,118,97,108,117,101,32,102,111,114,32,117,115,101,32, - 105,110,32,114,101,97,108,112,97,116,104,40,41,46,99,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,243,4,0,0,0,151,0,121,1,41,2,78,122, - 21,111,115,46,112,97,116,104,46,65,76,76,79,87,95,77, - 73,83,83,73,78,71,169,0,169,1,218,4,115,101,108,102, - 115,1,0,0,0,32,114,22,0,0,0,218,8,95,95,114, - 101,112,114,95,95,122,22,65,76,76,79,87,95,77,73,83, - 83,73,78,71,46,95,95,114,101,112,114,95,95,173,0,0, - 0,115,5,0,0,0,128,0,216,15,38,114,40,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,3,0,0,0,243,46,0,0,0,151,0,124,0,106,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,83,0,41,1,78,41,2,114,89,0, - 0,0,114,90,0,0,0,114,99,0,0,0,115,1,0,0, - 0,32,114,22,0,0,0,218,10,95,95,114,101,100,117,99, - 101,95,95,122,24,65,76,76,79,87,95,77,73,83,83,73, - 78,71,46,95,95,114,101,100,117,99,101,95,95,175,0,0, - 0,115,18,0,0,0,128,0,216,15,19,143,126,137,126,215, - 15,38,209,15,38,208,8,38,114,40,0,0,0,78,41,6, - 114,90,0,0,0,218,10,95,95,109,111,100,117,108,101,95, - 95,218,12,95,95,113,117,97,108,110,97,109,101,95,95,218, - 7,95,95,100,111,99,95,95,114,101,0,0,0,114,103,0, - 0,0,114,98,0,0,0,114,40,0,0,0,114,22,0,0, - 0,114,15,0,0,0,114,15,0,0,0,170,0,0,0,115, - 15,0,0,0,132,0,225,4,46,242,2,1,5,39,243,4, - 1,5,39,114,40,0,0,0,114,15,0,0,0,41,21,114, - 106,0,0,0,114,17,0,0,0,114,18,0,0,0,218,7, - 95,95,97,108,108,95,95,114,4,0,0,0,114,10,0,0, - 0,114,9,0,0,0,114,11,0,0,0,114,8,0,0,0, - 114,7,0,0,0,114,5,0,0,0,114,6,0,0,0,114, - 3,0,0,0,114,14,0,0,0,114,12,0,0,0,114,13, - 0,0,0,114,84,0,0,0,114,95,0,0,0,218,6,111, - 98,106,101,99,116,218,7,95,95,110,101,119,95,95,114,15, - 0,0,0,114,98,0,0,0,114,40,0,0,0,114,22,0, - 0,0,218,8,60,109,111,100,117,108,101,62,114,110,0,0, - 0,1,0,0,0,115,125,0,0,0,240,3,1,1,1,241, - 2,4,1,4,243,10,0,1,10,219,0,11,242,4,2,11, - 40,128,7,242,14,6,1,16,242,22,6,1,36,242,24,6, - 1,36,242,24,6,1,36,242,18,2,1,37,242,10,2,1, - 38,242,10,2,1,38,242,10,2,1,38,242,12,14,1,14, - 242,36,3,1,36,242,14,8,1,28,242,26,4,1,28,242, - 28,21,1,20,242,46,11,1,84,1,240,28,0,2,8,135, - 30,129,30,247,2,5,1,39,240,0,5,1,39,243,3,0, - 2,16,241,2,5,1,39,114,40,0,0,0, + 243,36,0,0,0,149,0,92,0,114,1,83,0,114,2,83, + 1,114,3,83,2,114,4,83,3,26,0,114,5,83,4,26, + 0,114,6,83,5,114,7,103,6,41,7,114,18,0,0,0, + 233,194,0,0,0,122,36,83,112,101,99,105,97,108,32,118, + 97,108,117,101,32,102,111,114,32,117,115,101,32,105,110,32, + 114,101,97,108,112,97,116,104,40,41,46,99,1,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, + 243,4,0,0,0,149,0,103,1,41,2,78,122,21,111,115, + 46,112,97,116,104,46,65,76,76,79,87,95,77,73,83,83, + 73,78,71,169,0,169,1,218,4,115,101,108,102,115,1,0, + 0,0,32,114,26,0,0,0,218,8,95,95,114,101,112,114, + 95,95,218,22,65,76,76,79,87,95,77,73,83,83,73,78, + 71,46,95,95,114,101,112,114,95,95,197,0,0,0,115,5, + 0,0,0,128,0,216,15,38,114,46,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, + 0,0,243,46,0,0,0,149,0,85,0,82,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,36,0,41,1,78,41,2,114,99,0,0,0,114, + 100,0,0,0,114,110,0,0,0,115,1,0,0,0,32,114, + 26,0,0,0,218,10,95,95,114,101,100,117,99,101,95,95, + 218,24,65,76,76,79,87,95,77,73,83,83,73,78,71,46, + 95,95,114,101,100,117,99,101,95,95,199,0,0,0,115,18, + 0,0,0,128,0,216,15,19,143,126,137,126,215,15,38,209, + 15,38,208,8,38,114,46,0,0,0,114,109,0,0,0,78, + 41,8,114,100,0,0,0,218,10,95,95,109,111,100,117,108, + 101,95,95,218,12,95,95,113,117,97,108,110,97,109,101,95, + 95,218,15,95,95,102,105,114,115,116,108,105,110,101,110,111, + 95,95,218,7,95,95,100,111,99,95,95,114,112,0,0,0, + 114,115,0,0,0,218,21,95,95,115,116,97,116,105,99,95, + 97,116,116,114,105,98,117,116,101,115,95,95,114,109,0,0, + 0,114,46,0,0,0,114,26,0,0,0,114,18,0,0,0, + 114,18,0,0,0,194,0,0,0,115,15,0,0,0,134,0, + 225,4,46,242,2,1,5,39,245,4,1,5,39,114,46,0, + 0,0,114,18,0,0,0,41,24,114,120,0,0,0,114,20, + 0,0,0,114,21,0,0,0,218,7,95,95,97,108,108,95, + 95,114,4,0,0,0,114,14,0,0,0,114,11,0,0,0, + 114,10,0,0,0,114,13,0,0,0,114,12,0,0,0,114, + 9,0,0,0,114,8,0,0,0,114,7,0,0,0,114,5, + 0,0,0,114,6,0,0,0,114,3,0,0,0,114,17,0, + 0,0,114,15,0,0,0,114,16,0,0,0,114,94,0,0, + 0,114,105,0,0,0,218,6,111,98,106,101,99,116,218,7, + 95,95,110,101,119,95,95,114,18,0,0,0,114,109,0,0, + 0,114,46,0,0,0,114,26,0,0,0,218,8,60,109,111, + 100,117,108,101,62,114,125,0,0,0,1,0,0,0,115,141, + 0,0,0,240,3,1,1,1,241,2,4,1,4,243,10,0, + 1,10,219,0,11,242,4,2,11,79,1,128,7,242,14,6, + 1,16,242,20,6,1,16,242,20,6,1,36,242,24,6,1, + 36,242,24,6,1,36,242,20,4,1,17,242,14,4,1,17, + 242,14,2,1,37,242,10,2,1,38,242,10,2,1,38,242, + 10,2,1,38,242,12,14,1,14,242,36,3,1,36,242,14, + 8,1,28,242,26,4,1,28,242,28,21,1,20,242,46,11, + 1,84,1,240,28,0,2,8,135,30,129,30,247,2,5,1, + 39,240,0,5,1,39,243,3,0,2,16,241,2,5,1,39, + 114,46,0,0,0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/getpath.h b/contrib/tools/python3/Python/frozen_modules/getpath.h index 6e49661c056..4ea99da7dbe 100644 --- a/contrib/tools/python3/Python/frozen_modules/getpath.h +++ b/contrib/tools/python3/Python/frozen_modules/getpath.h @@ -1,745 +1,858 @@ /* Auto-generated by Programs/_freeze_module.c */ const unsigned char _Py_M__getpath[] = { 99,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0, - 0,0,0,0,0,243,202,19,0,0,151,0,101,0,106,3, + 0,0,0,0,0,243,10,26,0,0,149,0,92,0,82,3, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,0,171,1,0,0,0,0,0,0,120,1,115,2, - 1,0,101,2,90,3,101,4,100,1,107,40,0,0,115,5, - 101,4,100,2,107,40,0,0,114,60,100,3,90,5,100,4, - 90,6,100,5,101,7,155,0,157,2,90,8,101,3,155,0, - 100,6,101,7,155,0,100,7,101,9,155,0,157,5,90,10, - 101,10,155,0,100,8,157,2,101,10,155,0,100,9,157,2, - 103,2,90,11,101,3,155,0,100,6,101,7,155,0,100,7, - 101,9,155,0,100,10,157,6,90,12,100,11,103,1,90,13, - 100,12,90,14,101,3,155,0,100,6,101,7,155,0,101,9, - 155,0,100,13,157,5,90,15,100,14,90,16,100,15,90,17, - 110,58,101,4,100,16,107,40,0,0,114,53,100,3,90,5, - 101,18,155,0,100,17,157,2,90,6,100,5,90,8,100,18, - 90,10,101,10,155,0,100,19,157,2,101,10,155,0,100,20, - 157,2,103,2,90,11,101,3,155,0,90,12,100,21,103,1, - 90,13,100,12,90,14,100,5,101,7,155,0,101,9,155,0, - 101,19,120,1,115,2,1,0,100,22,155,0,100,13,157,5, - 90,15,100,23,101,20,155,0,100,24,157,3,90,21,100,25, - 90,16,100,26,90,17,101,22,100,27,156,1,100,28,132,2, - 90,23,101,0,106,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,29,171,1,0,0,0,0, - 0,0,90,24,101,0,106,3,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,30,171,1,0,0, - 0,0,0,0,90,25,101,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,31,171,1, - 0,0,0,0,0,0,90,26,101,0,106,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,32, - 171,1,0,0,0,0,0,0,90,27,101,0,106,3,0,0, + 0,0,83,0,53,1,0,0,0,0,0,0,61,1,40,0, + 0,0,0,0,0,0,100,2,0,0,32,0,92,2,114,3, + 92,4,61,1,40,0,0,0,0,0,0,0,100,2,0,0, + 32,0,83,1,114,4,92,5,83,2,58,88,0,0,100,6, + 0,0,92,5,83,3,58,88,0,0,97,66,0,0,83,4, + 114,6,83,5,114,7,83,6,92,8,14,0,51,2,114,9, + 92,3,14,0,83,7,92,8,14,0,83,8,92,10,14,0, + 92,4,14,0,51,6,114,11,92,11,14,0,83,9,51,2, + 92,11,14,0,83,10,51,2,47,2,114,12,92,3,14,0, + 83,7,92,8,14,0,83,8,92,10,14,0,92,4,14,0, + 83,11,51,7,114,13,83,12,47,1,114,14,83,13,114,15, + 92,3,14,0,83,7,92,8,14,0,92,10,14,0,92,4, + 14,0,83,14,51,6,114,16,83,15,114,17,83,16,114,18, + 79,64,92,5,83,17,58,88,0,0,97,58,0,0,83,4, + 114,6,92,19,14,0,83,18,51,2,114,7,83,6,114,9, + 83,19,114,11,92,11,14,0,83,20,51,2,92,11,14,0, + 83,21,51,2,47,2,114,12,92,3,14,0,114,13,83,22, + 47,1,114,14,83,13,114,15,83,6,92,8,14,0,92,10, + 14,0,92,20,61,1,40,0,0,0,0,0,0,0,100,2, + 0,0,32,0,83,1,14,0,83,14,51,5,114,16,83,23, + 92,21,14,0,83,24,51,3,114,22,83,25,114,17,83,26, + 114,18,92,23,83,27,46,1,83,28,26,0,106,2,114,24, + 92,0,82,3,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,29,53,1,0,0,0,0,0,0, + 114,25,92,0,82,3,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,83,30,53,1,0,0,0,0, + 0,0,114,26,92,0,82,3,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,31,53,1,0,0, + 0,0,0,0,114,27,92,0,82,3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,32,53,1, + 0,0,0,0,0,0,114,28,92,0,82,3,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,33, + 53,1,0,0,0,0,0,0,114,29,92,0,82,3,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,33,171,1,0,0,0,0,0,0,90,28,101,0,106,3, + 83,34,53,1,0,0,0,0,0,0,114,30,92,0,82,3, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,34,171,1,0,0,0,0,0,0,90,29,101,0, - 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,35,171,1,0,0,0,0,0,0,90,30, - 101,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,36,171,1,0,0,0,0,0,0, - 90,31,101,0,100,37,25,0,0,0,90,32,101,0,106,3, + 0,0,83,35,53,1,0,0,0,0,0,0,114,31,92,0, + 82,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,36,53,1,0,0,0,0,0,0,114,32, + 92,0,83,37,5,0,0,0,114,33,92,0,82,3,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,38,100,39,171,2,0,0,0,0,0,0,90,33, - 101,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,40,171,1,0,0,0,0,0,0, - 90,34,101,0,106,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,41,171,1,0,0,0,0, - 0,0,90,35,100,42,90,36,100,42,90,37,100,42,90,38, - 2,0,101,39,101,24,171,1,0,0,0,0,0,0,90,40, - 101,24,115,22,9,0,101,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,43,103,0, - 171,2,0,0,0,0,0,0,100,44,25,0,0,0,90,24, - 101,24,115,2,101,8,90,24,101,42,114,25,2,0,101,43, - 101,24,101,42,171,2,0,0,0,0,0,0,115,16,2,0, - 101,44,101,24,101,42,122,0,0,0,171,1,0,0,0,0, - 0,0,114,5,101,24,101,42,122,0,0,0,90,24,101,45, - 114,4,101,26,115,2,101,46,90,26,101,26,115,12,101,17, - 101,24,118,0,114,8,2,0,101,47,101,24,171,1,0,0, - 0,0,0,0,90,26,101,26,115,3,101,46,90,26,110,7, - 101,4,100,2,107,40,0,0,114,2,101,26,90,46,101,26, - 115,47,101,24,114,45,101,48,114,43,101,48,106,99,0,0, + 83,38,83,39,53,2,0,0,0,0,0,0,114,34,92,0, + 82,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,40,53,1,0,0,0,0,0,0,114,35, + 92,0,82,3,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,41,53,1,0,0,0,0,0,0, + 114,36,92,0,82,3,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,83,42,53,1,0,0,0,0, + 0,0,114,37,92,38,34,0,92,37,53,1,0,0,0,0, + 0,0,114,39,83,43,114,40,83,43,114,41,92,25,40,0, + 0,0,0,0,0,0,100,22,0,0,30,0,92,0,82,3, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 101,16,171,1,0,0,0,0,0,0,68,0,93,23,0,0, - 90,50,2,0,101,51,101,50,101,24,171,2,0,0,0,0, - 0,0,90,50,2,0,101,44,101,50,171,1,0,0,0,0, - 0,0,115,1,140,21,101,50,90,26,1,0,110,1,4,0, - 101,26,115,12,100,22,90,26,2,0,101,47,100,7,171,1, - 0,0,0,0,0,0,90,52,101,52,90,36,101,53,115,2, - 101,54,114,44,101,4,100,2,107,40,0,0,114,19,101,55, - 114,17,2,0,101,56,101,57,171,1,0,0,0,0,0,0, - 155,0,100,45,101,7,155,0,100,7,101,9,155,0,157,5, - 90,27,110,2,101,26,90,27,101,46,115,2,101,27,90,46, - 101,53,120,1,115,2,1,0,101,54,90,26,2,0,101,56, - 101,26,171,1,0,0,0,0,0,0,90,52,100,46,90,58, - 101,25,114,3,100,47,90,58,110,8,101,33,114,6,101,59, - 114,4,101,45,115,2,101,59,90,25,100,42,90,60,101,25, - 115,232,101,45,115,230,9,0,101,52,120,1,115,8,1,0, - 2,0,101,56,101,26,171,1,0,0,0,0,0,0,90,61, - 2,0,101,56,101,61,171,1,0,0,0,0,0,0,90,60, - 9,0,2,0,101,62,2,0,101,51,101,60,101,14,171,2, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,90,63, - 101,63,68,0,93,186,0,0,90,66,101,66,106,135,0,0, + 0,0,83,44,47,0,53,2,0,0,0,0,0,0,83,45, + 5,0,0,0,114,25,92,25,40,0,0,0,0,0,0,0, + 100,2,0,0,92,9,114,25,92,43,40,0,0,0,0,0, + 0,0,97,35,0,0,92,44,34,0,92,25,92,43,53,2, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,100,21, + 0,0,92,45,34,0,92,25,92,43,45,0,0,0,53,1, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,97,5, + 0,0,92,25,92,43,45,0,0,0,114,25,92,46,40,0, + 0,0,0,0,0,0,97,9,0,0,92,27,40,0,0,0, + 0,0,0,0,100,2,0,0,92,47,114,27,92,27,40,0, + 0,0,0,0,0,0,100,14,0,0,92,18,92,25,59,0, + 0,0,97,8,0,0,92,48,34,0,92,25,53,1,0,0, + 0,0,0,0,114,27,92,27,40,0,0,0,0,0,0,0, + 100,3,0,0,92,47,114,27,79,8,92,5,83,3,58,88, + 0,0,97,2,0,0,92,27,114,47,92,27,40,0,0,0, + 0,0,0,0,100,64,0,0,92,25,40,0,0,0,0,0, + 0,0,97,57,0,0,92,49,40,0,0,0,0,0,0,0, + 97,50,0,0,92,49,82,101,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,92,17,53,1,0,0, + 0,0,0,0,19,0,72,29,0,0,114,51,92,52,34,0, + 92,51,92,25,53,2,0,0,0,0,0,0,114,51,92,45, + 34,0,92,51,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,100,2,0,0,77,27,0,0,92,51,114,27, + 32,0,79,2,11,0,32,0,92,27,40,0,0,0,0,0, + 0,0,100,12,0,0,83,1,114,27,92,48,34,0,83,8, + 53,1,0,0,0,0,0,0,114,53,92,53,114,40,92,54, + 40,0,0,0,0,0,0,0,100,7,0,0,92,55,40,0, + 0,0,0,0,0,0,97,69,0,0,92,5,83,3,58,88, + 0,0,97,24,0,0,92,56,40,0,0,0,0,0,0,0, + 97,17,0,0,92,57,34,0,92,58,53,1,0,0,0,0, + 0,0,14,0,83,46,92,8,14,0,83,8,92,10,14,0, + 51,5,114,28,79,11,92,47,61,1,40,0,0,0,0,0, + 0,0,100,2,0,0,32,0,92,27,114,28,92,47,40,0, + 0,0,0,0,0,0,100,2,0,0,92,28,114,47,92,54, + 61,1,40,0,0,0,0,0,0,0,100,2,0,0,32,0, + 92,55,114,27,92,57,34,0,92,27,53,1,0,0,0,0, + 0,0,114,53,83,47,114,59,92,26,40,0,0,0,0,0, + 0,0,97,3,0,0,83,48,114,59,79,23,92,34,40,0, + 0,0,0,0,0,0,97,16,0,0,92,60,40,0,0,0, + 0,0,0,0,97,9,0,0,92,46,40,0,0,0,0,0, + 0,0,100,2,0,0,92,60,114,26,83,43,114,61,92,26, + 40,0,0,0,0,0,0,0,71,1,100,27,0,0,92,46, + 40,0,0,0,0,0,0,0,71,1,100,19,0,0,30,0, + 92,53,61,1,40,0,0,0,0,0,0,0,100,8,0,0, + 32,0,92,57,34,0,92,27,53,1,0,0,0,0,0,0, + 114,62,92,57,34,0,92,62,53,1,0,0,0,0,0,0, + 114,61,30,0,92,63,34,0,92,52,34,0,92,61,92,15, + 53,2,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 114,64,92,64,19,0,72,225,0,0,114,67,92,67,82,137, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,48,171,1,0,0,0,0,0,0,92,3,0,0,90,68, - 90,69,90,70,101,69,115,1,140,27,101,68,106,143,0,0, + 0,0,83,49,53,1,0,0,0,0,0,0,117,3,0,0, + 114,69,114,70,114,71,92,70,40,0,0,0,0,0,0,0, + 100,2,0,0,77,33,0,0,92,69,82,145,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,82,147,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,83,30,58,88,0,0,100,2,0,0,77,69,0,0, + 92,71,82,145,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,61,1, + 114,53,114,40,92,28,40,0,0,0,0,0,0,0,100,131, + 0,0,30,0,92,74,34,0,92,27,53,1,0,0,0,0, + 0,0,114,28,92,28,92,27,58,88,0,0,97,2,0,0, + 83,1,114,28,92,28,40,0,0,0,0,0,0,0,100,107, + 0,0,92,52,34,0,92,53,92,76,34,0,92,27,53,1, + 0,0,0,0,0,0,53,2,0,0,0,0,0,0,114,28, + 92,5,83,17,58,119,0,0,97,86,0,0,92,23,34,0, + 92,28,53,1,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,100,73,0,0,92,76,34,0,92,27,53,1,0,0, + 0,0,0,0,114,77,92,9,83,6,92,8,14,0,83,8, + 92,10,14,0,51,4,52,2,19,0,72,51,0,0,114,78, + 92,78,92,43,40,0,0,0,0,0,0,0,97,2,0,0, + 92,43,79,1,83,1,45,13,0,0,114,78,92,77,92,78, + 58,88,0,0,97,2,0,0,77,25,0,0,92,52,34,0, + 92,53,92,78,53,2,0,0,0,0,0,0,114,78,92,23, + 34,0,92,78,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,100,2,0,0,77,49,0,0,92,78,114,28, + 32,0,79,2,11,0,32,0,32,0,79,4,11,0,32,0, + 83,43,114,61,92,28,40,0,0,0,0,0,0,0,100,20, + 0,0,92,27,61,1,40,0,0,0,0,0,0,0,100,11, + 0,0,32,0,92,47,61,1,40,0,0,0,0,0,0,0, + 100,2,0,0,32,0,83,1,114,28,92,47,40,0,0,0, + 0,0,0,0,100,2,0,0,92,28,114,47,92,47,40,0, + 0,0,0,0,0,0,97,9,0,0,30,0,92,74,34,0, + 92,47,53,1,0,0,0,0,0,0,114,47,92,53,40,0, + 0,0,0,0,0,0,100,51,0,0,92,5,83,3,58,88, + 0,0,97,45,0,0,92,58,40,0,0,0,0,0,0,0, + 97,38,0,0,92,57,34,0,92,58,53,1,0,0,0,0, + 0,0,114,81,92,82,34,0,83,51,26,0,92,12,19,0, + 53,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,97,10,0,0,92,74,34,0, + 92,81,53,1,0,0,0,0,0,0,114,53,92,53,114,40, + 92,53,40,0,0,0,0,0,0,0,100,17,0,0,92,47, + 40,0,0,0,0,0,0,0,97,10,0,0,92,57,34,0, + 92,47,53,1,0,0,0,0,0,0,61,1,114,53,114,40, + 92,40,40,0,0,0,0,0,0,0,100,15,0,0,92,47, + 40,0,0,0,0,0,0,0,97,8,0,0,92,57,34,0, + 92,47,53,1,0,0,0,0,0,0,114,40,83,43,114,83, + 83,43,114,84,92,46,40,0,0,0,0,0,0,0,100,117, + 0,0,92,59,40,0,0,0,0,0,0,0,100,110,0,0, + 92,58,92,27,92,47,52,3,19,0,72,88,0,0,114,51, + 92,51,40,0,0,0,0,0,0,0,100,2,0,0,77,12, + 0,0,92,5,83,17,58,88,0,0,97,48,0,0,92,44, + 34,0,92,51,83,52,53,2,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,100,14,0,0,92,44,34,0,92,51, + 83,53,53,2,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,97,20,0,0,92,51,82,171,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,8,53,1, + 0,0,0,0,0,0,83,45,5,0,0,0,114,51,92,51, + 83,54,45,13,0,0,114,51,30,0,92,63,34,0,92,51, + 53,1,0,0,0,0,0,0,114,83,92,57,34,0,92,51, + 53,1,0,0,0,0,0,0,114,84,32,0,79,2,11,0, + 32,0,92,84,40,0,0,0,0,0,0,0,97,6,0,0, + 83,45,114,34,92,84,114,26,47,0,114,35,83,43,114,86, + 92,59,40,0,0,0,0,0,0,0,100,14,0,0,92,40, + 40,0,0,0,0,0,0,0,97,7,0,0,92,46,40,0, + 0,0,0,0,0,0,97,22,0,0,92,0,82,3,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,106,145,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,100,30,107,40,0,0,115,1,140,61,101,70, - 106,143,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,120,1,90,52, - 90,36,101,27,115,105,9,0,2,0,101,73,101,26,171,1, - 0,0,0,0,0,0,90,27,101,27,101,26,107,40,0,0, - 114,2,100,22,90,27,101,27,115,87,2,0,101,51,101,52, - 2,0,101,75,101,26,171,1,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,90,27,101,4,100,16,107,55,0,0, - 114,67,2,0,101,22,101,27,171,1,0,0,0,0,0,0, - 115,59,2,0,101,75,101,26,171,1,0,0,0,0,0,0, - 90,76,101,8,100,5,101,7,155,0,100,7,101,9,155,0, - 157,4,102,2,68,0,93,38,0,0,90,77,101,77,101,42, - 114,2,101,42,110,1,100,22,122,13,0,0,90,77,101,76, - 101,77,107,40,0,0,114,1,140,18,2,0,101,51,101,52, - 101,77,171,2,0,0,0,0,0,0,90,77,2,0,101,22, - 101,77,171,1,0,0,0,0,0,0,115,1,140,36,101,77, - 90,27,1,0,110,1,4,0,1,0,110,3,4,0,100,42, - 90,60,101,27,115,10,101,26,120,1,115,6,1,0,101,46, - 120,1,115,2,1,0,100,22,90,27,101,46,115,2,101,27, - 90,46,9,0,2,0,101,73,101,46,171,1,0,0,0,0, - 0,0,90,46,101,52,115,40,101,4,100,2,107,40,0,0, - 114,35,101,57,114,33,2,0,101,56,101,57,171,1,0,0, - 0,0,0,0,90,80,2,0,101,81,100,50,132,0,101,11, - 68,0,171,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,114,10,2,0,101,73,101,80,171,1,0,0,0,0, - 0,0,90,52,101,52,90,36,101,52,115,10,2,0,101,56, - 101,46,171,1,0,0,0,0,0,0,120,1,90,52,90,36, - 101,36,115,8,2,0,101,56,101,46,171,1,0,0,0,0, - 0,0,90,36,100,42,90,82,100,42,90,83,101,45,115,89, - 101,58,115,87,101,57,101,26,101,46,102,3,68,0,93,71, - 0,0,90,50,101,50,115,1,140,6,101,4,100,16,107,40, - 0,0,114,38,2,0,101,43,101,50,100,51,171,2,0,0, - 0,0,0,0,115,9,2,0,101,43,101,50,100,52,171,2, - 0,0,0,0,0,0,114,20,101,50,106,169,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,7, - 171,1,0,0,0,0,0,0,100,44,25,0,0,0,90,50, - 101,50,100,53,122,13,0,0,90,50,9,0,2,0,101,62, - 101,50,171,1,0,0,0,0,0,0,90,82,2,0,101,56, - 101,50,171,1,0,0,0,0,0,0,90,83,1,0,110,1, - 4,0,101,83,114,6,100,44,90,33,101,83,90,25,103,0, - 90,34,100,42,90,85,101,58,115,4,101,36,114,2,101,45, - 114,21,101,0,106,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,54,100,44,171,2,0,0, - 0,0,0,0,100,44,107,68,0,0,114,88,9,0,2,0, - 101,51,101,36,2,0,101,62,2,0,101,51,101,36,101,5, - 171,2,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 100,44,25,0,0,0,171,2,0,0,0,0,0,0,90,38, - 2,0,101,51,101,36,101,18,171,2,0,0,0,0,0,0, - 90,85,101,85,114,51,101,4,100,16,107,40,0,0,114,3, - 101,85,90,86,110,9,2,0,101,23,101,85,103,1,101,13, - 162,1,173,6,142,0,90,86,101,86,114,10,2,0,101,51, - 101,86,100,18,171,2,0,0,0,0,0,0,90,37,110,9, - 2,0,101,51,101,85,100,18,171,2,0,0,0,0,0,0, - 90,37,101,28,115,2,101,86,90,28,101,29,115,2,101,85, - 90,29,100,39,101,0,100,54,60,0,0,0,101,45,114,6, - 100,22,120,1,90,28,90,29,144,1,110,70,101,25,114,27, - 101,25,106,135,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,101,16,171,1,0,0,0,0,0,0, - 92,3,0,0,90,28,90,87,90,29,101,87,115,2,101,28, - 90,29,100,42,90,37,101,57,114,76,101,28,115,74,2,0, - 101,56,101,57,171,1,0,0,0,0,0,0,90,80,101,15, - 114,32,101,4,100,16,107,40,0,0,114,18,2,0,101,22, - 2,0,101,51,101,80,101,15,171,2,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,114,12,101,80,90,28,110,9, - 2,0,101,23,101,80,101,15,171,2,0,0,0,0,0,0, - 90,28,101,10,114,30,101,11,114,28,101,28,115,26,2,0, - 101,81,100,55,132,0,101,11,68,0,171,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,114,11,101,80,90,28, - 2,0,101,51,101,28,101,10,171,2,0,0,0,0,0,0, - 90,37,101,15,114,57,101,52,114,55,101,28,115,53,101,4, - 100,16,107,40,0,0,114,18,2,0,101,22,2,0,101,51, - 101,52,101,15,171,2,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,114,12,101,52,90,28,110,9,2,0,101,23, - 101,52,101,15,171,2,0,0,0,0,0,0,90,28,101,28, - 114,19,2,0,101,51,101,28,101,10,171,2,0,0,0,0, - 0,0,90,37,2,0,101,88,101,37,171,1,0,0,0,0, - 0,0,115,2,100,42,90,37,101,10,114,28,101,11,114,26, - 101,52,114,24,101,28,115,22,2,0,101,23,101,52,103,1, - 101,11,162,1,173,6,142,0,90,28,101,28,114,11,101,37, - 115,9,2,0,101,51,101,28,101,10,171,2,0,0,0,0, - 0,0,90,37,101,89,114,27,101,28,115,25,101,89,90,28, - 2,0,101,81,100,56,132,0,101,11,68,0,171,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,115,8,2,0, - 101,79,100,57,171,1,0,0,0,0,0,0,1,0,101,28, - 115,16,2,0,101,47,100,22,171,1,0,0,0,0,0,0, - 90,28,2,0,101,79,100,57,171,1,0,0,0,0,0,0, - 1,0,101,12,114,65,101,29,115,63,101,4,100,16,107,40, - 0,0,114,2,101,28,90,29,101,29,115,13,101,52,114,11, - 2,0,101,23,101,52,101,12,101,88,172,27,171,3,0,0, - 0,0,0,0,90,29,101,29,115,4,101,90,114,2,101,90, - 90,29,101,29,114,15,2,0,101,88,2,0,101,51,101,29, - 101,12,171,2,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,115,18,101,4,100,16,107,40,0,0,114,5,101,38, - 115,11,101,29,90,38,110,8,2,0,101,79,100,58,171,1, - 0,0,0,0,0,0,1,0,101,29,115,2,101,28,90,29, - 101,28,114,2,101,29,115,8,2,0,101,79,100,59,171,1, - 0,0,0,0,0,0,1,0,101,45,114,27,101,45,106,99, + 83,55,83,45,53,2,0,0,0,0,0,0,83,45,58,148, + 0,0,97,116,0,0,30,0,92,52,34,0,92,40,92,63, + 34,0,92,52,34,0,92,40,92,6,53,2,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,83,45,5,0,0,0, + 53,2,0,0,0,0,0,0,114,41,92,52,34,0,92,40, + 92,19,53,2,0,0,0,0,0,0,114,86,92,86,40,0, + 0,0,0,0,0,0,97,74,0,0,92,5,83,17,58,88, + 0,0,97,3,0,0,92,86,114,87,79,9,92,24,34,0, + 92,86,47,1,92,14,81,1,55,6,54,0,114,87,92,39, + 40,0,0,0,0,0,0,0,100,26,0,0,92,87,40,0, + 0,0,0,0,0,0,97,10,0,0,92,52,34,0,92,87, + 83,19,53,2,0,0,0,0,0,0,114,37,79,9,92,52, + 34,0,92,86,83,19,53,2,0,0,0,0,0,0,114,37, + 92,29,40,0,0,0,0,0,0,0,100,2,0,0,92,87, + 114,29,92,30,40,0,0,0,0,0,0,0,100,2,0,0, + 92,86,114,30,83,39,92,0,83,55,39,0,0,0,92,46, + 40,0,0,0,0,0,0,0,97,6,0,0,83,1,61,1, + 114,29,114,30,71,2,79,26,92,26,40,0,0,0,0,0, + 0,0,97,39,0,0,92,26,82,137,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,92,17,53,1, + 0,0,0,0,0,0,117,3,0,0,114,29,114,88,114,30, + 92,88,40,0,0,0,0,0,0,0,100,2,0,0,92,29, + 114,30,92,39,40,0,0,0,0,0,0,0,100,2,0,0, + 83,43,114,37,92,58,40,0,0,0,0,0,0,0,97,119, + 0,0,92,29,40,0,0,0,0,0,0,0,100,112,0,0, + 92,57,34,0,92,58,53,1,0,0,0,0,0,0,114,81, + 92,16,40,0,0,0,0,0,0,0,97,38,0,0,92,5, + 83,17,58,88,0,0,97,23,0,0,92,23,34,0,92,52, + 34,0,92,81,92,16,53,2,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,97,2, + 0,0,92,81,114,29,79,9,92,24,34,0,92,81,92,16, + 53,2,0,0,0,0,0,0,114,29,92,11,40,0,0,0, + 0,0,0,0,97,52,0,0,92,12,40,0,0,0,0,0, + 0,0,97,45,0,0,92,29,40,0,0,0,0,0,0,0, + 100,38,0,0,92,82,34,0,83,56,26,0,92,12,19,0, + 53,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,97,18,0,0,92,81,114,29, + 92,39,40,0,0,0,0,0,0,0,100,9,0,0,92,52, + 34,0,92,29,92,11,53,2,0,0,0,0,0,0,114,37, + 92,16,40,0,0,0,0,0,0,0,97,90,0,0,92,53, + 40,0,0,0,0,0,0,0,97,83,0,0,92,29,40,0, + 0,0,0,0,0,0,100,76,0,0,92,5,83,17,58,88, + 0,0,97,23,0,0,92,23,34,0,92,52,34,0,92,53, + 92,16,53,2,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,97,2,0,0,92,53, + 114,29,79,9,92,24,34,0,92,53,92,16,53,2,0,0, + 0,0,0,0,114,29,92,29,40,0,0,0,0,0,0,0, + 97,31,0,0,92,39,40,0,0,0,0,0,0,0,100,24, + 0,0,92,52,34,0,92,29,92,11,53,2,0,0,0,0, + 0,0,114,37,92,89,34,0,92,37,53,1,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,100,2,0,0,83,43, + 114,37,92,11,40,0,0,0,0,0,0,0,97,53,0,0, + 92,12,40,0,0,0,0,0,0,0,97,46,0,0,92,53, + 40,0,0,0,0,0,0,0,97,39,0,0,92,29,40,0, + 0,0,0,0,0,0,100,32,0,0,92,24,34,0,92,53, + 47,1,92,12,81,1,55,6,54,0,114,29,92,29,40,0, + 0,0,0,0,0,0,97,16,0,0,92,37,40,0,0,0, + 0,0,0,0,100,9,0,0,92,52,34,0,92,29,92,11, + 53,2,0,0,0,0,0,0,114,37,92,90,40,0,0,0, + 0,0,0,0,97,37,0,0,92,29,40,0,0,0,0,0, + 0,0,100,30,0,0,92,90,114,29,92,82,34,0,83,57, + 26,0,92,12,19,0,53,0,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,100,8, + 0,0,92,80,34,0,83,58,53,1,0,0,0,0,0,0, + 32,0,92,29,40,0,0,0,0,0,0,0,100,16,0,0, + 92,48,34,0,83,1,53,1,0,0,0,0,0,0,114,29, + 92,80,34,0,83,58,53,1,0,0,0,0,0,0,32,0, + 92,13,40,0,0,0,0,0,0,0,97,104,0,0,92,30, + 40,0,0,0,0,0,0,0,100,97,0,0,92,5,83,17, + 58,88,0,0,97,2,0,0,92,29,114,30,92,30,40,0, + 0,0,0,0,0,0,100,15,0,0,92,53,40,0,0,0, + 0,0,0,0,97,8,0,0,92,24,34,0,92,53,92,13, + 92,89,83,27,57,3,114,30,92,30,40,0,0,0,0,0, + 0,0,100,9,0,0,92,91,40,0,0,0,0,0,0,0, + 97,2,0,0,92,91,114,30,92,30,40,0,0,0,0,0, + 0,0,97,20,0,0,92,89,34,0,92,52,34,0,92,30, + 92,13,53,2,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,100,24,0,0,92,5, + 83,17,58,88,0,0,97,10,0,0,92,41,40,0,0,0, + 0,0,0,0,100,2,0,0,92,30,114,41,79,8,92,80, + 34,0,83,59,53,1,0,0,0,0,0,0,32,0,92,30, + 40,0,0,0,0,0,0,0,100,2,0,0,92,29,114,30, + 92,29,40,0,0,0,0,0,0,0,97,7,0,0,92,30, + 40,0,0,0,0,0,0,0,100,8,0,0,92,80,34,0, + 83,60,53,1,0,0,0,0,0,0,32,0,92,46,40,0, + 0,0,0,0,0,0,97,27,0,0,92,46,82,101,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,101,16,171,1,0,0,0,0,0,0,101,0,100,40, - 60,0,0,0,100,39,101,0,100,41,60,0,0,0,144,1, - 110,223,101,35,144,1,115,220,103,0,90,34,101,33,114,47, - 101,32,114,45,101,32,106,99,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,101,16,171,1,0,0, - 0,0,0,0,68,0,93,25,0,0,90,50,101,34,106,183, + 92,17,53,1,0,0,0,0,0,0,92,0,83,40,39,0, + 0,0,83,39,92,0,83,41,39,0,0,0,71,2,79,68, + 92,36,40,0,0,0,0,0,0,0,71,2,100,60,0,0, + 47,0,114,35,92,34,40,0,0,0,0,0,0,0,97,54, + 0,0,92,33,40,0,0,0,0,0,0,0,97,47,0,0, + 92,33,82,101,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,17,53,1,0,0,0,0,0,0, + 19,0,72,26,0,0,114,51,92,35,82,185,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,48, + 34,0,92,51,53,1,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,32,0,77,28,0,0,11,0,32,0,92,5, + 83,17,58,88,0,0,97,43,0,0,92,58,40,0,0,0, + 0,0,0,0,97,9,0,0,92,57,34,0,92,58,53,1, + 0,0,0,0,0,0,114,81,79,2,92,53,114,81,92,35, + 82,185,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,92,52,34,0,92,81,92,16,53,2,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,32,0,79,56, + 92,86,40,0,0,0,0,0,0,0,97,25,0,0,92,35, + 82,185,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,92,52,34,0,92,90,92,16,53,2,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,32,0,79,24, + 92,35,82,185,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,52,34,0,92,29,92,16,53,2, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,32,0, + 92,5,83,17,58,88,0,0,97,154,0,0,92,34,40,0, + 0,0,0,0,0,0,97,147,0,0,92,93,40,0,0,0, + 0,0,0,0,97,140,0,0,92,93,82,188,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,93, + 82,190,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,52,2,19,0,72,112,0,0,114,96,30,0, + 92,93,82,195,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,96,92,22,53,2,0,0,0,0, + 0,0,114,69,30,0,83,45,114,98,30,0,30,0,92,93, + 82,199,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,92,69,92,93,82,201,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,92,69,92,98, + 53,2,0,0,0,0,0,0,53,2,0,0,0,0,0,0, + 114,101,92,102,34,0,92,101,92,103,53,2,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,97,32,0,0,92,35, + 82,209,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,92,101,82,101,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,92,17,53,1,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,32,0,92,98, + 83,39,45,13,0,0,114,98,77,88,0,0,11,0,32,0, + 92,106,40,0,0,0,0,0,0,0,97,48,0,0,92,106, + 82,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,92,17,53,1,0,0,0,0,0,0,19,0, + 72,27,0,0,114,51,92,35,82,185,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,92,52,34,0, + 92,29,92,51,53,2,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,32,0,77,29,0,0,11,0,32,0,92,37, + 40,0,0,0,0,0,0,0,100,16,0,0,92,29,40,0, + 0,0,0,0,0,0,97,9,0,0,92,52,34,0,92,29, + 92,11,53,2,0,0,0,0,0,0,114,37,92,41,40,0, + 0,0,0,0,0,0,100,16,0,0,92,30,40,0,0,0, + 0,0,0,0,97,9,0,0,92,52,34,0,92,30,92,13, + 53,2,0,0,0,0,0,0,114,41,92,5,83,17,58,88, + 0,0,97,79,0,0,92,41,40,0,0,0,0,0,0,0, + 97,17,0,0,92,35,82,185,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,92,41,53,1,0,0, + 0,0,0,0,32,0,92,37,40,0,0,0,0,0,0,0, + 97,17,0,0,92,35,82,185,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,92,37,53,1,0,0, + 0,0,0,0,32,0,92,53,40,0,0,0,0,0,0,0, + 97,23,0,0,92,53,92,35,59,1,0,0,97,17,0,0, + 92,35,82,185,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,53,53,1,0,0,0,0,0,0, + 32,0,79,48,92,37,40,0,0,0,0,0,0,0,97,17, + 0,0,92,35,82,185,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,92,37,53,1,0,0,0,0, + 0,0,32,0,92,41,40,0,0,0,0,0,0,0,97,17, + 0,0,92,35,82,185,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,92,41,53,1,0,0,0,0, + 0,0,32,0,92,35,92,0,83,40,39,0,0,0,83,39, + 92,0,83,41,39,0,0,0,92,5,83,17,58,119,0,0, + 97,68,0,0,92,86,40,0,0,0,0,0,0,0,97,61, + 0,0,92,0,82,3,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,83,33,53,1,0,0,0,0, + 0,0,61,1,40,0,0,0,0,0,0,0,100,2,0,0, + 32,0,92,90,114,29,92,0,82,3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,34,53,1, + 0,0,0,0,0,0,61,1,40,0,0,0,0,0,0,0, + 100,11,0,0,32,0,92,91,61,1,40,0,0,0,0,0, + 0,0,100,2,0,0,32,0,92,29,114,30,92,83,40,0, + 0,0,0,0,0,0,97,153,0,0,83,39,92,0,83,61, + 39,0,0,0,83,45,92,0,83,38,39,0,0,0,83,45, + 92,0,83,62,39,0,0,0,83,39,92,0,83,63,39,0, + 0,0,47,0,114,35,92,83,19,0,72,115,0,0,114,67, + 92,67,82,137,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,64,53,1,0,0,0,0,0,0, + 83,45,5,0,0,0,82,145,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,114,67,92,67,40,0,0,0,0,0,0,0,100,2, + 0,0,77,46,0,0,92,67,83,65,58,88,0,0,97,7, + 0,0,83,39,92,0,83,62,39,0,0,0,77,59,0,0, + 92,67,82,215,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,66,53,1,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,97,10,0,0,92,80,34,0, + 83,67,53,1,0,0,0,0,0,0,32,0,77,91,0,0, + 92,35,82,185,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,52,34,0,92,84,92,67,53,2, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,32,0, + 77,117,0,0,11,0,32,0,92,35,92,0,83,40,39,0, + 0,0,83,39,92,0,83,41,39,0,0,0,92,25,92,0, + 83,29,39,0,0,0,92,26,92,0,83,30,39,0,0,0, + 92,27,92,0,83,31,39,0,0,0,92,28,92,0,83,32, + 39,0,0,0,92,29,92,0,83,33,39,0,0,0,92,30, + 92,0,83,34,39,0,0,0,92,31,61,1,40,0,0,0, + 0,0,0,0,100,2,0,0,32,0,92,29,92,0,83,35, + 39,0,0,0,92,32,61,1,40,0,0,0,0,0,0,0, + 100,2,0,0,32,0,92,30,92,0,83,36,39,0,0,0, + 92,3,92,0,83,0,39,0,0,0,92,37,61,1,40,0, + 0,0,0,0,0,0,100,2,0,0,32,0,83,1,92,0, + 83,42,39,0,0,0,92,41,61,1,40,0,0,0,0,0, + 0,0,100,2,0,0,32,0,83,1,92,0,83,68,39,0, + 0,0,103,43,33,0,92,42,7,0,97,4,0,0,32,0, + 31,0,71,9,78,248,102,0,61,3,31,0,102,1,33,0, + 92,65,92,66,52,2,7,0,97,21,0,0,32,0,92,63, + 34,0,92,52,34,0,92,62,92,15,53,2,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,114,64,92,62,114,61, + 31,0,71,8,78,162,102,0,61,3,31,0,102,1,33,0, + 92,65,92,66,52,2,7,0,97,8,0,0,32,0,83,43, + 114,61,47,0,114,64,31,0,71,8,78,181,102,0,61,3, + 31,0,102,1,33,0,92,75,7,0,97,4,0,0,32,0, + 31,0,71,8,78,81,102,0,61,3,31,0,102,1,33,0, + 92,75,7,0,97,35,0,0,114,79,92,23,34,0,92,47, + 53,1,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 97,11,0,0,92,80,34,0,83,50,92,28,14,0,51,2, + 53,1,0,0,0,0,0,0,32,0,31,0,83,43,114,79, + 67,79,71,7,78,205,83,43,114,79,67,79,102,1,102,0, + 61,3,31,0,102,1,33,0,92,75,7,0,97,5,0,0, + 32,0,31,0,71,7,77,96,0,0,102,0,61,3,31,0, + 102,1,33,0,92,42,7,0,97,15,0,0,32,0,92,40, + 114,41,92,52,34,0,92,40,92,19,53,2,0,0,0,0, + 0,0,114,86,31,0,71,6,78,191,92,65,92,66,52,2, + 7,0,97,41,0,0,32,0,92,23,34,0,92,52,34,0, + 92,40,92,7,53,2,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,97,17,0,0, + 92,52,34,0,92,40,92,19,53,2,0,0,0,0,0,0, + 114,86,92,5,83,17,58,88,0,0,97,2,0,0,92,40, + 114,41,31,0,71,6,78,238,102,0,61,3,31,0,102,1, + 33,0,92,75,7,0,97,3,0,0,32,0,31,0,79,4, + 102,0,61,3,31,0,102,1,92,26,40,0,0,0,0,0, + 0,0,100,71,0,0,92,37,40,0,0,0,0,0,0,0, + 100,64,0,0,92,93,82,199,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,92,69,83,43,53,2, + 0,0,0,0,0,0,114,101,92,102,34,0,92,101,92,103, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 97,32,0,0,92,35,82,209,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,92,101,82,101,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,2,0,101,47,101,50,171,1,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,1,0,140,27,4,0,101,4, - 100,16,107,40,0,0,114,38,101,57,114,9,2,0,101,56, - 101,57,171,1,0,0,0,0,0,0,90,80,110,2,101,52, - 90,80,101,34,106,183,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,2,0,101,51,101,80,101,15, - 171,2,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 1,0,110,51,101,85,114,25,101,34,106,183,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0, - 101,51,101,89,101,15,171,2,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,1,0,110,24,101,34,106,183,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 2,0,101,51,101,28,101,15,171,2,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,1,0,101,4,100,16,107,40, - 0,0,114,137,101,33,114,135,101,92,114,133,101,92,106,186, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,101,92,106,188,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,102,2,68,0,93,106,0,0, - 90,95,9,0,101,92,106,193,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,101,95,101,21,171,2, - 0,0,0,0,0,0,90,68,9,0,100,44,90,97,9,0, - 9,0,101,92,106,197,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,101,68,101,92,106,199,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 101,68,101,97,171,2,0,0,0,0,0,0,171,2,0,0, - 0,0,0,0,90,100,2,0,101,101,101,100,101,102,171,2, - 0,0,0,0,0,0,114,32,101,34,106,207,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,100, - 106,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,101,16,171,1,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,1,0,101,97,100,39,122,13,0,0, - 90,97,140,82,4,0,101,105,114,46,101,105,106,99,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 101,16,171,1,0,0,0,0,0,0,68,0,93,26,0,0, - 90,50,101,34,106,183,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,2,0,101,51,101,28,101,50, - 171,2,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 1,0,140,28,4,0,101,37,115,11,101,28,114,9,2,0, - 101,51,101,28,101,10,171,2,0,0,0,0,0,0,90,37, - 101,38,115,11,101,29,114,9,2,0,101,51,101,29,101,12, - 171,2,0,0,0,0,0,0,90,38,101,4,100,16,107,40, - 0,0,114,62,101,38,114,17,101,34,106,183,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,38, - 171,1,0,0,0,0,0,0,1,0,101,37,114,17,101,34, - 106,183,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,101,37,171,1,0,0,0,0,0,0,1,0, - 101,52,114,60,101,52,101,34,118,1,114,56,101,34,106,183, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,101,52,171,1,0,0,0,0,0,0,1,0,110,38, - 101,37,114,17,101,34,106,183,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,101,37,171,1,0,0, - 0,0,0,0,1,0,101,38,114,17,101,34,106,183,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 101,38,171,1,0,0,0,0,0,0,1,0,101,34,101,0, - 100,40,60,0,0,0,100,39,101,0,100,41,60,0,0,0, - 101,4,100,16,107,55,0,0,114,48,101,85,114,46,101,0, - 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,33,171,1,0,0,0,0,0,0,120,1, - 115,2,1,0,101,89,90,28,101,0,106,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,34, - 171,1,0,0,0,0,0,0,120,1,115,6,1,0,101,90, - 120,1,115,2,1,0,101,28,90,29,101,82,114,137,100,39, - 101,0,100,60,60,0,0,0,100,44,101,0,100,38,60,0, - 0,0,100,44,101,0,100,61,60,0,0,0,100,39,101,0, - 100,62,60,0,0,0,103,0,90,34,101,82,68,0,93,100, - 0,0,90,66,101,66,106,135,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,63,171,1,0,0, - 0,0,0,0,100,44,25,0,0,0,106,143,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,90,66,101,66,115,1,140,40,101,66, - 100,64,107,40,0,0,114,6,100,39,101,0,100,61,60,0, - 0,0,140,51,101,66,106,213,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,65,171,1,0,0, - 0,0,0,0,114,9,2,0,101,79,100,66,171,1,0,0, - 0,0,0,0,1,0,140,77,101,34,106,183,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0, - 101,51,101,83,101,66,171,2,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,1,0,140,102,4,0,101,34,101,0, - 100,40,60,0,0,0,100,39,101,0,100,41,60,0,0,0, - 101,24,101,0,100,29,60,0,0,0,101,25,101,0,100,30, - 60,0,0,0,101,26,101,0,100,31,60,0,0,0,101,27, - 101,0,100,32,60,0,0,0,101,28,101,0,100,33,60,0, - 0,0,101,29,101,0,100,34,60,0,0,0,101,30,120,1, - 115,2,1,0,101,28,101,0,100,35,60,0,0,0,101,31, - 120,1,115,2,1,0,101,29,101,0,100,36,60,0,0,0, - 101,3,101,0,100,0,60,0,0,0,101,37,120,1,115,2, - 1,0,100,22,101,0,100,67,60,0,0,0,101,38,120,1, - 115,2,1,0,100,22,101,0,100,68,60,0,0,0,121,42, - 35,0,101,41,36,0,114,4,1,0,89,0,144,7,140,48, - 119,0,120,3,89,0,119,1,35,0,101,64,101,65,102,2, - 36,0,114,21,1,0,2,0,101,62,2,0,101,51,101,61, - 101,14,171,2,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,90,63,101,61,90,60,89,0,144,6,140,103,119,0, - 120,3,89,0,119,1,35,0,101,64,101,65,102,2,36,0, - 114,8,1,0,100,42,90,60,103,0,90,63,89,0,144,6, - 140,121,119,0,120,3,89,0,119,1,35,0,101,74,36,0, - 114,4,1,0,89,0,144,6,140,34,119,0,120,3,89,0, - 119,1,35,0,101,74,36,0,114,30,90,78,2,0,101,22, - 101,46,171,1,0,0,0,0,0,0,114,11,2,0,101,79, - 100,49,101,27,155,0,157,2,171,1,0,0,0,0,0,0, - 1,0,89,0,100,42,90,78,91,78,144,5,140,205,100,42, - 90,78,91,78,119,1,119,0,120,3,89,0,119,1,35,0, - 101,74,36,0,114,4,1,0,89,0,144,5,140,144,119,0, - 120,3,89,0,119,1,35,0,101,41,36,0,114,15,1,0, - 101,36,90,38,2,0,101,51,101,36,101,18,171,2,0,0, - 0,0,0,0,90,85,89,0,144,5,140,21,101,64,101,65, - 102,2,36,0,114,35,1,0,2,0,101,22,2,0,101,51, - 101,36,101,6,171,2,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,114,16,2,0,101,51,101,36,101,18,171,2, - 0,0,0,0,0,0,90,85,101,4,100,16,107,40,0,0, - 114,2,101,36,90,38,89,0,144,5,140,61,119,0,120,3, - 89,0,119,1,35,0,101,74,36,0,114,3,1,0,89,0, - 110,4,119,0,120,3,89,0,119,1,101,25,115,61,101,37, - 115,59,101,92,106,197,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,101,68,100,42,171,2,0,0, - 0,0,0,0,90,100,2,0,101,101,101,100,101,102,171,2, - 0,0,0,0,0,0,114,32,101,34,106,207,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,100, - 106,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,101,16,171,1,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,1,0,101,92,106,209,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,68, - 171,1,0,0,0,0,0,0,1,0,110,22,35,0,101,92, - 106,209,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,101,68,171,1,0,0,0,0,0,0,1,0, - 119,0,120,3,89,0,119,1,144,3,140,96,35,0,101,74, - 36,0,114,4,1,0,89,0,144,3,140,104,119,0,120,3, - 89,0,119,1,41,69,218,10,112,108,97,116,108,105,98,100, - 105,114,218,5,112,111,115,105,120,218,6,100,97,114,119,105, - 110,122,14,112,121,98,117,105,108,100,100,105,114,46,116,120, - 116,122,19,77,111,100,117,108,101,115,47,83,101,116,117,112, - 46,108,111,99,97,108,218,6,112,121,116,104,111,110,122,7, - 47,112,121,116,104,111,110,218,1,46,122,6,47,111,115,46, - 112,121,122,7,47,111,115,46,112,121,99,122,12,47,108,105, - 98,45,100,121,110,108,111,97,100,122,9,76,105,98,47,111, - 115,46,112,121,122,10,112,121,118,101,110,118,46,99,102,103, - 122,4,46,122,105,112,218,1,58,218,1,47,218,2,110,116, - 122,20,92,77,111,100,117,108,101,115,92,83,101,116,117,112, - 46,108,111,99,97,108,218,3,76,105,98,122,6,92,111,115, - 46,112,121,122,7,92,111,115,46,112,121,99,122,9,76,105, - 98,92,111,115,46,112,121,218,0,122,27,83,79,70,84,87, + 92,17,53,1,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,32,0,92,93,82,211,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,92,69,53,1,0,0, + 0,0,0,0,32,0,71,3,77,234,0,0,33,0,92,93, + 82,211,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,92,69,53,1,0,0,0,0,0,0,32,0, + 102,0,61,3,31,0,102,1,33,0,92,75,7,0,97,5, + 0,0,32,0,31,0,71,4,77,10,0,0,102,0,61,3, + 31,0,102,1,41,69,218,10,112,108,97,116,108,105,98,100, + 105,114,218,0,218,5,112,111,115,105,120,218,6,100,97,114, + 119,105,110,122,14,112,121,98,117,105,108,100,100,105,114,46, + 116,120,116,122,19,77,111,100,117,108,101,115,47,83,101,116, + 117,112,46,108,111,99,97,108,218,6,112,121,116,104,111,110, + 122,7,47,112,121,116,104,111,110,218,1,46,122,6,47,111, + 115,46,112,121,122,7,47,111,115,46,112,121,99,122,12,47, + 108,105,98,45,100,121,110,108,111,97,100,122,9,76,105,98, + 47,111,115,46,112,121,122,10,112,121,118,101,110,118,46,99, + 102,103,122,4,46,122,105,112,218,1,58,218,1,47,218,2, + 110,116,122,20,92,77,111,100,117,108,101,115,92,83,101,116, + 117,112,46,108,111,99,97,108,218,3,76,105,98,122,6,92, + 111,115,46,112,121,122,7,92,111,115,46,112,121,99,122,9, + 76,105,98,92,111,115,46,112,121,122,27,83,79,70,84,87, 65,82,69,92,80,121,116,104,111,110,92,80,121,116,104,111, 110,67,111,114,101,92,122,11,92,80,121,116,104,111,110,80, 97,116,104,218,1,59,218,1,92,41,1,218,4,116,101,115, 116,99,1,0,0,0,0,0,0,0,1,0,0,0,4,0, - 0,0,7,0,0,0,243,88,0,0,0,135,0,135,1,151, - 0,137,0,114,38,116,1,0,0,0,0,0,0,0,0,136, - 0,136,1,102,2,100,1,132,8,124,2,68,0,171,0,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,114,2,137, - 0,83,0,116,3,0,0,0,0,0,0,0,0,137,0,171, - 1,0,0,0,0,0,0,138,0,137,0,114,1,140,37,121, - 0,121,0,41,2,78,99,1,0,0,0,0,0,0,0,0, - 0,0,0,7,0,0,0,51,0,0,0,243,66,0,0,0, - 149,2,75,0,1,0,151,0,124,0,93,22,0,0,125,1, - 2,0,137,3,116,1,0,0,0,0,0,0,0,0,137,2, - 124,1,171,2,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,150,1,151,1,1,0,140,24,4,0,121,0,173,3, - 119,1,169,1,78,41,1,218,8,106,111,105,110,112,97,116, - 104,41,4,218,2,46,48,218,1,102,218,6,112,114,101,102, - 105,120,114,13,0,0,0,115,4,0,0,0,32,32,128,128, - 250,16,60,102,114,111,122,101,110,32,103,101,116,112,97,116, - 104,62,218,9,60,103,101,110,101,120,112,114,62,122,28,115, - 101,97,114,99,104,95,117,112,46,60,108,111,99,97,108,115, - 62,46,60,103,101,110,101,120,112,114,62,210,0,0,0,115, - 30,0,0,0,248,232,0,248,128,0,208,14,60,177,41,168, - 81,137,116,148,72,152,86,160,81,211,20,39,215,15,40,177, - 41,249,115,4,0,0,0,131,28,31,1,41,2,218,3,97, - 110,121,218,7,100,105,114,110,97,109,101,41,3,114,20,0, - 0,0,114,13,0,0,0,218,9,108,97,110,100,109,97,114, - 107,115,115,3,0,0,0,96,96,32,114,21,0,0,0,218, - 9,115,101,97,114,99,104,95,117,112,114,26,0,0,0,208, - 0,0,0,115,39,0,0,0,249,128,0,217,10,16,220,11, - 14,212,14,60,177,41,211,14,60,212,11,60,216,19,25,136, - 77,220,17,24,152,22,147,31,136,6,244,7,0,11,17,243, - 0,0,0,0,218,12,112,114,111,103,114,97,109,95,110,97, - 109,101,218,4,104,111,109,101,218,10,101,120,101,99,117,116, - 97,98,108,101,218,15,98,97,115,101,95,101,120,101,99,117, - 116,97,98,108,101,114,20,0,0,0,218,11,101,120,101,99, - 95,112,114,101,102,105,120,218,11,98,97,115,101,95,112,114, - 101,102,105,120,218,16,98,97,115,101,95,101,120,101,99,95, - 112,114,101,102,105,120,218,14,112,121,116,104,111,110,112,97, - 116,104,95,101,110,118,218,15,117,115,101,95,101,110,118,105, - 114,111,110,109,101,110,116,233,1,0,0,0,218,19,109,111, - 100,117,108,101,95,115,101,97,114,99,104,95,112,97,116,104, - 115,218,23,109,111,100,117,108,101,95,115,101,97,114,99,104, - 95,112,97,116,104,115,95,115,101,116,78,218,9,111,114,105, - 103,95,97,114,103,118,233,0,0,0,0,122,11,47,98,105, - 110,47,112,121,116,104,111,110,70,84,218,1,61,122,32,70, - 97,105,108,101,100,32,116,111,32,102,105,110,100,32,114,101, - 97,108,32,108,111,99,97,116,105,111,110,32,111,102,32,99, + 0,0,7,0,0,0,243,122,0,0,0,94,0,94,1,149, + 0,84,0,40,0,0,0,0,0,0,0,97,50,0,0,91, + 1,0,0,0,0,0,0,0,0,85,0,85,1,52,2,83, + 1,26,0,106,8,85,2,19,0,53,0,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,2,0,0,84,0,36,0,91,3,0,0,0,0,0, + 0,0,0,84,0,53,1,0,0,0,0,0,0,109,0,84, + 0,40,0,0,0,0,0,0,0,97,2,0,0,77,49,0, + 0,103,0,103,0,41,2,78,99,1,0,0,0,0,0,0, + 0,0,0,0,0,7,0,0,0,51,0,0,0,243,72,0, + 0,0,62,2,35,0,32,0,149,0,85,0,19,0,72,23, + 0,0,110,1,84,3,34,0,91,1,0,0,0,0,0,0, + 0,0,84,2,85,1,53,2,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,118,0,149,5,32,0,77,25,0,0, + 11,0,32,0,103,0,55,3,102,1,169,1,78,41,1,218, + 8,106,111,105,110,112,97,116,104,41,4,218,2,46,48,218, + 1,102,218,6,112,114,101,102,105,120,114,13,0,0,0,115, + 4,0,0,0,32,32,128,128,218,16,60,102,114,111,122,101, + 110,32,103,101,116,112,97,116,104,62,218,9,60,103,101,110, + 101,120,112,114,62,218,28,115,101,97,114,99,104,95,117,112, + 46,60,108,111,99,97,108,115,62,46,60,103,101,110,101,120, + 112,114,62,212,0,0,0,115,32,0,0,0,248,233,0,128, + 0,208,14,60,178,41,168,81,137,116,148,72,152,86,160,81, + 211,20,39,215,15,40,208,15,40,178,41,249,115,4,0,0, + 0,131,31,34,1,41,2,218,3,97,110,121,218,7,100,105, + 114,110,97,109,101,41,3,114,20,0,0,0,114,13,0,0, + 0,218,9,108,97,110,100,109,97,114,107,115,115,3,0,0, + 0,96,96,32,114,21,0,0,0,218,9,115,101,97,114,99, + 104,95,117,112,114,27,0,0,0,210,0,0,0,115,44,0, + 0,0,249,128,0,222,10,16,220,11,14,213,14,60,177,41, + 211,14,60,215,11,60,209,11,60,216,19,25,136,77,220,17, + 24,152,22,147,31,136,6,247,7,0,11,17,138,38,243,0, + 0,0,0,218,12,112,114,111,103,114,97,109,95,110,97,109, + 101,218,4,104,111,109,101,218,10,101,120,101,99,117,116,97, + 98,108,101,218,15,98,97,115,101,95,101,120,101,99,117,116, + 97,98,108,101,114,20,0,0,0,218,11,101,120,101,99,95, + 112,114,101,102,105,120,218,11,98,97,115,101,95,112,114,101, + 102,105,120,218,16,98,97,115,101,95,101,120,101,99,95,112, + 114,101,102,105,120,218,14,112,121,116,104,111,110,112,97,116, + 104,95,101,110,118,218,15,117,115,101,95,101,110,118,105,114, + 111,110,109,101,110,116,233,1,0,0,0,218,19,109,111,100, + 117,108,101,95,115,101,97,114,99,104,95,112,97,116,104,115, + 218,23,109,111,100,117,108,101,95,115,101,97,114,99,104,95, + 112,97,116,104,115,95,115,101,116,218,10,115,116,100,108,105, + 98,95,100,105,114,78,218,9,111,114,105,103,95,97,114,103, + 118,233,0,0,0,0,122,11,47,98,105,110,47,112,121,116, + 104,111,110,70,84,218,1,61,122,32,70,97,105,108,101,100, + 32,116,111,32,102,105,110,100,32,114,101,97,108,32,108,111, + 99,97,116,105,111,110,32,111,102,32,99,1,0,0,0,0, + 0,0,0,0,0,0,0,7,0,0,0,35,0,0,0,243, + 84,0,0,0,35,0,32,0,149,0,85,0,19,0,72,30, + 0,0,110,1,91,1,0,0,0,0,0,0,0,0,91,3, + 0,0,0,0,0,0,0,0,91,4,0,0,0,0,0,0, + 0,0,85,1,53,2,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,118,0,149,5,32,0,77,32,0,0,11,0, + 32,0,103,0,55,3,102,1,114,16,0,0,0,169,3,218, + 6,105,115,102,105,108,101,114,17,0,0,0,218,11,108,105, + 98,114,97,114,121,95,100,105,114,41,2,114,18,0,0,0, + 218,1,112,115,2,0,0,0,32,32,114,21,0,0,0,114, + 22,0,0,0,114,22,0,0,0,172,1,0,0,115,33,0, + 0,0,233,0,128,0,208,10,70,210,53,69,176,1,140,54, + 148,40,156,59,168,1,211,18,42,215,11,43,208,11,43,210, + 53,69,249,243,4,0,0,0,130,38,40,1,218,3,101,120, + 101,218,3,100,108,108,122,5,46,95,112,116,104,218,16,95, + 105,115,95,112,121,116,104,111,110,95,98,117,105,108,100,99, 1,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0, - 35,0,0,0,243,78,0,0,0,75,0,1,0,151,0,124, - 0,93,29,0,0,125,1,116,1,0,0,0,0,0,0,0, - 0,116,3,0,0,0,0,0,0,0,0,116,4,0,0,0, - 0,0,0,0,0,124,1,171,2,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,150,1,151,1,1,0,140,31,4, - 0,121,0,173,3,119,1,114,16,0,0,0,169,3,218,6, - 105,115,102,105,108,101,114,17,0,0,0,218,11,108,105,98, - 114,97,114,121,95,100,105,114,41,2,114,18,0,0,0,218, - 1,112,115,2,0,0,0,32,32,114,21,0,0,0,114,22, - 0,0,0,114,22,0,0,0,167,1,0,0,115,31,0,0, - 0,232,0,248,128,0,208,10,70,209,53,69,176,1,140,54, - 148,40,156,59,168,1,211,18,42,215,11,43,209,53,69,249, - 243,4,0,0,0,130,35,37,1,218,3,101,120,101,218,3, - 100,108,108,122,5,46,95,112,116,104,218,16,95,105,115,95, - 112,121,116,104,111,110,95,98,117,105,108,100,99,1,0,0, - 0,0,0,0,0,0,0,0,0,7,0,0,0,35,0,0, - 0,243,78,0,0,0,75,0,1,0,151,0,124,0,93,29, - 0,0,125,1,116,1,0,0,0,0,0,0,0,0,116,3, - 0,0,0,0,0,0,0,0,116,4,0,0,0,0,0,0, - 0,0,124,1,171,2,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,150,1,151,1,1,0,140,31,4,0,121,0, - 173,3,119,1,114,16,0,0,0,114,44,0,0,0,169,2, - 114,18,0,0,0,114,19,0,0,0,115,2,0,0,0,32, - 32,114,21,0,0,0,114,22,0,0,0,114,22,0,0,0, - 51,2,0,0,115,31,0,0,0,232,0,248,128,0,208,18, - 78,209,61,77,184,1,148,54,156,40,164,59,176,1,211,26, - 50,215,19,51,209,61,77,249,114,48,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,7,0,0,0,35,0, - 0,0,243,78,0,0,0,75,0,1,0,151,0,124,0,93, - 29,0,0,125,1,116,1,0,0,0,0,0,0,0,0,116, - 3,0,0,0,0,0,0,0,0,116,4,0,0,0,0,0, - 0,0,0,124,1,171,2,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,150,1,151,1,1,0,140,31,4,0,121, - 0,173,3,119,1,114,16,0,0,0,41,3,114,45,0,0, - 0,114,17,0,0,0,114,20,0,0,0,114,53,0,0,0, - 115,2,0,0,0,32,32,114,21,0,0,0,114,22,0,0, - 0,114,22,0,0,0,78,2,0,0,115,31,0,0,0,232, - 0,248,128,0,208,18,73,209,56,72,176,49,148,54,156,40, - 164,54,168,49,211,26,45,215,19,46,209,56,72,249,114,48, - 0,0,0,122,54,67,111,117,108,100,32,110,111,116,32,102, - 105,110,100,32,112,108,97,116,102,111,114,109,32,105,110,100, - 101,112,101,110,100,101,110,116,32,108,105,98,114,97,114,105, - 101,115,32,60,112,114,101,102,105,120,62,122,57,67,111,117, - 108,100,32,110,111,116,32,102,105,110,100,32,112,108,97,116, - 102,111,114,109,32,100,101,112,101,110,100,101,110,116,32,108, - 105,98,114,97,114,105,101,115,32,60,101,120,101,99,95,112, - 114,101,102,105,120,62,122,56,67,111,110,115,105,100,101,114, - 32,115,101,116,116,105,110,103,32,36,80,89,84,72,79,78, - 72,79,77,69,32,116,111,32,60,112,114,101,102,105,120,62, - 91,58,60,101,120,101,99,95,112,114,101,102,105,120,62,93, - 218,8,105,115,111,108,97,116,101,100,218,11,115,105,116,101, - 95,105,109,112,111,114,116,218,9,115,97,102,101,95,112,97, - 116,104,218,1,35,122,11,105,109,112,111,114,116,32,115,105, - 116,101,122,7,105,109,112,111,114,116,32,122,39,117,110,115, - 117,112,112,111,114,116,101,100,32,39,105,109,112,111,114,116, - 39,32,108,105,110,101,32,105,110,32,46,95,112,116,104,32, - 102,105,108,101,218,10,115,116,100,108,105,98,95,100,105,114, - 218,14,112,108,97,116,115,116,100,108,105,98,95,100,105,114, - 41,107,218,6,99,111,110,102,105,103,218,3,103,101,116,218, - 10,80,76,65,84,76,73,66,68,73,82,114,1,0,0,0, - 218,7,111,115,95,110,97,109,101,218,12,66,85,73,76,68, - 68,73,82,95,84,88,84,218,14,66,85,73,76,68,95,76, - 65,78,68,77,65,82,75,218,13,86,69,82,83,73,79,78, - 95,77,65,74,79,82,218,20,68,69,70,65,85,76,84,95, - 80,82,79,71,82,65,77,95,78,65,77,69,218,13,86,69, - 82,83,73,79,78,95,77,73,78,79,82,218,13,83,84,68, - 76,73,66,95,83,85,66,68,73,82,218,16,83,84,68,76, - 73,66,95,76,65,78,68,77,65,82,75,83,218,19,80,76, - 65,84,83,84,68,76,73,66,95,76,65,78,68,77,65,82, - 75,218,21,66,85,73,76,68,83,84,68,76,73,66,95,76, - 65,78,68,77,65,82,75,83,218,13,86,69,78,86,95,76, - 65,78,68,77,65,82,75,218,12,90,73,80,95,76,65,78, - 68,77,65,82,75,218,5,68,69,76,73,77,218,3,83,69, - 80,218,5,86,80,65,84,72,218,10,80,89,68,69,66,85, - 71,69,88,84,218,8,80,89,87,73,78,86,69,82,218,10, - 87,73,78,82,69,71,95,75,69,89,114,45,0,0,0,114, - 26,0,0,0,114,28,0,0,0,114,29,0,0,0,114,30, - 0,0,0,114,31,0,0,0,114,20,0,0,0,114,32,0, - 0,0,114,33,0,0,0,114,34,0,0,0,218,14,69,78, - 86,95,80,89,84,72,79,78,80,65,84,72,114,36,0,0, - 0,218,10,112,121,116,104,111,110,112,97,116,104,218,18,112, - 121,116,104,111,110,112,97,116,104,95,119,97,115,95,115,101, - 116,218,19,114,101,97,108,95,101,120,101,99,117,116,97,98, - 108,101,95,100,105,114,114,59,0,0,0,114,60,0,0,0, - 218,4,98,111,111,108,218,20,112,114,111,103,114,97,109,95, - 110,97,109,101,95,119,97,115,95,115,101,116,218,10,73,110, - 100,101,120,69,114,114,111,114,218,10,69,88,69,95,83,85, - 70,70,73,88,218,9,104,97,115,115,117,102,102,105,120,218, - 7,105,115,120,102,105,108,101,218,10,112,121,95,115,101,116, - 112,97,116,104,218,15,114,101,97,108,95,101,120,101,99,117, - 116,97,98,108,101,218,7,97,98,115,112,97,116,104,218,8, - 69,78,86,95,80,65,84,72,218,5,115,112,108,105,116,114, - 47,0,0,0,114,17,0,0,0,218,14,101,120,101,99,117, - 116,97,98,108,101,95,100,105,114,218,20,69,78,86,95,80, - 89,84,72,79,78,69,88,69,67,85,84,65,66,76,69,218, - 23,69,78,86,95,95,95,80,89,86,69,78,86,95,76,65, - 85,78,67,72,69,82,95,95,218,19,87,73,84,72,95,78, - 69,88,84,95,70,82,65,77,69,87,79,82,75,114,24,0, - 0,0,218,7,108,105,98,114,97,114,121,218,12,104,111,109, - 101,95,119,97,115,95,115,101,116,218,14,69,78,86,95,80, - 89,84,72,79,78,72,79,77,69,218,11,118,101,110,118,95, - 112,114,101,102,105,120,218,12,118,101,110,118,95,112,114,101, - 102,105,120,50,218,9,114,101,97,100,108,105,110,101,115,218, - 9,112,121,118,101,110,118,99,102,103,218,17,70,105,108,101, - 78,111,116,70,111,117,110,100,69,114,114,111,114,218,15,80, - 101,114,109,105,115,115,105,111,110,69,114,114,111,114,218,4, - 108,105,110,101,218,9,112,97,114,116,105,116,105,111,110,218, - 3,107,101,121,218,7,104,97,100,95,101,113,117,218,5,118, - 97,108,117,101,218,5,115,116,114,105,112,218,5,108,111,119, - 101,114,218,8,114,101,97,108,112,97,116,104,218,7,79,83, - 69,114,114,111,114,218,8,98,97,115,101,110,97,109,101,218, - 8,98,97,115,101,95,101,120,101,218,9,99,97,110,100,105, - 100,97,116,101,218,2,101,120,218,4,119,97,114,110,114,46, - 0,0,0,114,23,0,0,0,218,3,112,116,104,218,7,112, - 116,104,95,100,105,114,218,10,114,112,97,114,116,105,116,105, - 111,110,218,12,98,117,105,108,100,95,112,114,101,102,105,120, - 218,19,98,117,105,108,100,95,115,116,100,108,105,98,95,112, - 114,101,102,105,120,218,9,104,97,100,95,100,101,108,105,109, - 218,5,105,115,100,105,114,218,6,80,82,69,70,73,88,218, - 11,69,88,69,67,95,80,82,69,70,73,88,218,6,97,112, - 112,101,110,100,218,6,119,105,110,114,101,103,218,17,72,75, - 69,89,95,67,85,82,82,69,78,84,95,85,83,69,82,218, - 18,72,75,69,89,95,76,79,67,65,76,95,77,65,67,72, - 73,78,69,218,2,104,107,218,9,79,112,101,110,75,101,121, - 69,120,218,1,105,218,10,81,117,101,114,121,86,97,108,117, - 101,218,7,69,110,117,109,75,101,121,218,1,118,218,10,105, - 115,105,110,115,116,97,110,99,101,218,3,115,116,114,218,6, - 101,120,116,101,110,100,218,8,67,108,111,115,101,75,101,121, - 218,10,80,89,84,72,79,78,80,65,84,72,218,10,115,116, - 97,114,116,115,119,105,116,104,169,0,114,27,0,0,0,114, - 21,0,0,0,218,8,60,109,111,100,117,108,101,62,114,150, - 0,0,0,1,0,0,0,115,88,13,0,0,240,3,1,1, - 1,240,92,5,0,14,20,143,90,137,90,152,12,211,13,37, - 210,13,51,168,26,128,10,224,3,10,136,103,210,3,21,152, - 23,160,72,210,25,44,216,19,35,128,76,216,21,42,128,78, - 216,29,35,160,77,160,63,208,27,51,208,4,24,216,23,33, - 144,108,160,39,168,45,168,31,184,1,184,45,184,31,208,20, - 73,128,77,216,27,40,152,47,168,22,208,24,48,176,93,176, - 79,192,55,208,50,75,208,23,76,208,4,20,216,29,39,152, - 76,168,7,176,13,168,127,184,97,192,13,184,127,200,108,208, - 26,91,208,4,23,216,29,40,152,77,208,4,25,216,20,32, - 128,77,216,22,32,144,92,160,23,168,29,168,15,184,13,176, - 127,192,100,208,19,75,128,76,216,12,15,128,69,216,10,13, - 129,67,224,5,12,144,4,130,95,216,19,35,128,76,216,24, - 29,144,119,208,30,52,208,21,53,128,78,216,29,35,208,4, - 24,216,20,25,128,77,216,27,40,152,47,168,23,208,24,49, - 176,109,176,95,192,72,208,51,77,208,23,78,208,4,20,216, - 29,39,152,76,208,4,23,216,29,41,152,78,208,4,25,216, - 20,32,128,77,216,21,27,152,77,152,63,168,61,168,47,184, - 42,210,58,74,200,2,208,57,75,200,52,208,19,80,128,76, - 216,19,49,176,40,176,26,184,60,208,17,72,128,74,216,12, - 15,128,69,216,10,14,128,67,240,14,0,40,46,244,0,4, - 1,33,240,22,0,16,22,143,122,137,122,152,46,211,15,41, - 128,12,216,7,13,135,122,129,122,144,38,211,7,25,128,4, - 216,13,19,143,90,137,90,152,12,211,13,37,128,10,216,18, - 24,151,42,145,42,208,29,46,211,18,47,128,15,216,9,15, - 143,26,137,26,144,72,211,9,29,128,6,216,14,20,143,106, - 137,106,152,29,211,14,39,128,11,216,14,20,143,106,137,106, - 152,29,211,14,39,128,11,216,19,25,151,58,145,58,208,30, - 48,211,19,49,208,0,16,216,17,23,208,24,40,209,17,41, - 128,14,216,18,24,151,42,145,42,208,29,46,176,1,211,18, - 50,128,15,224,13,19,143,90,137,90,208,24,45,211,13,46, - 128,10,216,21,27,151,90,145,90,208,32,57,211,21,58,208, - 0,18,224,22,26,208,0,19,216,13,17,128,10,216,17,21, - 128,14,241,12,0,24,28,152,76,211,23,41,208,0,20,225, - 7,19,240,2,3,5,13,216,23,29,151,122,145,122,160,43, - 168,114,211,23,50,176,49,209,23,53,136,12,241,8,0,8, - 20,216,19,39,128,76,225,3,13,145,105,160,12,168,106,212, - 22,57,185,103,192,108,208,85,95,209,70,95,212,62,96,216, - 19,31,160,42,209,19,44,128,76,241,14,0,4,14,241,6, - 0,12,22,216,21,36,136,10,225,7,17,144,99,152,92,209, - 22,41,225,17,24,152,28,211,17,38,128,74,225,7,17,240, - 6,0,18,33,129,74,216,5,12,144,8,210,5,24,240,12, - 0,23,33,128,79,225,7,17,145,108,161,120,240,8,0,14, - 22,143,94,137,94,152,69,214,13,34,136,1,217,12,20,144, - 81,152,12,211,12,37,136,1,217,11,18,144,49,141,58,216, - 25,26,136,74,217,12,17,240,9,0,14,35,241,12,0,8, - 18,216,17,19,128,74,241,8,0,22,29,152,83,147,92,128, - 78,240,6,0,27,41,208,4,23,225,3,23,209,27,50,240, - 10,0,8,15,144,40,210,7,26,209,31,50,241,10,0,30, - 37,160,87,211,29,45,208,28,46,168,107,184,45,184,31,200, - 1,200,45,200,31,208,26,89,137,15,224,26,36,136,15,225, - 11,26,216,26,41,136,15,224,17,37,210,17,64,208,41,64, - 128,74,217,21,28,152,90,211,21,40,128,78,240,18,0,16, - 21,128,12,225,3,7,216,19,23,129,76,217,5,20,153,30, - 177,10,216,11,25,128,68,240,14,0,15,19,128,11,241,8, - 0,8,12,145,74,240,2,14,5,23,240,6,0,24,38,210, - 23,60,169,23,176,26,211,41,60,136,12,217,22,29,152,108, - 211,22,43,136,11,240,2,6,9,39,225,24,33,161,40,168, - 59,184,13,211,34,70,211,24,71,136,73,243,18,0,17,26, - 136,4,216,30,34,159,110,153,110,168,83,211,30,49,209,8, - 27,136,3,136,87,144,101,218,11,18,144,115,151,121,145,121, - 147,123,215,23,40,209,23,40,211,23,42,168,102,211,23,52, - 216,51,56,183,59,177,59,179,61,208,12,64,136,78,208,29, - 48,217,19,34,240,6,6,17,25,217,38,46,168,122,211,38, - 58,144,79,216,23,38,168,42,210,23,52,224,42,44,152,15, - 241,6,0,24,39,217,38,46,168,126,185,120,200,10,211,63, - 83,211,38,84,144,79,240,12,0,24,31,160,36,146,127,169, - 118,176,111,212,47,70,217,35,43,168,74,211,35,55,152,8, + 35,0,0,0,243,84,0,0,0,35,0,32,0,149,0,85, + 0,19,0,72,30,0,0,110,1,91,1,0,0,0,0,0, + 0,0,0,91,3,0,0,0,0,0,0,0,0,91,4,0, + 0,0,0,0,0,0,0,85,1,53,2,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,118,0,149,5,32,0,77, + 32,0,0,11,0,32,0,103,0,55,3,102,1,114,16,0, + 0,0,114,46,0,0,0,169,2,114,18,0,0,0,114,19, + 0,0,0,115,2,0,0,0,32,32,114,21,0,0,0,114, + 22,0,0,0,114,22,0,0,0,58,2,0,0,115,33,0, + 0,0,233,0,128,0,208,18,78,210,61,77,184,1,148,54, + 156,40,164,59,176,1,211,26,50,215,19,51,208,19,51,210, + 61,77,249,114,50,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,7,0,0,0,35,0,0,0,243,84,0, + 0,0,35,0,32,0,149,0,85,0,19,0,72,30,0,0, + 110,1,91,1,0,0,0,0,0,0,0,0,91,3,0,0, + 0,0,0,0,0,0,91,4,0,0,0,0,0,0,0,0, + 85,1,53,2,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,118,0,149,5,32,0,77,32,0,0,11,0,32,0, + 103,0,55,3,102,1,114,16,0,0,0,41,3,114,47,0, + 0,0,114,17,0,0,0,114,20,0,0,0,114,55,0,0, + 0,115,2,0,0,0,32,32,114,21,0,0,0,114,22,0, + 0,0,114,22,0,0,0,86,2,0,0,115,33,0,0,0, + 233,0,128,0,208,18,73,210,56,72,176,49,148,54,156,40, + 164,54,168,49,211,26,45,215,19,46,208,19,46,210,56,72, + 249,114,50,0,0,0,122,54,67,111,117,108,100,32,110,111, + 116,32,102,105,110,100,32,112,108,97,116,102,111,114,109,32, + 105,110,100,101,112,101,110,100,101,110,116,32,108,105,98,114, + 97,114,105,101,115,32,60,112,114,101,102,105,120,62,122,57, + 67,111,117,108,100,32,110,111,116,32,102,105,110,100,32,112, + 108,97,116,102,111,114,109,32,100,101,112,101,110,100,101,110, + 116,32,108,105,98,114,97,114,105,101,115,32,60,101,120,101, + 99,95,112,114,101,102,105,120,62,122,56,67,111,110,115,105, + 100,101,114,32,115,101,116,116,105,110,103,32,36,80,89,84, + 72,79,78,72,79,77,69,32,116,111,32,60,112,114,101,102, + 105,120,62,91,58,60,101,120,101,99,95,112,114,101,102,105, + 120,62,93,218,8,105,115,111,108,97,116,101,100,218,11,115, + 105,116,101,95,105,109,112,111,114,116,218,9,115,97,102,101, + 95,112,97,116,104,218,1,35,122,11,105,109,112,111,114,116, + 32,115,105,116,101,122,7,105,109,112,111,114,116,32,122,39, + 117,110,115,117,112,112,111,114,116,101,100,32,39,105,109,112, + 111,114,116,39,32,108,105,110,101,32,105,110,32,46,95,112, + 116,104,32,102,105,108,101,218,14,112,108,97,116,115,116,100, + 108,105,98,95,100,105,114,41,108,218,6,99,111,110,102,105, + 103,218,3,103,101,116,218,10,80,76,65,84,76,73,66,68, + 73,82,114,1,0,0,0,218,10,65,66,73,95,84,72,82, + 69,65,68,218,7,111,115,95,110,97,109,101,218,12,66,85, + 73,76,68,68,73,82,95,84,88,84,218,14,66,85,73,76, + 68,95,76,65,78,68,77,65,82,75,218,13,86,69,82,83, + 73,79,78,95,77,65,74,79,82,218,20,68,69,70,65,85, + 76,84,95,80,82,79,71,82,65,77,95,78,65,77,69,218, + 13,86,69,82,83,73,79,78,95,77,73,78,79,82,218,13, + 83,84,68,76,73,66,95,83,85,66,68,73,82,218,16,83, + 84,68,76,73,66,95,76,65,78,68,77,65,82,75,83,218, + 19,80,76,65,84,83,84,68,76,73,66,95,76,65,78,68, + 77,65,82,75,218,21,66,85,73,76,68,83,84,68,76,73, + 66,95,76,65,78,68,77,65,82,75,83,218,13,86,69,78, + 86,95,76,65,78,68,77,65,82,75,218,12,90,73,80,95, + 76,65,78,68,77,65,82,75,218,5,68,69,76,73,77,218, + 3,83,69,80,218,5,86,80,65,84,72,218,10,80,89,68, + 69,66,85,71,69,88,84,218,8,80,89,87,73,78,86,69, + 82,218,10,87,73,78,82,69,71,95,75,69,89,114,47,0, + 0,0,114,27,0,0,0,114,29,0,0,0,114,30,0,0, + 0,114,31,0,0,0,114,32,0,0,0,114,20,0,0,0, + 114,33,0,0,0,114,34,0,0,0,114,35,0,0,0,218, + 14,69,78,86,95,80,89,84,72,79,78,80,65,84,72,114, + 37,0,0,0,218,10,112,121,116,104,111,110,112,97,116,104, + 218,18,112,121,116,104,111,110,112,97,116,104,95,119,97,115, + 95,115,101,116,114,41,0,0,0,218,4,98,111,111,108,218, + 28,115,116,100,108,105,98,95,100,105,114,95,119,97,115,95, + 115,101,116,95,105,110,95,99,111,110,102,105,103,218,19,114, + 101,97,108,95,101,120,101,99,117,116,97,98,108,101,95,100, + 105,114,114,61,0,0,0,218,10,73,110,100,101,120,69,114, + 114,111,114,218,10,69,88,69,95,83,85,70,70,73,88,218, + 9,104,97,115,115,117,102,102,105,120,218,7,105,115,120,102, + 105,108,101,218,10,112,121,95,115,101,116,112,97,116,104,218, + 15,114,101,97,108,95,101,120,101,99,117,116,97,98,108,101, + 218,7,97,98,115,112,97,116,104,218,8,69,78,86,95,80, + 65,84,72,218,5,115,112,108,105,116,114,49,0,0,0,114, + 17,0,0,0,218,14,101,120,101,99,117,116,97,98,108,101, + 95,100,105,114,218,20,69,78,86,95,80,89,84,72,79,78, + 69,88,69,67,85,84,65,66,76,69,218,23,69,78,86,95, + 95,95,80,89,86,69,78,86,95,76,65,85,78,67,72,69, + 82,95,95,218,19,87,73,84,72,95,78,69,88,84,95,70, + 82,65,77,69,87,79,82,75,114,25,0,0,0,218,7,108, + 105,98,114,97,114,121,218,12,104,111,109,101,95,119,97,115, + 95,115,101,116,218,14,69,78,86,95,80,89,84,72,79,78, + 72,79,77,69,218,11,118,101,110,118,95,112,114,101,102,105, + 120,218,12,118,101,110,118,95,112,114,101,102,105,120,50,218, + 9,114,101,97,100,108,105,110,101,115,218,9,112,121,118,101, + 110,118,99,102,103,218,17,70,105,108,101,78,111,116,70,111, + 117,110,100,69,114,114,111,114,218,15,80,101,114,109,105,115, + 115,105,111,110,69,114,114,111,114,218,4,108,105,110,101,218, + 9,112,97,114,116,105,116,105,111,110,218,3,107,101,121,218, + 7,104,97,100,95,101,113,117,218,5,118,97,108,117,101,218, + 5,115,116,114,105,112,218,5,108,111,119,101,114,218,8,114, + 101,97,108,112,97,116,104,218,7,79,83,69,114,114,111,114, + 218,8,98,97,115,101,110,97,109,101,218,8,98,97,115,101, + 95,101,120,101,218,9,99,97,110,100,105,100,97,116,101,218, + 2,101,120,218,4,119,97,114,110,114,48,0,0,0,114,24, + 0,0,0,218,3,112,116,104,218,7,112,116,104,95,100,105, + 114,218,10,114,112,97,114,116,105,116,105,111,110,218,12,98, + 117,105,108,100,95,112,114,101,102,105,120,218,19,98,117,105, + 108,100,95,115,116,100,108,105,98,95,112,114,101,102,105,120, + 218,9,104,97,100,95,100,101,108,105,109,218,5,105,115,100, + 105,114,218,6,80,82,69,70,73,88,218,11,69,88,69,67, + 95,80,82,69,70,73,88,218,6,97,112,112,101,110,100,218, + 6,119,105,110,114,101,103,218,17,72,75,69,89,95,67,85, + 82,82,69,78,84,95,85,83,69,82,218,18,72,75,69,89, + 95,76,79,67,65,76,95,77,65,67,72,73,78,69,218,2, + 104,107,218,9,79,112,101,110,75,101,121,69,120,218,1,105, + 218,10,81,117,101,114,121,86,97,108,117,101,218,7,69,110, + 117,109,75,101,121,218,1,118,218,10,105,115,105,110,115,116, + 97,110,99,101,218,3,115,116,114,218,6,101,120,116,101,110, + 100,218,8,67,108,111,115,101,75,101,121,218,10,80,89,84, + 72,79,78,80,65,84,72,218,10,115,116,97,114,116,115,119, + 105,116,104,169,0,114,28,0,0,0,114,21,0,0,0,218, + 8,60,109,111,100,117,108,101,62,114,152,0,0,0,1,0, + 0,0,115,207,13,0,0,240,3,1,1,1,240,94,5,0, + 14,20,143,90,137,90,152,12,211,13,37,215,13,51,168,26, + 128,10,216,13,23,215,13,29,152,50,128,10,224,3,10,136, + 103,211,3,21,152,23,160,72,211,25,44,216,19,35,128,76, + 216,21,42,128,78,216,29,35,160,77,160,63,208,27,51,208, + 4,24,216,23,33,144,108,160,39,168,45,168,31,184,1,184, + 45,184,31,200,26,200,12,208,20,85,128,77,216,27,40,152, + 47,168,22,208,24,48,176,93,176,79,192,55,208,50,75,208, + 23,76,208,4,20,216,29,39,152,76,168,7,176,13,168,127, + 184,97,192,13,184,127,200,122,200,108,208,90,102,208,26,103, + 208,4,23,216,29,40,152,77,208,4,25,216,20,32,128,77, + 216,22,32,144,92,160,23,168,29,168,15,184,13,176,127,192, + 122,192,108,208,82,86,208,19,87,128,76,216,12,15,128,69, + 216,10,13,129,67,224,5,12,144,4,131,95,216,19,35,128, + 76,216,24,29,144,119,208,30,52,208,21,53,128,78,216,29, + 35,208,4,24,216,20,25,128,77,216,27,40,152,47,168,23, + 208,24,49,176,109,176,95,192,72,208,51,77,208,23,78,208, + 4,20,216,29,39,152,76,208,4,23,216,29,41,152,78,208, + 4,25,216,20,32,128,77,216,21,27,152,77,152,63,168,61, + 168,47,184,42,215,58,74,200,2,208,57,75,200,52,208,19, + 80,128,76,216,19,49,176,40,176,26,184,60,208,17,72,128, + 74,216,12,15,128,69,216,10,14,128,67,240,14,0,40,46, + 245,0,4,1,33,240,22,0,16,22,143,122,137,122,152,46, + 211,15,41,128,12,216,7,13,135,122,129,122,144,38,211,7, + 25,128,4,216,13,19,143,90,137,90,152,12,211,13,37,128, + 10,216,18,24,151,42,145,42,208,29,46,211,18,47,128,15, + 216,9,15,143,26,137,26,144,72,211,9,29,128,6,216,14, + 20,143,106,137,106,152,29,211,14,39,128,11,216,14,20,143, + 106,137,106,152,29,211,14,39,128,11,216,19,25,151,58,145, + 58,208,30,48,211,19,49,208,0,16,216,17,23,208,24,40, + 209,17,41,128,14,216,18,24,151,42,145,42,208,29,46,176, + 1,211,18,50,128,15,224,13,19,143,90,137,90,208,24,45, + 211,13,46,128,10,216,21,27,151,90,145,90,208,32,57,211, + 21,58,208,0,18,216,13,19,143,90,137,90,152,12,211,13, + 37,128,10,217,31,35,160,74,211,31,47,208,0,28,224,22, + 26,208,0,19,216,17,21,128,14,246,12,0,8,20,240,2, + 3,5,13,216,23,29,151,122,145,122,160,43,168,114,211,23, + 50,176,49,209,23,53,136,12,246,8,0,8,20,216,19,39, + 128,76,230,3,13,145,105,160,12,168,106,215,22,57,209,22, + 57,185,103,192,108,208,85,95,209,70,95,215,62,96,209,62, + 96,216,19,31,160,42,209,19,44,128,76,246,14,0,4,14, + 246,6,0,12,22,216,21,36,136,10,230,7,17,144,99,152, + 92,211,22,41,225,17,24,152,28,211,17,38,128,74,230,7, + 17,240,6,0,18,33,129,74,216,5,12,144,8,211,5,24, + 240,12,0,23,33,128,79,230,7,17,150,108,166,120,240,8, + 0,14,22,143,94,137,94,152,69,214,13,34,136,1,217,12, + 20,144,81,152,12,211,12,37,136,1,217,11,18,144,49,143, + 58,139,58,216,25,26,136,74,217,12,17,241,9,0,14,35, + 246,12,0,8,18,216,17,19,128,74,241,8,0,22,29,152, + 83,147,92,128,78,240,6,0,27,41,208,4,23,230,3,23, + 214,27,50,240,10,0,8,15,144,40,211,7,26,214,31,50, + 241,10,0,30,37,160,87,211,29,45,208,28,46,168,107,184, + 45,184,31,200,1,200,45,200,31,208,26,89,137,15,240,10, + 0,27,42,215,26,55,168,90,136,15,230,11,26,216,26,41, + 136,15,224,17,37,215,17,64,208,41,64,128,74,217,21,28, + 152,90,211,21,40,128,78,240,18,0,16,21,128,12,230,3, + 7,216,19,23,129,76,222,5,20,158,30,182,10,216,11,25, + 128,68,240,14,0,15,19,128,11,247,8,0,8,12,151,74, + 240,2,14,5,23,240,6,0,24,38,215,23,60,169,23,176, + 26,211,41,60,136,12,217,22,29,152,108,211,22,43,136,11, + 240,2,6,9,39,225,24,33,161,40,168,59,184,13,211,34, + 70,211,24,71,136,73,243,18,0,17,26,136,4,216,30,34, + 159,110,153,110,168,83,211,30,49,209,8,27,136,3,136,87, + 144,101,223,11,18,136,55,144,115,151,121,145,121,147,123,215, + 23,40,209,23,40,211,23,42,168,102,213,23,52,216,51,56, + 183,59,177,59,179,61,208,12,64,136,78,208,29,48,222,19, + 34,240,6,6,17,25,217,38,46,168,122,211,38,58,144,79, + 216,23,38,168,42,211,23,52,224,42,44,152,15,246,6,0, + 24,39,217,38,46,168,126,185,120,200,10,211,63,83,211,38, + 84,144,79,240,12,0,24,31,160,36,147,127,169,118,176,111, + 215,47,70,209,47,70,217,35,43,168,74,211,35,55,152,8, 216,42,62,192,38,200,29,200,15,208,87,88,208,89,102,208, - 88,103,208,64,104,211,41,105,152,73,216,28,37,177,122,169, - 26,192,114,209,28,73,152,73,216,31,39,168,57,210,31,52, - 216,32,40,217,40,48,176,30,192,25,211,40,75,152,73,241, - 10,0,32,38,160,105,213,31,48,216,50,59,160,15,217,32, - 37,240,23,0,42,106,1,241,24,0,13,18,240,71,1,0, - 17,26,240,74,1,0,23,27,136,11,241,14,0,8,23,216, - 22,32,210,22,57,160,79,210,22,57,176,114,128,79,225,7, - 22,216,22,37,128,79,240,4,6,1,67,1,217,22,30,152, - 127,211,22,47,128,79,241,14,0,8,22,152,39,160,88,210, - 26,45,177,39,225,18,25,152,39,211,18,34,128,75,217,7, - 10,209,10,70,209,53,69,211,10,70,212,7,70,241,6,0, - 26,34,160,43,211,25,46,136,14,216,30,44,208,8,27,241, - 8,0,8,22,217,43,50,176,63,211,43,67,208,4,67,128, - 78,208,21,40,241,8,0,8,27,217,26,33,160,47,211,26, - 50,208,4,23,240,18,0,7,11,128,3,216,10,14,128,7, - 241,8,0,8,18,153,44,240,12,0,15,22,144,122,160,63, - 211,13,51,136,1,218,11,12,216,15,22,152,36,138,127,161, - 73,168,97,176,21,212,36,55,185,57,192,81,200,5,212,59, - 78,216,20,21,151,76,145,76,160,19,211,20,37,160,97,209, - 20,40,144,1,216,12,13,144,23,137,76,136,65,240,2,5, - 13,21,217,22,31,160,1,147,108,144,3,217,26,33,160,33, - 155,42,144,7,217,16,21,240,17,0,14,52,241,28,0,8, - 15,216,26,27,136,15,216,15,22,136,4,216,21,23,136,10, - 240,14,0,16,20,128,12,225,9,21,209,26,45,177,106,216, - 11,17,143,58,137,58,208,22,40,168,33,211,11,44,168,113, - 210,11,48,240,6,17,5,53,217,25,33,216,12,31,217,12, - 21,145,104,208,31,50,176,76,211,22,65,211,12,66,192,49, - 209,12,69,243,5,3,26,10,136,14,241,8,0,24,32,208, - 32,51,176,85,211,23,59,136,12,241,28,0,8,20,216,11, - 18,144,100,138,63,224,34,46,209,12,31,225,34,43,168,76, - 208,34,81,208,59,80,210,34,81,208,12,31,225,11,30,217, - 25,33,208,34,53,176,117,211,25,61,137,74,225,25,33,160, - 44,176,5,211,25,54,136,74,225,15,21,216,21,40,136,70, - 241,8,0,16,27,216,26,38,136,75,240,8,0,38,39,136, - 6,208,15,33,209,8,34,241,14,0,4,14,240,6,0,28, - 30,208,4,29,128,70,138,91,241,8,0,8,12,240,6,0, - 42,46,175,30,169,30,184,5,211,41,62,209,8,38,136,6, - 144,9,152,59,217,15,24,216,26,32,136,75,224,21,25,136, - 10,241,8,0,8,15,145,118,217,22,29,152,103,211,22,38, - 136,11,217,11,23,216,15,22,152,36,138,127,225,19,25,153, - 40,160,59,176,12,211,26,61,212,19,62,216,29,40,145,70, - 225,25,34,160,59,176,12,211,25,61,144,6,217,11,24,209, - 29,45,177,102,217,15,18,209,18,78,209,61,77,211,18,78, - 212,15,78,216,25,36,144,6,217,29,37,160,102,168,109,211, - 29,60,144,10,241,8,0,8,20,153,14,169,118,216,11,18, - 144,100,138,63,225,15,21,145,104,152,126,168,124,211,22,60, - 212,15,61,216,25,39,145,6,225,21,30,152,126,168,124,211, - 21,60,136,70,217,11,17,217,25,33,160,38,168,45,211,25, - 56,136,74,217,19,24,152,26,212,19,36,216,29,33,144,10, - 241,8,0,8,21,209,25,41,169,110,193,86,217,17,26,152, - 62,208,17,61,208,44,60,210,17,61,136,6,217,11,17,153, - 42,217,25,33,160,38,168,45,211,25,56,136,74,225,7,13, - 145,102,216,17,23,136,6,217,15,18,209,18,73,209,56,72, - 211,18,73,212,15,73,217,12,16,208,17,73,212,12,74,225, - 11,17,217,17,24,152,18,147,27,136,6,217,8,12,208,13, - 69,212,8,70,241,8,0,8,27,161,59,216,11,18,144,100, - 138,63,240,8,0,27,33,136,75,217,15,26,153,126,217,26, - 35,160,78,208,52,71,200,101,212,26,84,136,75,217,15,26, - 153,123,216,26,37,136,75,217,15,26,161,37,169,8,176,27, - 208,62,81,211,40,82,212,34,83,216,15,22,152,36,138,127, - 241,6,0,24,38,240,14,0,38,49,145,78,225,16,20,208, - 21,80,212,16,81,241,8,0,12,23,216,22,28,136,11,241, - 6,0,12,18,153,27,217,8,12,208,13,71,212,8,72,241, - 30,0,4,14,224,36,46,215,36,52,209,36,52,176,85,211, - 36,59,128,70,208,11,32,209,4,33,216,40,41,128,70,208, - 11,36,211,4,37,226,9,27,240,8,0,18,20,128,74,241, - 6,0,8,23,153,62,216,17,31,215,17,37,209,17,37,160, - 101,214,17,44,136,65,216,12,22,215,12,29,209,12,29,153, - 103,160,97,155,106,213,12,41,240,3,0,18,45,240,8,0, - 8,15,144,36,130,127,225,11,18,217,26,33,160,39,211,26, - 42,137,75,224,26,40,136,75,216,8,18,215,8,25,209,8, - 25,153,40,160,59,176,12,211,26,61,213,8,62,217,9,21, - 224,8,18,215,8,25,209,8,25,153,40,160,54,168,60,211, - 26,56,213,8,57,224,8,18,215,8,25,209,8,25,153,40, - 160,54,168,60,211,26,56,212,8,57,224,7,14,144,36,130, - 127,153,63,169,118,240,10,0,20,26,215,19,43,209,19,43, - 168,86,215,45,70,209,45,70,211,18,71,136,66,240,2,22, - 13,21,216,22,28,215,22,38,209,22,38,160,114,168,58,211, - 22,54,144,3,240,2,18,17,41,216,24,25,144,65,216,26, - 30,240,2,3,25,34,216,32,38,215,32,49,209,32,49,176, - 35,176,118,183,126,177,126,192,99,200,49,211,55,77,211,32, - 78,152,65,241,6,0,28,38,160,97,168,19,212,27,45,216, - 28,38,215,28,45,209,28,45,168,97,175,103,169,103,176,101, - 171,110,212,28,61,216,24,25,152,81,153,6,152,1,240,15, - 0,27,31,240,11,0,19,72,1,241,52,0,8,18,216,17, - 27,215,17,33,209,17,33,160,37,214,17,40,136,65,216,12, - 22,215,12,29,209,12,29,153,104,160,118,168,113,211,30,49, - 213,12,50,240,3,0,18,41,241,8,0,12,22,153,38,217, - 21,29,152,102,160,109,211,21,52,136,10,217,11,25,153,107, - 217,25,33,160,43,208,47,66,211,25,67,136,14,224,7,14, - 144,36,130,127,225,11,25,216,12,22,215,12,29,209,12,29, - 152,110,212,12,45,217,11,21,216,12,22,215,12,29,209,12, - 29,152,106,212,12,41,217,11,25,152,110,176,74,209,30,62, - 240,10,0,13,23,215,12,29,209,12,29,152,110,213,12,45, - 225,11,21,216,12,22,215,12,29,209,12,29,152,106,212,12, - 41,217,11,25,216,12,22,215,12,29,209,12,29,152,110,212, - 12,45,224,36,46,128,70,208,11,32,209,4,33,216,40,41, - 128,70,208,11,36,209,4,37,240,18,0,4,11,136,100,130, - 63,145,124,216,13,19,143,90,137,90,152,8,211,13,33,210, - 13,43,160,86,128,70,216,18,24,151,42,145,42,152,93,211, - 18,43,210,18,68,168,123,210,18,68,184,102,128,75,241,14, - 0,4,7,216,25,26,128,70,136,58,209,4,22,216,32,33, - 128,70,208,11,28,209,4,29,216,28,29,128,70,136,61,209, - 4,25,216,26,27,128,70,136,59,209,4,23,216,17,19,128, - 74,219,16,19,136,4,216,15,19,143,126,137,126,152,99,211, - 15,34,160,49,209,15,37,215,15,43,209,15,43,211,15,45, - 136,4,217,15,19,216,12,16,216,13,17,144,93,210,13,34, - 216,36,37,136,70,144,61,210,12,33,216,13,17,143,95,137, - 95,152,89,212,13,39,217,12,16,208,17,58,213,12,59,224, - 12,22,215,12,29,209,12,29,153,104,160,119,176,4,211,30, - 53,213,12,54,240,19,0,17,20,240,20,0,37,47,128,70, - 208,11,32,209,4,33,216,40,41,128,70,208,11,36,209,4, - 37,240,12,0,26,38,128,6,128,126,209,0,22,216,17,21, - 128,6,128,118,129,14,216,23,33,128,6,128,124,209,0,20, - 216,28,43,128,6,208,7,24,209,0,25,216,19,25,128,6, - 128,120,209,0,16,216,24,35,128,6,128,125,209,0,21,216, - 24,35,210,24,45,160,118,128,6,128,125,209,0,21,216,29, - 45,210,29,60,176,27,128,6,208,7,25,209,0,26,224,23, - 33,128,6,128,124,209,0,20,224,23,33,210,23,39,160,82, - 128,6,128,124,209,0,20,216,27,41,210,27,47,168,82,128, - 6,208,7,23,210,0,24,248,240,127,16,0,12,22,242,0, - 1,5,13,218,8,12,240,3,1,5,13,251,240,88,3,0, - 17,34,160,63,208,15,51,242,0,3,9,39,225,24,33,161, - 40,168,60,184,29,211,34,71,211,24,72,136,73,216,26,38, - 139,75,240,7,3,9,39,251,240,8,0,13,30,152,127,208, - 11,47,242,0,2,5,23,216,22,26,136,11,216,20,22,139, - 9,240,5,2,5,23,251,240,32,0,24,31,242,0,1,17, - 25,218,20,24,240,3,1,17,25,251,240,80,1,0,8,15, - 242,0,4,1,67,1,241,6,0,8,14,136,111,212,7,30, - 217,8,12,208,15,47,176,15,208,47,64,208,13,65,212,8, - 66,255,249,240,9,4,1,67,1,251,240,104,1,0,20,27, - 242,0,1,13,21,218,16,20,240,3,1,13,21,251,240,54, - 0,12,22,242,0,3,5,60,224,25,44,136,14,217,23,31, + 88,103,208,64,104,211,41,105,152,73,216,28,37,182,122,169, + 26,192,114,209,28,73,152,73,216,31,39,168,57,211,31,52, + 217,32,40,217,40,48,176,30,192,25,211,40,75,152,73,241, + 10,0,32,38,160,105,215,31,48,211,31,48,216,50,59,160, + 15,217,32,37,241,23,0,42,106,1,241,24,0,13,18,241, + 71,1,0,17,26,240,74,1,0,23,27,136,11,246,14,0, + 8,23,216,22,32,215,22,57,160,79,215,22,57,176,114,128, + 79,230,7,22,216,22,37,128,79,230,3,18,240,2,6,5, + 71,1,217,26,34,160,63,211,26,51,136,15,246,14,0,8, + 22,152,39,160,88,211,26,45,182,39,225,18,25,152,39,211, + 18,34,128,75,217,7,10,209,10,70,209,53,69,211,10,70, + 215,7,70,209,7,70,241,6,0,26,34,160,43,211,25,46, + 136,14,216,30,44,208,8,27,246,8,0,8,22,158,47,217, + 43,50,176,63,211,43,67,208,4,67,128,78,208,21,40,246, + 8,0,8,27,158,127,217,26,33,160,47,211,26,50,208,4, + 23,240,18,0,7,11,128,3,216,10,14,128,7,246,8,0, + 8,18,158,44,240,12,0,15,22,144,122,160,63,211,13,51, + 136,1,223,11,12,136,49,216,15,22,152,36,139,127,161,73, + 168,97,176,21,215,36,55,209,36,55,185,57,192,81,200,5, + 215,59,78,209,59,78,216,20,21,151,76,145,76,160,19,211, + 20,37,160,97,209,20,40,144,1,216,12,13,144,23,137,76, + 136,65,240,2,5,13,21,217,22,31,160,1,147,108,144,3, + 217,26,33,160,33,155,42,144,7,217,16,21,241,17,0,14, + 52,246,28,0,8,15,216,26,27,136,15,216,15,22,136,4, + 216,21,23,136,10,240,14,0,16,20,128,12,230,9,21,214, + 26,45,182,106,216,11,17,143,58,137,58,208,22,40,168,33, + 211,11,44,168,113,211,11,48,240,6,17,5,53,217,25,33, + 216,12,31,217,12,21,145,104,208,31,50,176,76,211,22,65, + 211,12,66,192,49,209,12,69,243,5,3,26,10,136,14,241, + 8,0,24,32,208,32,51,176,85,211,23,59,136,12,246,28, + 0,8,20,216,11,18,144,100,139,63,224,34,46,209,12,31, + 225,34,43,168,76,208,34,81,208,59,80,210,34,81,208,12, + 31,230,15,43,222,15,34,217,29,37,208,38,57,184,53,211, + 29,65,145,10,225,29,37,160,108,176,69,211,29,58,144,10, + 230,15,21,216,21,40,136,70,246,8,0,16,27,216,26,38, + 136,75,240,8,0,38,39,136,6,208,15,33,209,8,34,246, + 14,0,4,14,240,6,0,28,30,208,4,29,128,70,138,91, + 246,8,0,8,12,240,6,0,42,46,175,30,169,30,184,5, + 211,41,62,209,8,38,136,6,144,9,152,59,222,15,24,216, + 26,32,136,75,230,15,43,216,25,29,136,74,246,8,0,8, + 15,150,118,217,22,29,152,103,211,22,38,136,11,222,11,23, + 216,15,22,152,36,139,127,225,19,25,153,40,160,59,176,12, + 211,26,61,215,19,62,209,19,62,216,29,40,144,70,248,225, + 25,34,160,59,176,12,211,25,61,144,6,222,11,24,214,29, + 45,182,102,217,15,18,209,18,78,209,61,77,211,18,78,215, + 15,78,209,15,78,216,25,36,144,6,222,23,51,217,33,41, + 168,38,176,45,211,33,64,144,74,246,8,0,8,20,158,14, + 174,118,216,11,18,144,100,139,63,225,15,21,145,104,152,126, + 168,124,211,22,60,215,15,61,209,15,61,216,25,39,144,6, + 248,225,21,30,152,126,168,124,211,21,60,136,70,222,11,17, + 214,26,54,217,25,33,160,38,168,45,211,25,56,136,74,217, + 19,24,152,26,215,19,36,209,19,36,216,29,33,144,10,246, + 8,0,8,21,214,25,41,174,110,198,86,217,17,26,152,62, + 208,17,61,208,44,60,210,17,61,136,6,222,11,17,158,42, + 217,25,33,160,38,168,45,211,25,56,136,74,230,7,13,150, + 102,216,17,23,136,6,217,15,18,209,18,73,209,56,72,211, + 18,73,215,15,73,209,15,73,217,12,16,208,17,73,212,12, + 74,230,11,17,217,17,24,152,18,147,27,136,6,217,8,12, + 208,13,69,212,8,70,246,8,0,8,27,166,59,216,11,18, + 144,100,139,63,240,8,0,27,33,136,75,222,15,26,158,126, + 217,26,35,160,78,208,52,71,200,101,209,26,84,136,75,222, + 15,26,158,123,216,26,37,136,75,222,15,26,161,37,169,8, + 176,27,208,62,81,211,40,82,215,34,83,209,34,83,216,15, + 22,152,36,139,127,246,6,0,24,38,240,14,0,38,49,144, + 78,248,225,16,20,208,21,80,212,16,81,246,8,0,12,23, + 216,22,28,136,11,246,6,0,12,18,158,27,217,8,12,208, + 13,71,212,8,72,246,30,0,4,14,224,36,46,215,36,52, + 209,36,52,176,85,211,36,59,128,70,208,11,32,209,4,33, + 216,40,41,128,70,208,11,36,211,4,37,231,9,27,240,8, + 0,18,20,128,74,246,6,0,8,23,158,62,216,17,31,215, + 17,37,209,17,37,160,101,214,17,44,136,65,216,12,22,215, + 12,29,209,12,29,153,103,160,97,155,106,214,12,41,241,3, + 0,18,45,240,8,0,8,15,144,36,131,127,230,11,18,217, + 26,33,160,39,211,26,42,137,75,224,26,40,136,75,216,8, + 18,215,8,25,209,8,25,153,40,160,59,176,12,211,26,61, + 213,8,62,222,9,21,224,8,18,215,8,25,209,8,25,153, + 40,160,54,168,60,211,26,56,213,8,57,224,8,18,215,8, + 25,209,8,25,153,40,160,54,168,60,211,26,56,212,8,57, + 224,7,14,144,36,131,127,158,63,174,118,240,10,0,20,26, + 215,19,43,209,19,43,168,86,215,45,70,209,45,70,211,18, + 71,136,66,240,2,22,13,21,216,22,28,215,22,38,209,22, + 38,160,114,168,58,211,22,54,144,3,240,2,18,17,41,216, + 24,25,144,65,216,26,30,240,2,3,25,34,216,32,38,215, + 32,49,209,32,49,176,35,176,118,183,126,177,126,192,99,200, + 49,211,55,77,211,32,78,152,65,241,6,0,28,38,160,97, + 168,19,215,27,45,209,27,45,216,28,38,215,28,45,209,28, + 45,168,97,175,103,169,103,176,101,171,110,212,28,61,216,24, + 25,152,81,153,6,152,1,241,15,0,27,31,241,11,0,19, + 72,1,246,52,0,8,18,216,17,27,215,17,33,209,17,33, + 160,37,214,17,40,136,65,216,12,22,215,12,29,209,12,29, + 153,104,160,118,168,113,211,30,49,214,12,50,241,3,0,18, + 41,246,8,0,12,22,158,38,217,21,29,152,102,160,109,211, + 21,52,136,10,222,11,25,158,107,217,25,33,160,43,208,47, + 66,211,25,67,136,14,224,7,14,144,36,131,127,230,11,25, + 216,12,22,215,12,29,209,12,29,152,110,212,12,45,222,11, + 21,216,12,22,215,12,29,209,12,29,152,106,212,12,41,222, + 11,25,152,110,176,74,211,30,62,240,10,0,13,23,215,12, + 29,209,12,29,152,110,212,12,45,248,230,11,21,216,12,22, + 215,12,29,209,12,29,152,106,212,12,41,222,11,25,216,12, + 22,215,12,29,209,12,29,152,110,212,12,45,224,36,46,128, + 70,208,11,32,209,4,33,216,40,41,128,70,208,11,36,209, + 4,37,240,18,0,4,11,136,100,131,63,150,124,216,13,19, + 143,90,137,90,152,8,211,13,33,215,13,43,160,86,128,70, + 216,18,24,151,42,145,42,152,93,211,18,43,215,18,68,168, + 123,215,18,68,184,102,128,75,246,14,0,4,7,216,25,26, + 128,70,136,58,209,4,22,216,32,33,128,70,208,11,28,209, + 4,29,216,28,29,128,70,136,61,209,4,25,216,26,27,128, + 70,136,59,209,4,23,216,17,19,128,74,219,16,19,136,4, + 216,15,19,143,126,137,126,152,99,211,15,34,160,49,209,15, + 37,215,15,43,209,15,43,211,15,45,136,4,222,15,19,217, + 12,16,216,13,17,144,93,211,13,34,216,36,37,136,70,144, + 61,211,12,33,216,13,17,143,95,137,95,152,89,215,13,39, + 209,13,39,217,12,16,208,17,58,214,12,59,224,12,22,215, + 12,29,209,12,29,153,104,160,119,176,4,211,30,53,214,12, + 54,241,19,0,17,20,240,20,0,37,47,128,70,208,11,32, + 209,4,33,216,40,41,128,70,208,11,36,209,4,37,240,12, + 0,26,38,128,6,128,126,209,0,22,216,17,21,128,6,128, + 118,129,14,216,23,33,128,6,128,124,209,0,20,216,28,43, + 128,6,208,7,24,209,0,25,216,19,25,128,6,128,120,209, + 0,16,216,24,35,128,6,128,125,209,0,21,216,24,35,215, + 24,45,160,118,128,6,128,125,209,0,21,216,29,45,215,29, + 60,176,27,128,6,208,7,25,209,0,26,224,23,33,128,6, + 128,124,209,0,20,224,23,33,215,23,39,160,82,128,6,128, + 124,209,0,20,216,27,41,215,27,47,168,82,128,6,208,7, + 23,210,0,24,248,240,77,17,0,12,22,243,0,1,5,13, + 218,8,12,240,3,1,5,13,251,240,94,3,0,17,34,160, + 63,208,15,51,243,0,3,9,39,225,24,33,161,40,168,60, + 184,29,211,34,71,211,24,72,136,73,216,26,38,139,75,240, + 7,3,9,39,251,240,8,0,13,30,152,127,208,11,47,243, + 0,2,5,23,216,22,26,136,11,216,20,22,139,9,240,5, + 2,5,23,251,240,32,0,24,31,243,0,1,17,25,218,20, + 24,240,3,1,17,25,251,240,82,1,0,12,19,243,0,4, + 5,71,1,241,6,0,12,18,144,47,215,11,34,209,11,34, + 217,12,16,208,19,51,176,79,208,51,68,208,17,69,212,12, + 70,255,249,240,9,4,5,71,1,251,240,104,1,0,20,27, + 243,0,1,13,21,219,16,20,240,3,1,13,21,251,240,54, + 0,12,22,243,0,3,5,60,224,25,44,136,14,217,23,31, 208,32,51,176,85,211,23,59,139,12,216,12,29,152,127,208, - 11,47,242,0,7,5,53,217,11,17,145,40,208,27,46,176, - 14,211,18,63,212,11,64,217,27,35,208,36,55,184,21,211, - 27,63,136,76,216,15,22,152,36,138,127,240,8,0,34,53, - 144,14,250,240,15,7,5,53,251,240,64,6,0,32,39,242, - 0,1,25,34,217,28,33,240,3,1,25,34,250,241,16,0, - 28,32,169,10,216,28,34,215,28,45,209,28,45,168,99,176, - 52,211,28,56,152,1,217,27,37,160,97,168,19,212,27,45, - 216,28,38,215,28,45,209,28,45,168,97,175,103,169,103,176, - 101,171,110,212,28,61,224,20,26,151,79,145,79,160,67,213, - 20,40,248,144,70,151,79,145,79,160,67,213,20,40,250,209, - 20,40,248,216,19,26,242,0,1,13,21,218,16,20,240,3, - 1,13,21,250,115,229,0,0,0,197,46,21,98,43,0,201, - 7,20,99,22,0,201,28,15,98,55,0,202,63,15,99,40, - 2,204,61,8,99,52,0,207,9,16,100,26,2,208,2,34, - 100,38,0,217,61,18,103,25,2,218,16,3,103,1,2,218, - 20,34,101,37,2,218,54,47,103,1,2,226,43,5,98,52, - 3,226,51,1,98,52,3,226,55,24,99,19,3,227,15,3, - 99,22,0,227,18,1,99,19,3,227,19,3,99,22,0,227, - 22,11,99,37,3,227,36,1,99,37,3,227,40,5,99,49, - 5,227,48,1,99,49,5,227,52,5,100,23,3,227,57,19, - 100,18,3,228,18,5,100,23,3,228,26,5,100,35,5,228, - 34,1,100,35,5,228,38,16,101,34,3,228,57,37,101,34, - 3,229,33,1,101,34,3,229,37,5,101,45,5,229,42,2, - 103,1,2,229,44,1,101,45,5,229,45,65,2,103,1,2, - 230,47,18,103,25,2,231,1,19,103,20,5,231,20,3,103, - 25,2,231,25,5,103,34,5,231,33,1,103,34,5, + 11,47,243,0,7,5,53,217,11,17,145,40,208,27,46,176, + 14,211,18,63,215,11,64,209,11,64,217,27,35,208,36,55, + 184,21,211,27,63,136,76,216,15,22,152,36,139,127,240,8, + 0,34,53,144,14,250,240,15,7,5,53,251,240,70,6,0, + 32,39,243,0,1,25,34,217,28,33,240,3,1,25,34,250, + 246,16,0,28,32,174,10,216,28,34,215,28,45,209,28,45, + 168,99,176,52,211,28,56,152,1,217,27,37,160,97,168,19, + 215,27,45,209,27,45,216,28,38,215,28,45,209,28,45,168, + 97,175,103,169,103,176,101,171,110,212,28,61,224,20,26,151, + 79,145,79,160,67,215,20,40,248,144,70,151,79,145,79,160, + 67,213,20,40,251,216,19,26,243,0,1,13,21,219,16,20, + 240,3,1,13,21,250,115,229,0,0,0,198,33,21,110,37, + 0,204,3,25,111,18,0,204,29,15,110,50,0,206,13,16, + 111,37,2,209,1,8,111,50,0,212,16,16,112,30,2,213, + 31,34,112,44,0,227,59,18,115,55,2,228,14,3,115,33, + 2,228,18,34,113,51,2,228,52,53,115,33,2,238,37,6, + 110,47,3,238,46,1,110,47,3,238,50,25,111,15,3,239, + 11,1,111,18,0,239,14,1,111,15,3,239,15,3,111,18, + 0,239,18,12,111,34,3,239,33,1,111,34,3,239,37,6, + 111,47,5,239,46,1,111,47,5,239,50,6,112,27,3,239, + 56,24,112,22,3,240,22,5,112,27,3,240,30,6,112,41, + 5,240,40,1,112,41,5,240,44,17,113,48,3,241,0,44, + 113,48,3,241,47,1,113,48,3,241,51,6,113,60,5,241, + 57,2,115,33,2,241,59,1,113,60,5,241,60,65,17,115, + 33,2,243,13,17,115,55,2,243,33,19,115,52,5,243,52, + 3,115,55,2,243,55,6,116,2,5,244,1,1,116,2,5, }; diff --git a/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap.h b/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap.h index fa1b7aadbc8..90ac5356c08 100644 --- a/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap.h +++ b/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap.h @@ -1,40 +1,41 @@ /* Auto-generated by Programs/_freeze_module.c */ const unsigned char _Py_M__importlib__bootstrap[] = { 99,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,0,0,0,0,243,10,2,0,0,151,0,100,0,90,0, - 100,1,132,0,90,1,100,2,90,2,100,2,90,3,100,2, - 90,4,100,2,97,5,100,3,132,0,90,6,100,4,132,0, - 90,7,2,0,71,0,100,5,132,0,100,6,101,8,171,3, - 0,0,0,0,0,0,90,9,2,0,71,0,100,7,132,0, - 100,8,171,2,0,0,0,0,0,0,90,10,105,0,90,11, - 100,2,97,12,2,0,71,0,100,9,132,0,100,10,171,2, - 0,0,0,0,0,0,90,13,2,0,71,0,100,11,132,0, - 100,12,101,14,171,3,0,0,0,0,0,0,90,15,100,13, - 132,0,90,16,2,0,71,0,100,14,132,0,100,15,171,2, - 0,0,0,0,0,0,90,17,2,0,71,0,100,16,132,0, - 100,17,171,2,0,0,0,0,0,0,90,18,2,0,71,0, - 100,18,132,0,100,19,171,2,0,0,0,0,0,0,90,19, - 100,20,132,0,90,20,100,21,132,0,90,21,100,22,132,0, - 90,22,100,23,100,24,156,1,100,25,132,2,90,23,100,26, - 132,0,90,24,100,27,132,0,90,25,100,28,132,0,90,26, - 100,29,132,0,90,27,2,0,71,0,100,30,132,0,100,31, - 171,2,0,0,0,0,0,0,90,28,100,2,100,2,100,32, - 156,2,100,33,132,2,90,29,100,66,100,34,132,1,90,30, - 100,35,100,36,156,1,100,37,132,2,90,31,100,38,132,0, - 90,32,100,39,132,0,90,33,100,40,132,0,90,34,100,41, - 132,0,90,35,100,42,132,0,90,36,100,43,132,0,90,37, - 2,0,71,0,100,44,132,0,100,45,171,2,0,0,0,0, - 0,0,90,38,2,0,71,0,100,46,132,0,100,47,171,2, - 0,0,0,0,0,0,90,39,2,0,71,0,100,48,132,0, - 100,49,171,2,0,0,0,0,0,0,90,40,100,50,132,0, - 90,41,100,67,100,51,132,1,90,42,100,52,132,0,90,43, - 100,53,90,44,101,44,100,54,122,0,0,0,90,45,100,55, - 132,0,90,46,2,0,101,47,171,0,0,0,0,0,0,0, - 90,48,100,56,132,0,90,49,100,68,100,57,132,1,90,50, - 100,35,100,58,156,1,100,59,132,2,90,51,100,60,132,0, - 90,52,100,69,100,61,132,1,90,53,100,62,132,0,90,54, - 100,63,132,0,90,55,100,64,132,0,90,56,100,65,132,0, - 90,57,121,2,41,70,97,83,1,0,0,67,111,114,101,32, + 0,0,0,0,0,243,26,2,0,0,149,0,83,0,114,0, + 83,1,26,0,114,1,83,2,114,2,83,2,114,3,83,2, + 114,4,83,2,113,5,83,3,26,0,114,6,83,4,26,0, + 114,7,24,0,34,0,83,5,26,0,83,6,92,8,53,3, + 0,0,0,0,0,0,114,9,24,0,34,0,83,7,26,0, + 83,8,53,2,0,0,0,0,0,0,114,10,48,0,114,11, + 83,2,113,12,24,0,34,0,83,9,26,0,83,10,53,2, + 0,0,0,0,0,0,114,13,24,0,34,0,83,11,26,0, + 83,12,92,14,53,3,0,0,0,0,0,0,114,15,83,13, + 26,0,114,16,24,0,34,0,83,14,26,0,83,15,53,2, + 0,0,0,0,0,0,114,17,24,0,34,0,83,16,26,0, + 83,17,53,2,0,0,0,0,0,0,114,18,24,0,34,0, + 83,18,26,0,83,19,53,2,0,0,0,0,0,0,114,19, + 83,20,26,0,114,20,83,21,26,0,114,21,83,22,26,0, + 114,22,83,23,83,24,46,1,83,25,26,0,106,2,114,23, + 83,26,26,0,114,24,83,27,26,0,114,25,83,28,26,0, + 114,26,83,29,26,0,114,27,24,0,34,0,83,30,26,0, + 83,31,53,2,0,0,0,0,0,0,114,28,83,2,83,2, + 83,32,46,2,83,33,26,0,106,2,114,29,83,66,83,34, + 26,0,106,1,114,30,83,35,83,36,46,1,83,37,26,0, + 106,2,114,31,83,38,26,0,114,32,83,39,26,0,114,33, + 83,40,26,0,114,34,83,41,26,0,114,35,83,42,26,0, + 114,36,83,43,26,0,114,37,24,0,34,0,83,44,26,0, + 83,45,53,2,0,0,0,0,0,0,114,38,24,0,34,0, + 83,46,26,0,83,47,53,2,0,0,0,0,0,0,114,39, + 24,0,34,0,83,48,26,0,83,49,53,2,0,0,0,0, + 0,0,114,40,83,50,26,0,114,41,83,67,83,51,26,0, + 106,1,114,42,83,52,26,0,114,43,83,53,114,44,92,44, + 83,54,45,0,0,0,114,45,83,55,26,0,114,46,92,47, + 34,0,53,0,0,0,0,0,0,0,114,48,83,56,26,0, + 114,49,83,68,83,57,26,0,106,1,114,50,83,35,83,58, + 46,1,83,59,26,0,106,2,114,51,83,60,26,0,114,52, + 83,69,83,61,26,0,106,1,114,53,83,62,26,0,114,54, + 83,63,26,0,114,55,83,64,26,0,114,56,83,65,26,0, + 114,57,103,2,41,70,97,83,1,0,0,67,111,114,101,32, 105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,111, 102,32,105,109,112,111,114,116,46,10,10,84,104,105,115,32, 109,111,100,117,108,101,32,105,115,32,78,79,84,32,109,101, @@ -57,3430 +58,3500 @@ const unsigned char _Py_M__importlib__bootstrap[] = { 99,105,110,103,32,118,101,114,115,105,111,110,32,111,102,32, 116,104,105,115,32,109,111,100,117,108,101,46,10,10,99,1, 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,100,0,0,0,151,0,9,0,124,0,106,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,83,0,35,0,116,2,0,0,0,0,0,0,0,0, - 36,0,114,24,1,0,116,5,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,106,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,2, - 89,0,83,0,119,0,120,3,89,0,119,1,169,1,78,41, - 3,218,12,95,95,113,117,97,108,110,97,109,101,95,95,218, - 14,65,116,116,114,105,98,117,116,101,69,114,114,111,114,218, - 4,116,121,112,101,41,1,218,3,111,98,106,115,1,0,0, - 0,32,250,29,60,102,114,111,122,101,110,32,105,109,112,111, - 114,116,108,105,98,46,95,98,111,111,116,115,116,114,97,112, - 62,218,12,95,111,98,106,101,99,116,95,110,97,109,101,114, - 8,0,0,0,23,0,0,0,115,50,0,0,0,128,0,240, - 2,3,5,38,216,15,18,215,15,31,209,15,31,208,8,31, - 248,220,11,25,242,0,1,5,38,220,15,19,144,67,139,121, - 215,15,37,209,15,37,210,8,37,240,3,1,5,38,250,115, - 12,0,0,0,130,11,14,0,142,30,47,3,174,1,47,3, - 78,99,2,0,0,0,0,0,0,0,0,0,0,0,9,0, - 0,0,3,0,0,0,243,164,0,0,0,151,0,100,1,68, - 0,93,38,0,0,125,2,116,1,0,0,0,0,0,0,0, - 0,124,1,124,2,171,2,0,0,0,0,0,0,115,1,140, - 16,116,3,0,0,0,0,0,0,0,0,124,0,124,2,116, - 5,0,0,0,0,0,0,0,0,124,1,124,2,171,2,0, - 0,0,0,0,0,171,3,0,0,0,0,0,0,1,0,140, - 40,4,0,124,0,106,6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,9,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,106, - 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,1,0,121,2,41, - 3,122,47,83,105,109,112,108,101,32,115,117,98,115,116,105, - 116,117,116,101,32,102,111,114,32,102,117,110,99,116,111,111, - 108,115,46,117,112,100,97,116,101,95,119,114,97,112,112,101, - 114,46,41,4,218,10,95,95,109,111,100,117,108,101,95,95, - 218,8,95,95,110,97,109,101,95,95,114,3,0,0,0,218, - 7,95,95,100,111,99,95,95,78,41,5,218,7,104,97,115, - 97,116,116,114,218,7,115,101,116,97,116,116,114,218,7,103, - 101,116,97,116,116,114,218,8,95,95,100,105,99,116,95,95, - 218,6,117,112,100,97,116,101,41,3,218,3,110,101,119,218, - 3,111,108,100,218,7,114,101,112,108,97,99,101,115,3,0, - 0,0,32,32,32,114,7,0,0,0,218,5,95,119,114,97, - 112,114,21,0,0,0,40,0,0,0,115,66,0,0,0,128, - 0,227,19,72,136,7,220,11,18,144,51,152,7,213,11,32, - 220,12,19,144,67,152,23,164,39,168,35,168,119,211,34,55, - 213,12,56,240,5,0,20,73,1,240,6,0,5,8,135,76, - 129,76,215,4,23,209,4,23,152,3,159,12,153,12,213,4, - 37,243,0,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,44,0,0,0, - 151,0,2,0,116,1,0,0,0,0,0,0,0,0,116,2, - 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,83,0,114,2,0,0, - 0,41,2,114,5,0,0,0,218,3,115,121,115,169,1,218, - 4,110,97,109,101,115,1,0,0,0,32,114,7,0,0,0, - 218,11,95,110,101,119,95,109,111,100,117,108,101,114,27,0, - 0,0,48,0,0,0,115,18,0,0,0,128,0,216,11,20, - 140,52,148,3,139,57,144,84,139,63,208,4,26,114,22,0, - 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,1, - 0,0,0,0,0,0,0,243,12,0,0,0,151,0,101,0, - 90,1,100,0,90,2,121,1,41,2,218,5,95,76,105,115, - 116,78,169,3,114,11,0,0,0,114,10,0,0,0,114,3, - 0,0,0,169,0,114,22,0,0,0,114,7,0,0,0,114, - 29,0,0,0,114,29,0,0,0,55,0,0,0,243,5,0, - 0,0,132,0,216,4,8,114,22,0,0,0,114,29,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,0,0,0,0,243,46,0,0,0,151,0,101,0,90, - 1,100,0,90,2,100,1,132,0,90,3,100,2,132,0,90, - 4,100,3,132,0,90,5,100,7,100,5,132,1,90,6,100, - 7,100,6,132,1,90,7,121,4,41,8,218,20,95,87,101, - 97,107,86,97,108,117,101,68,105,99,116,105,111,110,97,114, - 121,99,1,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,3,0,0,0,243,148,0,0,0,135,2,151,0,116, - 0,0,0,0,0,0,0,0,0,106,3,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,138,2,2,0,71,0,136,2,102, - 1,100,1,132,8,100,2,116,0,0,0,0,0,0,0,0, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,3,0,0,0,0,0,0,125,1,124, - 1,124,0,95,2,0,0,0,0,0,0,0,0,124,0,106, - 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,1,0,121,0,41, - 3,78,99,0,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,0,0,0,0,243,66,0,0,0,149,1,135,0, - 151,0,101,0,90,1,100,0,90,2,100,1,90,3,136,0, - 102,1,100,2,132,8,90,4,136,0,102,1,100,3,132,8, - 90,5,101,6,136,1,102,1,100,4,132,8,171,0,0,0, - 0,0,0,0,90,7,136,0,120,1,90,8,83,0,41,5, - 250,47,95,87,101,97,107,86,97,108,117,101,68,105,99,116, + 0,0,0,243,102,0,0,0,149,0,30,0,85,0,82,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,36,0,33,0,91,2,0,0,0,0,0,0,0,0, + 7,0,97,24,0,0,32,0,91,5,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,82,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 115,2,31,0,36,0,102,0,61,3,31,0,102,1,169,1, + 78,41,3,218,12,95,95,113,117,97,108,110,97,109,101,95, + 95,218,14,65,116,116,114,105,98,117,116,101,69,114,114,111, + 114,218,4,116,121,112,101,41,1,218,3,111,98,106,115,1, + 0,0,0,32,218,29,60,102,114,111,122,101,110,32,105,109, + 112,111,114,116,108,105,98,46,95,98,111,111,116,115,116,114, + 97,112,62,218,12,95,111,98,106,101,99,116,95,110,97,109, + 101,114,8,0,0,0,23,0,0,0,115,50,0,0,0,128, + 0,240,2,3,5,38,216,15,18,215,15,31,209,15,31,208, + 8,31,248,220,11,25,243,0,1,5,38,220,15,19,144,67, + 139,121,215,15,37,209,15,37,210,8,37,240,3,1,5,38, + 250,115,12,0,0,0,130,11,14,0,142,31,48,3,175,1, + 48,3,78,99,2,0,0,0,0,0,0,0,0,0,0,0, + 9,0,0,0,3,0,0,0,243,174,0,0,0,149,0,83, + 1,19,0,72,42,0,0,110,2,91,1,0,0,0,0,0, + 0,0,0,88,18,53,2,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,100,2,0,0,77,21,0,0,91,3,0, + 0,0,0,0,0,0,0,88,2,91,5,0,0,0,0,0, + 0,0,0,88,18,53,2,0,0,0,0,0,0,53,3,0, + 0,0,0,0,0,32,0,77,44,0,0,11,0,32,0,85, + 0,82,6,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,82,9,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,1,82,6,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 1,0,0,0,0,0,0,32,0,103,2,41,3,122,47,83, + 105,109,112,108,101,32,115,117,98,115,116,105,116,117,116,101, + 32,102,111,114,32,102,117,110,99,116,111,111,108,115,46,117, + 112,100,97,116,101,95,119,114,97,112,112,101,114,46,41,4, + 218,10,95,95,109,111,100,117,108,101,95,95,218,8,95,95, + 110,97,109,101,95,95,114,3,0,0,0,218,7,95,95,100, + 111,99,95,95,78,41,5,218,7,104,97,115,97,116,116,114, + 218,7,115,101,116,97,116,116,114,218,7,103,101,116,97,116, + 116,114,218,8,95,95,100,105,99,116,95,95,218,6,117,112, + 100,97,116,101,41,3,218,3,110,101,119,218,3,111,108,100, + 218,7,114,101,112,108,97,99,101,115,3,0,0,0,32,32, + 32,114,7,0,0,0,218,5,95,119,114,97,112,114,21,0, + 0,0,40,0,0,0,115,63,0,0,0,128,0,227,19,72, + 136,7,220,11,18,144,51,215,11,32,211,11,32,220,12,19, + 144,67,164,39,168,35,211,34,55,214,12,56,241,5,0,20, + 73,1,240,6,0,5,8,135,76,129,76,215,4,23,209,4, + 23,152,3,159,12,153,12,213,4,37,243,0,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,44,0,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,91,2,0,0,0,0,0,0,0,0,53, + 1,0,0,0,0,0,0,34,0,85,0,53,1,0,0,0, + 0,0,0,36,0,114,2,0,0,0,41,2,114,5,0,0, + 0,218,3,115,121,115,169,1,218,4,110,97,109,101,115,1, + 0,0,0,32,114,7,0,0,0,218,11,95,110,101,119,95, + 109,111,100,117,108,101,114,27,0,0,0,48,0,0,0,115, + 16,0,0,0,128,0,220,11,15,148,3,140,57,144,84,139, + 63,208,4,26,114,22,0,0,0,99,0,0,0,0,0,0, + 0,0,0,0,0,0,1,0,0,0,0,0,0,0,243,24, + 0,0,0,149,0,92,0,114,1,83,0,114,2,83,1,114, + 3,83,2,114,4,83,3,114,5,103,4,41,5,218,5,95, + 76,105,115,116,233,55,0,0,0,41,1,218,11,95,95,119, + 101,97,107,114,101,102,95,95,169,0,78,41,6,114,11,0, + 0,0,114,10,0,0,0,114,3,0,0,0,218,15,95,95, + 102,105,114,115,116,108,105,110,101,110,111,95,95,218,9,95, + 95,115,108,111,116,115,95,95,218,21,95,95,115,116,97,116, + 105,99,95,97,116,116,114,105,98,117,116,101,115,95,95,114, + 32,0,0,0,114,22,0,0,0,114,7,0,0,0,114,29, + 0,0,0,114,29,0,0,0,55,0,0,0,115,7,0,0, + 0,134,0,216,16,32,131,73,114,22,0,0,0,114,29,0, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,0,0,0,0,243,58,0,0,0,149,0,92,0, + 114,1,83,0,114,2,83,1,114,3,83,2,26,0,114,4, + 83,3,26,0,114,5,83,4,26,0,114,6,83,9,83,6, + 26,0,106,1,114,7,83,9,83,7,26,0,106,1,114,8, + 83,8,114,9,103,5,41,10,218,20,95,87,101,97,107,86, + 97,108,117,101,68,105,99,116,105,111,110,97,114,121,233,62, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,3,0,0,0,243,148,0,0,0,94,2,149, + 0,91,0,0,0,0,0,0,0,0,0,82,3,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,109,2,24,0,34,0,85, + 2,52,1,83,1,26,0,106,8,83,2,91,0,0,0,0, + 0,0,0,0,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,53,3,0,0,0,0,0, + 0,110,1,88,16,108,2,0,0,0,0,0,0,0,0,85, + 0,82,7,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,32,0,103, + 0,41,3,78,99,0,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,0,0,0,0,243,80,0,0,0,62,1, + 94,0,149,0,92,0,114,1,83,0,114,2,83,1,114,3, + 83,2,114,4,85,0,52,1,83,3,26,0,106,8,114,5, + 85,0,52,1,83,4,26,0,106,8,114,6,92,7,85,1, + 52,1,83,5,26,0,106,8,53,0,0,0,0,0,0,0, + 114,8,83,2,114,9,85,0,61,1,114,10,36,0,41,6, + 218,47,95,87,101,97,107,86,97,108,117,101,68,105,99,116, 105,111,110,97,114,121,46,95,95,105,110,105,116,95,95,46, 60,108,111,99,97,108,115,62,46,75,101,121,101,100,82,101, - 102,41,1,218,3,107,101,121,99,3,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,19,0,0,0,243,76,0, - 0,0,149,1,151,0,116,0,0,0,0,0,0,0,0,0, - 137,4,124,0,141,5,0,0,124,0,124,1,124,0,106,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,3,0,0,0,0,0,0,125,3,124,2,124,3, - 95,3,0,0,0,0,0,0,0,0,124,3,83,0,114,2, - 0,0,0,41,4,218,5,115,117,112,101,114,218,7,95,95, - 110,101,119,95,95,218,6,114,101,109,111,118,101,114,38,0, - 0,0,41,5,114,5,0,0,0,218,2,111,98,114,38,0, - 0,0,218,4,115,101,108,102,218,9,95,95,99,108,97,115, - 115,95,95,115,5,0,0,0,32,32,32,32,128,114,7,0, - 0,0,114,41,0,0,0,122,55,95,87,101,97,107,86,97, - 108,117,101,68,105,99,116,105,111,110,97,114,121,46,95,95, - 105,110,105,116,95,95,46,60,108,111,99,97,108,115,62,46, - 75,101,121,101,100,82,101,102,46,95,95,110,101,119,95,95, - 74,0,0,0,115,37,0,0,0,248,128,0,220,23,28,145, - 119,145,127,160,116,168,82,176,20,183,27,177,27,211,23,61, - 144,4,216,27,30,144,4,148,8,216,23,27,144,11,114,22, - 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,19,0,0,0,243,58,0,0,0,149,1,151, - 0,116,0,0,0,0,0,0,0,0,0,137,3,124,0,141, - 5,0,0,124,1,124,0,106,4,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,1,0,121,0,114,2,0,0,0,41,3,114,40, - 0,0,0,218,8,95,95,105,110,105,116,95,95,114,42,0, - 0,0,41,4,114,44,0,0,0,114,43,0,0,0,114,38, - 0,0,0,114,45,0,0,0,115,4,0,0,0,32,32,32, - 128,114,7,0,0,0,114,47,0,0,0,122,56,95,87,101, + 102,233,70,0,0,0,41,1,218,3,107,101,121,99,3,0, + 0,0,0,0,0,0,0,0,0,0,5,0,0,0,19,0, + 0,0,243,72,0,0,0,62,1,149,0,91,0,0,0,0, + 0,0,0,0,0,84,4,85,0,93,5,0,0,88,1,85, + 0,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,3,0,0,0,0,0,0,110,3,88, + 35,108,3,0,0,0,0,0,0,0,0,85,3,36,0,114, + 2,0,0,0,41,4,218,5,115,117,112,101,114,218,7,95, + 95,110,101,119,95,95,218,6,114,101,109,111,118,101,114,43, + 0,0,0,41,5,114,5,0,0,0,218,2,111,98,114,43, + 0,0,0,218,4,115,101,108,102,218,9,95,95,99,108,97, + 115,115,95,95,115,5,0,0,0,32,32,32,32,128,114,7, + 0,0,0,114,46,0,0,0,218,55,95,87,101,97,107,86, + 97,108,117,101,68,105,99,116,105,111,110,97,114,121,46,95, + 95,105,110,105,116,95,95,46,60,108,111,99,97,108,115,62, + 46,75,101,121,101,100,82,101,102,46,95,95,110,101,119,95, + 95,74,0,0,0,115,33,0,0,0,248,128,0,220,23,28, + 145,119,145,127,160,116,176,20,183,27,177,27,211,23,61,144, + 4,216,27,30,148,8,216,23,27,144,11,114,22,0,0,0, + 99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,19,0,0,0,243,56,0,0,0,62,1,149,0,91,0, + 0,0,0,0,0,0,0,0,84,3,85,0,93,5,0,0, + 88,16,82,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,2,0,0,0,0,0,0,32,0, + 103,0,114,2,0,0,0,41,3,114,45,0,0,0,218,8, + 95,95,105,110,105,116,95,95,114,47,0,0,0,41,4,114, + 49,0,0,0,114,48,0,0,0,114,43,0,0,0,114,50, + 0,0,0,115,4,0,0,0,32,32,32,128,114,7,0,0, + 0,114,53,0,0,0,218,56,95,87,101,97,107,86,97,108, + 117,101,68,105,99,116,105,111,110,97,114,121,46,95,95,105, + 110,105,116,95,95,46,60,108,111,99,97,108,115,62,46,75, + 101,121,101,100,82,101,102,46,95,95,105,110,105,116,95,95, + 79,0,0,0,115,20,0,0,0,248,128,0,220,16,21,145, + 7,209,16,32,160,18,167,91,161,91,213,16,49,114,22,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,19,0,0,0,243,222,0,0,0,62,1,149,0, + 84,2,34,0,53,0,0,0,0,0,0,0,110,1,85,1, + 98,98,0,0,85,1,82,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,97,38,0,0,85,1,82,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,82,5,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,0,82,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,32,0, + 103,0,91,8,0,0,0,0,0,0,0,0,82,11,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,1,82,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,0,82,6,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,2,0,0, + 0,0,0,0,32,0,103,0,103,0,114,2,0,0,0,41, + 7,218,10,95,105,116,101,114,97,116,105,110,103,218,17,95, + 112,101,110,100,105,110,103,95,114,101,109,111,118,97,108,115, + 218,6,97,112,112,101,110,100,114,43,0,0,0,218,8,95, + 119,101,97,107,114,101,102,218,20,95,114,101,109,111,118,101, + 95,100,101,97,100,95,119,101,97,107,114,101,102,218,4,100, + 97,116,97,41,3,218,2,119,114,114,49,0,0,0,218,12, + 115,101,108,102,95,119,101,97,107,114,101,102,115,3,0,0, + 0,32,32,128,114,7,0,0,0,114,47,0,0,0,218,54, + 95,87,101,97,107,86,97,108,117,101,68,105,99,116,105,111, + 110,97,114,121,46,95,95,105,110,105,116,95,95,46,60,108, + 111,99,97,108,115,62,46,75,101,121,101,100,82,101,102,46, + 114,101,109,111,118,101,82,0,0,0,115,78,0,0,0,248, + 128,0,241,8,0,24,36,147,126,144,4,216,19,23,209,19, + 35,216,23,27,151,127,151,127,216,24,28,215,24,46,209,24, + 46,215,24,53,209,24,53,176,98,183,102,177,102,213,24,61, + 228,24,32,215,24,53,209,24,53,176,100,183,105,177,105,192, + 18,199,22,193,22,213,24,72,240,9,0,20,36,114,22,0, + 0,0,41,11,114,11,0,0,0,114,10,0,0,0,114,3, + 0,0,0,114,33,0,0,0,114,34,0,0,0,114,46,0, + 0,0,114,53,0,0,0,218,12,115,116,97,116,105,99,109, + 101,116,104,111,100,114,47,0,0,0,114,35,0,0,0,218, + 13,95,95,99,108,97,115,115,99,101,108,108,95,95,41,2, + 114,50,0,0,0,114,63,0,0,0,115,2,0,0,0,64, + 128,114,7,0,0,0,218,8,75,101,121,101,100,82,101,102, + 114,41,0,0,0,70,0,0,0,115,40,0,0,0,249,134, + 0,224,24,30,136,73,245,4,3,13,28,245,10,1,13,50, + 240,6,0,14,26,244,2,8,13,73,1,243,3,0,14,26, + 246,2,8,13,73,1,114,22,0,0,0,114,67,0,0,0, + 41,4,114,59,0,0,0,218,3,114,101,102,218,9,95,75, + 101,121,101,100,82,101,102,218,5,99,108,101,97,114,41,3, + 114,49,0,0,0,114,67,0,0,0,114,63,0,0,0,115, + 3,0,0,0,32,32,64,114,7,0,0,0,114,53,0,0, + 0,218,29,95,87,101,97,107,86,97,108,117,101,68,105,99, + 116,105,111,110,97,114,121,46,95,95,105,110,105,116,95,95, + 64,0,0,0,115,51,0,0,0,248,128,0,220,23,31,151, + 124,145,124,160,68,211,23,41,136,12,247,10,21,9,73,1, + 148,120,151,124,145,124,244,0,21,9,73,1,240,46,0,26, + 34,140,14,216,8,12,143,10,137,10,141,12,114,22,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,243,62,0,0,0,149,0,47,0,85, + 0,108,0,0,0,0,0,0,0,0,0,91,3,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,85,0,108, + 2,0,0,0,0,0,0,0,0,48,0,85,0,108,3,0, + 0,0,0,0,0,0,0,103,0,114,2,0,0,0,41,4, + 114,57,0,0,0,218,3,115,101,116,114,56,0,0,0,114, + 61,0,0,0,169,1,114,49,0,0,0,115,1,0,0,0, + 32,114,7,0,0,0,114,70,0,0,0,218,26,95,87,101, 97,107,86,97,108,117,101,68,105,99,116,105,111,110,97,114, - 121,46,95,95,105,110,105,116,95,95,46,60,108,111,99,97, - 108,115,62,46,75,101,121,101,100,82,101,102,46,95,95,105, - 110,105,116,95,95,79,0,0,0,115,22,0,0,0,248,128, - 0,220,16,21,145,7,209,16,32,160,18,160,84,167,91,161, - 91,213,16,49,114,22,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,19,0,0,0,243,210, - 0,0,0,149,1,151,0,2,0,137,2,171,0,0,0,0, - 0,0,0,125,1,124,1,129,93,124,1,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114, - 38,124,1,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,5,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,106,6,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,1,0,121,0,116,8,0, - 0,0,0,0,0,0,0,106,11,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,106,12,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,0,106,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,1, - 0,121,0,121,0,114,2,0,0,0,41,7,218,10,95,105, - 116,101,114,97,116,105,110,103,218,17,95,112,101,110,100,105, - 110,103,95,114,101,109,111,118,97,108,115,218,6,97,112,112, - 101,110,100,114,38,0,0,0,218,8,95,119,101,97,107,114, - 101,102,218,20,95,114,101,109,111,118,101,95,100,101,97,100, - 95,119,101,97,107,114,101,102,218,4,100,97,116,97,41,3, - 218,2,119,114,114,44,0,0,0,218,12,115,101,108,102,95, - 119,101,97,107,114,101,102,115,3,0,0,0,32,32,128,114, - 7,0,0,0,114,42,0,0,0,122,54,95,87,101,97,107, + 121,46,99,108,101,97,114,96,0,0,0,115,26,0,0,0, + 128,0,216,33,35,136,4,212,8,30,220,26,29,155,37,136, + 4,140,15,216,20,22,136,4,141,9,114,22,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,243,166,0,0,0,149,0,85,0,82,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,110,1,85,0,82,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,110,2,30, + 0,30,0,85,1,34,0,53,0,0,0,0,0,0,0,110, + 3,91,8,0,0,0,0,0,0,0,0,82,11,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88, + 35,53,2,0,0,0,0,0,0,32,0,77,31,0,0,33, + 0,91,6,0,0,0,0,0,0,0,0,7,0,97,3,0, + 0,32,0,31,0,103,0,102,0,61,3,31,0,102,1,114, + 2,0,0,0,41,6,114,57,0,0,0,218,3,112,111,112, + 114,61,0,0,0,218,10,73,110,100,101,120,69,114,114,111, + 114,114,59,0,0,0,114,60,0,0,0,41,4,114,49,0, + 0,0,114,77,0,0,0,218,1,100,114,43,0,0,0,115, + 4,0,0,0,32,32,32,32,114,7,0,0,0,218,16,95, + 99,111,109,109,105,116,95,114,101,109,111,118,97,108,115,218, + 37,95,87,101,97,107,86,97,108,117,101,68,105,99,116,105, + 111,110,97,114,121,46,95,99,111,109,109,105,116,95,114,101, + 109,111,118,97,108,115,101,0,0,0,115,84,0,0,0,128, + 0,216,14,18,215,14,36,209,14,36,215,14,40,209,14,40, + 136,3,216,12,16,143,73,137,73,136,1,216,14,18,240,2, + 3,13,23,217,22,25,147,101,144,3,244,6,0,13,21,215, + 12,41,209,12,41,168,33,212,12,49,241,11,0,15,19,248, + 244,6,0,20,30,243,0,1,13,23,217,16,22,240,3,1, + 13,23,250,115,17,0,0,0,165,7,65,3,0,193,3,10, + 65,16,3,193,15,1,65,16,3,78,99,3,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 164,0,0,0,149,0,85,0,82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,97,16,0,0,85,0,82,3,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,32,0,30,0,85,0,82,4,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,1,5,0,0,0,110,3,85,3,34,0,53,0,0,0, + 0,0,0,0,61,1,110,4,99,2,0,0,85,2,36,0, + 85,4,36,0,33,0,91,6,0,0,0,0,0,0,0,0, + 7,0,97,5,0,0,32,0,85,2,115,2,31,0,36,0, + 102,0,61,3,31,0,102,1,114,2,0,0,0,41,4,114, + 57,0,0,0,114,80,0,0,0,114,61,0,0,0,218,8, + 75,101,121,69,114,114,111,114,41,5,114,49,0,0,0,114, + 43,0,0,0,218,7,100,101,102,97,117,108,116,114,62,0, + 0,0,218,1,111,115,5,0,0,0,32,32,32,32,32,114, + 7,0,0,0,218,3,103,101,116,218,24,95,87,101,97,107, 86,97,108,117,101,68,105,99,116,105,111,110,97,114,121,46, - 95,95,105,110,105,116,95,95,46,60,108,111,99,97,108,115, - 62,46,75,101,121,101,100,82,101,102,46,114,101,109,111,118, - 101,82,0,0,0,115,78,0,0,0,248,128,0,241,8,0, - 24,36,147,126,144,4,216,19,23,208,19,35,216,23,27,151, - 127,146,127,216,24,28,215,24,46,209,24,46,215,24,53,209, - 24,53,176,98,183,102,177,102,213,24,61,228,24,32,215,24, - 53,209,24,53,176,100,183,105,177,105,192,18,199,22,193,22, - 213,24,72,240,9,0,20,36,114,22,0,0,0,41,9,114, - 11,0,0,0,114,10,0,0,0,114,3,0,0,0,218,9, - 95,95,115,108,111,116,115,95,95,114,41,0,0,0,114,47, - 0,0,0,218,12,115,116,97,116,105,99,109,101,116,104,111, - 100,114,42,0,0,0,218,13,95,95,99,108,97,115,115,99, - 101,108,108,95,95,41,2,114,45,0,0,0,114,56,0,0, - 0,115,2,0,0,0,64,128,114,7,0,0,0,218,8,75, - 101,121,101,100,82,101,102,114,37,0,0,0,70,0,0,0, - 115,40,0,0,0,249,132,0,224,24,30,136,73,244,4,3, - 13,28,244,10,1,13,50,240,6,0,14,26,243,2,8,13, - 73,1,243,3,0,14,26,244,2,8,13,73,1,114,22,0, - 0,0,114,60,0,0,0,41,4,114,52,0,0,0,218,3, - 114,101,102,218,9,95,75,101,121,101,100,82,101,102,218,5, - 99,108,101,97,114,41,3,114,44,0,0,0,114,60,0,0, - 0,114,56,0,0,0,115,3,0,0,0,32,32,64,114,7, - 0,0,0,114,47,0,0,0,122,29,95,87,101,97,107,86, - 97,108,117,101,68,105,99,116,105,111,110,97,114,121,46,95, - 95,105,110,105,116,95,95,64,0,0,0,115,53,0,0,0, - 248,128,0,220,23,31,151,124,145,124,160,68,211,23,41,136, - 12,246,10,21,9,73,1,148,120,151,124,145,124,244,0,21, - 9,73,1,240,46,0,26,34,136,4,140,14,216,8,12,143, - 10,137,10,141,12,114,22,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,243, - 62,0,0,0,151,0,103,0,124,0,95,0,0,0,0,0, - 0,0,0,0,116,3,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,124,0,95,2,0,0,0,0,0,0, - 0,0,105,0,124,0,95,3,0,0,0,0,0,0,0,0, - 121,0,114,2,0,0,0,41,4,114,50,0,0,0,218,3, - 115,101,116,114,49,0,0,0,114,54,0,0,0,169,1,114, - 44,0,0,0,115,1,0,0,0,32,114,7,0,0,0,114, - 63,0,0,0,122,26,95,87,101,97,107,86,97,108,117,101, - 68,105,99,116,105,111,110,97,114,121,46,99,108,101,97,114, - 96,0,0,0,115,26,0,0,0,128,0,216,33,35,136,4, - 212,8,30,220,26,29,155,37,136,4,140,15,216,20,22,136, - 4,141,9,114,22,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,164,0, - 0,0,151,0,124,0,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,1, - 124,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,125,2,9,0,9,0,2,0,124,1, - 171,0,0,0,0,0,0,0,125,3,116,8,0,0,0,0, - 0,0,0,0,106,11,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,2,124,3,171,2,0,0, - 0,0,0,0,1,0,140,31,35,0,116,6,0,0,0,0, - 0,0,0,0,36,0,114,3,1,0,89,0,121,0,119,0, - 120,3,89,0,119,1,114,2,0,0,0,41,6,114,50,0, - 0,0,218,3,112,111,112,114,54,0,0,0,218,10,73,110, - 100,101,120,69,114,114,111,114,114,52,0,0,0,114,53,0, - 0,0,41,4,114,44,0,0,0,114,68,0,0,0,218,1, - 100,114,38,0,0,0,115,4,0,0,0,32,32,32,32,114, - 7,0,0,0,218,16,95,99,111,109,109,105,116,95,114,101, - 109,111,118,97,108,115,122,37,95,87,101,97,107,86,97,108, - 117,101,68,105,99,116,105,111,110,97,114,121,46,95,99,111, - 109,109,105,116,95,114,101,109,111,118,97,108,115,101,0,0, - 0,115,86,0,0,0,128,0,216,14,18,215,14,36,209,14, - 36,215,14,40,209,14,40,136,3,216,12,16,143,73,137,73, - 136,1,216,14,18,240,2,3,13,23,217,22,25,147,101,144, - 3,244,6,0,13,21,215,12,41,209,12,41,168,33,168,83, - 212,12,49,240,11,0,15,19,248,244,6,0,20,30,242,0, - 1,13,23,217,16,22,240,3,1,13,23,250,115,17,0,0, - 0,165,7,65,3,0,193,3,9,65,15,3,193,14,1,65, - 15,3,78,99,3,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,150,0,0,0,151,0,124, - 0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,114,16,124,0,106,3,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,1,0,9,0,124,0,106,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,25,0,0,0,125,3,2,0,124,3,171,0,0,0,0, - 0,0,0,120,1,125,4,128,2,124,2,83,0,124,4,83, - 0,35,0,116,6,0,0,0,0,0,0,0,0,36,0,114, - 5,1,0,124,2,99,2,89,0,83,0,119,0,120,3,89, - 0,119,1,114,2,0,0,0,41,4,114,50,0,0,0,114, - 71,0,0,0,114,54,0,0,0,218,8,75,101,121,69,114, - 114,111,114,41,5,114,44,0,0,0,114,38,0,0,0,218, - 7,100,101,102,97,117,108,116,114,55,0,0,0,218,1,111, - 115,5,0,0,0,32,32,32,32,32,114,7,0,0,0,218, - 3,103,101,116,122,24,95,87,101,97,107,86,97,108,117,101, - 68,105,99,116,105,111,110,97,114,121,46,103,101,116,111,0, - 0,0,115,87,0,0,0,128,0,216,11,15,215,11,33,210, - 11,33,216,12,16,215,12,33,209,12,33,212,12,35,240,2, - 8,9,25,216,17,21,151,25,145,25,152,51,145,30,136,66, - 241,8,0,22,24,147,84,144,9,144,1,208,15,34,216,23, - 30,144,14,224,23,24,144,8,248,244,13,0,16,24,242,0, - 1,9,27,216,19,26,138,78,240,3,1,9,27,250,115,15, - 0,0,0,158,15,58,0,186,11,65,8,3,193,7,1,65, - 8,3,99,3,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,208,0,0,0,151,0,9,0, - 2,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,25,0,0,0,171,0, - 0,0,0,0,0,0,125,3,124,3,128,61,124,0,106,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,114,16,124,0,106,7,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,1,0,124,0,106,9,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,2,124,1,171,2, - 0,0,0,0,0,0,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,1,60,0, - 0,0,124,2,83,0,124,3,83,0,35,0,116,2,0,0, - 0,0,0,0,0,0,36,0,114,5,1,0,100,0,125,3, - 89,0,140,78,119,0,120,3,89,0,119,1,114,2,0,0, - 0,41,5,114,54,0,0,0,114,73,0,0,0,114,50,0, - 0,0,114,71,0,0,0,114,62,0,0,0,41,4,114,44, - 0,0,0,114,38,0,0,0,114,74,0,0,0,114,75,0, - 0,0,115,4,0,0,0,32,32,32,32,114,7,0,0,0, - 218,10,115,101,116,100,101,102,97,117,108,116,122,31,95,87, - 101,97,107,86,97,108,117,101,68,105,99,116,105,111,110,97, - 114,121,46,115,101,116,100,101,102,97,117,108,116,124,0,0, - 0,115,109,0,0,0,128,0,240,2,3,9,21,216,16,30, - 144,4,151,9,145,9,152,35,145,14,211,16,32,136,65,240, - 6,0,12,13,136,57,216,15,19,215,15,37,210,15,37,216, - 16,20,215,16,37,209,16,37,212,16,39,216,29,33,159,94, - 153,94,168,71,176,83,211,29,57,136,68,143,73,137,73,144, - 99,137,78,216,19,26,136,78,224,19,20,136,72,248,244,17, - 0,16,24,242,0,1,9,21,216,16,20,138,65,240,3,1, - 9,21,250,115,17,0,0,0,130,20,65,23,0,193,23,11, - 65,37,3,193,36,1,65,37,3,114,2,0,0,0,41,8, - 114,11,0,0,0,114,10,0,0,0,114,3,0,0,0,114, - 47,0,0,0,114,63,0,0,0,114,71,0,0,0,114,76, - 0,0,0,114,78,0,0,0,114,31,0,0,0,114,22,0, - 0,0,114,7,0,0,0,114,34,0,0,0,114,34,0,0, - 0,62,0,0,0,115,28,0,0,0,132,0,242,4,30,5, - 21,242,64,1,3,5,23,242,10,8,5,50,243,20,11,5, - 25,244,26,11,5,21,114,22,0,0,0,114,34,0,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,0,0,0,0,243,34,0,0,0,151,0,101,0,90,1, - 100,0,90,2,100,1,90,3,100,2,132,0,90,4,100,3, - 132,0,90,5,100,4,132,0,90,6,121,5,41,6,218,18, - 95,66,108,111,99,107,105,110,103,79,110,77,97,110,97,103, - 101,114,122,59,65,32,99,111,110,116,101,120,116,32,109,97, - 110,97,103,101,114,32,114,101,115,112,111,110,115,105,98,108, - 101,32,116,111,32,117,112,100,97,116,105,110,103,32,96,96, - 95,98,108,111,99,107,105,110,103,95,111,110,96,96,46,99, - 3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 3,0,0,0,243,32,0,0,0,151,0,124,1,124,0,95, - 0,0,0,0,0,0,0,0,0,124,2,124,0,95,1,0, - 0,0,0,0,0,0,0,121,0,114,2,0,0,0,41,2, - 218,9,116,104,114,101,97,100,95,105,100,218,4,108,111,99, - 107,41,3,114,44,0,0,0,114,82,0,0,0,114,83,0, - 0,0,115,3,0,0,0,32,32,32,114,7,0,0,0,114, - 47,0,0,0,122,27,95,66,108,111,99,107,105,110,103,79, - 110,77,97,110,97,103,101,114,46,95,95,105,110,105,116,95, - 95,158,0,0,0,115,16,0,0,0,128,0,216,25,34,136, - 4,140,14,216,20,24,136,4,141,9,114,22,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 3,0,0,0,243,168,0,0,0,151,0,116,0,0,0,0, - 0,0,0,0,0,106,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,106,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116, - 7,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,171,2,0,0,0,0,0,0,124,0,95,4,0,0,0, - 0,0,0,0,0,124,0,106,8,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,106,11,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 0,106,12,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,1,0,121, - 1,41,2,122,67,77,97,114,107,32,116,104,101,32,114,117, - 110,110,105,110,103,32,116,104,114,101,97,100,32,97,115,32, - 119,97,105,116,105,110,103,32,102,111,114,32,115,101,108,102, - 46,108,111,99,107,46,32,118,105,97,32,95,98,108,111,99, - 107,105,110,103,95,111,110,46,78,41,7,218,12,95,98,108, - 111,99,107,105,110,103,95,111,110,114,78,0,0,0,114,82, - 0,0,0,114,29,0,0,0,218,10,98,108,111,99,107,101, - 100,95,111,110,114,51,0,0,0,114,83,0,0,0,114,66, - 0,0,0,115,1,0,0,0,32,114,7,0,0,0,218,9, - 95,95,101,110,116,101,114,95,95,122,28,95,66,108,111,99, - 107,105,110,103,79,110,77,97,110,97,103,101,114,46,95,95, - 101,110,116,101,114,95,95,162,0,0,0,115,52,0,0,0, - 128,0,244,16,0,27,39,215,26,49,209,26,49,176,36,183, - 46,177,46,196,37,195,39,211,26,74,136,4,140,15,216,8, - 12,143,15,137,15,215,8,30,209,8,30,152,116,159,121,153, - 121,213,8,41,114,22,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,15,0,0,0,243,78, - 0,0,0,151,0,124,0,106,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,106,3,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 0,106,4,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,1,0,121, - 1,41,2,122,54,82,101,109,111,118,101,32,115,101,108,102, - 46,108,111,99,107,32,102,114,111,109,32,116,104,105,115,32, - 116,104,114,101,97,100,39,115,32,95,98,108,111,99,107,105, - 110,103,95,111,110,32,108,105,115,116,46,78,41,3,114,86, - 0,0,0,114,42,0,0,0,114,83,0,0,0,169,3,114, - 44,0,0,0,218,4,97,114,103,115,218,6,107,119,97,114, - 103,115,115,3,0,0,0,32,32,32,114,7,0,0,0,218, - 8,95,95,101,120,105,116,95,95,122,27,95,66,108,111,99, - 107,105,110,103,79,110,77,97,110,97,103,101,114,46,95,95, - 101,120,105,116,95,95,173,0,0,0,115,24,0,0,0,128, - 0,224,8,12,143,15,137,15,215,8,30,209,8,30,152,116, - 159,121,153,121,213,8,41,114,22,0,0,0,78,41,7,114, - 11,0,0,0,114,10,0,0,0,114,3,0,0,0,114,12, - 0,0,0,114,47,0,0,0,114,87,0,0,0,114,92,0, - 0,0,114,31,0,0,0,114,22,0,0,0,114,7,0,0, - 0,114,80,0,0,0,114,80,0,0,0,156,0,0,0,115, - 20,0,0,0,132,0,217,4,69,242,2,2,5,25,242,8, - 9,5,42,243,22,2,5,42,114,22,0,0,0,114,80,0, - 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,1, - 0,0,0,0,0,0,0,243,12,0,0,0,151,0,101,0, - 90,1,100,0,90,2,121,1,41,2,218,14,95,68,101,97, - 100,108,111,99,107,69,114,114,111,114,78,114,30,0,0,0, - 114,31,0,0,0,114,22,0,0,0,114,7,0,0,0,114, - 94,0,0,0,114,94,0,0,0,178,0,0,0,114,32,0, - 0,0,114,22,0,0,0,114,94,0,0,0,99,1,0,0, - 0,0,0,0,0,3,0,0,0,7,0,0,0,3,0,0, - 0,243,208,0,0,0,151,0,124,0,124,2,118,0,114,1, - 121,1,124,2,68,0,93,87,0,0,125,4,124,3,106,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,4,171,1,0,0,0,0,0,0,120,1,125,5, - 115,1,140,23,124,4,124,1,118,0,114,2,1,0,121,2, - 124,1,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,4,171,1,0,0,0,0,0,0, - 1,0,124,5,68,0,143,6,99,2,103,0,99,2,93,14, - 0,0,125,6,124,6,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,145,2,140,16,4,0, - 125,7,125,6,116,7,0,0,0,0,0,0,0,0,124,0, - 124,1,124,7,124,3,172,3,171,4,0,0,0,0,0,0, - 115,1,140,87,1,0,121,1,4,0,121,2,99,2,1,0, - 99,2,125,6,119,0,41,4,97,242,2,0,0,67,104,101, - 99,107,32,105,102,32,39,116,97,114,103,101,116,95,105,100, - 39,32,105,115,32,104,111,108,100,105,110,103,32,116,104,101, - 32,115,97,109,101,32,108,111,99,107,32,97,115,32,97,110, - 111,116,104,101,114,32,116,104,114,101,97,100,40,115,41,46, - 10,10,32,32,32,32,84,104,101,32,115,101,97,114,99,104, - 32,119,105,116,104,105,110,32,39,98,108,111,99,107,105,110, - 103,95,111,110,39,32,115,116,97,114,116,115,32,119,105,116, - 104,32,116,104,101,32,116,104,114,101,97,100,115,32,108,105, - 115,116,101,100,32,105,110,10,32,32,32,32,39,99,97,110, - 100,105,100,97,116,101,95,105,100,115,39,46,32,32,39,115, - 101,101,110,95,105,100,115,39,32,99,111,110,116,97,105,110, - 115,32,97,110,121,32,116,104,114,101,97,100,115,32,116,104, - 97,116,32,97,114,101,32,99,111,110,115,105,100,101,114,101, - 100,10,32,32,32,32,97,108,114,101,97,100,121,32,116,114, - 97,118,101,114,115,101,100,32,105,110,32,116,104,101,32,115, - 101,97,114,99,104,46,10,10,32,32,32,32,75,101,121,119, - 111,114,100,32,97,114,103,117,109,101,110,116,115,58,10,32, - 32,32,32,116,97,114,103,101,116,95,105,100,32,32,32,32, - 32,45,45,32,84,104,101,32,116,104,114,101,97,100,32,105, - 100,32,116,111,32,116,114,121,32,116,111,32,114,101,97,99, - 104,46,10,32,32,32,32,115,101,101,110,95,105,100,115,32, - 32,32,32,32,32,45,45,32,65,32,115,101,116,32,111,102, - 32,116,104,114,101,97,100,115,32,116,104,97,116,32,104,97, - 118,101,32,97,108,114,101,97,100,121,32,98,101,101,110,32, - 118,105,115,105,116,101,100,46,10,32,32,32,32,99,97,110, - 100,105,100,97,116,101,95,105,100,115,32,45,45,32,84,104, - 101,32,116,104,114,101,97,100,32,105,100,115,32,102,114,111, - 109,32,119,104,105,99,104,32,116,111,32,98,101,103,105,110, - 46,10,32,32,32,32,98,108,111,99,107,105,110,103,95,111, - 110,32,32,32,45,45,32,65,32,100,105,99,116,32,114,101, - 112,114,101,115,101,110,116,105,110,103,32,116,104,101,32,116, - 104,114,101,97,100,47,98,108,111,99,107,105,110,103,45,111, - 110,32,103,114,97,112,104,46,32,32,84,104,105,115,32,109, - 97,121,10,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,98,101,32,116,104,101,32,115, - 97,109,101,32,111,98,106,101,99,116,32,97,115,32,116,104, - 101,32,103,108,111,98,97,108,32,39,95,98,108,111,99,107, - 105,110,103,95,111,110,39,32,98,117,116,32,105,116,32,105, - 115,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,97,32,112,97,114,97,109,101,116, - 101,114,32,116,111,32,114,101,100,117,99,101,32,116,104,101, - 32,105,109,112,97,99,116,32,116,104,97,116,32,103,108,111, - 98,97,108,32,109,117,116,97,98,108,101,10,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,115,116,97,116,101,32,104,97,115,32,111,110,32,116,104, - 101,32,114,101,115,117,108,116,32,111,102,32,116,104,105,115, - 32,102,117,110,99,116,105,111,110,46,10,32,32,32,32,84, - 70,41,3,218,8,115,101,101,110,95,105,100,115,218,13,99, - 97,110,100,105,100,97,116,101,95,105,100,115,218,11,98,108, - 111,99,107,105,110,103,95,111,110,41,4,114,76,0,0,0, - 218,3,97,100,100,218,5,111,119,110,101,114,218,15,95,104, - 97,115,95,100,101,97,100,108,111,99,107,101,100,41,8,218, - 9,116,97,114,103,101,116,95,105,100,114,96,0,0,0,114, - 97,0,0,0,114,98,0,0,0,218,3,116,105,100,218,21, - 99,97,110,100,105,100,97,116,101,95,98,108,111,99,107,105, - 110,103,95,111,110,114,83,0,0,0,218,5,101,100,103,101, - 115,115,8,0,0,0,32,32,32,32,32,32,32,32,114,7, - 0,0,0,114,101,0,0,0,114,101,0,0,0,183,0,0, - 0,115,135,0,0,0,128,0,240,32,0,8,17,144,77,209, - 7,33,240,6,0,16,20,243,6,0,16,29,136,3,216,41, - 52,175,31,169,31,184,19,211,41,61,208,16,61,208,16,37, - 208,16,61,224,12,20,216,13,16,144,72,137,95,241,10,0, - 20,25,216,8,16,143,12,137,12,144,83,212,8,25,241,6, - 0,41,62,211,16,62,209,40,61,160,4,144,20,151,26,147, - 26,208,40,61,136,5,208,16,62,220,11,26,152,57,168,120, - 192,117,216,28,39,246,3,1,12,41,225,19,23,240,33,0, - 16,29,240,36,0,12,17,249,242,11,0,17,63,115,5,0, - 0,0,186,19,65,35,6,99,0,0,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,0,0,0,0,243,46,0,0, - 0,151,0,101,0,90,1,100,0,90,2,100,1,90,3,100, - 2,132,0,90,4,100,3,132,0,90,5,100,4,132,0,90, - 6,100,5,132,0,90,7,100,6,132,0,90,8,121,7,41, - 8,218,11,95,77,111,100,117,108,101,76,111,99,107,122,169, - 65,32,114,101,99,117,114,115,105,118,101,32,108,111,99,107, - 32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32, - 119,104,105,99,104,32,105,115,32,97,98,108,101,32,116,111, - 32,100,101,116,101,99,116,32,100,101,97,100,108,111,99,107, - 115,10,32,32,32,32,40,101,46,103,46,32,116,104,114,101, - 97,100,32,49,32,116,114,121,105,110,103,32,116,111,32,116, - 97,107,101,32,108,111,99,107,115,32,65,32,116,104,101,110, - 32,66,44,32,97,110,100,32,116,104,114,101,97,100,32,50, - 32,116,114,121,105,110,103,32,116,111,10,32,32,32,32,116, - 97,107,101,32,108,111,99,107,115,32,66,32,116,104,101,110, - 32,65,41,46,10,32,32,32,32,99,2,0,0,0,0,0, - 0,0,0,0,0,0,2,0,0,0,3,0,0,0,243,160, - 0,0,0,151,0,116,0,0,0,0,0,0,0,0,0,106, + 103,101,116,111,0,0,0,115,87,0,0,0,128,0,216,11, + 15,215,11,33,215,11,33,216,12,16,215,12,33,209,12,33, + 212,12,35,240,2,8,9,25,216,17,21,151,25,145,25,152, + 51,145,30,136,66,241,8,0,22,24,147,84,144,9,144,1, + 209,15,34,216,23,30,144,14,224,23,24,144,8,248,244,13, + 0,16,24,243,0,1,9,27,216,19,26,138,78,240,3,1, + 9,27,250,115,17,0,0,0,163,15,65,0,0,193,0,12, + 65,15,3,193,14,1,65,15,3,99,3,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,220, + 0,0,0,149,0,30,0,85,0,82,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,5, + 0,0,0,34,0,53,0,0,0,0,0,0,0,110,3,85, + 3,99,65,0,0,85,0,82,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,97,16,0,0,85,0,82,7,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,32,0,85,0,82,9,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,88,33,53, + 2,0,0,0,0,0,0,85,0,82,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,39, + 0,0,0,85,2,36,0,85,3,36,0,33,0,91,2,0, + 0,0,0,0,0,0,0,7,0,97,5,0,0,32,0,83, + 0,110,3,31,0,78,84,102,0,61,3,31,0,102,1,114, + 2,0,0,0,41,5,114,61,0,0,0,114,83,0,0,0, + 114,57,0,0,0,114,80,0,0,0,114,69,0,0,0,41, + 4,114,49,0,0,0,114,43,0,0,0,114,84,0,0,0, + 114,85,0,0,0,115,4,0,0,0,32,32,32,32,114,7, + 0,0,0,218,10,115,101,116,100,101,102,97,117,108,116,218, + 31,95,87,101,97,107,86,97,108,117,101,68,105,99,116,105, + 111,110,97,114,121,46,115,101,116,100,101,102,97,117,108,116, + 124,0,0,0,115,105,0,0,0,128,0,240,2,3,9,21, + 216,16,20,151,9,145,9,152,35,146,14,211,16,32,136,65, + 240,6,0,12,13,137,57,216,15,19,215,15,37,215,15,37, + 216,16,20,215,16,37,209,16,37,212,16,39,216,29,33,159, + 94,153,94,168,71,211,29,57,136,68,143,73,137,73,144,99, + 137,78,216,19,26,136,78,224,19,20,136,72,248,244,17,0, + 16,24,243,0,1,9,21,216,16,20,138,65,240,3,1,9, + 21,250,115,17,0,0,0,130,20,65,28,0,193,28,12,65, + 43,3,193,42,1,65,43,3,41,4,114,69,0,0,0,114, + 56,0,0,0,114,57,0,0,0,114,61,0,0,0,114,2, + 0,0,0,41,10,114,11,0,0,0,114,10,0,0,0,114, + 3,0,0,0,114,33,0,0,0,114,53,0,0,0,114,70, + 0,0,0,114,80,0,0,0,114,86,0,0,0,114,89,0, + 0,0,114,35,0,0,0,114,32,0,0,0,114,22,0,0, + 0,114,7,0,0,0,114,37,0,0,0,114,37,0,0,0, + 62,0,0,0,115,28,0,0,0,134,0,242,4,30,5,21, + 242,64,1,3,5,23,242,10,8,5,50,244,20,11,5,25, + 247,26,11,5,21,114,22,0,0,0,114,37,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 0,0,0,0,243,42,0,0,0,149,0,92,0,114,1,83, + 0,114,2,83,1,114,3,83,2,114,4,83,3,26,0,114, + 5,83,4,26,0,114,6,83,5,26,0,114,7,83,6,114, + 8,103,7,41,8,218,18,95,66,108,111,99,107,105,110,103, + 79,110,77,97,110,97,103,101,114,233,156,0,0,0,122,59, + 65,32,99,111,110,116,101,120,116,32,109,97,110,97,103,101, + 114,32,114,101,115,112,111,110,115,105,98,108,101,32,116,111, + 32,117,112,100,97,116,105,110,103,32,96,96,95,98,108,111, + 99,107,105,110,103,95,111,110,96,96,46,99,3,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, + 243,28,0,0,0,149,0,88,16,108,0,0,0,0,0,0, + 0,0,0,88,32,108,1,0,0,0,0,0,0,0,0,103, + 0,114,2,0,0,0,41,2,218,9,116,104,114,101,97,100, + 95,105,100,218,4,108,111,99,107,41,3,114,49,0,0,0, + 114,95,0,0,0,114,96,0,0,0,115,3,0,0,0,32, + 32,32,114,7,0,0,0,114,53,0,0,0,218,27,95,66, + 108,111,99,107,105,110,103,79,110,77,97,110,97,103,101,114, + 46,95,95,105,110,105,116,95,95,158,0,0,0,115,12,0, + 0,0,128,0,216,25,34,140,14,216,20,24,141,9,114,22, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,3,0,0,0,243,168,0,0,0,149,0,91, + 0,0,0,0,0,0,0,0,0,82,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,82, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,91,7,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,53,2,0,0,0,0,0,0,85,0,108, + 4,0,0,0,0,0,0,0,0,85,0,82,8,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82, + 11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,0,82,12,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,53,1,0,0,0,0,0, + 0,32,0,103,1,41,2,122,67,77,97,114,107,32,116,104, + 101,32,114,117,110,110,105,110,103,32,116,104,114,101,97,100, + 32,97,115,32,119,97,105,116,105,110,103,32,102,111,114,32, + 115,101,108,102,46,108,111,99,107,46,32,118,105,97,32,95, + 98,108,111,99,107,105,110,103,95,111,110,46,78,41,7,218, + 12,95,98,108,111,99,107,105,110,103,95,111,110,114,89,0, + 0,0,114,95,0,0,0,114,29,0,0,0,218,10,98,108, + 111,99,107,101,100,95,111,110,114,58,0,0,0,114,96,0, + 0,0,114,74,0,0,0,115,1,0,0,0,32,114,7,0, + 0,0,218,9,95,95,101,110,116,101,114,95,95,218,28,95, + 66,108,111,99,107,105,110,103,79,110,77,97,110,97,103,101, + 114,46,95,95,101,110,116,101,114,95,95,162,0,0,0,115, + 52,0,0,0,128,0,244,16,0,27,39,215,26,49,209,26, + 49,176,36,183,46,177,46,196,37,195,39,211,26,74,136,4, + 140,15,216,8,12,143,15,137,15,215,8,30,209,8,30,152, + 116,159,121,153,121,213,8,41,114,22,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,15,0, + 0,0,243,78,0,0,0,149,0,85,0,82,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82, 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,124,0,95,2,0, - 0,0,0,0,0,0,0,116,0,0,0,0,0,0,0,0, - 0,106,7,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,124,0,95, - 4,0,0,0,0,0,0,0,0,124,1,124,0,95,5,0, - 0,0,0,0,0,0,0,100,0,124,0,95,6,0,0,0, - 0,0,0,0,0,103,0,124,0,95,7,0,0,0,0,0, - 0,0,0,103,0,124,0,95,8,0,0,0,0,0,0,0, - 0,121,0,114,2,0,0,0,41,9,218,7,95,116,104,114, - 101,97,100,218,5,82,76,111,99,107,114,83,0,0,0,218, - 13,97,108,108,111,99,97,116,101,95,108,111,99,107,218,6, - 119,97,107,101,117,112,114,26,0,0,0,114,100,0,0,0, - 218,5,99,111,117,110,116,218,7,119,97,105,116,101,114,115, - 169,2,114,44,0,0,0,114,26,0,0,0,115,2,0,0, - 0,32,32,114,7,0,0,0,114,47,0,0,0,122,20,95, - 77,111,100,117,108,101,76,111,99,107,46,95,95,105,110,105, - 116,95,95,232,0,0,0,115,69,0,0,0,128,0,244,42, - 0,21,28,151,77,145,77,147,79,136,4,140,9,220,22,29, - 215,22,43,209,22,43,211,22,45,136,4,140,11,240,6,0, - 21,25,136,4,140,9,240,8,0,22,26,136,4,140,10,240, - 22,0,22,24,136,4,140,10,240,28,0,24,26,136,4,141, - 12,114,22,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,6,0,0,0,3,0,0,0,243,114,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,116,2,0,0, - 0,0,0,0,0,0,106,5,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,116,7,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,124,0,106,8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,103,1,116,10,0,0, - 0,0,0,0,0,0,172,1,171,4,0,0,0,0,0,0, - 83,0,41,2,78,41,4,114,102,0,0,0,114,96,0,0, - 0,114,97,0,0,0,114,98,0,0,0,41,6,114,101,0, - 0,0,114,109,0,0,0,218,9,103,101,116,95,105,100,101, - 110,116,114,65,0,0,0,114,100,0,0,0,114,85,0,0, - 0,114,66,0,0,0,115,1,0,0,0,32,114,7,0,0, - 0,218,12,104,97,115,95,100,101,97,100,108,111,99,107,122, - 24,95,77,111,100,117,108,101,76,111,99,107,46,104,97,115, - 95,100,101,97,100,108,111,99,107,32,1,0,0,115,48,0, - 0,0,128,0,244,10,0,16,31,228,22,29,215,22,39,209, - 22,39,211,22,41,220,21,24,147,85,240,6,0,28,32,159, - 58,153,58,152,44,228,24,36,244,17,9,16,10,240,0,9, - 9,10,114,22,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,7,0,0,0,3,0,0,0,243,86,2,0, - 0,151,0,116,0,0,0,0,0,0,0,0,0,106,3,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,125,1,116,5,0,0,0, - 0,0,0,0,0,124,1,124,0,171,2,0,0,0,0,0, - 0,53,0,1,0,9,0,124,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,1, - 0,124,0,106,8,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,103,0,107,40,0,0,115,15,124, - 0,106,10,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,1,107,40,0,0,114,52,124,1,124, - 0,95,5,0,0,0,0,0,0,0,0,124,0,106,8,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,106,13,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,1,171,1,0,0,0,0,0,0,1, - 0,9,0,100,2,100,2,100,2,171,2,0,0,0,0,0, - 0,1,0,100,2,100,2,100,2,171,2,0,0,0,0,0, - 0,1,0,121,1,124,0,106,15,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0, - 0,0,0,114,14,116,17,0,0,0,0,0,0,0,0,100, - 3,124,0,155,2,157,2,171,1,0,0,0,0,0,0,130, - 1,124,0,106,18,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,21,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,4,171,1,0, - 0,0,0,0,0,114,27,124,0,106,22,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,13,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,2,171,1,0,0,0,0,0,0,1,0,100,2,100, - 2,100,2,171,2,0,0,0,0,0,0,1,0,124,0,106, - 18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,21,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,1, - 0,124,0,106,18,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,25,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0, - 0,0,0,1,0,140,240,35,0,49,0,115,1,119,2,1, - 0,89,0,1,0,1,0,140,62,120,3,89,0,119,1,35, - 0,49,0,115,1,119,2,1,0,89,0,1,0,1,0,121, - 2,120,3,89,0,119,1,41,5,122,185,10,32,32,32,32, - 32,32,32,32,65,99,113,117,105,114,101,32,116,104,101,32, - 109,111,100,117,108,101,32,108,111,99,107,46,32,32,73,102, - 32,97,32,112,111,116,101,110,116,105,97,108,32,100,101,97, - 100,108,111,99,107,32,105,115,32,100,101,116,101,99,116,101, - 100,44,10,32,32,32,32,32,32,32,32,97,32,95,68,101, - 97,100,108,111,99,107,69,114,114,111,114,32,105,115,32,114, - 97,105,115,101,100,46,10,32,32,32,32,32,32,32,32,79, - 116,104,101,114,119,105,115,101,44,32,116,104,101,32,108,111, - 99,107,32,105,115,32,97,108,119,97,121,115,32,97,99,113, - 117,105,114,101,100,32,97,110,100,32,84,114,117,101,32,105, - 115,32,114,101,116,117,114,110,101,100,46,10,32,32,32,32, - 32,32,32,32,84,78,122,21,100,101,97,100,108,111,99,107, - 32,100,101,116,101,99,116,101,100,32,98,121,32,70,41,13, - 114,109,0,0,0,114,117,0,0,0,114,80,0,0,0,114, - 83,0,0,0,114,113,0,0,0,114,100,0,0,0,114,51, - 0,0,0,114,118,0,0,0,114,94,0,0,0,114,112,0, - 0,0,218,7,97,99,113,117,105,114,101,114,114,0,0,0, - 218,7,114,101,108,101,97,115,101,169,2,114,44,0,0,0, - 114,103,0,0,0,115,2,0,0,0,32,32,114,7,0,0, - 0,114,120,0,0,0,122,19,95,77,111,100,117,108,101,76, - 111,99,107,46,97,99,113,117,105,114,101,48,1,0,0,115, - 244,0,0,0,128,0,244,12,0,15,22,215,14,31,209,14, - 31,211,14,33,136,3,220,13,31,160,3,160,84,213,13,42, - 216,18,22,240,8,0,22,26,151,89,147,89,216,23,27,151, - 122,145,122,160,82,210,23,39,168,52,175,58,169,58,184,19, - 210,43,60,240,14,0,38,41,152,4,156,10,216,24,28,159, - 10,153,10,215,24,41,209,24,41,168,36,212,24,47,216,31, - 35,247,21,0,22,31,247,11,0,14,43,208,13,42,240,68, - 1,0,24,28,215,23,40,209,23,40,212,23,42,220,30,44, - 208,47,68,192,84,192,72,208,45,77,211,30,78,208,24,78, - 240,26,0,24,28,151,123,145,123,215,23,42,209,23,42,168, - 53,212,23,49,216,24,28,159,12,153,12,215,24,43,209,24, - 43,168,68,212,24,49,247,89,1,0,22,31,240,98,1,0, - 17,21,151,11,145,11,215,16,35,209,16,35,212,16,37,240, - 10,0,17,21,151,11,145,11,215,16,35,209,16,35,212,16, - 37,240,117,1,0,19,23,247,8,0,22,31,144,89,250,247, - 11,0,14,43,208,13,42,250,115,48,0,0,0,161,14,68, - 31,3,175,65,2,68,19,5,193,49,8,68,31,3,194,2, - 65,20,68,19,5,195,22,61,68,31,3,196,19,5,68,28, - 9,196,24,7,68,31,3,196,31,5,68,40,7,99,1,0, - 0,0,0,0,0,0,0,0,0,0,6,0,0,0,3,0, - 0,0,243,218,1,0,0,151,0,116,0,0,0,0,0,0, - 0,0,0,106,3,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,125, - 1,124,0,106,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,53,0,1,0,124,0,106,6,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,107,55,0,0,114,11,116,9,0,0,0,0,0, - 0,0,0,100,1,171,1,0,0,0,0,0,0,130,1,116, - 11,0,0,0,0,0,0,0,0,124,0,106,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,100,2,107,68,0,0,115,2,74, - 0,130,1,124,0,106,12,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,15,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,1,0,116,11,0,0,0,0,0,0,0, - 0,124,0,106,12,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,115, - 83,100,0,124,0,95,3,0,0,0,0,0,0,0,0,116, - 11,0,0,0,0,0,0,0,0,124,0,106,16,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,100,2,107,68,0,0,114,52,124, - 0,106,16,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,106,15,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,1,0,124,0,106,18,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,21,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,1,0,100,0,100,0,100,0,171,2,0, - 0,0,0,0,0,1,0,121,0,35,0,49,0,115,1,119, - 2,1,0,89,0,1,0,1,0,121,0,120,3,89,0,119, - 1,41,3,78,250,31,99,97,110,110,111,116,32,114,101,108, - 101,97,115,101,32,117,110,45,97,99,113,117,105,114,101,100, - 32,108,111,99,107,233,0,0,0,0,41,11,114,109,0,0, - 0,114,117,0,0,0,114,83,0,0,0,114,100,0,0,0, - 218,12,82,117,110,116,105,109,101,69,114,114,111,114,218,3, - 108,101,110,114,113,0,0,0,114,68,0,0,0,114,114,0, - 0,0,114,112,0,0,0,114,121,0,0,0,114,122,0,0, - 0,115,2,0,0,0,32,32,114,7,0,0,0,114,121,0, - 0,0,122,19,95,77,111,100,117,108,101,76,111,99,107,46, - 114,101,108,101,97,115,101,116,1,0,0,115,160,0,0,0, - 128,0,220,14,21,215,14,31,209,14,31,211,14,33,136,3, - 216,13,17,143,89,139,89,216,15,19,143,122,137,122,152,83, - 210,15,32,220,22,34,208,35,68,211,22,69,208,16,69,220, - 19,22,144,116,151,122,145,122,147,63,160,81,210,19,38,208, - 12,38,208,19,38,216,12,16,143,74,137,74,143,78,137,78, - 212,12,28,220,19,22,144,116,151,122,145,122,148,63,216,29, - 33,144,4,148,10,220,19,22,144,116,151,124,145,124,211,19, - 36,160,113,210,19,40,216,20,24,151,76,145,76,215,20,36, - 209,20,36,212,20,38,216,20,24,151,75,145,75,215,20,39, - 209,20,39,212,20,41,247,19,0,14,23,143,89,137,89,250, - 115,12,0,0,0,161,66,55,67,33,3,195,33,5,67,42, - 7,99,1,0,0,0,0,0,0,0,0,0,0,0,6,0, - 0,0,3,0,0,0,243,56,0,0,0,151,0,100,1,124, - 0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,155,2,100,2,116,3,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,155,0,157, - 4,83,0,41,3,78,122,12,95,77,111,100,117,108,101,76, - 111,99,107,40,250,5,41,32,97,116,32,169,2,114,26,0, - 0,0,218,2,105,100,114,66,0,0,0,115,1,0,0,0, - 32,114,7,0,0,0,218,8,95,95,114,101,112,114,95,95, - 122,20,95,77,111,100,117,108,101,76,111,99,107,46,95,95, - 114,101,112,114,95,95,129,1,0,0,115,29,0,0,0,128, - 0,216,17,29,152,100,159,105,153,105,152,93,168,37,180,2, - 176,52,179,8,168,122,208,15,58,208,8,58,114,22,0,0, + 0,0,0,85,0,82,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,53,1,0,0,0,0,0, + 0,32,0,103,1,41,2,122,54,82,101,109,111,118,101,32, + 115,101,108,102,46,108,111,99,107,32,102,114,111,109,32,116, + 104,105,115,32,116,104,114,101,97,100,39,115,32,95,98,108, + 111,99,107,105,110,103,95,111,110,32,108,105,115,116,46,78, + 41,3,114,100,0,0,0,114,47,0,0,0,114,96,0,0, + 0,169,3,114,49,0,0,0,218,4,97,114,103,115,218,6, + 107,119,97,114,103,115,115,3,0,0,0,32,32,32,114,7, + 0,0,0,218,8,95,95,101,120,105,116,95,95,218,27,95, + 66,108,111,99,107,105,110,103,79,110,77,97,110,97,103,101, + 114,46,95,95,101,120,105,116,95,95,173,0,0,0,115,24, + 0,0,0,128,0,224,8,12,143,15,137,15,215,8,30,209, + 8,30,152,116,159,121,153,121,213,8,41,114,22,0,0,0, + 41,3,114,100,0,0,0,114,96,0,0,0,114,95,0,0, 0,78,41,9,114,11,0,0,0,114,10,0,0,0,114,3, - 0,0,0,114,12,0,0,0,114,47,0,0,0,114,118,0, - 0,0,114,120,0,0,0,114,121,0,0,0,114,132,0,0, - 0,114,31,0,0,0,114,22,0,0,0,114,7,0,0,0, - 114,107,0,0,0,114,107,0,0,0,226,0,0,0,115,35, - 0,0,0,132,0,241,2,3,5,8,242,10,54,5,26,242, - 112,1,14,5,10,242,32,66,1,5,38,242,72,2,11,5, - 42,243,26,1,5,59,114,22,0,0,0,114,107,0,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,0,0,0,0,243,40,0,0,0,151,0,101,0,90,1, - 100,0,90,2,100,1,90,3,100,2,132,0,90,4,100,3, - 132,0,90,5,100,4,132,0,90,6,100,5,132,0,90,7, - 121,6,41,7,218,16,95,68,117,109,109,121,77,111,100,117, - 108,101,76,111,99,107,122,86,65,32,115,105,109,112,108,101, - 32,95,77,111,100,117,108,101,76,111,99,107,32,101,113,117, - 105,118,97,108,101,110,116,32,102,111,114,32,80,121,116,104, - 111,110,32,98,117,105,108,100,115,32,119,105,116,104,111,117, - 116,10,32,32,32,32,109,117,108,116,105,45,116,104,114,101, - 97,100,105,110,103,32,115,117,112,112,111,114,116,46,99,2, + 0,0,0,114,33,0,0,0,114,12,0,0,0,114,53,0, + 0,0,114,101,0,0,0,114,107,0,0,0,114,35,0,0, + 0,114,32,0,0,0,114,22,0,0,0,114,7,0,0,0, + 114,92,0,0,0,114,92,0,0,0,156,0,0,0,115,20, + 0,0,0,134,0,217,4,69,242,2,2,5,25,242,8,9, + 5,42,245,22,2,5,42,114,22,0,0,0,114,92,0,0, + 0,99,0,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,0,0,0,0,243,20,0,0,0,149,0,92,0,114, + 1,83,0,114,2,83,1,114,3,83,2,114,4,103,3,41, + 4,218,14,95,68,101,97,100,108,111,99,107,69,114,114,111, + 114,233,178,0,0,0,114,32,0,0,0,78,41,5,114,11, + 0,0,0,114,10,0,0,0,114,3,0,0,0,114,33,0, + 0,0,114,35,0,0,0,114,32,0,0,0,114,22,0,0, + 0,114,7,0,0,0,114,110,0,0,0,114,110,0,0,0, + 178,0,0,0,115,5,0,0,0,134,0,218,4,8,114,22, + 0,0,0,114,110,0,0,0,99,1,0,0,0,0,0,0, + 0,3,0,0,0,8,0,0,0,3,0,0,0,243,234,0, + 0,0,149,0,88,2,59,0,0,0,97,1,0,0,103,1, + 85,2,19,0,72,98,0,0,110,4,85,3,82,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,4,53,1,0,0,0,0,0,0,61,1,110,5,40,0, + 0,0,0,0,0,0,100,2,0,0,77,29,0,0,88,65, + 59,0,0,0,97,2,0,0,32,0,103,2,85,1,82,3, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,4,53,1,0,0,0,0,0,0,32,0,85,5, + 19,0,86,6,115,2,47,0,115,2,19,0,72,14,0,0, + 111,102,82,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,80,2,77,16,0,0,11,0,32,0, + 110,7,110,6,91,7,0,0,0,0,0,0,0,0,88,1, + 85,7,85,3,83,3,57,4,40,0,0,0,0,0,0,0, + 100,2,0,0,77,98,0,0,32,0,103,1,11,0,32,0, + 103,2,115,2,32,0,115,2,110,6,102,0,41,4,97,194, + 2,0,0,67,104,101,99,107,32,105,102,32,39,116,97,114, + 103,101,116,95,105,100,39,32,105,115,32,104,111,108,100,105, + 110,103,32,116,104,101,32,115,97,109,101,32,108,111,99,107, + 32,97,115,32,97,110,111,116,104,101,114,32,116,104,114,101, + 97,100,40,115,41,46,10,10,84,104,101,32,115,101,97,114, + 99,104,32,119,105,116,104,105,110,32,39,98,108,111,99,107, + 105,110,103,95,111,110,39,32,115,116,97,114,116,115,32,119, + 105,116,104,32,116,104,101,32,116,104,114,101,97,100,115,32, + 108,105,115,116,101,100,32,105,110,10,39,99,97,110,100,105, + 100,97,116,101,95,105,100,115,39,46,32,32,39,115,101,101, + 110,95,105,100,115,39,32,99,111,110,116,97,105,110,115,32, + 97,110,121,32,116,104,114,101,97,100,115,32,116,104,97,116, + 32,97,114,101,32,99,111,110,115,105,100,101,114,101,100,10, + 97,108,114,101,97,100,121,32,116,114,97,118,101,114,115,101, + 100,32,105,110,32,116,104,101,32,115,101,97,114,99,104,46, + 10,10,75,101,121,119,111,114,100,32,97,114,103,117,109,101, + 110,116,115,58,10,116,97,114,103,101,116,95,105,100,32,32, + 32,32,32,45,45,32,84,104,101,32,116,104,114,101,97,100, + 32,105,100,32,116,111,32,116,114,121,32,116,111,32,114,101, + 97,99,104,46,10,115,101,101,110,95,105,100,115,32,32,32, + 32,32,32,45,45,32,65,32,115,101,116,32,111,102,32,116, + 104,114,101,97,100,115,32,116,104,97,116,32,104,97,118,101, + 32,97,108,114,101,97,100,121,32,98,101,101,110,32,118,105, + 115,105,116,101,100,46,10,99,97,110,100,105,100,97,116,101, + 95,105,100,115,32,45,45,32,84,104,101,32,116,104,114,101, + 97,100,32,105,100,115,32,102,114,111,109,32,119,104,105,99, + 104,32,116,111,32,98,101,103,105,110,46,10,98,108,111,99, + 107,105,110,103,95,111,110,32,32,32,45,45,32,65,32,100, + 105,99,116,32,114,101,112,114,101,115,101,110,116,105,110,103, + 32,116,104,101,32,116,104,114,101,97,100,47,98,108,111,99, + 107,105,110,103,45,111,110,32,103,114,97,112,104,46,32,32, + 84,104,105,115,32,109,97,121,10,32,32,32,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32,98,101,32,116,104,101, + 32,115,97,109,101,32,111,98,106,101,99,116,32,97,115,32, + 116,104,101,32,103,108,111,98,97,108,32,39,95,98,108,111, + 99,107,105,110,103,95,111,110,39,32,98,117,116,32,105,116, + 32,105,115,10,32,32,32,32,32,32,32,32,32,32,32,32, + 32,32,32,32,32,97,32,112,97,114,97,109,101,116,101,114, + 32,116,111,32,114,101,100,117,99,101,32,116,104,101,32,105, + 109,112,97,99,116,32,116,104,97,116,32,103,108,111,98,97, + 108,32,109,117,116,97,98,108,101,10,32,32,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32,32,115,116,97,116,101, + 32,104,97,115,32,111,110,32,116,104,101,32,114,101,115,117, + 108,116,32,111,102,32,116,104,105,115,32,102,117,110,99,116, + 105,111,110,46,10,84,70,41,3,218,8,115,101,101,110,95, + 105,100,115,218,13,99,97,110,100,105,100,97,116,101,95,105, + 100,115,218,11,98,108,111,99,107,105,110,103,95,111,110,41, + 4,114,86,0,0,0,218,3,97,100,100,218,5,111,119,110, + 101,114,218,15,95,104,97,115,95,100,101,97,100,108,111,99, + 107,101,100,41,8,218,9,116,97,114,103,101,116,95,105,100, + 114,113,0,0,0,114,114,0,0,0,114,115,0,0,0,218, + 3,116,105,100,218,21,99,97,110,100,105,100,97,116,101,95, + 98,108,111,99,107,105,110,103,95,111,110,114,96,0,0,0, + 218,5,101,100,103,101,115,115,8,0,0,0,32,32,32,32, + 32,32,32,32,114,7,0,0,0,114,118,0,0,0,114,118, + 0,0,0,183,0,0,0,115,132,0,0,0,128,0,240,32, + 0,8,17,211,7,33,240,6,0,16,20,243,6,0,16,29, + 136,3,216,41,52,175,31,169,31,184,19,211,41,61,208,16, + 61,208,16,37,213,16,61,225,12,20,216,13,16,139,95,241, + 10,0,20,25,216,8,16,143,12,137,12,144,83,212,8,25, + 241,6,0,41,62,211,16,62,210,40,61,160,4,151,26,148, + 26,209,40,61,136,5,208,16,62,220,11,26,152,57,192,117, + 216,28,39,247,3,1,12,41,241,0,1,12,41,225,19,23, + 241,33,0,16,29,240,36,0,12,17,249,242,11,0,17,63, + 115,6,0,0,0,193,2,21,65,48,6,99,0,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, + 243,54,0,0,0,149,0,92,0,114,1,83,0,114,2,83, + 1,114,3,83,2,114,4,83,3,26,0,114,5,83,4,26, + 0,114,6,83,5,26,0,114,7,83,6,26,0,114,8,83, + 7,26,0,114,9,83,8,114,10,103,9,41,10,218,11,95, + 77,111,100,117,108,101,76,111,99,107,233,226,0,0,0,122, + 157,65,32,114,101,99,117,114,115,105,118,101,32,108,111,99, + 107,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110, + 32,119,104,105,99,104,32,105,115,32,97,98,108,101,32,116, + 111,32,100,101,116,101,99,116,32,100,101,97,100,108,111,99, + 107,115,10,40,101,46,103,46,32,116,104,114,101,97,100,32, + 49,32,116,114,121,105,110,103,32,116,111,32,116,97,107,101, + 32,108,111,99,107,115,32,65,32,116,104,101,110,32,66,44, + 32,97,110,100,32,116,104,114,101,97,100,32,50,32,116,114, + 121,105,110,103,32,116,111,10,116,97,107,101,32,108,111,99, + 107,115,32,66,32,116,104,101,110,32,65,41,46,10,99,2, 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,243,32,0,0,0,151,0,124,1,124,0,95,0, - 0,0,0,0,0,0,0,0,100,1,124,0,95,1,0,0, - 0,0,0,0,0,0,121,0,169,2,78,114,125,0,0,0, - 41,2,114,26,0,0,0,114,113,0,0,0,114,115,0,0, - 0,115,2,0,0,0,32,32,114,7,0,0,0,114,47,0, - 0,0,122,25,95,68,117,109,109,121,77,111,100,117,108,101, - 76,111,99,107,46,95,95,105,110,105,116,95,95,137,1,0, - 0,115,16,0,0,0,128,0,216,20,24,136,4,140,9,216, - 21,22,136,4,141,10,114,22,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 243,46,0,0,0,151,0,124,0,120,1,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, - 1,122,13,0,0,99,2,95,0,0,0,0,0,0,0,0, - 0,121,2,41,3,78,233,1,0,0,0,84,41,1,114,113, - 0,0,0,114,66,0,0,0,115,1,0,0,0,32,114,7, - 0,0,0,114,120,0,0,0,122,24,95,68,117,109,109,121, + 0,0,0,243,158,0,0,0,149,0,91,0,0,0,0,0, + 0,0,0,0,82,3,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 85,0,108,2,0,0,0,0,0,0,0,0,91,0,0,0, + 0,0,0,0,0,0,82,7,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,85,0,108,4,0,0,0,0,0,0,0,0,88,16, + 108,5,0,0,0,0,0,0,0,0,83,0,85,0,108,6, + 0,0,0,0,0,0,0,0,47,0,85,0,108,7,0,0, + 0,0,0,0,0,0,47,0,85,0,108,8,0,0,0,0, + 0,0,0,0,103,0,114,2,0,0,0,41,9,218,7,95, + 116,104,114,101,97,100,218,5,82,76,111,99,107,114,96,0, + 0,0,218,13,97,108,108,111,99,97,116,101,95,108,111,99, + 107,218,6,119,97,107,101,117,112,114,26,0,0,0,114,117, + 0,0,0,218,5,99,111,117,110,116,218,7,119,97,105,116, + 101,114,115,169,2,114,49,0,0,0,114,26,0,0,0,115, + 2,0,0,0,32,32,114,7,0,0,0,114,53,0,0,0, + 218,20,95,77,111,100,117,108,101,76,111,99,107,46,95,95, + 105,110,105,116,95,95,232,0,0,0,115,67,0,0,0,128, + 0,244,42,0,21,28,151,77,145,77,147,79,136,4,140,9, + 220,22,29,215,22,43,209,22,43,211,22,45,136,4,140,11, + 240,6,0,21,25,140,9,240,8,0,22,26,136,4,140,10, + 240,22,0,22,24,136,4,140,10,240,28,0,24,26,136,4, + 141,12,114,22,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,7,0,0,0,3,0,0,0,243,108,0,0, + 0,149,0,91,1,0,0,0,0,0,0,0,0,91,2,0, + 0,0,0,0,0,0,0,82,5,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,0,0,0,0, + 0,0,0,91,7,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,85,0,82,8,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,47,1,91,10,0, + 0,0,0,0,0,0,0,83,1,57,4,36,0,41,2,78, + 41,4,114,119,0,0,0,114,113,0,0,0,114,114,0,0, + 0,114,115,0,0,0,41,6,114,118,0,0,0,114,127,0, + 0,0,218,9,103,101,116,95,105,100,101,110,116,114,73,0, + 0,0,114,117,0,0,0,114,99,0,0,0,114,74,0,0, + 0,115,1,0,0,0,32,114,7,0,0,0,218,12,104,97, + 115,95,100,101,97,100,108,111,99,107,218,24,95,77,111,100, + 117,108,101,76,111,99,107,46,104,97,115,95,100,101,97,100, + 108,111,99,107,32,1,0,0,115,48,0,0,0,128,0,244, + 10,0,16,31,228,22,29,215,22,39,209,22,39,211,22,41, + 220,21,24,147,85,240,6,0,28,32,159,58,153,58,152,44, + 228,24,36,241,17,9,16,10,240,0,9,9,10,114,22,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,7, + 0,0,0,3,0,0,0,243,130,2,0,0,149,0,91,0, + 0,0,0,0,0,0,0,0,82,3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,110,1,91,5,0,0,0,0,0,0,0,0, + 88,16,53,2,0,0,0,0,0,0,2,0,32,0,30,0, + 85,0,82,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,2,0,32,0,85,0,82,8,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 47,0,58,88,0,0,100,16,0,0,85,0,82,10,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,1,58,88,0,0,97,51,0,0,88,16,108,5,0,0, + 0,0,0,0,0,0,85,0,82,8,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,82,13,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 83,1,53,1,0,0,0,0,0,0,32,0,30,0,83,2, + 83,2,83,2,53,2,0,0,0,0,0,0,32,0,83,2, + 83,2,83,2,53,2,0,0,0,0,0,0,32,0,103,1, + 85,0,82,15,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,97,15,0,0,91,17,0,0,0,0, + 0,0,0,0,83,3,85,0,60,2,14,0,51,2,53,1, + 0,0,0,0,0,0,101,1,85,0,82,18,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,21, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,4,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,97,27,0,0,85,0,82,22,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,13, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,2,53,1,0,0,0,0,0,0,32,0,83,2, + 83,2,83,2,53,2,0,0,0,0,0,0,32,0,85,0, + 82,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,82,21,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 32,0,85,0,82,18,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,25,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,32,0,77,253,0,0,33,0,44,0,40,0, + 0,0,0,0,0,0,100,1,0,0,102,2,32,0,31,0, + 32,0,32,0,78,68,61,3,31,0,102,1,33,0,44,0, + 40,0,0,0,0,0,0,0,100,1,0,0,102,2,32,0, + 31,0,32,0,32,0,103,2,61,3,31,0,102,1,41,5, + 122,153,10,65,99,113,117,105,114,101,32,116,104,101,32,109, + 111,100,117,108,101,32,108,111,99,107,46,32,32,73,102,32, + 97,32,112,111,116,101,110,116,105,97,108,32,100,101,97,100, + 108,111,99,107,32,105,115,32,100,101,116,101,99,116,101,100, + 44,10,97,32,95,68,101,97,100,108,111,99,107,69,114,114, + 111,114,32,105,115,32,114,97,105,115,101,100,46,10,79,116, + 104,101,114,119,105,115,101,44,32,116,104,101,32,108,111,99, + 107,32,105,115,32,97,108,119,97,121,115,32,97,99,113,117, + 105,114,101,100,32,97,110,100,32,84,114,117,101,32,105,115, + 32,114,101,116,117,114,110,101,100,46,10,84,78,122,21,100, + 101,97,100,108,111,99,107,32,100,101,116,101,99,116,101,100, + 32,98,121,32,70,41,13,114,127,0,0,0,114,136,0,0, + 0,114,92,0,0,0,114,96,0,0,0,114,131,0,0,0, + 114,117,0,0,0,114,58,0,0,0,114,137,0,0,0,114, + 110,0,0,0,114,130,0,0,0,218,7,97,99,113,117,105, + 114,101,114,132,0,0,0,218,7,114,101,108,101,97,115,101, + 169,2,114,49,0,0,0,114,120,0,0,0,115,2,0,0, + 0,32,32,114,7,0,0,0,114,140,0,0,0,218,19,95, 77,111,100,117,108,101,76,111,99,107,46,97,99,113,117,105, - 114,101,141,1,0,0,115,18,0,0,0,128,0,216,8,12, - 143,10,138,10,144,97,137,15,141,10,216,15,19,114,22,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,98,0,0,0,151,0,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,1,107,40,0,0,114,11,116,3,0,0, - 0,0,0,0,0,0,100,2,171,1,0,0,0,0,0,0, - 130,1,124,0,120,1,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,3,122,23,0,0, - 99,2,95,0,0,0,0,0,0,0,0,0,121,0,41,4, - 78,114,125,0,0,0,114,124,0,0,0,114,138,0,0,0, - 41,2,114,113,0,0,0,114,126,0,0,0,114,66,0,0, - 0,115,1,0,0,0,32,114,7,0,0,0,114,121,0,0, - 0,122,24,95,68,117,109,109,121,77,111,100,117,108,101,76, - 111,99,107,46,114,101,108,101,97,115,101,145,1,0,0,115, - 38,0,0,0,128,0,216,11,15,143,58,137,58,152,17,138, - 63,220,18,30,208,31,64,211,18,65,208,12,65,216,8,12, - 143,10,138,10,144,97,137,15,142,10,114,22,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, - 3,0,0,0,243,56,0,0,0,151,0,100,1,124,0,106, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,155,2,100,2,116,3,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,155,0,157,4,83, - 0,41,3,78,122,17,95,68,117,109,109,121,77,111,100,117, - 108,101,76,111,99,107,40,114,129,0,0,0,114,130,0,0, - 0,114,66,0,0,0,115,1,0,0,0,32,114,7,0,0, - 0,114,132,0,0,0,122,25,95,68,117,109,109,121,77,111, - 100,117,108,101,76,111,99,107,46,95,95,114,101,112,114,95, - 95,150,1,0,0,115,29,0,0,0,128,0,216,17,34,160, - 52,167,57,161,57,160,45,168,117,180,82,184,4,179,88,176, - 74,208,15,63,208,8,63,114,22,0,0,0,78,41,8,114, - 11,0,0,0,114,10,0,0,0,114,3,0,0,0,114,12, - 0,0,0,114,47,0,0,0,114,120,0,0,0,114,121,0, - 0,0,114,132,0,0,0,114,31,0,0,0,114,22,0,0, - 0,114,7,0,0,0,114,134,0,0,0,114,134,0,0,0, - 133,1,0,0,115,28,0,0,0,132,0,241,2,1,5,32, - 242,6,2,5,23,242,8,2,5,20,242,8,3,5,24,243, - 10,1,5,64,1,114,22,0,0,0,114,134,0,0,0,99, + 114,101,48,1,0,0,115,246,0,0,0,128,0,244,12,0, + 15,22,215,14,31,209,14,31,211,14,33,136,3,220,13,31, + 160,3,213,13,42,216,18,22,240,8,0,22,26,151,89,147, + 89,216,23,27,151,122,145,122,160,82,211,23,39,168,52,175, + 58,169,58,184,19,211,43,60,240,14,0,38,41,156,10,216, + 24,28,159,10,153,10,215,24,41,209,24,41,168,36,212,24, + 47,216,31,35,247,21,0,22,31,247,11,0,14,43,208,13, + 42,240,68,1,0,24,28,215,23,40,209,23,40,215,23,42, + 209,23,42,220,30,44,208,47,68,192,84,193,72,208,45,77, + 211,30,78,208,24,78,240,26,0,24,28,151,123,145,123,215, + 23,42,209,23,42,168,53,215,23,49,209,23,49,216,24,28, + 159,12,153,12,215,24,43,209,24,43,168,68,212,24,49,247, + 89,1,0,22,31,240,98,1,0,17,21,151,11,145,11,215, + 16,35,209,16,35,212,16,37,240,10,0,17,21,151,11,145, + 11,215,16,35,209,16,35,212,16,37,241,117,1,0,19,23, + 247,8,0,22,31,149,89,250,247,11,0,14,43,213,13,42, + 250,115,48,0,0,0,160,14,68,48,3,174,65,3,68,31, + 5,193,49,8,68,48,3,194,2,65,31,68,31,5,195,33, + 62,68,48,3,196,31,10,68,45,9,196,41,7,68,48,3, + 196,48,10,68,62,7,99,1,0,0,0,0,0,0,0,0, + 0,0,0,6,0,0,0,3,0,0,0,243,244,1,0,0, + 149,0,91,0,0,0,0,0,0,0,0,0,82,3,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 53,0,0,0,0,0,0,0,110,1,85,0,82,4,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 2,0,32,0,85,0,82,6,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,1,58,119,0,0, + 97,11,0,0,91,9,0,0,0,0,0,0,0,0,83,1, + 53,1,0,0,0,0,0,0,101,1,91,11,0,0,0,0, + 0,0,0,0,85,0,82,12,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,83,2,58,148,0,0,100,2,0,0,23,0,101,1, + 85,0,82,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,82,15,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,32,0,91,11,0,0,0,0,0,0,0,0,85,0, + 82,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,100,84,0,0,83,0,85,0,108,3,0,0, + 0,0,0,0,0,0,91,11,0,0,0,0,0,0,0,0, + 85,0,82,16,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,83,2, + 58,148,0,0,97,52,0,0,85,0,82,16,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,15, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,53,0,0,0,0,0,0,0,32,0,85,0,82,18, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,82,21,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,32,0, + 83,0,83,0,83,0,53,2,0,0,0,0,0,0,32,0, + 103,0,33,0,44,0,40,0,0,0,0,0,0,0,100,1, + 0,0,102,2,32,0,31,0,32,0,32,0,103,0,61,3, + 31,0,102,1,41,3,78,250,31,99,97,110,110,111,116,32, + 114,101,108,101,97,115,101,32,117,110,45,97,99,113,117,105, + 114,101,100,32,108,111,99,107,233,0,0,0,0,41,11,114, + 127,0,0,0,114,136,0,0,0,114,96,0,0,0,114,117, + 0,0,0,218,12,82,117,110,116,105,109,101,69,114,114,111, + 114,218,3,108,101,110,114,131,0,0,0,114,77,0,0,0, + 114,132,0,0,0,114,130,0,0,0,114,141,0,0,0,114, + 142,0,0,0,115,2,0,0,0,32,32,114,7,0,0,0, + 114,141,0,0,0,218,19,95,77,111,100,117,108,101,76,111, + 99,107,46,114,101,108,101,97,115,101,116,1,0,0,115,162, + 0,0,0,128,0,220,14,21,215,14,31,209,14,31,211,14, + 33,136,3,216,13,17,143,89,139,89,216,15,19,143,122,137, + 122,152,83,211,15,32,220,22,34,208,35,68,211,22,69,208, + 16,69,220,19,22,144,116,151,122,145,122,147,63,160,81,211, + 19,38,208,12,38,208,19,38,216,12,16,143,74,137,74,143, + 78,137,78,212,12,28,220,19,22,144,116,151,122,145,122,151, + 63,145,63,216,29,33,144,4,148,10,220,19,22,144,116,151, + 124,145,124,211,19,36,160,113,211,19,40,216,20,24,151,76, + 145,76,215,20,36,209,20,36,212,20,38,216,20,24,151,75, + 145,75,215,20,39,209,20,39,212,20,41,247,19,0,14,23, + 143,89,142,89,250,115,12,0,0,0,161,66,63,67,41,3, + 195,41,10,67,55,7,99,1,0,0,0,0,0,0,0,0, + 0,0,0,6,0,0,0,3,0,0,0,243,58,0,0,0, + 149,0,83,1,85,0,82,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,60,2,14,0,83,2, + 91,3,0,0,0,0,0,0,0,0,85,0,53,1,0,0, + 0,0,0,0,14,0,51,4,36,0,41,3,78,122,12,95, + 77,111,100,117,108,101,76,111,99,107,40,250,5,41,32,97, + 116,32,169,2,114,26,0,0,0,218,2,105,100,114,74,0, + 0,0,115,1,0,0,0,32,114,7,0,0,0,218,8,95, + 95,114,101,112,114,95,95,218,20,95,77,111,100,117,108,101, + 76,111,99,107,46,95,95,114,101,112,114,95,95,129,1,0, + 0,115,29,0,0,0,128,0,216,17,29,152,100,159,105,153, + 105,153,93,168,37,180,2,176,52,179,8,168,122,208,15,58, + 208,8,58,114,22,0,0,0,41,6,114,131,0,0,0,114, + 96,0,0,0,114,26,0,0,0,114,117,0,0,0,114,132, + 0,0,0,114,130,0,0,0,78,41,11,114,11,0,0,0, + 114,10,0,0,0,114,3,0,0,0,114,33,0,0,0,114, + 12,0,0,0,114,53,0,0,0,114,137,0,0,0,114,140, + 0,0,0,114,141,0,0,0,114,154,0,0,0,114,35,0, + 0,0,114,32,0,0,0,114,22,0,0,0,114,7,0,0, + 0,114,124,0,0,0,114,124,0,0,0,226,0,0,0,115, + 35,0,0,0,134,0,241,2,3,5,8,242,10,54,5,26, + 242,112,1,14,5,10,242,32,66,1,5,38,242,72,2,11, + 5,42,245,26,1,5,59,114,22,0,0,0,114,124,0,0, + 0,99,0,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,0,0,0,0,243,48,0,0,0,149,0,92,0,114, + 1,83,0,114,2,83,1,114,3,83,2,114,4,83,3,26, + 0,114,5,83,4,26,0,114,6,83,5,26,0,114,7,83, + 6,26,0,114,8,83,7,114,9,103,8,41,9,218,16,95, + 68,117,109,109,121,77,111,100,117,108,101,76,111,99,107,105, + 133,1,0,0,122,82,65,32,115,105,109,112,108,101,32,95, + 77,111,100,117,108,101,76,111,99,107,32,101,113,117,105,118, + 97,108,101,110,116,32,102,111,114,32,80,121,116,104,111,110, + 32,98,117,105,108,100,115,32,119,105,116,104,111,117,116,10, + 109,117,108,116,105,45,116,104,114,101,97,100,105,110,103,32, + 115,117,112,112,111,114,116,46,99,2,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,3,0,0,0,243,30,0, + 0,0,149,0,88,16,108,0,0,0,0,0,0,0,0,0, + 83,1,85,0,108,1,0,0,0,0,0,0,0,0,103,0, + 169,2,78,114,146,0,0,0,41,2,114,26,0,0,0,114, + 131,0,0,0,114,133,0,0,0,115,2,0,0,0,32,32, + 114,7,0,0,0,114,53,0,0,0,218,25,95,68,117,109, + 109,121,77,111,100,117,108,101,76,111,99,107,46,95,95,105, + 110,105,116,95,95,137,1,0,0,115,14,0,0,0,128,0, + 216,20,24,140,9,216,21,22,136,4,141,10,114,22,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,3,0,0,0,243,46,0,0,0,149,0,85,0,61, + 1,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,1,45,13,0,0,115,2,108,0,0, + 0,0,0,0,0,0,0,103,2,41,3,78,233,1,0,0, + 0,84,41,1,114,131,0,0,0,114,74,0,0,0,115,1, + 0,0,0,32,114,7,0,0,0,114,140,0,0,0,218,24, + 95,68,117,109,109,121,77,111,100,117,108,101,76,111,99,107, + 46,97,99,113,117,105,114,101,141,1,0,0,115,18,0,0, + 0,128,0,216,8,12,143,10,138,10,144,97,137,15,141,10, + 216,15,19,114,22,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,3,0,0,0,243,100,0, + 0,0,149,0,85,0,82,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,1,58,88,0,0, + 97,11,0,0,91,3,0,0,0,0,0,0,0,0,83,2, + 53,1,0,0,0,0,0,0,101,1,85,0,61,1,82,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,3,45,23,0,0,115,2,108,0,0,0,0,0, + 0,0,0,0,103,0,41,4,78,114,146,0,0,0,114,145, + 0,0,0,114,162,0,0,0,41,2,114,131,0,0,0,114, + 147,0,0,0,114,74,0,0,0,115,1,0,0,0,32,114, + 7,0,0,0,114,141,0,0,0,218,24,95,68,117,109,109, + 121,77,111,100,117,108,101,76,111,99,107,46,114,101,108,101, + 97,115,101,145,1,0,0,115,38,0,0,0,128,0,216,11, + 15,143,58,137,58,152,17,139,63,220,18,30,208,31,64,211, + 18,65,208,12,65,216,8,12,143,10,138,10,144,97,137,15, + 142,10,114,22,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,6,0,0,0,3,0,0,0,243,58,0,0, + 0,149,0,83,1,85,0,82,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,60,2,14,0,83, + 2,91,3,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,14,0,51,4,36,0,41,3,78,122,17, + 95,68,117,109,109,121,77,111,100,117,108,101,76,111,99,107, + 40,114,151,0,0,0,114,152,0,0,0,114,74,0,0,0, + 115,1,0,0,0,32,114,7,0,0,0,114,154,0,0,0, + 218,25,95,68,117,109,109,121,77,111,100,117,108,101,76,111, + 99,107,46,95,95,114,101,112,114,95,95,150,1,0,0,115, + 29,0,0,0,128,0,216,17,34,160,52,167,57,161,57,161, + 45,168,117,180,82,184,4,179,88,176,74,208,15,63,208,8, + 63,114,22,0,0,0,41,2,114,131,0,0,0,114,26,0, + 0,0,78,41,10,114,11,0,0,0,114,10,0,0,0,114, + 3,0,0,0,114,33,0,0,0,114,12,0,0,0,114,53, + 0,0,0,114,140,0,0,0,114,141,0,0,0,114,154,0, + 0,0,114,35,0,0,0,114,32,0,0,0,114,22,0,0, + 0,114,7,0,0,0,114,157,0,0,0,114,157,0,0,0, + 133,1,0,0,115,28,0,0,0,134,0,241,2,1,5,32, + 242,6,2,5,23,242,8,2,5,20,242,8,3,5,24,245, + 10,1,5,64,1,114,22,0,0,0,114,157,0,0,0,99, 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 0,0,0,0,243,30,0,0,0,151,0,101,0,90,1,100, - 0,90,2,100,1,132,0,90,3,100,2,132,0,90,4,100, - 3,132,0,90,5,121,4,41,5,218,18,95,77,111,100,117, - 108,101,76,111,99,107,77,97,110,97,103,101,114,99,2,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0, - 0,0,243,32,0,0,0,151,0,124,1,124,0,95,0,0, - 0,0,0,0,0,0,0,100,0,124,0,95,1,0,0,0, - 0,0,0,0,0,121,0,114,2,0,0,0,41,2,218,5, - 95,110,97,109,101,218,5,95,108,111,99,107,114,115,0,0, - 0,115,2,0,0,0,32,32,114,7,0,0,0,114,47,0, - 0,0,122,27,95,77,111,100,117,108,101,76,111,99,107,77, - 97,110,97,103,101,114,46,95,95,105,110,105,116,95,95,156, - 1,0,0,115,16,0,0,0,128,0,216,21,25,136,4,140, - 10,216,21,25,136,4,141,10,114,22,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,108,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,124,0,95,2,0,0,0,0,0,0,0,0,124,0,106, - 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,7,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,1, - 0,121,0,114,2,0,0,0,41,4,218,16,95,103,101,116, - 95,109,111,100,117,108,101,95,108,111,99,107,114,144,0,0, - 0,114,145,0,0,0,114,120,0,0,0,114,66,0,0,0, - 115,1,0,0,0,32,114,7,0,0,0,114,87,0,0,0, - 122,28,95,77,111,100,117,108,101,76,111,99,107,77,97,110, - 97,103,101,114,46,95,95,101,110,116,101,114,95,95,160,1, - 0,0,115,34,0,0,0,128,0,220,21,37,160,100,167,106, - 161,106,211,21,49,136,4,140,10,216,8,12,143,10,137,10, - 215,8,26,209,8,26,213,8,28,114,22,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,15, - 0,0,0,243,56,0,0,0,151,0,124,0,106,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,1,0,121,0, - 114,2,0,0,0,41,2,114,145,0,0,0,114,121,0,0, - 0,114,89,0,0,0,115,3,0,0,0,32,32,32,114,7, - 0,0,0,114,92,0,0,0,122,27,95,77,111,100,117,108, - 101,76,111,99,107,77,97,110,97,103,101,114,46,95,95,101, - 120,105,116,95,95,164,1,0,0,115,18,0,0,0,128,0, - 216,8,12,143,10,137,10,215,8,26,209,8,26,213,8,28, - 114,22,0,0,0,78,41,6,114,11,0,0,0,114,10,0, - 0,0,114,3,0,0,0,114,47,0,0,0,114,87,0,0, - 0,114,92,0,0,0,114,31,0,0,0,114,22,0,0,0, - 114,7,0,0,0,114,142,0,0,0,114,142,0,0,0,154, - 1,0,0,115,17,0,0,0,132,0,242,4,2,5,26,242, - 8,2,5,29,243,8,1,5,29,114,22,0,0,0,114,142, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,74,1,0,0,151,0,116, - 0,0,0,0,0,0,0,0,0,106,3,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,1,0,9,0,9,0,116,5,0,0,0, - 0,0,0,0,0,124,0,25,0,0,0,171,0,0,0,0, - 0,0,0,125,1,124,1,128,63,116,8,0,0,0,0,0, - 0,0,0,128,12,116,11,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,125,1,110,11,116,13,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,125,1,124,0,102,1,100,2,132,1,125,2,116,14,0, - 0,0,0,0,0,0,0,106,17,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,124,2,171, - 2,0,0,0,0,0,0,116,4,0,0,0,0,0,0,0, - 0,124,0,60,0,0,0,116,0,0,0,0,0,0,0,0, - 0,106,19,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,1,0,124, - 1,83,0,35,0,116,6,0,0,0,0,0,0,0,0,36, - 0,114,5,1,0,100,1,125,1,89,0,140,100,119,0,120, - 3,89,0,119,1,35,0,116,0,0,0,0,0,0,0,0, - 0,106,19,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,1,0,119, - 0,120,3,89,0,119,1,41,3,122,139,71,101,116,32,111, - 114,32,99,114,101,97,116,101,32,116,104,101,32,109,111,100, - 117,108,101,32,108,111,99,107,32,102,111,114,32,97,32,103, - 105,118,101,110,32,109,111,100,117,108,101,32,110,97,109,101, - 46,10,10,32,32,32,32,65,99,113,117,105,114,101,47,114, - 101,108,101,97,115,101,32,105,110,116,101,114,110,97,108,108, - 121,32,116,104,101,32,103,108,111,98,97,108,32,105,109,112, - 111,114,116,32,108,111,99,107,32,116,111,32,112,114,111,116, - 101,99,116,10,32,32,32,32,95,109,111,100,117,108,101,95, - 108,111,99,107,115,46,78,99,2,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,19,0,0,0,243,196,0,0, - 0,151,0,116,0,0,0,0,0,0,0,0,0,106,3,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,1,0,9,0,116,4,0, - 0,0,0,0,0,0,0,106,7,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,171,1,0, - 0,0,0,0,0,124,0,117,0,114,7,116,4,0,0,0, - 0,0,0,0,0,124,1,61,0,116,0,0,0,0,0,0, - 0,0,0,106,9,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,1, - 0,121,0,35,0,116,0,0,0,0,0,0,0,0,0,106, - 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,1,0,119,0,120, - 3,89,0,119,1,114,2,0,0,0,41,5,218,4,95,105, - 109,112,218,12,97,99,113,117,105,114,101,95,108,111,99,107, - 218,13,95,109,111,100,117,108,101,95,108,111,99,107,115,114, - 76,0,0,0,218,12,114,101,108,101,97,115,101,95,108,111, - 99,107,41,2,114,61,0,0,0,114,26,0,0,0,115,2, - 0,0,0,32,32,114,7,0,0,0,218,2,99,98,122,28, - 95,103,101,116,95,109,111,100,117,108,101,95,108,111,99,107, - 46,60,108,111,99,97,108,115,62,46,99,98,189,1,0,0, - 115,73,0,0,0,128,0,220,16,20,215,16,33,209,16,33, - 212,16,35,240,2,7,17,40,244,8,0,24,37,215,23,40, - 209,23,40,168,20,211,23,46,176,35,209,23,53,220,28,41, - 168,36,208,28,47,228,20,24,215,20,37,209,20,37,213,20, - 39,248,148,68,215,20,37,209,20,37,213,20,39,250,115,11, - 0,0,0,150,30,65,9,0,193,9,22,65,31,3,41,10, - 114,151,0,0,0,114,152,0,0,0,114,153,0,0,0,114, - 73,0,0,0,114,109,0,0,0,114,134,0,0,0,114,107, - 0,0,0,114,52,0,0,0,114,61,0,0,0,114,154,0, - 0,0,41,3,114,26,0,0,0,114,83,0,0,0,114,155, - 0,0,0,115,3,0,0,0,32,32,32,114,7,0,0,0, - 114,147,0,0,0,114,147,0,0,0,170,1,0,0,115,156, - 0,0,0,128,0,244,12,0,5,9,215,4,21,209,4,21, - 212,4,23,240,2,25,5,28,240,2,3,9,24,220,19,32, - 160,20,209,19,38,211,19,40,136,68,240,8,0,12,16,136, - 60,220,15,22,136,127,220,23,39,168,4,211,23,45,145,4, - 228,23,34,160,52,211,23,40,144,4,224,29,33,243,0,9, - 13,40,244,22,0,35,43,167,44,161,44,168,116,176,82,211, - 34,56,140,77,152,36,209,12,31,228,8,12,215,8,25,209, - 8,25,212,8,27,224,11,15,128,75,248,244,49,0,16,24, - 242,0,1,9,24,216,19,23,138,68,240,3,1,9,24,251, - 244,44,0,9,13,215,8,25,209,8,25,213,8,27,250,115, - 41,0,0,0,151,13,65,59,0,164,65,1,66,12,0,193, - 59,11,66,9,3,194,6,2,66,12,0,194,8,1,66,9, - 3,194,9,3,66,12,0,194,12,22,66,34,3,99,1,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,243,122,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,125,1,9, - 0,124,1,106,3,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,1, - 0,124,1,106,5,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,1, - 0,121,1,35,0,116,6,0,0,0,0,0,0,0,0,36, - 0,114,3,1,0,89,0,121,1,119,0,120,3,89,0,119, - 1,41,2,122,189,65,99,113,117,105,114,101,115,32,116,104, - 101,110,32,114,101,108,101,97,115,101,115,32,116,104,101,32, - 109,111,100,117,108,101,32,108,111,99,107,32,102,111,114,32, - 97,32,103,105,118,101,110,32,109,111,100,117,108,101,32,110, - 97,109,101,46,10,10,32,32,32,32,84,104,105,115,32,105, - 115,32,117,115,101,100,32,116,111,32,101,110,115,117,114,101, - 32,97,32,109,111,100,117,108,101,32,105,115,32,99,111,109, - 112,108,101,116,101,108,121,32,105,110,105,116,105,97,108,105, - 122,101,100,44,32,105,110,32,116,104,101,10,32,32,32,32, - 101,118,101,110,116,32,105,116,32,105,115,32,98,101,105,110, - 103,32,105,109,112,111,114,116,101,100,32,98,121,32,97,110, - 111,116,104,101,114,32,116,104,114,101,97,100,46,10,32,32, - 32,32,78,41,4,114,147,0,0,0,114,120,0,0,0,114, - 121,0,0,0,114,94,0,0,0,41,2,114,26,0,0,0, - 114,83,0,0,0,115,2,0,0,0,32,32,114,7,0,0, - 0,218,19,95,108,111,99,107,95,117,110,108,111,99,107,95, - 109,111,100,117,108,101,114,157,0,0,0,207,1,0,0,115, - 61,0,0,0,128,0,244,12,0,12,28,152,68,211,11,33, - 128,68,240,2,7,5,23,216,8,12,143,12,137,12,140,14, - 240,12,0,9,13,143,12,137,12,141,14,248,244,11,0,12, - 26,242,0,3,5,13,241,6,0,9,13,240,7,3,5,13, - 250,115,12,0,0,0,141,16,46,0,174,9,58,3,185,1, - 58,3,99,1,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,15,0,0,0,243,18,0,0,0,151,0,2,0, - 124,0,124,1,105,0,124,2,164,1,142,1,83,0,41,1, - 97,46,1,0,0,114,101,109,111,118,101,95,105,109,112,111, - 114,116,108,105,98,95,102,114,97,109,101,115,32,105,110,32, - 105,109,112,111,114,116,46,99,32,119,105,108,108,32,97,108, - 119,97,121,115,32,114,101,109,111,118,101,32,115,101,113,117, - 101,110,99,101,115,10,32,32,32,32,111,102,32,105,109,112, - 111,114,116,108,105,98,32,102,114,97,109,101,115,32,116,104, - 97,116,32,101,110,100,32,119,105,116,104,32,97,32,99,97, - 108,108,32,116,111,32,116,104,105,115,32,102,117,110,99,116, - 105,111,110,10,10,32,32,32,32,85,115,101,32,105,116,32, - 105,110,115,116,101,97,100,32,111,102,32,97,32,110,111,114, - 109,97,108,32,99,97,108,108,32,105,110,32,112,108,97,99, - 101,115,32,119,104,101,114,101,32,105,110,99,108,117,100,105, - 110,103,32,116,104,101,32,105,109,112,111,114,116,108,105,98, - 10,32,32,32,32,102,114,97,109,101,115,32,105,110,116,114, - 111,100,117,99,101,115,32,117,110,119,97,110,116,101,100,32, - 110,111,105,115,101,32,105,110,116,111,32,116,104,101,32,116, - 114,97,99,101,98,97,99,107,32,40,101,46,103,46,32,119, - 104,101,110,32,101,120,101,99,117,116,105,110,103,10,32,32, - 32,32,109,111,100,117,108,101,32,99,111,100,101,41,10,32, - 32,32,32,114,31,0,0,0,41,3,218,1,102,114,90,0, - 0,0,218,4,107,119,100,115,115,3,0,0,0,32,32,32, - 114,7,0,0,0,218,25,95,99,97,108,108,95,119,105,116, - 104,95,102,114,97,109,101,115,95,114,101,109,111,118,101,100, - 114,161,0,0,0,224,1,0,0,115,20,0,0,0,128,0, - 241,16,0,12,13,136,100,208,11,27,144,100,209,11,27,208, - 4,27,114,22,0,0,0,114,138,0,0,0,41,1,218,9, - 118,101,114,98,111,115,105,116,121,99,1,0,0,0,0,0, - 0,0,1,0,0,0,5,0,0,0,7,0,0,0,243,188, - 0,0,0,151,0,116,0,0,0,0,0,0,0,0,0,106, + 0,0,0,0,243,38,0,0,0,149,0,92,0,114,1,83, + 0,114,2,83,1,114,3,83,2,26,0,114,4,83,3,26, + 0,114,5,83,4,26,0,114,6,83,5,114,7,103,6,41, + 7,218,18,95,77,111,100,117,108,101,76,111,99,107,77,97, + 110,97,103,101,114,105,154,1,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,243, + 30,0,0,0,149,0,88,16,108,0,0,0,0,0,0,0, + 0,0,83,0,85,0,108,1,0,0,0,0,0,0,0,0, + 103,0,114,2,0,0,0,41,2,218,5,95,110,97,109,101, + 218,5,95,108,111,99,107,114,133,0,0,0,115,2,0,0, + 0,32,32,114,7,0,0,0,114,53,0,0,0,218,27,95, + 77,111,100,117,108,101,76,111,99,107,77,97,110,97,103,101, + 114,46,95,95,105,110,105,116,95,95,156,1,0,0,115,14, + 0,0,0,128,0,216,21,25,140,10,216,21,25,136,4,141, + 10,114,22,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,3,0,0,0,243,108,0,0,0, + 149,0,91,1,0,0,0,0,0,0,0,0,85,0,82,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,85,0,108,2,0,0, + 0,0,0,0,0,0,85,0,82,4,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,82,7,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 53,0,0,0,0,0,0,0,32,0,103,0,114,2,0,0, + 0,41,4,218,16,95,103,101,116,95,109,111,100,117,108,101, + 95,108,111,99,107,114,171,0,0,0,114,172,0,0,0,114, + 140,0,0,0,114,74,0,0,0,115,1,0,0,0,32,114, + 7,0,0,0,114,101,0,0,0,218,28,95,77,111,100,117, + 108,101,76,111,99,107,77,97,110,97,103,101,114,46,95,95, + 101,110,116,101,114,95,95,160,1,0,0,115,34,0,0,0, + 128,0,220,21,37,160,100,167,106,161,106,211,21,49,136,4, + 140,10,216,8,12,143,10,137,10,215,8,26,209,8,26,213, + 8,28,114,22,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,15,0,0,0,243,56,0,0, + 0,149,0,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,32,0,103,0,114,2,0,0,0,41,2, + 114,172,0,0,0,114,141,0,0,0,114,104,0,0,0,115, + 3,0,0,0,32,32,32,114,7,0,0,0,114,107,0,0, + 0,218,27,95,77,111,100,117,108,101,76,111,99,107,77,97, + 110,97,103,101,114,46,95,95,101,120,105,116,95,95,164,1, + 0,0,115,18,0,0,0,128,0,216,8,12,143,10,137,10, + 215,8,26,209,8,26,213,8,28,114,22,0,0,0,41,2, + 114,172,0,0,0,114,171,0,0,0,78,41,8,114,11,0, + 0,0,114,10,0,0,0,114,3,0,0,0,114,33,0,0, + 0,114,53,0,0,0,114,101,0,0,0,114,107,0,0,0, + 114,35,0,0,0,114,32,0,0,0,114,22,0,0,0,114, + 7,0,0,0,114,169,0,0,0,114,169,0,0,0,154,1, + 0,0,115,17,0,0,0,134,0,242,4,2,5,26,242,8, + 2,5,29,245,8,1,5,29,114,22,0,0,0,114,169,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,243,82,1,0,0,149,0,91,0, + 0,0,0,0,0,0,0,0,82,3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,32,0,30,0,30,0,91,4,0,0,0,0, + 0,0,0,0,85,0,5,0,0,0,34,0,53,0,0,0, + 0,0,0,0,110,1,85,1,99,64,0,0,91,8,0,0, + 0,0,0,0,0,0,99,12,0,0,91,11,0,0,0,0, + 0,0,0,0,85,0,53,1,0,0,0,0,0,0,110,1, + 79,11,91,13,0,0,0,0,0,0,0,0,85,0,53,1, + 0,0,0,0,0,0,110,1,85,0,52,1,83,2,26,0, + 106,1,110,2,91,14,0,0,0,0,0,0,0,0,82,17, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,88,18,53,2,0,0,0,0,0,0,91,4,0,0, + 0,0,0,0,0,0,85,0,39,0,0,0,91,0,0,0, + 0,0,0,0,0,0,82,19,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,32,0,85,1,36,0,33,0,91,6,0,0,0,0, + 0,0,0,0,7,0,97,5,0,0,32,0,83,1,110,1, + 31,0,78,103,102,0,61,3,31,0,102,1,33,0,91,0, + 0,0,0,0,0,0,0,0,82,19,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,32,0,102,0,61,3,31,0,102,1,41,3, + 122,131,71,101,116,32,111,114,32,99,114,101,97,116,101,32, + 116,104,101,32,109,111,100,117,108,101,32,108,111,99,107,32, + 102,111,114,32,97,32,103,105,118,101,110,32,109,111,100,117, + 108,101,32,110,97,109,101,46,10,10,65,99,113,117,105,114, + 101,47,114,101,108,101,97,115,101,32,105,110,116,101,114,110, + 97,108,108,121,32,116,104,101,32,103,108,111,98,97,108,32, + 105,109,112,111,114,116,32,108,111,99,107,32,116,111,32,112, + 114,111,116,101,99,116,10,95,109,111,100,117,108,101,95,108, + 111,99,107,115,46,78,99,2,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,19,0,0,0,243,198,0,0,0, + 149,0,91,0,0,0,0,0,0,0,0,0,82,3,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 53,0,0,0,0,0,0,0,32,0,30,0,91,4,0,0, + 0,0,0,0,0,0,82,7,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,1,53,1,0,0, + 0,0,0,0,85,0,76,0,97,7,0,0,91,4,0,0, + 0,0,0,0,0,0,85,1,9,0,91,0,0,0,0,0, + 0,0,0,0,82,9,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 32,0,103,0,33,0,91,0,0,0,0,0,0,0,0,0, + 82,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,32,0,102,0, + 61,3,31,0,102,1,114,2,0,0,0,41,5,218,4,95, + 105,109,112,218,12,97,99,113,117,105,114,101,95,108,111,99, + 107,218,13,95,109,111,100,117,108,101,95,108,111,99,107,115, + 114,86,0,0,0,218,12,114,101,108,101,97,115,101,95,108, + 111,99,107,41,2,114,68,0,0,0,114,26,0,0,0,115, + 2,0,0,0,32,32,114,7,0,0,0,218,2,99,98,218, + 28,95,103,101,116,95,109,111,100,117,108,101,95,108,111,99, + 107,46,60,108,111,99,97,108,115,62,46,99,98,189,1,0, + 0,115,73,0,0,0,128,0,220,16,20,215,16,33,209,16, + 33,212,16,35,240,2,7,17,40,244,8,0,24,37,215,23, + 40,209,23,40,168,20,211,23,46,176,35,210,23,53,220,28, + 41,168,36,208,28,47,228,20,24,215,20,37,209,20,37,213, + 20,39,248,148,68,215,20,37,209,20,37,213,20,39,250,115, + 11,0,0,0,150,31,65,10,0,193,10,22,65,32,3,41, + 10,114,181,0,0,0,114,182,0,0,0,114,183,0,0,0, + 114,83,0,0,0,114,127,0,0,0,114,157,0,0,0,114, + 124,0,0,0,114,59,0,0,0,114,68,0,0,0,114,184, + 0,0,0,41,3,114,26,0,0,0,114,96,0,0,0,114, + 185,0,0,0,115,3,0,0,0,32,32,32,114,7,0,0, + 0,114,175,0,0,0,114,175,0,0,0,170,1,0,0,115, + 154,0,0,0,128,0,244,12,0,5,9,215,4,21,209,4, + 21,212,4,23,240,2,25,5,28,240,2,3,9,24,220,19, + 32,160,20,210,19,38,211,19,40,136,68,240,8,0,12,16, + 137,60,220,15,22,137,127,220,23,39,168,4,211,23,45,145, + 4,228,23,34,160,52,211,23,40,144,4,224,29,33,244,0, + 9,13,40,244,22,0,35,43,167,44,161,44,168,116,211,34, + 56,140,77,152,36,209,12,31,228,8,12,215,8,25,209,8, + 25,212,8,27,224,11,15,128,75,248,244,49,0,16,24,243, + 0,1,9,24,216,19,23,138,68,240,3,1,9,24,251,244, + 44,0,9,13,215,8,25,209,8,25,213,8,27,250,115,41, + 0,0,0,151,14,65,62,0,165,65,3,66,16,0,193,62, + 12,66,13,3,194,10,2,66,16,0,194,12,1,66,13,3, + 194,13,3,66,16,0,194,16,22,66,38,3,99,1,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,243,124,0,0,0,149,0,91,1,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,110,1,30,0, + 85,1,82,3,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,32,0, + 85,1,82,5,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,32,0, + 103,1,33,0,91,6,0,0,0,0,0,0,0,0,7,0, + 97,3,0,0,32,0,31,0,103,1,102,0,61,3,31,0, + 102,1,41,2,122,177,65,99,113,117,105,114,101,115,32,116, + 104,101,110,32,114,101,108,101,97,115,101,115,32,116,104,101, + 32,109,111,100,117,108,101,32,108,111,99,107,32,102,111,114, + 32,97,32,103,105,118,101,110,32,109,111,100,117,108,101,32, + 110,97,109,101,46,10,10,84,104,105,115,32,105,115,32,117, + 115,101,100,32,116,111,32,101,110,115,117,114,101,32,97,32, + 109,111,100,117,108,101,32,105,115,32,99,111,109,112,108,101, + 116,101,108,121,32,105,110,105,116,105,97,108,105,122,101,100, + 44,32,105,110,32,116,104,101,10,101,118,101,110,116,32,105, + 116,32,105,115,32,98,101,105,110,103,32,105,109,112,111,114, + 116,101,100,32,98,121,32,97,110,111,116,104,101,114,32,116, + 104,114,101,97,100,46,10,78,41,4,114,175,0,0,0,114, + 140,0,0,0,114,141,0,0,0,114,110,0,0,0,41,2, + 114,26,0,0,0,114,96,0,0,0,115,2,0,0,0,32, + 32,114,7,0,0,0,218,19,95,108,111,99,107,95,117,110, + 108,111,99,107,95,109,111,100,117,108,101,114,188,0,0,0, + 207,1,0,0,115,61,0,0,0,128,0,244,12,0,12,28, + 152,68,211,11,33,128,68,240,2,7,5,23,216,8,12,143, + 12,137,12,140,14,240,12,0,9,13,143,12,137,12,141,14, + 248,244,11,0,12,26,243,0,3,5,13,241,6,0,9,13, + 240,7,3,5,13,250,115,12,0,0,0,141,16,46,0,174, + 10,59,3,186,1,59,3,99,1,0,0,0,0,0,0,0, + 0,0,0,0,5,0,0,0,15,0,0,0,243,18,0,0, + 0,149,0,85,0,34,0,85,1,48,0,85,2,68,1,54, + 1,36,0,41,1,97,26,1,0,0,114,101,109,111,118,101, + 95,105,109,112,111,114,116,108,105,98,95,102,114,97,109,101, + 115,32,105,110,32,105,109,112,111,114,116,46,99,32,119,105, + 108,108,32,97,108,119,97,121,115,32,114,101,109,111,118,101, + 32,115,101,113,117,101,110,99,101,115,10,111,102,32,105,109, + 112,111,114,116,108,105,98,32,102,114,97,109,101,115,32,116, + 104,97,116,32,101,110,100,32,119,105,116,104,32,97,32,99, + 97,108,108,32,116,111,32,116,104,105,115,32,102,117,110,99, + 116,105,111,110,10,10,85,115,101,32,105,116,32,105,110,115, + 116,101,97,100,32,111,102,32,97,32,110,111,114,109,97,108, + 32,99,97,108,108,32,105,110,32,112,108,97,99,101,115,32, + 119,104,101,114,101,32,105,110,99,108,117,100,105,110,103,32, + 116,104,101,32,105,109,112,111,114,116,108,105,98,10,102,114, + 97,109,101,115,32,105,110,116,114,111,100,117,99,101,115,32, + 117,110,119,97,110,116,101,100,32,110,111,105,115,101,32,105, + 110,116,111,32,116,104,101,32,116,114,97,99,101,98,97,99, + 107,32,40,101,46,103,46,32,119,104,101,110,32,101,120,101, + 99,117,116,105,110,103,10,109,111,100,117,108,101,32,99,111, + 100,101,41,10,114,32,0,0,0,41,3,218,1,102,114,105, + 0,0,0,218,4,107,119,100,115,115,3,0,0,0,32,32, + 32,114,7,0,0,0,218,25,95,99,97,108,108,95,119,105, + 116,104,95,102,114,97,109,101,115,95,114,101,109,111,118,101, + 100,114,192,0,0,0,224,1,0,0,115,20,0,0,0,128, + 0,241,16,0,12,13,136,100,208,11,27,144,100,209,11,27, + 208,4,27,114,22,0,0,0,114,162,0,0,0,41,1,218, + 9,118,101,114,98,111,115,105,116,121,99,1,0,0,0,0, + 0,0,0,1,0,0,0,5,0,0,0,7,0,0,0,243, + 194,0,0,0,149,0,91,0,0,0,0,0,0,0,0,0, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,82,4,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,1,58,188,0,0,97,65, + 0,0,85,0,82,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,83,1,53,1,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,100,5,0,0,83,2, + 85,0,45,0,0,0,110,0,91,9,0,0,0,0,0,0, + 0,0,85,0,82,10,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,85,2,54,0,91,0, + 0,0,0,0,0,0,0,0,82,12,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,3,57,2, + 32,0,103,4,103,4,41,5,122,61,80,114,105,110,116,32, + 116,104,101,32,109,101,115,115,97,103,101,32,116,111,32,115, + 116,100,101,114,114,32,105,102,32,45,118,47,80,89,84,72, + 79,78,86,69,82,66,79,83,69,32,105,115,32,116,117,114, + 110,101,100,32,111,110,46,41,2,218,1,35,122,7,105,109, + 112,111,114,116,32,122,2,35,32,41,1,218,4,102,105,108, + 101,78,41,7,114,24,0,0,0,218,5,102,108,97,103,115, + 218,7,118,101,114,98,111,115,101,218,10,115,116,97,114,116, + 115,119,105,116,104,218,5,112,114,105,110,116,218,6,102,111, + 114,109,97,116,218,6,115,116,100,101,114,114,41,3,218,7, + 109,101,115,115,97,103,101,114,193,0,0,0,114,105,0,0, + 0,115,3,0,0,0,32,32,32,114,7,0,0,0,218,16, + 95,118,101,114,98,111,115,101,95,109,101,115,115,97,103,101, + 114,204,0,0,0,235,1,0,0,115,75,0,0,0,128,0, + 228,7,10,135,121,129,121,215,7,24,209,7,24,152,73,211, + 7,37,216,15,22,215,15,33,209,15,33,208,34,50,215,15, + 51,209,15,51,216,22,26,152,87,145,110,136,71,220,8,13, + 136,103,143,110,138,110,152,100,208,14,35,172,35,175,42,169, + 42,211,8,53,240,7,0,8,38,114,22,0,0,0,99,1, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,44,0,0,0,94,0,149,0,85,0,52,1, + 83,1,26,0,106,8,110,1,91,1,0,0,0,0,0,0, + 0,0,85,1,84,0,53,2,0,0,0,0,0,0,32,0, + 85,1,36,0,41,2,122,49,68,101,99,111,114,97,116,111, + 114,32,116,111,32,118,101,114,105,102,121,32,116,104,101,32, + 110,97,109,101,100,32,109,111,100,117,108,101,32,105,115,32, + 98,117,105,108,116,45,105,110,46,99,2,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,19,0,0,0,243,88, + 0,0,0,62,1,149,0,85,1,91,0,0,0,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,59,1,0,0,97,14,0,0,91, + 5,0,0,0,0,0,0,0,0,85,1,60,2,14,0,83, + 1,51,2,85,1,83,2,57,2,101,1,84,2,34,0,88, + 1,53,2,0,0,0,0,0,0,36,0,41,3,78,250,25, + 32,105,115,32,110,111,116,32,97,32,98,117,105,108,116,45, + 105,110,32,109,111,100,117,108,101,114,25,0,0,0,41,3, + 114,24,0,0,0,218,20,98,117,105,108,116,105,110,95,109, + 111,100,117,108,101,95,110,97,109,101,115,218,11,73,109,112, + 111,114,116,69,114,114,111,114,169,3,114,49,0,0,0,218, + 8,102,117,108,108,110,97,109,101,218,3,102,120,110,115,3, + 0,0,0,32,32,128,114,7,0,0,0,218,25,95,114,101, + 113,117,105,114,101,115,95,98,117,105,108,116,105,110,95,119, + 114,97,112,112,101,114,218,52,95,114,101,113,117,105,114,101, + 115,95,98,117,105,108,116,105,110,46,60,108,111,99,97,108, + 115,62,46,95,114,101,113,117,105,114,101,115,95,98,117,105, + 108,116,105,110,95,119,114,97,112,112,101,114,245,1,0,0, + 115,54,0,0,0,248,128,0,216,11,19,156,51,215,27,51, + 209,27,51,211,11,51,220,18,29,160,24,161,12,208,44,69, + 208,30,70,216,35,43,241,3,1,19,45,240,0,1,13,45, + 225,15,18,144,52,211,15,34,208,8,34,114,22,0,0,0, + 169,1,114,21,0,0,0,41,2,114,212,0,0,0,114,213, + 0,0,0,115,2,0,0,0,96,32,114,7,0,0,0,218, + 17,95,114,101,113,117,105,114,101,115,95,98,117,105,108,116, + 105,110,114,216,0,0,0,243,1,0,0,115,27,0,0,0, + 248,128,0,245,4,4,5,35,244,10,0,5,10,208,10,35, + 160,83,212,4,41,216,11,36,208,4,36,114,22,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,243,44,0,0,0,94,0,149,0,85,0, + 52,1,83,1,26,0,106,8,110,1,91,1,0,0,0,0, + 0,0,0,0,85,1,84,0,53,2,0,0,0,0,0,0, + 32,0,85,1,36,0,41,2,122,47,68,101,99,111,114,97, + 116,111,114,32,116,111,32,118,101,114,105,102,121,32,116,104, + 101,32,110,97,109,101,100,32,109,111,100,117,108,101,32,105, + 115,32,102,114,111,122,101,110,46,99,2,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,19,0,0,0,243,100, + 0,0,0,62,1,149,0,91,0,0,0,0,0,0,0,0, + 0,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,1,53,1,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,100,14,0,0,91,5,0,0,0, + 0,0,0,0,0,85,1,60,2,14,0,83,1,51,2,85, + 1,83,2,57,2,101,1,84,2,34,0,88,1,53,2,0, + 0,0,0,0,0,36,0,41,3,78,122,23,32,105,115,32, + 110,111,116,32,97,32,102,114,111,122,101,110,32,109,111,100, + 117,108,101,114,25,0,0,0,41,3,114,181,0,0,0,218, + 9,105,115,95,102,114,111,122,101,110,114,209,0,0,0,114, + 210,0,0,0,115,3,0,0,0,32,32,128,114,7,0,0, + 0,218,24,95,114,101,113,117,105,114,101,115,95,102,114,111, + 122,101,110,95,119,114,97,112,112,101,114,218,50,95,114,101, + 113,117,105,114,101,115,95,102,114,111,122,101,110,46,60,108, + 111,99,97,108,115,62,46,95,114,101,113,117,105,114,101,115, + 95,102,114,111,122,101,110,95,119,114,97,112,112,101,114,0, + 2,0,0,115,55,0,0,0,248,128,0,220,15,19,143,126, + 137,126,152,104,215,15,39,209,15,39,220,18,29,160,24,161, + 12,208,44,67,208,30,68,216,35,43,241,3,1,19,45,240, + 0,1,13,45,225,15,18,144,52,211,15,34,208,8,34,114, + 22,0,0,0,114,215,0,0,0,41,2,114,212,0,0,0, + 114,220,0,0,0,115,2,0,0,0,96,32,114,7,0,0, + 0,218,16,95,114,101,113,117,105,114,101,115,95,102,114,111, + 122,101,110,114,222,0,0,0,254,1,0,0,115,27,0,0, + 0,248,128,0,245,4,4,5,35,244,10,0,5,10,208,10, + 34,160,67,212,4,40,216,11,35,208,4,35,114,22,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,240,0,0,0,149,0,83,1,110, + 2,91,0,0,0,0,0,0,0,0,0,82,3,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 2,91,4,0,0,0,0,0,0,0,0,53,2,0,0,0, + 0,0,0,32,0,91,7,0,0,0,0,0,0,0,0,88, + 16,53,2,0,0,0,0,0,0,110,3,85,1,91,8,0, + 0,0,0,0,0,0,0,82,10,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,59,0,0,0,97, + 49,0,0,91,8,0,0,0,0,0,0,0,0,82,10,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,1,5,0,0,0,110,4,91,13,0,0,0,0,0, + 0,0,0,88,52,53,2,0,0,0,0,0,0,32,0,91, + 8,0,0,0,0,0,0,0,0,82,10,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,5, + 0,0,0,36,0,91,15,0,0,0,0,0,0,0,0,85, + 3,53,1,0,0,0,0,0,0,36,0,41,2,122,122,76, + 111,97,100,32,116,104,101,32,115,112,101,99,105,102,105,101, + 100,32,109,111,100,117,108,101,32,105,110,116,111,32,115,121, + 115,46,109,111,100,117,108,101,115,32,97,110,100,32,114,101, + 116,117,114,110,32,105,116,46,10,10,84,104,105,115,32,109, + 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97, + 116,101,100,46,32,32,85,115,101,32,108,111,97,100,101,114, + 46,101,120,101,99,95,109,111,100,117,108,101,40,41,32,105, + 110,115,116,101,97,100,46,10,10,122,103,116,104,101,32,108, + 111,97,100,95,109,111,100,117,108,101,40,41,32,109,101,116, + 104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,101, + 100,32,97,110,100,32,115,108,97,116,101,100,32,102,111,114, + 32,114,101,109,111,118,97,108,32,105,110,32,80,121,116,104, + 111,110,32,51,46,49,53,59,32,117,115,101,32,101,120,101, + 99,95,109,111,100,117,108,101,40,41,32,105,110,115,116,101, + 97,100,41,8,218,9,95,119,97,114,110,105,110,103,115,218, + 4,119,97,114,110,218,18,68,101,112,114,101,99,97,116,105, + 111,110,87,97,114,110,105,110,103,218,16,115,112,101,99,95, + 102,114,111,109,95,108,111,97,100,101,114,114,24,0,0,0, + 218,7,109,111,100,117,108,101,115,218,5,95,101,120,101,99, + 218,5,95,108,111,97,100,41,5,114,49,0,0,0,114,211, + 0,0,0,218,3,109,115,103,218,4,115,112,101,99,218,6, + 109,111,100,117,108,101,115,5,0,0,0,32,32,32,32,32, + 114,7,0,0,0,218,17,95,108,111,97,100,95,109,111,100, + 117,108,101,95,115,104,105,109,114,234,0,0,0,10,2,0, + 0,115,93,0,0,0,128,0,240,12,1,12,52,128,67,228, + 4,13,135,78,129,78,144,51,212,24,42,212,4,43,220,11, + 27,152,72,211,11,43,128,68,216,7,15,148,51,151,59,145, + 59,211,7,30,220,17,20,151,27,145,27,152,88,209,17,38, + 136,6,220,8,13,136,100,212,8,27,220,15,18,143,123,137, + 123,152,56,209,15,36,208,8,36,228,15,20,144,84,139,123, + 208,8,26,114,22,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,6,0,0,0,3,0,0,0,243,22,1, + 0,0,149,0,91,1,0,0,0,0,0,0,0,0,85,0, + 83,1,83,2,53,3,0,0,0,0,0,0,110,1,91,1, + 0,0,0,0,0,0,0,0,85,0,83,3,83,2,53,3, + 0,0,0,0,0,0,61,1,110,2,40,0,0,0,0,0, + 0,0,97,11,0,0,91,3,0,0,0,0,0,0,0,0, + 85,2,53,1,0,0,0,0,0,0,36,0,30,0,85,0, + 82,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,110,3,30,0,85,0,82,8,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,4, + 83,5,85,3,60,2,14,0,83,6,85,4,60,2,14,0, + 83,7,51,5,36,0,33,0,91,6,0,0,0,0,0,0, + 0,0,7,0,97,5,0,0,32,0,83,4,110,3,31,0, + 78,38,102,0,61,3,31,0,102,1,33,0,91,6,0,0, + 0,0,0,0,0,0,7,0,97,26,0,0,32,0,85,1, + 99,9,0,0,83,5,85,3,60,2,14,0,83,7,51,3, + 115,2,31,0,36,0,83,5,85,3,60,2,14,0,83,8, + 85,1,60,2,14,0,83,9,51,5,115,2,31,0,36,0, + 102,0,61,3,31,0,102,1,41,10,122,44,84,104,101,32, + 105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,111, + 102,32,77,111,100,117,108,101,84,121,112,101,46,95,95,114, + 101,112,114,95,95,40,41,46,218,10,95,95,108,111,97,100, + 101,114,95,95,78,218,8,95,95,115,112,101,99,95,95,218, + 1,63,250,8,60,109,111,100,117,108,101,32,250,6,32,102, + 114,111,109,32,218,1,62,250,2,32,40,250,2,41,62,41, + 5,114,15,0,0,0,218,22,95,109,111,100,117,108,101,95, + 114,101,112,114,95,102,114,111,109,95,115,112,101,99,114,11, + 0,0,0,114,4,0,0,0,218,8,95,95,102,105,108,101, + 95,95,41,5,114,233,0,0,0,218,6,108,111,97,100,101, + 114,114,232,0,0,0,114,26,0,0,0,218,8,102,105,108, + 101,110,97,109,101,115,5,0,0,0,32,32,32,32,32,114, + 7,0,0,0,218,12,95,109,111,100,117,108,101,95,114,101, + 112,114,114,248,0,0,0,29,2,0,0,115,177,0,0,0, + 128,0,228,13,20,144,86,152,92,168,52,211,13,48,128,70, + 220,15,22,144,118,152,122,168,52,211,15,48,208,7,48,128, + 116,213,7,48,220,15,37,160,100,211,15,43,208,8,43,240, + 4,3,5,19,216,15,21,143,127,137,127,136,4,240,6,8, + 5,54,216,19,25,151,63,145,63,136,8,240,14,0,18,26, + 152,36,153,24,160,22,168,8,161,124,176,49,208,15,53,208, + 8,53,248,244,21,0,12,26,243,0,1,5,19,216,15,18, + 138,4,240,3,1,5,19,251,244,8,0,12,26,243,0,4, + 5,53,216,11,17,137,62,216,21,29,152,100,153,88,160,81, + 208,19,39,210,12,39,224,21,29,152,100,153,88,160,82,168, + 6,161,122,176,18,208,19,52,210,12,52,240,9,4,5,53, + 250,115,40,0,0,0,174,12,65,18,0,187,12,65,36,0, + 193,18,12,65,33,3,193,32,1,65,33,3,193,36,20,66, + 8,3,193,58,11,66,8,3,194,7,1,66,8,3,99,0, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0, + 0,0,0,243,174,0,0,0,149,0,92,0,114,1,83,0, + 114,2,83,1,114,3,83,2,114,4,83,3,83,3,83,3, + 83,4,46,3,83,5,26,0,106,2,114,5,83,6,26,0, + 114,6,83,7,26,0,114,7,92,8,83,8,26,0,53,0, + 0,0,0,0,0,0,114,9,92,9,82,20,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,9, + 26,0,53,0,0,0,0,0,0,0,114,9,92,8,83,10, + 26,0,53,0,0,0,0,0,0,0,114,11,92,8,83,11, + 26,0,53,0,0,0,0,0,0,0,114,12,92,12,82,20, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,12,26,0,53,0,0,0,0,0,0,0,114,12, + 83,13,114,13,103,3,41,14,218,10,77,111,100,117,108,101, + 83,112,101,99,105,50,2,0,0,97,112,5,0,0,84,104, + 101,32,115,112,101,99,105,102,105,99,97,116,105,111,110,32, + 102,111,114,32,97,32,109,111,100,117,108,101,44,32,117,115, + 101,100,32,102,111,114,32,108,111,97,100,105,110,103,46,10, + 10,65,32,109,111,100,117,108,101,39,115,32,115,112,101,99, + 32,105,115,32,116,104,101,32,115,111,117,114,99,101,32,102, + 111,114,32,105,110,102,111,114,109,97,116,105,111,110,32,97, + 98,111,117,116,32,116,104,101,32,109,111,100,117,108,101,46, + 32,32,70,111,114,10,100,97,116,97,32,97,115,115,111,99, + 105,97,116,101,100,32,119,105,116,104,32,116,104,101,32,109, + 111,100,117,108,101,44,32,105,110,99,108,117,100,105,110,103, + 32,115,111,117,114,99,101,44,32,117,115,101,32,116,104,101, + 32,115,112,101,99,39,115,10,108,111,97,100,101,114,46,10, + 10,96,110,97,109,101,96,32,105,115,32,116,104,101,32,97, + 98,115,111,108,117,116,101,32,110,97,109,101,32,111,102,32, + 116,104,101,32,109,111,100,117,108,101,46,32,32,96,108,111, + 97,100,101,114,96,32,105,115,32,116,104,101,32,108,111,97, + 100,101,114,10,116,111,32,117,115,101,32,119,104,101,110,32, + 108,111,97,100,105,110,103,32,116,104,101,32,109,111,100,117, + 108,101,46,32,32,96,112,97,114,101,110,116,96,32,105,115, + 32,116,104,101,32,110,97,109,101,32,111,102,32,116,104,101, + 10,112,97,99,107,97,103,101,32,116,104,101,32,109,111,100, + 117,108,101,32,105,115,32,105,110,46,32,32,84,104,101,32, + 112,97,114,101,110,116,32,105,115,32,100,101,114,105,118,101, + 100,32,102,114,111,109,32,116,104,101,32,110,97,109,101,46, + 10,10,96,105,115,95,112,97,99,107,97,103,101,96,32,100, + 101,116,101,114,109,105,110,101,115,32,105,102,32,116,104,101, + 32,109,111,100,117,108,101,32,105,115,32,99,111,110,115,105, + 100,101,114,101,100,32,97,32,112,97,99,107,97,103,101,32, + 111,114,10,110,111,116,46,32,32,79,110,32,109,111,100,117, + 108,101,115,32,116,104,105,115,32,105,115,32,114,101,102,108, + 101,99,116,101,100,32,98,121,32,116,104,101,32,96,95,95, + 112,97,116,104,95,95,96,32,97,116,116,114,105,98,117,116, + 101,46,10,10,96,111,114,105,103,105,110,96,32,105,115,32, + 116,104,101,32,115,112,101,99,105,102,105,99,32,108,111,99, + 97,116,105,111,110,32,117,115,101,100,32,98,121,32,116,104, + 101,32,108,111,97,100,101,114,32,102,114,111,109,32,119,104, + 105,99,104,32,116,111,10,108,111,97,100,32,116,104,101,32, + 109,111,100,117,108,101,44,32,105,102,32,116,104,97,116,32, + 105,110,102,111,114,109,97,116,105,111,110,32,105,115,32,97, + 118,97,105,108,97,98,108,101,46,32,32,87,104,101,110,32, + 102,105,108,101,110,97,109,101,32,105,115,10,115,101,116,44, + 32,111,114,105,103,105,110,32,119,105,108,108,32,109,97,116, + 99,104,46,10,10,96,104,97,115,95,108,111,99,97,116,105, + 111,110,96,32,105,110,100,105,99,97,116,101,115,32,116,104, + 97,116,32,97,32,115,112,101,99,39,115,32,34,111,114,105, + 103,105,110,34,32,114,101,102,108,101,99,116,115,32,97,32, + 108,111,99,97,116,105,111,110,46,10,87,104,101,110,32,116, + 104,105,115,32,105,115,32,84,114,117,101,44,32,96,95,95, + 102,105,108,101,95,95,96,32,97,116,116,114,105,98,117,116, + 101,32,111,102,32,116,104,101,32,109,111,100,117,108,101,32, + 105,115,32,115,101,116,46,10,10,96,99,97,99,104,101,100, + 96,32,105,115,32,116,104,101,32,108,111,99,97,116,105,111, + 110,32,111,102,32,116,104,101,32,99,97,99,104,101,100,32, + 98,121,116,101,99,111,100,101,32,102,105,108,101,44,32,105, + 102,32,97,110,121,46,32,32,73,116,10,99,111,114,114,101, + 115,112,111,110,100,115,32,116,111,32,116,104,101,32,96,95, + 95,99,97,99,104,101,100,95,95,96,32,97,116,116,114,105, + 98,117,116,101,46,10,10,96,115,117,98,109,111,100,117,108, + 101,95,115,101,97,114,99,104,95,108,111,99,97,116,105,111, + 110,115,96,32,105,115,32,116,104,101,32,115,101,113,117,101, + 110,99,101,32,111,102,32,112,97,116,104,32,101,110,116,114, + 105,101,115,32,116,111,10,115,101,97,114,99,104,32,119,104, + 101,110,32,105,109,112,111,114,116,105,110,103,32,115,117,98, + 109,111,100,117,108,101,115,46,32,32,73,102,32,115,101,116, + 44,32,105,115,95,112,97,99,107,97,103,101,32,115,104,111, + 117,108,100,32,98,101,10,84,114,117,101,45,45,97,110,100, + 32,70,97,108,115,101,32,111,116,104,101,114,119,105,115,101, + 46,10,10,80,97,99,107,97,103,101,115,32,97,114,101,32, + 115,105,109,112,108,121,32,109,111,100,117,108,101,115,32,116, + 104,97,116,32,40,109,97,121,41,32,104,97,118,101,32,115, + 117,98,109,111,100,117,108,101,115,46,32,32,73,102,32,97, + 32,115,112,101,99,10,104,97,115,32,97,32,110,111,110,45, + 78,111,110,101,32,118,97,108,117,101,32,105,110,32,96,115, + 117,98,109,111,100,117,108,101,95,115,101,97,114,99,104,95, + 108,111,99,97,116,105,111,110,115,96,44,32,116,104,101,32, + 105,109,112,111,114,116,10,115,121,115,116,101,109,32,119,105, + 108,108,32,99,111,110,115,105,100,101,114,32,109,111,100,117, + 108,101,115,32,108,111,97,100,101,100,32,102,114,111,109,32, + 116,104,101,32,115,112,101,99,32,97,115,32,112,97,99,107, + 97,103,101,115,46,10,10,79,110,108,121,32,102,105,110,100, + 101,114,115,32,40,115,101,101,32,105,109,112,111,114,116,108, + 105,98,46,97,98,99,46,77,101,116,97,80,97,116,104,70, + 105,110,100,101,114,32,97,110,100,10,105,109,112,111,114,116, + 108,105,98,46,97,98,99,46,80,97,116,104,69,110,116,114, + 121,70,105,110,100,101,114,41,32,115,104,111,117,108,100,32, + 109,111,100,105,102,121,32,77,111,100,117,108,101,83,112,101, + 99,32,105,110,115,116,97,110,99,101,115,46,10,10,78,41, + 3,218,6,111,114,105,103,105,110,218,12,108,111,97,100,101, + 114,95,115,116,97,116,101,218,10,105,115,95,112,97,99,107, + 97,103,101,99,3,0,0,0,0,0,0,0,3,0,0,0, + 2,0,0,0,3,0,0,0,243,126,0,0,0,149,0,88, + 16,108,0,0,0,0,0,0,0,0,0,88,32,108,1,0, + 0,0,0,0,0,0,0,88,48,108,2,0,0,0,0,0, + 0,0,0,88,64,108,3,0,0,0,0,0,0,0,0,85, + 5,40,0,0,0,0,0,0,0,97,2,0,0,47,0,79, + 1,83,0,85,0,108,4,0,0,0,0,0,0,0,0,47, + 0,85,0,108,5,0,0,0,0,0,0,0,0,83,1,85, + 0,108,6,0,0,0,0,0,0,0,0,83,0,85,0,108, + 7,0,0,0,0,0,0,0,0,103,0,169,2,78,70,41, + 8,114,26,0,0,0,114,246,0,0,0,114,251,0,0,0, + 114,252,0,0,0,218,26,115,117,98,109,111,100,117,108,101, + 95,115,101,97,114,99,104,95,108,111,99,97,116,105,111,110, + 115,218,25,95,117,110,105,110,105,116,105,97,108,105,122,101, + 100,95,115,117,98,109,111,100,117,108,101,115,218,13,95,115, + 101,116,95,102,105,108,101,97,116,116,114,218,7,95,99,97, + 99,104,101,100,41,6,114,49,0,0,0,114,26,0,0,0, + 114,246,0,0,0,114,251,0,0,0,114,252,0,0,0,114, + 253,0,0,0,115,6,0,0,0,32,32,32,32,32,32,114, + 7,0,0,0,114,53,0,0,0,218,19,77,111,100,117,108, + 101,83,112,101,99,46,95,95,105,110,105,116,95,95,87,2, + 0,0,115,60,0,0,0,128,0,224,20,24,140,9,216,22, + 28,140,11,216,22,28,140,11,216,28,40,212,8,25,222,48, + 58,169,34,192,4,136,4,212,8,39,216,41,43,136,4,212, + 8,38,240,6,0,30,35,136,4,212,8,26,216,23,27,136, + 4,141,12,114,22,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,5,0,0,0,3,0,0,0,243,70,1, + 0,0,149,0,83,1,85,0,82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,60,2,14,0, + 51,2,83,2,85,0,82,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,60,2,14,0,51,2, + 47,2,110,1,85,0,82,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,98,31,0,0,85,1, + 82,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,3,85,0,82,4,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,60,2,14,0, + 51,2,53,1,0,0,0,0,0,0,32,0,85,0,82,8, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,98,30,0,0,85,1,82,7,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,4,85,0, + 82,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,14,0,51,2,53,1,0,0,0,0,0,0, + 32,0,85,0,82,10,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,12,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,14,0,83,5, + 83,6,82,15,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,1,53,1,0,0,0,0,0,0, + 14,0,83,7,51,4,36,0,41,8,78,122,5,110,97,109, + 101,61,122,7,108,111,97,100,101,114,61,122,7,111,114,105, + 103,105,110,61,122,27,115,117,98,109,111,100,117,108,101,95, + 115,101,97,114,99,104,95,108,111,99,97,116,105,111,110,115, + 61,218,1,40,122,2,44,32,218,1,41,41,8,114,26,0, + 0,0,114,246,0,0,0,114,251,0,0,0,114,58,0,0, + 0,114,0,1,0,0,114,50,0,0,0,114,11,0,0,0, + 218,4,106,111,105,110,41,2,114,49,0,0,0,114,105,0, + 0,0,115,2,0,0,0,32,32,114,7,0,0,0,114,154, + 0,0,0,218,19,77,111,100,117,108,101,83,112,101,99,46, + 95,95,114,101,112,114,95,95,100,2,0,0,115,145,0,0, + 0,128,0,216,18,23,152,4,159,9,153,9,145,125,208,16, + 37,168,23,176,20,183,27,177,27,177,15,208,39,64,208,15, + 65,136,4,216,11,15,143,59,137,59,209,11,34,216,12,16, + 143,75,137,75,152,39,160,36,167,43,161,43,161,31,208,24, + 49,212,12,50,216,11,15,215,11,42,209,11,42,209,11,54, + 216,12,16,143,75,137,75,208,26,53,176,100,215,54,85,209, + 54,85,208,53,86,208,24,87,212,12,88,216,18,22,151,46, + 145,46,215,18,41,209,18,41,208,17,42,168,33,168,68,175, + 73,169,73,176,100,171,79,208,43,60,184,65,208,15,62,208, + 8,62,114,22,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,164,1,0, + 0,149,0,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,110,2,30,0,85,0,82, 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,1,107,92,0,0,114,63,124, - 0,106,7,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,1,171,1,0,0,0,0,0,0,115, - 5,100,2,124,0,122,0,0,0,125,0,116,9,0,0,0, - 0,0,0,0,0,2,0,124,0,106,10,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,2,142, - 0,116,0,0,0,0,0,0,0,0,0,106,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172, - 3,171,2,0,0,0,0,0,0,1,0,121,4,121,4,41, - 5,122,61,80,114,105,110,116,32,116,104,101,32,109,101,115, - 115,97,103,101,32,116,111,32,115,116,100,101,114,114,32,105, - 102,32,45,118,47,80,89,84,72,79,78,86,69,82,66,79, - 83,69,32,105,115,32,116,117,114,110,101,100,32,111,110,46, - 41,2,218,1,35,122,7,105,109,112,111,114,116,32,122,2, - 35,32,41,1,218,4,102,105,108,101,78,41,7,114,24,0, - 0,0,218,5,102,108,97,103,115,218,7,118,101,114,98,111, - 115,101,218,10,115,116,97,114,116,115,119,105,116,104,218,5, - 112,114,105,110,116,218,6,102,111,114,109,97,116,218,6,115, - 116,100,101,114,114,41,3,218,7,109,101,115,115,97,103,101, - 114,162,0,0,0,114,90,0,0,0,115,3,0,0,0,32, - 32,32,114,7,0,0,0,218,16,95,118,101,114,98,111,115, - 101,95,109,101,115,115,97,103,101,114,173,0,0,0,235,1, - 0,0,115,74,0,0,0,128,0,228,7,10,135,121,129,121, - 215,7,24,209,7,24,152,73,210,7,37,216,15,22,215,15, - 33,209,15,33,208,34,50,212,15,51,216,22,26,152,87,145, - 110,136,71,220,8,13,136,110,136,103,143,110,137,110,152,100, - 208,14,35,172,35,175,42,169,42,214,8,53,240,7,0,8, - 38,114,22,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,42,0,0,0, - 135,0,151,0,136,0,102,1,100,1,132,8,125,1,116,1, - 0,0,0,0,0,0,0,0,124,1,137,0,171,2,0,0, - 0,0,0,0,1,0,124,1,83,0,41,2,122,49,68,101, - 99,111,114,97,116,111,114,32,116,111,32,118,101,114,105,102, - 121,32,116,104,101,32,110,97,109,101,100,32,109,111,100,117, - 108,101,32,105,115,32,98,117,105,108,116,45,105,110,46,99, - 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 19,0,0,0,243,90,0,0,0,149,1,151,0,124,1,116, - 0,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,118,1,114, - 16,116,5,0,0,0,0,0,0,0,0,124,1,155,2,100, - 1,157,2,124,1,172,2,171,2,0,0,0,0,0,0,130, - 1,2,0,137,2,124,0,124,1,171,2,0,0,0,0,0, - 0,83,0,41,3,78,250,25,32,105,115,32,110,111,116,32, - 97,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108, - 101,114,25,0,0,0,41,3,114,24,0,0,0,218,20,98, - 117,105,108,116,105,110,95,109,111,100,117,108,101,95,110,97, - 109,101,115,218,11,73,109,112,111,114,116,69,114,114,111,114, - 169,3,114,44,0,0,0,218,8,102,117,108,108,110,97,109, - 101,218,3,102,120,110,115,3,0,0,0,32,32,128,114,7, - 0,0,0,218,25,95,114,101,113,117,105,114,101,115,95,98, - 117,105,108,116,105,110,95,119,114,97,112,112,101,114,122,52, - 95,114,101,113,117,105,114,101,115,95,98,117,105,108,116,105, - 110,46,60,108,111,99,97,108,115,62,46,95,114,101,113,117, - 105,114,101,115,95,98,117,105,108,116,105,110,95,119,114,97, - 112,112,101,114,245,1,0,0,115,56,0,0,0,248,128,0, - 216,11,19,156,51,215,27,51,209,27,51,209,11,51,220,18, - 29,160,24,160,12,208,44,69,208,30,70,216,35,43,244,3, - 1,19,45,240,0,1,13,45,225,15,18,144,52,152,24,211, - 15,34,208,8,34,114,22,0,0,0,169,1,114,21,0,0, - 0,41,2,114,181,0,0,0,114,182,0,0,0,115,2,0, - 0,0,96,32,114,7,0,0,0,218,17,95,114,101,113,117, - 105,114,101,115,95,98,117,105,108,116,105,110,114,184,0,0, - 0,243,1,0,0,115,27,0,0,0,248,128,0,244,4,4, - 5,35,244,10,0,5,10,208,10,35,160,83,212,4,41,216, - 11,36,208,4,36,114,22,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, - 42,0,0,0,135,0,151,0,136,0,102,1,100,1,132,8, - 125,1,116,1,0,0,0,0,0,0,0,0,124,1,137,0, - 171,2,0,0,0,0,0,0,1,0,124,1,83,0,41,2, - 122,47,68,101,99,111,114,97,116,111,114,32,116,111,32,118, - 101,114,105,102,121,32,116,104,101,32,110,97,109,101,100,32, - 109,111,100,117,108,101,32,105,115,32,102,114,111,122,101,110, - 46,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,19,0,0,0,243,96,0,0,0,149,1,151,0,116, - 0,0,0,0,0,0,0,0,0,106,3,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,171, - 1,0,0,0,0,0,0,115,16,116,5,0,0,0,0,0, - 0,0,0,124,1,155,2,100,1,157,2,124,1,172,2,171, - 2,0,0,0,0,0,0,130,1,2,0,137,2,124,0,124, - 1,171,2,0,0,0,0,0,0,83,0,41,3,78,122,23, - 32,105,115,32,110,111,116,32,97,32,102,114,111,122,101,110, - 32,109,111,100,117,108,101,114,25,0,0,0,41,3,114,151, - 0,0,0,218,9,105,115,95,102,114,111,122,101,110,114,178, - 0,0,0,114,179,0,0,0,115,3,0,0,0,32,32,128, - 114,7,0,0,0,218,24,95,114,101,113,117,105,114,101,115, - 95,102,114,111,122,101,110,95,119,114,97,112,112,101,114,122, - 50,95,114,101,113,117,105,114,101,115,95,102,114,111,122,101, - 110,46,60,108,111,99,97,108,115,62,46,95,114,101,113,117, - 105,114,101,115,95,102,114,111,122,101,110,95,119,114,97,112, - 112,101,114,0,2,0,0,115,54,0,0,0,248,128,0,220, - 15,19,143,126,137,126,152,104,212,15,39,220,18,29,160,24, - 160,12,208,44,67,208,30,68,216,35,43,244,3,1,19,45, - 240,0,1,13,45,225,15,18,144,52,152,24,211,15,34,208, - 8,34,114,22,0,0,0,114,183,0,0,0,41,2,114,181, - 0,0,0,114,188,0,0,0,115,2,0,0,0,96,32,114, - 7,0,0,0,218,16,95,114,101,113,117,105,114,101,115,95, - 102,114,111,122,101,110,114,189,0,0,0,254,1,0,0,115, - 27,0,0,0,248,128,0,244,4,4,5,35,244,10,0,5, - 10,208,10,34,160,67,212,4,40,216,11,35,208,4,35,114, - 22,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,243,240,0,0,0,151,0, - 100,1,125,2,116,0,0,0,0,0,0,0,0,0,106,3, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,2,116,4,0,0,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,1,0,116,7,0,0,0,0,0,0, - 0,0,124,1,124,0,171,2,0,0,0,0,0,0,125,3, - 124,1,116,8,0,0,0,0,0,0,0,0,106,10,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 118,0,114,50,116,8,0,0,0,0,0,0,0,0,106,10, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,1,25,0,0,0,125,4,116,13,0,0,0,0, - 0,0,0,0,124,3,124,4,171,2,0,0,0,0,0,0, - 1,0,116,8,0,0,0,0,0,0,0,0,106,10,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,25,0,0,0,83,0,116,15,0,0,0,0,0,0, - 0,0,124,3,171,1,0,0,0,0,0,0,83,0,41,2, - 122,130,76,111,97,100,32,116,104,101,32,115,112,101,99,105, - 102,105,101,100,32,109,111,100,117,108,101,32,105,110,116,111, - 32,115,121,115,46,109,111,100,117,108,101,115,32,97,110,100, - 32,114,101,116,117,114,110,32,105,116,46,10,10,32,32,32, - 32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,32, - 100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,101, - 32,108,111,97,100,101,114,46,101,120,101,99,95,109,111,100, - 117,108,101,40,41,32,105,110,115,116,101,97,100,46,10,10, - 32,32,32,32,122,103,116,104,101,32,108,111,97,100,95,109, - 111,100,117,108,101,40,41,32,109,101,116,104,111,100,32,105, - 115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,100, - 32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,111, - 118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,46, - 49,53,59,32,117,115,101,32,101,120,101,99,95,109,111,100, - 117,108,101,40,41,32,105,110,115,116,101,97,100,41,8,218, - 9,95,119,97,114,110,105,110,103,115,218,4,119,97,114,110, - 218,18,68,101,112,114,101,99,97,116,105,111,110,87,97,114, - 110,105,110,103,218,16,115,112,101,99,95,102,114,111,109,95, - 108,111,97,100,101,114,114,24,0,0,0,218,7,109,111,100, - 117,108,101,115,218,5,95,101,120,101,99,218,5,95,108,111, - 97,100,41,5,114,44,0,0,0,114,180,0,0,0,218,3, - 109,115,103,218,4,115,112,101,99,218,6,109,111,100,117,108, - 101,115,5,0,0,0,32,32,32,32,32,114,7,0,0,0, - 218,17,95,108,111,97,100,95,109,111,100,117,108,101,95,115, - 104,105,109,114,201,0,0,0,10,2,0,0,115,97,0,0, - 0,128,0,240,12,1,12,52,128,67,228,4,13,135,78,129, - 78,144,51,212,24,42,212,4,43,220,11,27,152,72,160,100, - 211,11,43,128,68,216,7,15,148,51,151,59,145,59,209,7, - 30,220,17,20,151,27,145,27,152,88,209,17,38,136,6,220, - 8,13,136,100,144,70,212,8,27,220,15,18,143,123,137,123, - 152,56,209,15,36,208,8,36,228,15,20,144,84,139,123,208, - 8,26,114,22,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,6,0,0,0,3,0,0,0,243,252,0,0, - 0,151,0,116,1,0,0,0,0,0,0,0,0,124,0,100, - 1,100,2,171,3,0,0,0,0,0,0,125,1,116,1,0, - 0,0,0,0,0,0,0,124,0,100,3,100,2,171,3,0, - 0,0,0,0,0,120,1,125,2,114,11,116,3,0,0,0, - 0,0,0,0,0,124,2,171,1,0,0,0,0,0,0,83, - 0,9,0,124,0,106,4,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,125,3,9,0,124,0,106, + 0,0,0,85,1,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,58,72,0,0,61,1,40, + 0,0,0,0,0,0,0,97,142,0,0,32,0,85,0,82, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,1,82,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,58,72,0,0,61,1,40, + 0,0,0,0,0,0,0,97,110,0,0,32,0,85,0,82, + 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,1,82,6,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,58,72,0,0,61,1,40, + 0,0,0,0,0,0,0,97,78,0,0,32,0,88,33,82, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,58,72,0,0,61,1,40,0,0,0,0,0,0, + 0,97,57,0,0,32,0,85,0,82,8,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,82, 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,125,4,100,5,124,3,155,2,100,6,124,4,155, - 2,100,7,157,5,83,0,35,0,116,6,0,0,0,0,0, - 0,0,0,36,0,114,5,1,0,100,4,125,3,89,0,140, - 35,119,0,120,3,89,0,119,1,35,0,116,6,0,0,0, - 0,0,0,0,0,36,0,114,22,1,0,124,1,128,8,100, - 5,124,3,155,2,100,7,157,3,99,2,89,0,83,0,100, - 5,124,3,155,2,100,8,124,1,155,2,100,9,157,5,99, - 2,89,0,83,0,119,0,120,3,89,0,119,1,41,10,122, - 44,84,104,101,32,105,109,112,108,101,109,101,110,116,97,116, - 105,111,110,32,111,102,32,77,111,100,117,108,101,84,121,112, - 101,46,95,95,114,101,112,114,95,95,40,41,46,218,10,95, - 95,108,111,97,100,101,114,95,95,78,218,8,95,95,115,112, - 101,99,95,95,218,1,63,250,8,60,109,111,100,117,108,101, - 32,250,6,32,102,114,111,109,32,218,1,62,250,2,32,40, - 250,2,41,62,41,5,114,15,0,0,0,218,22,95,109,111, - 100,117,108,101,95,114,101,112,114,95,102,114,111,109,95,115, - 112,101,99,114,11,0,0,0,114,4,0,0,0,218,8,95, - 95,102,105,108,101,95,95,41,5,114,200,0,0,0,218,6, - 108,111,97,100,101,114,114,199,0,0,0,114,26,0,0,0, - 218,8,102,105,108,101,110,97,109,101,115,5,0,0,0,32, - 32,32,32,32,114,7,0,0,0,218,12,95,109,111,100,117, - 108,101,95,114,101,112,114,114,215,0,0,0,29,2,0,0, - 115,177,0,0,0,128,0,228,13,20,144,86,152,92,168,52, - 211,13,48,128,70,220,15,22,144,118,152,122,168,52,211,15, - 48,208,7,48,128,116,208,7,48,220,15,37,160,100,211,15, - 43,208,8,43,240,4,3,5,19,216,15,21,143,127,137,127, - 136,4,240,6,8,5,54,216,19,25,151,63,145,63,136,8, - 240,14,0,18,26,152,36,152,24,160,22,168,8,160,124,176, - 49,208,15,53,208,8,53,248,244,21,0,12,26,242,0,1, - 5,19,216,15,18,138,4,240,3,1,5,19,251,244,8,0, - 12,26,242,0,4,5,53,216,11,17,136,62,216,21,29,152, - 100,152,88,160,81,208,19,39,210,12,39,224,21,29,152,100, - 152,88,160,82,168,6,160,122,176,18,208,19,52,210,12,52, - 240,9,4,5,53,250,115,40,0,0,0,169,12,65,11,0, - 182,12,65,28,0,193,11,11,65,25,3,193,24,1,65,25, - 3,193,28,17,65,59,3,193,47,9,65,59,3,193,58,1, - 65,59,3,99,0,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,0,0,0,0,243,164,0,0,0,151,0,101, - 0,90,1,100,0,90,2,100,1,90,3,100,2,100,2,100, - 2,100,3,156,3,100,4,132,2,90,4,100,5,132,0,90, - 5,100,6,132,0,90,6,101,7,100,7,132,0,171,0,0, - 0,0,0,0,0,90,8,101,8,106,18,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,8,132, - 0,171,0,0,0,0,0,0,0,90,8,101,7,100,9,132, - 0,171,0,0,0,0,0,0,0,90,10,101,7,100,10,132, - 0,171,0,0,0,0,0,0,0,90,11,101,11,106,18,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,11,132,0,171,0,0,0,0,0,0,0,90,11,121, - 2,41,12,218,10,77,111,100,117,108,101,83,112,101,99,97, - 208,5,0,0,84,104,101,32,115,112,101,99,105,102,105,99, - 97,116,105,111,110,32,102,111,114,32,97,32,109,111,100,117, - 108,101,44,32,117,115,101,100,32,102,111,114,32,108,111,97, - 100,105,110,103,46,10,10,32,32,32,32,65,32,109,111,100, - 117,108,101,39,115,32,115,112,101,99,32,105,115,32,116,104, - 101,32,115,111,117,114,99,101,32,102,111,114,32,105,110,102, - 111,114,109,97,116,105,111,110,32,97,98,111,117,116,32,116, - 104,101,32,109,111,100,117,108,101,46,32,32,70,111,114,10, - 32,32,32,32,100,97,116,97,32,97,115,115,111,99,105,97, - 116,101,100,32,119,105,116,104,32,116,104,101,32,109,111,100, - 117,108,101,44,32,105,110,99,108,117,100,105,110,103,32,115, - 111,117,114,99,101,44,32,117,115,101,32,116,104,101,32,115, - 112,101,99,39,115,10,32,32,32,32,108,111,97,100,101,114, - 46,10,10,32,32,32,32,96,110,97,109,101,96,32,105,115, - 32,116,104,101,32,97,98,115,111,108,117,116,101,32,110,97, - 109,101,32,111,102,32,116,104,101,32,109,111,100,117,108,101, - 46,32,32,96,108,111,97,100,101,114,96,32,105,115,32,116, - 104,101,32,108,111,97,100,101,114,10,32,32,32,32,116,111, - 32,117,115,101,32,119,104,101,110,32,108,111,97,100,105,110, - 103,32,116,104,101,32,109,111,100,117,108,101,46,32,32,96, - 112,97,114,101,110,116,96,32,105,115,32,116,104,101,32,110, - 97,109,101,32,111,102,32,116,104,101,10,32,32,32,32,112, - 97,99,107,97,103,101,32,116,104,101,32,109,111,100,117,108, - 101,32,105,115,32,105,110,46,32,32,84,104,101,32,112,97, - 114,101,110,116,32,105,115,32,100,101,114,105,118,101,100,32, - 102,114,111,109,32,116,104,101,32,110,97,109,101,46,10,10, - 32,32,32,32,96,105,115,95,112,97,99,107,97,103,101,96, - 32,100,101,116,101,114,109,105,110,101,115,32,105,102,32,116, - 104,101,32,109,111,100,117,108,101,32,105,115,32,99,111,110, - 115,105,100,101,114,101,100,32,97,32,112,97,99,107,97,103, - 101,32,111,114,10,32,32,32,32,110,111,116,46,32,32,79, - 110,32,109,111,100,117,108,101,115,32,116,104,105,115,32,105, - 115,32,114,101,102,108,101,99,116,101,100,32,98,121,32,116, - 104,101,32,96,95,95,112,97,116,104,95,95,96,32,97,116, - 116,114,105,98,117,116,101,46,10,10,32,32,32,32,96,111, - 114,105,103,105,110,96,32,105,115,32,116,104,101,32,115,112, - 101,99,105,102,105,99,32,108,111,99,97,116,105,111,110,32, - 117,115,101,100,32,98,121,32,116,104,101,32,108,111,97,100, - 101,114,32,102,114,111,109,32,119,104,105,99,104,32,116,111, - 10,32,32,32,32,108,111,97,100,32,116,104,101,32,109,111, - 100,117,108,101,44,32,105,102,32,116,104,97,116,32,105,110, - 102,111,114,109,97,116,105,111,110,32,105,115,32,97,118,97, - 105,108,97,98,108,101,46,32,32,87,104,101,110,32,102,105, - 108,101,110,97,109,101,32,105,115,10,32,32,32,32,115,101, - 116,44,32,111,114,105,103,105,110,32,119,105,108,108,32,109, - 97,116,99,104,46,10,10,32,32,32,32,96,104,97,115,95, - 108,111,99,97,116,105,111,110,96,32,105,110,100,105,99,97, - 116,101,115,32,116,104,97,116,32,97,32,115,112,101,99,39, - 115,32,34,111,114,105,103,105,110,34,32,114,101,102,108,101, - 99,116,115,32,97,32,108,111,99,97,116,105,111,110,46,10, - 32,32,32,32,87,104,101,110,32,116,104,105,115,32,105,115, - 32,84,114,117,101,44,32,96,95,95,102,105,108,101,95,95, - 96,32,97,116,116,114,105,98,117,116,101,32,111,102,32,116, - 104,101,32,109,111,100,117,108,101,32,105,115,32,115,101,116, - 46,10,10,32,32,32,32,96,99,97,99,104,101,100,96,32, - 105,115,32,116,104,101,32,108,111,99,97,116,105,111,110,32, - 111,102,32,116,104,101,32,99,97,99,104,101,100,32,98,121, - 116,101,99,111,100,101,32,102,105,108,101,44,32,105,102,32, - 97,110,121,46,32,32,73,116,10,32,32,32,32,99,111,114, - 114,101,115,112,111,110,100,115,32,116,111,32,116,104,101,32, - 96,95,95,99,97,99,104,101,100,95,95,96,32,97,116,116, - 114,105,98,117,116,101,46,10,10,32,32,32,32,96,115,117, - 98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,108, - 111,99,97,116,105,111,110,115,96,32,105,115,32,116,104,101, - 32,115,101,113,117,101,110,99,101,32,111,102,32,112,97,116, - 104,32,101,110,116,114,105,101,115,32,116,111,10,32,32,32, - 32,115,101,97,114,99,104,32,119,104,101,110,32,105,109,112, - 111,114,116,105,110,103,32,115,117,98,109,111,100,117,108,101, - 115,46,32,32,73,102,32,115,101,116,44,32,105,115,95,112, - 97,99,107,97,103,101,32,115,104,111,117,108,100,32,98,101, - 10,32,32,32,32,84,114,117,101,45,45,97,110,100,32,70, - 97,108,115,101,32,111,116,104,101,114,119,105,115,101,46,10, - 10,32,32,32,32,80,97,99,107,97,103,101,115,32,97,114, - 101,32,115,105,109,112,108,121,32,109,111,100,117,108,101,115, - 32,116,104,97,116,32,40,109,97,121,41,32,104,97,118,101, - 32,115,117,98,109,111,100,117,108,101,115,46,32,32,73,102, - 32,97,32,115,112,101,99,10,32,32,32,32,104,97,115,32, - 97,32,110,111,110,45,78,111,110,101,32,118,97,108,117,101, - 32,105,110,32,96,115,117,98,109,111,100,117,108,101,95,115, - 101,97,114,99,104,95,108,111,99,97,116,105,111,110,115,96, - 44,32,116,104,101,32,105,109,112,111,114,116,10,32,32,32, - 32,115,121,115,116,101,109,32,119,105,108,108,32,99,111,110, - 115,105,100,101,114,32,109,111,100,117,108,101,115,32,108,111, - 97,100,101,100,32,102,114,111,109,32,116,104,101,32,115,112, - 101,99,32,97,115,32,112,97,99,107,97,103,101,115,46,10, - 10,32,32,32,32,79,110,108,121,32,102,105,110,100,101,114, - 115,32,40,115,101,101,32,105,109,112,111,114,116,108,105,98, - 46,97,98,99,46,77,101,116,97,80,97,116,104,70,105,110, - 100,101,114,32,97,110,100,10,32,32,32,32,105,109,112,111, - 114,116,108,105,98,46,97,98,99,46,80,97,116,104,69,110, - 116,114,121,70,105,110,100,101,114,41,32,115,104,111,117,108, - 100,32,109,111,100,105,102,121,32,77,111,100,117,108,101,83, - 112,101,99,32,105,110,115,116,97,110,99,101,115,46,10,10, - 32,32,32,32,78,41,3,218,6,111,114,105,103,105,110,218, - 12,108,111,97,100,101,114,95,115,116,97,116,101,218,10,105, - 115,95,112,97,99,107,97,103,101,99,3,0,0,0,0,0, - 0,0,3,0,0,0,2,0,0,0,3,0,0,0,243,124, - 0,0,0,151,0,124,1,124,0,95,0,0,0,0,0,0, - 0,0,0,124,2,124,0,95,1,0,0,0,0,0,0,0, - 0,124,3,124,0,95,2,0,0,0,0,0,0,0,0,124, - 4,124,0,95,3,0,0,0,0,0,0,0,0,124,5,114, - 2,103,0,110,1,100,0,124,0,95,4,0,0,0,0,0, - 0,0,0,103,0,124,0,95,5,0,0,0,0,0,0,0, - 0,100,1,124,0,95,6,0,0,0,0,0,0,0,0,100, - 0,124,0,95,7,0,0,0,0,0,0,0,0,121,0,169, - 2,78,70,41,8,114,26,0,0,0,114,213,0,0,0,114, - 218,0,0,0,114,219,0,0,0,218,26,115,117,98,109,111, - 100,117,108,101,95,115,101,97,114,99,104,95,108,111,99,97, - 116,105,111,110,115,218,25,95,117,110,105,110,105,116,105,97, - 108,105,122,101,100,95,115,117,98,109,111,100,117,108,101,115, - 218,13,95,115,101,116,95,102,105,108,101,97,116,116,114,218, - 7,95,99,97,99,104,101,100,41,6,114,44,0,0,0,114, - 26,0,0,0,114,213,0,0,0,114,218,0,0,0,114,219, - 0,0,0,114,220,0,0,0,115,6,0,0,0,32,32,32, - 32,32,32,114,7,0,0,0,114,47,0,0,0,122,19,77, - 111,100,117,108,101,83,112,101,99,46,95,95,105,110,105,116, - 95,95,87,2,0,0,115,68,0,0,0,128,0,224,20,24, - 136,4,140,9,216,22,28,136,4,140,11,216,22,28,136,4, - 140,11,216,28,40,136,4,212,8,25,217,48,58,169,34,192, - 4,136,4,212,8,39,216,41,43,136,4,212,8,38,240,6, - 0,30,35,136,4,212,8,26,216,23,27,136,4,141,12,114, - 22,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,5,0,0,0,3,0,0,0,243,60,1,0,0,151,0, - 100,1,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,155,2,157,2,100,2,124,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,155,2,157,2,103,2,125,1,124,0,106,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,129,30,124,1,106,7,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,3,124,0,106,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,155,2,157,2,171,1,0,0,0,0,0,0,1,0, - 124,0,106,8,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,129,30,124,1,106,7,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,4, - 124,0,106,8,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,155,0,157,2,171,1,0,0,0,0, - 0,0,1,0,124,0,106,10,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,12,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,155,0, - 100,5,100,6,106,15,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,171,1,0,0,0,0, - 0,0,155,0,100,7,157,4,83,0,41,8,78,122,5,110, - 97,109,101,61,122,7,108,111,97,100,101,114,61,122,7,111, - 114,105,103,105,110,61,122,27,115,117,98,109,111,100,117,108, - 101,95,115,101,97,114,99,104,95,108,111,99,97,116,105,111, - 110,115,61,218,1,40,122,2,44,32,218,1,41,41,8,114, - 26,0,0,0,114,213,0,0,0,114,218,0,0,0,114,51, - 0,0,0,114,223,0,0,0,114,45,0,0,0,114,11,0, - 0,0,218,4,106,111,105,110,41,2,114,44,0,0,0,114, - 90,0,0,0,115,2,0,0,0,32,32,114,7,0,0,0, - 114,132,0,0,0,122,19,77,111,100,117,108,101,83,112,101, - 99,46,95,95,114,101,112,114,95,95,100,2,0,0,115,145, - 0,0,0,128,0,216,18,23,152,4,159,9,153,9,144,125, - 208,16,37,168,23,176,20,183,27,177,27,176,15,208,39,64, - 208,15,65,136,4,216,11,15,143,59,137,59,208,11,34,216, - 12,16,143,75,137,75,152,39,160,36,167,43,161,43,160,31, - 208,24,49,212,12,50,216,11,15,215,11,42,209,11,42,208, - 11,54,216,12,16,143,75,137,75,208,26,53,176,100,215,54, - 85,209,54,85,208,53,86,208,24,87,212,12,88,216,18,22, - 151,46,145,46,215,18,41,209,18,41,208,17,42,168,33,168, - 68,175,73,169,73,176,100,171,79,208,43,60,184,65,208,15, - 62,208,8,62,114,22,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,114, - 1,0,0,151,0,124,0,106,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,125,2,9,0,124, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,1,106,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,107,40,0,0,120, - 1,114,123,1,0,124,0,106,4,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,106,4,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,107,40,0,0,120,1,114,96,1,0,124,0,106,6,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,106,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,107,40,0,0,120,1,114,69,1, - 0,124,2,124,1,106,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,107,40,0,0,120,1,114, - 52,1,0,124,0,106,8,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,106,8,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,107, - 40,0,0,120,1,114,25,1,0,124,0,106,10,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,106,10,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,107,40,0,0,83,0,35,0,116,12,0, - 0,0,0,0,0,0,0,36,0,114,9,1,0,116,14,0, - 0,0,0,0,0,0,0,99,2,89,0,83,0,119,0,120, - 3,89,0,119,1,114,2,0,0,0,41,8,114,223,0,0, - 0,114,26,0,0,0,114,213,0,0,0,114,218,0,0,0, + 0,0,0,58,72,0,0,61,1,40,0,0,0,0,0,0, + 0,97,25,0,0,32,0,85,0,82,10,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,82, + 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,58,72,0,0,36,0,33,0,91,12,0,0,0, + 0,0,0,0,0,7,0,97,9,0,0,32,0,91,14,0, + 0,0,0,0,0,0,0,115,2,31,0,36,0,102,0,61, + 3,31,0,102,1,114,2,0,0,0,41,8,114,0,1,0, + 0,114,26,0,0,0,114,246,0,0,0,114,251,0,0,0, 218,6,99,97,99,104,101,100,218,12,104,97,115,95,108,111, 99,97,116,105,111,110,114,4,0,0,0,218,14,78,111,116, - 73,109,112,108,101,109,101,110,116,101,100,41,3,114,44,0, + 73,109,112,108,101,109,101,110,116,101,100,41,3,114,49,0, 0,0,218,5,111,116,104,101,114,218,4,115,109,115,108,115, 3,0,0,0,32,32,32,114,7,0,0,0,218,6,95,95, - 101,113,95,95,122,17,77,111,100,117,108,101,83,112,101,99, - 46,95,95,101,113,95,95,108,2,0,0,115,175,0,0,0, + 101,113,95,95,218,17,77,111,100,117,108,101,83,112,101,99, + 46,95,95,101,113,95,95,108,2,0,0,115,173,0,0,0, 128,0,216,15,19,215,15,46,209,15,46,136,4,240,2,8, 9,34,216,20,24,151,73,145,73,160,21,167,26,161,26,209, - 20,43,242,0,5,21,60,216,20,24,151,75,145,75,160,53, - 167,60,161,60,209,20,47,242,3,5,21,60,224,20,24,151, - 75,145,75,160,53,167,60,161,60,209,20,47,242,5,5,21, - 60,240,6,0,21,25,152,69,215,28,60,209,28,60,209,20, - 60,242,7,5,21,60,240,8,0,21,25,151,75,145,75,160, - 53,167,60,161,60,209,20,47,242,9,5,21,60,240,10,0, - 21,25,215,20,37,209,20,37,168,21,215,41,59,209,41,59, - 209,20,59,240,11,5,13,61,248,244,12,0,16,30,242,0, - 1,9,34,220,19,33,210,12,33,240,3,1,9,34,250,115, - 18,0,0,0,142,66,21,66,36,0,194,36,15,66,54,3, - 194,53,1,66,54,3,99,1,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,243,194,0,0,0, - 151,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,128,72,124,0,106,2,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 129,60,124,0,106,4,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,114,48,116,6,0,0,0,0, - 0,0,0,0,128,6,116,8,0,0,0,0,0,0,0,0, - 130,1,116,6,0,0,0,0,0,0,0,0,106,11,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,124,0, - 95,0,0,0,0,0,0,0,0,0,124,0,106,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 83,0,114,2,0,0,0,41,6,114,226,0,0,0,114,218, - 0,0,0,114,225,0,0,0,218,19,95,98,111,111,116,115, - 116,114,97,112,95,101,120,116,101,114,110,97,108,218,19,78, - 111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,114, - 111,114,218,11,95,103,101,116,95,99,97,99,104,101,100,114, - 66,0,0,0,115,1,0,0,0,32,114,7,0,0,0,114, - 232,0,0,0,122,17,77,111,100,117,108,101,83,112,101,99, - 46,99,97,99,104,101,100,120,2,0,0,115,74,0,0,0, - 128,0,224,11,15,143,60,137,60,208,11,31,216,15,19,143, - 123,137,123,208,15,38,168,52,215,43,61,210,43,61,220,19, - 38,208,19,46,220,26,45,208,20,45,220,31,50,215,31,62, - 209,31,62,184,116,191,123,185,123,211,31,75,144,4,148,12, - 216,15,19,143,124,137,124,208,8,27,114,22,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 3,0,0,0,243,18,0,0,0,151,0,124,1,124,0,95, - 0,0,0,0,0,0,0,0,0,121,0,114,2,0,0,0, - 41,1,114,226,0,0,0,41,2,114,44,0,0,0,114,232, - 0,0,0,115,2,0,0,0,32,32,114,7,0,0,0,114, - 232,0,0,0,122,17,77,111,100,117,108,101,83,112,101,99, - 46,99,97,99,104,101,100,129,2,0,0,115,9,0,0,0, - 128,0,224,23,29,136,4,141,12,114,22,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, - 0,0,0,243,110,0,0,0,151,0,124,0,106,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 128,30,124,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,106,5,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,1,171,1, - 0,0,0,0,0,0,100,2,25,0,0,0,83,0,124,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,83,0,41,3,122,32,84,104,101,32,110,97, - 109,101,32,111,102,32,116,104,101,32,109,111,100,117,108,101, - 39,115,32,112,97,114,101,110,116,46,218,1,46,114,125,0, - 0,0,41,3,114,223,0,0,0,114,26,0,0,0,218,10, - 114,112,97,114,116,105,116,105,111,110,114,66,0,0,0,115, - 1,0,0,0,32,114,7,0,0,0,218,6,112,97,114,101, - 110,116,122,17,77,111,100,117,108,101,83,112,101,99,46,112, - 97,114,101,110,116,133,2,0,0,115,52,0,0,0,128,0, - 240,6,0,12,16,215,11,42,209,11,42,208,11,50,216,19, - 23,151,57,145,57,215,19,39,209,19,39,168,3,211,19,44, - 168,81,209,19,47,208,12,47,224,19,23,151,57,145,57,208, - 12,28,114,22,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,3,0,0,0,243,26,0,0, - 0,151,0,124,0,106,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,83,0,114,2,0,0,0, - 41,1,114,225,0,0,0,114,66,0,0,0,115,1,0,0, - 0,32,114,7,0,0,0,114,233,0,0,0,122,23,77,111, - 100,117,108,101,83,112,101,99,46,104,97,115,95,108,111,99, - 97,116,105,111,110,141,2,0,0,115,14,0,0,0,128,0, - 224,15,19,215,15,33,209,15,33,208,8,33,114,22,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,3,0,0,0,243,36,0,0,0,151,0,116,1,0, - 0,0,0,0,0,0,0,124,1,171,1,0,0,0,0,0, - 0,124,0,95,1,0,0,0,0,0,0,0,0,121,0,114, - 2,0,0,0,41,2,218,4,98,111,111,108,114,225,0,0, - 0,41,2,114,44,0,0,0,218,5,118,97,108,117,101,115, - 2,0,0,0,32,32,114,7,0,0,0,114,233,0,0,0, - 122,23,77,111,100,117,108,101,83,112,101,99,46,104,97,115, - 95,108,111,99,97,116,105,111,110,145,2,0,0,115,14,0, - 0,0,128,0,228,29,33,160,37,155,91,136,4,213,8,26, - 114,22,0,0,0,41,12,114,11,0,0,0,114,10,0,0, - 0,114,3,0,0,0,114,12,0,0,0,114,47,0,0,0, - 114,132,0,0,0,114,237,0,0,0,218,8,112,114,111,112, - 101,114,116,121,114,232,0,0,0,218,6,115,101,116,116,101, - 114,114,246,0,0,0,114,233,0,0,0,114,31,0,0,0, - 114,22,0,0,0,114,7,0,0,0,114,217,0,0,0,114, - 217,0,0,0,50,2,0,0,115,143,0,0,0,132,0,241, - 2,34,5,8,240,72,1,0,48,52,192,36,216,28,32,244, - 3,11,5,28,242,26,6,5,63,242,16,10,5,34,240,24, - 0,6,14,241,2,6,5,28,243,3,0,6,14,240,2,6, - 5,28,240,16,0,6,12,135,93,129,93,241,2,1,5,30, - 243,3,0,6,19,240,2,1,5,30,240,6,0,6,14,241, - 2,5,5,29,243,3,0,6,14,240,2,5,5,29,240,14, - 0,6,14,241,2,1,5,34,243,3,0,6,14,240,2,1, - 5,34,240,6,0,6,18,215,5,24,209,5,24,241,2,1, - 5,41,243,3,0,6,25,241,2,1,5,41,114,22,0,0, - 0,114,217,0,0,0,169,2,114,218,0,0,0,114,220,0, - 0,0,99,2,0,0,0,0,0,0,0,2,0,0,0,6, - 0,0,0,3,0,0,0,243,52,1,0,0,151,0,124,2, - 128,13,116,1,0,0,0,0,0,0,0,0,124,1,100,2, - 100,1,171,3,0,0,0,0,0,0,125,2,124,2,115,69, - 116,3,0,0,0,0,0,0,0,0,124,1,100,3,171,2, - 0,0,0,0,0,0,114,57,116,4,0,0,0,0,0,0, - 0,0,128,6,116,6,0,0,0,0,0,0,0,0,130,1, - 116,4,0,0,0,0,0,0,0,0,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,4, - 124,3,128,10,2,0,124,4,124,0,124,1,172,4,171,2, - 0,0,0,0,0,0,83,0,124,3,114,2,103,0,110,1, - 100,1,125,5,2,0,124,4,124,0,124,1,124,5,172,5, - 171,3,0,0,0,0,0,0,83,0,124,3,128,33,116,3, - 0,0,0,0,0,0,0,0,124,1,100,6,171,2,0,0, - 0,0,0,0,114,19,9,0,124,1,106,11,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,125,3,110,2,100,7,125,3, - 116,15,0,0,0,0,0,0,0,0,124,0,124,1,124,2, - 124,3,172,8,171,4,0,0,0,0,0,0,83,0,35,0, - 116,12,0,0,0,0,0,0,0,0,36,0,114,5,1,0, - 100,1,125,3,89,0,140,28,119,0,120,3,89,0,119,1, - 41,9,122,53,82,101,116,117,114,110,32,97,32,109,111,100, - 117,108,101,32,115,112,101,99,32,98,97,115,101,100,32,111, - 110,32,118,97,114,105,111,117,115,32,108,111,97,100,101,114, - 32,109,101,116,104,111,100,115,46,78,218,7,95,79,82,73, - 71,73,78,218,12,103,101,116,95,102,105,108,101,110,97,109, - 101,41,1,114,213,0,0,0,41,2,114,213,0,0,0,114, - 223,0,0,0,114,220,0,0,0,70,114,253,0,0,0,41, - 8,114,15,0,0,0,114,13,0,0,0,114,239,0,0,0, - 114,240,0,0,0,218,23,115,112,101,99,95,102,114,111,109, - 95,102,105,108,101,95,108,111,99,97,116,105,111,110,114,220, - 0,0,0,114,178,0,0,0,114,217,0,0,0,41,6,114, - 26,0,0,0,114,213,0,0,0,114,218,0,0,0,114,220, - 0,0,0,114,1,1,0,0,218,6,115,101,97,114,99,104, - 115,6,0,0,0,32,32,32,32,32,32,114,7,0,0,0, - 114,194,0,0,0,114,194,0,0,0,150,2,0,0,115,192, - 0,0,0,128,0,224,7,13,128,126,220,17,24,152,22,160, - 25,168,68,211,17,49,136,6,225,11,17,148,103,152,102,160, - 110,212,22,53,220,11,30,208,11,38,220,18,37,208,12,37, - 220,34,53,215,34,77,209,34,77,208,8,31,224,11,21,208, - 11,29,217,19,42,168,52,184,6,212,19,63,208,12,63,217, - 23,33,145,18,160,116,136,6,217,15,38,160,116,176,70,216, - 66,72,244,3,1,16,74,1,240,0,1,9,74,1,240,6, - 0,8,18,208,7,25,220,11,18,144,54,152,60,212,11,40, - 240,2,3,13,34,216,29,35,215,29,46,209,29,46,168,116, - 211,29,52,145,10,240,10,0,26,31,136,74,228,11,21,144, - 100,152,70,168,54,184,106,212,11,73,208,4,73,248,244,13, - 0,20,31,242,0,1,13,34,216,29,33,146,10,240,3,1, - 13,34,250,115,18,0,0,0,193,38,17,66,9,0,194,9, - 11,66,23,3,194,22,1,66,23,3,99,3,0,0,0,0, - 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,243, - 226,1,0,0,151,0,9,0,124,0,106,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,3, - 124,3,129,2,124,3,83,0,124,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,4, - 124,1,128,13,9,0,124,0,106,6,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,125,1,9,0, - 124,0,106,8,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,125,5,124,2,128,21,124,1,129,13, - 116,11,0,0,0,0,0,0,0,0,124,1,100,1,100,0, - 171,3,0,0,0,0,0,0,125,2,124,2,115,4,124,5, - 129,2,124,5,125,2,9,0,124,0,106,12,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,6, - 9,0,116,15,0,0,0,0,0,0,0,0,124,0,106,16, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,125,7,116,19,0,0, - 0,0,0,0,0,0,124,4,124,1,124,2,172,2,171,3, - 0,0,0,0,0,0,125,3,124,5,128,2,100,3,110,4, - 124,2,124,5,107,40,0,0,124,3,95,10,0,0,0,0, - 0,0,0,0,124,6,124,3,95,11,0,0,0,0,0,0, - 0,0,124,7,124,3,95,12,0,0,0,0,0,0,0,0, - 124,3,83,0,35,0,116,2,0,0,0,0,0,0,0,0, - 36,0,114,3,1,0,89,0,140,153,119,0,120,3,89,0, - 119,1,35,0,116,2,0,0,0,0,0,0,0,0,36,0, - 114,3,1,0,89,0,140,141,119,0,120,3,89,0,119,1, - 35,0,116,2,0,0,0,0,0,0,0,0,36,0,114,5, - 1,0,100,0,125,5,89,0,140,145,119,0,120,3,89,0, - 119,1,35,0,116,2,0,0,0,0,0,0,0,0,36,0, - 114,5,1,0,100,0,125,6,89,0,140,126,119,0,120,3, - 89,0,119,1,35,0,116,2,0,0,0,0,0,0,0,0, - 36,0,114,5,1,0,100,0,125,7,89,0,140,121,119,0, - 120,3,89,0,119,1,41,4,78,114,255,0,0,0,169,1, - 114,218,0,0,0,70,41,13,114,204,0,0,0,114,4,0, - 0,0,114,11,0,0,0,114,203,0,0,0,114,212,0,0, - 0,114,15,0,0,0,218,10,95,95,99,97,99,104,101,100, - 95,95,218,4,108,105,115,116,218,8,95,95,112,97,116,104, - 95,95,114,217,0,0,0,114,225,0,0,0,114,232,0,0, - 0,114,223,0,0,0,41,8,114,200,0,0,0,114,213,0, - 0,0,114,218,0,0,0,114,199,0,0,0,114,26,0,0, - 0,218,8,108,111,99,97,116,105,111,110,114,232,0,0,0, - 114,223,0,0,0,115,8,0,0,0,32,32,32,32,32,32, - 32,32,114,7,0,0,0,218,17,95,115,112,101,99,95,102, - 114,111,109,95,109,111,100,117,108,101,114,9,1,0,0,179, - 2,0,0,115,53,1,0,0,128,0,240,4,6,5,24,216, - 15,21,143,127,137,127,136,4,240,8,0,12,16,208,11,27, - 216,19,23,136,75,224,11,17,143,63,137,63,128,68,216,7, - 13,128,126,240,2,4,9,17,216,21,27,215,21,38,209,21, - 38,136,70,240,8,3,5,24,216,19,25,151,63,145,63,136, - 8,240,6,0,8,14,128,126,216,11,17,208,11,29,220,21, - 28,152,86,160,89,176,4,211,21,53,136,70,217,15,21,152, - 40,208,26,46,216,21,29,136,70,240,2,3,5,22,216,17, - 23,215,17,34,209,17,34,136,6,240,6,3,5,42,220,37, - 41,168,38,175,47,169,47,211,37,58,208,8,34,244,8,0, - 12,22,144,100,152,70,168,54,212,11,50,128,68,216,34,42, - 208,34,50,153,21,184,22,192,56,209,57,75,128,68,212,4, - 22,216,18,24,128,68,132,75,216,38,64,128,68,212,4,35, - 216,11,15,128,75,248,244,71,1,0,12,26,242,0,1,5, - 13,217,8,12,240,3,1,5,13,251,244,20,0,16,30,242, - 0,2,9,17,225,12,16,240,5,2,9,17,251,244,10,0, - 12,26,242,0,1,5,24,216,19,23,138,8,240,3,1,5, - 24,251,244,18,0,12,26,242,0,1,5,22,216,17,21,138, - 6,240,3,1,5,22,251,244,8,0,12,26,242,0,1,5, - 42,216,37,41,210,8,34,240,3,1,5,42,250,115,87,0, - 0,0,130,12,66,32,0,161,12,66,47,0,174,12,66,62, - 0,193,18,12,67,15,0,193,31,21,67,32,0,194,32,9, - 66,44,3,194,43,1,66,44,3,194,47,9,66,59,3,194, - 58,1,66,59,3,194,62,11,67,12,3,195,11,1,67,12, - 3,195,15,11,67,29,3,195,28,1,67,29,3,195,32,11, - 67,46,3,195,45,1,67,46,3,70,169,1,218,8,111,118, - 101,114,114,105,100,101,99,2,0,0,0,0,0,0,0,1, - 0,0,0,5,0,0,0,3,0,0,0,243,124,3,0,0, - 151,0,124,2,115,13,116,1,0,0,0,0,0,0,0,0, - 124,1,100,1,100,0,171,3,0,0,0,0,0,0,128,18, - 9,0,124,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,95,2,0,0,0,0, - 0,0,0,0,124,2,115,13,116,1,0,0,0,0,0,0, - 0,0,124,1,100,2,100,0,171,3,0,0,0,0,0,0, - 128,110,124,0,106,8,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,125,3,124,3,128,88,124,0, - 106,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,129,76,116,12,0,0,0,0,0,0,0,0, - 128,6,116,14,0,0,0,0,0,0,0,0,130,1,116,12, - 0,0,0,0,0,0,0,0,106,16,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,125,4,124,4, - 106,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,4,171,1,0,0,0,0,0,0,125,3, - 124,0,106,10,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,3,95,10,0,0,0,0,0,0, - 0,0,124,3,124,0,95,4,0,0,0,0,0,0,0,0, - 100,0,124,1,95,11,0,0,0,0,0,0,0,0,9,0, - 124,3,124,1,95,12,0,0,0,0,0,0,0,0,124,2, - 115,13,116,1,0,0,0,0,0,0,0,0,124,1,100,3, - 100,0,171,3,0,0,0,0,0,0,128,18,9,0,124,0, - 106,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,95,14,0,0,0,0,0,0,0,0, - 9,0,124,0,124,1,95,15,0,0,0,0,0,0,0,0, - 124,2,115,13,116,1,0,0,0,0,0,0,0,0,124,1, - 100,4,100,0,171,3,0,0,0,0,0,0,128,30,124,0, - 106,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,129,18,9,0,124,0,106,10,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 95,16,0,0,0,0,0,0,0,0,124,0,106,34,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 114,80,124,2,115,13,116,1,0,0,0,0,0,0,0,0, - 124,1,100,5,100,0,171,3,0,0,0,0,0,0,128,18, - 9,0,124,0,106,36,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,95,11,0,0,0,0, - 0,0,0,0,124,2,115,13,116,1,0,0,0,0,0,0, - 0,0,124,1,100,6,100,0,171,3,0,0,0,0,0,0, - 128,32,124,0,106,38,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,129,20,9,0,124,0,106,38, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,1,95,20,0,0,0,0,0,0,0,0,124,1, - 83,0,124,1,83,0,35,0,116,6,0,0,0,0,0,0, - 0,0,36,0,114,4,1,0,89,0,144,1,140,61,119,0, - 120,3,89,0,119,1,35,0,116,6,0,0,0,0,0,0, - 0,0,36,0,114,3,1,0,89,0,140,207,119,0,120,3, - 89,0,119,1,35,0,116,6,0,0,0,0,0,0,0,0, - 36,0,114,3,1,0,89,0,140,189,119,0,120,3,89,0, - 119,1,35,0,116,6,0,0,0,0,0,0,0,0,36,0, - 114,3,1,0,89,0,140,196,119,0,120,3,89,0,119,1, - 35,0,116,6,0,0,0,0,0,0,0,0,36,0,114,3, - 1,0,89,0,140,166,119,0,120,3,89,0,119,1,35,0, - 116,6,0,0,0,0,0,0,0,0,36,0,114,3,1,0, - 89,0,140,136,119,0,120,3,89,0,119,1,35,0,116,6, - 0,0,0,0,0,0,0,0,36,0,114,4,1,0,89,0, - 124,1,83,0,119,0,120,3,89,0,119,1,41,7,78,114, - 11,0,0,0,114,203,0,0,0,218,11,95,95,112,97,99, - 107,97,103,101,95,95,114,7,1,0,0,114,212,0,0,0, - 114,5,1,0,0,41,21,114,15,0,0,0,114,26,0,0, - 0,114,11,0,0,0,114,4,0,0,0,114,213,0,0,0, - 114,223,0,0,0,114,239,0,0,0,114,240,0,0,0,218, - 15,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114, - 114,41,0,0,0,218,5,95,112,97,116,104,114,212,0,0, - 0,114,203,0,0,0,114,246,0,0,0,114,13,1,0,0, - 114,204,0,0,0,114,7,1,0,0,114,233,0,0,0,114, - 218,0,0,0,114,232,0,0,0,114,5,1,0,0,41,5, - 114,199,0,0,0,114,200,0,0,0,114,11,1,0,0,114, - 213,0,0,0,114,14,1,0,0,115,5,0,0,0,32,32, - 32,32,32,114,7,0,0,0,218,18,95,105,110,105,116,95, - 109,111,100,117,108,101,95,97,116,116,114,115,114,16,1,0, - 0,221,2,0,0,115,245,1,0,0,128,0,241,8,0,9, - 17,148,71,152,70,160,74,176,4,211,20,53,208,20,61,240, - 2,3,9,17,216,30,34,159,105,153,105,136,70,140,79,241, - 8,0,8,16,148,55,152,54,160,60,176,20,211,19,54,208, - 19,62,216,17,21,151,27,145,27,136,6,216,11,17,136,62, - 224,15,19,215,15,46,209,15,46,208,15,58,220,19,38,208, - 19,46,220,26,45,208,20,45,220,34,53,215,34,69,209,34, - 69,144,15,224,25,40,215,25,48,209,25,48,176,31,211,25, - 65,144,6,216,31,35,215,31,62,209,31,62,144,6,148,12, - 216,30,36,144,4,148,11,240,22,0,35,39,144,6,148,15, - 240,2,3,9,17,216,32,38,136,70,212,12,29,241,8,0, - 8,16,148,55,152,54,160,61,176,36,211,19,55,208,19,63, - 240,2,3,9,17,216,33,37,167,27,161,27,136,70,212,12, - 30,240,8,3,5,13,216,26,30,136,6,140,15,241,8,0, - 8,16,148,55,152,54,160,58,168,116,211,19,52,208,19,60, - 216,11,15,215,11,42,209,11,42,208,11,54,240,4,3,13, - 21,216,34,38,215,34,65,209,34,65,144,6,148,15,240,8, - 0,8,12,215,7,24,210,7,24,217,11,19,148,119,152,118, - 160,122,176,52,211,23,56,208,23,64,240,2,3,13,21,216, - 34,38,167,43,161,43,144,6,148,15,241,8,0,12,20,148, - 119,152,118,160,124,176,84,211,23,58,208,23,66,216,15,19, - 143,123,137,123,208,15,38,240,2,3,17,25,216,40,44,175, - 11,169,11,144,70,212,20,37,240,6,0,12,18,128,77,136, - 54,128,77,248,244,127,1,0,16,30,242,0,1,9,17,218, - 12,16,240,3,1,9,17,251,244,56,0,16,30,242,0,1, - 9,17,217,12,16,240,3,1,9,17,251,244,12,0,16,30, - 242,0,1,9,17,217,12,16,240,3,1,9,17,251,244,10, - 0,12,26,242,0,1,5,13,217,8,12,240,3,1,5,13, - 251,244,16,0,20,34,242,0,1,13,21,217,16,20,240,3, - 1,13,21,251,244,14,0,20,34,242,0,1,13,21,217,16, - 20,240,3,1,13,21,251,244,14,0,24,38,242,0,1,17, - 25,216,20,24,216,11,17,128,77,240,5,1,17,25,250,115, - 125,0,0,0,145,17,69,19,0,194,24,7,69,35,0,194, - 47,17,69,50,0,195,1,7,70,1,0,195,36,17,70,16, - 0,196,17,17,70,31,0,196,62,17,70,46,0,197,19,9, - 69,32,3,197,31,1,69,32,3,197,35,9,69,47,3,197, - 46,1,69,47,3,197,50,9,69,62,3,197,61,1,69,62, - 3,198,1,9,70,13,3,198,12,1,70,13,3,198,16,9, - 70,28,3,198,27,1,70,28,3,198,31,9,70,43,3,198, - 42,1,70,43,3,198,46,9,70,59,3,198,58,1,70,59, - 3,99,1,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,243,246,0,0,0,151,0,100,1,125, - 1,116,1,0,0,0,0,0,0,0,0,124,0,106,2,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,2,171,2,0,0,0,0,0,0,114,28,124,0,106, + 20,43,247,0,5,21,60,216,20,24,151,75,145,75,160,53, + 167,60,161,60,209,20,47,247,3,5,21,60,224,20,24,151, + 75,145,75,160,53,167,60,161,60,209,20,47,247,5,5,21, + 60,240,6,0,21,25,215,28,60,209,28,60,209,20,60,247, + 7,5,21,60,240,8,0,21,25,151,75,145,75,160,53,167, + 60,161,60,209,20,47,247,9,5,21,60,240,10,0,21,25, + 215,20,37,209,20,37,168,21,215,41,59,209,41,59,209,20, + 59,240,11,5,13,61,248,244,12,0,16,30,243,0,1,9, + 34,220,19,33,210,12,33,240,3,1,9,34,250,115,18,0, + 0,0,142,66,45,66,60,0,194,60,16,67,15,3,195,14, + 1,67,15,3,99,1,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,243,210,0,0,0,149,0, + 85,0,82,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,99,79,0,0,85,0,82,2,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 98,66,0,0,85,0,82,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,97,49,0,0,91,6,0,0,0,0,0,0,0,0, + 99,6,0,0,91,8,0,0,0,0,0,0,0,0,101,1, + 91,6,0,0,0,0,0,0,0,0,82,11,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,85,0,108,0, + 0,0,0,0,0,0,0,0,85,0,82,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,0, + 114,2,0,0,0,41,6,114,3,1,0,0,114,251,0,0, + 0,114,2,1,0,0,218,19,95,98,111,111,116,115,116,114, + 97,112,95,101,120,116,101,114,110,97,108,218,19,78,111,116, + 73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114, + 218,11,95,103,101,116,95,99,97,99,104,101,100,114,74,0, + 0,0,115,1,0,0,0,32,114,7,0,0,0,114,11,1, + 0,0,218,17,77,111,100,117,108,101,83,112,101,99,46,99, + 97,99,104,101,100,120,2,0,0,115,74,0,0,0,128,0, + 224,11,15,143,60,137,60,209,11,31,216,15,19,143,123,137, + 123,209,15,38,168,52,215,43,61,215,43,61,220,19,38,209, + 19,46,220,26,45,208,20,45,220,31,50,215,31,62,209,31, + 62,184,116,191,123,185,123,211,31,75,144,4,148,12,216,15, + 19,143,124,137,124,208,8,27,114,22,0,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0, + 0,0,243,16,0,0,0,149,0,88,16,108,0,0,0,0, + 0,0,0,0,0,103,0,114,2,0,0,0,41,1,114,3, + 1,0,0,41,2,114,49,0,0,0,114,11,1,0,0,115, + 2,0,0,0,32,32,114,7,0,0,0,114,11,1,0,0, + 114,22,1,0,0,129,2,0,0,115,7,0,0,0,128,0, + 224,23,29,141,12,114,22,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 112,0,0,0,149,0,85,0,82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,99,30,0,0, + 85,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,82,5,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,1,53,1,0,0, + 0,0,0,0,83,2,5,0,0,0,36,0,85,0,82,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,36,0,41,3,122,32,84,104,101,32,110,97,109,101, + 32,111,102,32,116,104,101,32,109,111,100,117,108,101,39,115, + 32,112,97,114,101,110,116,46,218,1,46,114,146,0,0,0, + 41,3,114,0,1,0,0,114,26,0,0,0,218,10,114,112, + 97,114,116,105,116,105,111,110,114,74,0,0,0,115,1,0, + 0,0,32,114,7,0,0,0,218,6,112,97,114,101,110,116, + 218,17,77,111,100,117,108,101,83,112,101,99,46,112,97,114, + 101,110,116,133,2,0,0,115,52,0,0,0,128,0,240,6, + 0,12,16,215,11,42,209,11,42,209,11,50,216,19,23,151, + 57,145,57,215,19,39,209,19,39,168,3,211,19,44,168,81, + 209,19,47,208,12,47,224,19,23,151,57,145,57,208,12,28, + 114,22,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,243,26,0,0,0,149, + 0,85,0,82,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,36,0,114,2,0,0,0,41,1, + 114,2,1,0,0,114,74,0,0,0,115,1,0,0,0,32, + 114,7,0,0,0,114,12,1,0,0,218,23,77,111,100,117, + 108,101,83,112,101,99,46,104,97,115,95,108,111,99,97,116, + 105,111,110,141,2,0,0,115,14,0,0,0,128,0,224,15, + 19,215,15,33,209,15,33,208,8,33,114,22,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,36,0,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,85,1,53,1,0,0,0,0,0,0,85, + 0,108,1,0,0,0,0,0,0,0,0,103,0,114,2,0, + 0,0,41,2,218,4,98,111,111,108,114,2,1,0,0,41, + 2,114,49,0,0,0,218,5,118,97,108,117,101,115,2,0, + 0,0,32,32,114,7,0,0,0,114,12,1,0,0,114,30, + 1,0,0,145,2,0,0,115,14,0,0,0,128,0,228,29, + 33,160,37,155,91,136,4,213,8,26,114,22,0,0,0,41, + 8,114,3,1,0,0,114,2,1,0,0,114,1,1,0,0, + 114,246,0,0,0,114,252,0,0,0,114,26,0,0,0,114, + 251,0,0,0,114,0,1,0,0,41,14,114,11,0,0,0, + 114,10,0,0,0,114,3,0,0,0,114,33,0,0,0,114, + 12,0,0,0,114,53,0,0,0,114,154,0,0,0,114,16, + 1,0,0,218,8,112,114,111,112,101,114,116,121,114,11,1, + 0,0,218,6,115,101,116,116,101,114,114,27,1,0,0,114, + 12,1,0,0,114,35,0,0,0,114,32,0,0,0,114,22, + 0,0,0,114,7,0,0,0,114,250,0,0,0,114,250,0, + 0,0,50,2,0,0,115,143,0,0,0,134,0,241,2,34, + 5,8,240,72,1,0,48,52,192,36,216,28,32,245,3,11, + 5,28,242,26,6,5,63,242,16,10,5,34,240,24,0,6, + 14,241,2,6,5,28,243,3,0,6,14,240,2,6,5,28, + 240,16,0,6,12,135,93,129,93,241,2,1,5,30,243,3, + 0,6,19,240,2,1,5,30,240,6,0,6,14,241,2,5, + 5,29,243,3,0,6,14,240,2,5,5,29,240,14,0,6, + 14,241,2,1,5,34,243,3,0,6,14,240,2,1,5,34, + 240,6,0,6,18,215,5,24,209,5,24,241,2,1,5,41, + 243,3,0,6,25,243,2,1,5,41,114,22,0,0,0,114, + 250,0,0,0,169,2,114,251,0,0,0,114,253,0,0,0, + 99,2,0,0,0,0,0,0,0,2,0,0,0,7,0,0, + 0,3,0,0,0,243,76,1,0,0,149,0,85,2,99,13, + 0,0,91,1,0,0,0,0,0,0,0,0,85,1,83,2, + 83,1,53,3,0,0,0,0,0,0,110,2,85,2,40,0, + 0,0,0,0,0,0,100,73,0,0,91,3,0,0,0,0, + 0,0,0,0,85,1,83,3,53,2,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,97,56,0,0,91,4,0,0, + 0,0,0,0,0,0,99,6,0,0,91,6,0,0,0,0, + 0,0,0,0,101,1,91,4,0,0,0,0,0,0,0,0, + 82,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,110,4,85,3,99,6,0,0,85,4,34,0, + 88,1,83,4,57,2,36,0,85,3,40,0,0,0,0,0, + 0,0,97,2,0,0,47,0,79,1,83,1,110,5,85,4, + 34,0,88,1,85,5,83,5,57,3,36,0,85,3,99,38, + 0,0,91,3,0,0,0,0,0,0,0,0,85,1,83,6, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 97,19,0,0,30,0,85,1,82,11,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,0,53,1, + 0,0,0,0,0,0,110,3,79,2,83,7,110,3,91,15, + 0,0,0,0,0,0,0,0,88,1,88,35,83,8,57,4, + 36,0,33,0,91,12,0,0,0,0,0,0,0,0,7,0, + 97,5,0,0,32,0,83,1,110,3,31,0,78,24,102,0, + 61,3,31,0,102,1,41,9,122,53,82,101,116,117,114,110, + 32,97,32,109,111,100,117,108,101,32,115,112,101,99,32,98, + 97,115,101,100,32,111,110,32,118,97,114,105,111,117,115,32, + 108,111,97,100,101,114,32,109,101,116,104,111,100,115,46,78, + 218,7,95,79,82,73,71,73,78,218,12,103,101,116,95,102, + 105,108,101,110,97,109,101,41,1,114,246,0,0,0,41,2, + 114,246,0,0,0,114,0,1,0,0,114,253,0,0,0,70, + 114,36,1,0,0,41,8,114,15,0,0,0,114,13,0,0, + 0,114,19,1,0,0,114,20,1,0,0,218,23,115,112,101, + 99,95,102,114,111,109,95,102,105,108,101,95,108,111,99,97, + 116,105,111,110,114,253,0,0,0,114,209,0,0,0,114,250, + 0,0,0,41,6,114,26,0,0,0,114,246,0,0,0,114, + 251,0,0,0,114,253,0,0,0,114,40,1,0,0,218,6, + 115,101,97,114,99,104,115,6,0,0,0,32,32,32,32,32, + 32,114,7,0,0,0,114,227,0,0,0,114,227,0,0,0, + 150,2,0,0,115,190,0,0,0,128,0,224,7,13,129,126, + 220,17,24,152,22,160,25,168,68,211,17,49,136,6,230,11, + 17,148,103,152,102,160,110,215,22,53,209,22,53,220,11,30, + 209,11,38,220,18,37,208,12,37,220,34,53,215,34,77,209, + 34,77,208,8,31,224,11,21,209,11,29,217,19,42,168,52, + 209,19,63,208,12,63,222,23,33,145,18,160,116,136,6,217, + 15,38,160,116,216,66,72,241,3,1,16,74,1,240,0,1, + 9,74,1,240,6,0,8,18,209,7,25,220,11,18,144,54, + 152,60,215,11,40,209,11,40,240,2,3,13,34,216,29,35, + 215,29,46,209,29,46,168,116,211,29,52,145,10,240,10,0, + 26,31,136,74,228,11,21,144,100,168,54,209,11,73,208,4, + 73,248,244,13,0,20,31,243,0,1,13,34,216,29,33,146, + 10,240,3,1,13,34,250,115,18,0,0,0,193,54,17,66, + 20,0,194,20,12,66,35,3,194,34,1,66,35,3,99,3, + 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,3, + 0,0,0,243,246,1,0,0,149,0,30,0,85,0,82,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,110,3,85,3,98,2,0,0,85,3,36,0,30,0, + 85,0,82,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,110,4,85,1,99,13,0,0,30,0, + 85,0,82,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,110,1,30,0,85,0,82,8,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 110,5,85,2,99,28,0,0,85,1,98,13,0,0,91,11, + 0,0,0,0,0,0,0,0,85,1,83,1,83,0,53,3, + 0,0,0,0,0,0,110,2,85,2,40,0,0,0,0,0, + 0,0,100,5,0,0,85,5,98,2,0,0,85,5,110,2, + 30,0,85,0,82,12,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,110,6,30,0,91,15,0,0, + 0,0,0,0,0,0,85,0,82,16,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,110,7,91,19,0,0,0,0,0,0,0,0, + 88,65,85,2,83,2,57,3,110,3,85,5,99,2,0,0, + 83,3,79,3,88,37,58,72,0,0,85,3,108,10,0,0, + 0,0,0,0,0,0,88,99,108,11,0,0,0,0,0,0, + 0,0,88,115,108,12,0,0,0,0,0,0,0,0,85,3, + 36,0,33,0,91,2,0,0,0,0,0,0,0,0,7,0, + 97,3,0,0,32,0,31,0,78,157,102,0,61,3,31,0, + 102,1,33,0,91,2,0,0,0,0,0,0,0,0,7,0, + 97,3,0,0,32,0,31,0,78,145,102,0,61,3,31,0, + 102,1,33,0,91,2,0,0,0,0,0,0,0,0,7,0, + 97,5,0,0,32,0,83,0,110,5,31,0,78,150,102,0, + 61,3,31,0,102,1,33,0,91,2,0,0,0,0,0,0, + 0,0,7,0,97,5,0,0,32,0,83,0,110,6,31,0, + 78,124,102,0,61,3,31,0,102,1,33,0,91,2,0,0, + 0,0,0,0,0,0,7,0,97,5,0,0,32,0,83,0, + 110,7,31,0,78,120,102,0,61,3,31,0,102,1,41,4, + 78,114,38,1,0,0,169,1,114,251,0,0,0,70,41,13, + 114,237,0,0,0,114,4,0,0,0,114,11,0,0,0,114, + 236,0,0,0,114,245,0,0,0,114,15,0,0,0,218,10, + 95,95,99,97,99,104,101,100,95,95,218,4,108,105,115,116, + 218,8,95,95,112,97,116,104,95,95,114,250,0,0,0,114, + 2,1,0,0,114,11,1,0,0,114,0,1,0,0,41,8, + 114,233,0,0,0,114,246,0,0,0,114,251,0,0,0,114, + 232,0,0,0,114,26,0,0,0,218,8,108,111,99,97,116, + 105,111,110,114,11,1,0,0,114,0,1,0,0,115,8,0, + 0,0,32,32,32,32,32,32,32,32,114,7,0,0,0,218, + 17,95,115,112,101,99,95,102,114,111,109,95,109,111,100,117, + 108,101,114,48,1,0,0,179,2,0,0,115,52,1,0,0, + 128,0,240,4,6,5,24,216,15,21,143,127,137,127,136,4, + 240,8,0,12,16,209,11,27,216,19,23,136,75,240,3,0, + 12,28,240,6,0,12,18,143,63,137,63,128,68,216,7,13, + 129,126,240,2,4,9,17,216,21,27,215,21,38,209,21,38, + 136,70,240,8,3,5,24,216,19,25,151,63,145,63,136,8, + 240,6,0,8,14,129,126,216,11,17,209,11,29,220,21,28, + 152,86,160,89,176,4,211,21,53,136,70,222,15,21,152,40, + 209,26,46,216,21,29,136,70,240,2,3,5,22,216,17,23, + 215,17,34,209,17,34,136,6,240,6,3,5,42,220,37,41, + 168,38,175,47,169,47,211,37,58,208,8,34,244,8,0,12, + 22,144,100,168,54,209,11,50,128,68,216,34,42,209,34,50, + 153,21,184,22,209,57,75,128,68,212,4,22,216,18,24,132, + 75,216,38,64,212,4,35,216,11,15,128,75,248,244,71,1, + 0,12,26,243,0,1,5,13,217,8,12,240,3,1,5,13, + 251,244,20,0,16,30,243,0,2,9,17,225,12,16,240,5, + 2,9,17,251,244,10,0,12,26,243,0,1,5,24,216,19, + 23,138,8,240,3,1,5,24,251,244,18,0,12,26,243,0, + 1,5,22,216,17,21,138,6,240,3,1,5,22,251,244,8, + 0,12,26,243,0,1,5,42,216,37,41,210,8,34,240,3, + 1,5,42,250,115,87,0,0,0,130,12,66,37,0,164,12, + 66,53,0,177,12,67,5,0,193,29,12,67,23,0,193,42, + 21,67,41,0,194,37,10,66,50,3,194,49,1,66,50,3, + 194,53,10,67,2,3,195,1,1,67,2,3,195,5,12,67, + 20,3,195,19,1,67,20,3,195,23,12,67,38,3,195,37, + 1,67,38,3,195,41,12,67,56,3,195,55,1,67,56,3, + 70,169,1,218,8,111,118,101,114,114,105,100,101,99,2,0, + 0,0,0,0,0,0,1,0,0,0,5,0,0,0,3,0, + 0,0,243,224,3,0,0,149,0,85,2,40,0,0,0,0, + 0,0,0,100,14,0,0,91,1,0,0,0,0,0,0,0, + 0,85,1,83,1,83,0,53,3,0,0,0,0,0,0,99, + 18,0,0,30,0,85,0,82,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,1,108,2,0, + 0,0,0,0,0,0,0,85,2,40,0,0,0,0,0,0, + 0,100,14,0,0,91,1,0,0,0,0,0,0,0,0,85, + 1,83,2,83,0,53,3,0,0,0,0,0,0,99,111,0, + 0,85,0,82,8,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,110,3,85,3,99,89,0,0,85, + 0,82,10,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,98,76,0,0,91,12,0,0,0,0,0, + 0,0,0,99,6,0,0,91,14,0,0,0,0,0,0,0, + 0,101,1,91,12,0,0,0,0,0,0,0,0,82,16,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,110,4,85,4,82,19,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,4,53,1,0,0,0, + 0,0,0,110,3,85,0,82,10,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,3,108,10,0, + 0,0,0,0,0,0,0,88,48,108,4,0,0,0,0,0, + 0,0,0,83,0,85,1,108,11,0,0,0,0,0,0,0, + 0,30,0,88,49,108,12,0,0,0,0,0,0,0,0,85, + 2,40,0,0,0,0,0,0,0,100,14,0,0,91,1,0, + 0,0,0,0,0,0,0,85,1,83,3,83,0,53,3,0, + 0,0,0,0,0,99,18,0,0,30,0,85,0,82,26,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,1,108,14,0,0,0,0,0,0,0,0,30,0,88, + 1,108,15,0,0,0,0,0,0,0,0,85,2,40,0,0, + 0,0,0,0,0,100,14,0,0,91,1,0,0,0,0,0, + 0,0,0,85,1,83,4,83,0,53,3,0,0,0,0,0, + 0,99,31,0,0,85,0,82,10,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,98,18,0,0,30, + 0,85,0,82,10,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,1,108,16,0,0,0,0,0, + 0,0,0,85,0,82,34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,93,0,0,85,2,40,0,0,0,0,0,0,0,100, + 14,0,0,91,1,0,0,0,0,0,0,0,0,85,1,83, + 5,83,0,53,3,0,0,0,0,0,0,99,18,0,0,30, + 0,85,0,82,36,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,1,108,11,0,0,0,0,0, + 0,0,0,85,2,40,0,0,0,0,0,0,0,100,14,0, + 0,91,1,0,0,0,0,0,0,0,0,85,1,83,6,83, + 0,53,3,0,0,0,0,0,0,99,33,0,0,85,0,82, + 38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,98,20,0,0,30,0,85,0,82,38,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 1,108,20,0,0,0,0,0,0,0,0,85,1,36,0,85, + 1,36,0,33,0,91,6,0,0,0,0,0,0,0,0,7, + 0,97,4,0,0,32,0,31,0,71,1,78,99,102,0,61, + 3,31,0,102,1,33,0,91,6,0,0,0,0,0,0,0, + 0,7,0,97,3,0,0,32,0,31,0,78,239,102,0,61, + 3,31,0,102,1,33,0,91,6,0,0,0,0,0,0,0, + 0,7,0,97,3,0,0,32,0,31,0,78,216,102,0,61, + 3,31,0,102,1,33,0,91,6,0,0,0,0,0,0,0, + 0,7,0,97,3,0,0,32,0,31,0,78,225,102,0,61, + 3,31,0,102,1,33,0,91,6,0,0,0,0,0,0,0, + 0,7,0,97,3,0,0,32,0,31,0,78,189,102,0,61, + 3,31,0,102,1,33,0,91,6,0,0,0,0,0,0,0, + 0,7,0,97,3,0,0,32,0,31,0,78,149,102,0,61, + 3,31,0,102,1,33,0,91,6,0,0,0,0,0,0,0, + 0,7,0,97,4,0,0,32,0,31,0,85,1,36,0,102, + 0,61,3,31,0,102,1,41,7,78,114,11,0,0,0,114, + 236,0,0,0,218,11,95,95,112,97,99,107,97,103,101,95, + 95,114,46,1,0,0,114,245,0,0,0,114,44,1,0,0, + 41,21,114,15,0,0,0,114,26,0,0,0,114,11,0,0, + 0,114,4,0,0,0,114,246,0,0,0,114,0,1,0,0, + 114,19,1,0,0,114,20,1,0,0,218,15,78,97,109,101, + 115,112,97,99,101,76,111,97,100,101,114,114,46,0,0,0, + 218,5,95,112,97,116,104,114,245,0,0,0,114,236,0,0, + 0,114,27,1,0,0,114,52,1,0,0,114,237,0,0,0, + 114,46,1,0,0,114,12,1,0,0,114,251,0,0,0,114, + 11,1,0,0,114,44,1,0,0,41,5,114,232,0,0,0, + 114,233,0,0,0,114,50,1,0,0,114,246,0,0,0,114, + 53,1,0,0,115,5,0,0,0,32,32,32,32,32,114,7, + 0,0,0,218,18,95,105,110,105,116,95,109,111,100,117,108, + 101,95,97,116,116,114,115,114,55,1,0,0,221,2,0,0, + 115,239,1,0,0,128,0,246,8,0,9,17,148,71,152,70, + 160,74,176,4,211,20,53,209,20,61,240,2,3,9,17,216, + 30,34,159,105,153,105,136,70,140,79,246,8,0,8,16,148, + 55,152,54,160,60,176,20,211,19,54,209,19,62,216,17,21, + 151,27,145,27,136,6,216,11,17,137,62,224,15,19,215,15, + 46,209,15,46,209,15,58,220,19,38,209,19,46,220,26,45, + 208,20,45,220,34,53,215,34,69,209,34,69,144,15,224,25, + 40,215,25,48,209,25,48,176,31,211,25,65,144,6,216,31, + 35,215,31,62,209,31,62,144,6,148,12,216,30,36,148,11, + 240,22,0,35,39,144,6,148,15,240,2,3,9,17,216,32, + 38,212,12,29,246,8,0,8,16,148,55,152,54,160,61,176, + 36,211,19,55,209,19,63,240,2,3,9,17,216,33,37,167, + 27,161,27,136,70,212,12,30,240,8,3,5,13,216,26,30, + 140,15,246,8,0,8,16,148,55,152,54,160,58,168,116,211, + 19,52,209,19,60,216,11,15,215,11,42,209,11,42,209,11, + 54,240,4,3,13,21,216,34,38,215,34,65,209,34,65,144, + 6,148,15,240,8,0,8,12,215,7,24,215,7,24,222,11, + 19,148,119,152,118,160,122,176,52,211,23,56,209,23,64,240, + 2,3,13,21,216,34,38,167,43,161,43,144,6,148,15,246, + 8,0,12,20,148,119,152,118,160,124,176,84,211,23,58,209, + 23,66,216,15,19,143,123,137,123,209,15,38,240,2,3,17, + 25,216,40,44,175,11,169,11,144,70,212,20,37,240,6,0, + 12,18,128,77,136,54,128,77,248,244,127,1,0,16,30,243, + 0,1,9,17,218,12,16,240,3,1,9,17,251,244,56,0, + 16,30,243,0,1,9,17,217,12,16,240,3,1,9,17,251, + 244,12,0,16,30,243,0,1,9,17,217,12,16,240,3,1, + 9,17,251,244,10,0,12,26,243,0,1,5,13,217,8,12, + 240,3,1,5,13,251,244,16,0,20,34,243,0,1,13,21, + 217,16,20,240,3,1,13,21,251,244,14,0,20,34,243,0, + 1,13,21,217,16,20,240,3,1,13,21,251,244,14,0,24, + 38,243,0,1,17,25,216,20,24,216,11,17,128,77,240,5, + 1,17,25,250,115,125,0,0,0,151,17,69,62,0,194,38, + 6,70,15,0,195,2,17,70,31,0,195,20,6,70,47,0, + 195,61,17,70,63,0,196,53,17,71,15,0,197,41,17,71, + 31,0,197,62,10,70,12,3,198,11,1,70,12,3,198,15, + 10,70,28,3,198,27,1,70,28,3,198,31,10,70,44,3, + 198,43,1,70,44,3,198,47,10,70,60,3,198,59,1,70, + 60,3,198,63,10,71,12,3,199,11,1,71,12,3,199,15, + 10,71,28,3,199,27,1,71,28,3,199,31,10,71,45,3, + 199,44,1,71,45,3,99,1,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,10,1,0,0, + 149,0,83,1,110,1,91,1,0,0,0,0,0,0,0,0, + 85,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,2,53,2,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,97,28,0,0,85,0,82,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,82,5,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,0,53,1,0,0,0,0,0,0, + 110,1,79,38,91,1,0,0,0,0,0,0,0,0,85,0, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,3,53,2,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,97,11,0,0,91,7,0,0,0,0, + 0,0,0,0,83,4,53,1,0,0,0,0,0,0,101,1, + 85,1,99,21,0,0,91,9,0,0,0,0,0,0,0,0, + 85,0,82,10,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,110,1, + 91,13,0,0,0,0,0,0,0,0,88,1,53,2,0,0, + 0,0,0,0,32,0,85,1,36,0,41,5,122,43,67,114, + 101,97,116,101,32,97,32,109,111,100,117,108,101,32,98,97, + 115,101,100,32,111,110,32,116,104,101,32,112,114,111,118,105, + 100,101,100,32,115,112,101,99,46,78,218,13,99,114,101,97, + 116,101,95,109,111,100,117,108,101,218,11,101,120,101,99,95, + 109,111,100,117,108,101,122,66,108,111,97,100,101,114,115,32, + 116,104,97,116,32,100,101,102,105,110,101,32,101,120,101,99, + 95,109,111,100,117,108,101,40,41,32,109,117,115,116,32,97, + 108,115,111,32,100,101,102,105,110,101,32,99,114,101,97,116, + 101,95,109,111,100,117,108,101,40,41,41,7,114,13,0,0, + 0,114,246,0,0,0,114,57,1,0,0,114,209,0,0,0, + 114,27,0,0,0,114,26,0,0,0,114,55,1,0,0,169, + 2,114,232,0,0,0,114,233,0,0,0,115,2,0,0,0, + 32,32,114,7,0,0,0,218,16,109,111,100,117,108,101,95, + 102,114,111,109,95,115,112,101,99,114,60,1,0,0,38,3, + 0,0,115,115,0,0,0,128,0,240,6,0,14,18,128,70, + 220,7,14,136,116,143,123,137,123,152,79,215,7,44,209,7, + 44,240,6,0,18,22,151,27,145,27,215,17,42,209,17,42, + 168,52,211,17,48,137,6,220,9,16,144,20,151,27,145,27, + 152,109,215,9,44,209,9,44,220,14,25,240,0,1,27,61, + 243,0,1,15,62,240,0,1,9,62,224,7,13,129,126,220, + 17,28,152,84,159,89,153,89,211,17,39,136,6,220,4,22, + 144,116,212,4,36,216,11,17,128,77,114,22,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, + 3,0,0,0,243,162,1,0,0,149,0,85,0,82,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,99,2,0,0,83,1,79,11,85,0,82,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110, + 1,85,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,99,100,0,0,85,0,82,4,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,110,2,85,2,99,7,0,0,83,2,85,1,60,2,14, + 0,83,3,51,3,36,0,91,6,0,0,0,0,0,0,0, + 0,98,60,0,0,91,9,0,0,0,0,0,0,0,0,85, + 2,91,6,0,0,0,0,0,0,0,0,82,10,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 2,0,0,0,0,0,0,40,0,0,0,0,0,0,0,97, + 29,0,0,83,2,85,1,60,2,14,0,83,4,91,13,0, + 0,0,0,0,0,0,0,85,2,82,14,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,14,0,83,3,51,5,36,0,83,2,85, + 1,60,2,14,0,83,5,85,2,60,2,14,0,83,6,51, + 5,36,0,85,0,82,16,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,21,0,0,83,2,85,1,60,2,14,0,83,7,85, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,60,2,14,0,83,3,51,5,36,0,83, + 2,85,0,82,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,60,2,14,0,83,5,85,0,82, 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,5,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,125,1,110,33,116,1,0,0,0,0,0,0,0,0,124, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,3,171,2,0,0,0,0,0,0,114, - 11,116,7,0,0,0,0,0,0,0,0,100,4,171,1,0, - 0,0,0,0,0,130,1,124,1,128,21,116,9,0,0,0, - 0,0,0,0,0,124,0,106,10,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,125,1,116,13,0,0,0,0,0,0,0,0,124, - 0,124,1,171,2,0,0,0,0,0,0,1,0,124,1,83, - 0,41,5,122,43,67,114,101,97,116,101,32,97,32,109,111, - 100,117,108,101,32,98,97,115,101,100,32,111,110,32,116,104, - 101,32,112,114,111,118,105,100,101,100,32,115,112,101,99,46, - 78,218,13,99,114,101,97,116,101,95,109,111,100,117,108,101, - 218,11,101,120,101,99,95,109,111,100,117,108,101,122,66,108, - 111,97,100,101,114,115,32,116,104,97,116,32,100,101,102,105, - 110,101,32,101,120,101,99,95,109,111,100,117,108,101,40,41, - 32,109,117,115,116,32,97,108,115,111,32,100,101,102,105,110, - 101,32,99,114,101,97,116,101,95,109,111,100,117,108,101,40, - 41,41,7,114,13,0,0,0,114,213,0,0,0,114,18,1, - 0,0,114,178,0,0,0,114,27,0,0,0,114,26,0,0, - 0,114,16,1,0,0,169,2,114,199,0,0,0,114,200,0, - 0,0,115,2,0,0,0,32,32,114,7,0,0,0,218,16, - 109,111,100,117,108,101,95,102,114,111,109,95,115,112,101,99, - 114,21,1,0,0,38,3,0,0,115,111,0,0,0,128,0, - 240,6,0,14,18,128,70,220,7,14,136,116,143,123,137,123, - 152,79,212,7,44,240,6,0,18,22,151,27,145,27,215,17, - 42,209,17,42,168,52,211,17,48,137,6,220,9,16,144,20, - 151,27,145,27,152,109,212,9,44,220,14,25,240,0,1,27, - 61,243,0,1,15,62,240,0,1,9,62,224,7,13,128,126, - 220,17,28,152,84,159,89,153,89,211,17,39,136,6,220,4, - 22,144,116,152,86,212,4,36,216,11,17,128,77,114,22,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,6, - 0,0,0,3,0,0,0,243,120,1,0,0,151,0,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,128,2,100,1,110,11,124,0,106,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 125,1,124,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,128,89,124,0,106,4,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 125,2,124,2,128,6,100,2,124,1,155,2,100,3,157,3, - 83,0,116,6,0,0,0,0,0,0,0,0,129,54,116,9, - 0,0,0,0,0,0,0,0,124,2,116,6,0,0,0,0, - 0,0,0,0,106,10,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,2,0,0,0,0,0,0, - 114,28,100,2,124,1,155,2,100,4,116,13,0,0,0,0, - 0,0,0,0,124,2,106,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,155,0,100,3,157,5,83,0,100,2,124,1,155,2, - 100,5,124,2,155,2,100,6,157,5,83,0,124,0,106,16, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,114,19,100,2,124,1,155,2,100,7,124,0,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,155,2,100,3,157,5,83,0,100,2,124,0,106,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,155,2,100,5,124,0,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,155,0,100,6, - 157,5,83,0,41,8,122,38,82,101,116,117,114,110,32,116, - 104,101,32,114,101,112,114,32,116,111,32,117,115,101,32,102, - 111,114,32,116,104,101,32,109,111,100,117,108,101,46,114,205, - 0,0,0,114,206,0,0,0,114,208,0,0,0,122,18,32, - 40,110,97,109,101,115,112,97,99,101,41,32,102,114,111,109, - 32,114,209,0,0,0,114,210,0,0,0,114,207,0,0,0, - 41,9,114,26,0,0,0,114,218,0,0,0,114,213,0,0, - 0,114,239,0,0,0,218,10,105,115,105,110,115,116,97,110, - 99,101,114,14,1,0,0,114,6,1,0,0,114,15,1,0, - 0,114,233,0,0,0,41,3,114,199,0,0,0,114,26,0, - 0,0,114,213,0,0,0,115,3,0,0,0,32,32,32,114, - 7,0,0,0,114,211,0,0,0,114,211,0,0,0,55,3, - 0,0,115,200,0,0,0,128,0,224,18,22,151,41,145,41, - 208,18,35,137,51,168,20,175,25,169,25,128,68,216,7,11, - 135,123,129,123,208,7,26,216,17,21,151,27,145,27,136,6, - 216,11,17,136,62,216,21,29,152,100,152,88,160,81,208,19, - 39,208,12,39,228,12,31,208,12,43,220,16,26,152,54,212, - 35,54,215,35,70,209,35,70,212,16,71,224,21,29,152,100, - 152,88,208,37,55,188,4,184,86,191,92,185,92,211,56,74, - 208,55,75,200,49,208,19,77,208,12,77,224,21,29,152,100, - 152,88,160,82,168,6,160,122,176,18,208,19,52,208,12,52, - 224,11,15,215,11,28,210,11,28,216,21,29,152,100,152,88, - 160,86,168,68,175,75,169,75,168,63,184,33,208,19,60,208, - 12,60,224,21,29,152,100,159,105,153,105,152,93,168,34,168, - 84,175,91,169,91,168,77,184,18,208,19,60,208,12,60,114, - 22,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,6,0,0,0,3,0,0,0,243,132,3,0,0,151,0, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,125,2,116,3,0,0,0,0,0,0, - 0,0,124,2,171,1,0,0,0,0,0,0,53,0,1,0, - 116,4,0,0,0,0,0,0,0,0,106,6,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,9, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,2,171,1,0,0,0,0,0,0,124,1,117,1, - 114,19,100,1,124,2,155,2,100,2,157,3,125,3,116,11, - 0,0,0,0,0,0,0,0,124,3,124,2,172,3,171,2, - 0,0,0,0,0,0,130,1,9,0,124,0,106,12,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 128,50,124,0,106,14,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,128,23,116,11,0,0,0,0, - 0,0,0,0,100,5,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,172,3,171,2, - 0,0,0,0,0,0,130,1,116,17,0,0,0,0,0,0, - 0,0,124,0,124,1,100,6,172,7,171,3,0,0,0,0, - 0,0,1,0,110,141,116,17,0,0,0,0,0,0,0,0, - 124,0,124,1,100,6,172,7,171,3,0,0,0,0,0,0, - 1,0,116,19,0,0,0,0,0,0,0,0,124,0,106,12, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,8,171,2,0,0,0,0,0,0,115,78,116,21, - 0,0,0,0,0,0,0,0,124,0,106,12,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,155,0,100,9,157,2,125,3,116,22, - 0,0,0,0,0,0,0,0,106,25,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,3,116,26, - 0,0,0,0,0,0,0,0,171,2,0,0,0,0,0,0, - 1,0,124,0,106,12,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,106,29,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,2,171,1, - 0,0,0,0,0,0,1,0,110,27,124,0,106,12,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,1,0, - 116,4,0,0,0,0,0,0,0,0,106,6,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,33, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 125,1,124,1,116,4,0,0,0,0,0,0,0,0,106,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,60,0,0,0,9,0,100,4, - 100,4,100,4,171,2,0,0,0,0,0,0,1,0,124,1, - 83,0,35,0,116,4,0,0,0,0,0,0,0,0,106,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,33,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,125,1,124,1,116,4,0,0,0,0,0,0, - 0,0,106,6,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,60,0,0,0, - 119,0,120,3,89,0,119,1,35,0,49,0,115,1,119,2, - 1,0,89,0,1,0,1,0,124,1,83,0,120,3,89,0, - 119,1,41,10,122,70,69,120,101,99,117,116,101,32,116,104, - 101,32,115,112,101,99,39,115,32,115,112,101,99,105,102,105, - 101,100,32,109,111,100,117,108,101,32,105,110,32,97,110,32, - 101,120,105,115,116,105,110,103,32,109,111,100,117,108,101,39, - 115,32,110,97,109,101,115,112,97,99,101,46,122,7,109,111, - 100,117,108,101,32,122,19,32,110,111,116,32,105,110,32,115, - 121,115,46,109,111,100,117,108,101,115,114,25,0,0,0,78, - 250,14,109,105,115,115,105,110,103,32,108,111,97,100,101,114, - 84,114,10,1,0,0,114,19,1,0,0,250,55,46,101,120, - 101,99,95,109,111,100,117,108,101,40,41,32,110,111,116,32, - 102,111,117,110,100,59,32,102,97,108,108,105,110,103,32,98, - 97,99,107,32,116,111,32,108,111,97,100,95,109,111,100,117, - 108,101,40,41,41,17,114,26,0,0,0,114,142,0,0,0, - 114,24,0,0,0,114,195,0,0,0,114,76,0,0,0,114, - 178,0,0,0,114,213,0,0,0,114,223,0,0,0,114,16, - 1,0,0,114,13,0,0,0,114,8,0,0,0,114,191,0, - 0,0,114,192,0,0,0,218,13,73,109,112,111,114,116,87, - 97,114,110,105,110,103,218,11,108,111,97,100,95,109,111,100, - 117,108,101,114,19,1,0,0,114,68,0,0,0,41,4,114, - 199,0,0,0,114,200,0,0,0,114,26,0,0,0,114,198, - 0,0,0,115,4,0,0,0,32,32,32,32,114,7,0,0, - 0,114,196,0,0,0,114,196,0,0,0,77,3,0,0,115, - 83,1,0,0,128,0,224,11,15,143,57,137,57,128,68,220, - 9,27,152,68,213,9,33,220,11,14,143,59,137,59,143,63, - 137,63,152,52,211,11,32,168,6,209,11,46,216,20,27,152, - 68,152,56,208,35,54,208,18,55,136,67,220,18,29,152,99, - 168,4,212,18,45,208,12,45,240,2,19,9,44,216,15,19, - 143,123,137,123,208,15,34,216,19,23,215,19,50,209,19,50, - 208,19,58,220,26,37,208,38,54,184,84,191,89,185,89,212, - 26,71,208,20,71,228,16,34,160,52,168,22,184,36,214,16, - 63,228,16,34,160,52,168,22,184,36,213,16,63,220,23,30, - 152,116,159,123,153,123,168,77,212,23,58,220,30,42,168,52, - 175,59,169,59,211,30,55,208,29,56,240,0,1,57,59,240, - 0,1,28,59,144,67,228,20,29,151,78,145,78,160,51,172, - 13,212,20,54,216,20,24,151,75,145,75,215,20,43,209,20, - 43,168,68,213,20,49,224,20,24,151,75,145,75,215,20,43, - 209,20,43,168,70,212,20,51,244,8,0,22,25,151,91,145, - 91,151,95,145,95,160,84,167,89,161,89,211,21,47,136,70, - 216,37,43,140,67,143,75,137,75,152,4,159,9,153,9,210, - 12,34,247,47,0,10,34,240,48,0,12,18,128,77,248,244, - 5,0,22,25,151,91,145,91,151,95,145,95,160,84,167,89, - 161,89,211,21,47,136,70,216,37,43,140,67,143,75,137,75, - 152,4,159,9,153,9,210,12,34,250,247,47,0,10,34,240, - 48,0,12,18,128,77,250,115,38,0,0,0,152,53,70,53, - 3,193,14,67,11,69,42,2,196,25,65,6,70,53,3,197, - 42,65,8,70,50,5,198,50,3,70,53,3,198,53,5,70, - 63,7,99,1,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,3,0,0,0,243,18,3,0,0,151,0,9,0, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,106,3,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,106,4,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,1,0,116,6,0,0,0,0, - 0,0,0,0,106,8,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,106,11,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,106,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,125,1,124,1,116,6, - 0,0,0,0,0,0,0,0,106,8,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,106,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,60,0,0,0,116,13,0,0,0,0,0,0,0,0, - 124,1,100,1,100,0,171,3,0,0,0,0,0,0,128,18, - 9,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,95,7,0,0,0,0, - 0,0,0,0,116,13,0,0,0,0,0,0,0,0,124,1, - 100,2,100,0,171,3,0,0,0,0,0,0,128,65,9,0, - 124,1,106,18,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,95,10,0,0,0,0,0,0, - 0,0,116,23,0,0,0,0,0,0,0,0,124,1,100,3, - 171,2,0,0,0,0,0,0,115,35,124,0,106,4,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,4,171,1,0,0,0,0,0,0,100,5, - 25,0,0,0,124,1,95,10,0,0,0,0,0,0,0,0, - 116,13,0,0,0,0,0,0,0,0,124,1,100,6,100,0, - 171,3,0,0,0,0,0,0,128,10,9,0,124,0,124,1, - 95,13,0,0,0,0,0,0,0,0,124,1,83,0,124,1, - 83,0,35,0,1,0,124,0,106,4,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,6,0,0, - 0,0,0,0,0,0,106,8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,118,0,114,70,116,6, - 0,0,0,0,0,0,0,0,106,8,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,11,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,125,1, - 124,1,116,6,0,0,0,0,0,0,0,0,106,8,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,60,0,0,0,130,0,120,3,89,0, - 119,1,35,0,116,16,0,0,0,0,0,0,0,0,36,0, - 114,3,1,0,89,0,140,218,119,0,120,3,89,0,119,1, - 35,0,116,16,0,0,0,0,0,0,0,0,36,0,114,3, - 1,0,89,0,140,155,119,0,120,3,89,0,119,1,35,0, - 116,16,0,0,0,0,0,0,0,0,36,0,114,4,1,0, - 89,0,124,1,83,0,119,0,120,3,89,0,119,1,41,7, - 78,114,203,0,0,0,114,13,1,0,0,114,7,1,0,0, - 114,244,0,0,0,114,125,0,0,0,114,204,0,0,0,41, - 14,114,213,0,0,0,114,28,1,0,0,114,26,0,0,0, - 114,24,0,0,0,114,195,0,0,0,114,68,0,0,0,114, - 15,0,0,0,114,203,0,0,0,114,4,0,0,0,114,11, - 0,0,0,114,13,1,0,0,114,13,0,0,0,114,245,0, - 0,0,114,204,0,0,0,114,20,1,0,0,115,2,0,0, + 0,0,0,14,0,83,6,51,5,36,0,41,8,122,38,82, + 101,116,117,114,110,32,116,104,101,32,114,101,112,114,32,116, + 111,32,117,115,101,32,102,111,114,32,116,104,101,32,109,111, + 100,117,108,101,46,114,238,0,0,0,114,239,0,0,0,114, + 241,0,0,0,122,18,32,40,110,97,109,101,115,112,97,99, + 101,41,32,102,114,111,109,32,114,242,0,0,0,114,243,0, + 0,0,114,240,0,0,0,41,9,114,26,0,0,0,114,251, + 0,0,0,114,246,0,0,0,114,19,1,0,0,218,10,105, + 115,105,110,115,116,97,110,99,101,114,53,1,0,0,114,45, + 1,0,0,114,54,1,0,0,114,12,1,0,0,41,3,114, + 232,0,0,0,114,26,0,0,0,114,246,0,0,0,115,3, + 0,0,0,32,32,32,114,7,0,0,0,114,244,0,0,0, + 114,244,0,0,0,55,3,0,0,115,203,0,0,0,128,0, + 224,18,22,151,41,145,41,209,18,35,137,51,168,20,175,25, + 169,25,128,68,216,7,11,135,123,129,123,209,7,26,216,17, + 21,151,27,145,27,136,6,216,11,17,137,62,216,21,29,152, + 100,153,88,160,81,208,19,39,208,12,39,228,12,31,209,12, + 43,220,16,26,152,54,212,35,54,215,35,70,209,35,70,215, + 16,71,209,16,71,224,21,29,152,100,153,88,208,37,55,188, + 4,184,86,191,92,185,92,211,56,74,208,55,75,200,49,208, + 19,77,208,12,77,224,21,29,152,100,153,88,160,82,168,6, + 161,122,176,18,208,19,52,208,12,52,224,11,15,215,11,28, + 215,11,28,216,21,29,152,100,153,88,160,86,168,68,175,75, + 169,75,169,63,184,33,208,19,60,208,12,60,224,21,29,152, + 100,159,105,153,105,153,93,168,34,168,84,175,91,169,91,168, + 77,184,18,208,19,60,208,12,60,114,22,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,3, + 0,0,0,243,130,3,0,0,149,0,85,0,82,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 110,2,91,3,0,0,0,0,0,0,0,0,85,2,53,1, + 0,0,0,0,0,0,2,0,32,0,91,4,0,0,0,0, + 0,0,0,0,82,6,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,9,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,2,53,1, + 0,0,0,0,0,0,85,1,76,1,97,16,0,0,83,1, + 85,2,60,2,14,0,83,2,51,3,110,3,91,11,0,0, + 0,0,0,0,0,0,88,50,83,3,57,2,101,1,30,0, + 85,0,82,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,99,44,0,0,85,0,82,14,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 99,20,0,0,91,11,0,0,0,0,0,0,0,0,83,5, + 85,0,82,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,3,57,2,101,1,91,17,0,0, + 0,0,0,0,0,0,88,1,83,6,83,7,57,3,32,0, + 79,142,91,17,0,0,0,0,0,0,0,0,88,1,83,6, + 83,7,57,3,32,0,91,19,0,0,0,0,0,0,0,0, + 85,0,82,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,8,53,2,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,100,78,0,0,91,21,0,0, + 0,0,0,0,0,0,85,0,82,12,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,14,0,83,9,51,2,110,3,91,22,0,0, + 0,0,0,0,0,0,82,25,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,3,91,26,0,0, + 0,0,0,0,0,0,53,2,0,0,0,0,0,0,32,0, + 85,0,82,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,82,29,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,2,53,1,0,0, + 0,0,0,0,32,0,79,27,85,0,82,12,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,31, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,1,53,1,0,0,0,0,0,0,32,0,91,4, + 0,0,0,0,0,0,0,0,82,6,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,82,33,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,0,82,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,110,1, + 85,1,91,4,0,0,0,0,0,0,0,0,82,6,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,0,82,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,39,0,0,0,30,0,83,4,83,4, + 83,4,53,2,0,0,0,0,0,0,32,0,85,1,36,0, + 33,0,91,4,0,0,0,0,0,0,0,0,82,6,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 82,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,0,82,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,110,1,85,1,91,4,0,0,0,0,0,0,0,0, + 82,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,0,82,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,39,0,0,0,102,0, + 61,3,31,0,102,1,33,0,44,0,40,0,0,0,0,0, + 0,0,100,1,0,0,102,2,32,0,31,0,32,0,32,0, + 85,1,36,0,61,3,31,0,102,1,41,10,122,70,69,120, + 101,99,117,116,101,32,116,104,101,32,115,112,101,99,39,115, + 32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,108, + 101,32,105,110,32,97,110,32,101,120,105,115,116,105,110,103, + 32,109,111,100,117,108,101,39,115,32,110,97,109,101,115,112, + 97,99,101,46,122,7,109,111,100,117,108,101,32,122,19,32, + 110,111,116,32,105,110,32,115,121,115,46,109,111,100,117,108, + 101,115,114,25,0,0,0,78,250,14,109,105,115,115,105,110, + 103,32,108,111,97,100,101,114,84,114,49,1,0,0,114,58, + 1,0,0,250,55,46,101,120,101,99,95,109,111,100,117,108, + 101,40,41,32,110,111,116,32,102,111,117,110,100,59,32,102, + 97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,108, + 111,97,100,95,109,111,100,117,108,101,40,41,41,17,114,26, + 0,0,0,114,169,0,0,0,114,24,0,0,0,114,228,0, + 0,0,114,86,0,0,0,114,209,0,0,0,114,246,0,0, + 0,114,0,1,0,0,114,55,1,0,0,114,13,0,0,0, + 114,8,0,0,0,114,224,0,0,0,114,225,0,0,0,218, + 13,73,109,112,111,114,116,87,97,114,110,105,110,103,218,11, + 108,111,97,100,95,109,111,100,117,108,101,114,58,1,0,0, + 114,77,0,0,0,41,4,114,232,0,0,0,114,233,0,0, + 0,114,26,0,0,0,114,231,0,0,0,115,4,0,0,0, + 32,32,32,32,114,7,0,0,0,114,229,0,0,0,114,229, + 0,0,0,77,3,0,0,115,83,1,0,0,128,0,224,11, + 15,143,57,137,57,128,68,220,9,27,152,68,213,9,33,220, + 11,14,143,59,137,59,143,63,137,63,152,52,211,11,32,168, + 6,210,11,46,216,20,27,152,68,153,56,208,35,54,208,18, + 55,136,67,220,18,29,152,99,209,18,45,208,12,45,240,2, + 19,9,44,216,15,19,143,123,137,123,209,15,34,216,19,23, + 215,19,50,209,19,50,209,19,58,220,26,37,208,38,54,184, + 84,191,89,185,89,209,26,71,208,20,71,228,16,34,160,52, + 184,36,211,16,63,228,16,34,160,52,184,36,210,16,63,220, + 23,30,152,116,159,123,153,123,168,77,215,23,58,209,23,58, + 220,30,42,168,52,175,59,169,59,211,30,55,208,29,56,240, + 0,1,57,59,240,0,1,28,59,144,67,228,20,29,151,78, + 145,78,160,51,172,13,212,20,54,216,20,24,151,75,145,75, + 215,20,43,209,20,43,168,68,213,20,49,224,20,24,151,75, + 145,75,215,20,43,209,20,43,168,70,212,20,51,244,8,0, + 22,25,151,91,145,91,151,95,145,95,160,84,167,89,161,89, + 211,21,47,136,70,216,37,43,140,67,143,75,137,75,152,4, + 159,9,153,9,210,12,34,247,47,0,10,34,240,48,0,12, + 18,128,77,248,244,5,0,22,25,151,91,145,91,151,95,145, + 95,160,84,167,89,161,89,211,21,47,136,70,216,37,43,140, + 67,143,75,137,75,152,4,159,9,153,9,210,12,34,250,247, + 47,0,10,34,212,9,33,240,48,0,12,18,128,77,250,115, + 38,0,0,0,152,51,70,47,3,193,12,67,7,69,36,2, + 196,19,65,6,70,47,3,197,36,65,8,70,44,5,198,44, + 3,70,47,3,198,47,10,70,62,7,99,1,0,0,0,0, + 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,243, + 42,3,0,0,149,0,30,0,85,0,82,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,3, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,0,82,4,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 32,0,91,6,0,0,0,0,0,0,0,0,82,8,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 82,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,0,82,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,110,1,85,1,91,6,0,0,0,0,0,0,0,0, + 82,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,0,82,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,39,0,0,0,91,13, + 0,0,0,0,0,0,0,0,85,1,83,1,83,0,53,3, + 0,0,0,0,0,0,99,18,0,0,30,0,85,0,82,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,1,108,7,0,0,0,0,0,0,0,0,91,13, + 0,0,0,0,0,0,0,0,85,1,83,2,83,0,53,3, + 0,0,0,0,0,0,99,70,0,0,30,0,85,1,82,18, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,1,108,10,0,0,0,0,0,0,0,0,91,23, + 0,0,0,0,0,0,0,0,85,1,83,3,53,2,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,100,35,0,0, + 85,0,82,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,82,25,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,4,53,1,0,0, + 0,0,0,0,83,5,5,0,0,0,85,1,108,10,0,0, + 0,0,0,0,0,0,91,13,0,0,0,0,0,0,0,0, + 85,1,83,6,83,0,53,3,0,0,0,0,0,0,99,9, + 0,0,30,0,88,1,108,13,0,0,0,0,0,0,0,0, + 85,1,36,0,85,1,36,0,33,0,32,0,85,0,82,4, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,91,6,0,0,0,0,0,0,0,0,82,8,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 59,0,0,0,97,70,0,0,91,6,0,0,0,0,0,0, + 0,0,82,8,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,82,11,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,0,82,4,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 53,1,0,0,0,0,0,0,110,1,85,1,91,6,0,0, + 0,0,0,0,0,0,82,8,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,0,82,4,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 39,0,0,0,101,0,61,3,31,0,102,1,33,0,91,16, + 0,0,0,0,0,0,0,0,7,0,97,3,0,0,32,0, + 31,0,78,227,102,0,61,3,31,0,102,1,33,0,91,16, + 0,0,0,0,0,0,0,0,7,0,97,3,0,0,32,0, + 31,0,78,159,102,0,61,3,31,0,102,1,33,0,91,16, + 0,0,0,0,0,0,0,0,7,0,97,4,0,0,32,0, + 31,0,85,1,36,0,102,0,61,3,31,0,102,1,41,7, + 78,114,236,0,0,0,114,52,1,0,0,114,46,1,0,0, + 114,25,1,0,0,114,146,0,0,0,114,237,0,0,0,41, + 14,114,246,0,0,0,114,67,1,0,0,114,26,0,0,0, + 114,24,0,0,0,114,228,0,0,0,114,77,0,0,0,114, + 15,0,0,0,114,236,0,0,0,114,4,0,0,0,114,11, + 0,0,0,114,52,1,0,0,114,13,0,0,0,114,26,1, + 0,0,114,237,0,0,0,114,59,1,0,0,115,2,0,0, 0,32,32,114,7,0,0,0,218,25,95,108,111,97,100,95, 98,97,99,107,119,97,114,100,95,99,111,109,112,97,116,105, - 98,108,101,114,30,1,0,0,107,3,0,0,115,89,1,0, + 98,108,101,114,69,1,0,0,107,3,0,0,115,90,1,0, 0,128,0,240,6,6,5,14,216,8,12,143,11,137,11,215, 8,31,209,8,31,160,4,167,9,161,9,212,8,42,244,16, 0,14,17,143,91,137,91,143,95,137,95,152,84,159,89,153, 89,211,13,39,128,70,216,29,35,132,67,135,75,129,75,144, 4,151,9,145,9,209,4,26,220,7,14,136,118,144,124,160, - 84,211,7,42,208,7,50,240,2,3,9,17,216,32,36,167, + 84,211,7,42,209,7,50,240,2,3,9,17,216,32,36,167, 11,161,11,136,70,212,12,29,244,6,0,8,15,136,118,144, - 125,160,100,211,7,43,208,7,51,240,2,8,9,17,240,8, + 125,160,100,211,7,43,209,7,51,240,2,8,9,17,240,8, 0,34,40,167,31,161,31,136,70,212,12,30,220,19,26,152, - 54,160,58,212,19,46,216,37,41,167,89,161,89,215,37,57, - 209,37,57,184,35,211,37,62,184,113,209,37,65,144,6,212, - 16,34,244,6,0,8,15,136,118,144,122,160,52,211,7,40, - 208,7,48,240,2,3,9,17,216,30,34,136,70,140,79,240, - 6,0,12,18,128,77,136,54,128,77,248,240,59,4,5,14, - 216,11,15,143,57,137,57,156,3,159,11,153,11,209,11,35, - 220,21,24,151,91,145,91,151,95,145,95,160,84,167,89,161, - 89,211,21,47,136,70,216,37,43,140,67,143,75,137,75,152, - 4,159,9,153,9,209,12,34,216,8,13,251,244,16,0,16, - 30,242,0,1,9,17,217,12,16,240,3,1,9,17,251,244, - 20,0,16,30,242,0,1,9,17,217,12,16,240,3,1,9, - 17,251,244,10,0,16,30,242,0,1,9,17,216,12,16,216, - 11,17,128,77,240,5,1,9,17,250,115,67,0,0,0,130, - 37,67,51,0,193,59,17,69,27,0,194,26,65,0,69,42, - 0,195,40,7,69,57,0,195,51,65,37,69,24,3,197,27, - 9,69,39,3,197,38,1,69,39,3,197,42,9,69,54,3, - 197,53,1,69,54,3,197,57,9,70,6,3,198,5,1,70, - 6,3,99,1,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,3,0,0,0,243,16,3,0,0,151,0,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,129,83,116,3,0,0,0,0,0,0,0,0, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,1,171,2,0,0,0,0,0,0, - 115,61,116,5,0,0,0,0,0,0,0,0,124,0,106,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,155,0,100,2,157,2, - 125,1,116,6,0,0,0,0,0,0,0,0,106,9,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,116,10,0,0,0,0,0,0,0,0,171,2,0,0, - 0,0,0,0,1,0,116,13,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,83,0,116,15,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 125,2,100,3,124,0,95,8,0,0,0,0,0,0,0,0, - 9,0,124,2,116,18,0,0,0,0,0,0,0,0,106,20, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,106,22,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,60,0,0,0,9,0,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,128,35,124,0,106,24,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,128,50,116,27, - 0,0,0,0,0,0,0,0,100,4,124,0,106,22,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 172,5,171,2,0,0,0,0,0,0,130,1,124,0,106,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,29,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 1,0,116,18,0,0,0,0,0,0,0,0,106,20,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,106,22,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,125,2,124,2,116,18,0,0,0,0,0,0,0,0, - 106,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,106,22,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,60,0,0,0,116,35, - 0,0,0,0,0,0,0,0,100,6,124,0,106,22,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,3,0,0,0,0,0,0,1,0, - 100,7,124,0,95,8,0,0,0,0,0,0,0,0,124,2, - 83,0,35,0,1,0,9,0,116,18,0,0,0,0,0,0, - 0,0,106,20,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,106,22,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,61,0,130,0, - 35,0,116,30,0,0,0,0,0,0,0,0,36,0,114,3, - 1,0,89,0,130,0,119,0,120,3,89,0,119,1,120,3, - 89,0,119,1,35,0,100,7,124,0,95,8,0,0,0,0, - 0,0,0,0,119,0,120,3,89,0,119,1,41,8,78,114, - 19,1,0,0,114,26,1,0,0,84,114,25,1,0,0,114, - 25,0,0,0,122,18,105,109,112,111,114,116,32,123,33,114, - 125,32,35,32,123,33,114,125,70,41,18,114,213,0,0,0, - 114,13,0,0,0,114,8,0,0,0,114,191,0,0,0,114, - 192,0,0,0,114,27,1,0,0,114,30,1,0,0,114,21, - 1,0,0,218,13,95,105,110,105,116,105,97,108,105,122,105, - 110,103,114,24,0,0,0,114,195,0,0,0,114,26,0,0, - 0,114,223,0,0,0,114,178,0,0,0,114,19,1,0,0, - 114,73,0,0,0,114,68,0,0,0,114,173,0,0,0,41, - 3,114,199,0,0,0,114,198,0,0,0,114,200,0,0,0, - 115,3,0,0,0,32,32,32,114,7,0,0,0,218,14,95, - 108,111,97,100,95,117,110,108,111,99,107,101,100,114,33,1, - 0,0,143,3,0,0,115,72,1,0,0,128,0,224,7,11, - 135,123,129,123,208,7,30,228,15,22,144,116,151,123,145,123, - 160,77,212,15,50,220,22,34,160,52,167,59,161,59,211,22, - 47,208,21,48,240,0,1,49,52,240,0,1,20,52,136,67, - 228,12,21,143,78,137,78,152,51,164,13,212,12,46,220,19, - 44,168,84,211,19,50,208,12,50,228,13,29,152,100,211,13, - 35,128,70,240,10,0,26,30,128,68,212,4,22,240,2,23, - 5,35,216,33,39,140,3,143,11,137,11,144,68,151,73,145, - 73,209,8,30,240,2,12,9,18,216,15,19,143,123,137,123, - 208,15,34,216,19,23,215,19,50,209,19,50,208,19,58,220, - 26,37,208,38,54,184,84,191,89,185,89,212,26,71,208,20, - 71,240,6,0,17,21,151,11,145,11,215,16,39,209,16,39, - 168,6,212,16,47,244,22,0,18,21,151,27,145,27,151,31, - 145,31,160,20,167,25,161,25,211,17,43,136,6,216,33,39, - 140,3,143,11,137,11,144,68,151,73,145,73,209,8,30,220, - 8,24,208,25,45,168,116,175,121,169,121,184,36,191,43,185, - 43,212,8,70,224,29,34,136,4,212,8,26,224,11,17,128, - 77,248,240,33,5,9,18,240,2,3,13,21,220,20,23,151, - 75,145,75,160,4,167,9,161,9,208,20,42,240,6,0,13, - 18,248,244,5,0,20,28,242,0,1,13,21,216,16,20,216, - 12,17,240,5,1,13,21,254,240,22,0,30,35,136,4,213, - 8,26,250,115,74,0,0,0,193,51,29,69,60,0,194,17, - 65,10,69,11,0,195,27,65,39,69,60,0,197,11,2,69, - 57,3,197,14,27,69,42,2,197,41,1,69,57,3,197,42, - 9,69,54,5,197,51,2,69,57,3,197,53,1,69,54,5, - 197,54,3,69,57,3,197,57,3,69,60,0,197,60,9,70, - 5,3,99,1,0,0,0,0,0,0,0,0,0,0,0,6, - 0,0,0,3,0,0,0,243,110,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,124,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,53,0,1,0,116,5,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,99,2, - 100,1,100,1,100,1,171,2,0,0,0,0,0,0,1,0, - 83,0,35,0,49,0,115,1,119,2,1,0,89,0,1,0, - 1,0,121,1,120,3,89,0,119,1,41,2,122,191,82,101, - 116,117,114,110,32,97,32,110,101,119,32,109,111,100,117,108, - 101,32,111,98,106,101,99,116,44,32,108,111,97,100,101,100, - 32,98,121,32,116,104,101,32,115,112,101,99,39,115,32,108, - 111,97,100,101,114,46,10,10,32,32,32,32,84,104,101,32, - 109,111,100,117,108,101,32,105,115,32,110,111,116,32,97,100, - 100,101,100,32,116,111,32,105,116,115,32,112,97,114,101,110, - 116,46,10,10,32,32,32,32,73,102,32,97,32,109,111,100, - 117,108,101,32,105,115,32,97,108,114,101,97,100,121,32,105, - 110,32,115,121,115,46,109,111,100,117,108,101,115,44,32,116, - 104,97,116,32,101,120,105,115,116,105,110,103,32,109,111,100, - 117,108,101,32,103,101,116,115,10,32,32,32,32,99,108,111, - 98,98,101,114,101,100,46,10,10,32,32,32,32,78,41,3, - 114,142,0,0,0,114,26,0,0,0,114,33,1,0,0,169, - 1,114,199,0,0,0,115,1,0,0,0,32,114,7,0,0, - 0,114,197,0,0,0,114,197,0,0,0,188,3,0,0,115, - 36,0,0,0,128,0,244,18,0,10,28,152,68,159,73,153, - 73,213,9,38,220,15,29,152,100,211,15,35,247,3,0,10, - 39,215,9,38,210,9,38,250,115,8,0,0,0,150,11,43, - 3,171,5,52,7,99,0,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,0,0,0,0,243,164,0,0,0,151, - 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,90, - 4,101,5,100,10,100,4,132,1,171,0,0,0,0,0,0, - 0,90,6,101,7,100,5,132,0,171,0,0,0,0,0,0, - 0,90,8,101,7,100,6,132,0,171,0,0,0,0,0,0, - 0,90,9,101,5,101,10,100,7,132,0,171,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,90,11,101,5,101, - 10,100,8,132,0,171,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,90,12,101,5,101,10,100,9,132,0,171, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,90, - 13,2,0,101,5,101,14,171,1,0,0,0,0,0,0,90, - 15,121,3,41,11,218,15,66,117,105,108,116,105,110,73,109, - 112,111,114,116,101,114,122,144,77,101,116,97,32,112,97,116, - 104,32,105,109,112,111,114,116,32,102,111,114,32,98,117,105, - 108,116,45,105,110,32,109,111,100,117,108,101,115,46,10,10, - 32,32,32,32,65,108,108,32,109,101,116,104,111,100,115,32, - 97,114,101,32,101,105,116,104,101,114,32,99,108,97,115,115, - 32,111,114,32,115,116,97,116,105,99,32,109,101,116,104,111, - 100,115,32,116,111,32,97,118,111,105,100,32,116,104,101,32, - 110,101,101,100,32,116,111,10,32,32,32,32,105,110,115,116, - 97,110,116,105,97,116,101,32,116,104,101,32,99,108,97,115, - 115,46,10,10,32,32,32,32,122,8,98,117,105,108,116,45, - 105,110,78,99,4,0,0,0,0,0,0,0,0,0,0,0, - 5,0,0,0,3,0,0,0,243,94,0,0,0,151,0,116, - 0,0,0,0,0,0,0,0,0,106,3,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,171, - 1,0,0,0,0,0,0,114,24,116,5,0,0,0,0,0, - 0,0,0,124,1,124,0,124,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,171, - 3,0,0,0,0,0,0,83,0,121,0,41,2,78,114,4, - 1,0,0,41,4,114,151,0,0,0,218,10,105,115,95,98, - 117,105,108,116,105,110,114,194,0,0,0,114,255,0,0,0, - 41,4,218,3,99,108,115,114,180,0,0,0,218,4,112,97, - 116,104,218,6,116,97,114,103,101,116,115,4,0,0,0,32, - 32,32,32,114,7,0,0,0,218,9,102,105,110,100,95,115, - 112,101,99,122,25,66,117,105,108,116,105,110,73,109,112,111, - 114,116,101,114,46,102,105,110,100,95,115,112,101,99,214,3, - 0,0,115,36,0,0,0,128,0,228,11,15,143,63,137,63, - 152,56,212,11,36,220,19,35,160,72,168,99,184,35,191,43, - 185,43,212,19,70,208,12,70,224,19,23,114,22,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,182,0,0,0,151,0,124,0,106,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,2,0,0,0,0,0,0,0,0,106,4,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 118,1,114,36,116,7,0,0,0,0,0,0,0,0,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,155,2,100,1,157,2,124,0,106,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 172,2,171,2,0,0,0,0,0,0,130,1,116,9,0,0, - 0,0,0,0,0,0,116,10,0,0,0,0,0,0,0,0, - 106,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,171,2,0,0,0,0,0,0,83,0, - 41,3,122,24,67,114,101,97,116,101,32,97,32,98,117,105, - 108,116,45,105,110,32,109,111,100,117,108,101,114,176,0,0, - 0,114,25,0,0,0,41,7,114,26,0,0,0,114,24,0, - 0,0,114,177,0,0,0,114,178,0,0,0,114,161,0,0, - 0,114,151,0,0,0,218,14,99,114,101,97,116,101,95,98, - 117,105,108,116,105,110,114,35,1,0,0,115,1,0,0,0, - 32,114,7,0,0,0,114,18,1,0,0,122,29,66,117,105, - 108,116,105,110,73,109,112,111,114,116,101,114,46,99,114,101, - 97,116,101,95,109,111,100,117,108,101,221,3,0,0,115,75, - 0,0,0,128,0,240,6,0,12,16,143,57,137,57,156,67, - 215,28,52,209,28,52,209,11,52,220,18,29,160,20,167,25, - 161,25,160,13,208,45,70,208,30,71,216,35,39,167,57,161, - 57,244,3,1,19,46,240,0,1,13,46,228,15,40,172,20, - 215,41,60,209,41,60,184,100,211,15,67,208,8,67,114,22, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,56,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,116,2,0,0,0,0,0, - 0,0,0,106,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,0,171,2,0,0,0,0,0, - 0,1,0,121,1,41,2,122,22,69,120,101,99,32,97,32, - 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,78, - 41,3,114,161,0,0,0,114,151,0,0,0,218,12,101,120, - 101,99,95,98,117,105,108,116,105,110,41,1,114,200,0,0, - 0,115,1,0,0,0,32,114,7,0,0,0,114,19,1,0, - 0,122,27,66,117,105,108,116,105,110,73,109,112,111,114,116, - 101,114,46,101,120,101,99,95,109,111,100,117,108,101,229,3, - 0,0,115,20,0,0,0,128,0,244,6,0,9,34,164,36, - 215,34,51,209,34,51,176,86,213,8,60,114,22,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,243,4,0,0,0,151,0,121,1,41,2, - 122,57,82,101,116,117,114,110,32,78,111,110,101,32,97,115, + 54,160,58,215,19,46,209,19,46,216,37,41,167,89,161,89, + 215,37,57,209,37,57,184,35,211,37,62,184,113,209,37,65, + 144,6,212,16,34,244,6,0,8,15,136,118,144,122,160,52, + 211,7,40,209,7,48,240,2,3,9,17,216,30,34,140,79, + 240,6,0,12,18,128,77,136,54,128,77,248,240,59,4,5, + 14,216,11,15,143,57,137,57,156,3,159,11,153,11,211,11, + 35,220,21,24,151,91,145,91,151,95,145,95,160,84,167,89, + 161,89,211,21,47,136,70,216,37,43,140,67,143,75,137,75, + 152,4,159,9,153,9,209,12,34,216,8,13,251,244,16,0, + 16,30,243,0,1,9,17,217,12,16,240,3,1,9,17,251, + 244,20,0,16,30,243,0,1,9,17,217,12,16,240,3,1, + 9,17,251,244,10,0,16,30,243,0,1,9,17,216,12,16, + 216,11,17,128,77,240,5,1,9,17,250,115,67,0,0,0, + 130,37,67,58,0,193,60,17,69,36,0,194,28,65,5,69, + 52,0,195,48,6,70,4,0,195,58,65,39,69,33,3,197, + 36,10,69,49,3,197,48,1,69,49,3,197,52,10,70,1, + 3,198,0,1,70,1,3,198,4,10,70,18,3,198,17,1, + 70,18,3,99,1,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,3,0,0,0,243,32,3,0,0,149,0,85, + 0,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,98,88,0,0,91,3,0,0,0,0,0, + 0,0,0,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,1,53,2,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,100,61,0,0,91, + 5,0,0,0,0,0,0,0,0,85,0,82,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 1,0,0,0,0,0,0,14,0,83,2,51,2,110,1,91, + 6,0,0,0,0,0,0,0,0,82,9,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,91, + 10,0,0,0,0,0,0,0,0,53,2,0,0,0,0,0, + 0,32,0,91,13,0,0,0,0,0,0,0,0,85,0,53, + 1,0,0,0,0,0,0,36,0,91,15,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,110,2,83, + 3,85,0,108,8,0,0,0,0,0,0,0,0,30,0,85, + 2,91,18,0,0,0,0,0,0,0,0,82,20,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 0,82,22,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,39,0,0,0,30,0,85,0,82,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,99,34,0,0,85,0,82,24,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,99,20,0,0,91, + 27,0,0,0,0,0,0,0,0,83,4,85,0,82,22,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,83,5,57,2,101,1,79,28,85,0,82,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82, + 29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,2,53,1,0,0,0,0,0,0,32,0,30, + 0,91,18,0,0,0,0,0,0,0,0,82,20,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82, + 33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,0,82,22,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,53,1,0,0,0,0,0, + 0,110,2,85,2,91,18,0,0,0,0,0,0,0,0,82, + 20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,0,82,22,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,39,0,0,0,91,35,0, + 0,0,0,0,0,0,0,83,6,85,0,82,22,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 0,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,3,0,0,0,0,0,0,32,0,83, + 7,85,0,108,8,0,0,0,0,0,0,0,0,85,2,36, + 0,33,0,32,0,30,0,91,18,0,0,0,0,0,0,0, + 0,82,20,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,0,82,22,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,9,0,101,0,33, + 0,91,30,0,0,0,0,0,0,0,0,7,0,97,3,0, + 0,32,0,31,0,101,0,102,0,61,3,31,0,102,1,61, + 3,31,0,102,1,33,0,83,7,85,0,108,8,0,0,0, + 0,0,0,0,0,102,0,61,3,31,0,102,1,41,8,78, + 114,58,1,0,0,114,65,1,0,0,84,114,64,1,0,0, + 114,25,0,0,0,122,18,105,109,112,111,114,116,32,123,33, + 114,125,32,35,32,123,33,114,125,70,41,18,114,246,0,0, + 0,114,13,0,0,0,114,8,0,0,0,114,224,0,0,0, + 114,225,0,0,0,114,66,1,0,0,114,69,1,0,0,114, + 60,1,0,0,218,13,95,105,110,105,116,105,97,108,105,122, + 105,110,103,114,24,0,0,0,114,228,0,0,0,114,26,0, + 0,0,114,0,1,0,0,114,209,0,0,0,114,58,1,0, + 0,114,83,0,0,0,114,77,0,0,0,114,204,0,0,0, + 41,3,114,232,0,0,0,114,231,0,0,0,114,233,0,0, + 0,115,3,0,0,0,32,32,32,114,7,0,0,0,218,14, + 95,108,111,97,100,95,117,110,108,111,99,107,101,100,114,72, + 1,0,0,143,3,0,0,115,80,1,0,0,128,0,224,7, + 11,135,123,129,123,209,7,30,228,15,22,144,116,151,123,145, + 123,160,77,215,15,50,209,15,50,220,22,34,160,52,167,59, + 161,59,211,22,47,208,21,48,240,0,1,49,52,240,0,1, + 20,52,136,67,228,12,21,143,78,137,78,152,51,164,13,212, + 12,46,220,19,44,168,84,211,19,50,208,12,50,228,13,29, + 152,100,211,13,35,128,70,240,10,0,26,30,128,68,212,4, + 22,240,2,23,5,35,216,33,39,140,3,143,11,137,11,144, + 68,151,73,145,73,209,8,30,240,2,12,9,18,216,15,19, + 143,123,137,123,209,15,34,216,19,23,215,19,50,209,19,50, + 209,19,58,220,26,37,208,38,54,184,84,191,89,185,89,209, + 26,71,208,20,71,240,3,0,20,59,240,8,0,17,21,151, + 11,145,11,215,16,39,209,16,39,168,6,213,16,47,244,22, + 0,18,21,151,27,145,27,151,31,145,31,160,20,167,25,161, + 25,211,17,43,136,6,216,33,39,140,3,143,11,137,11,144, + 68,151,73,145,73,209,8,30,220,8,24,208,25,45,168,116, + 175,121,169,121,184,36,191,43,185,43,212,8,70,224,29,34, + 136,4,212,8,26,224,11,17,128,77,248,240,33,5,9,18, + 240,2,3,13,21,220,20,23,151,75,145,75,160,4,167,9, + 161,9,208,20,42,240,6,0,13,18,248,244,5,0,20,28, + 243,0,1,13,21,216,16,20,216,12,17,240,5,1,13,21, + 254,240,22,0,30,35,136,4,213,8,26,250,115,85,0,0, + 0,193,57,29,70,4,0,194,23,46,69,18,0,195,5,1, + 70,4,0,195,6,27,69,18,0,195,33,65,40,70,4,0, + 197,18,2,70,1,3,197,21,27,69,49,2,197,48,1,70, + 1,3,197,49,10,69,62,5,197,59,2,70,1,3,197,61, + 1,69,62,5,197,62,3,70,1,3,198,1,3,70,4,0, + 198,4,9,70,13,3,99,1,0,0,0,0,0,0,0,0, + 0,0,0,6,0,0,0,3,0,0,0,243,120,0,0,0, + 149,0,91,1,0,0,0,0,0,0,0,0,85,0,82,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,2,0,32,0,91,5, + 0,0,0,0,0,0,0,0,85,0,53,1,0,0,0,0, + 0,0,115,2,83,1,83,1,83,1,53,2,0,0,0,0, + 0,0,32,0,36,0,33,0,44,0,40,0,0,0,0,0, + 0,0,100,1,0,0,102,2,32,0,31,0,32,0,32,0, + 103,1,61,3,31,0,102,1,41,2,122,175,82,101,116,117, + 114,110,32,97,32,110,101,119,32,109,111,100,117,108,101,32, + 111,98,106,101,99,116,44,32,108,111,97,100,101,100,32,98, + 121,32,116,104,101,32,115,112,101,99,39,115,32,108,111,97, + 100,101,114,46,10,10,84,104,101,32,109,111,100,117,108,101, + 32,105,115,32,110,111,116,32,97,100,100,101,100,32,116,111, + 32,105,116,115,32,112,97,114,101,110,116,46,10,10,73,102, + 32,97,32,109,111,100,117,108,101,32,105,115,32,97,108,114, + 101,97,100,121,32,105,110,32,115,121,115,46,109,111,100,117, + 108,101,115,44,32,116,104,97,116,32,101,120,105,115,116,105, + 110,103,32,109,111,100,117,108,101,32,103,101,116,115,10,99, + 108,111,98,98,101,114,101,100,46,10,10,78,41,3,114,169, + 0,0,0,114,26,0,0,0,114,72,1,0,0,169,1,114, + 232,0,0,0,115,1,0,0,0,32,114,7,0,0,0,114, + 230,0,0,0,114,230,0,0,0,188,3,0,0,115,36,0, + 0,0,128,0,244,18,0,10,28,152,68,159,73,153,73,213, + 9,38,220,15,29,152,100,211,15,35,247,3,0,10,39,215, + 9,38,215,9,38,250,115,8,0,0,0,150,11,43,3,171, + 10,57,7,99,0,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,0,0,0,0,243,174,0,0,0,149,0,92, + 0,114,1,83,0,114,2,83,1,114,3,83,2,114,4,83, + 3,114,5,92,6,83,12,83,5,26,0,106,1,53,0,0, + 0,0,0,0,0,114,7,92,8,83,6,26,0,53,0,0, + 0,0,0,0,0,114,9,92,8,83,7,26,0,53,0,0, + 0,0,0,0,0,114,10,92,6,92,11,83,8,26,0,53, + 0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,114, + 12,92,6,92,11,83,9,26,0,53,0,0,0,0,0,0, + 0,53,0,0,0,0,0,0,0,114,13,92,6,92,11,83, + 10,26,0,53,0,0,0,0,0,0,0,53,0,0,0,0, + 0,0,0,114,14,92,6,34,0,92,15,53,1,0,0,0, + 0,0,0,114,16,83,11,114,17,103,4,41,13,218,15,66, + 117,105,108,116,105,110,73,109,112,111,114,116,101,114,105,203, + 3,0,0,122,132,77,101,116,97,32,112,97,116,104,32,105, + 109,112,111,114,116,32,102,111,114,32,98,117,105,108,116,45, + 105,110,32,109,111,100,117,108,101,115,46,10,10,65,108,108, + 32,109,101,116,104,111,100,115,32,97,114,101,32,101,105,116, + 104,101,114,32,99,108,97,115,115,32,111,114,32,115,116,97, + 116,105,99,32,109,101,116,104,111,100,115,32,116,111,32,97, + 118,111,105,100,32,116,104,101,32,110,101,101,100,32,116,111, + 10,105,110,115,116,97,110,116,105,97,116,101,32,116,104,101, + 32,99,108,97,115,115,46,10,10,122,8,98,117,105,108,116, + 45,105,110,78,99,4,0,0,0,0,0,0,0,0,0,0, + 0,6,0,0,0,3,0,0,0,243,96,0,0,0,149,0, + 91,0,0,0,0,0,0,0,0,0,82,3,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,1, + 53,1,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 97,20,0,0,91,5,0,0,0,0,0,0,0,0,88,16, + 85,0,82,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,1,57,3,36,0,103,0,41,2, + 78,114,43,1,0,0,41,4,114,181,0,0,0,218,10,105, + 115,95,98,117,105,108,116,105,110,114,227,0,0,0,114,38, + 1,0,0,41,4,218,3,99,108,115,114,211,0,0,0,218, + 4,112,97,116,104,218,6,116,97,114,103,101,116,115,4,0, + 0,0,32,32,32,32,114,7,0,0,0,218,9,102,105,110, + 100,95,115,112,101,99,218,25,66,117,105,108,116,105,110,73, + 109,112,111,114,116,101,114,46,102,105,110,100,95,115,112,101, + 99,214,3,0,0,115,37,0,0,0,128,0,228,11,15,143, + 63,137,63,152,56,215,11,36,209,11,36,220,19,35,160,72, + 184,35,191,43,185,43,209,19,70,208,12,70,224,19,23,114, + 22,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,3,0,0,0,243,182,0,0,0,149,0, + 85,0,82,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,91,2,0,0,0,0,0,0,0,0, + 82,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,59,1,0,0,97,34,0,0,91,7,0,0, + 0,0,0,0,0,0,85,0,82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,60,2,14,0, + 83,1,51,2,85,0,82,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,2,57,2,101,1, + 91,9,0,0,0,0,0,0,0,0,91,10,0,0,0,0, + 0,0,0,0,82,12,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,0,53,2,0,0,0,0, + 0,0,36,0,41,3,122,24,67,114,101,97,116,101,32,97, 32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,101, - 115,32,100,111,32,110,111,116,32,104,97,118,101,32,99,111, - 100,101,32,111,98,106,101,99,116,115,46,78,114,31,0,0, - 0,169,2,114,40,1,0,0,114,180,0,0,0,115,2,0, - 0,0,32,32,114,7,0,0,0,218,8,103,101,116,95,99, - 111,100,101,122,24,66,117,105,108,116,105,110,73,109,112,111, - 114,116,101,114,46,103,101,116,95,99,111,100,101,234,3,0, - 0,243,7,0,0,0,128,0,240,8,0,16,20,114,22,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,243,4,0,0,0,151,0,121,1, - 41,2,122,56,82,101,116,117,114,110,32,78,111,110,101,32, - 97,115,32,98,117,105,108,116,45,105,110,32,109,111,100,117, - 108,101,115,32,100,111,32,110,111,116,32,104,97,118,101,32, - 115,111,117,114,99,101,32,99,111,100,101,46,78,114,31,0, - 0,0,114,49,1,0,0,115,2,0,0,0,32,32,114,7, - 0,0,0,218,10,103,101,116,95,115,111,117,114,99,101,122, + 114,207,0,0,0,114,25,0,0,0,41,7,114,26,0,0, + 0,114,24,0,0,0,114,208,0,0,0,114,209,0,0,0, + 114,192,0,0,0,114,181,0,0,0,218,14,99,114,101,97, + 116,101,95,98,117,105,108,116,105,110,114,74,1,0,0,115, + 1,0,0,0,32,114,7,0,0,0,114,57,1,0,0,218, + 29,66,117,105,108,116,105,110,73,109,112,111,114,116,101,114, + 46,99,114,101,97,116,101,95,109,111,100,117,108,101,221,3, + 0,0,115,75,0,0,0,128,0,240,6,0,12,16,143,57, + 137,57,156,67,215,28,52,209,28,52,211,11,52,220,18,29, + 160,20,167,25,161,25,161,13,208,45,70,208,30,71,216,35, + 39,167,57,161,57,241,3,1,19,46,240,0,1,13,46,228, + 15,40,172,20,215,41,60,209,41,60,184,100,211,15,67,208, + 8,67,114,22,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,56,0,0, + 0,149,0,91,1,0,0,0,0,0,0,0,0,91,2,0, + 0,0,0,0,0,0,0,82,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,0,53,2,0, + 0,0,0,0,0,32,0,103,1,41,2,122,22,69,120,101, + 99,32,97,32,98,117,105,108,116,45,105,110,32,109,111,100, + 117,108,101,78,41,3,114,192,0,0,0,114,181,0,0,0, + 218,12,101,120,101,99,95,98,117,105,108,116,105,110,41,1, + 114,233,0,0,0,115,1,0,0,0,32,114,7,0,0,0, + 114,58,1,0,0,218,27,66,117,105,108,116,105,110,73,109, + 112,111,114,116,101,114,46,101,120,101,99,95,109,111,100,117, + 108,101,229,3,0,0,115,20,0,0,0,128,0,244,6,0, + 9,34,164,36,215,34,51,209,34,51,176,86,213,8,60,114, + 22,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,243,4,0,0,0,149,0, + 103,1,41,2,122,57,82,101,116,117,114,110,32,78,111,110, + 101,32,97,115,32,98,117,105,108,116,45,105,110,32,109,111, + 100,117,108,101,115,32,100,111,32,110,111,116,32,104,97,118, + 101,32,99,111,100,101,32,111,98,106,101,99,116,115,46,78, + 114,32,0,0,0,169,2,114,79,1,0,0,114,211,0,0, + 0,115,2,0,0,0,32,32,114,7,0,0,0,218,8,103, + 101,116,95,99,111,100,101,218,24,66,117,105,108,116,105,110, + 73,109,112,111,114,116,101,114,46,103,101,116,95,99,111,100, + 101,234,3,0,0,243,7,0,0,0,128,0,240,8,0,16, + 20,114,22,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,3,0,0,0,243,4,0,0,0, + 149,0,103,1,41,2,122,56,82,101,116,117,114,110,32,78, + 111,110,101,32,97,115,32,98,117,105,108,116,45,105,110,32, + 109,111,100,117,108,101,115,32,100,111,32,110,111,116,32,104, + 97,118,101,32,115,111,117,114,99,101,32,99,111,100,101,46, + 78,114,32,0,0,0,114,91,1,0,0,115,2,0,0,0, + 32,32,114,7,0,0,0,218,10,103,101,116,95,115,111,117, + 114,99,101,218,26,66,117,105,108,116,105,110,73,109,112,111, + 114,116,101,114,46,103,101,116,95,115,111,117,114,99,101,240, + 3,0,0,114,94,1,0,0,114,22,0,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, + 0,0,243,4,0,0,0,149,0,103,1,41,2,122,52,82, + 101,116,117,114,110,32,70,97,108,115,101,32,97,115,32,98, + 117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,32, + 97,114,101,32,110,101,118,101,114,32,112,97,99,107,97,103, + 101,115,46,70,114,32,0,0,0,114,91,1,0,0,115,2, + 0,0,0,32,32,114,7,0,0,0,114,253,0,0,0,218, 26,66,117,105,108,116,105,110,73,109,112,111,114,116,101,114, - 46,103,101,116,95,115,111,117,114,99,101,240,3,0,0,114, - 51,1,0,0,114,22,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,243,4, - 0,0,0,151,0,121,1,41,2,122,52,82,101,116,117,114, - 110,32,70,97,108,115,101,32,97,115,32,98,117,105,108,116, - 45,105,110,32,109,111,100,117,108,101,115,32,97,114,101,32, - 110,101,118,101,114,32,112,97,99,107,97,103,101,115,46,70, - 114,31,0,0,0,114,49,1,0,0,115,2,0,0,0,32, - 32,114,7,0,0,0,114,220,0,0,0,122,26,66,117,105, - 108,116,105,110,73,109,112,111,114,116,101,114,46,105,115,95, - 112,97,99,107,97,103,101,246,3,0,0,115,7,0,0,0, - 128,0,240,8,0,16,21,114,22,0,0,0,169,2,78,78, - 41,16,114,11,0,0,0,114,10,0,0,0,114,3,0,0, - 0,114,12,0,0,0,114,255,0,0,0,218,11,99,108,97, - 115,115,109,101,116,104,111,100,114,43,1,0,0,114,58,0, - 0,0,114,18,1,0,0,114,19,1,0,0,114,184,0,0, - 0,114,50,1,0,0,114,53,1,0,0,114,220,0,0,0, - 114,201,0,0,0,114,28,1,0,0,114,31,0,0,0,114, - 22,0,0,0,114,7,0,0,0,114,37,1,0,0,114,37, - 1,0,0,203,3,0,0,115,171,0,0,0,132,0,241,4, - 5,5,8,240,14,0,15,25,128,71,224,5,16,242,2,4, - 5,24,243,3,0,6,17,240,2,4,5,24,240,12,0,6, - 18,241,2,5,5,68,1,243,3,0,6,18,240,2,5,5, - 68,1,240,14,0,6,18,241,2,2,5,61,243,3,0,6, - 18,240,2,2,5,61,240,8,0,6,17,216,5,22,241,2, - 2,5,20,243,3,0,6,23,243,3,0,6,17,240,4,2, - 5,20,240,8,0,6,17,216,5,22,241,2,2,5,20,243, - 3,0,6,23,243,3,0,6,17,240,4,2,5,20,240,8, - 0,6,17,216,5,22,241,2,2,5,21,243,3,0,6,23, - 243,3,0,6,17,240,4,2,5,21,241,8,0,19,30,208, - 30,47,211,18,48,129,75,114,22,0,0,0,114,37,1,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,0,0,0,0,243,198,0,0,0,151,0,101,0,90, - 1,100,0,90,2,100,1,90,3,100,2,90,4,101,5,100, - 3,132,0,171,0,0,0,0,0,0,0,90,6,101,5,100, - 13,100,5,132,1,171,0,0,0,0,0,0,0,90,7,101, - 5,100,14,100,6,132,1,171,0,0,0,0,0,0,0,90, - 8,101,9,100,7,132,0,171,0,0,0,0,0,0,0,90, - 10,101,9,100,8,132,0,171,0,0,0,0,0,0,0,90, - 11,101,5,100,9,132,0,171,0,0,0,0,0,0,0,90, - 12,101,5,101,13,100,10,132,0,171,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,90,14,101,5,101,13,100, - 11,132,0,171,0,0,0,0,0,0,0,171,0,0,0,0, - 0,0,0,90,15,101,5,101,13,100,12,132,0,171,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,90,16,121, - 4,41,15,218,14,70,114,111,122,101,110,73,109,112,111,114, - 116,101,114,122,142,77,101,116,97,32,112,97,116,104,32,105, - 109,112,111,114,116,32,102,111,114,32,102,114,111,122,101,110, - 32,109,111,100,117,108,101,115,46,10,10,32,32,32,32,65, + 46,105,115,95,112,97,99,107,97,103,101,246,3,0,0,115, + 7,0,0,0,128,0,240,8,0,16,21,114,22,0,0,0, + 114,32,0,0,0,169,2,78,78,41,18,114,11,0,0,0, + 114,10,0,0,0,114,3,0,0,0,114,33,0,0,0,114, + 12,0,0,0,114,38,1,0,0,218,11,99,108,97,115,115, + 109,101,116,104,111,100,114,82,1,0,0,114,65,0,0,0, + 114,57,1,0,0,114,58,1,0,0,114,216,0,0,0,114, + 92,1,0,0,114,96,1,0,0,114,253,0,0,0,114,234, + 0,0,0,114,67,1,0,0,114,35,0,0,0,114,32,0, + 0,0,114,22,0,0,0,114,7,0,0,0,114,76,1,0, + 0,114,76,1,0,0,203,3,0,0,115,171,0,0,0,134, + 0,241,4,5,5,8,240,14,0,15,25,128,71,224,5,16, + 243,2,4,5,24,243,3,0,6,17,240,2,4,5,24,240, + 12,0,6,18,241,2,5,5,68,1,243,3,0,6,18,240, + 2,5,5,68,1,240,14,0,6,18,241,2,2,5,61,243, + 3,0,6,18,240,2,2,5,61,240,8,0,6,17,216,5, + 22,241,2,2,5,20,243,3,0,6,23,243,3,0,6,17, + 240,4,2,5,20,240,8,0,6,17,216,5,22,241,2,2, + 5,20,243,3,0,6,23,243,3,0,6,17,240,4,2,5, + 20,240,8,0,6,17,216,5,22,241,2,2,5,21,243,3, + 0,6,23,243,3,0,6,17,240,4,2,5,21,241,8,0, + 19,30,208,30,47,211,18,48,131,75,114,22,0,0,0,114, + 76,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,0,0,0,0,243,210,0,0,0,149,0, + 92,0,114,1,83,0,114,2,83,1,114,3,83,2,114,4, + 83,3,114,5,92,6,83,4,26,0,53,0,0,0,0,0, + 0,0,114,7,92,6,83,15,83,6,26,0,106,1,53,0, + 0,0,0,0,0,0,114,8,92,6,83,16,83,7,26,0, + 106,1,53,0,0,0,0,0,0,0,114,9,92,10,83,8, + 26,0,53,0,0,0,0,0,0,0,114,11,92,10,83,9, + 26,0,53,0,0,0,0,0,0,0,114,12,92,6,83,10, + 26,0,53,0,0,0,0,0,0,0,114,13,92,6,92,14, + 83,11,26,0,53,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,114,15,92,6,92,14,83,12,26,0,53,0, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,114,16, + 92,6,92,14,83,13,26,0,53,0,0,0,0,0,0,0, + 53,0,0,0,0,0,0,0,114,17,83,14,114,18,103,5, + 41,17,218,14,70,114,111,122,101,110,73,109,112,111,114,116, + 101,114,105,255,3,0,0,122,130,77,101,116,97,32,112,97, + 116,104,32,105,109,112,111,114,116,32,102,111,114,32,102,114, + 111,122,101,110,32,109,111,100,117,108,101,115,46,10,10,65, 108,108,32,109,101,116,104,111,100,115,32,97,114,101,32,101, 105,116,104,101,114,32,99,108,97,115,115,32,111,114,32,115, 116,97,116,105,99,32,109,101,116,104,111,100,115,32,116,111, 32,97,118,111,105,100,32,116,104,101,32,110,101,101,100,32, - 116,111,10,32,32,32,32,105,110,115,116,97,110,116,105,97, - 116,101,32,116,104,101,32,99,108,97,115,115,46,10,10,32, - 32,32,32,218,6,102,114,111,122,101,110,99,2,0,0,0, - 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, - 243,18,6,0,0,151,0,124,1,106,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,2,124, - 2,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,125,3,124,3,144,1,128,88,116,5,0, - 0,0,0,0,0,0,0,124,1,171,1,0,0,0,0,0, - 0,106,7,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,1,100,0,171,2,0,0,0,0,0, - 0,125,4,124,4,115,7,74,0,100,2,171,0,0,0,0, - 0,0,0,130,1,116,9,0,0,0,0,0,0,0,0,124, - 1,100,3,171,2,0,0,0,0,0,0,125,5,116,10,0, - 0,0,0,0,0,0,0,106,13,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,106,14,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,124,5,107,40,0,0,115, - 7,74,0,124,5,171,0,0,0,0,0,0,0,130,1,124, - 0,106,17,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,4,124,2,106,18,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,5,171, - 3,0,0,0,0,0,0,92,2,0,0,125,6,125,7,2, - 0,116,21,0,0,0,0,0,0,0,0,116,22,0,0,0, - 0,0,0,0,0,106,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,124,6,124,4,172,4,171,2,0,0,0,0,0,0,124, - 2,95,1,0,0,0,0,0,0,0,0,124,2,106,26,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,125,8,124,5,114,43,124,8,103,0,107,40,0,0,115, - 7,74,0,124,8,171,0,0,0,0,0,0,0,130,1,124, - 7,114,38,124,2,106,26,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,29,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,5,124, - 7,171,2,0,0,0,0,0,0,1,0,110,9,124,8,129, - 7,74,0,124,8,171,0,0,0,0,0,0,0,130,1,116, - 9,0,0,0,0,0,0,0,0,124,1,100,6,171,2,0, - 0,0,0,0,0,114,17,74,0,124,1,106,30,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,130,1,124,6,114,8,9,0,124, - 6,124,1,95,15,0,0,0,0,0,0,0,0,124,5,144, - 1,114,195,124,1,106,34,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,8,107,55,0,0,144, - 1,114,179,124,1,106,34,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,103,0,107,40,0,0,115, - 17,74,0,124,1,106,34,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,130,1,124,1,106,34,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,37,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,8,171, - 1,0,0,0,0,0,0,1,0,144,1,110,118,124,2,106, + 116,111,10,105,110,115,116,97,110,116,105,97,116,101,32,116, + 104,101,32,99,108,97,115,115,46,10,10,218,6,102,114,111, + 122,101,110,99,2,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,3,0,0,0,243,200,6,0,0,149,0,85, + 1,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,110,2,85,2,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,110,3,85, + 3,71,1,99,115,0,0,91,5,0,0,0,0,0,0,0, + 0,85,1,53,1,0,0,0,0,0,0,82,7,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, + 1,83,0,53,2,0,0,0,0,0,0,110,4,85,4,40, + 0,0,0,0,0,0,0,100,7,0,0,23,0,83,2,53, + 0,0,0,0,0,0,0,101,1,91,9,0,0,0,0,0, + 0,0,0,85,1,83,3,53,2,0,0,0,0,0,0,110, + 5,91,10,0,0,0,0,0,0,0,0,82,13,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 1,82,14,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,1,0,0,0,0,0,0,85,5,58, + 88,0,0,100,7,0,0,23,0,85,5,53,0,0,0,0, + 0,0,0,101,1,85,0,82,17,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,88,66,82,18,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,5,53,3,0,0,0,0,0,0,117,2,0,0,112, + 103,91,21,0,0,0,0,0,0,0,0,91,22,0,0,0, + 0,0,0,0,0,82,24,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,53,1,0,0,0,0,0, + 0,34,0,85,6,85,4,83,4,57,2,85,2,108,1,0, + 0,0,0,0,0,0,0,85,2,82,26,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,110,8,85, + 5,40,0,0,0,0,0,0,0,97,49,0,0,85,8,47, + 0,58,88,0,0,100,7,0,0,23,0,85,8,53,0,0, + 0,0,0,0,0,101,1,85,7,40,0,0,0,0,0,0, + 0,97,28,0,0,85,2,82,26,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,82,29,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, + 5,85,7,53,2,0,0,0,0,0,0,32,0,79,10,85, + 8,98,7,0,0,23,0,85,8,53,0,0,0,0,0,0, + 0,101,1,91,9,0,0,0,0,0,0,0,0,85,1,83, + 6,53,2,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,17,0,0,23,0,85,1,82,30,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,101,1,85,6,40,0,0,0,0,0,0, + 0,97,7,0,0,30,0,88,97,108,15,0,0,0,0,0, + 0,0,0,85,5,40,0,0,0,0,0,0,0,97,76,0, + 0,85,1,82,34,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,8,58,119,0,0,97,60,0, + 0,85,1,82,34,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,47,0,58,88,0,0,100,17,0, + 0,23,0,85,1,82,34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0, + 0,101,1,85,1,82,34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,37,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,8,53, + 1,0,0,0,0,0,0,32,0,71,1,79,175,85,2,82, 26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,125,8,124,8,100,0,117,1,125,5,116,39,0, - 0,0,0,0,0,0,0,116,5,0,0,0,0,0,0,0, - 0,124,3,171,1,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,100,7,100,8,103,2,107,40,0,0,115,7,74, - 0,124,3,171,0,0,0,0,0,0,0,130,1,124,3,106, - 40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,114,109,124,0,106,17,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,3,106,40,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,2,106,18,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,5,171,3,0,0,0,0,0, - 0,92,2,0,0,125,9,125,7,124,3,106,42,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 9,107,40,0,0,115,19,74,0,124,3,106,42,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 9,102,2,171,0,0,0,0,0,0,0,130,1,124,7,114, - 15,124,8,124,7,103,1,107,40,0,0,115,72,74,0,124, - 8,124,7,102,2,171,0,0,0,0,0,0,0,130,1,124, - 8,124,5,114,2,103,0,110,1,100,0,107,40,0,0,115, - 54,74,0,124,8,171,0,0,0,0,0,0,0,130,1,100, - 0,125,9,124,3,106,42,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,129,17,74,0,124,3,106, - 42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,130,1,124,8,124, - 5,114,2,103,0,110,1,100,0,107,40,0,0,115,7,74, - 0,124,8,171,0,0,0,0,0,0,0,130,1,124,9,114, - 48,116,9,0,0,0,0,0,0,0,0,124,1,100,6,171, - 2,0,0,0,0,0,0,115,2,74,0,130,1,124,1,106, - 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,9,107,40,0,0,115,48,74,0,124,1,106, - 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,9,102,2,171,0,0,0,0,0,0,0,130, - 1,116,9,0,0,0,0,0,0,0,0,124,1,100,6,171, - 2,0,0,0,0,0,0,114,17,74,0,124,1,106,30,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,130,1,124,5,114,48,116, - 9,0,0,0,0,0,0,0,0,124,1,100,3,171,2,0, - 0,0,0,0,0,115,2,74,0,130,1,124,1,106,34,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,8,107,40,0,0,115,48,74,0,124,1,106,34,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,8,102,2,171,0,0,0,0,0,0,0,130,1,116, - 9,0,0,0,0,0,0,0,0,124,1,100,3,171,2,0, - 0,0,0,0,0,114,17,74,0,124,1,106,34,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,130,1,124,2,106,44,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114, - 2,74,0,130,1,121,0,35,0,116,32,0,0,0,0,0, - 0,0,0,36,0,114,4,1,0,89,0,144,1,140,225,119, - 0,120,3,89,0,119,1,41,9,78,218,12,95,95,111,114, - 105,103,110,97,109,101,95,95,122,39,115,101,101,32,80,121, - 73,109,112,111,114,116,95,73,109,112,111,114,116,70,114,111, - 122,101,110,77,111,100,117,108,101,79,98,106,101,99,116,40, - 41,114,7,1,0,0,169,2,114,214,0,0,0,218,8,111, - 114,105,103,110,97,109,101,114,125,0,0,0,114,212,0,0, - 0,114,214,0,0,0,114,63,1,0,0,41,23,114,204,0, - 0,0,114,219,0,0,0,218,4,118,97,114,115,114,68,0, - 0,0,114,13,0,0,0,114,151,0,0,0,218,17,105,115, - 95,102,114,111,122,101,110,95,112,97,99,107,97,103,101,114, - 11,0,0,0,218,17,95,114,101,115,111,108,118,101,95,102, - 105,108,101,110,97,109,101,114,26,0,0,0,114,5,0,0, - 0,114,24,0,0,0,218,14,105,109,112,108,101,109,101,110, - 116,97,116,105,111,110,114,223,0,0,0,218,6,105,110,115, - 101,114,116,114,212,0,0,0,114,4,0,0,0,114,7,1, - 0,0,218,6,101,120,116,101,110,100,218,6,115,111,114,116, - 101,100,114,63,1,0,0,114,214,0,0,0,114,233,0,0, - 0,41,10,114,40,1,0,0,114,200,0,0,0,114,199,0, - 0,0,218,5,115,116,97,116,101,114,63,1,0,0,218,5, - 105,115,112,107,103,114,214,0,0,0,218,6,112,107,103,100, - 105,114,114,7,1,0,0,114,212,0,0,0,115,10,0,0, - 0,32,32,32,32,32,32,32,32,32,32,114,7,0,0,0, - 218,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101, - 122,29,70,114,111,122,101,110,73,109,112,111,114,116,101,114, - 46,95,102,105,120,95,117,112,95,109,111,100,117,108,101,10, - 4,0,0,115,11,3,0,0,128,0,224,15,21,143,127,137, - 127,136,4,216,16,20,215,16,33,209,16,33,136,5,216,11, - 16,137,61,244,8,0,24,28,152,70,147,124,215,23,39,209, - 23,39,168,14,184,4,211,23,61,136,72,217,19,27,208,12, - 70,208,29,70,211,12,70,144,56,220,20,27,152,70,160,74, - 211,20,47,136,69,220,19,23,215,19,41,209,19,41,168,38, - 175,47,169,47,211,19,58,184,101,210,19,67,208,12,74,192, - 85,211,12,74,208,19,67,216,31,34,215,31,52,209,31,52, - 176,88,184,116,191,121,185,121,200,37,211,31,80,209,12,28, - 136,72,144,102,216,32,56,164,4,164,83,215,37,55,209,37, - 55,211,32,56,216,25,33,216,25,33,244,5,3,33,14,136, - 68,212,12,29,240,8,0,24,28,215,23,54,209,23,54,136, - 72,217,15,20,216,23,31,160,50,146,126,208,16,47,160,120, - 211,16,47,144,126,217,19,25,216,20,24,215,20,51,209,20, - 51,215,20,58,209,20,58,184,49,184,102,213,20,69,224,23, - 31,208,23,39,208,16,49,168,24,211,16,49,208,23,39,244, - 6,0,24,31,152,118,160,122,212,23,50,208,12,67,176,70, - 183,79,177,79,211,12,67,208,19,50,217,15,23,240,2,3, - 17,25,216,38,46,144,70,148,79,242,6,0,16,21,216,19, - 25,151,63,145,63,160,104,211,19,46,216,27,33,159,63,153, - 63,168,98,210,27,48,208,20,65,176,38,183,47,177,47,211, - 20,65,208,27,48,216,20,26,151,79,145,79,215,20,42,209, - 20,42,168,56,214,20,52,240,8,0,24,28,215,23,54,209, - 23,54,136,72,216,20,28,160,68,208,20,40,136,69,228,19, - 25,156,36,152,117,155,43,211,19,38,168,58,176,122,208,42, - 66,210,19,66,208,12,73,192,69,211,12,73,208,19,66,216, - 15,20,143,126,138,126,240,6,0,22,25,215,21,42,209,21, - 42,168,53,175,62,169,62,184,52,191,57,185,57,192,101,211, - 21,76,241,3,1,17,19,144,24,152,54,224,23,28,151,126, - 145,126,168,24,210,23,49,208,16,77,176,69,183,78,177,78, - 192,72,208,51,77,211,16,77,208,23,49,217,19,25,216,27, - 35,168,6,160,120,210,27,47,208,20,67,176,40,184,70,208, - 49,67,211,20,67,208,27,47,224,27,35,169,101,169,2,184, - 20,210,27,62,208,20,72,192,8,211,20,72,208,27,62,224, - 27,31,144,8,216,23,28,151,126,145,126,208,23,45,208,16, - 61,168,117,175,126,169,126,211,16,61,208,23,45,216,23,31, - 169,37,161,66,176,84,210,23,58,208,16,68,184,72,211,16, - 68,208,23,58,225,15,23,220,23,30,152,118,160,122,212,23, - 50,208,16,50,208,23,50,216,23,29,151,127,145,127,168,40, - 210,23,50,208,16,79,176,86,183,95,177,95,192,104,208,52, - 79,211,16,79,208,23,50,228,27,34,160,54,168,58,212,27, - 54,208,16,71,184,6,191,15,185,15,211,16,71,208,23,54, - 217,15,20,220,23,30,152,118,160,122,212,23,50,208,16,50, - 208,23,50,216,23,29,151,127,145,127,168,40,210,23,50,208, - 16,79,176,86,183,95,177,95,192,104,208,52,79,211,16,79, - 208,23,50,228,27,34,160,54,168,58,212,27,54,208,16,71, - 184,6,191,15,185,15,211,16,71,208,23,54,216,19,23,215, - 19,36,210,19,36,208,8,36,208,15,36,208,19,36,248,244, - 75,1,0,24,38,242,0,1,17,25,218,20,24,240,3,1, - 17,25,250,115,18,0,0,0,196,29,7,75,57,0,203,57, - 9,76,6,3,204,5,1,76,6,3,78,99,4,0,0,0, - 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, - 243,140,1,0,0,151,0,124,1,114,17,116,1,0,0,0, - 0,0,0,0,0,116,2,0,0,0,0,0,0,0,0,100, - 1,100,0,171,3,0,0,0,0,0,0,115,1,121,2,9, - 0,124,0,106,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,125,4,124,1,124,2,107,55,0, - 0,114,32,124,1,106,11,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,6,171,1,0,0,0, - 0,0,0,114,13,124,1,100,7,100,0,26,0,125,1,124, - 3,115,8,124,1,155,0,100,8,157,2,125,1,110,2,100, - 9,125,3,124,1,106,13,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,10,124,4,171,2,0, - 0,0,0,0,0,125,5,124,3,114,33,116,2,0,0,0, - 0,0,0,0,0,106,14,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,155,0,124,4,155,0,124, - 5,155,0,157,3,125,6,124,6,155,0,124,4,155,0,100, - 11,157,3,125,7,124,7,124,6,102,2,83,0,100,0,125, - 6,116,2,0,0,0,0,0,0,0,0,106,14,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,155, - 0,124,4,155,0,124,5,155,0,100,12,157,4,125,7,124, - 7,124,6,102,2,83,0,35,0,116,6,0,0,0,0,0, - 0,0,0,36,0,114,33,1,0,116,2,0,0,0,0,0, - 0,0,0,106,8,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,3,107,40,0,0,114,2,100, - 4,110,1,100,5,120,1,125,4,124,0,95,2,0,0,0, - 0,0,0,0,0,89,0,140,160,119,0,120,3,89,0,119, - 1,41,13,78,218,11,95,115,116,100,108,105,98,95,100,105, - 114,114,55,1,0,0,218,5,119,105,110,51,50,218,1,92, - 218,1,47,218,1,60,114,138,0,0,0,122,9,46,95,95, - 105,110,105,116,95,95,70,114,244,0,0,0,122,11,95,95, - 105,110,105,116,95,95,46,112,121,122,3,46,112,121,41,8, - 114,15,0,0,0,114,24,0,0,0,218,4,95,83,69,80, - 114,4,0,0,0,218,8,112,108,97,116,102,111,114,109,114, - 168,0,0,0,114,20,0,0,0,114,76,1,0,0,41,8, - 114,40,1,0,0,114,180,0,0,0,218,5,97,108,105,97, - 115,114,72,1,0,0,218,3,115,101,112,218,7,114,101,108, - 102,105,108,101,114,73,1,0,0,114,214,0,0,0,115,8, - 0,0,0,32,32,32,32,32,32,32,32,114,7,0,0,0, - 114,66,1,0,0,122,32,70,114,111,122,101,110,73,109,112, - 111,114,116,101,114,46,95,114,101,115,111,108,118,101,95,102, - 105,108,101,110,97,109,101,79,4,0,0,115,249,0,0,0, - 128,0,225,15,23,156,119,164,115,168,77,184,52,212,31,64, - 216,19,29,240,2,3,9,70,1,216,18,21,151,40,145,40, - 136,67,240,8,0,12,20,144,117,210,11,28,216,15,23,215, - 15,34,209,15,34,160,51,212,15,39,216,27,35,160,65,160, - 66,152,60,144,8,217,23,28,216,34,42,160,26,168,57,208, - 31,53,145,72,224,24,29,144,5,216,18,26,215,18,34,209, - 18,34,160,51,168,3,211,18,44,136,7,217,11,16,220,24, - 27,159,15,153,15,208,23,40,168,19,168,5,168,103,168,89, - 208,21,55,136,70,216,26,32,152,24,160,35,160,21,160,107, - 208,23,50,136,72,240,8,0,16,24,152,22,208,15,31,208, - 8,31,240,5,0,22,26,136,70,220,26,29,159,47,153,47, - 208,25,42,168,51,168,37,176,7,168,121,184,3,208,23,60, - 136,72,216,15,23,152,22,208,15,31,208,8,31,248,244,35, - 0,16,30,242,0,1,9,70,1,220,37,40,167,92,161,92, - 176,87,210,37,60,153,84,192,35,208,12,69,136,67,144,35, - 150,40,240,3,1,9,70,1,250,115,17,0,0,0,150,12, - 66,25,0,194,25,39,67,3,3,195,2,1,67,3,3,99, - 4,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, - 3,0,0,0,243,50,1,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,116,2,0,0,0,0,0,0,0,0,106, + 0,0,0,110,8,85,8,83,0,76,1,110,5,91,39,0, + 0,0,0,0,0,0,0,91,5,0,0,0,0,0,0,0, + 0,85,3,53,1,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,83,7,83,8,47,2,58,88,0,0,100,7,0, + 0,23,0,85,3,53,0,0,0,0,0,0,0,101,1,85, + 3,82,40,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,120,0, + 0,85,0,82,17,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,3,82,40,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,2,82, + 18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,5,53,3,0,0,0,0,0,0,117,2,0, + 0,112,151,85,3,82,42,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,9,58,88,0,0,100, + 19,0,0,23,0,85,3,82,42,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,9,52,2,53, + 0,0,0,0,0,0,0,101,1,85,7,40,0,0,0,0, + 0,0,0,97,15,0,0,88,135,47,1,58,88,0,0,100, + 8,0,0,23,0,88,135,52,2,53,0,0,0,0,0,0, + 0,101,1,79,75,88,133,40,0,0,0,0,0,0,0,97, + 2,0,0,47,0,79,1,83,0,58,88,0,0,100,7,0, + 0,23,0,85,8,53,0,0,0,0,0,0,0,101,1,79, + 53,83,0,110,9,85,3,82,42,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,98,17,0,0,23, + 0,85,3,82,42,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,101, + 1,88,133,40,0,0,0,0,0,0,0,97,2,0,0,47, + 0,79,1,83,0,58,88,0,0,100,7,0,0,23,0,85, + 8,53,0,0,0,0,0,0,0,101,1,85,9,40,0,0, + 0,0,0,0,0,97,55,0,0,91,9,0,0,0,0,0, + 0,0,0,85,1,83,6,53,2,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,100,2,0,0,23,0,101,1,85, + 1,82,30,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,9,58,88,0,0,100,19,0,0,23, + 0,85,1,82,30,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,9,52,2,53,0,0,0,0, + 0,0,0,101,1,79,34,91,9,0,0,0,0,0,0,0, + 0,85,1,83,6,53,2,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,97,17,0,0,23,0,85,1,82,30,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,53,0,0,0,0,0,0,0,101,1,85,5,40,0,0, + 0,0,0,0,0,97,55,0,0,91,9,0,0,0,0,0, + 0,0,0,85,1,83,3,53,2,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,100,2,0,0,23,0,101,1,85, + 1,82,34,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,8,58,88,0,0,100,19,0,0,23, + 0,85,1,82,34,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,8,52,2,53,0,0,0,0, + 0,0,0,101,1,79,34,91,9,0,0,0,0,0,0,0, + 0,85,1,83,3,53,2,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,97,17,0,0,23,0,85,1,82,34,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,53,0,0,0,0,0,0,0,101,1,85,2,82,44,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,97,2,0,0,23,0,101, + 1,103,0,33,0,91,32,0,0,0,0,0,0,0,0,7, + 0,97,4,0,0,32,0,31,0,71,2,78,37,102,0,61, + 3,31,0,102,1,41,9,78,218,12,95,95,111,114,105,103, + 110,97,109,101,95,95,122,39,115,101,101,32,80,121,73,109, + 112,111,114,116,95,73,109,112,111,114,116,70,114,111,122,101, + 110,77,111,100,117,108,101,79,98,106,101,99,116,40,41,114, + 46,1,0,0,169,2,114,247,0,0,0,218,8,111,114,105, + 103,110,97,109,101,114,146,0,0,0,114,245,0,0,0,114, + 247,0,0,0,114,108,1,0,0,41,23,114,237,0,0,0, + 114,252,0,0,0,218,4,118,97,114,115,114,77,0,0,0, + 114,13,0,0,0,114,181,0,0,0,218,17,105,115,95,102, + 114,111,122,101,110,95,112,97,99,107,97,103,101,114,11,0, + 0,0,218,17,95,114,101,115,111,108,118,101,95,102,105,108, + 101,110,97,109,101,114,26,0,0,0,114,5,0,0,0,114, + 24,0,0,0,218,14,105,109,112,108,101,109,101,110,116,97, + 116,105,111,110,114,0,1,0,0,218,6,105,110,115,101,114, + 116,114,245,0,0,0,114,4,0,0,0,114,46,1,0,0, + 218,6,101,120,116,101,110,100,218,6,115,111,114,116,101,100, + 114,108,1,0,0,114,247,0,0,0,114,12,1,0,0,41, + 10,114,79,1,0,0,114,233,0,0,0,114,232,0,0,0, + 218,5,115,116,97,116,101,114,108,1,0,0,218,5,105,115, + 112,107,103,114,247,0,0,0,218,6,112,107,103,100,105,114, + 114,46,1,0,0,114,245,0,0,0,115,10,0,0,0,32, + 32,32,32,32,32,32,32,32,32,114,7,0,0,0,218,14, + 95,102,105,120,95,117,112,95,109,111,100,117,108,101,218,29, + 70,114,111,122,101,110,73,109,112,111,114,116,101,114,46,95, + 102,105,120,95,117,112,95,109,111,100,117,108,101,10,4,0, + 0,115,14,3,0,0,128,0,224,15,21,143,127,137,127,136, + 4,216,16,20,215,16,33,209,16,33,136,5,216,11,16,138, + 61,244,8,0,24,28,152,70,147,124,215,23,39,209,23,39, + 168,14,184,4,211,23,61,136,72,222,19,27,208,12,70,208, + 29,70,211,12,70,144,56,220,20,27,152,70,160,74,211,20, + 47,136,69,220,19,23,215,19,41,209,19,41,168,38,175,47, + 169,47,211,19,58,184,101,211,19,67,208,12,74,192,85,211, + 12,74,208,19,67,216,31,34,215,31,52,209,31,52,176,88, + 191,121,185,121,200,37,211,31,80,209,12,28,136,72,220,32, + 36,164,83,215,37,55,209,37,55,212,32,56,216,25,33,216, + 25,33,241,5,3,33,14,136,68,212,12,29,240,8,0,24, + 28,215,23,54,209,23,54,136,72,222,15,20,216,23,31,160, + 50,147,126,208,16,47,160,120,211,16,47,144,126,222,19,25, + 216,20,24,215,20,51,209,20,51,215,20,58,209,20,58,184, + 49,184,102,212,20,69,248,224,23,31,209,23,39,208,16,49, + 168,24,211,16,49,208,23,39,244,6,0,24,31,152,118,160, + 122,215,23,50,209,23,50,208,12,67,176,70,183,79,177,79, + 211,12,67,208,19,50,222,15,23,240,2,3,17,25,216,38, + 46,148,79,246,6,0,16,21,216,19,25,151,63,145,63,160, + 104,211,19,46,216,27,33,159,63,153,63,168,98,211,27,48, + 208,20,65,176,38,183,47,177,47,211,20,65,208,27,48,216, + 20,26,151,79,145,79,215,20,42,209,20,42,168,56,212,20, + 52,249,240,8,0,24,28,215,23,54,209,23,54,136,72,216, + 20,28,160,68,208,20,40,136,69,228,19,25,156,36,152,117, + 155,43,211,19,38,168,58,176,122,208,42,66,211,19,66,208, + 12,73,192,69,211,12,73,208,19,66,216,15,20,143,126,143, + 126,240,6,0,22,25,215,21,42,209,21,42,168,53,175,62, + 169,62,184,52,191,57,185,57,192,101,211,21,76,241,3,1, + 17,19,144,24,224,23,28,151,126,145,126,168,24,211,23,49, + 208,16,77,176,69,183,78,177,78,192,72,208,51,77,211,16, + 77,208,23,49,222,19,25,216,27,35,160,120,211,27,47,208, + 20,67,176,40,208,49,67,211,20,67,209,27,47,224,27,35, + 173,101,169,2,184,20,211,27,62,208,20,72,192,8,211,20, + 72,209,27,62,224,27,31,144,8,216,23,28,151,126,145,126, + 209,23,45,208,16,61,168,117,175,126,169,126,211,16,61,208, + 23,45,216,23,31,173,37,161,66,176,84,211,23,58,208,16, + 68,184,72,211,16,68,208,23,58,230,15,23,220,23,30,152, + 118,160,122,215,23,50,209,23,50,208,16,50,208,23,50,216, + 23,29,151,127,145,127,168,40,211,23,50,208,16,79,176,86, + 183,95,177,95,192,104,208,52,79,211,16,79,209,23,50,228, + 27,34,160,54,168,58,215,27,54,209,27,54,208,16,71,184, + 6,191,15,185,15,211,16,71,208,23,54,222,15,20,220,23, + 30,152,118,160,122,215,23,50,209,23,50,208,16,50,208,23, + 50,216,23,29,151,127,145,127,168,40,211,23,50,208,16,79, + 176,86,183,95,177,95,192,104,208,52,79,211,16,79,209,23, + 50,228,27,34,160,54,168,58,215,27,54,209,27,54,208,16, + 71,184,6,191,15,185,15,211,16,71,208,23,54,216,19,23, + 215,19,36,215,19,36,208,8,36,208,15,36,208,19,36,248, + 244,75,1,0,24,38,243,0,1,17,25,218,20,24,240,3, + 1,17,25,250,115,18,0,0,0,196,53,6,77,19,0,205, + 19,10,77,33,3,205,32,1,77,33,3,78,99,4,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, + 0,243,188,1,0,0,149,0,85,1,40,0,0,0,0,0, + 0,0,97,22,0,0,91,1,0,0,0,0,0,0,0,0, + 91,2,0,0,0,0,0,0,0,0,83,1,83,0,53,3, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,100,1, + 0,0,103,2,30,0,85,0,82,4,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,110,4,88,18, + 58,119,0,0,97,42,0,0,85,1,82,11,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,6, + 53,1,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 97,18,0,0,85,1,83,7,83,0,4,0,110,1,85,3, + 40,0,0,0,0,0,0,0,100,5,0,0,85,1,14,0, + 83,8,51,2,110,1,79,2,83,9,110,3,85,1,82,13, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,10,85,4,53,2,0,0,0,0,0,0,110,5, + 85,3,40,0,0,0,0,0,0,0,97,32,0,0,91,2, + 0,0,0,0,0,0,0,0,82,14,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,14,0,85,4, + 14,0,85,5,14,0,51,3,110,6,85,6,14,0,85,4, + 14,0,83,11,51,3,110,7,88,118,52,2,36,0,83,0, + 110,6,91,2,0,0,0,0,0,0,0,0,82,14,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 14,0,85,4,14,0,85,5,14,0,83,12,51,4,110,7, + 88,118,52,2,36,0,33,0,91,6,0,0,0,0,0,0, + 0,0,7,0,97,33,0,0,32,0,91,2,0,0,0,0, + 0,0,0,0,82,8,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,83,3,58,88,0,0,97,2, + 0,0,83,4,79,1,83,5,61,1,111,64,108,2,0,0, + 0,0,0,0,0,0,31,0,78,174,102,0,61,3,31,0, + 102,1,41,13,78,218,11,95,115,116,100,108,105,98,95,100, + 105,114,114,100,1,0,0,218,5,119,105,110,51,50,218,1, + 92,218,1,47,218,1,60,114,162,0,0,0,122,9,46,95, + 95,105,110,105,116,95,95,70,114,25,1,0,0,122,11,95, + 95,105,110,105,116,95,95,46,112,121,122,3,46,112,121,41, + 8,114,15,0,0,0,114,24,0,0,0,218,4,95,83,69, + 80,114,4,0,0,0,218,8,112,108,97,116,102,111,114,109, + 114,199,0,0,0,114,20,0,0,0,114,122,1,0,0,41, + 8,114,79,1,0,0,114,211,0,0,0,218,5,97,108,105, + 97,115,114,117,1,0,0,218,3,115,101,112,218,7,114,101, + 108,102,105,108,101,114,118,1,0,0,114,247,0,0,0,115, + 8,0,0,0,32,32,32,32,32,32,32,32,114,7,0,0, + 0,114,111,1,0,0,218,32,70,114,111,122,101,110,73,109, + 112,111,114,116,101,114,46,95,114,101,115,111,108,118,101,95, + 102,105,108,101,110,97,109,101,79,4,0,0,115,248,0,0, + 0,128,0,230,15,23,156,119,164,115,168,77,184,52,215,31, + 64,209,31,64,216,19,29,240,2,3,9,70,1,216,18,21, + 151,40,145,40,136,67,240,8,0,12,20,211,11,28,216,15, + 23,215,15,34,209,15,34,160,51,215,15,39,209,15,39,216, + 27,35,160,65,160,66,152,60,144,8,222,23,28,216,34,42, + 160,26,168,57,208,31,53,144,72,248,224,24,29,144,5,216, + 18,26,215,18,34,209,18,34,160,51,168,3,211,18,44,136, + 7,222,11,16,220,24,27,159,15,153,15,208,23,40,168,19, + 168,5,168,103,168,89,208,21,55,136,70,216,26,32,152,24, + 160,35,160,21,160,107,208,23,50,136,72,240,8,0,16,24, + 208,15,31,208,8,31,240,5,0,22,26,136,70,220,26,29, + 159,47,153,47,208,25,42,168,51,168,37,176,7,168,121,184, + 3,208,23,60,136,72,216,15,23,208,15,31,208,8,31,248, + 244,35,0,16,30,243,0,1,9,70,1,220,37,40,167,92, + 161,92,176,87,211,37,60,153,84,192,35,208,12,69,136,67, + 150,40,240,3,1,9,70,1,250,115,17,0,0,0,160,12, + 66,48,0,194,48,40,67,27,3,195,26,1,67,27,3,99, + 4,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0, + 3,0,0,0,243,42,1,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,91,2,0,0,0,0,0,0,0,0,82, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,1,171,2,0,0,0,0,0,0,125,4,124, - 4,128,1,121,0,124,4,92,3,0,0,125,5,125,6,125, - 7,116,7,0,0,0,0,0,0,0,0,124,1,124,0,124, - 0,106,8,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,6,172,1,171,4,0,0,0,0,0, - 0,125,8,124,0,106,11,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,7,124,1,124,6,171, - 3,0,0,0,0,0,0,92,2,0,0,125,9,125,10,2, - 0,116,13,0,0,0,0,0,0,0,0,116,14,0,0,0, - 0,0,0,0,0,106,16,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,124,9,124,7,172,2,171,2,0,0,0,0,0,0,124, - 8,95,9,0,0,0,0,0,0,0,0,124,10,114,28,124, - 8,106,20,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,106,23,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,3,124,10,171,2,0, - 0,0,0,0,0,1,0,124,8,83,0,41,4,78,114,253, - 0,0,0,114,62,1,0,0,114,125,0,0,0,41,12,114, - 161,0,0,0,114,151,0,0,0,218,11,102,105,110,100,95, - 102,114,111,122,101,110,114,194,0,0,0,114,255,0,0,0, - 114,66,1,0,0,114,5,0,0,0,114,24,0,0,0,114, - 67,1,0,0,114,219,0,0,0,114,223,0,0,0,114,68, - 1,0,0,41,11,114,40,1,0,0,114,180,0,0,0,114, - 41,1,0,0,114,42,1,0,0,218,4,105,110,102,111,218, - 1,95,114,72,1,0,0,114,63,1,0,0,114,199,0,0, - 0,114,214,0,0,0,114,73,1,0,0,115,11,0,0,0, - 32,32,32,32,32,32,32,32,32,32,32,114,7,0,0,0, - 114,43,1,0,0,122,24,70,114,111,122,101,110,73,109,112, - 111,114,116,101,114,46,102,105,110,100,95,115,112,101,99,104, - 4,0,0,115,157,0,0,0,128,0,228,15,40,172,20,215, - 41,57,209,41,57,184,56,211,15,68,136,4,216,11,15,136, - 60,216,19,23,240,26,0,30,34,209,8,26,136,1,136,53, - 144,40,220,15,31,160,8,168,35,216,39,42,167,123,161,123, - 216,43,48,244,5,2,16,50,136,4,240,6,0,28,31,215, - 27,48,209,27,48,176,24,184,56,192,85,211,27,75,209,8, - 24,136,8,144,38,216,28,52,156,68,164,19,215,33,51,209, - 33,51,211,28,52,216,21,29,216,21,29,244,5,3,29,10, - 136,4,212,8,25,241,8,0,12,18,216,12,16,215,12,43, - 209,12,43,215,12,50,209,12,50,176,49,176,102,212,12,61, - 216,15,19,136,11,114,22,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, - 144,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, - 124,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,125,1, - 9,0,124,0,106,4,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,106,6,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,125,2,124,2, - 114,7,124,2,124,1,95,4,0,0,0,0,0,0,0,0, - 124,1,83,0,35,0,116,10,0,0,0,0,0,0,0,0, - 36,0,114,4,1,0,89,0,124,1,83,0,119,0,120,3, - 89,0,119,1,41,1,122,22,83,101,116,32,95,95,102,105, - 108,101,95,95,44,32,105,102,32,97,98,108,101,46,41,6, - 114,27,0,0,0,114,26,0,0,0,114,219,0,0,0,114, - 214,0,0,0,114,212,0,0,0,114,4,0,0,0,41,3, - 114,199,0,0,0,114,200,0,0,0,114,214,0,0,0,115, - 3,0,0,0,32,32,32,114,7,0,0,0,114,18,1,0, - 0,122,28,70,114,111,122,101,110,73,109,112,111,114,116,101, - 114,46,99,114,101,97,116,101,95,109,111,100,117,108,101,134, - 4,0,0,115,84,0,0,0,128,0,244,6,0,18,29,152, - 84,159,89,153,89,211,17,39,136,6,240,2,6,9,43,216, - 23,27,215,23,40,209,23,40,215,23,49,209,23,49,136,72, - 241,8,0,16,24,216,34,42,144,6,148,15,216,15,21,136, - 13,248,244,11,0,16,30,242,0,1,9,17,216,12,16,240, - 8,0,16,22,136,13,240,11,1,9,17,250,115,15,0,0, - 0,151,22,56,0,184,9,65,5,3,193,4,1,65,5,3, - 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,148,0,0,0,151,0,124,0,106,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,125,1,124,1,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,125,2,116,5,0,0, - 0,0,0,0,0,0,116,6,0,0,0,0,0,0,0,0, - 106,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,2,171,2,0,0,0,0,0,0,125,3, - 116,11,0,0,0,0,0,0,0,0,124,3,124,0,106,12, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,1,0,121,0,114,2, - 0,0,0,41,7,114,204,0,0,0,114,26,0,0,0,114, - 161,0,0,0,114,151,0,0,0,218,17,103,101,116,95,102, - 114,111,122,101,110,95,111,98,106,101,99,116,218,4,101,120, - 101,99,114,16,0,0,0,41,4,114,200,0,0,0,114,199, - 0,0,0,114,26,0,0,0,218,4,99,111,100,101,115,4, - 0,0,0,32,32,32,32,114,7,0,0,0,114,19,1,0, - 0,122,26,70,114,111,122,101,110,73,109,112,111,114,116,101, - 114,46,101,120,101,99,95,109,111,100,117,108,101,147,4,0, - 0,115,52,0,0,0,128,0,224,15,21,143,127,137,127,136, - 4,216,15,19,143,121,137,121,136,4,220,15,40,172,20,215, - 41,63,209,41,63,192,20,211,15,70,136,4,220,8,12,136, - 84,144,54,151,63,145,63,213,8,35,114,22,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,212,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,124,1,171,2,0,0,0,0,0, - 0,125,2,116,2,0,0,0,0,0,0,0,0,106,5,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,171,1,0,0,0,0,0,0,125,3,124,3,128, - 2,74,0,130,1,124,3,92,3,0,0,125,4,125,5,125, - 6,124,6,124,2,95,3,0,0,0,0,0,0,0,0,116, - 9,0,0,0,0,0,0,0,0,124,2,171,1,0,0,0, - 0,0,0,106,11,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,2,100,1,171,2,0,0,0, - 0,0,0,1,0,124,5,114,7,103,0,124,2,95,6,0, - 0,0,0,0,0,0,0,124,0,106,15,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,2,171, - 1,0,0,0,0,0,0,1,0,124,2,83,0,41,3,122, - 95,76,111,97,100,32,97,32,102,114,111,122,101,110,32,109, - 111,100,117,108,101,46,10,10,32,32,32,32,32,32,32,32, + 0,0,0,85,1,53,2,0,0,0,0,0,0,110,4,85, + 4,99,1,0,0,103,0,85,4,117,3,0,0,112,86,110, + 7,91,7,0,0,0,0,0,0,0,0,88,16,85,0,82, + 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,6,83,1,57,4,110,8,85,0,82,11,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,88,113,85,6,53,3,0,0,0,0,0,0,117,2,0, + 0,112,154,91,13,0,0,0,0,0,0,0,0,91,14,0, + 0,0,0,0,0,0,0,82,16,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,34,0,85,9,85,7,83,2,57,2,85,8,108, + 9,0,0,0,0,0,0,0,0,85,10,40,0,0,0,0, + 0,0,0,97,28,0,0,85,8,82,20,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,23,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,83,3,85,10,53,2,0,0,0,0,0,0,32,0,85, + 8,36,0,41,4,78,114,36,1,0,0,114,107,1,0,0, + 114,146,0,0,0,41,12,114,192,0,0,0,114,181,0,0, + 0,218,11,102,105,110,100,95,102,114,111,122,101,110,114,227, + 0,0,0,114,38,1,0,0,114,111,1,0,0,114,5,0, + 0,0,114,24,0,0,0,114,112,1,0,0,114,252,0,0, + 0,114,0,1,0,0,114,113,1,0,0,41,11,114,79,1, + 0,0,114,211,0,0,0,114,80,1,0,0,114,81,1,0, + 0,218,4,105,110,102,111,218,1,95,114,117,1,0,0,114, + 108,1,0,0,114,232,0,0,0,114,247,0,0,0,114,118, + 1,0,0,115,11,0,0,0,32,32,32,32,32,32,32,32, + 32,32,32,114,7,0,0,0,114,82,1,0,0,218,24,70, + 114,111,122,101,110,73,109,112,111,114,116,101,114,46,102,105, + 110,100,95,115,112,101,99,104,4,0,0,115,147,0,0,0, + 128,0,228,15,40,172,20,215,41,57,209,41,57,184,56,211, + 15,68,136,4,216,11,15,137,60,216,19,23,240,26,0,30, + 34,209,8,26,136,1,144,40,220,15,31,160,8,216,39,42, + 167,123,161,123,216,43,48,241,5,2,16,50,136,4,240,6, + 0,28,31,215,27,48,209,27,48,176,24,192,85,211,27,75, + 209,8,24,136,8,220,28,32,164,19,215,33,51,209,33,51, + 212,28,52,216,21,29,216,21,29,241,5,3,29,10,136,4, + 212,8,25,246,8,0,12,18,216,12,16,215,12,43,209,12, + 43,215,12,50,209,12,50,176,49,176,102,212,12,61,216,15, + 19,136,11,114,22,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,243,154,0, + 0,0,149,0,91,1,0,0,0,0,0,0,0,0,85,0, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,110,1,30,0, + 85,0,82,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,82,6,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,110,2,85,2,40,0, + 0,0,0,0,0,0,97,6,0,0,88,33,108,4,0,0, + 0,0,0,0,0,0,85,1,36,0,33,0,91,10,0,0, + 0,0,0,0,0,0,7,0,97,4,0,0,32,0,31,0, + 85,1,36,0,102,0,61,3,31,0,102,1,41,1,122,22, + 83,101,116,32,95,95,102,105,108,101,95,95,44,32,105,102, + 32,97,98,108,101,46,41,6,114,27,0,0,0,114,26,0, + 0,0,114,252,0,0,0,114,247,0,0,0,114,245,0,0, + 0,114,4,0,0,0,41,3,114,232,0,0,0,114,233,0, + 0,0,114,247,0,0,0,115,3,0,0,0,32,32,32,114, + 7,0,0,0,114,57,1,0,0,218,28,70,114,111,122,101, + 110,73,109,112,111,114,116,101,114,46,99,114,101,97,116,101, + 95,109,111,100,117,108,101,134,4,0,0,115,82,0,0,0, + 128,0,244,6,0,18,29,152,84,159,89,153,89,211,17,39, + 136,6,240,2,6,9,43,216,23,27,215,23,40,209,23,40, + 215,23,49,209,23,49,136,72,246,8,0,16,24,216,34,42, + 148,15,216,15,21,136,13,248,244,11,0,16,30,243,0,1, + 9,17,216,12,16,240,8,0,16,22,136,13,240,11,1,9, + 17,250,115,15,0,0,0,151,22,60,0,188,10,65,10,3, + 193,9,1,65,10,3,99,1,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,146,0,0,0, + 149,0,85,0,82,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,110,1,85,1,82,2,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 110,2,91,5,0,0,0,0,0,0,0,0,91,6,0,0, + 0,0,0,0,0,0,82,8,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,2,53,2,0,0, + 0,0,0,0,110,3,91,11,0,0,0,0,0,0,0,0, + 88,48,82,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,2,0,0,0,0,0,0,32,0, + 103,0,114,2,0,0,0,41,7,114,237,0,0,0,114,26, + 0,0,0,114,192,0,0,0,114,181,0,0,0,218,17,103, + 101,116,95,102,114,111,122,101,110,95,111,98,106,101,99,116, + 218,4,101,120,101,99,114,16,0,0,0,41,4,114,233,0, + 0,0,114,232,0,0,0,114,26,0,0,0,218,4,99,111, + 100,101,115,4,0,0,0,32,32,32,32,114,7,0,0,0, + 114,58,1,0,0,218,26,70,114,111,122,101,110,73,109,112, + 111,114,116,101,114,46,101,120,101,99,95,109,111,100,117,108, + 101,147,4,0,0,115,50,0,0,0,128,0,224,15,21,143, + 127,137,127,136,4,216,15,19,143,121,137,121,136,4,220,15, + 40,172,20,215,41,63,209,41,63,192,20,211,15,70,136,4, + 220,8,12,136,84,151,63,145,63,213,8,35,114,22,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,218,0,0,0,149,0,91,1,0, + 0,0,0,0,0,0,0,88,1,53,2,0,0,0,0,0, + 0,110,2,91,2,0,0,0,0,0,0,0,0,82,5,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,1,53,1,0,0,0,0,0,0,110,3,85,3,99, + 2,0,0,23,0,101,1,85,3,117,3,0,0,112,69,110, + 6,88,98,108,3,0,0,0,0,0,0,0,0,91,9,0, + 0,0,0,0,0,0,0,85,2,53,1,0,0,0,0,0, + 0,82,11,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,2,83,1,53,2,0,0,0,0,0, + 0,32,0,85,5,40,0,0,0,0,0,0,0,97,7,0, + 0,47,0,85,2,108,6,0,0,0,0,0,0,0,0,85, + 0,82,15,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,2,53,1,0,0,0,0,0,0,32, + 0,85,2,36,0,41,3,122,79,76,111,97,100,32,97,32, + 102,114,111,122,101,110,32,109,111,100,117,108,101,46,10,10, 84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,100, 101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,32, 101,120,101,99,95,109,111,100,117,108,101,40,41,32,105,110, - 115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32, - 78,114,212,0,0,0,41,8,114,201,0,0,0,114,151,0, - 0,0,114,87,1,0,0,114,61,1,0,0,114,64,1,0, - 0,114,68,0,0,0,114,7,1,0,0,114,74,1,0,0, - 41,7,114,40,1,0,0,114,180,0,0,0,114,200,0,0, - 0,114,88,1,0,0,114,89,1,0,0,114,72,1,0,0, - 114,63,1,0,0,115,7,0,0,0,32,32,32,32,32,32, - 32,114,7,0,0,0,114,28,1,0,0,122,26,70,114,111, - 122,101,110,73,109,112,111,114,116,101,114,46,108,111,97,100, - 95,109,111,100,117,108,101,154,4,0,0,115,113,0,0,0, - 128,0,244,16,0,18,35,160,51,168,8,211,17,49,136,6, - 220,15,19,215,15,31,209,15,31,160,8,211,15,41,136,4, - 216,15,19,208,15,31,208,8,31,208,15,31,216,29,33,209, - 8,26,136,1,136,53,144,40,216,30,38,136,6,212,8,27, - 220,8,12,136,86,139,12,215,8,24,209,8,24,152,26,160, - 84,212,8,42,217,11,16,216,30,32,136,70,140,79,216,8, - 11,215,8,26,209,8,26,152,54,212,8,34,216,15,21,136, - 13,114,22,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,243,44,0,0,0, - 151,0,116,0,0,0,0,0,0,0,0,0,106,3,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,83,0,41,1,122,45, - 82,101,116,117,114,110,32,116,104,101,32,99,111,100,101,32, - 111,98,106,101,99,116,32,102,111,114,32,116,104,101,32,102, - 114,111,122,101,110,32,109,111,100,117,108,101,46,41,2,114, - 151,0,0,0,114,92,1,0,0,114,49,1,0,0,115,2, - 0,0,0,32,32,114,7,0,0,0,114,50,1,0,0,122, - 23,70,114,111,122,101,110,73,109,112,111,114,116,101,114,46, - 103,101,116,95,99,111,100,101,173,4,0,0,243,21,0,0, - 0,128,0,244,8,0,16,20,215,15,37,209,15,37,160,104, - 211,15,47,208,8,47,114,22,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 243,4,0,0,0,151,0,121,1,41,2,122,54,82,101,116, - 117,114,110,32,78,111,110,101,32,97,115,32,102,114,111,122, - 101,110,32,109,111,100,117,108,101,115,32,100,111,32,110,111, - 116,32,104,97,118,101,32,115,111,117,114,99,101,32,99,111, - 100,101,46,78,114,31,0,0,0,114,49,1,0,0,115,2, - 0,0,0,32,32,114,7,0,0,0,114,53,1,0,0,122, - 25,70,114,111,122,101,110,73,109,112,111,114,116,101,114,46, - 103,101,116,95,115,111,117,114,99,101,179,4,0,0,114,51, - 1,0,0,114,22,0,0,0,99,2,0,0,0,0,0,0, + 115,116,101,97,100,46,10,10,78,114,245,0,0,0,41,8, + 114,234,0,0,0,114,181,0,0,0,114,134,1,0,0,114, + 106,1,0,0,114,109,1,0,0,114,77,0,0,0,114,46, + 1,0,0,114,119,1,0,0,41,7,114,79,1,0,0,114, + 211,0,0,0,114,233,0,0,0,114,135,1,0,0,114,136, + 1,0,0,114,117,1,0,0,114,108,1,0,0,115,7,0, + 0,0,32,32,32,32,32,32,32,114,7,0,0,0,114,67, + 1,0,0,218,26,70,114,111,122,101,110,73,109,112,111,114, + 116,101,114,46,108,111,97,100,95,109,111,100,117,108,101,154, + 4,0,0,115,107,0,0,0,128,0,244,16,0,18,35,160, + 51,211,17,49,136,6,220,15,19,215,15,31,209,15,31,160, + 8,211,15,41,136,4,216,15,19,209,15,31,208,8,31,208, + 15,31,216,29,33,209,8,26,136,1,144,40,216,30,38,212, + 8,27,220,8,12,136,86,139,12,215,8,24,209,8,24,152, + 26,160,84,212,8,42,222,11,16,216,30,32,136,70,140,79, + 216,8,11,215,8,26,209,8,26,152,54,212,8,34,216,15, + 21,136,13,114,22,0,0,0,99,2,0,0,0,0,0,0, 0,0,0,0,0,3,0,0,0,3,0,0,0,243,44,0, - 0,0,151,0,116,0,0,0,0,0,0,0,0,0,106,3, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,1,171,1,0,0,0,0,0,0,83,0,41,1, - 122,46,82,101,116,117,114,110,32,84,114,117,101,32,105,102, - 32,116,104,101,32,102,114,111,122,101,110,32,109,111,100,117, - 108,101,32,105,115,32,97,32,112,97,99,107,97,103,101,46, - 41,2,114,151,0,0,0,114,65,1,0,0,114,49,1,0, - 0,115,2,0,0,0,32,32,114,7,0,0,0,114,220,0, - 0,0,122,25,70,114,111,122,101,110,73,109,112,111,114,116, - 101,114,46,105,115,95,112,97,99,107,97,103,101,185,4,0, - 0,114,97,1,0,0,114,22,0,0,0,114,222,0,0,0, - 114,55,1,0,0,41,17,114,11,0,0,0,114,10,0,0, - 0,114,3,0,0,0,114,12,0,0,0,114,255,0,0,0, - 114,56,1,0,0,114,74,1,0,0,114,66,1,0,0,114, - 43,1,0,0,114,58,0,0,0,114,18,1,0,0,114,19, - 1,0,0,114,28,1,0,0,114,189,0,0,0,114,50,1, - 0,0,114,53,1,0,0,114,220,0,0,0,114,31,0,0, - 0,114,22,0,0,0,114,7,0,0,0,114,58,1,0,0, - 114,58,1,0,0,255,3,0,0,115,219,0,0,0,132,0, - 241,4,5,5,8,240,14,0,15,23,128,71,224,5,16,241, - 2,66,1,5,37,243,3,0,6,17,240,2,66,1,5,37, - 240,72,2,0,6,17,242,2,22,5,32,243,3,0,6,17, - 240,2,22,5,32,240,48,0,6,17,242,2,27,5,20,243, - 3,0,6,17,240,2,27,5,20,240,58,0,6,18,241,2, - 10,5,22,243,3,0,6,18,240,2,10,5,22,240,24,0, - 6,18,241,2,4,5,36,243,3,0,6,18,240,2,4,5, - 36,240,12,0,6,17,241,2,16,5,22,243,3,0,6,17, - 240,2,16,5,22,240,36,0,6,17,216,5,21,241,2,2, - 5,48,243,3,0,6,22,243,3,0,6,17,240,4,2,5, - 48,240,8,0,6,17,216,5,21,241,2,2,5,20,243,3, - 0,6,22,243,3,0,6,17,240,4,2,5,20,240,8,0, - 6,17,216,5,21,241,2,2,5,48,243,3,0,6,22,243, - 3,0,6,17,241,4,2,5,48,114,22,0,0,0,114,58, - 1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,0,0,0,0,243,28,0,0,0,151,0,101, - 0,90,1,100,0,90,2,100,1,90,3,100,2,132,0,90, - 4,100,3,132,0,90,5,121,4,41,5,218,18,95,73,109, - 112,111,114,116,76,111,99,107,67,111,110,116,101,120,116,122, - 36,67,111,110,116,101,120,116,32,109,97,110,97,103,101,114, - 32,102,111,114,32,116,104,101,32,105,109,112,111,114,116,32, - 108,111,99,107,46,99,1,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,3,0,0,0,243,44,0,0,0,151, - 0,116,0,0,0,0,0,0,0,0,0,106,3,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,1,0,121,1,41,2,122,24,65, - 99,113,117,105,114,101,32,116,104,101,32,105,109,112,111,114, - 116,32,108,111,99,107,46,78,41,2,114,151,0,0,0,114, - 152,0,0,0,114,66,0,0,0,115,1,0,0,0,32,114, - 7,0,0,0,114,87,0,0,0,122,28,95,73,109,112,111, - 114,116,76,111,99,107,67,111,110,116,101,120,116,46,95,95, - 101,110,116,101,114,95,95,198,4,0,0,243,14,0,0,0, - 128,0,228,8,12,215,8,25,209,8,25,213,8,27,114,22, - 0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,3,0,0,0,243,44,0,0,0,151,0,116, - 0,0,0,0,0,0,0,0,0,106,3,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,1,0,121,1,41,2,122,60,82,101,108, - 101,97,115,101,32,116,104,101,32,105,109,112,111,114,116,32, - 108,111,99,107,32,114,101,103,97,114,100,108,101,115,115,32, - 111,102,32,97,110,121,32,114,97,105,115,101,100,32,101,120, - 99,101,112,116,105,111,110,115,46,78,41,2,114,151,0,0, - 0,114,154,0,0,0,41,4,114,44,0,0,0,218,8,101, - 120,99,95,116,121,112,101,218,9,101,120,99,95,118,97,108, - 117,101,218,13,101,120,99,95,116,114,97,99,101,98,97,99, - 107,115,4,0,0,0,32,32,32,32,114,7,0,0,0,114, - 92,0,0,0,122,27,95,73,109,112,111,114,116,76,111,99, - 107,67,111,110,116,101,120,116,46,95,95,101,120,105,116,95, - 95,202,4,0,0,114,103,1,0,0,114,22,0,0,0,78, - 41,6,114,11,0,0,0,114,10,0,0,0,114,3,0,0, - 0,114,12,0,0,0,114,87,0,0,0,114,92,0,0,0, - 114,31,0,0,0,114,22,0,0,0,114,7,0,0,0,114, - 101,1,0,0,114,101,1,0,0,194,4,0,0,115,15,0, - 0,0,132,0,225,4,46,242,4,2,5,28,243,8,2,5, - 28,114,22,0,0,0,114,101,1,0,0,99,3,0,0,0, - 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, - 243,126,0,0,0,151,0,124,1,106,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,124, - 2,100,2,122,10,0,0,171,2,0,0,0,0,0,0,125, - 3,116,3,0,0,0,0,0,0,0,0,124,3,171,1,0, - 0,0,0,0,0,124,2,107,2,0,0,114,11,116,5,0, - 0,0,0,0,0,0,0,100,3,171,1,0,0,0,0,0, - 0,130,1,124,3,100,4,25,0,0,0,125,4,124,0,114, - 7,124,4,155,0,100,1,124,0,155,0,157,3,83,0,124, - 4,83,0,41,5,122,50,82,101,115,111,108,118,101,32,97, - 32,114,101,108,97,116,105,118,101,32,109,111,100,117,108,101, - 32,110,97,109,101,32,116,111,32,97,110,32,97,98,115,111, - 108,117,116,101,32,111,110,101,46,114,244,0,0,0,114,138, - 0,0,0,122,50,97,116,116,101,109,112,116,101,100,32,114, - 101,108,97,116,105,118,101,32,105,109,112,111,114,116,32,98, - 101,121,111,110,100,32,116,111,112,45,108,101,118,101,108,32, - 112,97,99,107,97,103,101,114,125,0,0,0,41,3,218,6, - 114,115,112,108,105,116,114,127,0,0,0,114,178,0,0,0, - 41,5,114,26,0,0,0,218,7,112,97,99,107,97,103,101, - 218,5,108,101,118,101,108,218,4,98,105,116,115,218,4,98, - 97,115,101,115,5,0,0,0,32,32,32,32,32,114,7,0, - 0,0,218,13,95,114,101,115,111,108,118,101,95,110,97,109, - 101,114,114,1,0,0,207,4,0,0,115,79,0,0,0,128, - 0,224,11,18,143,62,137,62,152,35,152,117,160,113,153,121, - 211,11,41,128,68,220,7,10,136,52,131,121,144,53,210,7, - 24,220,14,25,208,26,78,211,14,79,208,8,79,216,11,15, - 144,1,137,55,128,68,217,31,35,136,100,136,86,144,49,144, - 84,144,70,208,11,27,208,4,45,168,20,208,4,45,114,22, - 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0, - 7,0,0,0,3,0,0,0,243,242,1,0,0,151,0,116, - 0,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,3,124, - 3,128,11,116,5,0,0,0,0,0,0,0,0,100,2,171, - 1,0,0,0,0,0,0,130,1,124,3,115,26,116,6,0, - 0,0,0,0,0,0,0,106,9,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,3,116,10,0, - 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,1, - 0,124,0,116,0,0,0,0,0,0,0,0,0,106,12,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,118,0,125,4,124,3,68,0,93,113,0,0,125,5,116, - 15,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,53,0,1,0,9,0,124,5,106,16,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,6,2, - 0,124,6,124,0,124,1,124,2,171,3,0,0,0,0,0, - 0,125,7,9,0,100,1,100,1,100,1,171,2,0,0,0, - 0,0,0,1,0,127,7,128,1,140,49,124,4,115,60,124, - 0,116,0,0,0,0,0,0,0,0,0,106,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118, - 0,114,42,116,0,0,0,0,0,0,0,0,0,106,12,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,0,25,0,0,0,125,8,9,0,124,8,106,20,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,125,9,124,9,128,4,124,7,99,2,1,0,83,0,124, - 9,99,2,1,0,83,0,124,7,99,2,1,0,83,0,4, - 0,121,1,35,0,116,18,0,0,0,0,0,0,0,0,36, - 0,114,11,1,0,89,0,100,1,100,1,100,1,171,2,0, - 0,0,0,0,0,1,0,140,136,119,0,120,3,89,0,119, - 1,35,0,49,0,115,1,119,2,1,0,89,0,1,0,1, - 0,140,103,120,3,89,0,119,1,35,0,116,18,0,0,0, - 0,0,0,0,0,36,0,114,7,1,0,124,7,99,2,89, - 0,99,2,1,0,83,0,119,0,120,3,89,0,119,1,41, - 4,122,21,70,105,110,100,32,97,32,109,111,100,117,108,101, - 39,115,32,115,112,101,99,46,78,122,53,115,121,115,46,109, - 101,116,97,95,112,97,116,104,32,105,115,32,78,111,110,101, - 44,32,80,121,116,104,111,110,32,105,115,32,108,105,107,101, - 108,121,32,115,104,117,116,116,105,110,103,32,100,111,119,110, - 122,22,115,121,115,46,109,101,116,97,95,112,97,116,104,32, - 105,115,32,101,109,112,116,121,41,11,114,24,0,0,0,218, - 9,109,101,116,97,95,112,97,116,104,114,178,0,0,0,114, - 191,0,0,0,114,192,0,0,0,114,27,1,0,0,114,195, - 0,0,0,114,101,1,0,0,114,43,1,0,0,114,4,0, - 0,0,114,204,0,0,0,41,10,114,26,0,0,0,114,41, - 1,0,0,114,42,1,0,0,114,116,1,0,0,218,9,105, - 115,95,114,101,108,111,97,100,218,6,102,105,110,100,101,114, - 114,43,1,0,0,114,199,0,0,0,114,200,0,0,0,114, - 204,0,0,0,115,10,0,0,0,32,32,32,32,32,32,32, - 32,32,32,114,7,0,0,0,218,10,95,102,105,110,100,95, - 115,112,101,99,114,119,1,0,0,216,4,0,0,115,6,1, - 0,0,128,0,228,16,19,151,13,145,13,128,73,216,7,16, - 208,7,24,228,14,25,240,0,1,27,42,243,0,1,15,43, - 240,0,1,9,43,241,6,0,12,21,220,8,17,143,14,137, - 14,208,23,47,180,29,212,8,63,240,10,0,17,21,156,3, - 159,11,153,11,208,16,35,128,73,219,18,27,136,6,220,13, - 31,213,13,33,240,2,5,13,53,216,28,34,215,28,44,209, - 28,44,144,9,241,8,0,24,33,160,20,160,116,168,86,211, - 23,52,145,4,247,13,0,14,34,240,14,0,12,16,209,11, - 27,225,19,28,160,20,172,19,175,27,169,27,209,33,52,220, - 25,28,159,27,153,27,160,84,209,25,42,144,6,240,2,11, - 17,40,216,31,37,159,127,153,127,144,72,240,14,0,24,32, - 208,23,39,216,31,35,154,11,224,31,39,154,15,224,23,27, - 146,11,240,51,0,19,28,240,54,0,16,20,248,244,47,0, - 20,34,242,0,1,13,25,216,16,24,247,9,0,14,34,208, - 13,33,240,6,1,13,25,250,247,7,0,14,34,208,13,33, - 251,244,26,0,24,38,242,0,4,17,32,240,8,0,28,32, - 148,75,240,9,4,17,32,250,115,66,0,0,0,193,27,1, - 67,26,5,193,29,12,67,3,4,193,41,10,67,26,5,194, - 39,12,67,38,2,195,3,9,67,23,7,195,12,1,67,26, - 5,195,22,1,67,23,7,195,23,3,67,26,5,195,26,5, - 67,35,9,195,38,11,67,54,5,195,53,1,67,54,5,99, - 3,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, - 3,0,0,0,243,242,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,116,2,0,0,0,0,0,0,0, - 0,171,2,0,0,0,0,0,0,115,23,116,5,0,0,0, - 0,0,0,0,0,100,1,116,7,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,155,0,157,2,171, - 1,0,0,0,0,0,0,130,1,124,2,100,2,107,2,0, - 0,114,11,116,9,0,0,0,0,0,0,0,0,100,3,171, - 1,0,0,0,0,0,0,130,1,124,2,100,2,107,68,0, - 0,114,40,116,1,0,0,0,0,0,0,0,0,124,1,116, - 2,0,0,0,0,0,0,0,0,171,2,0,0,0,0,0, - 0,115,11,116,5,0,0,0,0,0,0,0,0,100,4,171, - 1,0,0,0,0,0,0,130,1,124,1,115,11,116,11,0, - 0,0,0,0,0,0,0,100,5,171,1,0,0,0,0,0, - 0,130,1,124,0,115,17,124,2,100,2,107,40,0,0,114, - 11,116,9,0,0,0,0,0,0,0,0,100,6,171,1,0, - 0,0,0,0,0,130,1,121,7,121,7,41,8,122,28,86, - 101,114,105,102,121,32,97,114,103,117,109,101,110,116,115,32, - 97,114,101,32,34,115,97,110,101,34,46,122,29,109,111,100, - 117,108,101,32,110,97,109,101,32,109,117,115,116,32,98,101, - 32,115,116,114,44,32,110,111,116,32,114,125,0,0,0,122, - 18,108,101,118,101,108,32,109,117,115,116,32,98,101,32,62, - 61,32,48,122,31,95,95,112,97,99,107,97,103,101,95,95, - 32,110,111,116,32,115,101,116,32,116,111,32,97,32,115,116, - 114,105,110,103,122,54,97,116,116,101,109,112,116,101,100,32, - 114,101,108,97,116,105,118,101,32,105,109,112,111,114,116,32, - 119,105,116,104,32,110,111,32,107,110,111,119,110,32,112,97, - 114,101,110,116,32,112,97,99,107,97,103,101,122,17,69,109, - 112,116,121,32,109,111,100,117,108,101,32,110,97,109,101,78, - 41,6,114,23,1,0,0,218,3,115,116,114,218,9,84,121, - 112,101,69,114,114,111,114,114,5,0,0,0,218,10,86,97, - 108,117,101,69,114,114,111,114,114,178,0,0,0,169,3,114, - 26,0,0,0,114,110,1,0,0,114,111,1,0,0,115,3, - 0,0,0,32,32,32,114,7,0,0,0,218,13,95,115,97, - 110,105,116,121,95,99,104,101,99,107,114,125,1,0,0,5, - 5,0,0,115,132,0,0,0,128,0,228,11,21,144,100,156, - 67,212,11,32,220,14,23,208,26,55,188,4,184,84,187,10, - 176,124,208,24,68,211,14,69,208,8,69,216,7,12,136,113, - 130,121,220,14,24,208,25,45,211,14,46,208,8,46,216,7, - 12,136,113,130,121,220,15,25,152,39,164,51,212,15,39,220, - 18,27,208,28,61,211,18,62,208,12,62,217,17,24,220,18, - 29,240,0,1,31,40,243,0,1,19,41,240,0,1,13,41, - 225,11,15,144,69,152,81,146,74,220,14,24,208,25,44,211, - 14,45,208,8,45,240,3,0,21,31,136,52,114,22,0,0, - 0,122,16,78,111,32,109,111,100,117,108,101,32,110,97,109, - 101,100,32,122,4,123,33,114,125,99,2,0,0,0,0,0, - 0,0,0,0,0,0,6,0,0,0,3,0,0,0,243,86, - 3,0,0,151,0,100,0,125,2,124,0,106,1,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, - 1,171,1,0,0,0,0,0,0,100,2,25,0,0,0,125, - 3,100,0,125,4,124,3,114,131,124,3,116,2,0,0,0, - 0,0,0,0,0,106,4,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,118,1,114,12,116,7,0, - 0,0,0,0,0,0,0,124,1,124,3,171,2,0,0,0, - 0,0,0,1,0,124,0,116,2,0,0,0,0,0,0,0, - 0,106,4,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,118,0,114,19,116,2,0,0,0,0,0, - 0,0,0,106,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,0,25,0,0,0,83,0,116, - 2,0,0,0,0,0,0,0,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,3,25, - 0,0,0,125,5,9,0,124,5,106,8,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,2,124, - 5,106,16,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,125,4,124,0,106,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,171, - 1,0,0,0,0,0,0,100,6,25,0,0,0,125,7,116, - 19,0,0,0,0,0,0,0,0,124,0,124,2,171,2,0, - 0,0,0,0,0,125,8,124,8,128,21,116,15,0,0,0, - 0,0,0,0,0,116,12,0,0,0,0,0,0,0,0,155, - 0,124,0,155,2,157,2,124,0,172,5,171,2,0,0,0, - 0,0,0,130,1,124,4,114,27,124,4,106,20,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,127,7,171,1,0,0,0,0,0,0,1,0,9, - 0,116,25,0,0,0,0,0,0,0,0,124,8,171,1,0, - 0,0,0,0,0,125,9,124,4,114,27,124,4,106,20,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,106,27,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,1,0,9, - 0,124,3,114,35,116,2,0,0,0,0,0,0,0,0,106, - 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,3,25,0,0,0,125,5,9,0,116,29,0, - 0,0,0,0,0,0,0,124,5,127,7,124,9,171,3,0, - 0,0,0,0,0,1,0,124,9,83,0,124,9,83,0,35, - 0,116,10,0,0,0,0,0,0,0,0,36,0,114,29,1, - 0,116,12,0,0,0,0,0,0,0,0,155,0,124,0,155, - 2,100,3,124,3,155,2,100,4,157,5,125,6,116,15,0, - 0,0,0,0,0,0,0,124,6,124,0,172,5,171,2,0, - 0,0,0,0,0,100,0,130,2,119,0,120,3,89,0,119, - 1,35,0,124,4,114,27,124,4,106,20,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,27,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,1,0,119,0,119,0,120, - 3,89,0,119,1,35,0,116,10,0,0,0,0,0,0,0, - 0,36,0,114,38,1,0,100,7,124,3,155,2,100,8,127, - 7,155,2,157,4,125,6,116,30,0,0,0,0,0,0,0, - 0,106,33,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,6,116,34,0,0,0,0,0,0,0, - 0,171,2,0,0,0,0,0,0,1,0,89,0,124,9,83, - 0,119,0,120,3,89,0,119,1,41,9,78,114,244,0,0, - 0,114,125,0,0,0,122,2,59,32,122,17,32,105,115,32, - 110,111,116,32,97,32,112,97,99,107,97,103,101,114,25,0, - 0,0,233,2,0,0,0,122,27,67,97,110,110,111,116,32, - 115,101,116,32,97,110,32,97,116,116,114,105,98,117,116,101, - 32,111,110,32,122,18,32,102,111,114,32,99,104,105,108,100, - 32,109,111,100,117,108,101,32,41,18,114,245,0,0,0,114, - 24,0,0,0,114,195,0,0,0,114,161,0,0,0,114,7, - 1,0,0,114,4,0,0,0,218,15,95,69,82,82,95,77, - 83,71,95,80,82,69,70,73,88,218,19,77,111,100,117,108, - 101,78,111,116,70,111,117,110,100,69,114,114,111,114,114,204, - 0,0,0,114,119,1,0,0,114,224,0,0,0,114,51,0, - 0,0,114,33,1,0,0,114,68,0,0,0,114,14,0,0, - 0,114,191,0,0,0,114,192,0,0,0,114,27,1,0,0, - 41,10,114,26,0,0,0,218,7,105,109,112,111,114,116,95, - 114,41,1,0,0,114,246,0,0,0,218,11,112,97,114,101, - 110,116,95,115,112,101,99,218,13,112,97,114,101,110,116,95, - 109,111,100,117,108,101,114,198,0,0,0,218,5,99,104,105, - 108,100,114,199,0,0,0,114,200,0,0,0,115,10,0,0, - 0,32,32,32,32,32,32,32,32,32,32,114,7,0,0,0, - 218,23,95,102,105,110,100,95,97,110,100,95,108,111,97,100, - 95,117,110,108,111,99,107,101,100,114,134,1,0,0,24,5, - 0,0,115,177,1,0,0,128,0,216,11,15,128,68,216,13, - 17,143,95,137,95,152,83,211,13,33,160,33,209,13,36,128, - 70,216,18,22,128,75,217,7,13,216,11,17,156,19,159,27, - 153,27,209,11,36,220,12,37,160,103,168,118,212,12,54,224, - 11,15,148,51,151,59,145,59,209,11,30,220,19,22,151,59, - 145,59,152,116,209,19,36,208,12,36,220,24,27,159,11,153, - 11,160,70,209,24,43,136,13,240,2,4,9,64,1,216,19, - 32,215,19,41,209,19,41,136,68,240,8,0,23,36,215,22, - 44,209,22,44,136,11,216,16,20,151,15,145,15,160,3,211, - 16,36,160,81,209,16,39,136,5,220,11,21,144,100,152,68, - 211,11,33,128,68,216,7,11,128,124,220,14,33,164,95,208, - 36,53,176,100,176,88,208,34,62,192,84,212,14,74,208,8, - 74,225,11,22,240,6,0,13,24,215,12,49,209,12,49,215, - 12,56,209,12,56,184,21,212,12,63,240,2,4,9,60,220, - 21,35,160,68,211,21,41,136,70,225,15,26,216,16,27,215, - 16,53,209,16,53,215,16,57,209,16,57,213,16,59,217,7, - 13,228,24,27,159,11,153,11,160,70,209,24,43,136,13,240, - 2,4,9,47,220,12,19,144,77,160,53,168,38,212,12,49, - 240,8,0,12,18,128,77,136,54,128,77,248,244,53,0,16, - 30,242,0,2,9,64,1,220,21,36,208,20,37,160,100,160, - 88,168,82,176,6,168,122,208,57,74,208,18,75,136,67,220, - 18,37,160,99,176,4,212,18,53,184,52,208,12,63,240,5, - 2,9,64,1,251,241,32,0,16,27,216,16,27,215,16,53, - 209,16,53,215,16,57,209,16,57,213,16,59,240,3,0,16, - 27,251,244,14,0,16,30,242,0,2,9,47,216,20,47,176, - 6,168,122,208,57,75,200,69,200,57,208,18,85,136,67,220, - 12,21,143,78,137,78,152,51,164,13,213,12,46,216,11,17, - 128,77,240,7,2,9,47,250,115,42,0,0,0,193,50,12, - 68,46,0,195,31,11,69,23,0,196,29,13,69,57,0,196, - 46,38,69,20,3,197,23,31,69,54,3,197,57,43,70,40, - 3,198,39,1,70,40,3,99,2,0,0,0,0,0,0,0, - 0,0,0,0,7,0,0,0,3,0,0,0,243,146,1,0, - 0,151,0,116,0,0,0,0,0,0,0,0,0,106,2,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,106,5,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,116,6,0,0,0,0,0,0,0, - 0,171,2,0,0,0,0,0,0,125,2,124,2,116,6,0, - 0,0,0,0,0,0,0,117,0,115,24,116,9,0,0,0, - 0,0,0,0,0,116,9,0,0,0,0,0,0,0,0,124, - 2,100,1,100,2,171,3,0,0,0,0,0,0,100,3,100, - 4,171,3,0,0,0,0,0,0,114,97,116,11,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,53, - 0,1,0,116,0,0,0,0,0,0,0,0,0,106,2,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,106,5,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,116,6,0,0,0,0,0,0,0, - 0,171,2,0,0,0,0,0,0,125,2,124,2,116,6,0, - 0,0,0,0,0,0,0,117,0,114,21,116,13,0,0,0, - 0,0,0,0,0,124,0,124,1,171,2,0,0,0,0,0, - 0,99,2,100,2,100,2,100,2,171,2,0,0,0,0,0, - 0,1,0,83,0,9,0,100,2,100,2,100,2,171,2,0, - 0,0,0,0,0,1,0,116,15,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,1,0,124,2,128, - 19,100,5,124,0,155,0,100,6,157,3,125,3,116,17,0, - 0,0,0,0,0,0,0,124,3,124,0,172,7,171,2,0, - 0,0,0,0,0,130,1,124,2,83,0,35,0,49,0,115, - 1,119,2,1,0,89,0,1,0,1,0,140,43,120,3,89, - 0,119,1,41,8,122,25,70,105,110,100,32,97,110,100,32, - 108,111,97,100,32,116,104,101,32,109,111,100,117,108,101,46, - 114,204,0,0,0,78,114,32,1,0,0,70,122,10,105,109, - 112,111,114,116,32,111,102,32,122,28,32,104,97,108,116,101, - 100,59,32,78,111,110,101,32,105,110,32,115,121,115,46,109, - 111,100,117,108,101,115,114,25,0,0,0,41,9,114,24,0, - 0,0,114,195,0,0,0,114,76,0,0,0,218,14,95,78, - 69,69,68,83,95,76,79,65,68,73,78,71,114,15,0,0, - 0,114,142,0,0,0,114,134,1,0,0,114,157,0,0,0, - 114,129,1,0,0,41,4,114,26,0,0,0,114,130,1,0, - 0,114,200,0,0,0,114,172,0,0,0,115,4,0,0,0, - 32,32,32,32,114,7,0,0,0,218,14,95,102,105,110,100, - 95,97,110,100,95,108,111,97,100,114,137,1,0,0,69,5, - 0,0,115,172,0,0,0,128,0,244,10,0,14,17,143,91, - 137,91,143,95,137,95,152,84,164,62,211,13,50,128,70,216, - 8,14,148,46,209,8,32,220,8,15,148,7,152,6,160,10, - 168,68,211,16,49,176,63,192,69,212,8,74,220,13,31,160, + 0,0,149,0,91,0,0,0,0,0,0,0,0,0,82,3, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,1,53,1,0,0,0,0,0,0,36,0,41,1, + 122,45,82,101,116,117,114,110,32,116,104,101,32,99,111,100, + 101,32,111,98,106,101,99,116,32,102,111,114,32,116,104,101, + 32,102,114,111,122,101,110,32,109,111,100,117,108,101,46,41, + 2,114,181,0,0,0,114,141,1,0,0,114,91,1,0,0, + 115,2,0,0,0,32,32,114,7,0,0,0,114,92,1,0, + 0,218,23,70,114,111,122,101,110,73,109,112,111,114,116,101, + 114,46,103,101,116,95,99,111,100,101,173,4,0,0,243,21, + 0,0,0,128,0,244,8,0,16,20,215,15,37,209,15,37, + 160,104,211,15,47,208,8,47,114,22,0,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, + 0,0,243,4,0,0,0,149,0,103,1,41,2,122,54,82, + 101,116,117,114,110,32,78,111,110,101,32,97,115,32,102,114, + 111,122,101,110,32,109,111,100,117,108,101,115,32,100,111,32, + 110,111,116,32,104,97,118,101,32,115,111,117,114,99,101,32, + 99,111,100,101,46,78,114,32,0,0,0,114,91,1,0,0, + 115,2,0,0,0,32,32,114,7,0,0,0,114,96,1,0, + 0,218,25,70,114,111,122,101,110,73,109,112,111,114,116,101, + 114,46,103,101,116,95,115,111,117,114,99,101,179,4,0,0, + 114,94,1,0,0,114,22,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 44,0,0,0,149,0,91,0,0,0,0,0,0,0,0,0, + 82,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,1,53,1,0,0,0,0,0,0,36,0, + 41,1,122,46,82,101,116,117,114,110,32,84,114,117,101,32, + 105,102,32,116,104,101,32,102,114,111,122,101,110,32,109,111, + 100,117,108,101,32,105,115,32,97,32,112,97,99,107,97,103, + 101,46,41,2,114,181,0,0,0,114,110,1,0,0,114,91, + 1,0,0,115,2,0,0,0,32,32,114,7,0,0,0,114, + 253,0,0,0,218,25,70,114,111,122,101,110,73,109,112,111, + 114,116,101,114,46,105,115,95,112,97,99,107,97,103,101,185, + 4,0,0,114,149,1,0,0,114,22,0,0,0,114,32,0, + 0,0,114,255,0,0,0,114,100,1,0,0,41,19,114,11, + 0,0,0,114,10,0,0,0,114,3,0,0,0,114,33,0, + 0,0,114,12,0,0,0,114,38,1,0,0,114,101,1,0, + 0,114,119,1,0,0,114,111,1,0,0,114,82,1,0,0, + 114,65,0,0,0,114,57,1,0,0,114,58,1,0,0,114, + 67,1,0,0,114,222,0,0,0,114,92,1,0,0,114,96, + 1,0,0,114,253,0,0,0,114,35,0,0,0,114,32,0, + 0,0,114,22,0,0,0,114,7,0,0,0,114,103,1,0, + 0,114,103,1,0,0,255,3,0,0,115,219,0,0,0,134, + 0,241,4,5,5,8,240,14,0,15,23,128,71,224,5,16, + 241,2,66,1,5,37,243,3,0,6,17,240,2,66,1,5, + 37,240,72,2,0,6,17,243,2,22,5,32,243,3,0,6, + 17,240,2,22,5,32,240,48,0,6,17,243,2,27,5,20, + 243,3,0,6,17,240,2,27,5,20,240,58,0,6,18,241, + 2,10,5,22,243,3,0,6,18,240,2,10,5,22,240,24, + 0,6,18,241,2,4,5,36,243,3,0,6,18,240,2,4, + 5,36,240,12,0,6,17,241,2,16,5,22,243,3,0,6, + 17,240,2,16,5,22,240,36,0,6,17,216,5,21,241,2, + 2,5,48,243,3,0,6,22,243,3,0,6,17,240,4,2, + 5,48,240,8,0,6,17,216,5,21,241,2,2,5,20,243, + 3,0,6,22,243,3,0,6,17,240,4,2,5,20,240,8, + 0,6,17,216,5,21,241,2,2,5,48,243,3,0,6,22, + 243,3,0,6,17,243,4,2,5,48,114,22,0,0,0,114, + 103,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,0,0,0,0,243,36,0,0,0,149,0, + 92,0,114,1,83,0,114,2,83,1,114,3,83,2,114,4, + 83,3,26,0,114,5,83,4,26,0,114,6,83,5,114,7, + 103,6,41,7,218,18,95,73,109,112,111,114,116,76,111,99, + 107,67,111,110,116,101,120,116,105,194,4,0,0,122,36,67, + 111,110,116,101,120,116,32,109,97,110,97,103,101,114,32,102, + 111,114,32,116,104,101,32,105,109,112,111,114,116,32,108,111, + 99,107,46,99,1,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,3,0,0,0,243,44,0,0,0,149,0,91, + 0,0,0,0,0,0,0,0,0,82,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,32,0,103,1,41,2,122,24,65,99,113, + 117,105,114,101,32,116,104,101,32,105,109,112,111,114,116,32, + 108,111,99,107,46,78,41,2,114,181,0,0,0,114,182,0, + 0,0,114,74,0,0,0,115,1,0,0,0,32,114,7,0, + 0,0,114,101,0,0,0,218,28,95,73,109,112,111,114,116, + 76,111,99,107,67,111,110,116,101,120,116,46,95,95,101,110, + 116,101,114,95,95,198,4,0,0,243,14,0,0,0,128,0, + 228,8,12,215,8,25,209,8,25,213,8,27,114,22,0,0, + 0,99,4,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,243,44,0,0,0,149,0,91,0,0, + 0,0,0,0,0,0,0,82,3,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,0,0,0,0, + 0,0,0,32,0,103,1,41,2,122,60,82,101,108,101,97, + 115,101,32,116,104,101,32,105,109,112,111,114,116,32,108,111, + 99,107,32,114,101,103,97,114,100,108,101,115,115,32,111,102, + 32,97,110,121,32,114,97,105,115,101,100,32,101,120,99,101, + 112,116,105,111,110,115,46,78,41,2,114,181,0,0,0,114, + 184,0,0,0,41,4,114,49,0,0,0,218,8,101,120,99, + 95,116,121,112,101,218,9,101,120,99,95,118,97,108,117,101, + 218,13,101,120,99,95,116,114,97,99,101,98,97,99,107,115, + 4,0,0,0,32,32,32,32,114,7,0,0,0,114,107,0, + 0,0,218,27,95,73,109,112,111,114,116,76,111,99,107,67, + 111,110,116,101,120,116,46,95,95,101,120,105,116,95,95,202, + 4,0,0,114,158,1,0,0,114,22,0,0,0,114,32,0, + 0,0,78,41,8,114,11,0,0,0,114,10,0,0,0,114, + 3,0,0,0,114,33,0,0,0,114,12,0,0,0,114,101, + 0,0,0,114,107,0,0,0,114,35,0,0,0,114,32,0, + 0,0,114,22,0,0,0,114,7,0,0,0,114,155,1,0, + 0,114,155,1,0,0,194,4,0,0,115,15,0,0,0,134, + 0,225,4,46,242,4,2,5,28,245,8,2,5,28,114,22, + 0,0,0,114,155,1,0,0,99,3,0,0,0,0,0,0, + 0,0,0,0,0,5,0,0,0,3,0,0,0,243,138,0, + 0,0,149,0,85,1,82,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,1,85,2,83,2, + 45,10,0,0,53,2,0,0,0,0,0,0,110,3,91,3, + 0,0,0,0,0,0,0,0,85,3,53,1,0,0,0,0, + 0,0,85,2,58,18,0,0,97,11,0,0,91,5,0,0, + 0,0,0,0,0,0,83,3,53,1,0,0,0,0,0,0, + 101,1,85,3,83,4,5,0,0,0,110,4,85,0,40,0, + 0,0,0,0,0,0,97,7,0,0,85,4,14,0,83,1, + 85,0,14,0,51,3,36,0,85,4,36,0,41,5,122,50, + 82,101,115,111,108,118,101,32,97,32,114,101,108,97,116,105, + 118,101,32,109,111,100,117,108,101,32,110,97,109,101,32,116, + 111,32,97,110,32,97,98,115,111,108,117,116,101,32,111,110, + 101,46,114,25,1,0,0,114,162,0,0,0,122,50,97,116, + 116,101,109,112,116,101,100,32,114,101,108,97,116,105,118,101, + 32,105,109,112,111,114,116,32,98,101,121,111,110,100,32,116, + 111,112,45,108,101,118,101,108,32,112,97,99,107,97,103,101, + 114,146,0,0,0,41,3,218,6,114,115,112,108,105,116,114, + 148,0,0,0,114,209,0,0,0,41,5,114,26,0,0,0, + 218,7,112,97,99,107,97,103,101,218,5,108,101,118,101,108, + 218,4,98,105,116,115,218,4,98,97,115,101,115,5,0,0, + 0,32,32,32,32,32,114,7,0,0,0,218,13,95,114,101, + 115,111,108,118,101,95,110,97,109,101,114,170,1,0,0,207, + 4,0,0,115,79,0,0,0,128,0,224,11,18,143,62,137, + 62,152,35,152,117,160,113,153,121,211,11,41,128,68,220,7, + 10,136,52,131,121,144,53,211,7,24,220,14,25,208,26,78, + 211,14,79,208,8,79,216,11,15,144,1,137,55,128,68,222, + 31,35,136,100,136,86,144,49,144,84,144,70,208,11,27,208, + 4,45,168,20,208,4,45,114,22,0,0,0,99,3,0,0, + 0,0,0,0,0,0,0,0,0,7,0,0,0,3,0,0, + 0,243,36,2,0,0,149,0,91,0,0,0,0,0,0,0, + 0,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,110,3,85,3,99,11,0,0,91,5, + 0,0,0,0,0,0,0,0,83,2,53,1,0,0,0,0, + 0,0,101,1,85,3,40,0,0,0,0,0,0,0,100,26, + 0,0,91,6,0,0,0,0,0,0,0,0,82,9,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 83,3,91,10,0,0,0,0,0,0,0,0,53,2,0,0, + 0,0,0,0,32,0,85,0,91,0,0,0,0,0,0,0, + 0,0,82,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,59,0,0,0,110,4,85,3,19,0, + 72,122,0,0,110,5,91,15,0,0,0,0,0,0,0,0, + 53,0,0,0,0,0,0,0,2,0,32,0,30,0,85,5, + 82,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,110,6,85,6,34,0,88,1,85,2,53,3, + 0,0,0,0,0,0,110,7,30,0,83,1,83,1,83,1, + 53,2,0,0,0,0,0,0,32,0,87,7,99,2,0,0, + 77,50,0,0,85,4,40,0,0,0,0,0,0,0,100,63, + 0,0,85,0,91,0,0,0,0,0,0,0,0,0,82,12, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,59,0,0,0,97,43,0,0,91,0,0,0,0,0, + 0,0,0,0,82,12,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,0,5,0,0,0,110,8, + 30,0,85,8,82,20,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,110,9,85,9,99,4,0,0, + 85,7,115,2,32,0,36,0,85,9,115,2,32,0,36,0, + 85,7,115,2,32,0,36,0,11,0,32,0,103,1,33,0, + 91,18,0,0,0,0,0,0,0,0,7,0,97,12,0,0, + 32,0,31,0,83,1,83,1,83,1,53,2,0,0,0,0, + 0,0,32,0,77,148,0,0,102,0,61,3,31,0,102,1, + 33,0,44,0,40,0,0,0,0,0,0,0,100,1,0,0, + 102,2,32,0,31,0,32,0,32,0,78,121,61,3,31,0, + 102,1,33,0,91,18,0,0,0,0,0,0,0,0,7,0, + 97,7,0,0,32,0,85,7,115,2,31,0,115,2,32,0, + 36,0,102,0,61,3,31,0,102,1,41,4,122,21,70,105, + 110,100,32,97,32,109,111,100,117,108,101,39,115,32,115,112, + 101,99,46,78,122,53,115,121,115,46,109,101,116,97,95,112, + 97,116,104,32,105,115,32,78,111,110,101,44,32,80,121,116, + 104,111,110,32,105,115,32,108,105,107,101,108,121,32,115,104, + 117,116,116,105,110,103,32,100,111,119,110,122,22,115,121,115, + 46,109,101,116,97,95,112,97,116,104,32,105,115,32,101,109, + 112,116,121,41,11,114,24,0,0,0,218,9,109,101,116,97, + 95,112,97,116,104,114,209,0,0,0,114,224,0,0,0,114, + 225,0,0,0,114,66,1,0,0,114,228,0,0,0,114,155, + 1,0,0,114,82,1,0,0,114,4,0,0,0,114,237,0, + 0,0,41,10,114,26,0,0,0,114,80,1,0,0,114,81, + 1,0,0,114,172,1,0,0,218,9,105,115,95,114,101,108, + 111,97,100,218,6,102,105,110,100,101,114,114,82,1,0,0, + 114,232,0,0,0,114,233,0,0,0,114,237,0,0,0,115, + 10,0,0,0,32,32,32,32,32,32,32,32,32,32,114,7, + 0,0,0,218,10,95,102,105,110,100,95,115,112,101,99,114, + 175,1,0,0,216,4,0,0,115,4,1,0,0,128,0,228, + 16,19,151,13,145,13,128,73,216,7,16,209,7,24,228,14, + 25,240,0,1,27,42,243,0,1,15,43,240,0,1,9,43, + 246,6,0,12,21,220,8,17,143,14,137,14,208,23,47,180, + 29,212,8,63,240,10,0,17,21,156,3,159,11,153,11,209, + 16,35,128,73,219,18,27,136,6,220,13,31,213,13,33,240, + 2,5,13,53,216,28,34,215,28,44,209,28,44,144,9,241, + 8,0,24,33,160,20,168,86,211,23,52,145,4,247,13,0, + 14,34,240,14,0,12,16,211,11,27,230,19,28,160,20,172, + 19,175,27,169,27,211,33,52,220,25,28,159,27,153,27,160, + 84,209,25,42,144,6,240,2,11,17,40,216,31,37,159,127, + 153,127,144,72,240,14,0,24,32,209,23,39,216,31,35,154, + 11,224,31,39,154,15,224,23,27,146,11,241,51,0,19,28, + 240,54,0,16,20,248,244,47,0,20,34,243,0,1,13,25, + 216,16,24,247,9,0,14,34,209,13,33,240,6,1,13,25, + 250,247,7,0,14,34,213,13,33,251,244,26,0,24,38,243, + 0,4,17,32,240,8,0,28,32,148,75,240,9,4,17,32, + 250,115,66,0,0,0,193,34,1,67,45,5,193,36,12,67, + 20,4,193,48,9,67,45,5,194,54,12,67,62,2,195,20, + 10,67,42,7,195,30,1,67,45,5,195,41,1,67,42,7, + 195,42,3,67,45,5,195,45,10,67,59,9,195,62,12,68, + 15,5,196,14,1,68,15,5,99,3,0,0,0,0,0,0, + 0,0,0,0,0,6,0,0,0,3,0,0,0,243,32,1, + 0,0,149,0,91,1,0,0,0,0,0,0,0,0,85,0, + 91,2,0,0,0,0,0,0,0,0,53,2,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,100,23,0,0,91,5, + 0,0,0,0,0,0,0,0,83,1,91,7,0,0,0,0, + 0,0,0,0,85,0,53,1,0,0,0,0,0,0,14,0, + 51,2,53,1,0,0,0,0,0,0,101,1,85,2,83,2, + 58,18,0,0,97,11,0,0,91,9,0,0,0,0,0,0, + 0,0,83,3,53,1,0,0,0,0,0,0,101,1,85,2, + 83,2,58,148,0,0,97,50,0,0,91,1,0,0,0,0, + 0,0,0,0,85,1,91,2,0,0,0,0,0,0,0,0, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 100,11,0,0,91,5,0,0,0,0,0,0,0,0,83,4, + 53,1,0,0,0,0,0,0,101,1,85,1,40,0,0,0, + 0,0,0,0,100,11,0,0,91,11,0,0,0,0,0,0, + 0,0,83,5,53,1,0,0,0,0,0,0,101,1,85,0, + 40,0,0,0,0,0,0,0,100,18,0,0,85,2,83,2, + 58,88,0,0,97,11,0,0,91,9,0,0,0,0,0,0, + 0,0,83,6,53,1,0,0,0,0,0,0,101,1,103,7, + 103,7,41,8,122,28,86,101,114,105,102,121,32,97,114,103, + 117,109,101,110,116,115,32,97,114,101,32,34,115,97,110,101, + 34,46,122,29,109,111,100,117,108,101,32,110,97,109,101,32, + 109,117,115,116,32,98,101,32,115,116,114,44,32,110,111,116, + 32,114,146,0,0,0,122,18,108,101,118,101,108,32,109,117, + 115,116,32,98,101,32,62,61,32,48,122,31,95,95,112,97, + 99,107,97,103,101,95,95,32,110,111,116,32,115,101,116,32, + 116,111,32,97,32,115,116,114,105,110,103,122,54,97,116,116, + 101,109,112,116,101,100,32,114,101,108,97,116,105,118,101,32, + 105,109,112,111,114,116,32,119,105,116,104,32,110,111,32,107, + 110,111,119,110,32,112,97,114,101,110,116,32,112,97,99,107, + 97,103,101,122,17,69,109,112,116,121,32,109,111,100,117,108, + 101,32,110,97,109,101,78,41,6,114,62,1,0,0,218,3, + 115,116,114,218,9,84,121,112,101,69,114,114,111,114,114,5, + 0,0,0,218,10,86,97,108,117,101,69,114,114,111,114,114, + 209,0,0,0,169,3,114,26,0,0,0,114,166,1,0,0, + 114,167,1,0,0,115,3,0,0,0,32,32,32,114,7,0, + 0,0,218,13,95,115,97,110,105,116,121,95,99,104,101,99, + 107,114,181,1,0,0,5,5,0,0,115,138,0,0,0,128, + 0,228,11,21,144,100,156,67,215,11,32,209,11,32,220,14, + 23,208,26,55,188,4,184,84,187,10,176,124,208,24,68,211, + 14,69,208,8,69,216,7,12,136,113,131,121,220,14,24,208, + 25,45,211,14,46,208,8,46,216,7,12,136,113,131,121,220, + 15,25,152,39,164,51,215,15,39,209,15,39,220,18,27,208, + 28,61,211,18,62,208,12,62,222,17,24,220,18,29,240,0, + 1,31,40,243,0,1,19,41,240,0,1,13,41,230,11,15, + 144,69,152,81,147,74,220,14,24,208,25,44,211,14,45,208, + 8,45,240,3,0,21,31,136,52,114,22,0,0,0,122,16, + 78,111,32,109,111,100,117,108,101,32,110,97,109,101,100,32, + 122,4,123,33,114,125,99,2,0,0,0,0,0,0,0,0, + 0,0,0,6,0,0,0,3,0,0,0,243,140,3,0,0, + 149,0,83,0,110,2,85,0,82,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,1,53,1, + 0,0,0,0,0,0,83,2,5,0,0,0,110,3,83,0, + 110,4,85,3,40,0,0,0,0,0,0,0,97,134,0,0, + 85,3,91,2,0,0,0,0,0,0,0,0,82,4,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 59,1,0,0,97,11,0,0,91,7,0,0,0,0,0,0, + 0,0,88,19,53,2,0,0,0,0,0,0,32,0,85,0, + 91,2,0,0,0,0,0,0,0,0,82,4,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,0, + 0,0,97,19,0,0,91,2,0,0,0,0,0,0,0,0, + 82,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,0,5,0,0,0,36,0,91,2,0,0, + 0,0,0,0,0,0,82,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,3,5,0,0,0, + 110,5,30,0,85,5,82,8,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,110,2,85,5,82,16, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,110,4,85,0,82,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,1,53,1,0,0, + 0,0,0,0,83,6,5,0,0,0,110,7,91,19,0,0, + 0,0,0,0,0,0,88,2,53,2,0,0,0,0,0,0, + 110,8,85,8,99,19,0,0,91,15,0,0,0,0,0,0, + 0,0,91,12,0,0,0,0,0,0,0,0,14,0,85,0, + 60,2,14,0,51,2,85,0,83,5,57,2,101,1,85,4, + 40,0,0,0,0,0,0,0,97,27,0,0,85,4,82,20, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,82,23,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,87,7,53,1,0,0,0,0,0,0, + 32,0,30,0,91,25,0,0,0,0,0,0,0,0,85,8, + 53,1,0,0,0,0,0,0,110,9,85,4,40,0,0,0, + 0,0,0,0,97,26,0,0,85,4,82,20,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,27, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,53,0,0,0,0,0,0,0,32,0,85,3,40,0, + 0,0,0,0,0,0,97,35,0,0,91,2,0,0,0,0, + 0,0,0,0,82,4,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,3,5,0,0,0,110,5, + 30,0,91,29,0,0,0,0,0,0,0,0,85,5,87,7, + 85,9,53,3,0,0,0,0,0,0,32,0,85,9,36,0, + 85,9,36,0,33,0,91,10,0,0,0,0,0,0,0,0, + 7,0,97,27,0,0,32,0,91,12,0,0,0,0,0,0, + 0,0,14,0,85,0,60,2,14,0,83,3,85,3,60,2, + 14,0,83,4,51,5,110,6,91,15,0,0,0,0,0,0, + 0,0,88,96,83,5,57,2,83,0,101,2,102,0,61,3, + 31,0,102,1,33,0,85,4,40,0,0,0,0,0,0,0, + 97,27,0,0,85,4,82,20,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,82,27,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,32,0,102,0,102,0,61,3,31,0, + 102,1,33,0,91,10,0,0,0,0,0,0,0,0,7,0, + 97,40,0,0,32,0,83,7,85,3,60,2,14,0,83,8, + 87,7,60,2,14,0,51,4,110,6,91,30,0,0,0,0, + 0,0,0,0,82,33,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,6,91,34,0,0,0,0, + 0,0,0,0,53,2,0,0,0,0,0,0,32,0,31,0, + 85,9,36,0,102,0,61,3,31,0,102,1,41,9,78,114, + 25,1,0,0,114,146,0,0,0,122,2,59,32,122,17,32, + 105,115,32,110,111,116,32,97,32,112,97,99,107,97,103,101, + 114,25,0,0,0,233,2,0,0,0,122,27,67,97,110,110, + 111,116,32,115,101,116,32,97,110,32,97,116,116,114,105,98, + 117,116,101,32,111,110,32,122,18,32,102,111,114,32,99,104, + 105,108,100,32,109,111,100,117,108,101,32,41,18,114,26,1, + 0,0,114,24,0,0,0,114,228,0,0,0,114,192,0,0, + 0,114,46,1,0,0,114,4,0,0,0,218,15,95,69,82, + 82,95,77,83,71,95,80,82,69,70,73,88,218,19,77,111, + 100,117,108,101,78,111,116,70,111,117,110,100,69,114,114,111, + 114,114,237,0,0,0,114,175,1,0,0,114,1,1,0,0, + 114,58,0,0,0,114,72,1,0,0,114,77,0,0,0,114, + 14,0,0,0,114,224,0,0,0,114,225,0,0,0,114,66, + 1,0,0,41,10,114,26,0,0,0,218,7,105,109,112,111, + 114,116,95,114,80,1,0,0,114,27,1,0,0,218,11,112, + 97,114,101,110,116,95,115,112,101,99,218,13,112,97,114,101, + 110,116,95,109,111,100,117,108,101,114,231,0,0,0,218,5, + 99,104,105,108,100,114,232,0,0,0,114,233,0,0,0,115, + 10,0,0,0,32,32,32,32,32,32,32,32,32,32,114,7, + 0,0,0,218,23,95,102,105,110,100,95,97,110,100,95,108, + 111,97,100,95,117,110,108,111,99,107,101,100,114,190,1,0, + 0,24,5,0,0,115,171,1,0,0,128,0,216,11,15,128, + 68,216,13,17,143,95,137,95,152,83,211,13,33,160,33,209, + 13,36,128,70,216,18,22,128,75,222,7,13,216,11,17,156, + 19,159,27,153,27,211,11,36,220,12,37,160,103,212,12,54, + 224,11,15,148,51,151,59,145,59,211,11,30,220,19,22,151, + 59,145,59,152,116,209,19,36,208,12,36,220,24,27,159,11, + 153,11,160,70,209,24,43,136,13,240,2,4,9,64,1,216, + 19,32,215,19,41,209,19,41,136,68,240,8,0,23,36,215, + 22,44,209,22,44,136,11,216,16,20,151,15,145,15,160,3, + 211,16,36,160,81,209,16,39,136,5,220,11,21,144,100,211, + 11,33,128,68,216,7,11,129,124,220,14,33,164,95,208,36, + 53,176,100,177,88,208,34,62,192,84,209,14,74,208,8,74, + 230,11,22,240,6,0,13,24,215,12,49,209,12,49,215,12, + 56,209,12,56,184,21,212,12,63,240,2,4,9,60,220,21, + 35,160,68,211,21,41,136,70,230,15,26,216,16,27,215,16, + 53,209,16,53,215,16,57,209,16,57,212,16,59,222,7,13, + 228,24,27,159,11,153,11,160,70,209,24,43,136,13,240,2, + 4,9,47,220,12,19,144,77,160,53,168,38,212,12,49,240, + 8,0,12,18,128,77,136,54,128,77,248,244,53,0,16,30, + 243,0,2,9,64,1,220,21,36,208,20,37,160,100,161,88, + 168,82,176,6,169,122,208,57,74,208,18,75,136,67,220,18, + 37,160,99,209,18,53,184,52,208,12,63,240,5,2,9,64, + 1,251,246,32,0,16,27,216,16,27,215,16,53,209,16,53, + 215,16,57,209,16,57,213,16,59,240,3,0,16,27,251,244, + 14,0,16,30,243,0,2,9,47,216,20,47,176,6,169,122, + 208,57,75,200,69,201,57,208,18,85,136,67,220,12,21,143, + 78,137,78,152,51,164,13,213,12,46,216,11,17,128,77,240, + 7,2,9,47,250,115,42,0,0,0,193,58,12,69,2,0, + 195,42,11,69,42,0,196,49,13,70,17,0,197,2,37,69, + 39,3,197,42,36,70,14,3,198,17,46,71,3,3,199,2, + 1,71,3,3,99,2,0,0,0,0,0,0,0,0,0,0, + 0,7,0,0,0,3,0,0,0,243,162,1,0,0,149,0, + 91,0,0,0,0,0,0,0,0,0,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,5, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,0,91,6,0,0,0,0,0,0,0,0,53,2, + 0,0,0,0,0,0,110,2,85,2,91,6,0,0,0,0, + 0,0,0,0,76,0,100,29,0,0,91,9,0,0,0,0, + 0,0,0,0,91,9,0,0,0,0,0,0,0,0,85,2, + 83,1,83,2,53,3,0,0,0,0,0,0,83,3,83,4, + 53,3,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 97,97,0,0,91,11,0,0,0,0,0,0,0,0,85,0, + 53,1,0,0,0,0,0,0,2,0,32,0,91,0,0,0, + 0,0,0,0,0,0,82,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,82,5,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0, + 91,6,0,0,0,0,0,0,0,0,53,2,0,0,0,0, + 0,0,110,2,85,2,91,6,0,0,0,0,0,0,0,0, + 76,0,97,20,0,0,91,13,0,0,0,0,0,0,0,0, + 88,1,53,2,0,0,0,0,0,0,115,2,83,2,83,2, + 83,2,53,2,0,0,0,0,0,0,32,0,36,0,30,0, + 83,2,83,2,83,2,53,2,0,0,0,0,0,0,32,0, + 91,15,0,0,0,0,0,0,0,0,85,0,53,1,0,0, + 0,0,0,0,32,0,85,2,99,15,0,0,83,5,85,0, + 14,0,83,6,51,3,110,3,91,17,0,0,0,0,0,0, + 0,0,88,48,83,7,57,2,101,1,85,2,36,0,33,0, + 44,0,40,0,0,0,0,0,0,0,100,1,0,0,102,2, + 32,0,31,0,32,0,32,0,78,45,61,3,31,0,102,1, + 41,8,122,25,70,105,110,100,32,97,110,100,32,108,111,97, + 100,32,116,104,101,32,109,111,100,117,108,101,46,114,237,0, + 0,0,78,114,71,1,0,0,70,122,10,105,109,112,111,114, + 116,32,111,102,32,122,28,32,104,97,108,116,101,100,59,32, + 78,111,110,101,32,105,110,32,115,121,115,46,109,111,100,117, + 108,101,115,114,25,0,0,0,41,9,114,24,0,0,0,114, + 228,0,0,0,114,86,0,0,0,218,14,95,78,69,69,68, + 83,95,76,79,65,68,73,78,71,114,15,0,0,0,114,169, + 0,0,0,114,190,1,0,0,114,188,0,0,0,114,185,1, + 0,0,41,4,114,26,0,0,0,114,186,1,0,0,114,233, + 0,0,0,114,203,0,0,0,115,4,0,0,0,32,32,32, + 32,114,7,0,0,0,218,14,95,102,105,110,100,95,97,110, + 100,95,108,111,97,100,114,193,1,0,0,69,5,0,0,115, + 171,0,0,0,128,0,244,10,0,14,17,143,91,137,91,143, + 95,137,95,152,84,164,62,211,13,50,128,70,216,8,14,148, + 46,210,8,32,220,8,15,148,7,152,6,160,10,168,68,211, + 16,49,176,63,192,69,215,8,74,209,8,74,220,13,31,160, 4,213,13,37,220,21,24,151,91,145,91,151,95,145,95,160, - 84,172,62,211,21,58,136,70,216,15,21,156,30,209,15,39, - 220,23,46,168,116,176,87,211,23,61,247,7,0,14,38,209, - 13,37,224,15,39,247,5,0,14,38,244,18,0,9,28,152, - 68,212,8,33,224,7,13,128,126,216,20,30,152,116,152,102, - 208,36,64,208,18,65,136,7,220,14,33,160,39,176,4,212, - 14,53,208,8,53,224,11,17,128,77,247,31,0,14,38,208, - 13,37,250,115,12,0,0,0,193,16,56,66,61,3,194,61, - 5,67,6,7,99,3,0,0,0,0,0,0,0,0,0,0, - 0,5,0,0,0,3,0,0,0,243,96,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,0,124,1,124,2, - 171,3,0,0,0,0,0,0,1,0,124,2,100,1,107,68, - 0,0,114,13,116,3,0,0,0,0,0,0,0,0,124,0, - 124,1,124,2,171,3,0,0,0,0,0,0,125,0,116,5, - 0,0,0,0,0,0,0,0,124,0,116,6,0,0,0,0, - 0,0,0,0,171,2,0,0,0,0,0,0,83,0,41,2, - 97,50,1,0,0,73,109,112,111,114,116,32,97,110,100,32, - 114,101,116,117,114,110,32,116,104,101,32,109,111,100,117,108, - 101,32,98,97,115,101,100,32,111,110,32,105,116,115,32,110, - 97,109,101,44,32,116,104,101,32,112,97,99,107,97,103,101, - 32,116,104,101,32,99,97,108,108,32,105,115,10,32,32,32, - 32,98,101,105,110,103,32,109,97,100,101,32,102,114,111,109, - 44,32,97,110,100,32,116,104,101,32,108,101,118,101,108,32, - 97,100,106,117,115,116,109,101,110,116,46,10,10,32,32,32, - 32,84,104,105,115,32,102,117,110,99,116,105,111,110,32,114, - 101,112,114,101,115,101,110,116,115,32,116,104,101,32,103,114, - 101,97,116,101,115,116,32,99,111,109,109,111,110,32,100,101, - 110,111,109,105,110,97,116,111,114,32,111,102,32,102,117,110, - 99,116,105,111,110,97,108,105,116,121,10,32,32,32,32,98, - 101,116,119,101,101,110,32,105,109,112,111,114,116,95,109,111, - 100,117,108,101,32,97,110,100,32,95,95,105,109,112,111,114, - 116,95,95,46,32,84,104,105,115,32,105,110,99,108,117,100, - 101,115,32,115,101,116,116,105,110,103,32,95,95,112,97,99, - 107,97,103,101,95,95,32,105,102,10,32,32,32,32,116,104, - 101,32,108,111,97,100,101,114,32,100,105,100,32,110,111,116, - 46,10,10,32,32,32,32,114,125,0,0,0,41,4,114,125, - 1,0,0,114,114,1,0,0,114,137,1,0,0,218,11,95, - 103,99,100,95,105,109,112,111,114,116,114,124,1,0,0,115, - 3,0,0,0,32,32,32,114,7,0,0,0,114,139,1,0, - 0,114,139,1,0,0,95,5,0,0,115,50,0,0,0,128, - 0,244,18,0,5,18,144,36,152,7,160,21,212,4,39,216, - 7,12,136,113,130,121,220,15,28,152,84,160,55,168,69,211, - 15,50,136,4,220,11,25,152,36,164,11,211,11,44,208,4, - 44,114,22,0,0,0,169,1,218,9,114,101,99,117,114,115, - 105,118,101,99,3,0,0,0,0,0,0,0,1,0,0,0, - 9,0,0,0,3,0,0,0,243,236,1,0,0,151,0,124, - 1,68,0,93,164,0,0,125,4,116,1,0,0,0,0,0, - 0,0,0,124,4,116,2,0,0,0,0,0,0,0,0,171, - 2,0,0,0,0,0,0,115,56,124,3,114,16,124,0,106, - 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,1,122,0,0,0,125,5,110,2,100,2,125, - 5,116,7,0,0,0,0,0,0,0,0,100,3,124,5,155, - 0,100,4,116,9,0,0,0,0,0,0,0,0,124,4,171, - 1,0,0,0,0,0,0,106,4,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,155,0,157,4,171, - 1,0,0,0,0,0,0,130,1,124,4,100,5,107,40,0, - 0,114,42,124,3,114,1,140,83,116,11,0,0,0,0,0, - 0,0,0,124,0,100,6,171,2,0,0,0,0,0,0,115, - 1,140,96,116,13,0,0,0,0,0,0,0,0,124,0,124, - 0,106,14,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,2,100,7,172,8,171,4,0,0,0, - 0,0,0,1,0,140,122,116,11,0,0,0,0,0,0,0, - 0,124,0,124,4,171,2,0,0,0,0,0,0,114,1,140, - 135,124,0,106,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,155,0,100,9,124,4,155,0,157, - 3,125,6,9,0,116,17,0,0,0,0,0,0,0,0,124, - 2,124,6,171,2,0,0,0,0,0,0,1,0,140,166,4, - 0,124,0,83,0,35,0,116,18,0,0,0,0,0,0,0, - 0,36,0,114,62,125,7,124,7,106,20,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,6,107, - 40,0,0,114,41,116,22,0,0,0,0,0,0,0,0,106, - 24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,27,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,6,116,28,0,0,0,0,0, - 0,0,0,171,2,0,0,0,0,0,0,129,5,89,0,100, - 10,125,7,126,7,140,234,130,0,100,10,125,7,126,7,119, - 1,119,0,120,3,89,0,119,1,41,11,122,238,70,105,103, + 84,172,62,211,21,58,136,70,216,15,21,156,30,210,15,39, + 220,23,46,168,116,211,23,61,247,7,0,14,38,209,13,37, + 224,15,39,247,5,0,14,38,244,18,0,9,28,152,68,212, + 8,33,224,7,13,129,126,216,20,30,152,116,152,102,208,36, + 64,208,18,65,136,7,220,14,33,160,39,209,14,53,208,8, + 53,224,11,17,128,77,247,31,0,14,38,213,13,37,250,115, + 12,0,0,0,193,22,56,67,0,3,195,0,10,67,14,7, + 99,3,0,0,0,0,0,0,0,0,0,0,0,5,0,0, + 0,3,0,0,0,243,94,0,0,0,149,0,91,1,0,0, + 0,0,0,0,0,0,88,1,85,2,53,3,0,0,0,0, + 0,0,32,0,85,2,83,1,58,148,0,0,97,12,0,0, + 91,3,0,0,0,0,0,0,0,0,88,1,85,2,53,3, + 0,0,0,0,0,0,110,0,91,5,0,0,0,0,0,0, + 0,0,85,0,91,6,0,0,0,0,0,0,0,0,53,2, + 0,0,0,0,0,0,36,0,41,2,97,30,1,0,0,73, + 109,112,111,114,116,32,97,110,100,32,114,101,116,117,114,110, + 32,116,104,101,32,109,111,100,117,108,101,32,98,97,115,101, + 100,32,111,110,32,105,116,115,32,110,97,109,101,44,32,116, + 104,101,32,112,97,99,107,97,103,101,32,116,104,101,32,99, + 97,108,108,32,105,115,10,98,101,105,110,103,32,109,97,100, + 101,32,102,114,111,109,44,32,97,110,100,32,116,104,101,32, + 108,101,118,101,108,32,97,100,106,117,115,116,109,101,110,116, + 46,10,10,84,104,105,115,32,102,117,110,99,116,105,111,110, + 32,114,101,112,114,101,115,101,110,116,115,32,116,104,101,32, + 103,114,101,97,116,101,115,116,32,99,111,109,109,111,110,32, + 100,101,110,111,109,105,110,97,116,111,114,32,111,102,32,102, + 117,110,99,116,105,111,110,97,108,105,116,121,10,98,101,116, + 119,101,101,110,32,105,109,112,111,114,116,95,109,111,100,117, + 108,101,32,97,110,100,32,95,95,105,109,112,111,114,116,95, + 95,46,32,84,104,105,115,32,105,110,99,108,117,100,101,115, + 32,115,101,116,116,105,110,103,32,95,95,112,97,99,107,97, + 103,101,95,95,32,105,102,10,116,104,101,32,108,111,97,100, + 101,114,32,100,105,100,32,110,111,116,46,10,10,114,146,0, + 0,0,41,4,114,181,1,0,0,114,170,1,0,0,114,193, + 1,0,0,218,11,95,103,99,100,95,105,109,112,111,114,116, + 114,180,1,0,0,115,3,0,0,0,32,32,32,114,7,0, + 0,0,114,195,1,0,0,114,195,1,0,0,95,5,0,0, + 115,46,0,0,0,128,0,244,18,0,5,18,144,36,160,21, + 212,4,39,216,7,12,136,113,131,121,220,15,28,152,84,168, + 69,211,15,50,136,4,220,11,25,152,36,164,11,211,11,44, + 208,4,44,114,22,0,0,0,169,1,218,9,114,101,99,117, + 114,115,105,118,101,99,3,0,0,0,0,0,0,0,1,0, + 0,0,9,0,0,0,3,0,0,0,243,42,2,0,0,149, + 0,85,1,19,0,72,189,0,0,110,4,91,1,0,0,0, + 0,0,0,0,0,85,4,91,2,0,0,0,0,0,0,0, + 0,53,2,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,100,61,0,0,85,3,40,0,0,0,0,0,0,0,97, + 16,0,0,85,0,82,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,1,45,0,0,0,110, + 5,79,2,83,2,110,5,91,7,0,0,0,0,0,0,0, + 0,83,3,85,5,14,0,83,4,91,9,0,0,0,0,0, + 0,0,0,85,4,53,1,0,0,0,0,0,0,82,4,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,14,0,51,4,53,1,0,0,0,0,0,0,101,1,85, + 4,83,5,58,88,0,0,97,51,0,0,85,3,40,0,0, + 0,0,0,0,0,100,42,0,0,91,11,0,0,0,0,0, + 0,0,0,85,0,83,6,53,2,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,97,23,0,0,91,13,0,0,0, + 0,0,0,0,0,88,0,82,14,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,2,83,7,83, + 8,57,4,32,0,77,138,0,0,77,140,0,0,77,142,0, + 0,91,11,0,0,0,0,0,0,0,0,88,4,53,2,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,2,0, + 0,77,160,0,0,85,0,82,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,14,0,83,9,85, + 4,14,0,51,3,110,6,30,0,91,17,0,0,0,0,0, + 0,0,0,88,38,53,2,0,0,0,0,0,0,32,0,77, + 191,0,0,11,0,32,0,85,0,36,0,33,0,91,18,0, + 0,0,0,0,0,0,0,7,0,97,66,0,0,110,7,85, + 7,82,20,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,6,58,88,0,0,97,44,0,0,91, + 22,0,0,0,0,0,0,0,0,82,24,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,27,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,6,91,28,0,0,0,0,0,0,0,0,53,2,0, + 0,0,0,0,0,98,7,0,0,31,0,83,10,110,7,65, + 7,71,1,77,9,0,0,101,0,83,10,110,7,65,7,102, + 1,102,0,61,3,31,0,102,1,41,11,122,222,70,105,103, 117,114,101,32,111,117,116,32,119,104,97,116,32,95,95,105, 109,112,111,114,116,95,95,32,115,104,111,117,108,100,32,114, - 101,116,117,114,110,46,10,10,32,32,32,32,84,104,101,32, - 105,109,112,111,114,116,95,32,112,97,114,97,109,101,116,101, - 114,32,105,115,32,97,32,99,97,108,108,97,98,108,101,32, - 119,104,105,99,104,32,116,97,107,101,115,32,116,104,101,32, - 110,97,109,101,32,111,102,32,109,111,100,117,108,101,32,116, - 111,10,32,32,32,32,105,109,112,111,114,116,46,32,73,116, - 32,105,115,32,114,101,113,117,105,114,101,100,32,116,111,32, - 100,101,99,111,117,112,108,101,32,116,104,101,32,102,117,110, - 99,116,105,111,110,32,102,114,111,109,32,97,115,115,117,109, - 105,110,103,32,105,109,112,111,114,116,108,105,98,39,115,10, - 32,32,32,32,105,109,112,111,114,116,32,105,109,112,108,101, - 109,101,110,116,97,116,105,111,110,32,105,115,32,100,101,115, - 105,114,101,100,46,10,10,32,32,32,32,122,8,46,95,95, + 101,116,117,114,110,46,10,10,84,104,101,32,105,109,112,111, + 114,116,95,32,112,97,114,97,109,101,116,101,114,32,105,115, + 32,97,32,99,97,108,108,97,98,108,101,32,119,104,105,99, + 104,32,116,97,107,101,115,32,116,104,101,32,110,97,109,101, + 32,111,102,32,109,111,100,117,108,101,32,116,111,10,105,109, + 112,111,114,116,46,32,73,116,32,105,115,32,114,101,113,117, + 105,114,101,100,32,116,111,32,100,101,99,111,117,112,108,101, + 32,116,104,101,32,102,117,110,99,116,105,111,110,32,102,114, + 111,109,32,97,115,115,117,109,105,110,103,32,105,109,112,111, + 114,116,108,105,98,39,115,10,105,109,112,111,114,116,32,105, + 109,112,108,101,109,101,110,116,97,116,105,111,110,32,105,115, + 32,100,101,115,105,114,101,100,46,10,10,122,8,46,95,95, 97,108,108,95,95,122,13,96,96,102,114,111,109,32,108,105, 115,116,39,39,122,8,73,116,101,109,32,105,110,32,122,18, 32,109,117,115,116,32,98,101,32,115,116,114,44,32,110,111, 116,32,218,1,42,218,7,95,95,97,108,108,95,95,84,114, - 140,1,0,0,114,244,0,0,0,78,41,15,114,23,1,0, - 0,114,121,1,0,0,114,11,0,0,0,114,122,1,0,0, + 196,1,0,0,114,25,1,0,0,78,41,15,114,62,1,0, + 0,114,177,1,0,0,114,11,0,0,0,114,178,1,0,0, 114,5,0,0,0,114,13,0,0,0,218,16,95,104,97,110, - 100,108,101,95,102,114,111,109,108,105,115,116,114,144,1,0, - 0,114,161,0,0,0,114,129,1,0,0,114,26,0,0,0, - 114,24,0,0,0,114,195,0,0,0,114,76,0,0,0,114, - 136,1,0,0,41,8,114,200,0,0,0,218,8,102,114,111, - 109,108,105,115,116,114,130,1,0,0,114,141,1,0,0,218, + 100,108,101,95,102,114,111,109,108,105,115,116,114,200,1,0, + 0,114,192,0,0,0,114,185,1,0,0,114,26,0,0,0, + 114,24,0,0,0,114,228,0,0,0,114,86,0,0,0,114, + 192,1,0,0,41,8,114,233,0,0,0,218,8,102,114,111, + 109,108,105,115,116,114,186,1,0,0,114,197,1,0,0,218, 1,120,218,5,119,104,101,114,101,218,9,102,114,111,109,95, 110,97,109,101,218,3,101,120,99,115,8,0,0,0,32,32, - 32,32,32,32,32,32,114,7,0,0,0,114,145,1,0,0, - 114,145,1,0,0,110,5,0,0,115,243,0,0,0,128,0, - 243,20,0,14,22,136,1,220,15,25,152,33,156,83,212,15, - 33,217,15,24,216,24,30,159,15,153,15,168,42,209,24,52, - 145,5,224,24,39,144,5,220,18,27,152,104,160,117,160,103, - 240,0,1,46,35,220,35,39,168,1,163,55,215,35,51,209, - 35,51,208,34,52,240,3,1,29,54,243,0,1,19,55,240, - 0,1,13,55,224,13,14,144,35,138,88,218,19,28,164,23, - 168,22,176,25,213,33,59,220,16,32,160,22,168,22,175,30, - 169,30,184,23,216,43,47,246,3,1,17,49,228,17,24,152, - 22,160,17,213,17,35,216,27,33,159,63,153,63,208,26,43, - 168,49,168,81,168,67,208,24,48,136,73,240,2,9,13,22, - 220,16,41,168,39,176,57,213,16,61,240,31,0,14,22,240, - 48,0,12,18,128,77,248,244,17,0,20,39,242,0,7,13, - 22,240,8,0,21,24,151,72,145,72,160,9,210,20,41,220, - 20,23,151,75,145,75,151,79,145,79,160,73,172,126,211,20, - 62,208,20,74,220,20,28,216,16,21,251,240,15,7,13,22, - 250,115,30,0,0,0,194,28,12,66,44,2,194,44,9,67, - 51,5,194,53,51,67,46,5,195,45,1,67,46,5,195,46, - 5,67,51,5,99,1,0,0,0,0,0,0,0,0,0,0, - 0,7,0,0,0,3,0,0,0,243,92,1,0,0,151,0, - 124,0,106,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,1,171,1,0,0,0,0,0,0, - 125,1,124,0,106,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,2,171,1,0,0,0,0, - 0,0,125,2,124,1,129,64,124,2,129,60,124,1,124,2, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,107,55,0,0,114,45,116,4,0,0,0,0, - 0,0,0,0,106,7,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,3,124,1,155,2,100,4, - 124,2,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,155,2,100,5,157,5,116,8,0,0, - 0,0,0,0,0,0,100,6,172,7,171,3,0,0,0,0, - 0,0,1,0,124,1,83,0,124,2,129,12,124,2,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,83,0,116,4,0,0,0,0,0,0,0,0,106,7, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,8,116,10,0,0,0,0,0,0,0,0,100,6, - 172,7,171,3,0,0,0,0,0,0,1,0,124,0,100,9, - 25,0,0,0,125,1,100,10,124,0,118,1,114,20,124,1, - 106,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,11,171,1,0,0,0,0,0,0,100,12, - 25,0,0,0,125,1,124,1,83,0,41,13,122,167,67,97, - 108,99,117,108,97,116,101,32,119,104,97,116,32,95,95,112, - 97,99,107,97,103,101,95,95,32,115,104,111,117,108,100,32, - 98,101,46,10,10,32,32,32,32,95,95,112,97,99,107,97, - 103,101,95,95,32,105,115,32,110,111,116,32,103,117,97,114, - 97,110,116,101,101,100,32,116,111,32,98,101,32,100,101,102, - 105,110,101,100,32,111,114,32,99,111,117,108,100,32,98,101, - 32,115,101,116,32,116,111,32,78,111,110,101,10,32,32,32, - 32,116,111,32,114,101,112,114,101,115,101,110,116,32,116,104, - 97,116,32,105,116,115,32,112,114,111,112,101,114,32,118,97, - 108,117,101,32,105,115,32,117,110,107,110,111,119,110,46,10, - 10,32,32,32,32,114,13,1,0,0,114,204,0,0,0,122, - 32,95,95,112,97,99,107,97,103,101,95,95,32,33,61,32, - 95,95,115,112,101,99,95,95,46,112,97,114,101,110,116,32, - 40,122,4,32,33,61,32,114,229,0,0,0,233,3,0,0, - 0,41,1,218,10,115,116,97,99,107,108,101,118,101,108,122, - 89,99,97,110,39,116,32,114,101,115,111,108,118,101,32,112, - 97,99,107,97,103,101,32,102,114,111,109,32,95,95,115,112, - 101,99,95,95,32,111,114,32,95,95,112,97,99,107,97,103, - 101,95,95,44,32,102,97,108,108,105,110,103,32,98,97,99, - 107,32,111,110,32,95,95,110,97,109,101,95,95,32,97,110, - 100,32,95,95,112,97,116,104,95,95,114,11,0,0,0,114, - 7,1,0,0,114,244,0,0,0,114,125,0,0,0,41,7, - 114,76,0,0,0,114,246,0,0,0,114,191,0,0,0,114, - 192,0,0,0,114,193,0,0,0,114,27,1,0,0,114,245, - 0,0,0,41,3,218,7,103,108,111,98,97,108,115,114,110, - 1,0,0,114,199,0,0,0,115,3,0,0,0,32,32,32, - 114,7,0,0,0,218,17,95,99,97,108,99,95,95,95,112, - 97,99,107,97,103,101,95,95,114,155,1,0,0,147,5,0, - 0,115,200,0,0,0,128,0,240,14,0,15,22,143,107,137, - 107,152,45,211,14,40,128,71,216,11,18,143,59,137,59,144, - 122,211,11,34,128,68,216,7,14,208,7,26,216,11,15,208, - 11,27,160,7,168,52,175,59,169,59,210,32,54,220,12,21, - 143,78,137,78,240,0,1,28,31,216,31,38,152,107,168,20, - 168,100,175,107,169,107,168,95,184,65,240,3,1,28,63,228, - 27,45,184,33,240,5,0,13,27,244,0,2,13,61,240,6, - 0,16,23,136,14,216,9,13,208,9,25,216,15,19,143,123, + 32,32,32,32,32,32,114,7,0,0,0,114,201,1,0,0, + 114,201,1,0,0,110,5,0,0,115,255,0,0,0,128,0, + 243,20,0,14,22,136,1,220,15,25,152,33,156,83,215,15, + 33,209,15,33,222,15,24,216,24,30,159,15,153,15,168,42, + 209,24,52,145,5,224,24,39,144,5,220,18,27,152,104,160, + 117,160,103,240,0,1,46,35,220,35,39,168,1,163,55,215, + 35,51,209,35,51,208,34,52,240,3,1,29,54,243,0,1, + 19,55,240,0,1,13,55,224,13,14,144,35,139,88,222,19, + 28,164,23,168,22,176,25,215,33,59,209,33,59,220,16,32, + 160,22,175,30,169,30,184,23,216,43,47,244,3,1,17,49, + 241,3,0,34,60,145,57,244,6,0,18,25,152,22,215,17, + 35,211,17,35,216,27,33,159,63,153,63,208,26,43,168,49, + 168,81,168,67,208,24,48,136,73,240,2,9,13,22,220,16, + 41,168,39,214,16,61,241,31,0,14,22,240,48,0,12,18, + 128,77,248,244,17,0,20,39,243,0,7,13,22,240,8,0, + 21,24,151,72,145,72,160,9,211,20,41,220,20,23,151,75, + 145,75,151,79,145,79,160,73,172,126,211,20,62,209,20,74, + 222,20,28,216,16,21,251,240,15,7,13,22,250,115,30,0, + 0,0,194,53,11,67,6,2,195,6,10,68,18,5,195,16, + 53,68,13,5,196,12,1,68,13,5,196,13,5,68,18,5, + 99,1,0,0,0,0,0,0,0,0,0,0,0,7,0,0, + 0,3,0,0,0,243,94,1,0,0,149,0,85,0,82,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,1,53,1,0,0,0,0,0,0,110,1,85,0, + 82,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,2,53,1,0,0,0,0,0,0,110,2, + 85,1,98,64,0,0,85,2,98,59,0,0,88,18,82,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,58,119,0,0,97,44,0,0,91,4,0,0,0,0, + 0,0,0,0,82,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,83,3,85,1,60,2,14,0, + 83,4,85,2,82,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,60,2,14,0,83,5,51,5, + 91,8,0,0,0,0,0,0,0,0,83,6,83,7,57,3, + 32,0,85,1,36,0,85,2,98,12,0,0,85,2,82,2, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,36,0,91,4,0,0,0,0,0,0,0,0,82,7, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,8,91,10,0,0,0,0,0,0,0,0,83,6, + 83,7,57,3,32,0,85,0,83,9,5,0,0,0,110,1, + 83,10,85,0,59,1,0,0,97,20,0,0,85,1,82,13, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,11,53,1,0,0,0,0,0,0,83,12,5,0, + 0,0,110,1,85,1,36,0,41,13,122,155,67,97,108,99, + 117,108,97,116,101,32,119,104,97,116,32,95,95,112,97,99, + 107,97,103,101,95,95,32,115,104,111,117,108,100,32,98,101, + 46,10,10,95,95,112,97,99,107,97,103,101,95,95,32,105, + 115,32,110,111,116,32,103,117,97,114,97,110,116,101,101,100, + 32,116,111,32,98,101,32,100,101,102,105,110,101,100,32,111, + 114,32,99,111,117,108,100,32,98,101,32,115,101,116,32,116, + 111,32,78,111,110,101,10,116,111,32,114,101,112,114,101,115, + 101,110,116,32,116,104,97,116,32,105,116,115,32,112,114,111, + 112,101,114,32,118,97,108,117,101,32,105,115,32,117,110,107, + 110,111,119,110,46,10,10,114,52,1,0,0,114,237,0,0, + 0,122,32,95,95,112,97,99,107,97,103,101,95,95,32,33, + 61,32,95,95,115,112,101,99,95,95,46,112,97,114,101,110, + 116,32,40,122,4,32,33,61,32,114,7,1,0,0,233,3, + 0,0,0,41,1,218,10,115,116,97,99,107,108,101,118,101, + 108,122,89,99,97,110,39,116,32,114,101,115,111,108,118,101, + 32,112,97,99,107,97,103,101,32,102,114,111,109,32,95,95, + 115,112,101,99,95,95,32,111,114,32,95,95,112,97,99,107, + 97,103,101,95,95,44,32,102,97,108,108,105,110,103,32,98, + 97,99,107,32,111,110,32,95,95,110,97,109,101,95,95,32, + 97,110,100,32,95,95,112,97,116,104,95,95,114,11,0,0, + 0,114,46,1,0,0,114,25,1,0,0,114,146,0,0,0, + 41,7,114,86,0,0,0,114,27,1,0,0,114,224,0,0, + 0,114,225,0,0,0,114,226,0,0,0,114,66,1,0,0, + 114,26,1,0,0,41,3,218,7,103,108,111,98,97,108,115, + 114,166,1,0,0,114,232,0,0,0,115,3,0,0,0,32, + 32,32,114,7,0,0,0,218,17,95,99,97,108,99,95,95, + 95,112,97,99,107,97,103,101,95,95,114,211,1,0,0,147, + 5,0,0,115,198,0,0,0,128,0,240,14,0,15,22,143, + 107,137,107,152,45,211,14,40,128,71,216,11,18,143,59,137, + 59,144,122,211,11,34,128,68,216,7,14,209,7,26,216,11, + 15,209,11,27,160,7,175,59,169,59,211,32,54,220,12,21, + 143,78,137,78,240,0,1,28,31,216,31,38,153,107,168,20, + 168,100,175,107,169,107,169,95,184,65,240,3,1,28,63,228, + 27,45,184,33,240,5,0,13,27,241,0,2,13,61,240,6, + 0,16,23,136,14,216,9,13,209,9,25,216,15,19,143,123, 137,123,208,8,26,228,8,17,143,14,137,14,240,0,1,24, - 63,228,23,36,176,17,240,5,0,9,23,244,0,2,9,52, + 63,228,23,36,176,17,240,5,0,9,23,241,0,2,9,52, 240,6,0,19,26,152,42,209,18,37,136,7,216,11,21,152, - 87,209,11,36,216,22,29,215,22,40,209,22,40,168,19,211, + 87,211,11,36,216,22,29,215,22,40,209,22,40,168,19,211, 22,45,168,97,209,22,48,136,71,216,11,18,128,78,114,22, 0,0,0,99,5,0,0,0,0,0,0,0,0,0,0,0, - 6,0,0,0,3,0,0,0,243,172,1,0,0,151,0,124, - 4,100,1,107,40,0,0,114,12,116,1,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,125,5,110, - 30,124,1,129,2,124,1,110,1,105,0,125,6,116,3,0, - 0,0,0,0,0,0,0,124,6,171,1,0,0,0,0,0, - 0,125,7,116,1,0,0,0,0,0,0,0,0,124,0,124, - 7,124,4,171,3,0,0,0,0,0,0,125,5,124,3,115, - 133,124,4,100,1,107,40,0,0,114,29,116,1,0,0,0, - 0,0,0,0,0,124,0,106,5,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,3,171,1,0, - 0,0,0,0,0,100,1,25,0,0,0,171,1,0,0,0, - 0,0,0,83,0,124,0,115,2,124,5,83,0,116,7,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,116,7,0,0,0,0,0,0,0,0,124,0,106,5,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,3,171,1,0,0,0,0,0,0,100,1,25,0,0, - 0,171,1,0,0,0,0,0,0,122,10,0,0,125,8,116, - 8,0,0,0,0,0,0,0,0,106,10,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,5,106, - 12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,2,116,7,0,0,0,0,0,0,0,0,124, - 5,106,12,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,124,8,122, - 10,0,0,26,0,25,0,0,0,83,0,116,15,0,0,0, - 0,0,0,0,0,124,5,100,4,171,2,0,0,0,0,0, - 0,114,17,116,17,0,0,0,0,0,0,0,0,124,5,124, - 3,116,0,0,0,0,0,0,0,0,0,171,3,0,0,0, - 0,0,0,83,0,124,5,83,0,41,5,97,215,1,0,0, + 6,0,0,0,3,0,0,0,243,204,1,0,0,149,0,85, + 4,83,1,58,88,0,0,97,12,0,0,91,1,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,110, + 5,79,30,85,1,98,2,0,0,85,1,79,1,48,0,110, + 6,91,3,0,0,0,0,0,0,0,0,85,6,53,1,0, + 0,0,0,0,0,110,7,91,1,0,0,0,0,0,0,0, + 0,88,7,85,4,53,3,0,0,0,0,0,0,110,5,85, + 3,40,0,0,0,0,0,0,0,100,139,0,0,85,4,83, + 1,58,88,0,0,97,29,0,0,91,1,0,0,0,0,0, + 0,0,0,85,0,82,5,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,3,53,1,0,0,0, + 0,0,0,83,1,5,0,0,0,53,1,0,0,0,0,0, + 0,36,0,85,0,40,0,0,0,0,0,0,0,100,2,0, + 0,85,5,36,0,91,7,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,91,7,0,0,0,0,0, + 0,0,0,85,0,82,5,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,3,53,1,0,0,0, + 0,0,0,83,1,5,0,0,0,53,1,0,0,0,0,0, + 0,45,10,0,0,110,8,91,8,0,0,0,0,0,0,0, + 0,82,10,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,5,82,12,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,2,91,7,0, + 0,0,0,0,0,0,0,85,5,82,12,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,85,8,45,10,0,0,4,0,5,0,0, + 0,36,0,91,15,0,0,0,0,0,0,0,0,85,5,83, + 4,53,2,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,16,0,0,91,17,0,0,0,0,0,0,0,0,88, + 83,91,0,0,0,0,0,0,0,0,0,53,3,0,0,0, + 0,0,0,36,0,85,5,36,0,41,5,97,187,1,0,0, 73,109,112,111,114,116,32,97,32,109,111,100,117,108,101,46, - 10,10,32,32,32,32,84,104,101,32,39,103,108,111,98,97, - 108,115,39,32,97,114,103,117,109,101,110,116,32,105,115,32, - 117,115,101,100,32,116,111,32,105,110,102,101,114,32,119,104, - 101,114,101,32,116,104,101,32,105,109,112,111,114,116,32,105, - 115,32,111,99,99,117,114,114,105,110,103,32,102,114,111,109, - 10,32,32,32,32,116,111,32,104,97,110,100,108,101,32,114, - 101,108,97,116,105,118,101,32,105,109,112,111,114,116,115,46, - 32,84,104,101,32,39,108,111,99,97,108,115,39,32,97,114, - 103,117,109,101,110,116,32,105,115,32,105,103,110,111,114,101, - 100,46,32,84,104,101,10,32,32,32,32,39,102,114,111,109, - 108,105,115,116,39,32,97,114,103,117,109,101,110,116,32,115, - 112,101,99,105,102,105,101,115,32,119,104,97,116,32,115,104, - 111,117,108,100,32,101,120,105,115,116,32,97,115,32,97,116, - 116,114,105,98,117,116,101,115,32,111,110,32,116,104,101,32, - 109,111,100,117,108,101,10,32,32,32,32,98,101,105,110,103, + 10,10,84,104,101,32,39,103,108,111,98,97,108,115,39,32, + 97,114,103,117,109,101,110,116,32,105,115,32,117,115,101,100, + 32,116,111,32,105,110,102,101,114,32,119,104,101,114,101,32, + 116,104,101,32,105,109,112,111,114,116,32,105,115,32,111,99, + 99,117,114,114,105,110,103,32,102,114,111,109,10,116,111,32, + 104,97,110,100,108,101,32,114,101,108,97,116,105,118,101,32, + 105,109,112,111,114,116,115,46,32,84,104,101,32,39,108,111, + 99,97,108,115,39,32,97,114,103,117,109,101,110,116,32,105, + 115,32,105,103,110,111,114,101,100,46,32,84,104,101,10,39, + 102,114,111,109,108,105,115,116,39,32,97,114,103,117,109,101, + 110,116,32,115,112,101,99,105,102,105,101,115,32,119,104,97, + 116,32,115,104,111,117,108,100,32,101,120,105,115,116,32,97, + 115,32,97,116,116,114,105,98,117,116,101,115,32,111,110,32, + 116,104,101,32,109,111,100,117,108,101,10,98,101,105,110,103, 32,105,109,112,111,114,116,101,100,32,40,101,46,103,46,32, 96,96,102,114,111,109,32,109,111,100,117,108,101,32,105,109, 112,111,114,116,32,60,102,114,111,109,108,105,115,116,62,96, 96,41,46,32,32,84,104,101,32,39,108,101,118,101,108,39, - 10,32,32,32,32,97,114,103,117,109,101,110,116,32,114,101, - 112,114,101,115,101,110,116,115,32,116,104,101,32,112,97,99, - 107,97,103,101,32,108,111,99,97,116,105,111,110,32,116,111, - 32,105,109,112,111,114,116,32,102,114,111,109,32,105,110,32, - 97,32,114,101,108,97,116,105,118,101,10,32,32,32,32,105, - 109,112,111,114,116,32,40,101,46,103,46,32,96,96,102,114, - 111,109,32,46,46,112,107,103,32,105,109,112,111,114,116,32, - 109,111,100,96,96,32,119,111,117,108,100,32,104,97,118,101, - 32,97,32,39,108,101,118,101,108,39,32,111,102,32,50,41, - 46,10,10,32,32,32,32,114,125,0,0,0,78,114,244,0, - 0,0,114,7,1,0,0,41,9,114,139,1,0,0,114,155, - 1,0,0,218,9,112,97,114,116,105,116,105,111,110,114,127, - 0,0,0,114,24,0,0,0,114,195,0,0,0,114,11,0, - 0,0,114,13,0,0,0,114,145,1,0,0,41,9,114,26, - 0,0,0,114,154,1,0,0,218,6,108,111,99,97,108,115, - 114,146,1,0,0,114,111,1,0,0,114,200,0,0,0,218, - 8,103,108,111,98,97,108,115,95,114,110,1,0,0,218,7, - 99,117,116,95,111,102,102,115,9,0,0,0,32,32,32,32, - 32,32,32,32,32,114,7,0,0,0,218,10,95,95,105,109, - 112,111,114,116,95,95,114,161,1,0,0,174,5,0,0,115, - 210,0,0,0,128,0,240,22,0,8,13,144,1,130,122,220, - 17,28,152,84,211,17,34,137,6,224,30,37,208,30,49,145, - 55,176,114,136,8,220,18,35,160,72,211,18,45,136,7,220, - 17,28,152,84,160,55,168,69,211,17,50,136,6,217,11,19, - 240,6,0,12,17,144,65,138,58,220,19,30,152,116,159,126, - 153,126,168,99,211,31,50,176,49,209,31,53,211,19,54,208, - 12,54,217,17,21,216,19,25,136,77,244,8,0,23,26,152, - 36,147,105,164,35,160,100,167,110,161,110,176,83,211,38,57, - 184,33,209,38,60,211,34,61,209,22,61,136,71,244,6,0, - 20,23,151,59,145,59,152,118,159,127,153,127,208,47,76,180, - 3,176,70,183,79,177,79,211,48,68,192,87,209,48,76,208, - 31,77,209,19,78,208,12,78,220,9,16,144,22,152,26,212, - 9,36,220,15,31,160,6,168,8,180,43,211,15,62,208,8, - 62,224,15,21,136,13,114,22,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,98,0,0,0,151,0,116,0,0,0,0,0,0,0,0, - 0,106,3,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,125, - 1,124,1,128,14,116,5,0,0,0,0,0,0,0,0,100, - 1,124,0,122,0,0,0,171,1,0,0,0,0,0,0,130, - 1,116,7,0,0,0,0,0,0,0,0,124,1,171,1,0, - 0,0,0,0,0,83,0,41,2,78,122,25,110,111,32,98, - 117,105,108,116,45,105,110,32,109,111,100,117,108,101,32,110, - 97,109,101,100,32,41,4,114,37,1,0,0,114,43,1,0, - 0,114,178,0,0,0,114,33,1,0,0,41,2,114,26,0, - 0,0,114,199,0,0,0,115,2,0,0,0,32,32,114,7, - 0,0,0,218,18,95,98,117,105,108,116,105,110,95,102,114, - 111,109,95,110,97,109,101,114,163,1,0,0,211,5,0,0, - 115,51,0,0,0,128,0,220,11,26,215,11,36,209,11,36, - 160,84,211,11,42,128,68,216,7,11,128,124,220,14,25,208, - 26,53,184,4,209,26,60,211,14,61,208,8,61,220,11,25, - 152,36,211,11,31,208,4,31,114,22,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,6,0,0,0,3,0, - 0,0,243,44,2,0,0,151,0,124,1,97,0,124,0,97, - 1,116,5,0,0,0,0,0,0,0,0,116,2,0,0,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,125,2,116, - 2,0,0,0,0,0,0,0,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,9,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,68,0,93,122,0,0,92, - 2,0,0,125,3,125,4,116,11,0,0,0,0,0,0,0, - 0,124,4,124,2,171,2,0,0,0,0,0,0,115,1,140, - 19,124,3,116,2,0,0,0,0,0,0,0,0,106,12,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,118,0,114,7,116,14,0,0,0,0,0,0,0,0,125, - 5,110,29,116,0,0,0,0,0,0,0,0,0,106,17,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,3,171,1,0,0,0,0,0,0,114,7,116,18,0, - 0,0,0,0,0,0,0,125,5,110,1,140,73,116,21,0, - 0,0,0,0,0,0,0,124,4,124,5,171,2,0,0,0, - 0,0,0,125,6,116,23,0,0,0,0,0,0,0,0,124, - 6,124,4,171,2,0,0,0,0,0,0,1,0,124,5,116, - 18,0,0,0,0,0,0,0,0,117,0,115,1,140,106,124, - 5,106,25,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,4,171,1,0,0,0,0,0,0,1, - 0,140,124,4,0,116,2,0,0,0,0,0,0,0,0,106, - 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,116,26,0,0,0,0,0,0,0,0,25,0,0, - 0,125,7,100,1,68,0,93,64,0,0,125,8,124,8,116, - 2,0,0,0,0,0,0,0,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,118,1,114, - 12,116,29,0,0,0,0,0,0,0,0,124,8,171,1,0, - 0,0,0,0,0,125,9,110,19,116,2,0,0,0,0,0, - 0,0,0,106,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,8,25,0,0,0,125,9,116, - 31,0,0,0,0,0,0,0,0,124,7,124,8,124,9,171, - 3,0,0,0,0,0,0,1,0,140,66,4,0,116,33,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,97, - 17,121,2,41,3,122,250,83,101,116,117,112,32,105,109,112, - 111,114,116,108,105,98,32,98,121,32,105,109,112,111,114,116, - 105,110,103,32,110,101,101,100,101,100,32,98,117,105,108,116, - 45,105,110,32,109,111,100,117,108,101,115,32,97,110,100,32, - 105,110,106,101,99,116,105,110,103,32,116,104,101,109,10,32, - 32,32,32,105,110,116,111,32,116,104,101,32,103,108,111,98, - 97,108,32,110,97,109,101,115,112,97,99,101,46,10,10,32, - 32,32,32,65,115,32,115,121,115,32,105,115,32,110,101,101, - 100,101,100,32,102,111,114,32,115,121,115,46,109,111,100,117, - 108,101,115,32,97,99,99,101,115,115,32,97,110,100,32,95, - 105,109,112,32,105,115,32,110,101,101,100,101,100,32,116,111, - 32,108,111,97,100,32,98,117,105,108,116,45,105,110,10,32, - 32,32,32,109,111,100,117,108,101,115,44,32,116,104,111,115, - 101,32,116,119,111,32,109,111,100,117,108,101,115,32,109,117, - 115,116,32,98,101,32,101,120,112,108,105,99,105,116,108,121, - 32,112,97,115,115,101,100,32,105,110,46,10,10,32,32,32, - 32,41,3,114,109,0,0,0,114,191,0,0,0,114,52,0, - 0,0,78,41,18,114,151,0,0,0,114,24,0,0,0,114, - 5,0,0,0,114,195,0,0,0,218,5,105,116,101,109,115, - 114,23,1,0,0,114,177,0,0,0,114,37,1,0,0,114, - 187,0,0,0,114,58,1,0,0,114,9,1,0,0,114,16, - 1,0,0,114,74,1,0,0,114,11,0,0,0,114,163,1, - 0,0,114,14,0,0,0,114,34,0,0,0,114,85,0,0, - 0,41,10,218,10,115,121,115,95,109,111,100,117,108,101,218, - 11,95,105,109,112,95,109,111,100,117,108,101,218,11,109,111, - 100,117,108,101,95,116,121,112,101,114,26,0,0,0,114,200, - 0,0,0,114,213,0,0,0,114,199,0,0,0,218,11,115, - 101,108,102,95,109,111,100,117,108,101,218,12,98,117,105,108, - 116,105,110,95,110,97,109,101,218,14,98,117,105,108,116,105, - 110,95,109,111,100,117,108,101,115,10,0,0,0,32,32,32, - 32,32,32,32,32,32,32,114,7,0,0,0,218,6,95,115, - 101,116,117,112,114,172,1,0,0,218,5,0,0,115,229,0, - 0,0,128,0,240,18,0,12,23,128,68,216,10,20,128,67, - 244,6,0,19,23,148,115,147,41,128,75,220,24,27,159,11, - 153,11,215,24,41,209,24,41,214,24,43,137,12,136,4,136, - 102,220,11,21,144,102,152,107,213,11,42,216,15,19,148,115, - 215,23,47,209,23,47,209,15,47,220,25,40,145,6,220,17, - 21,151,30,145,30,160,4,212,17,37,220,25,39,145,6,224, - 16,24,220,19,36,160,86,168,86,211,19,52,136,68,220,12, - 30,152,116,160,86,212,12,44,216,15,21,156,30,210,15,39, - 216,16,22,215,16,37,209,16,37,160,102,213,16,45,240,23, - 0,25,44,244,28,0,19,22,151,43,145,43,156,104,209,18, - 39,128,75,219,24,60,136,12,216,11,23,156,115,159,123,153, - 123,209,11,42,220,29,47,176,12,211,29,61,137,78,228,29, - 32,159,91,153,91,168,28,209,29,54,136,78,220,8,15,144, - 11,152,92,168,62,213,8,58,240,11,0,25,61,244,16,0, - 20,40,211,19,41,129,76,114,22,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,168,0,0,0,151,0,116,1,0,0,0,0,0,0, - 0,0,124,0,124,1,171,2,0,0,0,0,0,0,1,0, - 116,2,0,0,0,0,0,0,0,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,7, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,8,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,1,0,116,2,0,0,0,0,0,0,0,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,106,7,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,10,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,1,0,121,1,41,2, - 122,48,73,110,115,116,97,108,108,32,105,109,112,111,114,116, - 101,114,115,32,102,111,114,32,98,117,105,108,116,105,110,32, - 97,110,100,32,102,114,111,122,101,110,32,109,111,100,117,108, - 101,115,78,41,6,114,172,1,0,0,114,24,0,0,0,114, - 116,1,0,0,114,51,0,0,0,114,37,1,0,0,114,58, - 1,0,0,41,2,114,166,1,0,0,114,167,1,0,0,115, - 2,0,0,0,32,32,114,7,0,0,0,218,8,95,105,110, - 115,116,97,108,108,114,174,1,0,0,2,6,0,0,115,48, - 0,0,0,128,0,228,4,10,136,58,144,123,212,4,35,228, - 4,7,135,77,129,77,215,4,24,209,4,24,156,31,212,4, - 41,220,4,7,135,77,129,77,215,4,24,209,4,24,156,30, - 213,4,40,114,22,0,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,92,0, - 0,0,151,0,100,1,100,2,108,0,125,0,124,0,97,1, - 124,0,106,5,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,116,6,0,0,0,0,0,0,0,0, - 106,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,116,10,0,0,0,0,0,0,0,0,25,0, - 0,0,171,1,0,0,0,0,0,0,1,0,121,2,41,3, - 122,57,73,110,115,116,97,108,108,32,105,109,112,111,114,116, - 101,114,115,32,116,104,97,116,32,114,101,113,117,105,114,101, - 32,101,120,116,101,114,110,97,108,32,102,105,108,101,115,121, - 115,116,101,109,32,97,99,99,101,115,115,114,125,0,0,0, - 78,41,6,218,26,95,102,114,111,122,101,110,95,105,109,112, - 111,114,116,108,105,98,95,101,120,116,101,114,110,97,108,114, - 239,0,0,0,114,174,1,0,0,114,24,0,0,0,114,195, - 0,0,0,114,11,0,0,0,41,1,114,176,1,0,0,115, - 1,0,0,0,32,114,7,0,0,0,218,27,95,105,110,115, - 116,97,108,108,95,101,120,116,101,114,110,97,108,95,105,109, - 112,111,114,116,101,114,115,114,177,1,0,0,10,6,0,0, - 115,36,0,0,0,128,0,243,6,0,5,38,216,26,52,208, - 4,23,216,4,30,215,4,39,209,4,39,172,3,175,11,169, - 11,180,72,209,40,61,213,4,62,114,22,0,0,0,114,55, - 1,0,0,114,2,0,0,0,114,136,0,0,0,41,4,78, - 78,114,31,0,0,0,114,125,0,0,0,41,58,114,12,0, - 0,0,114,8,0,0,0,114,109,0,0,0,114,191,0,0, - 0,114,52,0,0,0,114,239,0,0,0,114,21,0,0,0, - 114,27,0,0,0,114,6,1,0,0,114,29,0,0,0,114, - 34,0,0,0,114,153,0,0,0,114,85,0,0,0,114,80, - 0,0,0,114,126,0,0,0,114,94,0,0,0,114,101,0, - 0,0,114,107,0,0,0,114,134,0,0,0,114,142,0,0, - 0,114,147,0,0,0,114,157,0,0,0,114,161,0,0,0, - 114,173,0,0,0,114,184,0,0,0,114,189,0,0,0,114, - 201,0,0,0,114,215,0,0,0,114,217,0,0,0,114,194, - 0,0,0,114,9,1,0,0,114,16,1,0,0,114,21,1, - 0,0,114,211,0,0,0,114,196,0,0,0,114,30,1,0, - 0,114,33,1,0,0,114,197,0,0,0,114,37,1,0,0, - 114,58,1,0,0,114,101,1,0,0,114,114,1,0,0,114, - 119,1,0,0,114,125,1,0,0,114,128,1,0,0,218,8, - 95,69,82,82,95,77,83,71,114,134,1,0,0,218,6,111, - 98,106,101,99,116,114,136,1,0,0,114,137,1,0,0,114, - 139,1,0,0,114,145,1,0,0,114,155,1,0,0,114,161, - 1,0,0,114,163,1,0,0,114,172,1,0,0,114,174,1, - 0,0,114,177,1,0,0,114,31,0,0,0,114,22,0,0, - 0,114,7,0,0,0,218,8,60,109,111,100,117,108,101,62, - 114,180,1,0,0,1,0,0,0,115,154,1,0,0,240,3, - 1,1,1,241,2,7,1,4,242,44,4,1,38,240,18,0, - 11,15,128,7,216,12,16,128,9,216,11,15,128,8,240,6, - 0,23,27,208,0,19,242,6,5,1,38,242,16,1,1,27, - 244,14,1,1,9,136,68,244,0,1,1,9,247,14,73,1, - 1,21,241,0,73,1,1,21,240,92,2,0,17,19,128,13, - 240,26,0,16,20,128,12,247,6,19,1,42,241,0,19,1, - 42,244,44,1,1,9,144,92,244,0,1,1,9,242,10,40, - 1,17,247,86,1,96,2,1,59,241,0,96,2,1,59,247, - 70,5,18,1,64,1,241,0,18,1,64,1,247,42,11,1, - 29,241,0,11,1,29,242,32,34,1,16,242,74,1,14,1, - 23,242,34,8,1,28,240,22,0,48,49,244,0,5,1,54, - 242,16,8,1,37,242,22,8,1,36,242,24,15,1,27,242, - 38,18,1,54,247,42,97,1,1,41,241,0,97,1,1,41, - 240,72,3,0,46,50,184,100,244,0,26,1,74,1,243,58, - 39,1,16,240,84,1,0,50,55,244,0,70,1,1,18,242, - 82,2,14,1,18,242,34,18,1,61,242,44,27,1,18,242, - 60,34,1,18,242,72,1,41,1,18,242,90,1,10,1,36, - 247,30,49,1,49,241,0,49,1,49,247,104,1,126,2,1, - 48,241,0,126,2,1,48,247,70,6,10,1,28,241,0,10, - 1,28,242,26,6,1,46,243,18,42,1,20,242,90,1,13, - 1,46,240,32,0,19,37,128,15,216,11,26,152,86,209,11, - 35,128,8,242,4,39,1,18,241,84,1,0,18,24,147,24, - 128,14,242,6,23,1,18,243,52,12,1,45,240,30,0,62, - 67,1,244,0,34,1,18,242,74,1,24,1,19,243,54,34, - 1,22,242,74,1,4,1,32,242,14,37,1,42,242,80,1, - 5,1,41,243,16,5,1,63,114,22,0,0,0, + 10,97,114,103,117,109,101,110,116,32,114,101,112,114,101,115, + 101,110,116,115,32,116,104,101,32,112,97,99,107,97,103,101, + 32,108,111,99,97,116,105,111,110,32,116,111,32,105,109,112, + 111,114,116,32,102,114,111,109,32,105,110,32,97,32,114,101, + 108,97,116,105,118,101,10,105,109,112,111,114,116,32,40,101, + 46,103,46,32,96,96,102,114,111,109,32,46,46,112,107,103, + 32,105,109,112,111,114,116,32,109,111,100,96,96,32,119,111, + 117,108,100,32,104,97,118,101,32,97,32,39,108,101,118,101, + 108,39,32,111,102,32,50,41,46,10,10,114,146,0,0,0, + 78,114,25,1,0,0,114,46,1,0,0,41,9,114,195,1, + 0,0,114,211,1,0,0,218,9,112,97,114,116,105,116,105, + 111,110,114,148,0,0,0,114,24,0,0,0,114,228,0,0, + 0,114,11,0,0,0,114,13,0,0,0,114,201,1,0,0, + 41,9,114,26,0,0,0,114,210,1,0,0,218,6,108,111, + 99,97,108,115,114,202,1,0,0,114,167,1,0,0,114,233, + 0,0,0,218,8,103,108,111,98,97,108,115,95,114,166,1, + 0,0,218,7,99,117,116,95,111,102,102,115,9,0,0,0, + 32,32,32,32,32,32,32,32,32,114,7,0,0,0,218,10, + 95,95,105,109,112,111,114,116,95,95,114,217,1,0,0,174, + 5,0,0,115,209,0,0,0,128,0,240,22,0,8,13,144, + 1,131,122,220,17,28,152,84,211,17,34,137,6,224,30,37, + 209,30,49,145,55,176,114,136,8,220,18,35,160,72,211,18, + 45,136,7,220,17,28,152,84,168,69,211,17,50,136,6,222, + 11,19,240,6,0,12,17,144,65,139,58,220,19,30,152,116, + 159,126,153,126,168,99,211,31,50,176,49,209,31,53,211,19, + 54,208,12,54,222,17,21,216,19,25,136,77,244,8,0,23, + 26,152,36,147,105,164,35,160,100,167,110,161,110,176,83,211, + 38,57,184,33,209,38,60,211,34,61,209,22,61,136,71,244, + 6,0,20,23,151,59,145,59,152,118,159,127,153,127,208,47, + 76,180,3,176,70,183,79,177,79,211,48,68,192,87,209,48, + 76,208,31,77,209,19,78,208,12,78,220,9,16,144,22,152, + 26,215,9,36,209,9,36,220,15,31,160,6,180,43,211,15, + 62,208,8,62,224,15,21,136,13,114,22,0,0,0,99,1, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,100,0,0,0,149,0,91,0,0,0,0,0, + 0,0,0,0,82,3,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,0,53,1,0,0,0,0, + 0,0,110,1,85,1,99,14,0,0,91,5,0,0,0,0, + 0,0,0,0,83,1,85,0,45,0,0,0,53,1,0,0, + 0,0,0,0,101,1,91,7,0,0,0,0,0,0,0,0, + 85,1,53,1,0,0,0,0,0,0,36,0,41,2,78,122, + 25,110,111,32,98,117,105,108,116,45,105,110,32,109,111,100, + 117,108,101,32,110,97,109,101,100,32,41,4,114,76,1,0, + 0,114,82,1,0,0,114,209,0,0,0,114,72,1,0,0, + 41,2,114,26,0,0,0,114,232,0,0,0,115,2,0,0, + 0,32,32,114,7,0,0,0,218,18,95,98,117,105,108,116, + 105,110,95,102,114,111,109,95,110,97,109,101,114,219,1,0, + 0,211,5,0,0,115,51,0,0,0,128,0,220,11,26,215, + 11,36,209,11,36,160,84,211,11,42,128,68,216,7,11,129, + 124,220,14,25,208,26,53,184,4,209,26,60,211,14,61,208, + 8,61,220,11,25,152,36,211,11,31,208,4,31,114,22,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,6, + 0,0,0,3,0,0,0,243,78,2,0,0,149,0,85,1, + 113,0,85,0,113,1,91,5,0,0,0,0,0,0,0,0, + 91,2,0,0,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,110,2,91,2,0,0,0,0,0,0,0,0,82,6, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,82,9,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,19,0, + 72,135,0,0,117,2,0,0,112,52,91,11,0,0,0,0, + 0,0,0,0,88,66,53,2,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,100,2,0,0,77,23,0,0,85,3, + 91,2,0,0,0,0,0,0,0,0,82,12,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,0, + 0,0,97,7,0,0,91,14,0,0,0,0,0,0,0,0, + 110,5,79,35,91,0,0,0,0,0,0,0,0,0,82,17, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,3,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,97,7,0,0,91,18,0,0,0,0,0,0, + 0,0,110,5,79,2,77,85,0,0,91,21,0,0,0,0, + 0,0,0,0,88,69,53,2,0,0,0,0,0,0,110,6, + 91,23,0,0,0,0,0,0,0,0,88,100,53,2,0,0, + 0,0,0,0,32,0,85,5,91,18,0,0,0,0,0,0, + 0,0,76,0,100,2,0,0,77,118,0,0,85,5,82,25, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,4,53,1,0,0,0,0,0,0,32,0,77,137, + 0,0,11,0,32,0,91,2,0,0,0,0,0,0,0,0, + 82,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,91,26,0,0,0,0,0,0,0,0,5,0, + 0,0,110,7,83,1,19,0,72,66,0,0,110,8,85,8, + 91,2,0,0,0,0,0,0,0,0,82,6,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,1, + 0,0,97,12,0,0,91,29,0,0,0,0,0,0,0,0, + 85,8,53,1,0,0,0,0,0,0,110,9,79,19,91,2, + 0,0,0,0,0,0,0,0,82,6,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,8,5,0, + 0,0,110,9,91,31,0,0,0,0,0,0,0,0,88,120, + 85,9,53,3,0,0,0,0,0,0,32,0,77,68,0,0, + 11,0,32,0,91,33,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,113,17,103,2,41,3,122,234,83,101, + 116,117,112,32,105,109,112,111,114,116,108,105,98,32,98,121, + 32,105,109,112,111,114,116,105,110,103,32,110,101,101,100,101, + 100,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108, + 101,115,32,97,110,100,32,105,110,106,101,99,116,105,110,103, + 32,116,104,101,109,10,105,110,116,111,32,116,104,101,32,103, + 108,111,98,97,108,32,110,97,109,101,115,112,97,99,101,46, + 10,10,65,115,32,115,121,115,32,105,115,32,110,101,101,100, + 101,100,32,102,111,114,32,115,121,115,46,109,111,100,117,108, + 101,115,32,97,99,99,101,115,115,32,97,110,100,32,95,105, + 109,112,32,105,115,32,110,101,101,100,101,100,32,116,111,32, + 108,111,97,100,32,98,117,105,108,116,45,105,110,10,109,111, + 100,117,108,101,115,44,32,116,104,111,115,101,32,116,119,111, + 32,109,111,100,117,108,101,115,32,109,117,115,116,32,98,101, + 32,101,120,112,108,105,99,105,116,108,121,32,112,97,115,115, + 101,100,32,105,110,46,10,10,41,3,114,127,0,0,0,114, + 224,0,0,0,114,59,0,0,0,78,41,18,114,181,0,0, + 0,114,24,0,0,0,114,5,0,0,0,114,228,0,0,0, + 218,5,105,116,101,109,115,114,62,1,0,0,114,208,0,0, + 0,114,76,1,0,0,114,219,0,0,0,114,103,1,0,0, + 114,48,1,0,0,114,55,1,0,0,114,119,1,0,0,114, + 11,0,0,0,114,219,1,0,0,114,14,0,0,0,114,37, + 0,0,0,114,99,0,0,0,41,10,218,10,115,121,115,95, + 109,111,100,117,108,101,218,11,95,105,109,112,95,109,111,100, + 117,108,101,218,11,109,111,100,117,108,101,95,116,121,112,101, + 114,26,0,0,0,114,233,0,0,0,114,246,0,0,0,114, + 232,0,0,0,218,11,115,101,108,102,95,109,111,100,117,108, + 101,218,12,98,117,105,108,116,105,110,95,110,97,109,101,218, + 14,98,117,105,108,116,105,110,95,109,111,100,117,108,101,115, + 10,0,0,0,32,32,32,32,32,32,32,32,32,32,114,7, + 0,0,0,218,6,95,115,101,116,117,112,114,228,1,0,0, + 218,5,0,0,115,225,0,0,0,128,0,240,18,0,12,23, + 128,68,216,10,20,128,67,244,6,0,19,23,148,115,147,41, + 128,75,220,24,27,159,11,153,11,215,24,41,209,24,41,214, + 24,43,137,12,136,4,220,11,21,144,102,215,11,42,211,11, + 42,216,15,19,148,115,215,23,47,209,23,47,211,15,47,220, + 25,40,145,6,220,17,21,151,30,145,30,160,4,215,17,37, + 209,17,37,220,25,39,145,6,225,16,24,220,19,36,160,86, + 211,19,52,136,68,220,12,30,152,116,212,12,44,216,15,21, + 156,30,212,15,39,216,16,22,215,16,37,209,16,37,160,102, + 214,16,45,241,23,0,25,44,244,28,0,19,22,151,43,145, + 43,156,104,209,18,39,128,75,219,24,60,136,12,216,11,23, + 156,115,159,123,153,123,211,11,42,220,29,47,176,12,211,29, + 61,137,78,228,29,32,159,91,153,91,168,28,209,29,54,136, + 78,220,8,15,144,11,168,62,214,8,58,241,11,0,25,61, + 244,16,0,20,40,211,19,41,129,76,114,22,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,243,166,0,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,88,1,53,2,0,0,0,0,0,0,32, + 0,91,2,0,0,0,0,0,0,0,0,82,4,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82, + 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,91,8,0,0,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,32,0,91,2,0,0,0,0,0,0,0, + 0,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,82,7,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,91,10,0,0,0,0,0, + 0,0,0,53,1,0,0,0,0,0,0,32,0,103,1,41, + 2,122,48,73,110,115,116,97,108,108,32,105,109,112,111,114, + 116,101,114,115,32,102,111,114,32,98,117,105,108,116,105,110, + 32,97,110,100,32,102,114,111,122,101,110,32,109,111,100,117, + 108,101,115,78,41,6,114,228,1,0,0,114,24,0,0,0, + 114,172,1,0,0,114,58,0,0,0,114,76,1,0,0,114, + 103,1,0,0,41,2,114,222,1,0,0,114,223,1,0,0, + 115,2,0,0,0,32,32,114,7,0,0,0,218,8,95,105, + 110,115,116,97,108,108,114,230,1,0,0,2,6,0,0,115, + 46,0,0,0,128,0,228,4,10,136,58,212,4,35,228,4, + 7,135,77,129,77,215,4,24,209,4,24,156,31,212,4,41, + 220,4,7,135,77,129,77,215,4,24,209,4,24,156,30,213, + 4,40,114,22,0,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,92,0,0, + 0,149,0,83,1,83,2,75,0,110,0,85,0,113,1,85, + 0,82,5,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,91,6,0,0,0,0,0,0,0,0,82, + 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,91,10,0,0,0,0,0,0,0,0,5,0,0, + 0,53,1,0,0,0,0,0,0,32,0,103,2,41,3,122, + 57,73,110,115,116,97,108,108,32,105,109,112,111,114,116,101, + 114,115,32,116,104,97,116,32,114,101,113,117,105,114,101,32, + 101,120,116,101,114,110,97,108,32,102,105,108,101,115,121,115, + 116,101,109,32,97,99,99,101,115,115,114,146,0,0,0,78, + 41,6,218,26,95,102,114,111,122,101,110,95,105,109,112,111, + 114,116,108,105,98,95,101,120,116,101,114,110,97,108,114,19, + 1,0,0,114,230,1,0,0,114,24,0,0,0,114,228,0, + 0,0,114,11,0,0,0,41,1,114,232,1,0,0,115,1, + 0,0,0,32,114,7,0,0,0,218,27,95,105,110,115,116, + 97,108,108,95,101,120,116,101,114,110,97,108,95,105,109,112, + 111,114,116,101,114,115,114,233,1,0,0,10,6,0,0,115, + 36,0,0,0,128,0,243,6,0,5,38,216,26,52,208,4, + 23,216,4,30,215,4,39,209,4,39,172,3,175,11,169,11, + 180,72,209,40,61,213,4,62,114,22,0,0,0,114,100,1, + 0,0,114,2,0,0,0,114,159,0,0,0,41,4,78,78, + 114,32,0,0,0,114,146,0,0,0,41,58,114,12,0,0, + 0,114,8,0,0,0,114,127,0,0,0,114,224,0,0,0, + 114,59,0,0,0,114,19,1,0,0,114,21,0,0,0,114, + 27,0,0,0,114,45,1,0,0,114,29,0,0,0,114,37, + 0,0,0,114,183,0,0,0,114,99,0,0,0,114,92,0, + 0,0,114,147,0,0,0,114,110,0,0,0,114,118,0,0, + 0,114,124,0,0,0,114,157,0,0,0,114,169,0,0,0, + 114,175,0,0,0,114,188,0,0,0,114,192,0,0,0,114, + 204,0,0,0,114,216,0,0,0,114,222,0,0,0,114,234, + 0,0,0,114,248,0,0,0,114,250,0,0,0,114,227,0, + 0,0,114,48,1,0,0,114,55,1,0,0,114,60,1,0, + 0,114,244,0,0,0,114,229,0,0,0,114,69,1,0,0, + 114,72,1,0,0,114,230,0,0,0,114,76,1,0,0,114, + 103,1,0,0,114,155,1,0,0,114,170,1,0,0,114,175, + 1,0,0,114,181,1,0,0,114,184,1,0,0,218,8,95, + 69,82,82,95,77,83,71,114,190,1,0,0,218,6,111,98, + 106,101,99,116,114,192,1,0,0,114,193,1,0,0,114,195, + 1,0,0,114,201,1,0,0,114,211,1,0,0,114,217,1, + 0,0,114,219,1,0,0,114,228,1,0,0,114,230,1,0, + 0,114,233,1,0,0,114,32,0,0,0,114,22,0,0,0, + 114,7,0,0,0,218,8,60,109,111,100,117,108,101,62,114, + 236,1,0,0,1,0,0,0,115,154,1,0,0,240,3,1, + 1,1,241,2,7,1,4,242,44,4,1,38,240,18,0,11, + 15,128,7,216,12,16,128,9,216,11,15,128,8,240,6,0, + 23,27,208,0,19,242,6,5,1,38,242,16,1,1,27,244, + 14,1,1,33,136,68,244,0,1,1,33,247,14,73,1,1, + 21,241,0,73,1,1,21,240,92,2,0,17,19,128,13,240, + 26,0,16,20,128,12,247,6,19,1,42,241,0,19,1,42, + 244,44,1,1,9,144,92,244,0,1,1,9,242,10,40,1, + 17,247,86,1,96,2,1,59,241,0,96,2,1,59,247,70, + 5,18,1,64,1,241,0,18,1,64,1,247,42,11,1,29, + 241,0,11,1,29,242,32,34,1,16,242,74,1,14,1,23, + 242,34,8,1,28,240,22,0,48,49,245,0,5,1,54,242, + 16,8,1,37,242,22,8,1,36,242,24,15,1,27,242,38, + 18,1,54,247,42,97,1,1,41,241,0,97,1,1,41,240, + 72,3,0,46,50,184,100,245,0,26,1,74,1,244,58,39, + 1,16,240,84,1,0,50,55,245,0,70,1,1,18,242,82, + 2,14,1,18,242,34,18,1,61,242,44,27,1,18,242,60, + 34,1,18,242,72,1,41,1,18,242,90,1,10,1,36,247, + 30,49,1,49,241,0,49,1,49,247,104,1,126,2,1,48, + 241,0,126,2,1,48,247,70,6,10,1,28,241,0,10,1, + 28,242,26,6,1,46,244,18,42,1,20,242,90,1,13,1, + 46,240,32,0,19,37,128,15,216,11,26,152,86,209,11,35, + 128,8,242,4,39,1,18,241,84,1,0,18,24,147,24,128, + 14,242,6,23,1,18,244,52,12,1,45,240,30,0,62,67, + 1,245,0,34,1,18,242,74,1,24,1,19,244,54,34,1, + 22,242,74,1,4,1,32,242,14,37,1,42,242,80,1,5, + 1,41,243,16,5,1,63,114,22,0,0,0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap_external.h b/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap_external.h index 4affed7e680..22af27800b6 100644 --- a/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap_external.h +++ b/contrib/tools/python3/Python/frozen_modules/importlib._bootstrap_external.h @@ -1,71 +1,78 @@ /* Auto-generated by Programs/_freeze_module.c */ const unsigned char _Py_M__importlib__bootstrap_external[] = { 99,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0, - 0,0,0,0,0,243,248,3,0,0,151,0,100,0,90,0, - 100,1,97,1,100,2,100,1,108,2,90,2,100,2,100,1, - 108,3,90,3,100,2,100,1,108,4,90,4,100,2,100,1, - 108,5,90,5,100,2,100,1,108,6,90,6,101,4,106,14, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,3,107,40,0,0,90,8,101,8,114,9,100,2, - 100,1,108,9,90,10,100,2,100,1,108,11,90,11,110,4, - 100,2,100,1,108,12,90,10,101,8,114,5,100,4,100,5, - 103,2,90,13,110,3,100,5,103,1,90,13,2,0,101,14, - 100,6,132,0,101,13,68,0,171,0,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,115,2,74,0,130,1,101,13, - 100,2,25,0,0,0,90,15,2,0,101,16,101,13,171,1, - 0,0,0,0,0,0,90,17,100,7,106,37,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,13, - 171,1,0,0,0,0,0,0,90,13,101,13,68,0,143,0, - 99,2,104,0,99,2,93,7,0,0,125,0,100,8,124,0, - 155,0,157,2,146,2,140,9,4,0,99,2,125,0,90,19, - 100,9,90,20,100,10,90,21,101,21,101,20,122,0,0,0, - 90,22,100,11,132,0,90,23,2,0,101,23,171,0,0,0, - 0,0,0,0,90,24,100,12,132,0,90,25,100,13,132,0, - 90,26,100,14,132,0,90,27,101,8,114,4,100,15,132,0, - 90,28,110,3,100,16,132,0,90,28,100,17,132,0,90,29, - 100,18,132,0,90,30,100,19,132,0,90,31,100,20,132,0, - 90,32,100,21,132,0,90,33,101,8,114,4,100,22,132,0, - 90,34,110,3,100,23,132,0,90,34,100,24,132,0,90,35, - 100,78,100,25,132,1,90,36,2,0,101,37,101,36,106,76, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,90,39,100,26,106,81, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,27,100,28,171,2,0,0,0,0,0,0,100,29, - 122,0,0,0,90,41,101,42,106,87,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,101,41,100,28, - 171,2,0,0,0,0,0,0,90,44,100,30,90,45,100,31, - 90,46,100,32,103,1,90,47,101,8,114,17,101,47,106,97, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,33,171,1,0,0,0,0,0,0,1,0,2,0, - 101,2,106,98,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,90,50, - 100,34,103,1,90,51,101,51,120,1,90,52,90,53,100,79, - 100,1,100,35,156,1,100,36,132,3,90,54,100,37,132,0, - 90,55,100,38,132,0,90,56,100,39,132,0,90,57,100,40, - 132,0,90,58,100,41,132,0,90,59,100,42,132,0,90,60, - 100,43,132,0,90,61,100,44,132,0,90,62,100,80,100,45, - 132,1,90,63,100,81,100,46,132,1,90,64,100,82,100,47, - 132,1,90,65,100,48,132,0,90,66,2,0,101,67,171,0, - 0,0,0,0,0,0,90,68,100,79,100,1,101,68,100,49, - 156,2,100,50,132,3,90,69,100,51,132,0,90,70,2,0, - 71,0,100,52,132,0,100,53,171,2,0,0,0,0,0,0, - 90,71,2,0,71,0,100,54,132,0,100,55,171,2,0,0, - 0,0,0,0,90,72,2,0,71,0,100,56,132,0,100,57, - 101,72,171,3,0,0,0,0,0,0,90,73,2,0,71,0, - 100,58,132,0,100,59,171,2,0,0,0,0,0,0,90,74, - 2,0,71,0,100,60,132,0,100,61,101,74,101,73,171,4, - 0,0,0,0,0,0,90,75,2,0,71,0,100,62,132,0, - 100,63,101,74,101,72,171,4,0,0,0,0,0,0,90,76, - 2,0,71,0,100,64,132,0,100,65,101,74,101,72,171,4, - 0,0,0,0,0,0,90,77,2,0,71,0,100,66,132,0, - 100,67,171,2,0,0,0,0,0,0,90,78,2,0,71,0, - 100,68,132,0,100,69,171,2,0,0,0,0,0,0,90,79, - 101,79,90,80,2,0,71,0,100,70,132,0,100,71,171,2, - 0,0,0,0,0,0,90,81,2,0,71,0,100,72,132,0, - 100,73,171,2,0,0,0,0,0,0,90,82,100,79,100,74, - 132,1,90,83,100,75,132,0,90,84,100,76,132,0,90,85, - 100,77,132,0,90,86,121,1,99,2,1,0,99,2,125,0, - 119,0,41,83,97,94,1,0,0,67,111,114,101,32,105,109, + 0,0,0,0,0,243,104,4,0,0,149,0,83,0,114,0, + 83,1,113,1,83,2,83,1,75,2,114,2,83,2,83,1, + 75,3,114,3,83,2,83,1,75,4,114,4,83,2,83,1, + 75,5,114,5,83,2,83,1,75,6,114,6,92,4,82,14, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,3,58,72,0,0,114,8,92,8,40,0,0,0, + 0,0,0,0,97,9,0,0,83,2,83,1,75,9,114,10, + 83,2,83,1,75,11,114,11,79,4,83,2,83,1,75,12, + 114,10,92,8,40,0,0,0,0,0,0,0,97,5,0,0, + 83,4,83,5,47,2,114,13,79,3,83,5,47,1,114,13, + 92,14,34,0,83,6,26,0,92,13,19,0,53,0,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,100,2,0,0,23,0,101,1,92,13,83,2, + 5,0,0,0,114,15,92,16,34,0,92,13,53,1,0,0, + 0,0,0,0,114,17,83,7,82,37,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,92,13,53,1, + 0,0,0,0,0,0,114,13,92,13,19,0,86,0,115,2, + 49,0,115,2,19,0,72,8,0,0,110,0,83,8,85,0, + 14,0,51,2,105,2,77,10,0,0,11,0,32,0,115,2, + 110,0,114,19,83,9,114,20,83,10,114,21,92,21,92,20, + 45,0,0,0,114,22,83,11,26,0,114,23,92,23,34,0, + 53,0,0,0,0,0,0,0,114,24,83,12,26,0,114,25, + 83,13,26,0,114,26,83,14,26,0,114,27,83,15,26,0, + 114,28,92,8,40,0,0,0,0,0,0,0,97,4,0,0, + 83,16,26,0,114,29,79,3,83,17,26,0,114,29,83,18, + 26,0,114,30,83,19,26,0,114,31,83,20,26,0,114,32, + 83,21,26,0,114,33,83,22,26,0,114,34,92,8,40,0, + 0,0,0,0,0,0,97,4,0,0,83,23,26,0,114,35, + 79,3,83,24,26,0,114,35,83,25,26,0,114,36,83,81, + 83,26,26,0,106,1,114,37,92,38,34,0,92,37,82,78, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,114,40,83,27,82,83, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,28,83,29,53,2,0,0,0,0,0,0,83,30, + 45,0,0,0,114,42,92,43,82,89,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,92,42,83,29, + 53,2,0,0,0,0,0,0,114,45,83,31,114,46,83,32, + 114,47,83,33,47,1,114,48,92,8,40,0,0,0,0,0, + 0,0,97,17,0,0,92,48,82,99,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,34,53,1, + 0,0,0,0,0,0,32,0,92,2,82,100,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 53,0,0,0,0,0,0,0,114,51,83,35,47,1,114,52, + 92,52,61,1,114,53,114,54,83,82,83,1,83,36,46,1, + 83,37,26,0,106,2,106,1,114,55,83,38,26,0,114,56, + 83,39,26,0,114,57,83,40,26,0,114,58,83,41,26,0, + 114,59,83,42,26,0,114,60,83,43,26,0,114,61,83,44, + 26,0,114,62,83,45,26,0,114,63,83,83,83,46,26,0, + 106,1,114,64,83,84,83,47,26,0,106,1,114,65,83,85, + 83,48,26,0,106,1,114,66,83,49,26,0,114,67,92,68, + 34,0,53,0,0,0,0,0,0,0,114,69,83,82,83,1, + 92,69,83,50,46,2,83,51,26,0,106,2,106,1,114,70, + 83,52,26,0,114,71,24,0,34,0,83,53,26,0,83,54, + 53,2,0,0,0,0,0,0,114,72,24,0,34,0,83,55, + 26,0,83,56,53,2,0,0,0,0,0,0,114,73,24,0, + 34,0,83,57,26,0,83,58,92,73,53,3,0,0,0,0, + 0,0,114,74,24,0,34,0,83,59,26,0,83,60,53,2, + 0,0,0,0,0,0,114,75,24,0,34,0,83,61,26,0, + 83,62,92,75,92,74,53,4,0,0,0,0,0,0,114,76, + 24,0,34,0,83,63,26,0,83,64,92,75,92,73,53,4, + 0,0,0,0,0,0,114,77,24,0,34,0,83,65,26,0, + 83,66,92,75,92,73,53,4,0,0,0,0,0,0,114,78, + 24,0,34,0,83,67,26,0,83,68,53,2,0,0,0,0, + 0,0,114,79,24,0,34,0,83,69,26,0,83,70,53,2, + 0,0,0,0,0,0,114,80,92,80,114,81,24,0,34,0, + 83,71,26,0,83,72,53,2,0,0,0,0,0,0,114,82, + 24,0,34,0,83,73,26,0,83,74,53,2,0,0,0,0, + 0,0,114,83,24,0,34,0,83,75,26,0,83,76,92,78, + 53,3,0,0,0,0,0,0,114,84,83,82,83,77,26,0, + 106,1,114,85,83,78,26,0,114,86,83,79,26,0,114,87, + 83,80,26,0,114,88,103,1,115,2,32,0,115,2,110,0, + 102,0,41,86,97,94,1,0,0,67,111,114,101,32,105,109, 112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,32, 112,97,116,104,45,98,97,115,101,100,32,105,109,112,111,114, 116,46,10,10,84,104,105,115,32,109,111,100,117,108,101,32, @@ -90,3766 +97,3965 @@ const unsigned char _Py_M__importlib__bootstrap_external[] = { 100,117,108,101,46,10,10,78,233,0,0,0,0,218,5,119, 105,110,51,50,218,1,92,218,1,47,99,1,0,0,0,0, 0,0,0,0,0,0,0,4,0,0,0,35,0,0,0,243, - 56,0,0,0,75,0,1,0,151,0,124,0,93,18,0,0, - 125,1,116,1,0,0,0,0,0,0,0,0,124,1,171,1, - 0,0,0,0,0,0,100,0,107,40,0,0,150,1,151,1, - 1,0,140,20,4,0,121,1,173,3,119,1,41,2,233,1, - 0,0,0,78,41,1,218,3,108,101,110,41,2,218,2,46, - 48,218,3,115,101,112,115,2,0,0,0,32,32,250,38,60, - 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98, - 46,95,98,111,111,116,115,116,114,97,112,95,101,120,116,101, - 114,110,97,108,62,218,9,60,103,101,110,101,120,112,114,62, - 114,11,0,0,0,46,0,0,0,115,25,0,0,0,232,0, - 248,128,0,208,10,52,161,79,152,83,140,51,136,115,139,56, - 144,113,141,61,161,79,249,115,4,0,0,0,130,24,26,1, - 218,0,218,1,58,41,1,218,3,119,105,110,41,2,218,6, - 99,121,103,119,105,110,218,6,100,97,114,119,105,110,99,0, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, - 0,0,0,243,178,0,0,0,135,1,151,0,116,0,0,0, - 0,0,0,0,0,0,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,5,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,6, - 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 114,47,116,0,0,0,0,0,0,0,0,0,106,2,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,116,8,0,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,114,3,100,1,138,1,110,2,100,2, - 138,1,136,1,102,1,100,3,132,8,125,0,124,0,83,0, - 100,4,132,0,125,0,124,0,83,0,41,5,78,218,12,80, - 89,84,72,79,78,67,65,83,69,79,75,115,12,0,0,0, - 80,89,84,72,79,78,67,65,83,69,79,75,99,0,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,19,0,0, - 0,243,98,0,0,0,149,1,151,0,116,0,0,0,0,0, - 0,0,0,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,106,4,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,12,0,120,1, - 114,18,1,0,137,0,116,6,0,0,0,0,0,0,0,0, - 106,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,118,0,83,0,41,1,122,94,84,114,117,101, - 32,105,102,32,102,105,108,101,110,97,109,101,115,32,109,117, - 115,116,32,98,101,32,99,104,101,99,107,101,100,32,99,97, - 115,101,45,105,110,115,101,110,115,105,116,105,118,101,108,121, - 32,97,110,100,32,105,103,110,111,114,101,32,101,110,118,105, - 114,111,110,109,101,110,116,32,102,108,97,103,115,32,97,114, - 101,32,110,111,116,32,115,101,116,46,41,5,218,3,115,121, - 115,218,5,102,108,97,103,115,218,18,105,103,110,111,114,101, - 95,101,110,118,105,114,111,110,109,101,110,116,218,3,95,111, - 115,218,7,101,110,118,105,114,111,110,169,1,218,3,107,101, - 121,115,1,0,0,0,128,114,10,0,0,0,218,11,95,114, - 101,108,97,120,95,99,97,115,101,122,37,95,109,97,107,101, - 95,114,101,108,97,120,95,99,97,115,101,46,60,108,111,99, - 97,108,115,62,46,95,114,101,108,97,120,95,99,97,115,101, - 67,0,0,0,115,36,0,0,0,248,128,0,228,23,26,151, - 121,145,121,215,23,51,209,23,51,208,19,51,210,19,74,184, - 3,188,115,191,123,185,123,208,56,74,208,12,74,243,0,0, - 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,19,0,0,0,243,4,0,0,0,151,0,121,1, - 41,2,122,53,84,114,117,101,32,105,102,32,102,105,108,101, - 110,97,109,101,115,32,109,117,115,116,32,98,101,32,99,104, - 101,99,107,101,100,32,99,97,115,101,45,105,110,115,101,110, - 115,105,116,105,118,101,108,121,46,70,169,0,114,30,0,0, - 0,114,28,0,0,0,114,10,0,0,0,114,27,0,0,0, - 122,37,95,109,97,107,101,95,114,101,108,97,120,95,99,97, - 115,101,46,60,108,111,99,97,108,115,62,46,95,114,101,108, - 97,120,95,99,97,115,101,71,0,0,0,115,5,0,0,0, - 128,0,224,19,24,114,28,0,0,0,41,5,114,20,0,0, - 0,218,8,112,108,97,116,102,111,114,109,218,10,115,116,97, - 114,116,115,119,105,116,104,218,27,95,67,65,83,69,95,73, - 78,83,69,78,83,73,84,73,86,69,95,80,76,65,84,70, - 79,82,77,83,218,35,95,67,65,83,69,95,73,78,83,69, - 78,83,73,84,73,86,69,95,80,76,65,84,70,79,82,77, - 83,95,83,84,82,95,75,69,89,41,2,114,27,0,0,0, - 114,26,0,0,0,115,2,0,0,0,32,64,114,10,0,0, - 0,218,16,95,109,97,107,101,95,114,101,108,97,120,95,99, - 97,115,101,114,35,0,0,0,60,0,0,0,115,78,0,0, - 0,248,128,0,220,7,10,135,124,129,124,215,7,30,209,7, - 30,212,31,58,212,7,59,220,11,14,143,60,137,60,215,11, - 34,209,11,34,212,35,70,212,11,71,216,18,32,137,67,224, - 18,33,136,67,244,4,2,9,75,1,240,14,0,12,23,208, - 4,22,242,7,2,9,25,240,6,0,12,23,208,4,22,114, - 28,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,243,62,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,100,1,122,1,0,0,106,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,2, - 100,3,171,2,0,0,0,0,0,0,83,0,41,4,122,42, - 67,111,110,118,101,114,116,32,97,32,51,50,45,98,105,116, - 32,105,110,116,101,103,101,114,32,116,111,32,108,105,116,116, - 108,101,45,101,110,100,105,97,110,46,236,3,0,0,0,255, - 127,255,127,3,0,233,4,0,0,0,218,6,108,105,116,116, - 108,101,41,2,218,3,105,110,116,218,8,116,111,95,98,121, - 116,101,115,41,1,218,1,120,115,1,0,0,0,32,114,10, - 0,0,0,218,12,95,112,97,99,107,95,117,105,110,116,51, - 50,114,43,0,0,0,79,0,0,0,115,30,0,0,0,128, - 0,228,12,15,144,1,139,70,144,90,209,12,31,215,11,41, - 209,11,41,168,33,168,88,211,11,54,208,4,54,114,28,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,78,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,100,1,107,40,0,0,115,2,74,0,130,1,116,2, - 0,0,0,0,0,0,0,0,106,5,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,100,2, - 171,2,0,0,0,0,0,0,83,0,41,3,122,47,67,111, - 110,118,101,114,116,32,52,32,98,121,116,101,115,32,105,110, + 62,0,0,0,35,0,32,0,149,0,85,0,19,0,72,19, + 0,0,110,1,91,1,0,0,0,0,0,0,0,0,85,1, + 53,1,0,0,0,0,0,0,83,0,58,72,0,0,118,0, + 149,5,32,0,77,21,0,0,11,0,32,0,103,1,55,3, + 102,1,41,2,233,1,0,0,0,78,41,1,218,3,108,101, + 110,41,2,218,2,46,48,218,3,115,101,112,115,2,0,0, + 0,32,32,218,38,60,102,114,111,122,101,110,32,105,109,112, + 111,114,116,108,105,98,46,95,98,111,111,116,115,116,114,97, + 112,95,101,120,116,101,114,110,97,108,62,218,9,60,103,101, + 110,101,120,112,114,62,114,11,0,0,0,46,0,0,0,115, + 24,0,0,0,233,0,128,0,208,10,52,162,79,152,83,140, + 51,136,115,139,56,144,113,142,61,162,79,249,115,4,0,0, + 0,130,27,29,1,218,0,218,1,58,41,1,218,3,119,105, + 110,41,5,218,6,99,121,103,119,105,110,218,6,100,97,114, + 119,105,110,218,3,105,111,115,218,4,116,118,111,115,218,7, + 119,97,116,99,104,111,115,99,0,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,3,0,0,0,243,200,0,0, + 0,94,1,149,0,91,0,0,0,0,0,0,0,0,0,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,82,5,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,91,6,0,0,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,53,0,0,91,0,0,0,0,0,0,0,0,0,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,82,5,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,91,8,0,0,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,3,0,0,83,1,109,1,79,2,83,2,109,1,85, + 1,52,1,83,3,26,0,106,8,110,0,85,0,36,0,83, + 4,26,0,110,0,85,0,36,0,41,5,78,218,12,80,89, + 84,72,79,78,67,65,83,69,79,75,115,12,0,0,0,80, + 89,84,72,79,78,67,65,83,69,79,75,99,0,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,19,0,0,0, + 243,118,0,0,0,62,1,149,0,91,0,0,0,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,82,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,43,0,61,1,40,0,0,0,0,0,0,0,97, + 19,0,0,32,0,84,0,91,6,0,0,0,0,0,0,0, + 0,82,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,59,0,0,0,36,0,41,1,122,94,84, + 114,117,101,32,105,102,32,102,105,108,101,110,97,109,101,115, + 32,109,117,115,116,32,98,101,32,99,104,101,99,107,101,100, + 32,99,97,115,101,45,105,110,115,101,110,115,105,116,105,118, + 101,108,121,32,97,110,100,32,105,103,110,111,114,101,32,101, + 110,118,105,114,111,110,109,101,110,116,32,102,108,97,103,115, + 32,97,114,101,32,110,111,116,32,115,101,116,46,41,5,218, + 3,115,121,115,218,5,102,108,97,103,115,218,18,105,103,110, + 111,114,101,95,101,110,118,105,114,111,110,109,101,110,116,218, + 3,95,111,115,218,7,101,110,118,105,114,111,110,169,1,218, + 3,107,101,121,115,1,0,0,0,128,114,10,0,0,0,218, + 11,95,114,101,108,97,120,95,99,97,115,101,218,37,95,109, + 97,107,101,95,114,101,108,97,120,95,99,97,115,101,46,60, + 108,111,99,97,108,115,62,46,95,114,101,108,97,120,95,99, + 97,115,101,67,0,0,0,115,36,0,0,0,248,128,0,228, + 23,26,151,121,145,121,215,23,51,209,23,51,212,19,51,215, + 19,74,184,3,188,115,191,123,185,123,209,56,74,208,12,74, + 243,0,0,0,0,99,0,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,19,0,0,0,243,4,0,0,0,149, + 0,103,1,41,2,122,53,84,114,117,101,32,105,102,32,102, + 105,108,101,110,97,109,101,115,32,109,117,115,116,32,98,101, + 32,99,104,101,99,107,101,100,32,99,97,115,101,45,105,110, + 115,101,110,115,105,116,105,118,101,108,121,46,70,169,0,114, + 34,0,0,0,114,32,0,0,0,114,10,0,0,0,114,30, + 0,0,0,114,31,0,0,0,71,0,0,0,115,5,0,0, + 0,128,0,224,19,24,114,32,0,0,0,41,5,114,23,0, + 0,0,218,8,112,108,97,116,102,111,114,109,218,10,115,116, + 97,114,116,115,119,105,116,104,218,27,95,67,65,83,69,95, + 73,78,83,69,78,83,73,84,73,86,69,95,80,76,65,84, + 70,79,82,77,83,218,35,95,67,65,83,69,95,73,78,83, + 69,78,83,73,84,73,86,69,95,80,76,65,84,70,79,82, + 77,83,95,83,84,82,95,75,69,89,41,2,114,30,0,0, + 0,114,29,0,0,0,115,2,0,0,0,32,64,114,10,0, + 0,0,218,16,95,109,97,107,101,95,114,101,108,97,120,95, + 99,97,115,101,114,39,0,0,0,60,0,0,0,115,84,0, + 0,0,248,128,0,220,7,10,135,124,129,124,215,7,30,209, + 7,30,212,31,58,215,7,59,209,7,59,220,11,14,143,60, + 137,60,215,11,34,209,11,34,212,35,70,215,11,71,209,11, + 71,216,18,32,137,67,224,18,33,136,67,245,4,2,9,75, + 1,240,14,0,12,23,208,4,22,242,7,2,9,25,240,6, + 0,12,23,208,4,22,114,32,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 243,62,0,0,0,149,0,91,1,0,0,0,0,0,0,0, + 0,85,0,53,1,0,0,0,0,0,0,83,1,45,1,0, + 0,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,2,83,3,53,2,0,0,0,0,0, + 0,36,0,41,4,122,42,67,111,110,118,101,114,116,32,97, + 32,51,50,45,98,105,116,32,105,110,116,101,103,101,114,32, + 116,111,32,108,105,116,116,108,101,45,101,110,100,105,97,110, + 46,236,3,0,0,0,255,127,255,127,3,0,233,4,0,0, + 0,218,6,108,105,116,116,108,101,41,2,218,3,105,110,116, + 218,8,116,111,95,98,121,116,101,115,41,1,218,1,120,115, + 1,0,0,0,32,114,10,0,0,0,218,12,95,112,97,99, + 107,95,117,105,110,116,51,50,114,47,0,0,0,79,0,0, + 0,115,30,0,0,0,128,0,228,12,15,144,1,139,70,144, + 90,209,12,31,215,11,41,209,11,41,168,33,168,88,211,11, + 54,208,4,54,114,32,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,80, + 0,0,0,149,0,91,1,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,83,1,58,88,0,0,100, + 2,0,0,23,0,101,1,91,2,0,0,0,0,0,0,0, + 0,82,5,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,0,83,2,53,2,0,0,0,0,0, + 0,36,0,41,3,122,47,67,111,110,118,101,114,116,32,56, + 32,98,121,116,101,115,32,105,110,32,108,105,116,116,108,101, + 45,101,110,100,105,97,110,32,116,111,32,97,110,32,105,110, + 116,101,103,101,114,46,233,8,0,0,0,114,43,0,0,0, + 169,3,114,7,0,0,0,114,44,0,0,0,218,10,102,114, + 111,109,95,98,121,116,101,115,169,1,218,4,100,97,116,97, + 115,1,0,0,0,32,114,10,0,0,0,218,14,95,117,110, + 112,97,99,107,95,117,105,110,116,54,52,114,54,0,0,0, + 84,0,0,0,243,35,0,0,0,128,0,228,11,14,136,116, + 139,57,152,1,139,62,208,4,25,136,62,220,11,14,143,62, + 137,62,152,36,160,8,211,11,41,208,4,41,114,32,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,80,0,0,0,149,0,91,1,0, + 0,0,0,0,0,0,0,85,0,53,1,0,0,0,0,0, + 0,83,1,58,88,0,0,100,2,0,0,23,0,101,1,91, + 2,0,0,0,0,0,0,0,0,82,5,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,83, + 2,53,2,0,0,0,0,0,0,36,0,41,3,122,47,67, + 111,110,118,101,114,116,32,52,32,98,121,116,101,115,32,105, + 110,32,108,105,116,116,108,101,45,101,110,100,105,97,110,32, + 116,111,32,97,110,32,105,110,116,101,103,101,114,46,114,42, + 0,0,0,114,43,0,0,0,114,50,0,0,0,114,52,0, + 0,0,115,1,0,0,0,32,114,10,0,0,0,218,14,95, + 117,110,112,97,99,107,95,117,105,110,116,51,50,114,57,0, + 0,0,89,0,0,0,114,55,0,0,0,114,32,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,243,80,0,0,0,149,0,91,1,0,0, + 0,0,0,0,0,0,85,0,53,1,0,0,0,0,0,0, + 83,1,58,88,0,0,100,2,0,0,23,0,101,1,91,2, + 0,0,0,0,0,0,0,0,82,5,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,0,83,2, + 53,2,0,0,0,0,0,0,36,0,41,3,122,47,67,111, + 110,118,101,114,116,32,50,32,98,121,116,101,115,32,105,110, 32,108,105,116,116,108,101,45,101,110,100,105,97,110,32,116, - 111,32,97,110,32,105,110,116,101,103,101,114,46,114,38,0, - 0,0,114,39,0,0,0,169,3,114,7,0,0,0,114,40, - 0,0,0,218,10,102,114,111,109,95,98,121,116,101,115,169, - 1,218,4,100,97,116,97,115,1,0,0,0,32,114,10,0, - 0,0,218,14,95,117,110,112,97,99,107,95,117,105,110,116, - 51,50,114,49,0,0,0,84,0,0,0,243,35,0,0,0, - 128,0,228,11,14,136,116,139,57,152,1,138,62,208,4,25, - 136,62,220,11,14,143,62,137,62,152,36,160,8,211,11,41, - 208,4,41,114,28,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,78,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,100,1,107,40,0,0,115,2, - 74,0,130,1,116,2,0,0,0,0,0,0,0,0,106,5, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,100,2,171,2,0,0,0,0,0,0,83,0, - 41,3,122,47,67,111,110,118,101,114,116,32,50,32,98,121, - 116,101,115,32,105,110,32,108,105,116,116,108,101,45,101,110, - 100,105,97,110,32,116,111,32,97,110,32,105,110,116,101,103, - 101,114,46,233,2,0,0,0,114,39,0,0,0,114,45,0, - 0,0,114,47,0,0,0,115,1,0,0,0,32,114,10,0, - 0,0,218,14,95,117,110,112,97,99,107,95,117,105,110,116, - 49,54,114,53,0,0,0,89,0,0,0,114,50,0,0,0, - 114,28,0,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,6,0,0,0,7,0,0,0,243,148,2,0,0,151, - 0,124,0,115,1,121,1,116,1,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,100,2,107,40,0, - 0,114,5,124,0,100,3,25,0,0,0,83,0,100,1,125, - 1,103,0,125,2,116,3,0,0,0,0,0,0,0,0,116, - 4,0,0,0,0,0,0,0,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 2,0,0,0,0,0,0,68,0,93,180,0,0,92,2,0, - 0,125,3,125,4,124,3,106,9,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,116,10,0,0,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,115,21,124, - 3,106,13,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,116,10,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,114,36,124,3,106,15,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116, - 16,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,120,1,115,2,1,0,124,1,125,1,116,18,0,0,0, - 0,0,0,0,0,124,4,122,0,0,0,103,1,125,2,140, - 84,124,3,106,13,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,4,171,1,0,0,0,0,0, - 0,114,57,124,1,106,21,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,124,3,106,21,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,107, - 55,0,0,114,6,124,3,125,1,124,4,103,1,125,2,140, - 140,124,2,106,23,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,4,171,1,0,0,0,0,0, - 0,1,0,140,158,124,3,120,1,115,2,1,0,124,1,125, - 1,124,2,106,23,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,4,171,1,0,0,0,0,0, - 0,1,0,140,182,4,0,124,2,68,0,143,5,99,2,103, - 0,99,2,93,26,0,0,125,5,124,5,115,1,140,6,124, - 5,106,15,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,116,16,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,145,2,140,28,4,0,125,2,125, - 5,116,1,0,0,0,0,0,0,0,0,124,2,171,1,0, - 0,0,0,0,0,100,2,107,40,0,0,114,14,124,2,100, - 3,25,0,0,0,115,9,124,1,116,18,0,0,0,0,0, - 0,0,0,122,0,0,0,83,0,124,1,116,18,0,0,0, - 0,0,0,0,0,106,25,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,2,171,1,0,0,0, - 0,0,0,122,0,0,0,83,0,99,2,1,0,99,2,125, - 5,119,0,41,5,250,31,82,101,112,108,97,99,101,109,101, - 110,116,32,102,111,114,32,111,115,46,112,97,116,104,46,106, - 111,105,110,40,41,46,114,12,0,0,0,114,6,0,0,0, - 114,1,0,0,0,114,13,0,0,0,41,13,114,7,0,0, - 0,218,3,109,97,112,114,23,0,0,0,218,15,95,112,97, - 116,104,95,115,112,108,105,116,114,111,111,116,114,32,0,0, - 0,218,14,112,97,116,104,95,115,101,112,95,116,117,112,108, - 101,218,8,101,110,100,115,119,105,116,104,218,6,114,115,116, - 114,105,112,218,15,112,97,116,104,95,115,101,112,97,114,97, - 116,111,114,115,218,8,112,97,116,104,95,115,101,112,218,8, - 99,97,115,101,102,111,108,100,218,6,97,112,112,101,110,100, - 218,4,106,111,105,110,41,6,218,10,112,97,116,104,95,112, - 97,114,116,115,218,4,114,111,111,116,218,4,112,97,116,104, - 218,8,110,101,119,95,114,111,111,116,218,4,116,97,105,108, - 218,1,112,115,6,0,0,0,32,32,32,32,32,32,114,10, - 0,0,0,218,10,95,112,97,116,104,95,106,111,105,110,114, - 72,0,0,0,96,0,0,0,115,40,1,0,0,128,0,225, - 15,25,216,19,21,220,11,14,136,122,139,63,152,97,210,11, - 31,216,19,29,152,97,145,61,208,12,32,216,15,17,136,4, - 216,15,17,136,4,220,30,33,164,35,215,34,53,209,34,53, - 176,122,214,30,66,137,78,136,72,144,100,216,15,23,215,15, - 34,209,15,34,164,62,212,15,50,176,104,215,54,71,209,54, - 71,204,14,212,54,87,216,23,31,151,127,145,127,164,127,211, - 23,55,210,23,63,184,52,144,4,220,24,32,160,52,153,15, - 208,23,40,145,4,216,17,25,215,17,34,209,17,34,160,51, - 212,17,39,216,19,23,151,61,145,61,147,63,160,104,215,38, - 55,209,38,55,211,38,57,210,19,57,240,6,0,28,36,144, - 68,216,28,32,152,54,145,68,224,20,24,151,75,145,75,160, - 4,213,20,37,224,23,31,210,23,39,160,52,144,4,216,16, - 20,151,11,145,11,152,68,213,16,33,240,29,0,31,67,1, - 241,30,0,52,56,211,15,61,177,52,168,97,186,49,144,1, - 151,8,145,8,156,31,213,16,41,176,52,136,4,208,15,61, - 220,11,14,136,116,139,57,152,1,138,62,160,36,160,113,162, - 39,224,19,23,156,40,145,63,208,12,34,216,15,19,148,104, - 151,109,145,109,160,68,211,22,41,209,15,41,208,8,41,249, - 242,9,0,16,62,115,12,0,0,0,195,48,7,69,5,4, - 195,56,23,69,5,4,99,0,0,0,0,0,0,0,0,0, - 0,0,0,8,0,0,0,7,0,0,0,243,124,0,0,0, - 151,0,116,0,0,0,0,0,0,0,0,0,106,3,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,68,0,143,1,99,2,103,0,99,2,93,25,0,0, - 125,1,124,1,114,21,124,1,106,5,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,6,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,145,2, - 140,27,4,0,99,2,125,1,171,1,0,0,0,0,0,0, - 83,0,99,2,1,0,99,2,125,1,119,0,41,1,114,55, - 0,0,0,41,4,114,62,0,0,0,114,65,0,0,0,114, - 60,0,0,0,114,61,0,0,0,41,2,114,66,0,0,0, - 218,4,112,97,114,116,115,2,0,0,0,32,32,114,10,0, - 0,0,114,72,0,0,0,114,72,0,0,0,126,0,0,0, - 115,62,0,0,0,128,0,228,15,23,143,125,137,125,217,42, - 52,243,3,1,30,62,217,42,52,160,36,185,4,240,3,0, - 31,35,159,107,153,107,172,47,213,30,58,216,42,52,241,3, - 1,30,62,243,0,1,16,63,240,0,1,9,63,249,242,0, - 1,30,62,115,4,0,0,0,148,30,57,8,99,1,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,96,0,0,0,135,0,151,0,116,1,0,0,0,0, - 0,0,0,0,136,0,102,1,100,1,132,8,116,2,0,0, - 0,0,0,0,0,0,68,0,171,0,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,125,1,124,1,100,2,107,2, - 0,0,114,4,100,3,137,0,102,2,83,0,137,0,100,4, - 124,1,26,0,137,0,124,1,100,5,122,0,0,0,100,4, - 26,0,102,2,83,0,41,6,122,32,82,101,112,108,97,99, - 101,109,101,110,116,32,102,111,114,32,111,115,46,112,97,116, - 104,46,115,112,108,105,116,40,41,46,99,1,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,51,0,0,0,243, - 64,0,0,0,149,1,75,0,1,0,151,0,124,0,93,21, - 0,0,125,1,137,2,106,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,150,1,151,1,1,0,140,23,4,0,121,0, - 173,3,119,1,169,1,78,41,1,218,5,114,102,105,110,100, - 41,3,114,8,0,0,0,114,71,0,0,0,114,68,0,0, - 0,115,3,0,0,0,32,32,128,114,10,0,0,0,114,11, - 0,0,0,122,30,95,112,97,116,104,95,115,112,108,105,116, - 46,60,108,111,99,97,108,115,62,46,60,103,101,110,101,120, - 112,114,62,134,0,0,0,115,26,0,0,0,248,232,0,248, - 128,0,208,11,51,161,63,152,97,136,68,143,74,137,74,144, - 113,143,77,161,63,249,115,4,0,0,0,131,27,30,1,114, - 1,0,0,0,114,12,0,0,0,78,114,6,0,0,0,41, - 2,218,3,109,97,120,114,61,0,0,0,41,2,114,68,0, - 0,0,218,1,105,115,2,0,0,0,96,32,114,10,0,0, - 0,218,11,95,112,97,116,104,95,115,112,108,105,116,114,81, - 0,0,0,132,0,0,0,115,62,0,0,0,248,128,0,228, - 8,11,211,11,51,165,63,211,11,51,211,8,51,128,65,216, - 7,8,136,49,130,117,216,15,17,144,52,136,120,136,15,216, - 11,15,144,2,144,17,136,56,144,84,152,33,152,97,153,37, - 152,38,144,92,208,11,33,208,4,33,114,28,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,44,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,83,0,41,1,122,126,83,116,97,116,32,116,104, - 101,32,112,97,116,104,46,10,10,32,32,32,32,77,97,100, - 101,32,97,32,115,101,112,97,114,97,116,101,32,102,117,110, - 99,116,105,111,110,32,116,111,32,109,97,107,101,32,105,116, - 32,101,97,115,105,101,114,32,116,111,32,111,118,101,114,114, - 105,100,101,32,105,110,32,101,120,112,101,114,105,109,101,110, - 116,115,10,32,32,32,32,40,101,46,103,46,32,99,97,99, - 104,101,32,115,116,97,116,32,114,101,115,117,108,116,115,41, - 46,10,10,32,32,32,32,41,2,114,23,0,0,0,218,4, - 115,116,97,116,169,1,114,68,0,0,0,115,1,0,0,0, - 32,114,10,0,0,0,218,10,95,112,97,116,104,95,115,116, - 97,116,114,85,0,0,0,140,0,0,0,115,18,0,0,0, - 128,0,244,14,0,12,15,143,56,137,56,144,68,139,62,208, - 4,25,114,28,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,3,0,0,0,243,92,0,0, - 0,151,0,9,0,116,1,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,125,2,124,2,106,4,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,2,122,1,0,0,124,1,107,40,0,0,83,0,35, - 0,116,2,0,0,0,0,0,0,0,0,36,0,114,3,1, - 0,89,0,121,1,119,0,120,3,89,0,119,1,41,3,122, - 49,84,101,115,116,32,119,104,101,116,104,101,114,32,116,104, - 101,32,112,97,116,104,32,105,115,32,116,104,101,32,115,112, - 101,99,105,102,105,101,100,32,109,111,100,101,32,116,121,112, - 101,46,70,105,0,240,0,0,41,3,114,85,0,0,0,218, - 7,79,83,69,114,114,111,114,218,7,115,116,95,109,111,100, - 101,41,3,114,68,0,0,0,218,4,109,111,100,101,218,9, - 115,116,97,116,95,105,110,102,111,115,3,0,0,0,32,32, - 32,114,10,0,0,0,218,18,95,112,97,116,104,95,105,115, - 95,109,111,100,101,95,116,121,112,101,114,91,0,0,0,150, - 0,0,0,115,61,0,0,0,128,0,240,4,3,5,21,220, - 20,30,152,116,211,20,36,136,9,240,6,0,13,22,215,12, - 29,209,12,29,160,8,209,12,40,168,84,209,11,49,208,4, - 49,248,244,5,0,12,19,242,0,1,5,21,217,15,20,240, - 3,1,5,21,250,115,12,0,0,0,130,11,31,0,159,9, - 43,3,170,1,43,3,99,1,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,26,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,124,0,100,1, - 171,2,0,0,0,0,0,0,83,0,41,2,122,31,82,101, + 111,32,97,110,32,105,110,116,101,103,101,114,46,233,2,0, + 0,0,114,43,0,0,0,114,50,0,0,0,114,52,0,0, + 0,115,1,0,0,0,32,114,10,0,0,0,218,14,95,117, + 110,112,97,99,107,95,117,105,110,116,49,54,114,60,0,0, + 0,94,0,0,0,114,55,0,0,0,114,32,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, + 7,0,0,0,243,248,2,0,0,149,0,85,0,40,0,0, + 0,0,0,0,0,100,1,0,0,103,1,91,1,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,83, + 2,58,88,0,0,97,5,0,0,85,0,83,3,5,0,0, + 0,36,0,83,1,110,1,47,0,110,2,91,3,0,0,0, + 0,0,0,0,0,91,4,0,0,0,0,0,0,0,0,82, + 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,0,53,2,0,0,0,0,0,0,19,0,72, + 209,0,0,117,2,0,0,112,52,85,3,82,9,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,91, + 10,0,0,0,0,0,0,0,0,53,1,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,100,26,0,0,85,3,82, + 13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,91,10,0,0,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,42,0, + 0,85,3,82,15,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,91,16,0,0,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,61,1,40,0,0,0,0, + 0,0,0,100,2,0,0,32,0,85,1,110,1,91,18,0, + 0,0,0,0,0,0,0,85,4,45,0,0,0,47,1,110, + 2,77,99,0,0,85,3,82,13,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,4,53,1,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,60,0, + 0,85,1,82,21,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,85, + 3,82,21,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,58,119,0, + 0,97,7,0,0,85,3,110,1,85,4,47,1,110,2,77, + 162,0,0,85,2,82,23,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,4,53,1,0,0,0, + 0,0,0,32,0,77,181,0,0,85,3,61,1,40,0,0, + 0,0,0,0,0,100,2,0,0,32,0,85,1,110,1,85, + 2,82,23,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,4,53,1,0,0,0,0,0,0,32, + 0,77,211,0,0,11,0,32,0,85,2,19,0,86,5,115, + 2,47,0,115,2,19,0,72,32,0,0,111,85,40,0,0, + 0,0,0,0,0,100,2,0,0,77,11,0,0,85,5,82, + 15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,91,16,0,0,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,80,2,77,34,0,0,11,0,32,0,110, + 2,110,5,91,1,0,0,0,0,0,0,0,0,85,2,53, + 1,0,0,0,0,0,0,83,2,58,88,0,0,97,19,0, + 0,85,2,83,3,5,0,0,0,40,0,0,0,0,0,0, + 0,100,9,0,0,85,1,91,18,0,0,0,0,0,0,0, + 0,45,0,0,0,36,0,85,1,91,18,0,0,0,0,0, + 0,0,0,82,25,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,2,53,1,0,0,0,0,0, + 0,45,0,0,0,36,0,115,2,32,0,115,2,110,5,102, + 0,41,5,250,31,82,101,112,108,97,99,101,109,101,110,116, + 32,102,111,114,32,111,115,46,112,97,116,104,46,106,111,105, + 110,40,41,46,114,12,0,0,0,114,6,0,0,0,114,1, + 0,0,0,114,13,0,0,0,41,13,114,7,0,0,0,218, + 3,109,97,112,114,26,0,0,0,218,15,95,112,97,116,104, + 95,115,112,108,105,116,114,111,111,116,114,36,0,0,0,218, + 14,112,97,116,104,95,115,101,112,95,116,117,112,108,101,218, + 8,101,110,100,115,119,105,116,104,218,6,114,115,116,114,105, + 112,218,15,112,97,116,104,95,115,101,112,97,114,97,116,111, + 114,115,218,8,112,97,116,104,95,115,101,112,218,8,99,97, + 115,101,102,111,108,100,218,6,97,112,112,101,110,100,218,4, + 106,111,105,110,41,6,218,10,112,97,116,104,95,112,97,114, + 116,115,218,4,114,111,111,116,218,4,112,97,116,104,218,8, + 110,101,119,95,114,111,111,116,218,4,116,97,105,108,218,1, + 112,115,6,0,0,0,32,32,32,32,32,32,114,10,0,0, + 0,218,10,95,112,97,116,104,95,106,111,105,110,114,79,0, + 0,0,101,0,0,0,115,50,1,0,0,128,0,230,15,25, + 216,19,21,220,11,14,136,122,139,63,152,97,211,11,31,216, + 19,29,152,97,145,61,208,12,32,216,15,17,136,4,216,15, + 17,136,4,220,30,33,164,35,215,34,53,209,34,53,176,122, + 214,30,66,137,78,136,72,216,15,23,215,15,34,209,15,34, + 164,62,215,15,50,209,15,50,176,104,215,54,71,209,54,71, + 204,14,215,54,87,209,54,87,216,23,31,151,127,145,127,164, + 127,211,23,55,215,23,63,184,52,144,4,220,24,32,160,52, + 153,15,208,23,40,146,4,216,17,25,215,17,34,209,17,34, + 160,51,215,17,39,209,17,39,216,19,23,151,61,145,61,147, + 63,160,104,215,38,55,209,38,55,211,38,57,211,19,57,240, + 6,0,28,36,144,68,216,28,32,152,54,146,68,224,20,24, + 151,75,145,75,160,4,214,20,37,224,23,31,215,23,39,160, + 52,144,4,216,16,20,151,11,145,11,152,68,214,16,33,241, + 29,0,31,67,1,241,30,0,52,56,211,15,61,178,52,168, + 97,187,49,211,16,41,144,1,151,8,145,8,156,31,214,16, + 41,177,52,136,4,208,15,61,220,11,14,136,116,139,57,152, + 1,139,62,160,36,160,113,167,39,224,19,23,156,40,145,63, + 208,12,34,216,15,19,148,104,151,109,145,109,160,68,211,22, + 41,209,15,41,208,8,41,249,242,9,0,16,62,115,12,0, + 0,0,196,20,10,69,55,4,196,34,25,69,55,4,99,0, + 0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,7, + 0,0,0,243,142,0,0,0,149,0,91,0,0,0,0,0, + 0,0,0,0,82,3,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,0,19,0,86,1,115,2, + 47,0,115,2,19,0,72,32,0,0,111,17,40,0,0,0, + 0,0,0,0,100,2,0,0,77,11,0,0,85,1,82,5, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,91,6,0,0,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,80,2,77,34,0,0,11,0,32,0,115,2, + 110,1,53,1,0,0,0,0,0,0,36,0,115,2,32,0, + 115,2,110,1,102,0,41,1,114,62,0,0,0,41,4,114, + 69,0,0,0,114,72,0,0,0,114,67,0,0,0,114,68, + 0,0,0,41,2,114,73,0,0,0,218,4,112,97,114,116, + 115,2,0,0,0,32,32,114,10,0,0,0,114,79,0,0, + 0,114,79,0,0,0,131,0,0,0,115,64,0,0,0,128, + 0,228,15,23,143,125,137,125,217,42,52,243,3,1,30,62, + 218,42,52,160,36,187,4,243,3,0,31,59,152,100,159,107, + 153,107,172,47,214,30,58,217,42,52,241,3,1,30,62,243, + 0,1,16,63,240,0,1,9,63,249,242,0,1,30,62,115, + 10,0,0,0,148,10,65,2,8,162,25,65,2,8,99,1, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,100,0,0,0,94,0,149,0,91,1,0,0, + 0,0,0,0,0,0,85,0,52,1,83,1,26,0,106,8, + 91,2,0,0,0,0,0,0,0,0,19,0,53,0,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,110,1,85,1, + 83,2,58,18,0,0,97,4,0,0,83,3,84,0,52,2, + 36,0,84,0,83,4,85,1,4,0,84,0,85,1,83,5, + 45,0,0,0,83,4,4,0,52,2,36,0,41,6,122,32, + 82,101,112,108,97,99,101,109,101,110,116,32,102,111,114,32, + 111,115,46,112,97,116,104,46,115,112,108,105,116,40,41,46, + 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,51,0,0,0,243,70,0,0,0,62,1,35,0,32,0, + 149,0,85,0,19,0,72,22,0,0,110,1,84,2,82,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,1,53,1,0,0,0,0,0,0,118,0,149,5, + 32,0,77,24,0,0,11,0,32,0,103,0,55,3,102,1, + 169,1,78,41,1,218,5,114,102,105,110,100,41,3,114,8, + 0,0,0,114,78,0,0,0,114,75,0,0,0,115,3,0, + 0,0,32,32,128,114,10,0,0,0,114,11,0,0,0,218, + 30,95,112,97,116,104,95,115,112,108,105,116,46,60,108,111, + 99,97,108,115,62,46,60,103,101,110,101,120,112,114,62,139, + 0,0,0,115,27,0,0,0,248,233,0,128,0,208,11,51, + 162,63,152,97,136,68,143,74,137,74,144,113,143,77,136,77, + 162,63,249,115,4,0,0,0,131,30,33,1,114,1,0,0, + 0,114,12,0,0,0,78,114,6,0,0,0,41,2,218,3, + 109,97,120,114,68,0,0,0,41,2,114,75,0,0,0,218, + 1,105,115,2,0,0,0,96,32,114,10,0,0,0,218,11, + 95,112,97,116,104,95,115,112,108,105,116,114,89,0,0,0, + 137,0,0,0,115,62,0,0,0,248,128,0,228,8,11,212, + 11,51,165,63,211,11,51,211,8,51,128,65,216,7,8,136, + 49,131,117,216,15,17,144,52,136,120,136,15,216,11,15,144, + 2,144,17,136,56,144,84,152,33,152,97,153,37,152,38,144, + 92,208,11,33,208,4,33,114,32,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,243,46,0,0,0,149,0,91,0,0,0,0,0,0,0, + 0,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,85,0,53,1,0,0,0,0, + 0,0,36,0,41,1,122,114,83,116,97,116,32,116,104,101, + 32,112,97,116,104,46,10,10,77,97,100,101,32,97,32,115, + 101,112,97,114,97,116,101,32,102,117,110,99,116,105,111,110, + 32,116,111,32,109,97,107,101,32,105,116,32,101,97,115,105, + 101,114,32,116,111,32,111,118,101,114,114,105,100,101,32,105, + 110,32,101,120,112,101,114,105,109,101,110,116,115,10,40,101, + 46,103,46,32,99,97,99,104,101,32,115,116,97,116,32,114, + 101,115,117,108,116,115,41,46,10,10,41,2,114,26,0,0, + 0,218,4,115,116,97,116,169,1,114,75,0,0,0,115,1, + 0,0,0,32,114,10,0,0,0,218,10,95,112,97,116,104, + 95,115,116,97,116,114,93,0,0,0,145,0,0,0,115,18, + 0,0,0,128,0,244,14,0,12,15,143,56,138,56,144,68, + 139,62,208,4,25,114,32,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 94,0,0,0,149,0,30,0,91,1,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,110,2,85,2, + 82,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,2,45,1,0,0,85,1,58,72,0,0, + 36,0,33,0,91,2,0,0,0,0,0,0,0,0,7,0, + 97,3,0,0,32,0,31,0,103,1,102,0,61,3,31,0, + 102,1,41,3,122,49,84,101,115,116,32,119,104,101,116,104, + 101,114,32,116,104,101,32,112,97,116,104,32,105,115,32,116, + 104,101,32,115,112,101,99,105,102,105,101,100,32,109,111,100, + 101,32,116,121,112,101,46,70,105,0,240,0,0,41,3,114, + 93,0,0,0,218,7,79,83,69,114,114,111,114,218,7,115, + 116,95,109,111,100,101,41,3,114,75,0,0,0,218,4,109, + 111,100,101,218,9,115,116,97,116,95,105,110,102,111,115,3, + 0,0,0,32,32,32,114,10,0,0,0,218,18,95,112,97, + 116,104,95,105,115,95,109,111,100,101,95,116,121,112,101,114, + 99,0,0,0,155,0,0,0,115,61,0,0,0,128,0,240, + 4,3,5,21,220,20,30,152,116,211,20,36,136,9,240,6, + 0,13,22,215,12,29,209,12,29,160,8,209,12,40,168,84, + 209,11,49,208,4,49,248,244,5,0,12,19,243,0,1,5, + 21,217,15,20,240,3,1,5,21,250,115,12,0,0,0,130, + 11,31,0,159,10,44,3,171,1,44,3,99,1,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 243,26,0,0,0,149,0,91,1,0,0,0,0,0,0,0, + 0,85,0,83,1,53,2,0,0,0,0,0,0,36,0,41, + 2,122,31,82,101,112,108,97,99,101,109,101,110,116,32,102, + 111,114,32,111,115,46,112,97,116,104,46,105,115,102,105,108, + 101,46,105,0,128,0,0,41,1,114,99,0,0,0,114,92, + 0,0,0,115,1,0,0,0,32,114,10,0,0,0,218,12, + 95,112,97,116,104,95,105,115,102,105,108,101,114,101,0,0, + 0,164,0,0,0,115,15,0,0,0,128,0,228,11,29,152, + 100,160,72,211,11,45,208,4,45,114,32,0,0,0,99,1, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,82,0,0,0,149,0,85,0,40,0,0,0, + 0,0,0,0,100,21,0,0,91,0,0,0,0,0,0,0, + 0,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,53,0,0,0,0,0,0,0, + 110,0,91,5,0,0,0,0,0,0,0,0,85,0,83,1, + 53,2,0,0,0,0,0,0,36,0,41,2,122,30,82,101, 112,108,97,99,101,109,101,110,116,32,102,111,114,32,111,115, - 46,112,97,116,104,46,105,115,102,105,108,101,46,105,0,128, - 0,0,41,1,114,91,0,0,0,114,84,0,0,0,115,1, - 0,0,0,32,114,10,0,0,0,218,12,95,112,97,116,104, - 95,105,115,102,105,108,101,114,93,0,0,0,159,0,0,0, - 115,15,0,0,0,128,0,228,11,29,152,100,160,72,211,11, - 45,208,4,45,114,28,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,70, - 0,0,0,151,0,124,0,115,20,116,1,0,0,0,0,0, - 0,0,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,125, - 0,116,5,0,0,0,0,0,0,0,0,124,0,100,1,171, - 2,0,0,0,0,0,0,83,0,41,2,122,30,82,101,112, + 46,112,97,116,104,46,105,115,100,105,114,46,105,0,64,0, + 0,41,3,114,26,0,0,0,218,6,103,101,116,99,119,100, + 114,99,0,0,0,114,92,0,0,0,115,1,0,0,0,32, + 114,10,0,0,0,218,11,95,112,97,116,104,95,105,115,100, + 105,114,114,104,0,0,0,169,0,0,0,115,29,0,0,0, + 128,0,230,11,15,220,15,18,143,122,138,122,139,124,136,4, + 220,11,29,152,100,160,72,211,11,45,208,4,45,114,32,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,243,224,0,0,0,149,0,85,0, + 40,0,0,0,0,0,0,0,100,1,0,0,103,1,91,0, + 0,0,0,0,0,0,0,0,82,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,85,0, + 53,1,0,0,0,0,0,0,83,2,5,0,0,0,82,5, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,3,83,4,53,2,0,0,0,0,0,0,110,1, + 91,7,0,0,0,0,0,0,0,0,85,1,53,1,0,0, + 0,0,0,0,83,5,58,132,0,0,61,1,40,0,0,0, + 0,0,0,0,97,41,0,0,32,0,85,1,82,9,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 83,6,53,1,0,0,0,0,0,0,61,1,40,0,0,0, + 0,0,0,0,100,17,0,0,32,0,85,1,82,11,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 83,4,53,1,0,0,0,0,0,0,36,0,41,7,250,30, + 82,101,112,108,97,99,101,109,101,110,116,32,102,111,114,32, + 111,115,46,112,97,116,104,46,105,115,97,98,115,46,70,114, + 1,0,0,0,114,4,0,0,0,114,3,0,0,0,114,6, + 0,0,0,122,2,92,92,41,6,114,26,0,0,0,114,64, + 0,0,0,218,7,114,101,112,108,97,99,101,114,7,0,0, + 0,114,36,0,0,0,114,66,0,0,0,41,2,114,75,0, + 0,0,114,74,0,0,0,115,2,0,0,0,32,32,114,10, + 0,0,0,218,11,95,112,97,116,104,95,105,115,97,98,115, + 114,108,0,0,0,177,0,0,0,115,84,0,0,0,128,0, + 230,15,19,216,19,24,220,15,18,215,15,34,210,15,34,160, + 52,211,15,40,168,17,209,15,43,215,15,51,209,15,51,176, + 67,184,20,211,15,62,136,4,220,15,18,144,52,139,121,152, + 49,137,125,215,15,81,160,36,167,47,161,47,176,38,211,34, + 57,215,34,80,184,84,191,93,185,93,200,52,211,61,80,208, + 8,81,114,32,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,3,0,0,0,243,44,0,0, + 0,149,0,85,0,82,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,91,2,0,0,0,0,0, + 0,0,0,53,1,0,0,0,0,0,0,36,0,41,1,114, + 106,0,0,0,41,2,114,36,0,0,0,114,68,0,0,0, + 114,92,0,0,0,115,1,0,0,0,32,114,10,0,0,0, + 114,108,0,0,0,114,108,0,0,0,185,0,0,0,115,17, + 0,0,0,128,0,224,15,19,143,127,137,127,156,127,211,15, + 47,208,8,47,114,32,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,166, + 0,0,0,149,0,91,1,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,100,64,0,0,91,2,0,0,0,0,0,0,0,0,19, + 0,72,23,0,0,110,1,85,0,82,5,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,1,85, + 1,14,0,51,2,53,1,0,0,0,0,0,0,110,0,77, + 25,0,0,11,0,32,0,91,7,0,0,0,0,0,0,0, + 0,91,8,0,0,0,0,0,0,0,0,82,10,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,53,0,0,0,0,0,0,0,85,0,53,2,0,0,0, + 0,0,0,36,0,85,0,36,0,41,2,122,32,82,101,112, 108,97,99,101,109,101,110,116,32,102,111,114,32,111,115,46, - 112,97,116,104,46,105,115,100,105,114,46,105,0,64,0,0, - 41,3,114,23,0,0,0,218,6,103,101,116,99,119,100,114, - 91,0,0,0,114,84,0,0,0,115,1,0,0,0,32,114, - 10,0,0,0,218,11,95,112,97,116,104,95,105,115,100,105, - 114,114,96,0,0,0,164,0,0,0,115,29,0,0,0,128, - 0,225,11,15,220,15,18,143,122,137,122,139,124,136,4,220, - 11,29,152,100,160,72,211,11,45,208,4,45,114,28,0,0, - 0,99,1,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,243,192,0,0,0,151,0,124,0,115, - 1,121,1,116,1,0,0,0,0,0,0,0,0,106,2,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,100,2,25,0,0, - 0,106,5,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,3,100,4,171,2,0,0,0,0,0, - 0,125,1,116,7,0,0,0,0,0,0,0,0,124,1,171, - 1,0,0,0,0,0,0,100,5,107,68,0,0,120,1,114, - 36,1,0,124,1,106,9,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,6,171,1,0,0,0, - 0,0,0,120,1,115,17,1,0,124,1,106,11,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, - 4,171,1,0,0,0,0,0,0,83,0,41,7,250,30,82, - 101,112,108,97,99,101,109,101,110,116,32,102,111,114,32,111, - 115,46,112,97,116,104,46,105,115,97,98,115,46,70,114,1, - 0,0,0,114,4,0,0,0,114,3,0,0,0,114,6,0, - 0,0,122,2,92,92,41,6,114,23,0,0,0,114,57,0, - 0,0,218,7,114,101,112,108,97,99,101,114,7,0,0,0, - 114,32,0,0,0,114,59,0,0,0,41,2,114,68,0,0, - 0,114,67,0,0,0,115,2,0,0,0,32,32,114,10,0, - 0,0,218,11,95,112,97,116,104,95,105,115,97,98,115,114, - 100,0,0,0,172,0,0,0,115,84,0,0,0,128,0,225, - 15,19,216,19,24,220,15,18,215,15,34,209,15,34,160,52, - 211,15,40,168,17,209,15,43,215,15,51,209,15,51,176,67, - 184,20,211,15,62,136,4,220,15,18,144,52,139,121,152,49, - 137,125,210,15,81,160,36,167,47,161,47,176,38,211,34,57, - 210,34,80,184,84,191,93,185,93,200,52,211,61,80,208,8, - 81,114,28,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,243,44,0,0,0, - 151,0,124,0,106,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,2,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,83,0,41,1,114,98, - 0,0,0,41,2,114,32,0,0,0,114,61,0,0,0,114, - 84,0,0,0,115,1,0,0,0,32,114,10,0,0,0,114, - 100,0,0,0,114,100,0,0,0,180,0,0,0,115,17,0, - 0,0,128,0,224,15,19,143,127,137,127,156,127,211,15,47, - 208,8,47,114,28,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,3,0,0,0,243,150,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,115,61,116,2,0,0,0,0, - 0,0,0,0,68,0,93,22,0,0,125,1,124,0,106,5, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,1,124,1,155,0,157,2,171,1,0,0,0,0, - 0,0,125,0,140,24,4,0,116,7,0,0,0,0,0,0, - 0,0,116,9,0,0,0,0,0,0,0,0,106,10,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,124,0,171,2,0,0,0,0, - 0,0,83,0,124,0,83,0,41,2,122,32,82,101,112,108, - 97,99,101,109,101,110,116,32,102,111,114,32,111,115,46,112, - 97,116,104,46,97,98,115,112,97,116,104,46,218,1,46,41, - 6,114,100,0,0,0,114,61,0,0,0,218,12,114,101,109, - 111,118,101,112,114,101,102,105,120,114,72,0,0,0,114,23, - 0,0,0,114,95,0,0,0,41,2,114,68,0,0,0,114, - 9,0,0,0,115,2,0,0,0,32,32,114,10,0,0,0, - 218,13,95,112,97,116,104,95,97,98,115,112,97,116,104,114, - 105,0,0,0,185,0,0,0,115,66,0,0,0,128,0,228, - 11,22,144,116,212,11,28,223,19,34,136,67,216,19,23,215, - 19,36,209,19,36,160,113,168,19,168,5,160,89,211,19,47, - 137,68,240,3,0,20,35,228,15,25,156,35,159,42,153,42, - 155,44,168,4,211,15,45,208,8,45,224,15,19,136,11,114, - 28,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, - 0,6,0,0,0,3,0,0,0,243,246,1,0,0,151,0, - 124,0,155,0,100,1,116,1,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,155,0,157,3,125,3, - 116,3,0,0,0,0,0,0,0,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,3, - 116,2,0,0,0,0,0,0,0,0,106,6,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,2, - 0,0,0,0,0,0,0,0,106,8,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,122,7,0,0, - 116,2,0,0,0,0,0,0,0,0,106,10,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,7, - 0,0,124,2,100,2,122,1,0,0,171,3,0,0,0,0, - 0,0,125,4,9,0,116,13,0,0,0,0,0,0,0,0, - 106,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,4,100,3,171,2,0,0,0,0,0,0, - 53,0,125,5,124,5,106,17,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,125,6,100,4,100,4,100,4,171,2,0,0, - 0,0,0,0,1,0,127,6,116,19,0,0,0,0,0,0, - 0,0,124,1,171,1,0,0,0,0,0,0,107,55,0,0, - 114,11,116,21,0,0,0,0,0,0,0,0,100,5,171,1, - 0,0,0,0,0,0,130,1,116,3,0,0,0,0,0,0, - 0,0,106,22,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,3,124,0,171,2,0,0,0,0, - 0,0,1,0,121,4,35,0,49,0,115,1,119,2,1,0, - 89,0,1,0,1,0,140,57,120,3,89,0,119,1,35,0, - 116,20,0,0,0,0,0,0,0,0,36,0,114,39,1,0, - 9,0,116,3,0,0,0,0,0,0,0,0,106,24,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,3,171,1,0,0,0,0,0,0,1,0,130,0,35,0, - 116,20,0,0,0,0,0,0,0,0,36,0,114,3,1,0, - 89,0,130,0,119,0,120,3,89,0,119,1,119,0,120,3, - 89,0,119,1,41,6,122,162,66,101,115,116,45,101,102,102, - 111,114,116,32,102,117,110,99,116,105,111,110,32,116,111,32, - 119,114,105,116,101,32,100,97,116,97,32,116,111,32,97,32, - 112,97,116,104,32,97,116,111,109,105,99,97,108,108,121,46, - 10,32,32,32,32,66,101,32,112,114,101,112,97,114,101,100, - 32,116,111,32,104,97,110,100,108,101,32,97,32,70,105,108, - 101,69,120,105,115,116,115,69,114,114,111,114,32,105,102,32, - 99,111,110,99,117,114,114,101,110,116,32,119,114,105,116,105, - 110,103,32,111,102,32,116,104,101,10,32,32,32,32,116,101, - 109,112,111,114,97,114,121,32,102,105,108,101,32,105,115,32, - 97,116,116,101,109,112,116,101,100,46,114,103,0,0,0,233, - 182,1,0,0,218,2,119,98,78,122,41,111,115,46,119,114, - 105,116,101,40,41,32,100,105,100,110,39,116,32,119,114,105, - 116,101,32,116,104,101,32,102,117,108,108,32,112,121,99,32, - 102,105,108,101,41,13,218,2,105,100,114,23,0,0,0,218, - 4,111,112,101,110,218,6,79,95,69,88,67,76,218,7,79, - 95,67,82,69,65,84,218,8,79,95,87,82,79,78,76,89, - 218,3,95,105,111,218,6,70,105,108,101,73,79,218,5,119, - 114,105,116,101,114,7,0,0,0,114,87,0,0,0,114,99, - 0,0,0,218,6,117,110,108,105,110,107,41,7,114,68,0, - 0,0,114,48,0,0,0,114,89,0,0,0,218,8,112,97, - 116,104,95,116,109,112,218,2,102,100,218,4,102,105,108,101, - 218,13,98,121,116,101,115,95,119,114,105,116,116,101,110,115, - 7,0,0,0,32,32,32,32,32,32,32,114,10,0,0,0, - 218,13,95,119,114,105,116,101,95,97,116,111,109,105,99,114, - 122,0,0,0,195,0,0,0,115,224,0,0,0,128,0,240, - 10,0,19,23,144,22,144,113,156,18,152,68,155,24,152,10, - 208,15,35,128,72,220,9,12,143,24,137,24,144,40,220,18, - 21,151,42,145,42,156,115,159,123,153,123,209,18,42,172,83, - 175,92,169,92,209,18,57,184,52,192,37,185,60,243,3,1, - 10,73,1,128,66,240,4,15,5,14,244,6,0,14,17,143, - 90,137,90,152,2,152,68,212,13,33,160,84,216,28,32,159, - 74,153,74,160,116,211,28,44,136,77,247,3,0,14,34,224, - 11,24,156,67,160,4,155,73,210,11,37,244,6,0,19,26, - 208,26,69,211,18,70,208,12,70,220,8,11,143,11,137,11, - 144,72,152,100,213,8,35,247,13,0,14,34,208,13,33,251, - 244,14,0,12,19,242,0,5,5,14,240,2,3,9,17,220, - 12,15,143,74,137,74,144,120,212,12,32,240,6,0,9,14, - 248,244,5,0,16,23,242,0,1,9,17,216,12,16,216,8, - 13,240,5,1,9,17,250,240,7,5,5,14,250,115,72,0, - 0,0,193,28,22,67,8,0,193,50,18,66,60,3,194,4, - 55,67,8,0,194,60,5,67,5,7,195,1,7,67,8,0, - 195,8,9,67,56,3,195,18,21,67,40,2,195,39,1,67, - 56,3,195,40,9,67,52,5,195,49,2,67,56,3,195,51, - 1,67,52,5,195,52,4,67,56,3,105,203,13,0,0,114, - 52,0,0,0,114,39,0,0,0,115,2,0,0,0,13,10, - 218,11,95,95,112,121,99,97,99,104,101,95,95,122,4,111, - 112,116,45,122,3,46,112,121,122,4,46,112,121,119,122,4, - 46,112,121,99,41,1,218,12,111,112,116,105,109,105,122,97, - 116,105,111,110,99,2,0,0,0,0,0,0,0,1,0,0, - 0,6,0,0,0,3,0,0,0,243,60,3,0,0,151,0, - 124,1,129,47,116,1,0,0,0,0,0,0,0,0,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,2,116,4,0,0,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,1,0,124,2,129,13,100,3,125,3, - 116,7,0,0,0,0,0,0,0,0,124,3,171,1,0,0, - 0,0,0,0,130,1,124,1,114,2,100,4,110,1,100,5, - 125,2,116,9,0,0,0,0,0,0,0,0,106,10,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,125,0,116,13,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 92,2,0,0,125,4,125,5,124,5,106,15,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,6, - 171,1,0,0,0,0,0,0,92,3,0,0,125,6,125,7, - 125,8,116,16,0,0,0,0,0,0,0,0,106,18,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,125,9,124,9,128,11,116,23,0,0,0,0, - 0,0,0,0,100,7,171,1,0,0,0,0,0,0,130,1, - 100,4,106,25,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,6,114,2,124,6,110,1,124,8, - 124,7,124,9,103,3,171,1,0,0,0,0,0,0,125,10, - 124,2,128,58,116,16,0,0,0,0,0,0,0,0,106,26, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,28,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,8,107,40,0,0,114,3,100,4, - 125,2,110,26,116,16,0,0,0,0,0,0,0,0,106,26, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,28,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,125,2,116,31,0,0,0,0,0,0, - 0,0,124,2,171,1,0,0,0,0,0,0,125,2,124,2, - 100,4,107,55,0,0,114,43,124,2,106,33,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,115,14,116,35,0,0,0,0,0,0, - 0,0,124,2,155,2,100,9,157,2,171,1,0,0,0,0, - 0,0,130,1,124,10,155,0,100,6,116,36,0,0,0,0, - 0,0,0,0,155,0,124,2,155,0,157,4,125,10,124,10, - 116,38,0,0,0,0,0,0,0,0,100,8,25,0,0,0, - 122,0,0,0,125,11,116,16,0,0,0,0,0,0,0,0, - 106,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,129,81,116,43,0,0,0,0,0,0,0,0, - 124,4,171,1,0,0,0,0,0,0,125,4,124,4,100,5, - 25,0,0,0,100,10,107,40,0,0,114,16,124,4,100,8, - 25,0,0,0,116,44,0,0,0,0,0,0,0,0,118,1, - 114,5,124,4,100,11,100,1,26,0,125,4,116,47,0,0, - 0,0,0,0,0,0,116,16,0,0,0,0,0,0,0,0, - 106,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,4,106,49,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,116,44,0,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,124,11,171,3, - 0,0,0,0,0,0,83,0,116,47,0,0,0,0,0,0, - 0,0,124,4,116,50,0,0,0,0,0,0,0,0,124,11, - 171,3,0,0,0,0,0,0,83,0,41,12,97,254,2,0, - 0,71,105,118,101,110,32,116,104,101,32,112,97,116,104,32, - 116,111,32,97,32,46,112,121,32,102,105,108,101,44,32,114, - 101,116,117,114,110,32,116,104,101,32,112,97,116,104,32,116, - 111,32,105,116,115,32,46,112,121,99,32,102,105,108,101,46, - 10,10,32,32,32,32,84,104,101,32,46,112,121,32,102,105, - 108,101,32,100,111,101,115,32,110,111,116,32,110,101,101,100, - 32,116,111,32,101,120,105,115,116,59,32,116,104,105,115,32, - 115,105,109,112,108,121,32,114,101,116,117,114,110,115,32,116, - 104,101,32,112,97,116,104,32,116,111,32,116,104,101,10,32, - 32,32,32,46,112,121,99,32,102,105,108,101,32,99,97,108, - 99,117,108,97,116,101,100,32,97,115,32,105,102,32,116,104, - 101,32,46,112,121,32,102,105,108,101,32,119,101,114,101,32, - 105,109,112,111,114,116,101,100,46,10,10,32,32,32,32,84, - 104,101,32,39,111,112,116,105,109,105,122,97,116,105,111,110, - 39,32,112,97,114,97,109,101,116,101,114,32,99,111,110,116, - 114,111,108,115,32,116,104,101,32,112,114,101,115,117,109,101, - 100,32,111,112,116,105,109,105,122,97,116,105,111,110,32,108, - 101,118,101,108,32,111,102,10,32,32,32,32,116,104,101,32, - 98,121,116,101,99,111,100,101,32,102,105,108,101,46,32,73, - 102,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39, - 32,105,115,32,110,111,116,32,78,111,110,101,44,32,116,104, - 101,32,115,116,114,105,110,103,32,114,101,112,114,101,115,101, - 110,116,97,116,105,111,110,10,32,32,32,32,111,102,32,116, - 104,101,32,97,114,103,117,109,101,110,116,32,105,115,32,116, - 97,107,101,110,32,97,110,100,32,118,101,114,105,102,105,101, - 100,32,116,111,32,98,101,32,97,108,112,104,97,110,117,109, - 101,114,105,99,32,40,101,108,115,101,32,86,97,108,117,101, - 69,114,114,111,114,10,32,32,32,32,105,115,32,114,97,105, - 115,101,100,41,46,10,10,32,32,32,32,84,104,101,32,100, - 101,98,117,103,95,111,118,101,114,114,105,100,101,32,112,97, - 114,97,109,101,116,101,114,32,105,115,32,100,101,112,114,101, - 99,97,116,101,100,46,32,73,102,32,100,101,98,117,103,95, - 111,118,101,114,114,105,100,101,32,105,115,32,110,111,116,32, - 78,111,110,101,44,10,32,32,32,32,97,32,84,114,117,101, - 32,118,97,108,117,101,32,105,115,32,116,104,101,32,115,97, - 109,101,32,97,115,32,115,101,116,116,105,110,103,32,39,111, - 112,116,105,109,105,122,97,116,105,111,110,39,32,116,111,32, - 116,104,101,32,101,109,112,116,121,32,115,116,114,105,110,103, - 10,32,32,32,32,119,104,105,108,101,32,97,32,70,97,108, - 115,101,32,118,97,108,117,101,32,105,115,32,101,113,117,105, - 118,97,108,101,110,116,32,116,111,32,115,101,116,116,105,110, - 103,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39, - 32,116,111,32,39,49,39,46,10,10,32,32,32,32,73,102, - 32,115,121,115,46,105,109,112,108,101,109,101,110,116,97,116, - 105,111,110,46,99,97,99,104,101,95,116,97,103,32,105,115, - 32,78,111,110,101,32,116,104,101,110,32,78,111,116,73,109, - 112,108,101,109,101,110,116,101,100,69,114,114,111,114,32,105, - 115,32,114,97,105,115,101,100,46,10,10,32,32,32,32,78, - 122,70,116,104,101,32,100,101,98,117,103,95,111,118,101,114, - 114,105,100,101,32,112,97,114,97,109,101,116,101,114,32,105, - 115,32,100,101,112,114,101,99,97,116,101,100,59,32,117,115, - 101,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39, - 32,105,110,115,116,101,97,100,122,50,100,101,98,117,103,95, - 111,118,101,114,114,105,100,101,32,111,114,32,111,112,116,105, - 109,105,122,97,116,105,111,110,32,109,117,115,116,32,98,101, - 32,115,101,116,32,116,111,32,78,111,110,101,114,12,0,0, - 0,114,6,0,0,0,114,103,0,0,0,250,36,115,121,115, - 46,105,109,112,108,101,109,101,110,116,97,116,105,111,110,46, - 99,97,99,104,101,95,116,97,103,32,105,115,32,78,111,110, - 101,114,1,0,0,0,122,20,32,105,115,32,110,111,116,32, - 97,108,112,104,97,110,117,109,101,114,105,99,114,13,0,0, - 0,114,52,0,0,0,41,26,218,9,95,119,97,114,110,105, - 110,103,115,218,4,119,97,114,110,218,18,68,101,112,114,101, - 99,97,116,105,111,110,87,97,114,110,105,110,103,218,9,84, - 121,112,101,69,114,114,111,114,114,23,0,0,0,218,6,102, - 115,112,97,116,104,114,81,0,0,0,218,10,114,112,97,114, - 116,105,116,105,111,110,114,20,0,0,0,218,14,105,109,112, - 108,101,109,101,110,116,97,116,105,111,110,218,9,99,97,99, - 104,101,95,116,97,103,218,19,78,111,116,73,109,112,108,101, - 109,101,110,116,101,100,69,114,114,111,114,114,65,0,0,0, - 114,21,0,0,0,218,8,111,112,116,105,109,105,122,101,218, - 3,115,116,114,218,7,105,115,97,108,110,117,109,218,10,86, - 97,108,117,101,69,114,114,111,114,218,4,95,79,80,84,218, - 17,66,89,84,69,67,79,68,69,95,83,85,70,70,73,88, - 69,83,218,14,112,121,99,97,99,104,101,95,112,114,101,102, - 105,120,114,105,0,0,0,114,61,0,0,0,114,72,0,0, - 0,218,6,108,115,116,114,105,112,218,8,95,80,89,67,65, - 67,72,69,41,12,114,68,0,0,0,218,14,100,101,98,117, - 103,95,111,118,101,114,114,105,100,101,114,124,0,0,0,218, - 7,109,101,115,115,97,103,101,218,4,104,101,97,100,114,70, - 0,0,0,218,4,98,97,115,101,114,9,0,0,0,218,4, - 114,101,115,116,218,3,116,97,103,218,15,97,108,109,111,115, - 116,95,102,105,108,101,110,97,109,101,218,8,102,105,108,101, - 110,97,109,101,115,12,0,0,0,32,32,32,32,32,32,32, - 32,32,32,32,32,114,10,0,0,0,218,17,99,97,99,104, - 101,95,102,114,111,109,95,115,111,117,114,99,101,114,153,0, - 0,0,230,1,0,0,115,159,1,0,0,128,0,240,36,0, - 8,22,208,7,33,220,8,17,143,14,137,14,240,0,1,24, - 48,220,49,67,244,3,1,9,69,1,224,11,23,208,11,35, - 216,22,74,136,71,220,18,27,152,71,211,18,36,208,12,36, - 217,29,43,145,114,176,17,136,12,220,11,14,143,58,137,58, - 144,100,211,11,27,128,68,220,17,28,152,84,211,17,34,129, - 74,128,68,136,36,216,22,26,151,111,145,111,160,99,211,22, - 42,129,79,128,68,136,35,136,116,220,10,13,215,10,28,209, - 10,28,215,10,38,209,10,38,128,67,216,7,10,128,123,220, - 14,33,208,34,72,211,14,73,208,8,73,216,22,24,151,103, - 145,103,169,4,161,4,176,36,184,19,184,99,208,30,66,211, - 22,67,128,79,216,7,19,208,7,27,220,11,14,143,57,137, - 57,215,11,29,209,11,29,160,17,210,11,34,216,27,29,137, - 76,228,27,30,159,57,153,57,215,27,45,209,27,45,136,76, - 220,19,22,144,124,211,19,36,128,76,216,7,19,144,114,210, - 7,25,216,15,27,215,15,35,209,15,35,212,15,37,220,18, - 28,160,12,208,31,47,208,47,67,208,29,68,211,18,69,208, - 12,69,216,29,44,208,28,45,168,81,172,116,168,102,176,92, - 176,78,208,26,67,136,15,216,15,30,212,33,50,176,49,209, - 33,53,209,15,53,128,72,220,7,10,215,7,25,209,7,25, - 208,7,37,244,18,0,16,29,152,84,211,15,34,136,4,240, - 10,0,12,16,144,1,137,55,144,99,138,62,152,100,160,49, - 153,103,172,95,209,30,60,216,19,23,152,1,152,2,144,56, + 112,97,116,104,46,97,98,115,112,97,116,104,46,218,1,46, + 41,6,114,108,0,0,0,114,68,0,0,0,218,12,114,101, + 109,111,118,101,112,114,101,102,105,120,114,79,0,0,0,114, + 26,0,0,0,114,103,0,0,0,41,2,114,75,0,0,0, + 114,9,0,0,0,115,2,0,0,0,32,32,114,10,0,0, + 0,218,13,95,112,97,116,104,95,97,98,115,112,97,116,104, + 114,113,0,0,0,190,0,0,0,115,69,0,0,0,128,0, + 228,11,22,144,116,215,11,28,209,11,28,223,19,34,136,67, + 216,19,23,215,19,36,209,19,36,160,113,168,19,168,5,160, + 89,211,19,47,138,68,241,3,0,20,35,228,15,25,156,35, + 159,42,154,42,155,44,168,4,211,15,45,208,8,45,224,15, + 19,136,11,114,32,0,0,0,99,3,0,0,0,0,0,0, + 0,0,0,0,0,6,0,0,0,3,0,0,0,243,216,1, + 0,0,149,0,85,0,14,0,83,1,91,1,0,0,0,0, + 0,0,0,0,85,0,53,1,0,0,0,0,0,0,14,0, + 51,3,110,3,91,2,0,0,0,0,0,0,0,0,82,4, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,34,0,85,3,91,2,0,0,0,0,0,0,0,0, + 82,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,91,2,0,0,0,0,0,0,0,0,82,8, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,45,7,0,0,91,2,0,0,0,0,0,0,0,0, + 82,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,45,7,0,0,85,2,83,2,45,1,0,0, + 53,3,0,0,0,0,0,0,110,4,30,0,91,12,0,0, + 0,0,0,0,0,0,82,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,34,0,85,4,83,3, + 53,2,0,0,0,0,0,0,2,0,110,5,85,5,82,15, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,1,53,1,0,0,0,0,0,0,32,0,83,4, + 83,4,83,4,53,2,0,0,0,0,0,0,32,0,91,2, + 0,0,0,0,0,0,0,0,82,16,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,88,48, + 53,2,0,0,0,0,0,0,32,0,103,4,33,0,44,0, + 40,0,0,0,0,0,0,0,100,1,0,0,102,2,32,0, + 31,0,32,0,32,0,78,37,61,3,31,0,102,1,33,0, + 91,18,0,0,0,0,0,0,0,0,7,0,97,41,0,0, + 32,0,30,0,91,2,0,0,0,0,0,0,0,0,82,20, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,34,0,85,3,53,1,0,0,0,0,0,0,32,0, + 101,0,33,0,91,18,0,0,0,0,0,0,0,0,7,0, + 97,3,0,0,32,0,31,0,101,0,102,0,61,3,31,0, + 102,1,102,0,61,3,31,0,102,1,41,5,122,154,66,101, + 115,116,45,101,102,102,111,114,116,32,102,117,110,99,116,105, + 111,110,32,116,111,32,119,114,105,116,101,32,100,97,116,97, + 32,116,111,32,97,32,112,97,116,104,32,97,116,111,109,105, + 99,97,108,108,121,46,10,66,101,32,112,114,101,112,97,114, + 101,100,32,116,111,32,104,97,110,100,108,101,32,97,32,70, + 105,108,101,69,120,105,115,116,115,69,114,114,111,114,32,105, + 102,32,99,111,110,99,117,114,114,101,110,116,32,119,114,105, + 116,105,110,103,32,111,102,32,116,104,101,10,116,101,109,112, + 111,114,97,114,121,32,102,105,108,101,32,105,115,32,97,116, + 116,101,109,112,116,101,100,46,114,111,0,0,0,233,182,1, + 0,0,218,2,119,98,78,41,11,218,2,105,100,114,26,0, + 0,0,218,4,111,112,101,110,218,6,79,95,69,88,67,76, + 218,7,79,95,67,82,69,65,84,218,8,79,95,87,82,79, + 78,76,89,218,3,95,105,111,218,5,119,114,105,116,101,114, + 107,0,0,0,114,95,0,0,0,218,6,117,110,108,105,110, + 107,41,6,114,75,0,0,0,114,53,0,0,0,114,97,0, + 0,0,218,8,112,97,116,104,95,116,109,112,218,2,102,100, + 218,4,102,105,108,101,115,6,0,0,0,32,32,32,32,32, + 32,114,10,0,0,0,218,13,95,119,114,105,116,101,95,97, + 116,111,109,105,99,114,128,0,0,0,200,0,0,0,115,194, + 0,0,0,128,0,240,10,0,19,23,144,22,144,113,156,18, + 152,68,155,24,152,10,208,15,35,128,72,220,9,12,143,24, + 138,24,144,40,220,18,21,151,42,145,42,156,115,159,123,153, + 123,209,18,42,172,83,175,92,169,92,209,18,57,184,52,192, + 37,185,60,243,3,1,10,73,1,128,66,240,4,11,5,14, + 244,6,0,14,17,143,88,138,88,144,98,152,36,212,13,31, + 160,52,216,12,16,143,74,137,74,144,116,212,12,28,247,3, + 0,14,32,228,8,11,143,11,138,11,144,72,213,8,35,247, + 5,0,14,32,213,13,31,251,244,6,0,12,19,243,0,5, + 5,14,240,2,3,9,17,220,12,15,143,74,138,74,144,120, + 212,12,32,240,6,0,9,14,248,244,5,0,16,23,243,0, + 1,9,17,216,12,16,216,8,13,240,5,1,9,17,250,240, + 7,5,5,14,250,115,72,0,0,0,193,29,23,66,54,0, + 193,52,18,66,37,3,194,6,30,66,54,0,194,37,10,66, + 51,7,194,47,7,66,54,0,194,54,10,67,41,3,195,1, + 22,67,24,2,195,23,1,67,41,3,195,24,10,67,37,5, + 195,34,2,67,41,3,195,36,1,67,37,5,195,37,4,67, + 41,3,105,243,13,0,0,114,59,0,0,0,114,43,0,0, + 0,115,2,0,0,0,13,10,218,11,95,95,112,121,99,97, + 99,104,101,95,95,122,4,111,112,116,45,122,3,46,112,121, + 122,4,46,112,121,119,122,4,46,112,121,99,41,1,218,12, + 111,112,116,105,109,105,122,97,116,105,111,110,99,2,0,0, + 0,0,0,0,0,1,0,0,0,6,0,0,0,3,0,0, + 0,243,110,3,0,0,149,0,85,1,98,54,0,0,91,0, + 0,0,0,0,0,0,0,0,82,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,83,2, + 91,4,0,0,0,0,0,0,0,0,53,2,0,0,0,0, + 0,0,32,0,85,2,98,13,0,0,83,3,110,3,91,7, + 0,0,0,0,0,0,0,0,85,3,53,1,0,0,0,0, + 0,0,101,1,85,1,40,0,0,0,0,0,0,0,97,2, + 0,0,83,4,79,1,83,5,110,2,91,8,0,0,0,0, + 0,0,0,0,82,10,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,85,0,53,1,0,0, + 0,0,0,0,110,0,91,13,0,0,0,0,0,0,0,0, + 85,0,53,1,0,0,0,0,0,0,117,2,0,0,112,69, + 85,5,82,15,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,6,53,1,0,0,0,0,0,0, + 117,3,0,0,112,103,110,8,91,16,0,0,0,0,0,0, + 0,0,82,18,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,82,20,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,110,9,85,9,99,11, + 0,0,91,23,0,0,0,0,0,0,0,0,83,7,53,1, + 0,0,0,0,0,0,101,1,83,4,82,25,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,6, + 40,0,0,0,0,0,0,0,97,2,0,0,85,6,79,1, + 85,8,88,121,47,3,53,1,0,0,0,0,0,0,110,10, + 85,2,99,59,0,0,91,16,0,0,0,0,0,0,0,0, + 82,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,82,28,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,83,8,58,88,0,0,97,3, + 0,0,83,4,110,2,79,26,91,16,0,0,0,0,0,0, + 0,0,82,26,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,82,28,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,110,2,91,31,0,0, + 0,0,0,0,0,0,85,2,53,1,0,0,0,0,0,0, + 110,2,85,2,83,4,58,119,0,0,97,49,0,0,85,2, + 82,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,100,15,0,0,91,35,0,0,0,0,0,0, + 0,0,85,2,60,2,14,0,83,9,51,2,53,1,0,0, + 0,0,0,0,101,1,85,10,14,0,83,6,91,36,0,0, + 0,0,0,0,0,0,14,0,85,2,14,0,51,4,110,10, + 85,10,91,38,0,0,0,0,0,0,0,0,83,8,5,0, + 0,0,45,0,0,0,110,11,91,16,0,0,0,0,0,0, + 0,0,82,40,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,98,84,0,0,91,43,0,0,0,0, + 0,0,0,0,85,4,53,1,0,0,0,0,0,0,110,4, + 85,4,83,5,83,10,4,0,83,11,58,88,0,0,97,18, + 0,0,85,4,83,8,83,5,4,0,91,44,0,0,0,0, + 0,0,0,0,59,1,0,0,97,5,0,0,85,4,83,10, + 83,1,4,0,110,4,91,47,0,0,0,0,0,0,0,0, + 91,16,0,0,0,0,0,0,0,0,82,40,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,4, + 82,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,91,44,0,0,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,85,11,53,3,0,0,0,0,0,0, + 36,0,91,47,0,0,0,0,0,0,0,0,85,4,91,50, + 0,0,0,0,0,0,0,0,85,11,53,3,0,0,0,0, + 0,0,36,0,41,12,97,210,2,0,0,71,105,118,101,110, + 32,116,104,101,32,112,97,116,104,32,116,111,32,97,32,46, + 112,121,32,102,105,108,101,44,32,114,101,116,117,114,110,32, + 116,104,101,32,112,97,116,104,32,116,111,32,105,116,115,32, + 46,112,121,99,32,102,105,108,101,46,10,10,84,104,101,32, + 46,112,121,32,102,105,108,101,32,100,111,101,115,32,110,111, + 116,32,110,101,101,100,32,116,111,32,101,120,105,115,116,59, + 32,116,104,105,115,32,115,105,109,112,108,121,32,114,101,116, + 117,114,110,115,32,116,104,101,32,112,97,116,104,32,116,111, + 32,116,104,101,10,46,112,121,99,32,102,105,108,101,32,99, + 97,108,99,117,108,97,116,101,100,32,97,115,32,105,102,32, + 116,104,101,32,46,112,121,32,102,105,108,101,32,119,101,114, + 101,32,105,109,112,111,114,116,101,100,46,10,10,84,104,101, + 32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,32, + 112,97,114,97,109,101,116,101,114,32,99,111,110,116,114,111, + 108,115,32,116,104,101,32,112,114,101,115,117,109,101,100,32, + 111,112,116,105,109,105,122,97,116,105,111,110,32,108,101,118, + 101,108,32,111,102,10,116,104,101,32,98,121,116,101,99,111, + 100,101,32,102,105,108,101,46,32,73,102,32,39,111,112,116, + 105,109,105,122,97,116,105,111,110,39,32,105,115,32,110,111, + 116,32,78,111,110,101,44,32,116,104,101,32,115,116,114,105, + 110,103,32,114,101,112,114,101,115,101,110,116,97,116,105,111, + 110,10,111,102,32,116,104,101,32,97,114,103,117,109,101,110, + 116,32,105,115,32,116,97,107,101,110,32,97,110,100,32,118, + 101,114,105,102,105,101,100,32,116,111,32,98,101,32,97,108, + 112,104,97,110,117,109,101,114,105,99,32,40,101,108,115,101, + 32,86,97,108,117,101,69,114,114,111,114,10,105,115,32,114, + 97,105,115,101,100,41,46,10,10,84,104,101,32,100,101,98, + 117,103,95,111,118,101,114,114,105,100,101,32,112,97,114,97, + 109,101,116,101,114,32,105,115,32,100,101,112,114,101,99,97, + 116,101,100,46,32,73,102,32,100,101,98,117,103,95,111,118, + 101,114,114,105,100,101,32,105,115,32,110,111,116,32,78,111, + 110,101,44,10,97,32,84,114,117,101,32,118,97,108,117,101, + 32,105,115,32,116,104,101,32,115,97,109,101,32,97,115,32, + 115,101,116,116,105,110,103,32,39,111,112,116,105,109,105,122, + 97,116,105,111,110,39,32,116,111,32,116,104,101,32,101,109, + 112,116,121,32,115,116,114,105,110,103,10,119,104,105,108,101, + 32,97,32,70,97,108,115,101,32,118,97,108,117,101,32,105, + 115,32,101,113,117,105,118,97,108,101,110,116,32,116,111,32, + 115,101,116,116,105,110,103,32,39,111,112,116,105,109,105,122, + 97,116,105,111,110,39,32,116,111,32,39,49,39,46,10,10, + 73,102,32,115,121,115,46,105,109,112,108,101,109,101,110,116, + 97,116,105,111,110,46,99,97,99,104,101,95,116,97,103,32, + 105,115,32,78,111,110,101,32,116,104,101,110,32,78,111,116, + 73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114, + 32,105,115,32,114,97,105,115,101,100,46,10,10,78,122,70, + 116,104,101,32,100,101,98,117,103,95,111,118,101,114,114,105, + 100,101,32,112,97,114,97,109,101,116,101,114,32,105,115,32, + 100,101,112,114,101,99,97,116,101,100,59,32,117,115,101,32, + 39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,105, + 110,115,116,101,97,100,122,50,100,101,98,117,103,95,111,118, + 101,114,114,105,100,101,32,111,114,32,111,112,116,105,109,105, + 122,97,116,105,111,110,32,109,117,115,116,32,98,101,32,115, + 101,116,32,116,111,32,78,111,110,101,114,12,0,0,0,114, + 6,0,0,0,114,111,0,0,0,250,36,115,121,115,46,105, + 109,112,108,101,109,101,110,116,97,116,105,111,110,46,99,97, + 99,104,101,95,116,97,103,32,105,115,32,78,111,110,101,114, + 1,0,0,0,122,20,32,105,115,32,110,111,116,32,97,108, + 112,104,97,110,117,109,101,114,105,99,114,59,0,0,0,114, + 13,0,0,0,41,26,218,9,95,119,97,114,110,105,110,103, + 115,218,4,119,97,114,110,218,18,68,101,112,114,101,99,97, + 116,105,111,110,87,97,114,110,105,110,103,218,9,84,121,112, + 101,69,114,114,111,114,114,26,0,0,0,218,6,102,115,112, + 97,116,104,114,89,0,0,0,218,10,114,112,97,114,116,105, + 116,105,111,110,114,23,0,0,0,218,14,105,109,112,108,101, + 109,101,110,116,97,116,105,111,110,218,9,99,97,99,104,101, + 95,116,97,103,218,19,78,111,116,73,109,112,108,101,109,101, + 110,116,101,100,69,114,114,111,114,114,72,0,0,0,114,24, + 0,0,0,218,8,111,112,116,105,109,105,122,101,218,3,115, + 116,114,218,7,105,115,97,108,110,117,109,218,10,86,97,108, + 117,101,69,114,114,111,114,218,4,95,79,80,84,218,17,66, + 89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,83, + 218,14,112,121,99,97,99,104,101,95,112,114,101,102,105,120, + 114,113,0,0,0,114,68,0,0,0,114,79,0,0,0,218, + 6,108,115,116,114,105,112,218,8,95,80,89,67,65,67,72, + 69,41,12,114,75,0,0,0,218,14,100,101,98,117,103,95, + 111,118,101,114,114,105,100,101,114,130,0,0,0,218,7,109, + 101,115,115,97,103,101,218,4,104,101,97,100,114,77,0,0, + 0,218,4,98,97,115,101,114,9,0,0,0,218,4,114,101, + 115,116,218,3,116,97,103,218,15,97,108,109,111,115,116,95, + 102,105,108,101,110,97,109,101,218,8,102,105,108,101,110,97, + 109,101,115,12,0,0,0,32,32,32,32,32,32,32,32,32, + 32,32,32,114,10,0,0,0,218,17,99,97,99,104,101,95, + 102,114,111,109,95,115,111,117,114,99,101,114,159,0,0,0, + 253,1,0,0,115,161,1,0,0,128,0,240,36,0,8,22, + 209,7,33,220,8,17,143,14,138,14,240,0,1,24,48,220, + 49,67,244,3,1,9,69,1,224,11,23,209,11,35,216,22, + 74,136,71,220,18,27,152,71,211,18,36,208,12,36,222,29, + 43,145,114,176,17,136,12,220,11,14,143,58,138,58,144,100, + 211,11,27,128,68,220,17,28,152,84,211,17,34,129,74,128, + 68,216,22,26,151,111,145,111,160,99,211,22,42,129,79,128, + 68,136,116,220,10,13,215,10,28,209,10,28,215,10,38,209, + 10,38,128,67,216,7,10,129,123,220,14,33,208,34,72,211, + 14,73,208,8,73,216,22,24,151,103,145,103,174,4,161,4, + 176,36,184,19,208,30,66,211,22,67,128,79,216,7,19,209, + 7,27,220,11,14,143,57,137,57,215,11,29,209,11,29,160, + 17,211,11,34,216,27,29,137,76,228,27,30,159,57,153,57, + 215,27,45,209,27,45,136,76,220,19,22,144,124,211,19,36, + 128,76,216,7,19,144,114,211,7,25,216,15,27,215,15,35, + 209,15,35,215,15,37,209,15,37,220,18,28,160,12,209,31, + 47,208,47,67,208,29,68,211,18,69,208,12,69,216,29,44, + 208,28,45,168,81,172,116,168,102,176,92,176,78,208,26,67, + 136,15,216,15,30,212,33,50,176,49,209,33,53,209,15,53, + 128,72,220,7,10,215,7,25,209,7,25,209,7,37,244,18, + 0,16,29,152,84,211,15,34,136,4,240,12,0,12,16,144, + 1,144,33,136,57,152,3,211,11,27,160,4,160,81,160,113, + 160,9,180,31,211,32,64,216,19,23,152,1,152,2,144,56, 136,68,244,8,0,16,26,220,12,15,215,12,30,209,12,30, 216,12,16,143,75,137,75,156,15,211,12,40,216,12,20,243, 7,4,16,10,240,0,4,9,10,244,10,0,12,22,144,100, - 156,72,160,104,211,11,47,208,4,47,114,28,0,0,0,99, + 156,72,160,104,211,11,47,208,4,47,114,32,0,0,0,99, 1,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, - 3,0,0,0,243,36,3,0,0,151,0,116,0,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,128,11,116, - 7,0,0,0,0,0,0,0,0,100,2,171,1,0,0,0, - 0,0,0,130,1,116,9,0,0,0,0,0,0,0,0,106, - 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,125,0,116, - 13,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,92,2,0,0,125,1,125,2,100,3,125,3,116, - 0,0,0,0,0,0,0,0,0,106,14,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,129,75,116, - 0,0,0,0,0,0,0,0,0,106,14,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,17,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,116,18,0,0,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,125,4,124,1,106,21,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,4,116,22,0, - 0,0,0,0,0,0,0,122,0,0,0,171,1,0,0,0, - 0,0,0,114,16,124,1,116,25,0,0,0,0,0,0,0, - 0,124,4,171,1,0,0,0,0,0,0,100,1,26,0,125, - 1,100,4,125,3,124,3,115,43,116,13,0,0,0,0,0, - 0,0,0,124,1,171,1,0,0,0,0,0,0,92,2,0, - 0,125,1,125,5,124,5,116,26,0,0,0,0,0,0,0, - 0,107,55,0,0,114,20,116,29,0,0,0,0,0,0,0, - 0,116,26,0,0,0,0,0,0,0,0,155,0,100,5,124, - 0,155,2,157,3,171,1,0,0,0,0,0,0,130,1,124, - 2,106,31,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,6,171,1,0,0,0,0,0,0,125, - 6,124,6,100,7,118,1,114,14,116,29,0,0,0,0,0, - 0,0,0,100,8,124,2,155,2,157,2,171,1,0,0,0, - 0,0,0,130,1,124,6,100,9,107,40,0,0,114,109,124, - 2,106,33,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,6,100,10,171,2,0,0,0,0,0, - 0,100,11,25,0,0,0,125,7,124,7,106,21,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116, - 34,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,115,18,116,29,0,0,0,0,0,0,0,0,100,12,116, - 34,0,0,0,0,0,0,0,0,155,2,157,2,171,1,0, - 0,0,0,0,0,130,1,124,7,116,25,0,0,0,0,0, - 0,0,0,116,34,0,0,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,100,1,26,0,125,8,124,8,106,37,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,115,15,116,29,0,0,0, - 0,0,0,0,0,100,13,124,7,155,2,100,14,157,3,171, - 1,0,0,0,0,0,0,130,1,124,2,106,39,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, - 6,171,1,0,0,0,0,0,0,100,15,25,0,0,0,125, - 9,116,41,0,0,0,0,0,0,0,0,124,1,124,9,116, - 42,0,0,0,0,0,0,0,0,100,15,25,0,0,0,122, - 0,0,0,171,2,0,0,0,0,0,0,83,0,41,16,97, - 110,1,0,0,71,105,118,101,110,32,116,104,101,32,112,97, - 116,104,32,116,111,32,97,32,46,112,121,99,46,32,102,105, - 108,101,44,32,114,101,116,117,114,110,32,116,104,101,32,112, - 97,116,104,32,116,111,32,105,116,115,32,46,112,121,32,102, - 105,108,101,46,10,10,32,32,32,32,84,104,101,32,46,112, - 121,99,32,102,105,108,101,32,100,111,101,115,32,110,111,116, - 32,110,101,101,100,32,116,111,32,101,120,105,115,116,59,32, - 116,104,105,115,32,115,105,109,112,108,121,32,114,101,116,117, - 114,110,115,32,116,104,101,32,112,97,116,104,32,116,111,10, - 32,32,32,32,116,104,101,32,46,112,121,32,102,105,108,101, + 3,0,0,0,243,92,3,0,0,149,0,91,0,0,0,0, + 0,0,0,0,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,99,11,0, + 0,91,7,0,0,0,0,0,0,0,0,83,2,53,1,0, + 0,0,0,0,0,101,1,91,8,0,0,0,0,0,0,0, + 0,82,10,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,85,0,53,1,0,0,0,0,0, + 0,110,0,91,13,0,0,0,0,0,0,0,0,85,0,53, + 1,0,0,0,0,0,0,117,2,0,0,112,18,83,3,110, + 3,91,0,0,0,0,0,0,0,0,0,82,14,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98, + 80,0,0,91,0,0,0,0,0,0,0,0,0,82,14,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,82,17,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,91,18,0,0,0,0,0,0,0,0,53, + 1,0,0,0,0,0,0,110,4,85,1,82,21,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 4,91,22,0,0,0,0,0,0,0,0,45,0,0,0,53, + 1,0,0,0,0,0,0,40,0,0,0,0,0,0,0,97, + 16,0,0,85,1,91,25,0,0,0,0,0,0,0,0,85, + 4,53,1,0,0,0,0,0,0,83,1,4,0,110,1,83, + 4,110,3,85,3,40,0,0,0,0,0,0,0,100,44,0, + 0,91,13,0,0,0,0,0,0,0,0,85,1,53,1,0, + 0,0,0,0,0,117,2,0,0,112,21,85,5,91,26,0, + 0,0,0,0,0,0,0,58,119,0,0,97,21,0,0,91, + 29,0,0,0,0,0,0,0,0,91,26,0,0,0,0,0, + 0,0,0,14,0,83,5,85,0,60,2,14,0,51,3,53, + 1,0,0,0,0,0,0,101,1,85,2,82,31,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, + 6,53,1,0,0,0,0,0,0,110,6,85,6,83,7,59, + 1,0,0,97,15,0,0,91,29,0,0,0,0,0,0,0, + 0,83,8,85,2,60,2,14,0,51,2,53,1,0,0,0, + 0,0,0,101,1,85,6,83,9,58,88,0,0,97,121,0, + 0,85,2,82,33,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,83,6,83,10,53,2,0,0,0, + 0,0,0,83,11,5,0,0,0,110,7,85,7,82,21,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,91,34,0,0,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,100,19,0,0,91, + 29,0,0,0,0,0,0,0,0,83,12,91,34,0,0,0, + 0,0,0,0,0,60,2,14,0,51,2,53,1,0,0,0, + 0,0,0,101,1,85,7,91,25,0,0,0,0,0,0,0, + 0,91,34,0,0,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,83,1,4,0,110,8,85,8,82,37,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,100, + 16,0,0,91,29,0,0,0,0,0,0,0,0,83,13,85, + 7,60,2,14,0,83,14,51,3,53,1,0,0,0,0,0, + 0,101,1,85,2,82,39,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,6,53,1,0,0,0, + 0,0,0,83,15,5,0,0,0,110,9,91,41,0,0,0, + 0,0,0,0,0,88,25,91,42,0,0,0,0,0,0,0, + 0,83,15,5,0,0,0,45,0,0,0,53,2,0,0,0, + 0,0,0,36,0,41,16,97,90,1,0,0,71,105,118,101, + 110,32,116,104,101,32,112,97,116,104,32,116,111,32,97,32, + 46,112,121,99,46,32,102,105,108,101,44,32,114,101,116,117, + 114,110,32,116,104,101,32,112,97,116,104,32,116,111,32,105, + 116,115,32,46,112,121,32,102,105,108,101,46,10,10,84,104, + 101,32,46,112,121,99,32,102,105,108,101,32,100,111,101,115, + 32,110,111,116,32,110,101,101,100,32,116,111,32,101,120,105, + 115,116,59,32,116,104,105,115,32,115,105,109,112,108,121,32, + 114,101,116,117,114,110,115,32,116,104,101,32,112,97,116,104, + 32,116,111,10,116,104,101,32,46,112,121,32,102,105,108,101, 32,99,97,108,99,117,108,97,116,101,100,32,116,111,32,99, 111,114,114,101,115,112,111,110,100,32,116,111,32,116,104,101, 32,46,112,121,99,32,102,105,108,101,46,32,32,73,102,32, - 112,97,116,104,32,100,111,101,115,10,32,32,32,32,110,111, - 116,32,99,111,110,102,111,114,109,32,116,111,32,80,69,80, - 32,51,49,52,55,47,52,56,56,32,102,111,114,109,97,116, - 44,32,86,97,108,117,101,69,114,114,111,114,32,119,105,108, - 108,32,98,101,32,114,97,105,115,101,100,46,32,73,102,10, - 32,32,32,32,115,121,115,46,105,109,112,108,101,109,101,110, - 116,97,116,105,111,110,46,99,97,99,104,101,95,116,97,103, - 32,105,115,32,78,111,110,101,32,116,104,101,110,32,78,111, - 116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111, - 114,32,105,115,32,114,97,105,115,101,100,46,10,10,32,32, - 32,32,78,114,126,0,0,0,70,84,122,31,32,110,111,116, - 32,98,111,116,116,111,109,45,108,101,118,101,108,32,100,105, - 114,101,99,116,111,114,121,32,105,110,32,114,103,0,0,0, - 62,2,0,0,0,114,52,0,0,0,233,3,0,0,0,122, - 29,101,120,112,101,99,116,101,100,32,111,110,108,121,32,50, - 32,111,114,32,51,32,100,111,116,115,32,105,110,32,114,155, - 0,0,0,114,52,0,0,0,233,254,255,255,255,122,53,111, - 112,116,105,109,105,122,97,116,105,111,110,32,112,111,114,116, - 105,111,110,32,111,102,32,102,105,108,101,110,97,109,101,32, - 100,111,101,115,32,110,111,116,32,115,116,97,114,116,32,119, - 105,116,104,32,122,19,111,112,116,105,109,105,122,97,116,105, - 111,110,32,108,101,118,101,108,32,122,29,32,105,115,32,110, - 111,116,32,97,110,32,97,108,112,104,97,110,117,109,101,114, - 105,99,32,118,97,108,117,101,114,1,0,0,0,41,22,114, - 20,0,0,0,114,133,0,0,0,114,134,0,0,0,114,135, - 0,0,0,114,23,0,0,0,114,131,0,0,0,114,81,0, - 0,0,114,142,0,0,0,114,60,0,0,0,114,61,0,0, - 0,114,32,0,0,0,114,62,0,0,0,114,7,0,0,0, - 114,144,0,0,0,114,139,0,0,0,218,5,99,111,117,110, - 116,218,6,114,115,112,108,105,116,114,140,0,0,0,114,138, - 0,0,0,218,9,112,97,114,116,105,116,105,111,110,114,72, - 0,0,0,218,15,83,79,85,82,67,69,95,83,85,70,70, - 73,88,69,83,41,10,114,68,0,0,0,114,147,0,0,0, - 218,16,112,121,99,97,99,104,101,95,102,105,108,101,110,97, - 109,101,218,23,102,111,117,110,100,95,105,110,95,112,121,99, - 97,99,104,101,95,112,114,101,102,105,120,218,13,115,116,114, - 105,112,112,101,100,95,112,97,116,104,218,7,112,121,99,97, - 99,104,101,218,9,100,111,116,95,99,111,117,110,116,114,124, - 0,0,0,218,9,111,112,116,95,108,101,118,101,108,218,13, - 98,97,115,101,95,102,105,108,101,110,97,109,101,115,10,0, - 0,0,32,32,32,32,32,32,32,32,32,32,114,10,0,0, - 0,218,17,115,111,117,114,99,101,95,102,114,111,109,95,99, - 97,99,104,101,114,168,0,0,0,44,2,0,0,115,165,1, - 0,0,128,0,244,18,0,8,11,215,7,25,209,7,25,215, - 7,35,209,7,35,208,7,43,220,14,33,208,34,72,211,14, - 73,208,8,73,220,11,14,143,58,137,58,144,100,211,11,27, - 128,68,220,29,40,168,20,211,29,46,209,4,26,128,68,208, - 10,26,216,30,35,208,4,27,220,7,10,215,7,25,209,7, - 25,208,7,37,220,24,27,215,24,42,209,24,42,215,24,49, - 209,24,49,180,47,211,24,66,136,13,216,11,15,143,63,137, - 63,152,61,172,56,209,27,51,212,11,52,216,19,23,156,3, - 152,77,211,24,42,208,24,43,208,19,44,136,68,216,38,42, - 208,12,35,217,11,34,220,24,35,160,68,211,24,41,137,13, - 136,4,136,103,216,11,18,148,104,210,11,30,220,18,28,164, - 8,152,122,208,41,72,216,32,36,152,120,240,3,1,30,41, - 243,0,1,19,42,240,0,1,13,42,224,16,32,215,16,38, - 209,16,38,160,115,211,16,43,128,73,216,7,16,152,6,209, - 7,30,220,14,24,208,27,56,208,57,73,208,56,76,208,25, - 77,211,14,78,208,8,78,216,9,18,144,97,138,30,216,23, - 39,215,23,46,209,23,46,168,115,176,65,211,23,54,176,114, - 209,23,58,136,12,216,15,27,215,15,38,209,15,38,164,116, - 212,15,44,220,18,28,240,0,1,30,37,220,37,41,160,72, - 240,3,1,30,46,243,0,1,19,47,240,0,1,13,47,224, - 20,32,164,19,164,84,163,25,160,26,208,20,44,136,9,216, - 15,24,215,15,32,209,15,32,212,15,34,220,18,28,208,31, - 50,176,60,208,50,66,240,0,1,67,1,50,240,0,1,30, - 50,243,0,1,19,51,240,0,1,13,51,224,20,36,215,20, - 46,209,20,46,168,115,211,20,51,176,65,209,20,54,128,77, - 220,11,21,144,100,152,77,172,79,184,65,209,44,62,209,28, - 62,211,11,63,208,4,63,114,28,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,232,0,0,0,151,0,116,1,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,100,1,107,40, - 0,0,114,1,121,2,124,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,3,171,1, - 0,0,0,0,0,0,92,3,0,0,125,1,125,2,125,3, - 124,1,114,22,124,3,106,5,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,100,4,100,5,26,0,100,6,107,55,0,0,114,2, - 124,0,83,0,9,0,116,7,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,125,4,116,13,0,0, - 0,0,0,0,0,0,124,4,171,1,0,0,0,0,0,0, - 114,2,124,4,83,0,124,0,83,0,35,0,116,8,0,0, - 0,0,0,0,0,0,116,10,0,0,0,0,0,0,0,0, - 102,2,36,0,114,8,1,0,124,0,100,2,100,5,26,0, - 125,4,89,0,140,37,119,0,120,3,89,0,119,1,41,7, - 122,188,67,111,110,118,101,114,116,32,97,32,98,121,116,101, - 99,111,100,101,32,102,105,108,101,32,112,97,116,104,32,116, - 111,32,97,32,115,111,117,114,99,101,32,112,97,116,104,32, - 40,105,102,32,112,111,115,115,105,98,108,101,41,46,10,10, - 32,32,32,32,84,104,105,115,32,102,117,110,99,116,105,111, - 110,32,101,120,105,115,116,115,32,112,117,114,101,108,121,32, - 102,111,114,32,98,97,99,107,119,97,114,100,115,45,99,111, - 109,112,97,116,105,98,105,108,105,116,121,32,102,111,114,10, - 32,32,32,32,80,121,73,109,112,111,114,116,95,69,120,101, - 99,67,111,100,101,77,111,100,117,108,101,87,105,116,104,70, - 105,108,101,110,97,109,101,115,40,41,32,105,110,32,116,104, - 101,32,67,32,65,80,73,46,10,10,32,32,32,32,114,1, - 0,0,0,78,114,103,0,0,0,233,253,255,255,255,233,255, - 255,255,255,218,2,112,121,41,7,114,7,0,0,0,114,132, - 0,0,0,218,5,108,111,119,101,114,114,168,0,0,0,114, - 135,0,0,0,114,139,0,0,0,114,93,0,0,0,41,5, - 218,13,98,121,116,101,99,111,100,101,95,112,97,116,104,114, - 149,0,0,0,218,1,95,218,9,101,120,116,101,110,115,105, - 111,110,218,11,115,111,117,114,99,101,95,112,97,116,104,115, - 5,0,0,0,32,32,32,32,32,114,10,0,0,0,218,15, - 95,103,101,116,95,115,111,117,114,99,101,102,105,108,101,114, - 178,0,0,0,84,2,0,0,115,142,0,0,0,128,0,244, - 14,0,8,11,136,61,211,7,25,152,81,210,7,30,216,15, - 19,216,25,38,215,25,49,209,25,49,176,35,211,25,54,209, - 4,22,128,68,136,33,136,89,217,11,15,144,57,151,63,145, - 63,211,19,36,160,82,168,2,208,19,43,168,116,210,19,51, + 112,97,116,104,32,100,111,101,115,10,110,111,116,32,99,111, + 110,102,111,114,109,32,116,111,32,80,69,80,32,51,49,52, + 55,47,52,56,56,32,102,111,114,109,97,116,44,32,86,97, + 108,117,101,69,114,114,111,114,32,119,105,108,108,32,98,101, + 32,114,97,105,115,101,100,46,32,73,102,10,115,121,115,46, + 105,109,112,108,101,109,101,110,116,97,116,105,111,110,46,99, + 97,99,104,101,95,116,97,103,32,105,115,32,78,111,110,101, + 32,116,104,101,110,32,78,111,116,73,109,112,108,101,109,101, + 110,116,101,100,69,114,114,111,114,32,105,115,32,114,97,105, + 115,101,100,46,10,10,78,114,132,0,0,0,70,84,122,31, + 32,110,111,116,32,98,111,116,116,111,109,45,108,101,118,101, + 108,32,100,105,114,101,99,116,111,114,121,32,105,110,32,114, + 111,0,0,0,62,2,0,0,0,114,59,0,0,0,233,3, + 0,0,0,122,29,101,120,112,101,99,116,101,100,32,111,110, + 108,121,32,50,32,111,114,32,51,32,100,111,116,115,32,105, + 110,32,114,161,0,0,0,114,59,0,0,0,233,254,255,255, + 255,122,53,111,112,116,105,109,105,122,97,116,105,111,110,32, + 112,111,114,116,105,111,110,32,111,102,32,102,105,108,101,110, + 97,109,101,32,100,111,101,115,32,110,111,116,32,115,116,97, + 114,116,32,119,105,116,104,32,122,19,111,112,116,105,109,105, + 122,97,116,105,111,110,32,108,101,118,101,108,32,122,29,32, + 105,115,32,110,111,116,32,97,110,32,97,108,112,104,97,110, + 117,109,101,114,105,99,32,118,97,108,117,101,114,1,0,0, + 0,41,22,114,23,0,0,0,114,139,0,0,0,114,140,0, + 0,0,114,141,0,0,0,114,26,0,0,0,114,137,0,0, + 0,114,89,0,0,0,114,148,0,0,0,114,67,0,0,0, + 114,68,0,0,0,114,36,0,0,0,114,69,0,0,0,114, + 7,0,0,0,114,150,0,0,0,114,145,0,0,0,218,5, + 99,111,117,110,116,218,6,114,115,112,108,105,116,114,146,0, + 0,0,114,144,0,0,0,218,9,112,97,114,116,105,116,105, + 111,110,114,79,0,0,0,218,15,83,79,85,82,67,69,95, + 83,85,70,70,73,88,69,83,41,10,114,75,0,0,0,114, + 153,0,0,0,218,16,112,121,99,97,99,104,101,95,102,105, + 108,101,110,97,109,101,218,23,102,111,117,110,100,95,105,110, + 95,112,121,99,97,99,104,101,95,112,114,101,102,105,120,218, + 13,115,116,114,105,112,112,101,100,95,112,97,116,104,218,7, + 112,121,99,97,99,104,101,218,9,100,111,116,95,99,111,117, + 110,116,114,130,0,0,0,218,9,111,112,116,95,108,101,118, + 101,108,218,13,98,97,115,101,95,102,105,108,101,110,97,109, + 101,115,10,0,0,0,32,32,32,32,32,32,32,32,32,32, + 114,10,0,0,0,218,17,115,111,117,114,99,101,95,102,114, + 111,109,95,99,97,99,104,101,114,174,0,0,0,68,2,0, + 0,115,167,1,0,0,128,0,244,18,0,8,11,215,7,25, + 209,7,25,215,7,35,209,7,35,209,7,43,220,14,33,208, + 34,72,211,14,73,208,8,73,220,11,14,143,58,138,58,144, + 100,211,11,27,128,68,220,29,40,168,20,211,29,46,209,4, + 26,128,68,216,30,35,208,4,27,220,7,10,215,7,25,209, + 7,25,209,7,37,220,24,27,215,24,42,209,24,42,215,24, + 49,209,24,49,180,47,211,24,66,136,13,216,11,15,143,63, + 137,63,152,61,172,56,209,27,51,215,11,52,209,11,52,216, + 19,23,156,3,152,77,211,24,42,208,24,43,208,19,44,136, + 68,216,38,42,208,12,35,222,11,34,220,24,35,160,68,211, + 24,41,137,13,136,4,216,11,18,148,104,211,11,30,220,18, + 28,164,8,152,122,208,41,72,216,32,36,153,120,240,3,1, + 30,41,243,0,1,19,42,240,0,1,13,42,224,16,32,215, + 16,38,209,16,38,160,115,211,16,43,128,73,216,7,16,152, + 6,211,7,30,220,14,24,208,27,56,208,57,73,209,56,76, + 208,25,77,211,14,78,208,8,78,216,9,18,144,97,139,30, + 216,23,39,215,23,46,209,23,46,168,115,176,65,211,23,54, + 176,114,209,23,58,136,12,216,15,27,215,15,38,209,15,38, + 164,116,215,15,44,209,15,44,220,18,28,240,0,1,30,37, + 220,37,41,161,72,240,3,1,30,46,243,0,1,19,47,240, + 0,1,13,47,224,20,32,164,19,164,84,163,25,160,26,208, + 20,44,136,9,216,15,24,215,15,32,209,15,32,215,15,34, + 209,15,34,220,18,28,208,31,50,176,60,209,50,66,240,0, + 1,67,1,50,240,0,1,30,50,243,0,1,19,51,240,0, + 1,13,51,224,20,36,215,20,46,209,20,46,168,115,211,20, + 51,176,65,209,20,54,128,77,220,11,21,144,100,172,79,184, + 65,209,44,62,209,28,62,211,11,63,208,4,63,114,32,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,243,0,1,0,0,149,0,91,1, + 0,0,0,0,0,0,0,0,85,0,53,1,0,0,0,0, + 0,0,83,1,58,88,0,0,97,1,0,0,103,2,85,0, + 82,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,3,53,1,0,0,0,0,0,0,117,3, + 0,0,112,18,110,3,85,1,40,0,0,0,0,0,0,0, + 97,23,0,0,85,3,82,5,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,83,4,83,5,4,0,83,6,58,119,0,0,97,2, + 0,0,85,0,36,0,30,0,91,7,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,110,4,91,13, + 0,0,0,0,0,0,0,0,85,4,53,1,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,97,2,0,0,85,4, + 36,0,85,0,36,0,33,0,91,8,0,0,0,0,0,0, + 0,0,91,10,0,0,0,0,0,0,0,0,52,2,7,0, + 97,8,0,0,32,0,85,0,83,2,83,5,4,0,110,4, + 31,0,78,43,102,0,61,3,31,0,102,1,41,7,122,176, + 67,111,110,118,101,114,116,32,97,32,98,121,116,101,99,111, + 100,101,32,102,105,108,101,32,112,97,116,104,32,116,111,32, + 97,32,115,111,117,114,99,101,32,112,97,116,104,32,40,105, + 102,32,112,111,115,115,105,98,108,101,41,46,10,10,84,104, + 105,115,32,102,117,110,99,116,105,111,110,32,101,120,105,115, + 116,115,32,112,117,114,101,108,121,32,102,111,114,32,98,97, + 99,107,119,97,114,100,115,45,99,111,109,112,97,116,105,98, + 105,108,105,116,121,32,102,111,114,10,80,121,73,109,112,111, + 114,116,95,69,120,101,99,67,111,100,101,77,111,100,117,108, + 101,87,105,116,104,70,105,108,101,110,97,109,101,115,40,41, + 32,105,110,32,116,104,101,32,67,32,65,80,73,46,10,10, + 114,1,0,0,0,78,114,111,0,0,0,233,253,255,255,255, + 233,255,255,255,255,218,2,112,121,41,7,114,7,0,0,0, + 114,138,0,0,0,218,5,108,111,119,101,114,114,174,0,0, + 0,114,141,0,0,0,114,145,0,0,0,114,101,0,0,0, + 41,5,218,13,98,121,116,101,99,111,100,101,95,112,97,116, + 104,114,155,0,0,0,218,1,95,218,9,101,120,116,101,110, + 115,105,111,110,218,11,115,111,117,114,99,101,95,112,97,116, + 104,115,5,0,0,0,32,32,32,32,32,114,10,0,0,0, + 218,15,95,103,101,116,95,115,111,117,114,99,101,102,105,108, + 101,114,184,0,0,0,108,2,0,0,115,143,0,0,0,128, + 0,244,14,0,8,11,136,61,211,7,25,152,81,211,7,30, + 216,15,19,216,25,38,215,25,49,209,25,49,176,35,211,25, + 54,209,4,22,128,68,136,89,222,11,15,144,57,151,63,145, + 63,211,19,36,160,82,168,2,208,19,43,168,116,211,19,51, 216,15,28,208,8,28,240,2,3,5,41,220,22,39,168,13, - 211,22,54,136,11,244,6,0,27,39,160,123,212,26,51,136, - 59,208,4,70,184,29,208,4,70,248,244,5,0,13,32,164, - 26,208,11,44,242,0,1,5,41,216,22,35,160,67,160,82, - 208,22,40,138,11,240,3,1,5,41,250,115,18,0,0,0, - 193,0,11,65,26,0,193,26,20,65,49,3,193,48,1,65, - 49,3,99,1,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,3,0,0,0,243,182,0,0,0,151,0,124,0, - 106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,116,3,0,0,0,0,0,0,0,0,116,4, - 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,114,12,9,0,116,7,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 83,0,124,0,106,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,3,0,0,0,0,0,0, - 0,0,116,10,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,114,2,124,0, - 83,0,121,0,35,0,116,8,0,0,0,0,0,0,0,0, - 36,0,114,3,1,0,89,0,121,0,119,0,120,3,89,0, - 119,1,114,77,0,0,0,41,6,114,59,0,0,0,218,5, - 116,117,112,108,101,114,160,0,0,0,114,153,0,0,0,114, - 135,0,0,0,114,141,0,0,0,41,1,114,152,0,0,0, - 115,1,0,0,0,32,114,10,0,0,0,218,11,95,103,101, - 116,95,99,97,99,104,101,100,114,181,0,0,0,103,2,0, - 0,115,87,0,0,0,128,0,216,7,15,215,7,24,209,7, - 24,156,21,156,127,211,25,47,212,7,48,240,2,3,9,17, - 220,19,36,160,88,211,19,46,208,12,46,240,6,0,10,18, - 215,9,26,209,9,26,156,53,212,33,50,211,27,51,212,9, - 52,216,15,23,136,15,224,15,19,248,244,11,0,16,35,242, - 0,1,9,17,217,12,16,240,3,1,9,17,250,115,17,0, - 0,0,160,10,65,12,0,193,12,9,65,24,3,193,23,1, - 65,24,3,99,1,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,94,0,0,0,151,0,9, - 0,116,1,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,125,1,124,1,100,2,122, - 20,0,0,125,1,124,1,83,0,35,0,116,4,0,0,0, - 0,0,0,0,0,36,0,114,5,1,0,100,1,125,1,89, - 0,140,20,119,0,120,3,89,0,119,1,41,3,122,51,67, - 97,108,99,117,108,97,116,101,32,116,104,101,32,109,111,100, - 101,32,112,101,114,109,105,115,115,105,111,110,115,32,102,111, - 114,32,97,32,98,121,116,101,99,111,100,101,32,102,105,108, - 101,46,114,107,0,0,0,233,128,0,0,0,41,3,114,85, - 0,0,0,114,88,0,0,0,114,87,0,0,0,41,2,114, - 68,0,0,0,114,89,0,0,0,115,2,0,0,0,32,32, - 114,10,0,0,0,218,10,95,99,97,108,99,95,109,111,100, - 101,114,184,0,0,0,115,2,0,0,115,61,0,0,0,128, - 0,240,4,3,5,21,220,15,25,152,36,211,15,31,215,15, - 39,209,15,39,136,4,240,10,0,5,9,136,69,129,77,128, - 68,216,11,15,128,75,248,244,11,0,12,19,242,0,1,5, - 21,216,15,20,138,4,240,3,1,5,21,250,115,12,0,0, - 0,130,21,30,0,158,11,44,3,171,1,44,3,99,1,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,243,90,0,0,0,135,0,151,0,100,3,136,0,102, - 1,100,1,132,9,125,1,116,0,0,0,0,0,0,0,0, - 0,129,17,116,0,0,0,0,0,0,0,0,0,106,2,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,125,2,110,3,100,2,132,0,125,2,2,0,124,2,124, - 1,137,0,171,2,0,0,0,0,0,0,1,0,124,1,83, - 0,41,4,122,252,68,101,99,111,114,97,116,111,114,32,116, - 111,32,118,101,114,105,102,121,32,116,104,97,116,32,116,104, - 101,32,109,111,100,117,108,101,32,98,101,105,110,103,32,114, - 101,113,117,101,115,116,101,100,32,109,97,116,99,104,101,115, - 32,116,104,101,32,111,110,101,32,116,104,101,10,32,32,32, - 32,108,111,97,100,101,114,32,99,97,110,32,104,97,110,100, - 108,101,46,10,10,32,32,32,32,84,104,101,32,102,105,114, - 115,116,32,97,114,103,117,109,101,110,116,32,40,115,101,108, - 102,41,32,109,117,115,116,32,100,101,102,105,110,101,32,95, - 110,97,109,101,32,119,104,105,99,104,32,116,104,101,32,115, - 101,99,111,110,100,32,97,114,103,117,109,101,110,116,32,105, - 115,10,32,32,32,32,99,111,109,112,97,114,101,100,32,97, - 103,97,105,110,115,116,46,32,73,102,32,116,104,101,32,99, - 111,109,112,97,114,105,115,111,110,32,102,97,105,108,115,32, - 116,104,101,110,32,73,109,112,111,114,116,69,114,114,111,114, - 32,105,115,32,114,97,105,115,101,100,46,10,10,32,32,32, - 32,99,2,0,0,0,0,0,0,0,0,0,0,0,6,0, - 0,0,31,0,0,0,243,148,0,0,0,149,1,151,0,124, - 1,128,13,124,0,106,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,125,1,110,44,124,0,106, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,1,107,55,0,0,114,29,116,3,0,0,0, - 0,0,0,0,0,100,1,124,0,106,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,155,1,100, - 2,124,1,155,1,157,4,124,1,172,3,171,2,0,0,0, - 0,0,0,130,1,2,0,137,4,124,0,124,1,103,2,124, - 2,162,1,173,6,105,0,124,3,164,1,142,1,83,0,41, - 4,78,122,11,108,111,97,100,101,114,32,102,111,114,32,122, - 15,32,99,97,110,110,111,116,32,104,97,110,100,108,101,32, - 169,1,218,4,110,97,109,101,41,2,114,188,0,0,0,218, - 11,73,109,112,111,114,116,69,114,114,111,114,41,5,218,4, - 115,101,108,102,114,188,0,0,0,218,4,97,114,103,115,218, - 6,107,119,97,114,103,115,218,6,109,101,116,104,111,100,115, - 5,0,0,0,32,32,32,32,128,114,10,0,0,0,218,19, - 95,99,104,101,99,107,95,110,97,109,101,95,119,114,97,112, - 112,101,114,122,40,95,99,104,101,99,107,95,110,97,109,101, - 46,60,108,111,99,97,108,115,62,46,95,99,104,101,99,107, - 95,110,97,109,101,95,119,114,97,112,112,101,114,135,2,0, - 0,115,82,0,0,0,248,128,0,216,11,15,136,60,216,19, - 23,151,57,145,57,137,68,216,13,17,143,89,137,89,152,36, - 210,13,30,221,18,29,216,33,37,167,25,163,25,169,68,240, - 3,1,31,50,216,56,60,244,3,1,19,62,240,0,1,13, - 62,225,15,21,144,100,152,68,208,15,50,160,52,210,15,50, - 168,54,209,15,50,208,8,50,114,28,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,9,0,0,0,19,0, - 0,0,243,164,0,0,0,151,0,100,1,68,0,93,38,0, - 0,125,2,116,1,0,0,0,0,0,0,0,0,124,1,124, - 2,171,2,0,0,0,0,0,0,115,1,140,16,116,3,0, - 0,0,0,0,0,0,0,124,0,124,2,116,5,0,0,0, - 0,0,0,0,0,124,1,124,2,171,2,0,0,0,0,0, - 0,171,3,0,0,0,0,0,0,1,0,140,40,4,0,124, - 0,106,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,106,9,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,106,6,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,1,0,121,0,41,2,78,41,4, - 218,10,95,95,109,111,100,117,108,101,95,95,218,8,95,95, - 110,97,109,101,95,95,218,12,95,95,113,117,97,108,110,97, - 109,101,95,95,218,7,95,95,100,111,99,95,95,41,5,218, - 7,104,97,115,97,116,116,114,218,7,115,101,116,97,116,116, - 114,218,7,103,101,116,97,116,116,114,218,8,95,95,100,105, - 99,116,95,95,218,6,117,112,100,97,116,101,41,3,218,3, - 110,101,119,218,3,111,108,100,114,99,0,0,0,115,3,0, - 0,0,32,32,32,114,10,0,0,0,218,5,95,119,114,97, - 112,122,26,95,99,104,101,99,107,95,110,97,109,101,46,60, - 108,111,99,97,108,115,62,46,95,119,114,97,112,148,2,0, - 0,115,66,0,0,0,128,0,219,27,80,144,7,220,19,26, - 152,51,160,7,213,19,40,220,20,27,152,67,160,23,172,39, - 176,35,176,119,211,42,63,213,20,64,240,5,0,28,81,1, - 240,6,0,13,16,143,76,137,76,215,12,31,209,12,31,160, - 3,167,12,161,12,213,12,45,114,28,0,0,0,114,77,0, - 0,0,41,2,218,10,95,98,111,111,116,115,116,114,97,112, - 114,207,0,0,0,41,3,114,193,0,0,0,114,194,0,0, - 0,114,207,0,0,0,115,3,0,0,0,96,32,32,114,10, - 0,0,0,218,11,95,99,104,101,99,107,95,110,97,109,101, - 114,209,0,0,0,127,2,0,0,115,51,0,0,0,248,128, - 0,245,16,6,5,51,244,20,0,8,18,208,7,29,220,16, - 26,215,16,32,209,16,32,137,5,242,4,4,9,46,241,12, - 0,5,10,208,10,29,152,118,212,4,38,216,11,30,208,4, - 30,114,28,0,0,0,99,3,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,243,44,1,0,0, - 151,0,124,0,100,1,100,2,26,0,125,3,124,3,116,0, - 0,0,0,0,0,0,0,0,107,55,0,0,114,42,100,3, - 124,1,155,2,100,4,124,3,155,2,157,4,125,4,116,2, - 0,0,0,0,0,0,0,0,106,5,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,5,124,4, - 171,2,0,0,0,0,0,0,1,0,116,7,0,0,0,0, - 0,0,0,0,124,4,102,1,105,0,124,2,164,1,142,1, - 130,1,116,9,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,100,6,107,2,0,0,114,38,100,7, - 124,1,155,2,157,2,125,4,116,2,0,0,0,0,0,0, - 0,0,106,5,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,5,124,4,171,2,0,0,0,0, - 0,0,1,0,116,11,0,0,0,0,0,0,0,0,124,4, - 171,1,0,0,0,0,0,0,130,1,116,13,0,0,0,0, - 0,0,0,0,124,0,100,2,100,8,26,0,171,1,0,0, - 0,0,0,0,125,5,124,5,100,9,122,1,0,0,114,20, - 100,10,124,5,155,2,100,11,124,1,155,2,157,4,125,4, - 116,7,0,0,0,0,0,0,0,0,124,4,102,1,105,0, - 124,2,164,1,142,1,130,1,124,5,83,0,41,12,97,84, - 2,0,0,80,101,114,102,111,114,109,32,98,97,115,105,99, - 32,118,97,108,105,100,105,116,121,32,99,104,101,99,107,105, - 110,103,32,111,102,32,97,32,112,121,99,32,104,101,97,100, - 101,114,32,97,110,100,32,114,101,116,117,114,110,32,116,104, - 101,32,102,108,97,103,115,32,102,105,101,108,100,44,10,32, - 32,32,32,119,104,105,99,104,32,100,101,116,101,114,109,105, + 211,22,54,136,11,244,6,0,27,39,160,123,215,26,51,209, + 26,51,136,59,208,4,70,184,29,208,4,70,248,244,5,0, + 13,32,164,26,208,11,44,243,0,1,5,41,216,22,35,160, + 67,160,82,208,22,40,138,11,240,3,1,5,41,250,115,18, + 0,0,0,193,6,11,65,37,0,193,37,21,65,61,3,193, + 60,1,65,61,3,99,1,0,0,0,0,0,0,0,0,0, + 0,0,5,0,0,0,3,0,0,0,243,204,0,0,0,149, + 0,85,0,82,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,91,3,0,0,0,0,0,0,0, + 0,91,4,0,0,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,53,1,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,97,12,0,0,30,0,91,7,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,36,0,85, + 0,82,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,91,3,0,0,0,0,0,0,0,0,91, + 10,0,0,0,0,0,0,0,0,53,1,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,2,0,0,85,0,36,0,103,0,33,0,91,8,0, + 0,0,0,0,0,0,0,7,0,97,3,0,0,32,0,31, + 0,103,0,102,0,61,3,31,0,102,1,114,84,0,0,0, + 41,6,114,66,0,0,0,218,5,116,117,112,108,101,114,166, + 0,0,0,114,159,0,0,0,114,141,0,0,0,114,147,0, + 0,0,41,1,114,158,0,0,0,115,1,0,0,0,32,114, + 10,0,0,0,218,11,95,103,101,116,95,99,97,99,104,101, + 100,114,187,0,0,0,127,2,0,0,115,93,0,0,0,128, + 0,216,7,15,215,7,24,209,7,24,156,21,156,127,211,25, + 47,215,7,48,209,7,48,240,2,3,9,17,220,19,36,160, + 88,211,19,46,208,12,46,240,6,0,10,18,215,9,26,209, + 9,26,156,53,212,33,50,211,27,51,215,9,52,209,9,52, + 216,15,23,136,15,224,15,19,248,244,11,0,16,35,243,0, + 1,9,17,217,12,16,240,3,1,9,17,250,115,17,0,0, + 0,165,10,65,22,0,193,22,10,65,35,3,193,34,1,65, + 35,3,99,1,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,243,96,0,0,0,149,0,30,0, + 91,1,0,0,0,0,0,0,0,0,85,0,53,1,0,0, + 0,0,0,0,82,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,110,1,85,1,83,2,45,20, + 0,0,110,1,85,1,36,0,33,0,91,4,0,0,0,0, + 0,0,0,0,7,0,97,5,0,0,32,0,83,1,110,1, + 31,0,78,21,102,0,61,3,31,0,102,1,41,3,122,51, + 67,97,108,99,117,108,97,116,101,32,116,104,101,32,109,111, + 100,101,32,112,101,114,109,105,115,115,105,111,110,115,32,102, + 111,114,32,97,32,98,121,116,101,99,111,100,101,32,102,105, + 108,101,46,114,115,0,0,0,233,128,0,0,0,41,3,114, + 93,0,0,0,114,96,0,0,0,114,95,0,0,0,41,2, + 114,75,0,0,0,114,97,0,0,0,115,2,0,0,0,32, + 32,114,10,0,0,0,218,10,95,99,97,108,99,95,109,111, + 100,101,114,190,0,0,0,139,2,0,0,115,61,0,0,0, + 128,0,240,4,3,5,21,220,15,25,152,36,211,15,31,215, + 15,39,209,15,39,136,4,240,10,0,5,9,136,69,129,77, + 128,68,216,11,15,128,75,248,244,11,0,12,19,243,0,1, + 5,21,216,15,20,138,4,240,3,1,5,21,250,115,12,0, + 0,0,130,21,30,0,158,12,45,3,172,1,45,3,99,1, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,96,0,0,0,94,0,149,0,83,3,85,0, + 52,1,83,1,26,0,106,8,106,1,110,1,91,0,0,0, + 0,0,0,0,0,0,98,17,0,0,91,0,0,0,0,0, + 0,0,0,0,82,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,110,2,79,3,83,2,26,0, + 110,2,85,2,34,0,85,1,84,0,53,2,0,0,0,0, + 0,0,32,0,85,1,36,0,41,4,122,236,68,101,99,111, + 114,97,116,111,114,32,116,111,32,118,101,114,105,102,121,32, + 116,104,97,116,32,116,104,101,32,109,111,100,117,108,101,32, + 98,101,105,110,103,32,114,101,113,117,101,115,116,101,100,32, + 109,97,116,99,104,101,115,32,116,104,101,32,111,110,101,32, + 116,104,101,10,108,111,97,100,101,114,32,99,97,110,32,104, + 97,110,100,108,101,46,10,10,84,104,101,32,102,105,114,115, + 116,32,97,114,103,117,109,101,110,116,32,40,115,101,108,102, + 41,32,109,117,115,116,32,100,101,102,105,110,101,32,95,110, + 97,109,101,32,119,104,105,99,104,32,116,104,101,32,115,101, + 99,111,110,100,32,97,114,103,117,109,101,110,116,32,105,115, + 10,99,111,109,112,97,114,101,100,32,97,103,97,105,110,115, + 116,46,32,73,102,32,116,104,101,32,99,111,109,112,97,114, + 105,115,111,110,32,102,97,105,108,115,32,116,104,101,110,32, + 73,109,112,111,114,116,69,114,114,111,114,32,105,115,32,114, + 97,105,115,101,100,46,10,10,99,2,0,0,0,0,0,0, + 0,0,0,0,0,6,0,0,0,31,0,0,0,243,148,0, + 0,0,62,1,149,0,85,1,99,13,0,0,85,0,82,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,110,1,79,44,85,0,82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,1,58,119, + 0,0,97,28,0,0,91,3,0,0,0,0,0,0,0,0, + 83,1,85,0,82,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,60,1,14,0,83,2,85,1, + 60,1,14,0,51,4,85,1,83,3,57,2,101,1,84,4, + 34,0,88,1,47,2,85,2,81,1,55,6,48,0,85,3, + 68,1,54,1,36,0,41,4,78,122,11,108,111,97,100,101, + 114,32,102,111,114,32,122,15,32,99,97,110,110,111,116,32, + 104,97,110,100,108,101,32,169,1,218,4,110,97,109,101,41, + 2,114,194,0,0,0,218,11,73,109,112,111,114,116,69,114, + 114,111,114,41,5,218,4,115,101,108,102,114,194,0,0,0, + 218,4,97,114,103,115,218,6,107,119,97,114,103,115,218,6, + 109,101,116,104,111,100,115,5,0,0,0,32,32,32,32,128, + 114,10,0,0,0,218,19,95,99,104,101,99,107,95,110,97, + 109,101,95,119,114,97,112,112,101,114,218,40,95,99,104,101, + 99,107,95,110,97,109,101,46,60,108,111,99,97,108,115,62, + 46,95,99,104,101,99,107,95,110,97,109,101,95,119,114,97, + 112,112,101,114,159,2,0,0,115,80,0,0,0,248,128,0, + 216,11,15,137,60,216,19,23,151,57,145,57,137,68,216,13, + 17,143,89,137,89,152,36,211,13,30,221,18,29,216,33,37, + 167,25,164,25,170,68,240,3,1,31,50,216,56,60,241,3, + 1,19,62,240,0,1,13,62,225,15,21,144,100,208,15,50, + 160,52,210,15,50,168,54,209,15,50,208,8,50,114,32,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,9, + 0,0,0,19,0,0,0,243,174,0,0,0,149,0,83,1, + 19,0,72,42,0,0,110,2,91,1,0,0,0,0,0,0, + 0,0,88,18,53,2,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,100,2,0,0,77,21,0,0,91,3,0,0, + 0,0,0,0,0,0,88,2,91,5,0,0,0,0,0,0, + 0,0,88,18,53,2,0,0,0,0,0,0,53,3,0,0, + 0,0,0,0,32,0,77,44,0,0,11,0,32,0,85,0, + 82,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,82,9,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,1,82,6,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,32,0,103,0,41,2,78,41,4,218, + 10,95,95,109,111,100,117,108,101,95,95,218,8,95,95,110, + 97,109,101,95,95,218,12,95,95,113,117,97,108,110,97,109, + 101,95,95,218,7,95,95,100,111,99,95,95,41,5,218,7, + 104,97,115,97,116,116,114,218,7,115,101,116,97,116,116,114, + 218,7,103,101,116,97,116,116,114,218,8,95,95,100,105,99, + 116,95,95,218,6,117,112,100,97,116,101,41,3,218,3,110, + 101,119,218,3,111,108,100,114,107,0,0,0,115,3,0,0, + 0,32,32,32,114,10,0,0,0,218,5,95,119,114,97,112, + 218,26,95,99,104,101,99,107,95,110,97,109,101,46,60,108, + 111,99,97,108,115,62,46,95,119,114,97,112,172,2,0,0, + 115,63,0,0,0,128,0,219,27,80,144,7,220,19,26,152, + 51,215,19,40,211,19,40,220,20,27,152,67,172,39,176,35, + 211,42,63,214,20,64,241,5,0,28,81,1,240,6,0,13, + 16,143,76,137,76,215,12,31,209,12,31,160,3,167,12,161, + 12,213,12,45,114,32,0,0,0,114,84,0,0,0,41,2, + 218,10,95,98,111,111,116,115,116,114,97,112,114,214,0,0, + 0,41,3,114,199,0,0,0,114,200,0,0,0,114,214,0, + 0,0,115,3,0,0,0,96,32,32,114,10,0,0,0,218, + 11,95,99,104,101,99,107,95,110,97,109,101,114,217,0,0, + 0,151,2,0,0,115,51,0,0,0,248,128,0,247,16,6, + 5,51,244,20,0,8,18,209,7,29,220,16,26,215,16,32, + 209,16,32,137,5,242,4,4,9,46,241,12,0,5,10,208, + 10,29,152,118,212,4,38,216,11,30,208,4,30,114,32,0, + 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,5, + 0,0,0,3,0,0,0,243,68,1,0,0,149,0,85,0, + 83,1,83,2,4,0,110,3,85,3,91,0,0,0,0,0, + 0,0,0,0,58,119,0,0,97,44,0,0,83,3,85,1, + 60,2,14,0,83,4,85,3,60,2,14,0,51,4,110,4, + 91,2,0,0,0,0,0,0,0,0,82,5,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,5, + 85,4,53,2,0,0,0,0,0,0,32,0,91,7,0,0, + 0,0,0,0,0,0,85,4,52,1,48,0,85,2,68,1, + 54,1,101,1,91,9,0,0,0,0,0,0,0,0,85,0, + 53,1,0,0,0,0,0,0,83,6,58,18,0,0,97,39, + 0,0,83,7,85,1,60,2,14,0,51,2,110,4,91,2, + 0,0,0,0,0,0,0,0,82,5,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,5,85,4, + 53,2,0,0,0,0,0,0,32,0,91,11,0,0,0,0, + 0,0,0,0,85,4,53,1,0,0,0,0,0,0,101,1, + 91,13,0,0,0,0,0,0,0,0,85,0,83,2,83,8, + 4,0,53,1,0,0,0,0,0,0,110,5,85,5,83,9, + 45,1,0,0,40,0,0,0,0,0,0,0,97,22,0,0, + 83,10,85,5,60,2,14,0,83,11,85,1,60,2,14,0, + 51,4,110,4,91,7,0,0,0,0,0,0,0,0,85,4, + 52,1,48,0,85,2,68,1,54,1,101,1,85,5,36,0, + 41,12,97,48,2,0,0,80,101,114,102,111,114,109,32,98, + 97,115,105,99,32,118,97,108,105,100,105,116,121,32,99,104, + 101,99,107,105,110,103,32,111,102,32,97,32,112,121,99,32, + 104,101,97,100,101,114,32,97,110,100,32,114,101,116,117,114, + 110,32,116,104,101,32,102,108,97,103,115,32,102,105,101,108, + 100,44,10,119,104,105,99,104,32,100,101,116,101,114,109,105, 110,101,115,32,104,111,119,32,116,104,101,32,112,121,99,32, 115,104,111,117,108,100,32,98,101,32,102,117,114,116,104,101, 114,32,118,97,108,105,100,97,116,101,100,32,97,103,97,105, 110,115,116,32,116,104,101,32,115,111,117,114,99,101,46,10, - 10,32,32,32,32,42,100,97,116,97,42,32,105,115,32,116, - 104,101,32,99,111,110,116,101,110,116,115,32,111,102,32,116, - 104,101,32,112,121,99,32,102,105,108,101,46,32,40,79,110, - 108,121,32,116,104,101,32,102,105,114,115,116,32,49,54,32, - 98,121,116,101,115,32,97,114,101,10,32,32,32,32,114,101, - 113,117,105,114,101,100,44,32,116,104,111,117,103,104,46,41, - 10,10,32,32,32,32,42,110,97,109,101,42,32,105,115,32, - 116,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32, - 109,111,100,117,108,101,32,98,101,105,110,103,32,105,109,112, - 111,114,116,101,100,46,32,73,116,32,105,115,32,117,115,101, - 100,32,102,111,114,32,108,111,103,103,105,110,103,46,10,10, - 32,32,32,32,42,101,120,99,95,100,101,116,97,105,108,115, + 10,42,100,97,116,97,42,32,105,115,32,116,104,101,32,99, + 111,110,116,101,110,116,115,32,111,102,32,116,104,101,32,112, + 121,99,32,102,105,108,101,46,32,40,79,110,108,121,32,116, + 104,101,32,102,105,114,115,116,32,49,54,32,98,121,116,101, + 115,32,97,114,101,10,114,101,113,117,105,114,101,100,44,32, + 116,104,111,117,103,104,46,41,10,10,42,110,97,109,101,42, + 32,105,115,32,116,104,101,32,110,97,109,101,32,111,102,32, + 116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,103, + 32,105,109,112,111,114,116,101,100,46,32,73,116,32,105,115, + 32,117,115,101,100,32,102,111,114,32,108,111,103,103,105,110, + 103,46,10,10,42,101,120,99,95,100,101,116,97,105,108,115, 42,32,105,115,32,97,32,100,105,99,116,105,111,110,97,114, 121,32,112,97,115,115,101,100,32,116,111,32,73,109,112,111, 114,116,69,114,114,111,114,32,105,102,32,105,116,32,114,97, - 105,115,101,100,32,102,111,114,10,32,32,32,32,105,109,112, - 114,111,118,101,100,32,100,101,98,117,103,103,105,110,103,46, - 10,10,32,32,32,32,73,109,112,111,114,116,69,114,114,111, - 114,32,105,115,32,114,97,105,115,101,100,32,119,104,101,110, - 32,116,104,101,32,109,97,103,105,99,32,110,117,109,98,101, - 114,32,105,115,32,105,110,99,111,114,114,101,99,116,32,111, - 114,32,119,104,101,110,32,116,104,101,32,102,108,97,103,115, - 10,32,32,32,32,102,105,101,108,100,32,105,115,32,105,110, - 118,97,108,105,100,46,32,69,79,70,69,114,114,111,114,32, - 105,115,32,114,97,105,115,101,100,32,119,104,101,110,32,116, - 104,101,32,100,97,116,97,32,105,115,32,102,111,117,110,100, - 32,116,111,32,98,101,32,116,114,117,110,99,97,116,101,100, - 46,10,10,32,32,32,32,78,114,38,0,0,0,122,20,98, + 105,115,101,100,32,102,111,114,10,105,109,112,114,111,118,101, + 100,32,100,101,98,117,103,103,105,110,103,46,10,10,73,109, + 112,111,114,116,69,114,114,111,114,32,105,115,32,114,97,105, + 115,101,100,32,119,104,101,110,32,116,104,101,32,109,97,103, + 105,99,32,110,117,109,98,101,114,32,105,115,32,105,110,99, + 111,114,114,101,99,116,32,111,114,32,119,104,101,110,32,116, + 104,101,32,102,108,97,103,115,10,102,105,101,108,100,32,105, + 115,32,105,110,118,97,108,105,100,46,32,69,79,70,69,114, + 114,111,114,32,105,115,32,114,97,105,115,101,100,32,119,104, + 101,110,32,116,104,101,32,100,97,116,97,32,105,115,32,102, + 111,117,110,100,32,116,111,32,98,101,32,116,114,117,110,99, + 97,116,101,100,46,10,10,78,114,42,0,0,0,122,20,98, 97,100,32,109,97,103,105,99,32,110,117,109,98,101,114,32, 105,110,32,122,2,58,32,250,2,123,125,233,16,0,0,0, 122,40,114,101,97,99,104,101,100,32,69,79,70,32,119,104, 105,108,101,32,114,101,97,100,105,110,103,32,112,121,99,32, - 104,101,97,100,101,114,32,111,102,32,233,8,0,0,0,233, + 104,101,97,100,101,114,32,111,102,32,114,49,0,0,0,233, 252,255,255,255,122,14,105,110,118,97,108,105,100,32,102,108, 97,103,115,32,122,4,32,105,110,32,41,7,218,12,77,65, - 71,73,67,95,78,85,77,66,69,82,114,208,0,0,0,218, + 71,73,67,95,78,85,77,66,69,82,114,216,0,0,0,218, 16,95,118,101,114,98,111,115,101,95,109,101,115,115,97,103, - 101,114,189,0,0,0,114,7,0,0,0,218,8,69,79,70, - 69,114,114,111,114,114,49,0,0,0,41,6,114,48,0,0, - 0,114,188,0,0,0,218,11,101,120,99,95,100,101,116,97, - 105,108,115,218,5,109,97,103,105,99,114,146,0,0,0,114, - 21,0,0,0,115,6,0,0,0,32,32,32,32,32,32,114, + 101,114,195,0,0,0,114,7,0,0,0,218,8,69,79,70, + 69,114,114,111,114,114,57,0,0,0,41,6,114,53,0,0, + 0,114,194,0,0,0,218,11,101,120,99,95,100,101,116,97, + 105,108,115,218,5,109,97,103,105,99,114,152,0,0,0,114, + 24,0,0,0,115,6,0,0,0,32,32,32,32,32,32,114, 10,0,0,0,218,13,95,99,108,97,115,115,105,102,121,95, - 112,121,99,114,220,0,0,0,158,2,0,0,115,185,0,0, + 112,121,99,114,227,0,0,0,182,2,0,0,115,185,0,0, 0,128,0,240,32,0,13,17,144,18,144,33,136,72,128,69, - 216,7,12,148,12,210,7,28,216,20,40,168,20,168,8,176, - 2,176,53,176,41,208,18,60,136,7,220,8,18,215,8,35, + 216,7,12,148,12,211,7,28,216,20,40,168,20,169,8,176, + 2,176,53,177,41,208,18,60,136,7,220,8,18,215,8,35, 209,8,35,160,68,168,39,212,8,50,220,14,25,152,39,209, 14,49,160,91,209,14,49,208,8,49,220,7,10,136,52,131, - 121,144,50,130,126,216,20,60,184,84,184,72,208,18,69,136, + 121,144,50,131,126,216,20,60,184,84,185,72,208,18,69,136, 7,220,8,18,215,8,35,209,8,35,160,68,168,39,212,8, 50,220,14,22,144,119,211,14,31,208,8,31,220,12,26,152, 52,160,1,160,33,152,57,211,12,37,128,69,224,7,12,136, - 117,130,125,216,20,34,160,53,160,41,168,52,176,4,168,120, + 117,135,125,216,20,34,160,53,161,41,168,52,176,4,169,120, 208,18,56,136,7,220,14,25,152,39,209,14,49,160,91,209, - 14,49,208,8,49,216,11,16,128,76,114,28,0,0,0,99, + 14,49,208,8,49,216,11,16,128,76,114,32,0,0,0,99, 5,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 3,0,0,0,243,198,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,100,1,100,2,26,0,171,1,0, - 0,0,0,0,0,124,1,100,3,122,1,0,0,107,55,0, - 0,114,39,100,4,124,3,155,2,157,2,125,5,116,2,0, - 0,0,0,0,0,0,0,106,5,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,5,124,5,171, - 2,0,0,0,0,0,0,1,0,116,7,0,0,0,0,0, - 0,0,0,124,5,102,1,105,0,124,4,164,1,142,1,130, - 1,124,2,129,36,116,1,0,0,0,0,0,0,0,0,124, - 0,100,2,100,7,26,0,171,1,0,0,0,0,0,0,124, - 2,100,3,122,1,0,0,107,55,0,0,114,15,116,7,0, - 0,0,0,0,0,0,0,100,4,124,3,155,2,157,2,102, - 1,105,0,124,4,164,1,142,1,130,1,121,6,121,6,41, - 8,97,7,2,0,0,86,97,108,105,100,97,116,101,32,97, - 32,112,121,99,32,97,103,97,105,110,115,116,32,116,104,101, - 32,115,111,117,114,99,101,32,108,97,115,116,45,109,111,100, - 105,102,105,101,100,32,116,105,109,101,46,10,10,32,32,32, - 32,42,100,97,116,97,42,32,105,115,32,116,104,101,32,99, - 111,110,116,101,110,116,115,32,111,102,32,116,104,101,32,112, - 121,99,32,102,105,108,101,46,32,40,79,110,108,121,32,116, - 104,101,32,102,105,114,115,116,32,49,54,32,98,121,116,101, - 115,32,97,114,101,10,32,32,32,32,114,101,113,117,105,114, - 101,100,46,41,10,10,32,32,32,32,42,115,111,117,114,99, - 101,95,109,116,105,109,101,42,32,105,115,32,116,104,101,32, - 108,97,115,116,32,109,111,100,105,102,105,101,100,32,116,105, - 109,101,115,116,97,109,112,32,111,102,32,116,104,101,32,115, - 111,117,114,99,101,32,102,105,108,101,46,10,10,32,32,32, - 32,42,115,111,117,114,99,101,95,115,105,122,101,42,32,105, - 115,32,78,111,110,101,32,111,114,32,116,104,101,32,115,105, - 122,101,32,111,102,32,116,104,101,32,115,111,117,114,99,101, - 32,102,105,108,101,32,105,110,32,98,121,116,101,115,46,10, - 10,32,32,32,32,42,110,97,109,101,42,32,105,115,32,116, - 104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,109, - 111,100,117,108,101,32,98,101,105,110,103,32,105,109,112,111, - 114,116,101,100,46,32,73,116,32,105,115,32,117,115,101,100, - 32,102,111,114,32,108,111,103,103,105,110,103,46,10,10,32, - 32,32,32,42,101,120,99,95,100,101,116,97,105,108,115,42, - 32,105,115,32,97,32,100,105,99,116,105,111,110,97,114,121, - 32,112,97,115,115,101,100,32,116,111,32,73,109,112,111,114, - 116,69,114,114,111,114,32,105,102,32,105,116,32,114,97,105, - 115,101,100,32,102,111,114,10,32,32,32,32,105,109,112,114, - 111,118,101,100,32,100,101,98,117,103,103,105,110,103,46,10, - 10,32,32,32,32,65,110,32,73,109,112,111,114,116,69,114, - 114,111,114,32,105,115,32,114,97,105,115,101,100,32,105,102, - 32,116,104,101,32,98,121,116,101,99,111,100,101,32,105,115, - 32,115,116,97,108,101,46,10,10,32,32,32,32,114,213,0, - 0,0,233,12,0,0,0,114,37,0,0,0,122,22,98,121, - 116,101,99,111,100,101,32,105,115,32,115,116,97,108,101,32, - 102,111,114,32,114,211,0,0,0,78,114,212,0,0,0,41, - 4,114,49,0,0,0,114,208,0,0,0,114,216,0,0,0, - 114,189,0,0,0,41,6,114,48,0,0,0,218,12,115,111, - 117,114,99,101,95,109,116,105,109,101,218,11,115,111,117,114, - 99,101,95,115,105,122,101,114,188,0,0,0,114,218,0,0, - 0,114,146,0,0,0,115,6,0,0,0,32,32,32,32,32, - 32,114,10,0,0,0,218,23,95,118,97,108,105,100,97,116, - 101,95,116,105,109,101,115,116,97,109,112,95,112,121,99,114, - 225,0,0,0,191,2,0,0,115,137,0,0,0,128,0,244, - 38,0,8,22,144,100,152,49,152,82,144,106,211,7,33,160, - 108,176,90,209,38,63,210,7,64,216,20,42,168,52,168,40, - 208,18,51,136,7,220,8,18,215,8,35,209,8,35,160,68, - 168,39,212,8,50,220,14,25,152,39,209,14,49,160,91,209, - 14,49,208,8,49,216,8,19,208,8,31,220,8,22,144,116, - 152,66,152,114,144,123,211,8,35,168,11,176,106,209,40,64, - 210,8,65,220,14,25,208,28,50,176,52,176,40,208,26,59, - 209,14,75,184,123,209,14,75,208,8,75,240,3,0,9,66, - 1,240,3,0,9,32,114,28,0,0,0,99,4,0,0,0, - 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, - 243,50,0,0,0,151,0,124,0,100,1,100,2,26,0,124, - 1,107,55,0,0,114,15,116,1,0,0,0,0,0,0,0, - 0,100,3,124,2,155,2,157,2,102,1,105,0,124,3,164, - 1,142,1,130,1,121,4,41,5,97,243,1,0,0,86,97, - 108,105,100,97,116,101,32,97,32,104,97,115,104,45,98,97, - 115,101,100,32,112,121,99,32,98,121,32,99,104,101,99,107, - 105,110,103,32,116,104,101,32,114,101,97,108,32,115,111,117, - 114,99,101,32,104,97,115,104,32,97,103,97,105,110,115,116, - 32,116,104,101,32,111,110,101,32,105,110,10,32,32,32,32, - 116,104,101,32,112,121,99,32,104,101,97,100,101,114,46,10, - 10,32,32,32,32,42,100,97,116,97,42,32,105,115,32,116, - 104,101,32,99,111,110,116,101,110,116,115,32,111,102,32,116, - 104,101,32,112,121,99,32,102,105,108,101,46,32,40,79,110, - 108,121,32,116,104,101,32,102,105,114,115,116,32,49,54,32, - 98,121,116,101,115,32,97,114,101,10,32,32,32,32,114,101, - 113,117,105,114,101,100,46,41,10,10,32,32,32,32,42,115, - 111,117,114,99,101,95,104,97,115,104,42,32,105,115,32,116, - 104,101,32,105,109,112,111,114,116,108,105,98,46,117,116,105, - 108,46,115,111,117,114,99,101,95,104,97,115,104,40,41,32, - 111,102,32,116,104,101,32,115,111,117,114,99,101,32,102,105, - 108,101,46,10,10,32,32,32,32,42,110,97,109,101,42,32, - 105,115,32,116,104,101,32,110,97,109,101,32,111,102,32,116, - 104,101,32,109,111,100,117,108,101,32,98,101,105,110,103,32, - 105,109,112,111,114,116,101,100,46,32,73,116,32,105,115,32, - 117,115,101,100,32,102,111,114,32,108,111,103,103,105,110,103, - 46,10,10,32,32,32,32,42,101,120,99,95,100,101,116,97, - 105,108,115,42,32,105,115,32,97,32,100,105,99,116,105,111, - 110,97,114,121,32,112,97,115,115,101,100,32,116,111,32,73, - 109,112,111,114,116,69,114,114,111,114,32,105,102,32,105,116, - 32,114,97,105,115,101,100,32,102,111,114,10,32,32,32,32, - 105,109,112,114,111,118,101,100,32,100,101,98,117,103,103,105, - 110,103,46,10,10,32,32,32,32,65,110,32,73,109,112,111, - 114,116,69,114,114,111,114,32,105,115,32,114,97,105,115,101, - 100,32,105,102,32,116,104,101,32,98,121,116,101,99,111,100, - 101,32,105,115,32,115,116,97,108,101,46,10,10,32,32,32, - 32,114,213,0,0,0,114,212,0,0,0,122,46,104,97,115, - 104,32,105,110,32,98,121,116,101,99,111,100,101,32,100,111, - 101,115,110,39,116,32,109,97,116,99,104,32,104,97,115,104, - 32,111,102,32,115,111,117,114,99,101,32,78,41,1,114,189, - 0,0,0,41,4,114,48,0,0,0,218,11,115,111,117,114, - 99,101,95,104,97,115,104,114,188,0,0,0,114,218,0,0, - 0,115,4,0,0,0,32,32,32,32,114,10,0,0,0,218, - 18,95,118,97,108,105,100,97,116,101,95,104,97,115,104,95, - 112,121,99,114,228,0,0,0,219,2,0,0,115,54,0,0, - 0,128,0,240,34,0,8,12,136,65,136,98,128,122,144,91, - 210,7,32,220,14,25,216,14,61,184,100,184,88,208,12,70, - 241,3,3,15,10,224,14,25,241,5,3,15,10,240,0,3, - 9,10,240,3,0,8,33,114,28,0,0,0,99,4,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, - 0,243,206,0,0,0,151,0,116,1,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 125,4,116,5,0,0,0,0,0,0,0,0,124,4,116,6, - 0,0,0,0,0,0,0,0,171,2,0,0,0,0,0,0, - 114,48,116,8,0,0,0,0,0,0,0,0,106,11,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,1,124,2,171,2,0,0,0,0,0,0,1,0,124,3, - 129,22,116,13,0,0,0,0,0,0,0,0,106,14,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,4,124,3,171,2,0,0,0,0,0,0,1,0,124,4, - 83,0,116,17,0,0,0,0,0,0,0,0,100,2,124,2, - 155,2,157,2,124,1,124,2,172,3,171,3,0,0,0,0, - 0,0,130,1,41,4,122,35,67,111,109,112,105,108,101,32, - 98,121,116,101,99,111,100,101,32,97,115,32,102,111,117,110, - 100,32,105,110,32,97,32,112,121,99,46,122,21,99,111,100, - 101,32,111,98,106,101,99,116,32,102,114,111,109,32,123,33, - 114,125,122,19,78,111,110,45,99,111,100,101,32,111,98,106, - 101,99,116,32,105,110,32,169,2,114,188,0,0,0,114,68, - 0,0,0,41,9,218,7,109,97,114,115,104,97,108,218,5, - 108,111,97,100,115,218,10,105,115,105,110,115,116,97,110,99, - 101,218,10,95,99,111,100,101,95,116,121,112,101,114,208,0, - 0,0,114,216,0,0,0,218,4,95,105,109,112,218,16,95, - 102,105,120,95,99,111,95,102,105,108,101,110,97,109,101,114, - 189,0,0,0,41,5,114,48,0,0,0,114,188,0,0,0, - 114,174,0,0,0,114,177,0,0,0,218,4,99,111,100,101, - 115,5,0,0,0,32,32,32,32,32,114,10,0,0,0,218, - 17,95,99,111,109,112,105,108,101,95,98,121,116,101,99,111, - 100,101,114,238,0,0,0,243,2,0,0,115,99,0,0,0, - 128,0,228,11,18,143,61,137,61,152,20,211,11,30,128,68, - 220,7,17,144,36,156,10,212,7,35,220,8,18,215,8,35, - 209,8,35,208,36,59,184,93,212,8,75,216,11,22,208,11, - 34,220,12,16,215,12,33,209,12,33,160,36,168,11,212,12, - 52,216,15,19,136,11,228,14,25,208,28,47,176,13,208,47, - 64,208,26,65,216,31,35,168,45,244,3,1,15,57,240,0, - 1,9,57,114,28,0,0,0,99,3,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,3,0,0,0,243,8,1, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,116,2, - 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 125,3,124,3,106,5,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,7,0,0,0,0,0,0, - 0,0,100,1,171,1,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,1,0,124,3,106,5,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,7,0,0, - 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,1,0,124,3,106,5,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,7,0,0,0,0,0,0,0,0,124,2,171,1,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,1,0,124,3, - 106,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,116,9,0,0,0,0,0,0,0,0,106,10, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,1,0,124,3,83,0,41,2,122,43,80,114, - 111,100,117,99,101,32,116,104,101,32,100,97,116,97,32,102, - 111,114,32,97,32,116,105,109,101,115,116,97,109,112,45,98, - 97,115,101,100,32,112,121,99,46,114,1,0,0,0,41,6, - 218,9,98,121,116,101,97,114,114,97,121,114,215,0,0,0, - 218,6,101,120,116,101,110,100,114,43,0,0,0,114,231,0, - 0,0,218,5,100,117,109,112,115,41,4,114,237,0,0,0, - 218,5,109,116,105,109,101,114,224,0,0,0,114,48,0,0, - 0,115,4,0,0,0,32,32,32,32,114,10,0,0,0,218, - 22,95,99,111,100,101,95,116,111,95,116,105,109,101,115,116, - 97,109,112,95,112,121,99,114,244,0,0,0,0,3,0,0, - 115,88,0,0,0,128,0,228,11,20,148,92,211,11,34,128, - 68,216,4,8,135,75,129,75,148,12,152,81,147,15,212,4, - 32,216,4,8,135,75,129,75,148,12,152,85,211,16,35,212, - 4,36,216,4,8,135,75,129,75,148,12,152,91,211,16,41, - 212,4,42,216,4,8,135,75,129,75,148,7,151,13,145,13, - 152,100,211,16,35,212,4,36,216,11,15,128,75,114,28,0, - 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,3,0,0,0,243,242,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,116,2,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,125,3,100,1,124,2, - 100,1,122,3,0,0,122,7,0,0,125,4,124,3,106,5, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,7,0,0,0,0,0,0,0,0,124,4,171,1, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,1,0, - 116,9,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,100,2,107,40,0,0,115,2,74,0,130,1, - 124,3,106,5,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 1,0,124,3,106,5,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,11,0,0,0,0,0,0, - 0,0,106,12,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,1,0,124,3,83,0,41,3, - 122,38,80,114,111,100,117,99,101,32,116,104,101,32,100,97, - 116,97,32,102,111,114,32,97,32,104,97,115,104,45,98,97, - 115,101,100,32,112,121,99,46,114,6,0,0,0,114,213,0, - 0,0,41,7,114,240,0,0,0,114,215,0,0,0,114,241, - 0,0,0,114,43,0,0,0,114,7,0,0,0,114,231,0, - 0,0,114,242,0,0,0,41,5,114,237,0,0,0,114,227, - 0,0,0,218,7,99,104,101,99,107,101,100,114,48,0,0, - 0,114,21,0,0,0,115,5,0,0,0,32,32,32,32,32, - 114,10,0,0,0,218,17,95,99,111,100,101,95,116,111,95, - 104,97,115,104,95,112,121,99,114,247,0,0,0,10,3,0, - 0,115,100,0,0,0,128,0,228,11,20,148,92,211,11,34, - 128,68,216,12,15,144,39,152,81,145,44,209,12,30,128,69, + 3,0,0,0,243,208,0,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,85,0,83,1,83,2,4,0,53,1,0, + 0,0,0,0,0,85,1,83,3,45,1,0,0,58,119,0, + 0,97,40,0,0,83,4,85,3,60,2,14,0,51,2,110, + 5,91,2,0,0,0,0,0,0,0,0,82,5,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, + 5,85,5,53,2,0,0,0,0,0,0,32,0,91,7,0, + 0,0,0,0,0,0,0,85,5,52,1,48,0,85,4,68, + 1,54,1,101,1,85,2,98,38,0,0,91,1,0,0,0, + 0,0,0,0,0,85,0,83,2,83,7,4,0,53,1,0, + 0,0,0,0,0,85,2,83,3,45,1,0,0,58,119,0, + 0,97,16,0,0,91,7,0,0,0,0,0,0,0,0,83, + 4,85,3,60,2,14,0,51,2,52,1,48,0,85,4,68, + 1,54,1,101,1,103,6,103,6,41,8,97,227,1,0,0, + 86,97,108,105,100,97,116,101,32,97,32,112,121,99,32,97, + 103,97,105,110,115,116,32,116,104,101,32,115,111,117,114,99, + 101,32,108,97,115,116,45,109,111,100,105,102,105,101,100,32, + 116,105,109,101,46,10,10,42,100,97,116,97,42,32,105,115, + 32,116,104,101,32,99,111,110,116,101,110,116,115,32,111,102, + 32,116,104,101,32,112,121,99,32,102,105,108,101,46,32,40, + 79,110,108,121,32,116,104,101,32,102,105,114,115,116,32,49, + 54,32,98,121,116,101,115,32,97,114,101,10,114,101,113,117, + 105,114,101,100,46,41,10,10,42,115,111,117,114,99,101,95, + 109,116,105,109,101,42,32,105,115,32,116,104,101,32,108,97, + 115,116,32,109,111,100,105,102,105,101,100,32,116,105,109,101, + 115,116,97,109,112,32,111,102,32,116,104,101,32,115,111,117, + 114,99,101,32,102,105,108,101,46,10,10,42,115,111,117,114, + 99,101,95,115,105,122,101,42,32,105,115,32,78,111,110,101, + 32,111,114,32,116,104,101,32,115,105,122,101,32,111,102,32, + 116,104,101,32,115,111,117,114,99,101,32,102,105,108,101,32, + 105,110,32,98,121,116,101,115,46,10,10,42,110,97,109,101, + 42,32,105,115,32,116,104,101,32,110,97,109,101,32,111,102, + 32,116,104,101,32,109,111,100,117,108,101,32,98,101,105,110, + 103,32,105,109,112,111,114,116,101,100,46,32,73,116,32,105, + 115,32,117,115,101,100,32,102,111,114,32,108,111,103,103,105, + 110,103,46,10,10,42,101,120,99,95,100,101,116,97,105,108, + 115,42,32,105,115,32,97,32,100,105,99,116,105,111,110,97, + 114,121,32,112,97,115,115,101,100,32,116,111,32,73,109,112, + 111,114,116,69,114,114,111,114,32,105,102,32,105,116,32,114, + 97,105,115,101,100,32,102,111,114,10,105,109,112,114,111,118, + 101,100,32,100,101,98,117,103,103,105,110,103,46,10,10,65, + 110,32,73,109,112,111,114,116,69,114,114,111,114,32,105,115, + 32,114,97,105,115,101,100,32,105,102,32,116,104,101,32,98, + 121,116,101,99,111,100,101,32,105,115,32,115,116,97,108,101, + 46,10,10,114,49,0,0,0,233,12,0,0,0,114,41,0, + 0,0,122,22,98,121,116,101,99,111,100,101,32,105,115,32, + 115,116,97,108,101,32,102,111,114,32,114,219,0,0,0,78, + 114,220,0,0,0,41,4,114,57,0,0,0,114,216,0,0, + 0,114,223,0,0,0,114,195,0,0,0,41,6,114,53,0, + 0,0,218,12,115,111,117,114,99,101,95,109,116,105,109,101, + 218,11,115,111,117,114,99,101,95,115,105,122,101,114,194,0, + 0,0,114,225,0,0,0,114,152,0,0,0,115,6,0,0, + 0,32,32,32,32,32,32,114,10,0,0,0,218,23,95,118, + 97,108,105,100,97,116,101,95,116,105,109,101,115,116,97,109, + 112,95,112,121,99,114,232,0,0,0,215,2,0,0,115,137, + 0,0,0,128,0,244,38,0,8,22,144,100,152,49,152,82, + 144,106,211,7,33,160,108,176,90,209,38,63,211,7,64,216, + 20,42,168,52,169,40,208,18,51,136,7,220,8,18,215,8, + 35,209,8,35,160,68,168,39,212,8,50,220,14,25,152,39, + 209,14,49,160,91,209,14,49,208,8,49,216,8,19,209,8, + 31,220,8,22,144,116,152,66,152,114,144,123,211,8,35,168, + 11,176,106,209,40,64,211,8,65,220,14,25,208,28,50,176, + 52,177,40,208,26,59,209,14,75,184,123,209,14,75,208,8, + 75,240,3,0,9,66,1,240,3,0,9,32,114,32,0,0, + 0,99,4,0,0,0,0,0,0,0,0,0,0,0,5,0, + 0,0,3,0,0,0,243,54,0,0,0,149,0,85,0,83, + 1,83,2,4,0,85,1,58,119,0,0,97,16,0,0,91, + 1,0,0,0,0,0,0,0,0,83,3,85,2,60,2,14, + 0,51,2,52,1,48,0,85,3,68,1,54,1,101,1,103, + 4,41,5,97,207,1,0,0,86,97,108,105,100,97,116,101, + 32,97,32,104,97,115,104,45,98,97,115,101,100,32,112,121, + 99,32,98,121,32,99,104,101,99,107,105,110,103,32,116,104, + 101,32,114,101,97,108,32,115,111,117,114,99,101,32,104,97, + 115,104,32,97,103,97,105,110,115,116,32,116,104,101,32,111, + 110,101,32,105,110,10,116,104,101,32,112,121,99,32,104,101, + 97,100,101,114,46,10,10,42,100,97,116,97,42,32,105,115, + 32,116,104,101,32,99,111,110,116,101,110,116,115,32,111,102, + 32,116,104,101,32,112,121,99,32,102,105,108,101,46,32,40, + 79,110,108,121,32,116,104,101,32,102,105,114,115,116,32,49, + 54,32,98,121,116,101,115,32,97,114,101,10,114,101,113,117, + 105,114,101,100,46,41,10,10,42,115,111,117,114,99,101,95, + 104,97,115,104,42,32,105,115,32,116,104,101,32,105,109,112, + 111,114,116,108,105,98,46,117,116,105,108,46,115,111,117,114, + 99,101,95,104,97,115,104,40,41,32,111,102,32,116,104,101, + 32,115,111,117,114,99,101,32,102,105,108,101,46,10,10,42, + 110,97,109,101,42,32,105,115,32,116,104,101,32,110,97,109, + 101,32,111,102,32,116,104,101,32,109,111,100,117,108,101,32, + 98,101,105,110,103,32,105,109,112,111,114,116,101,100,46,32, + 73,116,32,105,115,32,117,115,101,100,32,102,111,114,32,108, + 111,103,103,105,110,103,46,10,10,42,101,120,99,95,100,101, + 116,97,105,108,115,42,32,105,115,32,97,32,100,105,99,116, + 105,111,110,97,114,121,32,112,97,115,115,101,100,32,116,111, + 32,73,109,112,111,114,116,69,114,114,111,114,32,105,102,32, + 105,116,32,114,97,105,115,101,100,32,102,111,114,10,105,109, + 112,114,111,118,101,100,32,100,101,98,117,103,103,105,110,103, + 46,10,10,65,110,32,73,109,112,111,114,116,69,114,114,111, + 114,32,105,115,32,114,97,105,115,101,100,32,105,102,32,116, + 104,101,32,98,121,116,101,99,111,100,101,32,105,115,32,115, + 116,97,108,101,46,10,10,114,49,0,0,0,114,220,0,0, + 0,122,46,104,97,115,104,32,105,110,32,98,121,116,101,99, + 111,100,101,32,100,111,101,115,110,39,116,32,109,97,116,99, + 104,32,104,97,115,104,32,111,102,32,115,111,117,114,99,101, + 32,78,41,1,114,195,0,0,0,41,4,114,53,0,0,0, + 218,11,115,111,117,114,99,101,95,104,97,115,104,114,194,0, + 0,0,114,225,0,0,0,115,4,0,0,0,32,32,32,32, + 114,10,0,0,0,218,18,95,118,97,108,105,100,97,116,101, + 95,104,97,115,104,95,112,121,99,114,235,0,0,0,243,2, + 0,0,115,54,0,0,0,128,0,240,34,0,8,12,136,65, + 136,98,128,122,144,91,211,7,32,220,14,25,216,14,61,184, + 100,185,88,208,12,70,241,3,3,15,10,224,14,25,241,5, + 3,15,10,240,0,3,9,10,240,3,0,8,33,114,32,0, + 0,0,99,4,0,0,0,0,0,0,0,0,0,0,0,6, + 0,0,0,3,0,0,0,243,214,0,0,0,149,0,91,0, + 0,0,0,0,0,0,0,0,82,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,85,0, + 53,1,0,0,0,0,0,0,110,4,91,5,0,0,0,0, + 0,0,0,0,85,4,91,6,0,0,0,0,0,0,0,0, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 97,49,0,0,91,8,0,0,0,0,0,0,0,0,82,11, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,1,85,2,53,2,0,0,0,0,0,0,32,0, + 85,3,98,22,0,0,91,12,0,0,0,0,0,0,0,0, + 82,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,34,0,88,67,53,2,0,0,0,0,0,0, + 32,0,85,4,36,0,91,17,0,0,0,0,0,0,0,0, + 83,2,85,2,60,2,14,0,51,2,88,18,83,3,57,3, + 101,1,41,4,122,35,67,111,109,112,105,108,101,32,98,121, + 116,101,99,111,100,101,32,97,115,32,102,111,117,110,100,32, + 105,110,32,97,32,112,121,99,46,122,21,99,111,100,101,32, + 111,98,106,101,99,116,32,102,114,111,109,32,123,33,114,125, + 122,19,78,111,110,45,99,111,100,101,32,111,98,106,101,99, + 116,32,105,110,32,169,2,114,194,0,0,0,114,75,0,0, + 0,41,9,218,7,109,97,114,115,104,97,108,218,5,108,111, + 97,100,115,218,10,105,115,105,110,115,116,97,110,99,101,218, + 10,95,99,111,100,101,95,116,121,112,101,114,216,0,0,0, + 114,223,0,0,0,218,4,95,105,109,112,218,16,95,102,105, + 120,95,99,111,95,102,105,108,101,110,97,109,101,114,195,0, + 0,0,41,5,114,53,0,0,0,114,194,0,0,0,114,180, + 0,0,0,114,183,0,0,0,218,4,99,111,100,101,115,5, + 0,0,0,32,32,32,32,32,114,10,0,0,0,218,17,95, + 99,111,109,112,105,108,101,95,98,121,116,101,99,111,100,101, + 114,245,0,0,0,11,3,0,0,115,98,0,0,0,128,0, + 228,11,18,143,61,138,61,152,20,211,11,30,128,68,220,7, + 17,144,36,156,10,215,7,35,209,7,35,220,8,18,215,8, + 35,209,8,35,208,36,59,184,93,212,8,75,216,11,22,209, + 11,34,220,12,16,215,12,33,210,12,33,160,36,212,12,52, + 216,15,19,136,11,228,14,25,208,28,47,176,13,209,47,64, + 208,26,65,216,31,35,241,3,1,15,57,240,0,1,9,57, + 114,32,0,0,0,99,3,0,0,0,0,0,0,0,0,0, + 0,0,5,0,0,0,3,0,0,0,243,10,1,0,0,149, + 0,91,1,0,0,0,0,0,0,0,0,91,2,0,0,0, + 0,0,0,0,0,53,1,0,0,0,0,0,0,110,3,85, + 3,82,5,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,91,7,0,0,0,0,0,0,0,0,83, + 1,53,1,0,0,0,0,0,0,53,1,0,0,0,0,0, + 0,32,0,85,3,82,5,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,91,7,0,0,0,0,0, + 0,0,0,85,1,53,1,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,32,0,85,3,82,5,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,91,7,0, + 0,0,0,0,0,0,0,85,2,53,1,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,32,0,85,3,82,5,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,91,8,0,0,0,0,0,0,0,0,82,10,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,85,0,53,1,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,32,0,85,3,36,0,41,2,122,43,80,114,111, + 100,117,99,101,32,116,104,101,32,100,97,116,97,32,102,111, + 114,32,97,32,116,105,109,101,115,116,97,109,112,45,98,97, + 115,101,100,32,112,121,99,46,114,1,0,0,0,41,6,218, + 9,98,121,116,101,97,114,114,97,121,114,222,0,0,0,218, + 6,101,120,116,101,110,100,114,47,0,0,0,114,238,0,0, + 0,218,5,100,117,109,112,115,41,4,114,244,0,0,0,218, + 5,109,116,105,109,101,114,231,0,0,0,114,53,0,0,0, + 115,4,0,0,0,32,32,32,32,114,10,0,0,0,218,22, + 95,99,111,100,101,95,116,111,95,116,105,109,101,115,116,97, + 109,112,95,112,121,99,114,251,0,0,0,24,3,0,0,115, + 88,0,0,0,128,0,228,11,20,148,92,211,11,34,128,68, + 216,4,8,135,75,129,75,148,12,152,81,147,15,212,4,32, 216,4,8,135,75,129,75,148,12,152,85,211,16,35,212,4, - 36,220,11,14,136,123,211,11,27,152,113,210,11,32,208,4, - 32,208,11,32,216,4,8,135,75,129,75,144,11,212,4,28, - 216,4,8,135,75,129,75,148,7,151,13,145,13,152,100,211, - 16,35,212,4,36,216,11,15,128,75,114,28,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, - 3,0,0,0,243,220,0,0,0,151,0,100,1,100,2,108, - 0,125,1,116,3,0,0,0,0,0,0,0,0,106,4,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,106,6,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125, - 2,124,1,106,9,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,2,171,1,0,0,0,0,0, - 0,125,3,116,3,0,0,0,0,0,0,0,0,106,10,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,2,100,3,171,2,0,0,0,0,0,0,125,4,124, - 4,106,13,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,106,13,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,3,100,1,25, - 0,0,0,171,1,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,83,0,41,4,122,121,68,101,99,111,100,101,32, - 98,121,116,101,115,32,114,101,112,114,101,115,101,110,116,105, - 110,103,32,115,111,117,114,99,101,32,99,111,100,101,32,97, - 110,100,32,114,101,116,117,114,110,32,116,104,101,32,115,116, - 114,105,110,103,46,10,10,32,32,32,32,85,110,105,118,101, - 114,115,97,108,32,110,101,119,108,105,110,101,32,115,117,112, - 112,111,114,116,32,105,115,32,117,115,101,100,32,105,110,32, - 116,104,101,32,100,101,99,111,100,105,110,103,46,10,32,32, - 32,32,114,1,0,0,0,78,84,41,7,218,8,116,111,107, - 101,110,105,122,101,114,114,0,0,0,218,7,66,121,116,101, - 115,73,79,218,8,114,101,97,100,108,105,110,101,218,15,100, - 101,116,101,99,116,95,101,110,99,111,100,105,110,103,218,25, - 73,110,99,114,101,109,101,110,116,97,108,78,101,119,108,105, - 110,101,68,101,99,111,100,101,114,218,6,100,101,99,111,100, - 101,41,5,218,12,115,111,117,114,99,101,95,98,121,116,101, - 115,114,249,0,0,0,218,21,115,111,117,114,99,101,95,98, - 121,116,101,115,95,114,101,97,100,108,105,110,101,218,8,101, - 110,99,111,100,105,110,103,218,15,110,101,119,108,105,110,101, - 95,100,101,99,111,100,101,114,115,5,0,0,0,32,32,32, - 32,32,114,10,0,0,0,218,13,100,101,99,111,100,101,95, - 115,111,117,114,99,101,114,3,1,0,0,21,3,0,0,115, - 95,0,0,0,128,0,243,10,0,5,20,220,28,31,159,75, - 153,75,168,12,211,28,53,215,28,62,209,28,62,208,4,25, - 216,15,23,215,15,39,209,15,39,208,40,61,211,15,62,128, - 72,220,22,25,215,22,51,209,22,51,176,68,184,36,211,22, - 63,128,79,216,11,26,215,11,33,209,11,33,160,44,215,34, - 53,209,34,53,176,104,184,113,177,107,211,34,66,211,11,67, - 208,4,67,114,28,0,0,0,169,2,218,6,108,111,97,100, - 101,114,218,26,115,117,98,109,111,100,117,108,101,95,115,101, - 97,114,99,104,95,108,111,99,97,116,105,111,110,115,99,2, - 0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,3, - 0,0,0,243,138,2,0,0,151,0,124,1,128,33,100,2, - 125,1,116,1,0,0,0,0,0,0,0,0,124,2,100,3, - 171,2,0,0,0,0,0,0,114,52,9,0,124,2,106,3, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,1,110,33, - 116,7,0,0,0,0,0,0,0,0,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 171,1,0,0,0,0,0,0,125,1,9,0,116,11,0,0, - 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 125,1,116,14,0,0,0,0,0,0,0,0,106,17,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,124,2,124,1,172,4,171,3,0,0,0,0,0,0, - 125,4,100,5,124,4,95,9,0,0,0,0,0,0,0,0, - 124,2,128,63,116,21,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,68,0,93,49,0,0,92,2,0,0, - 125,5,125,6,124,1,106,23,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,116,25,0,0,0,0, - 0,0,0,0,124,6,171,1,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,115,1,140,33,2,0,124,5,124,0, - 124,1,171,2,0,0,0,0,0,0,125,2,124,2,124,4, - 95,13,0,0,0,0,0,0,0,0,1,0,110,2,4,0, - 121,1,124,3,116,28,0,0,0,0,0,0,0,0,117,0, - 114,40,116,1,0,0,0,0,0,0,0,0,124,2,100,6, - 171,2,0,0,0,0,0,0,114,35,9,0,124,2,106,31, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,7,124,7, - 114,15,103,0,124,4,95,16,0,0,0,0,0,0,0,0, - 110,7,124,3,124,4,95,16,0,0,0,0,0,0,0,0, - 124,4,106,32,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,103,0,107,40,0,0,114,43,124,1, - 114,41,116,35,0,0,0,0,0,0,0,0,124,1,171,1, - 0,0,0,0,0,0,100,7,25,0,0,0,125,8,124,4, - 106,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,106,37,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,8,171,1,0,0,0,0, - 0,0,1,0,124,4,83,0,35,0,116,4,0,0,0,0, - 0,0,0,0,36,0,114,3,1,0,89,0,140,222,119,0, - 120,3,89,0,119,1,35,0,116,12,0,0,0,0,0,0, - 0,0,36,0,114,3,1,0,89,0,140,237,119,0,120,3, - 89,0,119,1,35,0,116,4,0,0,0,0,0,0,0,0, - 36,0,114,3,1,0,89,0,140,101,119,0,120,3,89,0, - 119,1,41,8,97,61,1,0,0,82,101,116,117,114,110,32, - 97,32,109,111,100,117,108,101,32,115,112,101,99,32,98,97, - 115,101,100,32,111,110,32,97,32,102,105,108,101,32,108,111, - 99,97,116,105,111,110,46,10,10,32,32,32,32,84,111,32, - 105,110,100,105,99,97,116,101,32,116,104,97,116,32,116,104, - 101,32,109,111,100,117,108,101,32,105,115,32,97,32,112,97, - 99,107,97,103,101,44,32,115,101,116,10,32,32,32,32,115, - 117,98,109,111,100,117,108,101,95,115,101,97,114,99,104,95, - 108,111,99,97,116,105,111,110,115,32,116,111,32,97,32,108, - 105,115,116,32,111,102,32,100,105,114,101,99,116,111,114,121, - 32,112,97,116,104,115,46,32,32,65,110,10,32,32,32,32, - 101,109,112,116,121,32,108,105,115,116,32,105,115,32,115,117, - 102,102,105,99,105,101,110,116,44,32,116,104,111,117,103,104, - 32,105,116,115,32,110,111,116,32,111,116,104,101,114,119,105, - 115,101,32,117,115,101,102,117,108,32,116,111,32,116,104,101, - 10,32,32,32,32,105,109,112,111,114,116,32,115,121,115,116, - 101,109,46,10,10,32,32,32,32,84,104,101,32,108,111,97, - 100,101,114,32,109,117,115,116,32,116,97,107,101,32,97,32, - 115,112,101,99,32,97,115,32,105,116,115,32,111,110,108,121, - 32,95,95,105,110,105,116,95,95,40,41,32,97,114,103,46, - 10,10,32,32,32,32,78,122,9,60,117,110,107,110,111,119, - 110,62,218,12,103,101,116,95,102,105,108,101,110,97,109,101, - 169,1,218,6,111,114,105,103,105,110,84,218,10,105,115,95, - 112,97,99,107,97,103,101,114,1,0,0,0,41,19,114,200, - 0,0,0,114,8,1,0,0,114,189,0,0,0,114,23,0, - 0,0,114,131,0,0,0,114,105,0,0,0,114,87,0,0, - 0,114,208,0,0,0,218,10,77,111,100,117,108,101,83,112, - 101,99,218,13,95,115,101,116,95,102,105,108,101,97,116,116, - 114,218,27,95,103,101,116,95,115,117,112,112,111,114,116,101, - 100,95,102,105,108,101,95,108,111,97,100,101,114,115,114,59, - 0,0,0,114,180,0,0,0,114,5,1,0,0,218,9,95, - 80,79,80,85,76,65,84,69,114,11,1,0,0,114,6,1, - 0,0,114,81,0,0,0,114,64,0,0,0,41,9,114,188, - 0,0,0,218,8,108,111,99,97,116,105,111,110,114,5,1, - 0,0,114,6,1,0,0,218,4,115,112,101,99,218,12,108, - 111,97,100,101,114,95,99,108,97,115,115,218,8,115,117,102, - 102,105,120,101,115,114,11,1,0,0,218,7,100,105,114,110, - 97,109,101,115,9,0,0,0,32,32,32,32,32,32,32,32, - 32,114,10,0,0,0,218,23,115,112,101,99,95,102,114,111, - 109,95,102,105,108,101,95,108,111,99,97,116,105,111,110,114, - 21,1,0,0,38,3,0,0,115,105,1,0,0,128,0,240, - 24,0,8,16,208,7,23,240,8,0,20,31,136,8,220,11, - 18,144,54,152,62,212,11,42,240,4,3,13,21,216,27,33, - 215,27,46,209,27,46,168,116,211,27,52,145,8,244,8,0, - 20,23,151,58,145,58,152,104,211,19,39,136,8,240,2,3, - 9,17,220,23,36,160,88,211,23,46,136,72,244,20,0,12, - 22,215,11,32,209,11,32,160,20,160,118,176,104,208,11,32, - 211,11,63,128,68,216,25,29,128,68,212,4,22,240,6,0, - 8,14,128,126,220,38,65,214,38,67,209,12,34,136,76,152, - 40,216,15,23,215,15,32,209,15,32,164,21,160,120,163,31, - 213,15,49,217,25,37,160,100,168,72,211,25,53,144,6,216, - 30,36,144,4,148,11,217,16,21,240,9,0,39,68,1,240, - 12,0,20,24,240,6,0,8,34,164,89,209,7,46,228,11, - 18,144,54,152,60,212,11,40,240,2,6,13,57,216,29,35, - 215,29,46,209,29,46,168,116,211,29,52,144,10,241,8,0, - 20,30,216,54,56,144,68,213,20,51,224,42,68,136,4,212, - 8,39,216,7,11,215,7,38,209,7,38,168,34,210,7,44, - 217,11,19,220,22,33,160,40,211,22,43,168,65,209,22,46, + 36,216,4,8,135,75,129,75,148,12,152,91,211,16,41,212, + 4,42,216,4,8,135,75,129,75,148,7,151,13,146,13,152, + 100,211,16,35,212,4,36,216,11,15,128,75,114,32,0,0, + 0,99,3,0,0,0,0,0,0,0,0,0,0,0,5,0, + 0,0,3,0,0,0,243,246,0,0,0,149,0,91,1,0, + 0,0,0,0,0,0,0,91,2,0,0,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,110,3,83,1,85,2,83, + 1,45,3,0,0,45,7,0,0,110,4,85,3,82,5,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,91,7,0,0,0,0,0,0,0,0,85,4,53,1,0, + 0,0,0,0,0,53,1,0,0,0,0,0,0,32,0,91, + 9,0,0,0,0,0,0,0,0,85,1,53,1,0,0,0, + 0,0,0,83,2,58,88,0,0,100,2,0,0,23,0,101, + 1,85,3,82,5,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,1,53,1,0,0,0,0,0, + 0,32,0,85,3,82,5,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,91,10,0,0,0,0,0, + 0,0,0,82,12,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,85,0,53,1,0,0,0, + 0,0,0,53,1,0,0,0,0,0,0,32,0,85,3,36, + 0,41,3,122,38,80,114,111,100,117,99,101,32,116,104,101, + 32,100,97,116,97,32,102,111,114,32,97,32,104,97,115,104, + 45,98,97,115,101,100,32,112,121,99,46,114,6,0,0,0, + 114,49,0,0,0,41,7,114,247,0,0,0,114,222,0,0, + 0,114,248,0,0,0,114,47,0,0,0,114,7,0,0,0, + 114,238,0,0,0,114,249,0,0,0,41,5,114,244,0,0, + 0,114,234,0,0,0,218,7,99,104,101,99,107,101,100,114, + 53,0,0,0,114,24,0,0,0,115,5,0,0,0,32,32, + 32,32,32,114,10,0,0,0,218,17,95,99,111,100,101,95, + 116,111,95,104,97,115,104,95,112,121,99,114,254,0,0,0, + 34,3,0,0,115,100,0,0,0,128,0,228,11,20,148,92, + 211,11,34,128,68,216,12,15,144,39,152,81,145,44,209,12, + 30,128,69,216,4,8,135,75,129,75,148,12,152,85,211,16, + 35,212,4,36,220,11,14,136,123,211,11,27,152,113,211,11, + 32,208,4,32,208,11,32,216,4,8,135,75,129,75,144,11, + 212,4,28,216,4,8,135,75,129,75,148,7,151,13,146,13, + 152,100,211,16,35,212,4,36,216,11,15,128,75,114,32,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,6, + 0,0,0,3,0,0,0,243,224,0,0,0,149,0,83,1, + 83,2,75,0,110,1,91,2,0,0,0,0,0,0,0,0, + 82,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,34,0,85,0,53,1,0,0,0,0,0,0, + 82,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,110,2,85,1,82,9,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,2,53,1, + 0,0,0,0,0,0,110,3,91,2,0,0,0,0,0,0, + 0,0,82,10,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,83,2,83,3,53,2,0,0, + 0,0,0,0,110,4,85,4,82,13,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,0,82,13, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,3,83,1,5,0,0,0,53,1,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,36,0,41,4,122,113, + 68,101,99,111,100,101,32,98,121,116,101,115,32,114,101,112, + 114,101,115,101,110,116,105,110,103,32,115,111,117,114,99,101, + 32,99,111,100,101,32,97,110,100,32,114,101,116,117,114,110, + 32,116,104,101,32,115,116,114,105,110,103,46,10,10,85,110, + 105,118,101,114,115,97,108,32,110,101,119,108,105,110,101,32, + 115,117,112,112,111,114,116,32,105,115,32,117,115,101,100,32, + 105,110,32,116,104,101,32,100,101,99,111,100,105,110,103,46, + 10,114,1,0,0,0,78,84,41,7,218,8,116,111,107,101, + 110,105,122,101,114,122,0,0,0,218,7,66,121,116,101,115, + 73,79,218,8,114,101,97,100,108,105,110,101,218,15,100,101, + 116,101,99,116,95,101,110,99,111,100,105,110,103,218,25,73, + 110,99,114,101,109,101,110,116,97,108,78,101,119,108,105,110, + 101,68,101,99,111,100,101,114,218,6,100,101,99,111,100,101, + 41,5,218,12,115,111,117,114,99,101,95,98,121,116,101,115, + 114,0,1,0,0,218,21,115,111,117,114,99,101,95,98,121, + 116,101,115,95,114,101,97,100,108,105,110,101,218,8,101,110, + 99,111,100,105,110,103,218,15,110,101,119,108,105,110,101,95, + 100,101,99,111,100,101,114,115,5,0,0,0,32,32,32,32, + 32,114,10,0,0,0,218,13,100,101,99,111,100,101,95,115, + 111,117,114,99,101,114,10,1,0,0,45,3,0,0,115,95, + 0,0,0,128,0,243,10,0,5,20,220,28,31,159,75,154, + 75,168,12,211,28,53,215,28,62,209,28,62,208,4,25,216, + 15,23,215,15,39,209,15,39,208,40,61,211,15,62,128,72, + 220,22,25,215,22,51,210,22,51,176,68,184,36,211,22,63, + 128,79,216,11,26,215,11,33,209,11,33,160,44,215,34,53, + 209,34,53,176,104,184,113,177,107,211,34,66,211,11,67,208, + 4,67,114,32,0,0,0,169,2,218,6,108,111,97,100,101, + 114,218,26,115,117,98,109,111,100,117,108,101,95,115,101,97, + 114,99,104,95,108,111,99,97,116,105,111,110,115,99,2,0, + 0,0,0,0,0,0,2,0,0,0,6,0,0,0,3,0, + 0,0,243,198,2,0,0,149,0,85,1,99,39,0,0,83, + 2,110,1,91,1,0,0,0,0,0,0,0,0,85,2,83, + 3,53,2,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,19,0,0,30,0,85,2,82,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,53, + 1,0,0,0,0,0,0,110,1,79,35,79,34,91,6,0, + 0,0,0,0,0,0,0,82,8,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,34,0,85,1,53, + 1,0,0,0,0,0,0,110,1,30,0,91,11,0,0,0, + 0,0,0,0,0,85,1,53,1,0,0,0,0,0,0,110, + 1,91,14,0,0,0,0,0,0,0,0,82,17,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88, + 2,85,1,83,4,57,3,110,4,83,5,85,4,108,9,0, + 0,0,0,0,0,0,0,85,2,99,67,0,0,91,21,0, + 0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,19, + 0,72,52,0,0,117,2,0,0,112,86,85,1,82,23,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,91,25,0,0,0,0,0,0,0,0,85,6,53,1,0, + 0,0,0,0,0,53,1,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,100,2,0,0,77,38,0,0,85,5,34, + 0,88,1,53,2,0,0,0,0,0,0,110,2,88,36,108, + 13,0,0,0,0,0,0,0,0,32,0,79,3,11,0,32, + 0,103,1,85,3,91,28,0,0,0,0,0,0,0,0,76, + 0,97,51,0,0,91,1,0,0,0,0,0,0,0,0,85, + 2,83,6,53,2,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,97,33,0,0,30,0,85,2,82,31,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,110,7,85,7,40,0,0, + 0,0,0,0,0,97,7,0,0,47,0,85,4,108,16,0, + 0,0,0,0,0,0,0,79,7,79,6,88,52,108,16,0, + 0,0,0,0,0,0,0,85,4,82,32,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,58, + 88,0,0,97,48,0,0,85,1,40,0,0,0,0,0,0, + 0,97,41,0,0,91,35,0,0,0,0,0,0,0,0,85, + 1,53,1,0,0,0,0,0,0,83,7,5,0,0,0,110, + 8,85,4,82,32,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,82,37,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,8,53,1,0, + 0,0,0,0,0,32,0,85,4,36,0,33,0,91,4,0, + 0,0,0,0,0,0,0,7,0,97,3,0,0,32,0,31, + 0,78,241,102,0,61,3,31,0,102,1,33,0,91,12,0, + 0,0,0,0,0,0,0,7,0,97,4,0,0,32,0,31, + 0,71,1,78,2,102,0,61,3,31,0,102,1,33,0,91, + 4,0,0,0,0,0,0,0,0,7,0,97,3,0,0,32, + 0,31,0,78,111,102,0,61,3,31,0,102,1,41,8,97, + 37,1,0,0,82,101,116,117,114,110,32,97,32,109,111,100, + 117,108,101,32,115,112,101,99,32,98,97,115,101,100,32,111, + 110,32,97,32,102,105,108,101,32,108,111,99,97,116,105,111, + 110,46,10,10,84,111,32,105,110,100,105,99,97,116,101,32, + 116,104,97,116,32,116,104,101,32,109,111,100,117,108,101,32, + 105,115,32,97,32,112,97,99,107,97,103,101,44,32,115,101, + 116,10,115,117,98,109,111,100,117,108,101,95,115,101,97,114, + 99,104,95,108,111,99,97,116,105,111,110,115,32,116,111,32, + 97,32,108,105,115,116,32,111,102,32,100,105,114,101,99,116, + 111,114,121,32,112,97,116,104,115,46,32,32,65,110,10,101, + 109,112,116,121,32,108,105,115,116,32,105,115,32,115,117,102, + 102,105,99,105,101,110,116,44,32,116,104,111,117,103,104,32, + 105,116,115,32,110,111,116,32,111,116,104,101,114,119,105,115, + 101,32,117,115,101,102,117,108,32,116,111,32,116,104,101,10, + 105,109,112,111,114,116,32,115,121,115,116,101,109,46,10,10, + 84,104,101,32,108,111,97,100,101,114,32,109,117,115,116,32, + 116,97,107,101,32,97,32,115,112,101,99,32,97,115,32,105, + 116,115,32,111,110,108,121,32,95,95,105,110,105,116,95,95, + 40,41,32,97,114,103,46,10,10,78,122,9,60,117,110,107, + 110,111,119,110,62,218,12,103,101,116,95,102,105,108,101,110, + 97,109,101,169,1,218,6,111,114,105,103,105,110,84,218,10, + 105,115,95,112,97,99,107,97,103,101,114,1,0,0,0,41, + 19,114,207,0,0,0,114,15,1,0,0,114,195,0,0,0, + 114,26,0,0,0,114,137,0,0,0,114,113,0,0,0,114, + 95,0,0,0,114,216,0,0,0,218,10,77,111,100,117,108, + 101,83,112,101,99,218,13,95,115,101,116,95,102,105,108,101, + 97,116,116,114,218,27,95,103,101,116,95,115,117,112,112,111, + 114,116,101,100,95,102,105,108,101,95,108,111,97,100,101,114, + 115,114,66,0,0,0,114,186,0,0,0,114,12,1,0,0, + 218,9,95,80,79,80,85,76,65,84,69,114,18,1,0,0, + 114,13,1,0,0,114,89,0,0,0,114,71,0,0,0,41, + 9,114,194,0,0,0,218,8,108,111,99,97,116,105,111,110, + 114,12,1,0,0,114,13,1,0,0,218,4,115,112,101,99, + 218,12,108,111,97,100,101,114,95,99,108,97,115,115,218,8, + 115,117,102,102,105,120,101,115,114,18,1,0,0,218,7,100, + 105,114,110,97,109,101,115,9,0,0,0,32,32,32,32,32, + 32,32,32,32,114,10,0,0,0,218,23,115,112,101,99,95, + 102,114,111,109,95,102,105,108,101,95,108,111,99,97,116,105, + 111,110,114,28,1,0,0,62,3,0,0,115,118,1,0,0, + 128,0,240,24,0,8,16,209,7,23,240,8,0,20,31,136, + 8,220,11,18,144,54,152,62,215,11,42,209,11,42,240,4, + 3,13,21,216,27,33,215,27,46,209,27,46,168,116,211,27, + 52,145,8,240,7,0,12,43,244,14,0,20,23,151,58,146, + 58,152,104,211,19,39,136,8,240,2,3,9,17,220,23,36, + 160,88,211,23,46,136,72,244,20,0,12,22,215,11,32,209, + 11,32,160,20,176,104,208,11,32,208,11,63,128,68,216,25, + 29,128,68,212,4,22,240,6,0,8,14,129,126,220,38,65, + 214,38,67,209,12,34,136,76,216,15,23,215,15,32,209,15, + 32,164,21,160,120,163,31,215,15,49,211,15,49,217,25,37, + 160,100,211,25,53,144,6,216,30,36,148,11,217,16,21,241, + 9,0,39,68,1,240,12,0,20,24,240,6,0,8,34,164, + 89,210,7,46,228,11,18,144,54,152,60,215,11,40,209,11, + 40,240,2,6,13,57,216,29,35,215,29,46,209,29,46,168, + 116,211,29,52,144,10,246,8,0,20,30,216,54,56,144,68, + 212,20,51,248,240,15,0,12,41,240,18,0,43,69,1,212, + 8,39,216,7,11,215,7,38,209,7,38,168,34,211,7,44, + 222,11,19,220,22,33,160,40,211,22,43,168,65,209,22,46, 136,71,216,12,16,215,12,43,209,12,43,215,12,50,209,12, 50,176,55,212,12,59,224,11,15,128,75,248,244,93,1,0, - 20,31,242,0,1,13,21,217,16,20,240,3,1,13,21,251, - 244,12,0,16,23,242,0,1,9,17,217,12,16,240,3,1, - 9,17,251,244,56,0,20,31,242,0,1,13,21,217,16,20, - 240,3,1,13,21,250,115,52,0,0,0,146,17,68,24,0, - 186,11,68,39,0,194,58,17,68,54,0,196,24,9,68,36, - 3,196,35,1,68,36,3,196,39,9,68,51,3,196,50,1, - 68,51,3,196,54,9,69,2,3,197,1,1,69,2,3,99, - 1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 3,0,0,0,243,140,1,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,116,2,0,0,0,0,0,0,0, - 0,171,2,0,0,0,0,0,0,115,1,121,1,116,5,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,125, - 1,124,0,106,7,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,2,100,1,171,2,0,0,0, - 0,0,0,125,2,124,0,106,7,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,3,124,1,171, - 2,0,0,0,0,0,0,125,3,124,2,128,18,124,3,124, - 1,117,0,114,1,121,1,124,3,128,11,116,9,0,0,0, - 0,0,0,0,0,100,4,171,1,0,0,0,0,0,0,130, - 1,116,11,0,0,0,0,0,0,0,0,124,3,100,5,124, - 1,171,3,0,0,0,0,0,0,125,4,124,4,124,1,100, - 1,102,2,118,0,114,54,124,2,128,24,124,4,124,1,117, - 0,114,6,116,12,0,0,0,0,0,0,0,0,110,5,116, - 8,0,0,0,0,0,0,0,0,125,5,2,0,124,5,100, - 4,171,1,0,0,0,0,0,0,130,1,116,15,0,0,0, - 0,0,0,0,0,106,16,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,4,116,18,0,0,0, - 0,0,0,0,0,171,2,0,0,0,0,0,0,1,0,124, - 2,125,4,124,4,128,2,74,0,130,1,124,2,129,33,124, - 2,124,4,107,55,0,0,114,28,116,15,0,0,0,0,0, - 0,0,0,106,16,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,6,116,18,0,0,0,0,0, - 0,0,0,171,2,0,0,0,0,0,0,1,0,124,2,83, - 0,124,4,83,0,41,7,122,67,72,101,108,112,101,114,32, - 102,117,110,99,116,105,111,110,32,102,111,114,32,95,119,97, - 114,110,105,110,103,115,46,99,10,10,32,32,32,32,83,101, - 101,32,71,72,35,57,55,56,53,48,32,102,111,114,32,100, - 101,116,97,105,108,115,46,10,32,32,32,32,78,218,10,95, - 95,108,111,97,100,101,114,95,95,218,8,95,95,115,112,101, - 99,95,95,122,43,77,111,100,117,108,101,32,103,108,111,98, - 97,108,115,32,105,115,32,109,105,115,115,105,110,103,32,97, - 32,95,95,115,112,101,99,95,95,46,108,111,97,100,101,114, - 114,5,1,0,0,122,45,77,111,100,117,108,101,32,103,108, - 111,98,97,108,115,59,32,95,95,108,111,97,100,101,114,95, - 95,32,33,61,32,95,95,115,112,101,99,95,95,46,108,111, - 97,100,101,114,41,10,114,233,0,0,0,218,4,100,105,99, - 116,218,6,111,98,106,101,99,116,218,3,103,101,116,114,139, - 0,0,0,114,202,0,0,0,218,14,65,116,116,114,105,98, - 117,116,101,69,114,114,111,114,114,127,0,0,0,114,128,0, - 0,0,114,129,0,0,0,41,6,218,14,109,111,100,117,108, - 101,95,103,108,111,98,97,108,115,218,7,109,105,115,115,105, - 110,103,114,5,1,0,0,114,17,1,0,0,218,11,115,112, - 101,99,95,108,111,97,100,101,114,218,3,101,120,99,115,6, - 0,0,0,32,32,32,32,32,32,114,10,0,0,0,218,16, - 95,98,108,101,115,115,95,109,121,95,108,111,97,100,101,114, - 114,33,1,0,0,108,3,0,0,115,232,0,0,0,128,0, - 244,24,0,12,22,144,110,164,100,212,11,43,216,15,19,228, - 14,20,139,104,128,71,216,13,27,215,13,31,209,13,31,160, - 12,168,100,211,13,51,128,70,216,11,25,215,11,29,209,11, - 29,152,106,168,39,211,11,50,128,68,224,7,13,128,126,216, - 11,15,144,55,137,63,240,6,0,20,24,216,13,17,136,92, - 220,18,28,208,29,74,211,18,75,208,12,75,228,18,25,152, - 36,160,8,168,39,211,18,50,128,75,224,7,18,144,119,160, - 4,144,111,209,7,37,216,11,17,136,62,216,36,47,176,55, - 209,36,58,149,46,196,10,136,67,217,18,21,208,22,67,211, - 18,68,208,12,68,220,8,17,143,14,137,14,216,12,57,220, - 12,30,244,5,2,9,32,240,6,0,23,29,136,11,224,11, - 22,208,11,34,208,4,34,208,11,34,216,7,13,208,7,25, - 152,102,168,11,210,30,51,220,8,17,143,14,137,14,216,12, - 59,220,12,30,244,5,2,9,32,240,6,0,16,22,136,13, - 224,11,22,208,4,22,114,28,0,0,0,99,0,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0, - 243,90,0,0,0,151,0,101,0,90,1,100,0,90,2,100, - 1,90,3,100,2,90,4,100,3,90,5,101,6,120,1,114, - 4,1,0,100,4,101,7,118,0,90,8,101,9,100,5,132, - 0,171,0,0,0,0,0,0,0,90,10,101,11,100,6,132, - 0,171,0,0,0,0,0,0,0,90,12,101,11,100,9,100, - 8,132,1,171,0,0,0,0,0,0,0,90,13,121,7,41, - 10,218,21,87,105,110,100,111,119,115,82,101,103,105,115,116, - 114,121,70,105,110,100,101,114,122,62,77,101,116,97,32,112, - 97,116,104,32,102,105,110,100,101,114,32,102,111,114,32,109, - 111,100,117,108,101,115,32,100,101,99,108,97,114,101,100,32, - 105,110,32,116,104,101,32,87,105,110,100,111,119,115,32,114, - 101,103,105,115,116,114,121,46,122,59,83,111,102,116,119,97, - 114,101,92,80,121,116,104,111,110,92,80,121,116,104,111,110, - 67,111,114,101,92,123,115,121,115,95,118,101,114,115,105,111, - 110,125,92,77,111,100,117,108,101,115,92,123,102,117,108,108, - 110,97,109,101,125,122,65,83,111,102,116,119,97,114,101,92, - 80,121,116,104,111,110,92,80,121,116,104,111,110,67,111,114, - 101,92,123,115,121,115,95,118,101,114,115,105,111,110,125,92, - 77,111,100,117,108,101,115,92,123,102,117,108,108,110,97,109, - 101,125,92,68,101,98,117,103,122,6,95,100,46,112,121,100, + 20,31,243,0,1,13,21,217,16,20,240,3,1,13,21,251, + 244,12,0,16,23,243,0,1,9,17,218,12,16,240,3,1, + 9,17,251,244,56,0,20,31,243,0,1,13,21,217,16,20, + 240,3,1,13,21,250,115,53,0,0,0,152,17,68,50,0, + 193,2,11,69,2,0,195,9,17,69,19,0,196,50,10,68, + 63,3,196,62,1,68,63,3,197,2,10,69,16,3,197,15, + 1,69,16,3,197,19,10,69,32,3,197,31,1,69,32,3, 99,1,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,3,0,0,0,243,178,0,0,0,151,0,9,0,116,1, - 0,0,0,0,0,0,0,0,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,0,0,0, - 0,0,0,0,0,0,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,171,2,0,0, - 0,0,0,0,83,0,35,0,116,6,0,0,0,0,0,0, - 0,0,36,0,114,39,1,0,116,1,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,116,0,0,0,0,0,0,0,0,0, - 106,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,171,2,0,0,0,0,0,0,99,2, - 89,0,83,0,119,0,120,3,89,0,119,1,114,77,0,0, - 0,41,5,218,6,119,105,110,114,101,103,218,7,79,112,101, - 110,75,101,121,218,17,72,75,69,89,95,67,85,82,82,69, - 78,84,95,85,83,69,82,114,87,0,0,0,218,18,72,75, - 69,89,95,76,79,67,65,76,95,77,65,67,72,73,78,69, - 114,25,0,0,0,115,1,0,0,0,32,114,10,0,0,0, - 218,14,95,111,112,101,110,95,114,101,103,105,115,116,114,121, - 122,36,87,105,110,100,111,119,115,82,101,103,105,115,116,114, - 121,70,105,110,100,101,114,46,95,111,112,101,110,95,114,101, - 103,105,115,116,114,121,170,3,0,0,115,71,0,0,0,128, - 0,240,4,3,9,66,1,220,19,25,151,62,145,62,164,38, - 215,34,58,209,34,58,184,67,211,19,64,208,12,64,248,220, - 15,22,242,0,1,9,66,1,220,19,25,151,62,145,62,164, - 38,215,34,59,209,34,59,184,83,211,19,65,210,12,65,240, - 3,1,9,66,1,250,115,15,0,0,0,130,35,38,0,166, - 45,65,22,3,193,21,1,65,22,3,99,2,0,0,0,0, - 0,0,0,0,0,0,0,7,0,0,0,3,0,0,0,243, - 56,1,0,0,151,0,124,0,106,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,114,13,124,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,125,2,110,12,124,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,2, - 124,2,106,7,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,100,1,116,8,0,0,0,0, - 0,0,0,0,106,10,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,0,100,2,26,0,122,6, - 0,0,172,3,171,2,0,0,0,0,0,0,125,3,9,0, - 124,0,106,13,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,3,171,1,0,0,0,0,0,0, - 53,0,125,4,116,15,0,0,0,0,0,0,0,0,106,16, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,4,100,4,171,2,0,0,0,0,0,0,125,5, - 100,0,100,0,100,0,171,2,0,0,0,0,0,0,1,0, - 124,5,83,0,35,0,49,0,115,1,119,2,1,0,89,0, - 1,0,1,0,127,5,83,0,120,3,89,0,119,1,35,0, - 116,18,0,0,0,0,0,0,0,0,36,0,114,3,1,0, - 89,0,121,0,119,0,120,3,89,0,119,1,41,5,78,122, - 5,37,100,46,37,100,114,52,0,0,0,41,2,218,8,102, - 117,108,108,110,97,109,101,218,11,115,121,115,95,118,101,114, - 115,105,111,110,114,12,0,0,0,41,10,218,11,68,69,66, - 85,71,95,66,85,73,76,68,218,18,82,69,71,73,83,84, - 82,89,95,75,69,89,95,68,69,66,85,71,218,12,82,69, - 71,73,83,84,82,89,95,75,69,89,218,6,102,111,114,109, - 97,116,114,20,0,0,0,218,12,118,101,114,115,105,111,110, - 95,105,110,102,111,114,41,1,0,0,114,37,1,0,0,218, - 10,81,117,101,114,121,86,97,108,117,101,114,87,0,0,0, - 41,6,218,3,99,108,115,114,43,1,0,0,218,12,114,101, - 103,105,115,116,114,121,95,107,101,121,114,26,0,0,0,218, - 4,104,107,101,121,218,8,102,105,108,101,112,97,116,104,115, - 6,0,0,0,32,32,32,32,32,32,114,10,0,0,0,218, - 16,95,115,101,97,114,99,104,95,114,101,103,105,115,116,114, - 121,122,38,87,105,110,100,111,119,115,82,101,103,105,115,116, - 114,121,70,105,110,100,101,114,46,95,115,101,97,114,99,104, - 95,114,101,103,105,115,116,114,121,177,3,0,0,115,159,0, - 0,0,128,0,224,11,14,143,63,138,63,216,27,30,215,27, - 49,209,27,49,137,76,224,27,30,215,27,43,209,27,43,136, - 76,216,14,26,215,14,33,209,14,33,168,56,216,46,53,188, - 3,215,56,72,209,56,72,200,18,200,33,208,56,76,209,46, - 76,240,3,0,15,34,243,0,1,15,78,1,136,3,240,4, - 4,9,24,216,17,20,215,17,35,209,17,35,160,67,212,17, - 40,168,68,220,27,33,215,27,44,209,27,44,168,84,176,50, - 211,27,54,144,8,247,3,0,18,41,240,8,0,16,24,136, - 15,247,9,0,18,41,240,8,0,16,24,136,15,251,244,5, - 0,16,23,242,0,1,9,24,217,19,23,240,3,1,9,24, - 250,115,48,0,0,0,193,14,17,66,13,0,193,31,23,66, - 0,3,193,54,8,66,13,0,194,0,5,66,10,7,194,5, - 3,66,13,0,194,10,3,66,13,0,194,13,9,66,25,3, - 194,24,1,66,25,3,78,99,4,0,0,0,0,0,0,0, - 0,0,0,0,8,0,0,0,3,0,0,0,243,0,1,0, - 0,151,0,124,0,106,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,125,4,124,4,128,1,121,0,9,0,116,3,0, - 0,0,0,0,0,0,0,124,4,171,1,0,0,0,0,0, - 0,1,0,116,7,0,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,68,0,93,66,0,0,92,2,0,0,125, - 5,125,6,124,4,106,9,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,116,11,0,0,0,0,0, - 0,0,0,124,6,171,1,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,115,1,140,33,116,12,0,0,0,0,0, - 0,0,0,106,15,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,1,2,0,124,5,124,1,124, - 4,171,2,0,0,0,0,0,0,124,4,172,1,171,3,0, - 0,0,0,0,0,125,7,124,7,99,2,1,0,83,0,4, - 0,121,0,35,0,116,4,0,0,0,0,0,0,0,0,36, - 0,114,3,1,0,89,0,121,0,119,0,120,3,89,0,119, - 1,41,2,78,114,9,1,0,0,41,8,114,55,1,0,0, - 114,85,0,0,0,114,87,0,0,0,114,14,1,0,0,114, - 59,0,0,0,114,180,0,0,0,114,208,0,0,0,218,16, - 115,112,101,99,95,102,114,111,109,95,108,111,97,100,101,114, - 41,8,114,51,1,0,0,114,43,1,0,0,114,68,0,0, - 0,218,6,116,97,114,103,101,116,114,54,1,0,0,114,5, - 1,0,0,114,19,1,0,0,114,17,1,0,0,115,8,0, - 0,0,32,32,32,32,32,32,32,32,114,10,0,0,0,218, - 9,102,105,110,100,95,115,112,101,99,122,31,87,105,110,100, - 111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,101, - 114,46,102,105,110,100,95,115,112,101,99,192,3,0,0,115, - 142,0,0,0,128,0,224,19,22,215,19,39,209,19,39,168, - 8,211,19,49,136,8,216,11,19,208,11,27,216,19,23,240, - 2,3,9,24,220,12,22,144,120,212,12,32,244,6,0,33, - 60,214,32,61,209,12,28,136,70,144,72,216,15,23,215,15, - 32,209,15,32,164,21,160,120,163,31,213,15,49,220,23,33, - 215,23,50,209,23,50,176,56,217,51,57,184,40,192,72,211, - 51,77,216,58,66,240,5,0,24,51,243,0,2,24,68,1, - 144,4,240,6,0,24,28,146,11,241,11,0,33,62,248,244, - 5,0,16,23,242,0,1,9,24,217,19,23,240,3,1,9, - 24,250,115,17,0,0,0,150,11,65,49,0,193,49,9,65, - 61,3,193,60,1,65,61,3,169,2,78,78,41,14,114,197, - 0,0,0,114,196,0,0,0,114,198,0,0,0,114,199,0, - 0,0,114,47,1,0,0,114,46,1,0,0,218,11,95,77, - 83,95,87,73,78,68,79,87,83,218,18,69,88,84,69,78, - 83,73,79,78,95,83,85,70,70,73,88,69,83,114,45,1, - 0,0,218,12,115,116,97,116,105,99,109,101,116,104,111,100, - 114,41,1,0,0,218,11,99,108,97,115,115,109,101,116,104, - 111,100,114,55,1,0,0,114,59,1,0,0,114,30,0,0, - 0,114,28,0,0,0,114,10,0,0,0,114,35,1,0,0, - 114,35,1,0,0,158,3,0,0,115,103,0,0,0,132,0, - 225,4,72,240,6,1,9,32,240,3,0,5,17,240,8,1, - 9,39,240,3,0,5,23,240,6,0,20,31,210,19,65,160, - 56,208,47,65,208,35,65,128,75,224,5,17,241,2,4,5, - 66,1,243,3,0,6,18,240,2,4,5,66,1,240,12,0, - 6,17,241,2,12,5,24,243,3,0,6,17,240,2,12,5, - 24,240,28,0,6,17,242,2,13,5,28,243,3,0,6,17, - 241,2,13,5,28,114,28,0,0,0,114,35,1,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 0,0,0,0,243,40,0,0,0,151,0,101,0,90,1,100, - 0,90,2,100,1,90,3,100,2,132,0,90,4,100,3,132, - 0,90,5,100,4,132,0,90,6,100,5,132,0,90,7,121, - 6,41,7,218,13,95,76,111,97,100,101,114,66,97,115,105, - 99,115,122,83,66,97,115,101,32,99,108,97,115,115,32,111, - 102,32,99,111,109,109,111,110,32,99,111,100,101,32,110,101, - 101,100,101,100,32,98,121,32,98,111,116,104,32,83,111,117, - 114,99,101,76,111,97,100,101,114,32,97,110,100,10,32,32, - 32,32,83,111,117,114,99,101,108,101,115,115,70,105,108,101, - 76,111,97,100,101,114,46,99,2,0,0,0,0,0,0,0, - 0,0,0,0,5,0,0,0,3,0,0,0,243,166,0,0, - 0,151,0,116,1,0,0,0,0,0,0,0,0,124,0,106, - 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,1,171,1,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,100,1,25,0,0,0,125,2,124,2,106, - 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,2,100,1,171,2,0,0,0,0,0,0,100, - 3,25,0,0,0,125,3,124,1,106,7,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,2,171, - 1,0,0,0,0,0,0,100,4,25,0,0,0,125,4,124, - 3,100,5,107,40,0,0,120,1,114,5,1,0,124,4,100, - 5,107,55,0,0,83,0,41,6,122,141,67,111,110,99,114, - 101,116,101,32,105,109,112,108,101,109,101,110,116,97,116,105, - 111,110,32,111,102,32,73,110,115,112,101,99,116,76,111,97, - 100,101,114,46,105,115,95,112,97,99,107,97,103,101,32,98, - 121,32,99,104,101,99,107,105,110,103,32,105,102,10,32,32, - 32,32,32,32,32,32,116,104,101,32,112,97,116,104,32,114, - 101,116,117,114,110,101,100,32,98,121,32,103,101,116,95,102, - 105,108,101,110,97,109,101,32,104,97,115,32,97,32,102,105, - 108,101,110,97,109,101,32,111,102,32,39,95,95,105,110,105, - 116,95,95,46,112,121,39,46,114,6,0,0,0,114,103,0, - 0,0,114,1,0,0,0,114,52,0,0,0,218,8,95,95, - 105,110,105,116,95,95,41,4,114,81,0,0,0,114,8,1, - 0,0,114,158,0,0,0,114,132,0,0,0,41,5,114,190, - 0,0,0,114,43,1,0,0,114,152,0,0,0,218,13,102, - 105,108,101,110,97,109,101,95,98,97,115,101,218,9,116,97, - 105,108,95,110,97,109,101,115,5,0,0,0,32,32,32,32, - 32,114,10,0,0,0,114,11,1,0,0,122,24,95,76,111, - 97,100,101,114,66,97,115,105,99,115,46,105,115,95,112,97, - 99,107,97,103,101,214,3,0,0,115,93,0,0,0,128,0, - 244,6,0,20,31,152,116,215,31,48,209,31,48,176,24,211, - 31,58,211,19,59,184,65,209,19,62,136,8,216,24,32,159, - 15,153,15,168,3,168,81,211,24,47,176,1,209,24,50,136, - 13,216,20,28,215,20,39,209,20,39,168,3,211,20,44,168, - 81,209,20,47,136,9,216,15,28,160,10,209,15,42,210,15, - 70,168,121,184,74,209,47,70,208,8,70,114,28,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,243,4,0,0,0,151,0,121,1,169,2, - 122,42,85,115,101,32,100,101,102,97,117,108,116,32,115,101, - 109,97,110,116,105,99,115,32,102,111,114,32,109,111,100,117, - 108,101,32,99,114,101,97,116,105,111,110,46,78,114,30,0, - 0,0,169,2,114,190,0,0,0,114,17,1,0,0,115,2, - 0,0,0,32,32,114,10,0,0,0,218,13,99,114,101,97, - 116,101,95,109,111,100,117,108,101,122,27,95,76,111,97,100, - 101,114,66,97,115,105,99,115,46,99,114,101,97,116,101,95, - 109,111,100,117,108,101,222,3,0,0,243,2,0,0,0,129, - 0,114,28,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,243,186,0,0,0, - 151,0,124,0,106,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,125,2,124,2,128,25,116,5,0,0, - 0,0,0,0,0,0,100,2,124,1,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,155,2, - 100,3,157,3,171,1,0,0,0,0,0,0,130,1,116,6, - 0,0,0,0,0,0,0,0,106,9,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,10,0,0, - 0,0,0,0,0,0,124,2,124,1,106,12,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,3, - 0,0,0,0,0,0,1,0,121,1,41,4,122,19,69,120, - 101,99,117,116,101,32,116,104,101,32,109,111,100,117,108,101, - 46,78,122,19,99,97,110,110,111,116,32,108,111,97,100,32, - 109,111,100,117,108,101,32,122,29,32,119,104,101,110,32,103, - 101,116,95,99,111,100,101,40,41,32,114,101,116,117,114,110, - 115,32,78,111,110,101,41,7,218,8,103,101,116,95,99,111, - 100,101,114,197,0,0,0,114,189,0,0,0,114,208,0,0, - 0,218,25,95,99,97,108,108,95,119,105,116,104,95,102,114, - 97,109,101,115,95,114,101,109,111,118,101,100,218,4,101,120, - 101,99,114,203,0,0,0,41,3,114,190,0,0,0,218,6, - 109,111,100,117,108,101,114,237,0,0,0,115,3,0,0,0, - 32,32,32,114,10,0,0,0,218,11,101,120,101,99,95,109, - 111,100,117,108,101,122,25,95,76,111,97,100,101,114,66,97, - 115,105,99,115,46,101,120,101,99,95,109,111,100,117,108,101, - 225,3,0,0,115,83,0,0,0,128,0,224,15,19,143,125, - 137,125,152,86,159,95,153,95,211,15,45,136,4,216,11,15, - 136,60,220,18,29,208,32,51,176,70,183,79,177,79,208,51, - 70,240,0,1,71,1,56,240,0,1,31,56,243,0,1,19, - 57,240,0,1,13,57,228,8,18,215,8,44,209,8,44,172, - 84,176,52,184,22,191,31,185,31,213,8,73,114,28,0,0, + 0,3,0,0,0,243,166,1,0,0,149,0,91,1,0,0, + 0,0,0,0,0,0,85,0,91,2,0,0,0,0,0,0, + 0,0,53,2,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,100,1,0,0,103,1,91,5,0,0,0,0,0,0, + 0,0,53,0,0,0,0,0,0,0,110,1,85,0,82,7, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,2,83,1,53,2,0,0,0,0,0,0,110,2, + 85,0,82,7,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,3,85,1,53,2,0,0,0,0, + 0,0,110,3,85,2,99,19,0,0,88,49,76,0,97,1, + 0,0,103,1,85,3,99,11,0,0,91,9,0,0,0,0, + 0,0,0,0,83,4,53,1,0,0,0,0,0,0,101,1, + 91,11,0,0,0,0,0,0,0,0,85,3,83,5,85,1, + 53,3,0,0,0,0,0,0,110,4,88,65,83,1,52,2, + 59,0,0,0,97,56,0,0,85,2,99,24,0,0,88,65, + 76,0,97,6,0,0,91,12,0,0,0,0,0,0,0,0, + 79,5,91,8,0,0,0,0,0,0,0,0,110,5,85,5, + 34,0,83,4,53,1,0,0,0,0,0,0,101,1,91,14, + 0,0,0,0,0,0,0,0,82,16,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,83,4, + 91,18,0,0,0,0,0,0,0,0,53,2,0,0,0,0, + 0,0,32,0,85,2,110,4,85,4,99,2,0,0,23,0, + 101,1,85,2,98,34,0,0,88,36,58,119,0,0,97,29, + 0,0,91,14,0,0,0,0,0,0,0,0,82,16,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 34,0,83,6,91,18,0,0,0,0,0,0,0,0,53,2, + 0,0,0,0,0,0,32,0,85,2,36,0,85,4,36,0, + 41,7,122,59,72,101,108,112,101,114,32,102,117,110,99,116, + 105,111,110,32,102,111,114,32,95,119,97,114,110,105,110,103, + 115,46,99,10,10,83,101,101,32,71,72,35,57,55,56,53, + 48,32,102,111,114,32,100,101,116,97,105,108,115,46,10,78, + 218,10,95,95,108,111,97,100,101,114,95,95,218,8,95,95, + 115,112,101,99,95,95,122,43,77,111,100,117,108,101,32,103, + 108,111,98,97,108,115,32,105,115,32,109,105,115,115,105,110, + 103,32,97,32,95,95,115,112,101,99,95,95,46,108,111,97, + 100,101,114,114,12,1,0,0,122,45,77,111,100,117,108,101, + 32,103,108,111,98,97,108,115,59,32,95,95,108,111,97,100, + 101,114,95,95,32,33,61,32,95,95,115,112,101,99,95,95, + 46,108,111,97,100,101,114,41,10,114,240,0,0,0,218,4, + 100,105,99,116,218,6,111,98,106,101,99,116,218,3,103,101, + 116,114,145,0,0,0,114,209,0,0,0,218,14,65,116,116, + 114,105,98,117,116,101,69,114,114,111,114,114,133,0,0,0, + 114,134,0,0,0,114,135,0,0,0,41,6,218,14,109,111, + 100,117,108,101,95,103,108,111,98,97,108,115,218,7,109,105, + 115,115,105,110,103,114,12,1,0,0,114,24,1,0,0,218, + 11,115,112,101,99,95,108,111,97,100,101,114,218,3,101,120, + 99,115,6,0,0,0,32,32,32,32,32,32,114,10,0,0, + 0,218,16,95,98,108,101,115,115,95,109,121,95,108,111,97, + 100,101,114,114,40,1,0,0,132,3,0,0,115,227,0,0, + 0,128,0,244,24,0,12,22,144,110,164,100,215,11,43,209, + 11,43,216,15,19,228,14,20,139,104,128,71,216,13,27,215, + 13,31,209,13,31,160,12,168,100,211,13,51,128,70,216,11, + 25,215,11,29,209,11,29,152,106,168,39,211,11,50,128,68, + 224,7,13,129,126,216,11,15,138,63,240,6,0,20,24,216, + 13,17,137,92,220,18,28,208,29,74,211,18,75,208,12,75, + 228,18,25,152,36,160,8,168,39,211,18,50,128,75,224,7, + 18,160,4,144,111,211,7,37,216,11,17,137,62,216,36,47, + 210,36,58,149,46,196,10,136,67,217,18,21,208,22,67,211, + 18,68,208,12,68,220,8,17,143,14,138,14,216,12,57,220, + 12,30,244,5,2,9,32,240,6,0,23,29,136,11,224,11, + 22,209,11,34,208,4,34,208,11,34,216,7,13,209,7,25, + 152,102,211,30,51,220,8,17,143,14,138,14,216,12,59,220, + 12,30,244,5,2,9,32,240,6,0,16,22,136,13,224,11, + 22,208,4,22,114,32,0,0,0,99,0,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,0,0,0,0,243,112, + 0,0,0,149,0,92,0,114,1,83,0,114,2,83,1,114, + 3,83,2,114,4,83,3,114,5,83,4,114,6,92,7,61, + 1,40,0,0,0,0,0,0,0,97,5,0,0,32,0,83, + 5,92,8,59,0,0,0,114,9,92,10,83,6,26,0,53, + 0,0,0,0,0,0,0,114,11,92,12,83,7,26,0,53, + 0,0,0,0,0,0,0,114,13,92,12,83,11,83,9,26, + 0,106,1,53,0,0,0,0,0,0,0,114,14,83,10,114, + 15,103,8,41,12,218,21,87,105,110,100,111,119,115,82,101, + 103,105,115,116,114,121,70,105,110,100,101,114,105,182,3,0, + 0,122,62,77,101,116,97,32,112,97,116,104,32,102,105,110, + 100,101,114,32,102,111,114,32,109,111,100,117,108,101,115,32, + 100,101,99,108,97,114,101,100,32,105,110,32,116,104,101,32, + 87,105,110,100,111,119,115,32,114,101,103,105,115,116,114,121, + 46,122,59,83,111,102,116,119,97,114,101,92,80,121,116,104, + 111,110,92,80,121,116,104,111,110,67,111,114,101,92,123,115, + 121,115,95,118,101,114,115,105,111,110,125,92,77,111,100,117, + 108,101,115,92,123,102,117,108,108,110,97,109,101,125,122,65, + 83,111,102,116,119,97,114,101,92,80,121,116,104,111,110,92, + 80,121,116,104,111,110,67,111,114,101,92,123,115,121,115,95, + 118,101,114,115,105,111,110,125,92,77,111,100,117,108,101,115, + 92,123,102,117,108,108,110,97,109,101,125,92,68,101,98,117, + 103,122,6,95,100,46,112,121,100,99,1,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,184, + 0,0,0,149,0,30,0,91,0,0,0,0,0,0,0,0, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,91,0,0,0,0,0,0,0,0, + 0,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,0,53,2,0,0,0,0,0,0,36, + 0,33,0,91,6,0,0,0,0,0,0,0,0,7,0,97, + 40,0,0,32,0,91,0,0,0,0,0,0,0,0,0,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,91,0,0,0,0,0,0,0,0,0,82, + 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,0,53,2,0,0,0,0,0,0,115,2,31, + 0,36,0,102,0,61,3,31,0,102,1,114,84,0,0,0, + 41,5,218,6,119,105,110,114,101,103,218,7,79,112,101,110, + 75,101,121,218,17,72,75,69,89,95,67,85,82,82,69,78, + 84,95,85,83,69,82,114,95,0,0,0,218,18,72,75,69, + 89,95,76,79,67,65,76,95,77,65,67,72,73,78,69,114, + 28,0,0,0,115,1,0,0,0,32,114,10,0,0,0,218, + 14,95,111,112,101,110,95,114,101,103,105,115,116,114,121,218, + 36,87,105,110,100,111,119,115,82,101,103,105,115,116,114,121, + 70,105,110,100,101,114,46,95,111,112,101,110,95,114,101,103, + 105,115,116,114,121,194,3,0,0,115,71,0,0,0,128,0, + 240,4,3,9,66,1,220,19,25,151,62,146,62,164,38,215, + 34,58,209,34,58,184,67,211,19,64,208,12,64,248,220,15, + 22,243,0,1,9,66,1,220,19,25,151,62,146,62,164,38, + 215,34,59,209,34,59,184,83,211,19,65,210,12,65,240,3, + 1,9,66,1,250,115,15,0,0,0,130,36,39,0,167,47, + 65,25,3,193,24,1,65,25,3,99,2,0,0,0,0,0, + 0,0,0,0,0,0,7,0,0,0,3,0,0,0,243,74, + 1,0,0,149,0,85,0,82,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,97,13,0,0,85,0,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,110,2,79, + 12,85,0,82,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,110,2,85,2,82,7,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 1,83,1,91,8,0,0,0,0,0,0,0,0,82,10,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,83,0,83,2,4,0,45,6,0,0,83,3,57,2,110, + 3,30,0,85,0,82,13,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,3,53,1,0,0,0, + 0,0,0,2,0,110,4,91,14,0,0,0,0,0,0,0, + 0,82,16,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,85,4,83,4,53,2,0,0,0, + 0,0,0,110,5,83,0,83,0,83,0,53,2,0,0,0, + 0,0,0,32,0,85,5,36,0,33,0,44,0,40,0,0, + 0,0,0,0,0,100,1,0,0,102,2,32,0,31,0,32, + 0,32,0,87,5,36,0,61,3,31,0,102,1,33,0,91, + 18,0,0,0,0,0,0,0,0,7,0,97,3,0,0,32, + 0,31,0,103,0,102,0,61,3,31,0,102,1,41,5,78, + 122,5,37,100,46,37,100,114,59,0,0,0,41,2,218,8, + 102,117,108,108,110,97,109,101,218,11,115,121,115,95,118,101, + 114,115,105,111,110,114,12,0,0,0,41,10,218,11,68,69, + 66,85,71,95,66,85,73,76,68,218,18,82,69,71,73,83, + 84,82,89,95,75,69,89,95,68,69,66,85,71,218,12,82, + 69,71,73,83,84,82,89,95,75,69,89,218,6,102,111,114, + 109,97,116,114,23,0,0,0,218,12,118,101,114,115,105,111, + 110,95,105,110,102,111,114,48,1,0,0,114,44,1,0,0, + 218,10,81,117,101,114,121,86,97,108,117,101,114,95,0,0, + 0,41,6,218,3,99,108,115,114,51,1,0,0,218,12,114, + 101,103,105,115,116,114,121,95,107,101,121,114,29,0,0,0, + 218,4,104,107,101,121,218,8,102,105,108,101,112,97,116,104, + 115,6,0,0,0,32,32,32,32,32,32,114,10,0,0,0, + 218,16,95,115,101,97,114,99,104,95,114,101,103,105,115,116, + 114,121,218,38,87,105,110,100,111,119,115,82,101,103,105,115, + 116,114,121,70,105,110,100,101,114,46,95,115,101,97,114,99, + 104,95,114,101,103,105,115,116,114,121,201,3,0,0,115,162, + 0,0,0,128,0,224,11,14,143,63,143,63,216,27,30,215, + 27,49,209,27,49,137,76,224,27,30,215,27,43,209,27,43, + 136,76,216,14,26,215,14,33,209,14,33,168,56,216,46,53, + 188,3,215,56,72,209,56,72,200,18,200,33,208,56,76,209, + 46,76,240,3,0,15,34,240,0,1,15,78,1,136,3,240, + 4,4,9,24,216,17,20,215,17,35,209,17,35,160,67,212, + 17,40,168,68,220,27,33,215,27,44,210,27,44,168,84,176, + 50,211,27,54,144,8,247,3,0,18,41,240,8,0,16,24, + 136,15,247,9,0,18,41,212,17,40,240,8,0,16,24,136, + 15,251,244,5,0,16,23,243,0,1,9,24,217,19,23,240, + 3,1,9,24,250,115,48,0,0,0,193,16,17,66,21,0, + 193,33,24,66,3,3,193,57,8,66,21,0,194,3,10,66, + 18,7,194,13,3,66,21,0,194,18,3,66,21,0,194,21, + 10,66,34,3,194,33,1,66,34,3,78,99,4,0,0,0, + 0,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0, + 243,8,1,0,0,149,0,85,0,82,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,53, + 1,0,0,0,0,0,0,110,4,85,4,99,1,0,0,103, + 0,30,0,91,3,0,0,0,0,0,0,0,0,85,4,53, + 1,0,0,0,0,0,0,32,0,91,7,0,0,0,0,0, + 0,0,0,53,0,0,0,0,0,0,0,19,0,72,67,0, + 0,117,2,0,0,112,86,85,4,82,9,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,91,11,0, + 0,0,0,0,0,0,0,85,6,53,1,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,100,2,0,0,77,38,0,0,91,12,0,0,0,0,0, + 0,0,0,82,15,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,1,85,5,34,0,88,20,53, + 2,0,0,0,0,0,0,85,4,83,1,57,3,110,7,85, + 7,115,2,32,0,36,0,11,0,32,0,103,0,33,0,91, + 4,0,0,0,0,0,0,0,0,7,0,97,3,0,0,32, + 0,31,0,103,0,102,0,61,3,31,0,102,1,41,2,78, + 114,16,1,0,0,41,8,114,63,1,0,0,114,93,0,0, + 0,114,95,0,0,0,114,21,1,0,0,114,66,0,0,0, + 114,186,0,0,0,114,216,0,0,0,218,16,115,112,101,99, + 95,102,114,111,109,95,108,111,97,100,101,114,41,8,114,59, + 1,0,0,114,51,1,0,0,114,75,0,0,0,218,6,116, + 97,114,103,101,116,114,62,1,0,0,114,12,1,0,0,114, + 26,1,0,0,114,24,1,0,0,115,8,0,0,0,32,32, + 32,32,32,32,32,32,114,10,0,0,0,218,9,102,105,110, + 100,95,115,112,101,99,218,31,87,105,110,100,111,119,115,82, + 101,103,105,115,116,114,121,70,105,110,100,101,114,46,102,105, + 110,100,95,115,112,101,99,216,3,0,0,115,141,0,0,0, + 128,0,224,19,22,215,19,39,209,19,39,168,8,211,19,49, + 136,8,216,11,19,209,11,27,216,19,23,240,2,3,9,24, + 220,12,22,144,120,212,12,32,244,6,0,33,60,214,32,61, + 209,12,28,136,70,216,15,23,215,15,32,209,15,32,164,21, + 160,120,163,31,215,15,49,211,15,49,220,23,33,215,23,50, + 209,23,50,176,56,217,51,57,184,40,211,51,77,216,58,66, + 240,5,0,24,51,240,0,2,24,68,1,144,4,240,6,0, + 24,28,146,11,242,11,0,33,62,248,244,5,0,16,23,243, + 0,1,9,24,217,19,23,240,3,1,9,24,250,115,17,0, + 0,0,151,11,65,52,0,193,52,10,66,1,3,194,0,1, + 66,1,3,114,34,0,0,0,169,2,78,78,41,16,114,204, + 0,0,0,114,203,0,0,0,114,205,0,0,0,218,15,95, + 95,102,105,114,115,116,108,105,110,101,110,111,95,95,114,206, + 0,0,0,114,55,1,0,0,114,54,1,0,0,218,11,95, + 77,83,95,87,73,78,68,79,87,83,218,18,69,88,84,69, + 78,83,73,79,78,95,83,85,70,70,73,88,69,83,114,53, + 1,0,0,218,12,115,116,97,116,105,99,109,101,116,104,111, + 100,114,48,1,0,0,218,11,99,108,97,115,115,109,101,116, + 104,111,100,114,63,1,0,0,114,68,1,0,0,218,21,95, + 95,115,116,97,116,105,99,95,97,116,116,114,105,98,117,116, + 101,115,95,95,114,34,0,0,0,114,32,0,0,0,114,10, + 0,0,0,114,42,1,0,0,114,42,1,0,0,182,3,0, + 0,115,103,0,0,0,134,0,225,4,72,240,6,1,9,32, + 240,3,0,5,17,240,8,1,9,39,240,3,0,5,23,240, + 6,0,20,31,215,19,65,160,56,208,47,65,209,35,65,128, + 75,224,5,17,241,2,4,5,66,1,243,3,0,6,18,240, + 2,4,5,66,1,240,12,0,6,17,241,2,12,5,24,243, + 3,0,6,17,240,2,12,5,24,240,28,0,6,17,243,2, + 13,5,28,243,3,0,6,17,243,2,13,5,28,114,32,0, + 0,0,114,42,1,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,1,0,0,0,0,0,0,0,243,48,0,0, + 0,149,0,92,0,114,1,83,0,114,2,83,1,114,3,83, + 2,114,4,83,3,26,0,114,5,83,4,26,0,114,6,83, + 5,26,0,114,7,83,6,26,0,114,8,83,7,114,9,103, + 8,41,9,218,13,95,76,111,97,100,101,114,66,97,115,105, + 99,115,105,233,3,0,0,122,79,66,97,115,101,32,99,108, + 97,115,115,32,111,102,32,99,111,109,109,111,110,32,99,111, + 100,101,32,110,101,101,100,101,100,32,98,121,32,98,111,116, + 104,32,83,111,117,114,99,101,76,111,97,100,101,114,32,97, + 110,100,10,83,111,117,114,99,101,108,101,115,115,70,105,108, + 101,76,111,97,100,101,114,46,99,2,0,0,0,0,0,0, + 0,0,0,0,0,5,0,0,0,3,0,0,0,243,176,0, + 0,0,149,0,91,1,0,0,0,0,0,0,0,0,85,0, + 82,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,1,53,1,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,83,1,5,0,0,0,110,2,85,2, + 82,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,2,83,1,53,2,0,0,0,0,0,0, + 83,3,5,0,0,0,110,3,85,1,82,7,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,2, + 53,1,0,0,0,0,0,0,83,4,5,0,0,0,110,4, + 85,3,83,5,58,72,0,0,61,1,40,0,0,0,0,0, + 0,0,97,5,0,0,32,0,85,4,83,5,58,103,0,0, + 36,0,41,6,122,133,67,111,110,99,114,101,116,101,32,105, + 109,112,108,101,109,101,110,116,97,116,105,111,110,32,111,102, + 32,73,110,115,112,101,99,116,76,111,97,100,101,114,46,105, + 115,95,112,97,99,107,97,103,101,32,98,121,32,99,104,101, + 99,107,105,110,103,32,105,102,10,116,104,101,32,112,97,116, + 104,32,114,101,116,117,114,110,101,100,32,98,121,32,103,101, + 116,95,102,105,108,101,110,97,109,101,32,104,97,115,32,97, + 32,102,105,108,101,110,97,109,101,32,111,102,32,39,95,95, + 105,110,105,116,95,95,46,112,121,39,46,114,6,0,0,0, + 114,111,0,0,0,114,1,0,0,0,114,59,0,0,0,218, + 8,95,95,105,110,105,116,95,95,41,4,114,89,0,0,0, + 114,15,1,0,0,114,164,0,0,0,114,138,0,0,0,41, + 5,114,196,0,0,0,114,51,1,0,0,114,158,0,0,0, + 218,13,102,105,108,101,110,97,109,101,95,98,97,115,101,218, + 9,116,97,105,108,95,110,97,109,101,115,5,0,0,0,32, + 32,32,32,32,114,10,0,0,0,114,18,1,0,0,218,24, + 95,76,111,97,100,101,114,66,97,115,105,99,115,46,105,115, + 95,112,97,99,107,97,103,101,238,3,0,0,115,93,0,0, + 0,128,0,244,6,0,20,31,152,116,215,31,48,209,31,48, + 176,24,211,31,58,211,19,59,184,65,209,19,62,136,8,216, + 24,32,159,15,153,15,168,3,168,81,211,24,47,176,1,209, + 24,50,136,13,216,20,28,215,20,39,209,20,39,168,3,211, + 20,44,168,81,209,20,47,136,9,216,15,28,160,10,209,15, + 42,215,15,70,168,121,184,74,209,47,70,208,8,70,114,32, + 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,3,0,0,0,243,4,0,0,0,149,0,103, + 1,169,2,122,42,85,115,101,32,100,101,102,97,117,108,116, + 32,115,101,109,97,110,116,105,99,115,32,102,111,114,32,109, + 111,100,117,108,101,32,99,114,101,97,116,105,111,110,46,78, + 114,34,0,0,0,169,2,114,196,0,0,0,114,24,1,0, + 0,115,2,0,0,0,32,32,114,10,0,0,0,218,13,99, + 114,101,97,116,101,95,109,111,100,117,108,101,218,27,95,76, + 111,97,100,101,114,66,97,115,105,99,115,46,99,114,101,97, + 116,101,95,109,111,100,117,108,101,246,3,0,0,243,2,0, + 0,0,129,0,114,32,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,188, + 0,0,0,149,0,85,0,82,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,1,82,2,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,110,2,85,2,99,26,0, + 0,91,5,0,0,0,0,0,0,0,0,83,2,85,1,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,60,2,14,0,83,3,51,3,53,1,0,0,0, + 0,0,0,101,1,91,6,0,0,0,0,0,0,0,0,82, + 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,91,10,0,0,0,0,0,0,0,0,88,33,82, + 12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,53,3,0,0,0,0,0,0,32,0,103,1,41, + 4,122,19,69,120,101,99,117,116,101,32,116,104,101,32,109, + 111,100,117,108,101,46,78,122,19,99,97,110,110,111,116,32, + 108,111,97,100,32,109,111,100,117,108,101,32,122,29,32,119, + 104,101,110,32,103,101,116,95,99,111,100,101,40,41,32,114, + 101,116,117,114,110,115,32,78,111,110,101,41,7,218,8,103, + 101,116,95,99,111,100,101,114,204,0,0,0,114,195,0,0, + 0,114,216,0,0,0,218,25,95,99,97,108,108,95,119,105, + 116,104,95,102,114,97,109,101,115,95,114,101,109,111,118,101, + 100,218,4,101,120,101,99,114,210,0,0,0,41,3,114,196, + 0,0,0,218,6,109,111,100,117,108,101,114,244,0,0,0, + 115,3,0,0,0,32,32,32,114,10,0,0,0,218,11,101, + 120,101,99,95,109,111,100,117,108,101,218,25,95,76,111,97, + 100,101,114,66,97,115,105,99,115,46,101,120,101,99,95,109, + 111,100,117,108,101,249,3,0,0,115,81,0,0,0,128,0, + 224,15,19,143,125,137,125,152,86,159,95,153,95,211,15,45, + 136,4,216,11,15,137,60,220,18,29,208,32,51,176,70,183, + 79,177,79,209,51,70,240,0,1,71,1,56,240,0,1,31, + 56,243,0,1,19,57,240,0,1,13,57,228,8,18,215,8, + 44,209,8,44,172,84,176,52,191,31,185,31,213,8,73,114, + 32,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,243,44,0,0,0,149,0, + 91,0,0,0,0,0,0,0,0,0,82,3,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,1, + 53,2,0,0,0,0,0,0,36,0,41,1,122,26,84,104, + 105,115,32,109,101,116,104,111,100,32,105,115,32,100,101,112, + 114,101,99,97,116,101,100,46,41,2,114,216,0,0,0,218, + 17,95,108,111,97,100,95,109,111,100,117,108,101,95,115,104, + 105,109,169,2,114,196,0,0,0,114,51,1,0,0,115,2, + 0,0,0,32,32,114,10,0,0,0,218,11,108,111,97,100, + 95,109,111,100,117,108,101,218,25,95,76,111,97,100,101,114, + 66,97,115,105,99,115,46,108,111,97,100,95,109,111,100,117, + 108,101,1,4,0,0,115,21,0,0,0,128,0,244,6,0, + 16,26,215,15,43,209,15,43,168,68,211,15,59,208,8,59, + 114,32,0,0,0,114,34,0,0,0,78,41,10,114,204,0, + 0,0,114,203,0,0,0,114,205,0,0,0,114,71,1,0, + 0,114,206,0,0,0,114,18,1,0,0,114,87,1,0,0, + 114,95,1,0,0,114,100,1,0,0,114,76,1,0,0,114, + 34,0,0,0,114,32,0,0,0,114,10,0,0,0,114,78, + 1,0,0,114,78,1,0,0,233,3,0,0,115,29,0,0, + 0,134,0,241,4,1,5,29,242,6,6,5,71,1,242,16, + 1,5,57,242,6,6,5,74,1,245,16,3,5,60,114,32, + 0,0,0,114,78,1,0,0,99,0,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,0,0,0,0,243,70,0, + 0,0,149,0,92,0,114,1,83,0,114,2,83,1,114,3, + 83,2,26,0,114,4,83,3,26,0,114,5,83,4,26,0, + 114,6,83,5,26,0,114,7,83,6,26,0,114,8,83,7, + 83,8,46,1,83,9,26,0,106,2,114,9,83,10,26,0, + 114,10,83,11,114,11,103,12,41,13,218,12,83,111,117,114, + 99,101,76,111,97,100,101,114,105,7,4,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, + 0,0,243,14,0,0,0,149,0,91,0,0,0,0,0,0, + 0,0,0,101,1,41,1,122,141,79,112,116,105,111,110,97, + 108,32,109,101,116,104,111,100,32,116,104,97,116,32,114,101, + 116,117,114,110,115,32,116,104,101,32,109,111,100,105,102,105, + 99,97,116,105,111,110,32,116,105,109,101,32,40,97,110,32, + 105,110,116,41,32,102,111,114,32,116,104,101,10,115,112,101, + 99,105,102,105,101,100,32,112,97,116,104,32,40,97,32,115, + 116,114,41,46,10,10,82,97,105,115,101,115,32,79,83,69, + 114,114,111,114,32,119,104,101,110,32,116,104,101,32,112,97, + 116,104,32,99,97,110,110,111,116,32,98,101,32,104,97,110, + 100,108,101,100,46,10,41,1,114,95,0,0,0,169,2,114, + 196,0,0,0,114,75,0,0,0,115,2,0,0,0,32,32, + 114,10,0,0,0,218,10,112,97,116,104,95,109,116,105,109, + 101,218,23,83,111,117,114,99,101,76,111,97,100,101,114,46, + 112,97,116,104,95,109,116,105,109,101,9,4,0,0,115,9, + 0,0,0,128,0,244,12,0,15,22,136,13,114,32,0,0, 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,243,46,0,0,0,151,0,116,0,0, - 0,0,0,0,0,0,0,106,3,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,124,1,171, - 2,0,0,0,0,0,0,83,0,41,1,122,26,84,104,105, - 115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114, - 101,99,97,116,101,100,46,41,2,114,208,0,0,0,218,17, - 95,108,111,97,100,95,109,111,100,117,108,101,95,115,104,105, - 109,169,2,114,190,0,0,0,114,43,1,0,0,115,2,0, - 0,0,32,32,114,10,0,0,0,218,11,108,111,97,100,95, - 109,111,100,117,108,101,122,25,95,76,111,97,100,101,114,66, - 97,115,105,99,115,46,108,111,97,100,95,109,111,100,117,108, - 101,233,3,0,0,115,23,0,0,0,128,0,244,6,0,16, - 26,215,15,43,209,15,43,168,68,176,40,211,15,59,208,8, - 59,114,28,0,0,0,78,41,8,114,197,0,0,0,114,196, - 0,0,0,114,198,0,0,0,114,199,0,0,0,114,11,1, - 0,0,114,74,1,0,0,114,81,1,0,0,114,85,1,0, - 0,114,30,0,0,0,114,28,0,0,0,114,10,0,0,0, - 114,66,1,0,0,114,66,1,0,0,209,3,0,0,115,29, - 0,0,0,132,0,241,4,1,5,29,242,6,6,5,71,1, - 242,16,1,5,57,242,6,6,5,74,1,243,16,3,5,60, - 114,28,0,0,0,114,66,1,0,0,99,0,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,243, - 60,0,0,0,151,0,101,0,90,1,100,0,90,2,100,1, - 132,0,90,3,100,2,132,0,90,4,100,3,132,0,90,5, - 100,4,132,0,90,6,100,5,132,0,90,7,100,6,100,7, - 156,1,100,8,132,2,90,8,100,9,132,0,90,9,121,10, - 41,11,218,12,83,111,117,114,99,101,76,111,97,100,101,114, - 99,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,3,0,0,0,243,14,0,0,0,151,0,116,0,0,0, - 0,0,0,0,0,0,130,1,41,1,122,165,79,112,116,105, - 111,110,97,108,32,109,101,116,104,111,100,32,116,104,97,116, - 32,114,101,116,117,114,110,115,32,116,104,101,32,109,111,100, - 105,102,105,99,97,116,105,111,110,32,116,105,109,101,32,40, - 97,110,32,105,110,116,41,32,102,111,114,32,116,104,101,10, - 32,32,32,32,32,32,32,32,115,112,101,99,105,102,105,101, - 100,32,112,97,116,104,32,40,97,32,115,116,114,41,46,10, - 10,32,32,32,32,32,32,32,32,82,97,105,115,101,115,32, - 79,83,69,114,114,111,114,32,119,104,101,110,32,116,104,101, - 32,112,97,116,104,32,99,97,110,110,111,116,32,98,101,32, - 104,97,110,100,108,101,100,46,10,32,32,32,32,32,32,32, - 32,41,1,114,87,0,0,0,169,2,114,190,0,0,0,114, - 68,0,0,0,115,2,0,0,0,32,32,114,10,0,0,0, - 218,10,112,97,116,104,95,109,116,105,109,101,122,23,83,111, - 117,114,99,101,76,111,97,100,101,114,46,112,97,116,104,95, - 109,116,105,109,101,241,3,0,0,115,9,0,0,0,128,0, - 244,12,0,15,22,136,13,114,28,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,40,0,0,0,151,0,100,1,124,0,106,1,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,105,1,83,0,41,2, - 97,158,1,0,0,79,112,116,105,111,110,97,108,32,109,101, - 116,104,111,100,32,114,101,116,117,114,110,105,110,103,32,97, - 32,109,101,116,97,100,97,116,97,32,100,105,99,116,32,102, - 111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100, - 10,32,32,32,32,32,32,32,32,112,97,116,104,32,40,97, - 32,115,116,114,41,46,10,10,32,32,32,32,32,32,32,32, - 80,111,115,115,105,98,108,101,32,107,101,121,115,58,10,32, - 32,32,32,32,32,32,32,45,32,39,109,116,105,109,101,39, - 32,40,109,97,110,100,97,116,111,114,121,41,32,105,115,32, - 116,104,101,32,110,117,109,101,114,105,99,32,116,105,109,101, - 115,116,97,109,112,32,111,102,32,108,97,115,116,32,115,111, - 117,114,99,101,10,32,32,32,32,32,32,32,32,32,32,99, - 111,100,101,32,109,111,100,105,102,105,99,97,116,105,111,110, - 59,10,32,32,32,32,32,32,32,32,45,32,39,115,105,122, - 101,39,32,40,111,112,116,105,111,110,97,108,41,32,105,115, - 32,116,104,101,32,115,105,122,101,32,105,110,32,98,121,116, - 101,115,32,111,102,32,116,104,101,32,115,111,117,114,99,101, - 32,99,111,100,101,46,10,10,32,32,32,32,32,32,32,32, - 73,109,112,108,101,109,101,110,116,105,110,103,32,116,104,105, - 115,32,109,101,116,104,111,100,32,97,108,108,111,119,115,32, - 116,104,101,32,108,111,97,100,101,114,32,116,111,32,114,101, - 97,100,32,98,121,116,101,99,111,100,101,32,102,105,108,101, - 115,46,10,32,32,32,32,32,32,32,32,82,97,105,115,101, - 115,32,79,83,69,114,114,111,114,32,119,104,101,110,32,116, - 104,101,32,112,97,116,104,32,99,97,110,110,111,116,32,98, - 101,32,104,97,110,100,108,101,100,46,10,32,32,32,32,32, - 32,32,32,114,243,0,0,0,41,1,114,90,1,0,0,114, - 89,1,0,0,115,2,0,0,0,32,32,114,10,0,0,0, - 218,10,112,97,116,104,95,115,116,97,116,115,122,23,83,111, - 117,114,99,101,76,111,97,100,101,114,46,112,97,116,104,95, - 115,116,97,116,115,249,3,0,0,115,24,0,0,0,128,0, - 240,24,0,17,24,152,20,159,31,153,31,168,20,211,25,46, - 208,15,47,208,8,47,114,28,0,0,0,99,4,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,38,0,0,0,151,0,124,0,106,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,2,124, - 3,171,2,0,0,0,0,0,0,83,0,41,1,122,228,79, - 112,116,105,111,110,97,108,32,109,101,116,104,111,100,32,119, - 104,105,99,104,32,119,114,105,116,101,115,32,100,97,116,97, - 32,40,98,121,116,101,115,41,32,116,111,32,97,32,102,105, - 108,101,32,112,97,116,104,32,40,97,32,115,116,114,41,46, - 10,10,32,32,32,32,32,32,32,32,73,109,112,108,101,109, + 0,0,3,0,0,0,243,40,0,0,0,149,0,83,1,85, + 0,82,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,1,53,1,0,0,0,0,0,0,48, + 1,36,0,41,2,97,94,1,0,0,79,112,116,105,111,110, + 97,108,32,109,101,116,104,111,100,32,114,101,116,117,114,110, + 105,110,103,32,97,32,109,101,116,97,100,97,116,97,32,100, + 105,99,116,32,102,111,114,32,116,104,101,32,115,112,101,99, + 105,102,105,101,100,10,112,97,116,104,32,40,97,32,115,116, + 114,41,46,10,10,80,111,115,115,105,98,108,101,32,107,101, + 121,115,58,10,45,32,39,109,116,105,109,101,39,32,40,109, + 97,110,100,97,116,111,114,121,41,32,105,115,32,116,104,101, + 32,110,117,109,101,114,105,99,32,116,105,109,101,115,116,97, + 109,112,32,111,102,32,108,97,115,116,32,115,111,117,114,99, + 101,10,32,32,99,111,100,101,32,109,111,100,105,102,105,99, + 97,116,105,111,110,59,10,45,32,39,115,105,122,101,39,32, + 40,111,112,116,105,111,110,97,108,41,32,105,115,32,116,104, + 101,32,115,105,122,101,32,105,110,32,98,121,116,101,115,32, + 111,102,32,116,104,101,32,115,111,117,114,99,101,32,99,111, + 100,101,46,10,10,73,109,112,108,101,109,101,110,116,105,110, + 103,32,116,104,105,115,32,109,101,116,104,111,100,32,97,108, + 108,111,119,115,32,116,104,101,32,108,111,97,100,101,114,32, + 116,111,32,114,101,97,100,32,98,121,116,101,99,111,100,101, + 32,102,105,108,101,115,46,10,82,97,105,115,101,115,32,79, + 83,69,114,114,111,114,32,119,104,101,110,32,116,104,101,32, + 112,97,116,104,32,99,97,110,110,111,116,32,98,101,32,104, + 97,110,100,108,101,100,46,10,114,250,0,0,0,41,1,114, + 106,1,0,0,114,105,1,0,0,115,2,0,0,0,32,32, + 114,10,0,0,0,218,10,112,97,116,104,95,115,116,97,116, + 115,218,23,83,111,117,114,99,101,76,111,97,100,101,114,46, + 112,97,116,104,95,115,116,97,116,115,17,4,0,0,115,24, + 0,0,0,128,0,240,24,0,17,24,152,20,159,31,153,31, + 168,20,211,25,46,208,15,47,208,8,47,114,32,0,0,0, + 99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,243,36,0,0,0,149,0,85,0,82,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,88,35,53,2,0,0,0,0,0,0,36,0,41,1, + 122,204,79,112,116,105,111,110,97,108,32,109,101,116,104,111, + 100,32,119,104,105,99,104,32,119,114,105,116,101,115,32,100, + 97,116,97,32,40,98,121,116,101,115,41,32,116,111,32,97, + 32,102,105,108,101,32,112,97,116,104,32,40,97,32,115,116, + 114,41,46,10,10,73,109,112,108,101,109,101,110,116,105,110, + 103,32,116,104,105,115,32,109,101,116,104,111,100,32,97,108, + 108,111,119,115,32,102,111,114,32,116,104,101,32,119,114,105, + 116,105,110,103,32,111,102,32,98,121,116,101,99,111,100,101, + 32,102,105,108,101,115,46,10,10,84,104,101,32,115,111,117, + 114,99,101,32,112,97,116,104,32,105,115,32,110,101,101,100, + 101,100,32,105,110,32,111,114,100,101,114,32,116,111,32,99, + 111,114,114,101,99,116,108,121,32,116,114,97,110,115,102,101, + 114,32,112,101,114,109,105,115,115,105,111,110,115,10,41,1, + 218,8,115,101,116,95,100,97,116,97,41,4,114,196,0,0, + 0,114,183,0,0,0,218,10,99,97,99,104,101,95,112,97, + 116,104,114,53,0,0,0,115,4,0,0,0,32,32,32,32, + 114,10,0,0,0,218,15,95,99,97,99,104,101,95,98,121, + 116,101,99,111,100,101,218,28,83,111,117,114,99,101,76,111, + 97,100,101,114,46,95,99,97,99,104,101,95,98,121,116,101, + 99,111,100,101,31,4,0,0,115,19,0,0,0,128,0,240, + 16,0,16,20,143,125,137,125,152,90,211,15,46,208,8,46, + 114,32,0,0,0,99,3,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,243,4,0,0,0,149, + 0,103,1,41,2,122,134,79,112,116,105,111,110,97,108,32, + 109,101,116,104,111,100,32,119,104,105,99,104,32,119,114,105, + 116,101,115,32,100,97,116,97,32,40,98,121,116,101,115,41, + 32,116,111,32,97,32,102,105,108,101,32,112,97,116,104,32, + 40,97,32,115,116,114,41,46,10,10,73,109,112,108,101,109, 101,110,116,105,110,103,32,116,104,105,115,32,109,101,116,104, 111,100,32,97,108,108,111,119,115,32,102,111,114,32,116,104, 101,32,119,114,105,116,105,110,103,32,111,102,32,98,121,116, - 101,99,111,100,101,32,102,105,108,101,115,46,10,10,32,32, - 32,32,32,32,32,32,84,104,101,32,115,111,117,114,99,101, - 32,112,97,116,104,32,105,115,32,110,101,101,100,101,100,32, - 105,110,32,111,114,100,101,114,32,116,111,32,99,111,114,114, - 101,99,116,108,121,32,116,114,97,110,115,102,101,114,32,112, - 101,114,109,105,115,115,105,111,110,115,10,32,32,32,32,32, - 32,32,32,41,1,218,8,115,101,116,95,100,97,116,97,41, - 4,114,190,0,0,0,114,177,0,0,0,218,10,99,97,99, - 104,101,95,112,97,116,104,114,48,0,0,0,115,4,0,0, - 0,32,32,32,32,114,10,0,0,0,218,15,95,99,97,99, - 104,101,95,98,121,116,101,99,111,100,101,122,28,83,111,117, - 114,99,101,76,111,97,100,101,114,46,95,99,97,99,104,101, - 95,98,121,116,101,99,111,100,101,7,4,0,0,115,21,0, - 0,0,128,0,240,16,0,16,20,143,125,137,125,152,90,168, - 20,211,15,46,208,8,46,114,28,0,0,0,99,3,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,243,4,0,0,0,151,0,121,1,41,2,122,150,79,112, - 116,105,111,110,97,108,32,109,101,116,104,111,100,32,119,104, - 105,99,104,32,119,114,105,116,101,115,32,100,97,116,97,32, - 40,98,121,116,101,115,41,32,116,111,32,97,32,102,105,108, - 101,32,112,97,116,104,32,40,97,32,115,116,114,41,46,10, - 10,32,32,32,32,32,32,32,32,73,109,112,108,101,109,101, - 110,116,105,110,103,32,116,104,105,115,32,109,101,116,104,111, - 100,32,97,108,108,111,119,115,32,102,111,114,32,116,104,101, - 32,119,114,105,116,105,110,103,32,111,102,32,98,121,116,101, - 99,111,100,101,32,102,105,108,101,115,46,10,32,32,32,32, - 32,32,32,32,78,114,30,0,0,0,41,3,114,190,0,0, - 0,114,68,0,0,0,114,48,0,0,0,115,3,0,0,0, - 32,32,32,114,10,0,0,0,114,94,1,0,0,122,21,83, - 111,117,114,99,101,76,111,97,100,101,114,46,115,101,116,95, - 100,97,116,97,17,4,0,0,114,75,1,0,0,114,28,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,3,0,0,0,243,156,0,0,0,151,0,124,0, - 106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,125,2, - 9,0,124,0,106,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,2,171,1,0,0,0,0, - 0,0,125,3,116,9,0,0,0,0,0,0,0,0,124,3, - 171,1,0,0,0,0,0,0,83,0,35,0,116,4,0,0, - 0,0,0,0,0,0,36,0,114,19,125,4,116,7,0,0, - 0,0,0,0,0,0,100,1,124,1,172,2,171,2,0,0, - 0,0,0,0,124,4,130,2,100,3,125,4,126,4,119,1, - 119,0,120,3,89,0,119,1,41,4,122,52,67,111,110,99, - 114,101,116,101,32,105,109,112,108,101,109,101,110,116,97,116, - 105,111,110,32,111,102,32,73,110,115,112,101,99,116,76,111, - 97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,46, - 122,39,115,111,117,114,99,101,32,110,111,116,32,97,118,97, - 105,108,97,98,108,101,32,116,104,114,111,117,103,104,32,103, - 101,116,95,100,97,116,97,40,41,114,187,0,0,0,78,41, - 5,114,8,1,0,0,218,8,103,101,116,95,100,97,116,97, - 114,87,0,0,0,114,189,0,0,0,114,3,1,0,0,41, - 5,114,190,0,0,0,114,43,1,0,0,114,68,0,0,0, - 114,255,0,0,0,114,32,1,0,0,115,5,0,0,0,32, - 32,32,32,32,114,10,0,0,0,218,10,103,101,116,95,115, - 111,117,114,99,101,122,23,83,111,117,114,99,101,76,111,97, - 100,101,114,46,103,101,116,95,115,111,117,114,99,101,24,4, - 0,0,115,90,0,0,0,128,0,224,15,19,215,15,32,209, - 15,32,160,24,211,15,42,136,4,240,2,4,9,54,216,27, - 31,159,61,153,61,168,20,211,27,46,136,76,244,8,0,16, - 29,152,92,211,15,42,208,8,42,248,244,7,0,16,23,242, - 0,2,9,54,220,18,29,208,30,71,216,35,43,244,3,1, - 19,45,216,50,53,240,3,1,13,54,251,240,3,2,9,54, - 250,115,20,0,0,0,147,17,47,0,175,9,65,11,3,184, - 14,65,6,3,193,6,5,65,11,3,114,171,0,0,0,41, - 1,218,9,95,111,112,116,105,109,105,122,101,99,3,0,0, - 0,0,0,0,0,1,0,0,0,8,0,0,0,3,0,0, - 0,243,64,0,0,0,151,0,116,0,0,0,0,0,0,0, - 0,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,116,4,0,0,0,0,0,0,0,0, - 124,1,124,2,100,1,100,2,124,3,172,3,171,6,0,0, - 0,0,0,0,83,0,41,4,122,130,82,101,116,117,114,110, - 32,116,104,101,32,99,111,100,101,32,111,98,106,101,99,116, - 32,99,111,109,112,105,108,101,100,32,102,114,111,109,32,115, - 111,117,114,99,101,46,10,10,32,32,32,32,32,32,32,32, - 84,104,101,32,39,100,97,116,97,39,32,97,114,103,117,109, - 101,110,116,32,99,97,110,32,98,101,32,97,110,121,32,111, - 98,106,101,99,116,32,116,121,112,101,32,116,104,97,116,32, - 99,111,109,112,105,108,101,40,41,32,115,117,112,112,111,114, - 116,115,46,10,32,32,32,32,32,32,32,32,114,79,1,0, - 0,84,41,2,218,12,100,111,110,116,95,105,110,104,101,114, - 105,116,114,136,0,0,0,41,3,114,208,0,0,0,114,78, - 1,0,0,218,7,99,111,109,112,105,108,101,41,4,114,190, - 0,0,0,114,48,0,0,0,114,68,0,0,0,114,101,1, - 0,0,115,4,0,0,0,32,32,32,32,114,10,0,0,0, - 218,14,115,111,117,114,99,101,95,116,111,95,99,111,100,101, - 122,27,83,111,117,114,99,101,76,111,97,100,101,114,46,115, - 111,117,114,99,101,95,116,111,95,99,111,100,101,34,4,0, - 0,115,43,0,0,0,128,0,244,10,0,16,26,215,15,51, - 209,15,51,180,71,184,84,192,52,200,22,216,53,57,192,73, - 240,3,0,16,52,243,0,1,16,79,1,240,0,1,9,79, - 1,114,28,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,7,0,0,0,3,0,0,0,243,72,4,0,0, - 151,0,124,0,106,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,171,1,0,0,0,0, - 0,0,125,2,100,1,125,3,100,1,125,4,100,1,125,5, - 100,2,125,6,100,3,125,7,9,0,116,3,0,0,0,0, - 0,0,0,0,124,2,171,1,0,0,0,0,0,0,125,8, - 9,0,124,0,106,5,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,2,171,1,0,0,0,0, - 0,0,125,9,116,7,0,0,0,0,0,0,0,0,124,9, - 100,4,25,0,0,0,171,1,0,0,0,0,0,0,125,3, - 9,0,124,0,106,9,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,8,171,1,0,0,0,0, - 0,0,125,10,124,1,124,8,100,5,156,2,125,11,9,0, - 116,11,0,0,0,0,0,0,0,0,124,10,124,1,124,11, - 171,3,0,0,0,0,0,0,125,12,116,13,0,0,0,0, - 0,0,0,0,124,10,171,1,0,0,0,0,0,0,100,6, - 100,1,26,0,125,13,124,12,100,7,122,1,0,0,100,8, - 107,55,0,0,125,6,124,6,114,106,124,12,100,9,122,1, - 0,0,100,8,107,55,0,0,125,7,116,14,0,0,0,0, - 0,0,0,0,106,16,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,10,107,55,0,0,114,97, - 124,7,115,19,116,14,0,0,0,0,0,0,0,0,106,16, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,11,107,40,0,0,114,76,124,0,106,9,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,2,171,1,0,0,0,0,0,0,125,4,116,15,0,0, - 0,0,0,0,0,0,106,18,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,116,20,0,0,0,0, - 0,0,0,0,124,4,171,2,0,0,0,0,0,0,125,5, - 116,23,0,0,0,0,0,0,0,0,124,10,124,5,124,1, - 124,11,171,4,0,0,0,0,0,0,1,0,110,18,116,25, - 0,0,0,0,0,0,0,0,124,10,124,3,124,9,100,12, - 25,0,0,0,124,1,124,11,171,5,0,0,0,0,0,0, - 1,0,116,26,0,0,0,0,0,0,0,0,106,29,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,13,124,8,124,2,171,3,0,0,0,0,0,0,1,0, - 116,31,0,0,0,0,0,0,0,0,124,13,124,1,124,8, - 124,2,172,14,171,4,0,0,0,0,0,0,83,0,35,0, - 116,32,0,0,0,0,0,0,0,0,116,34,0,0,0,0, - 0,0,0,0,102,2,36,0,114,3,1,0,89,0,110,51, - 119,0,120,3,89,0,119,1,35,0,116,36,0,0,0,0, - 0,0,0,0,36,0,114,3,1,0,89,0,110,36,119,0, - 120,3,89,0,119,1,35,0,116,36,0,0,0,0,0,0, - 0,0,36,0,114,3,1,0,89,0,110,21,119,0,120,3, - 89,0,119,1,35,0,116,38,0,0,0,0,0,0,0,0, - 36,0,114,5,1,0,100,1,125,8,89,0,110,4,119,0, - 120,3,89,0,119,1,124,4,128,17,124,0,106,9,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,2,171,1,0,0,0,0,0,0,125,4,124,0,106,41, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,4,124,2,171,2,0,0,0,0,0,0,125,14, - 116,26,0,0,0,0,0,0,0,0,106,29,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,15, - 124,2,171,2,0,0,0,0,0,0,1,0,116,42,0,0, - 0,0,0,0,0,0,106,44,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,115,108,124,8,129,106, - 124,3,129,104,124,6,114,42,124,5,128,26,116,15,0,0, - 0,0,0,0,0,0,106,18,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,116,20,0,0,0,0, - 0,0,0,0,124,4,171,2,0,0,0,0,0,0,125,5, - 116,47,0,0,0,0,0,0,0,0,124,14,124,5,124,7, - 171,3,0,0,0,0,0,0,125,10,110,22,116,49,0,0, - 0,0,0,0,0,0,124,14,124,3,116,51,0,0,0,0, - 0,0,0,0,124,4,171,1,0,0,0,0,0,0,171,3, - 0,0,0,0,0,0,125,10,9,0,124,0,106,53,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,2,124,8,124,10,171,3,0,0,0,0,0,0,1,0, - 124,14,83,0,35,0,116,38,0,0,0,0,0,0,0,0, - 36,0,114,4,1,0,89,0,124,14,83,0,119,0,120,3, - 89,0,119,1,124,14,83,0,41,16,122,190,67,111,110,99, - 114,101,116,101,32,105,109,112,108,101,109,101,110,116,97,116, - 105,111,110,32,111,102,32,73,110,115,112,101,99,116,76,111, - 97,100,101,114,46,103,101,116,95,99,111,100,101,46,10,10, - 32,32,32,32,32,32,32,32,82,101,97,100,105,110,103,32, - 111,102,32,98,121,116,101,99,111,100,101,32,114,101,113,117, - 105,114,101,115,32,112,97,116,104,95,115,116,97,116,115,32, - 116,111,32,98,101,32,105,109,112,108,101,109,101,110,116,101, - 100,46,32,84,111,32,119,114,105,116,101,10,32,32,32,32, - 32,32,32,32,98,121,116,101,99,111,100,101,44,32,115,101, - 116,95,100,97,116,97,32,109,117,115,116,32,97,108,115,111, - 32,98,101,32,105,109,112,108,101,109,101,110,116,101,100,46, - 10,10,32,32,32,32,32,32,32,32,78,70,84,114,243,0, - 0,0,114,230,0,0,0,114,212,0,0,0,114,6,0,0, - 0,114,1,0,0,0,114,52,0,0,0,218,5,110,101,118, - 101,114,218,6,97,108,119,97,121,115,218,4,115,105,122,101, - 122,13,123,125,32,109,97,116,99,104,101,115,32,123,125,41, - 3,114,188,0,0,0,114,174,0,0,0,114,177,0,0,0, - 122,19,99,111,100,101,32,111,98,106,101,99,116,32,102,114, - 111,109,32,123,125,41,27,114,8,1,0,0,114,153,0,0, - 0,114,92,1,0,0,114,40,0,0,0,114,99,1,0,0, - 114,220,0,0,0,218,10,109,101,109,111,114,121,118,105,101, - 119,114,235,0,0,0,218,21,99,104,101,99,107,95,104,97, - 115,104,95,98,97,115,101,100,95,112,121,99,115,114,227,0, - 0,0,218,17,95,82,65,87,95,77,65,71,73,67,95,78, - 85,77,66,69,82,114,228,0,0,0,114,225,0,0,0,114, - 208,0,0,0,114,216,0,0,0,114,238,0,0,0,114,189, - 0,0,0,114,217,0,0,0,114,87,0,0,0,114,135,0, - 0,0,114,105,1,0,0,114,20,0,0,0,218,19,100,111, - 110,116,95,119,114,105,116,101,95,98,121,116,101,99,111,100, - 101,114,247,0,0,0,114,244,0,0,0,114,7,0,0,0, - 114,96,1,0,0,41,15,114,190,0,0,0,114,43,1,0, - 0,114,177,0,0,0,114,223,0,0,0,114,255,0,0,0, - 114,227,0,0,0,218,10,104,97,115,104,95,98,97,115,101, - 100,218,12,99,104,101,99,107,95,115,111,117,114,99,101,114, - 174,0,0,0,218,2,115,116,114,48,0,0,0,114,218,0, - 0,0,114,21,0,0,0,218,10,98,121,116,101,115,95,100, - 97,116,97,218,11,99,111,100,101,95,111,98,106,101,99,116, - 115,15,0,0,0,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,114,10,0,0,0,114,77,1,0,0,122,21, - 83,111,117,114,99,101,76,111,97,100,101,114,46,103,101,116, - 95,99,111,100,101,42,4,0,0,115,147,2,0,0,128,0, - 240,14,0,23,27,215,22,39,209,22,39,168,8,211,22,49, - 136,11,216,23,27,136,12,216,23,27,136,12,216,22,26,136, - 11,216,21,26,136,10,216,23,27,136,12,240,2,51,9,74, - 1,220,28,45,168,107,211,28,58,136,77,240,8,46,13,74, - 1,216,21,25,151,95,145,95,160,91,211,21,49,144,2,244, - 8,0,32,35,160,50,160,103,161,59,211,31,47,144,12,240, - 2,40,17,74,1,216,27,31,159,61,153,61,168,29,211,27, - 55,144,68,240,10,0,33,41,216,32,45,241,5,3,35,22, - 144,75,240,8,31,21,74,1,220,32,45,168,100,176,72,184, - 107,211,32,74,152,5,220,37,47,176,4,211,37,53,176,98, - 176,99,208,37,58,152,10,216,37,42,168,83,161,91,176,65, - 209,37,53,152,10,217,27,37,216,43,48,176,52,169,60,184, - 49,209,43,60,152,76,220,32,36,215,32,58,209,32,58,184, - 103,210,32,69,217,33,45,220,33,37,215,33,59,209,33,59, - 184,120,210,33,71,216,47,51,175,125,169,125,184,91,211,47, - 73,160,12,220,46,50,215,46,62,209,46,62,220,36,53,216, - 36,48,243,5,3,47,34,160,11,244,8,0,33,51,176,52, - 184,27,192,104,216,51,62,245,3,1,33,64,1,244,6,0, - 29,52,216,32,36,216,32,44,216,32,34,160,54,161,10,216, - 32,40,216,32,43,244,11,6,29,30,244,20,0,25,35,215, - 24,51,209,24,51,176,79,192,93,216,52,63,244,3,1,25, - 65,1,228,31,48,176,26,192,40,216,63,76,216,61,72,244, - 5,2,32,74,1,240,0,2,25,74,1,248,244,11,0,29, - 40,172,24,208,27,50,242,0,1,21,29,217,24,28,240,3, - 1,21,29,251,244,63,0,24,31,242,0,1,17,25,217,20, - 24,240,3,1,17,25,251,244,13,0,20,27,242,0,1,13, - 21,217,16,20,240,3,1,13,21,251,244,11,0,16,35,242, - 0,1,9,33,216,28,32,138,77,240,3,1,9,33,250,240, - 100,1,0,12,24,208,11,31,216,27,31,159,61,153,61,168, - 27,211,27,53,136,76,216,22,26,215,22,41,209,22,41,168, - 44,184,11,211,22,68,136,11,220,8,18,215,8,35,209,8, - 35,208,36,57,184,59,212,8,71,220,16,19,215,16,39,210, - 16,39,168,77,208,44,69,216,16,28,208,16,40,217,15,25, - 216,19,30,208,19,38,220,34,38,215,34,50,209,34,50,212, - 51,68,216,51,63,243,3,1,35,65,1,144,75,228,23,40, - 168,27,176,107,192,60,211,23,80,145,4,228,23,45,168,107, - 184,60,220,46,49,176,44,211,46,63,243,3,1,24,65,1, - 144,4,240,4,3,13,21,216,16,20,215,16,36,209,16,36, - 160,91,176,45,192,20,212,16,70,240,6,0,16,27,208,8, - 26,248,244,5,0,20,39,242,0,1,13,21,216,16,20,216, - 15,26,208,8,26,240,5,1,13,21,250,224,15,26,208,8, - 26,115,89,0,0,0,157,11,69,26,0,169,17,69,11,0, - 193,9,17,68,60,0,193,32,66,33,68,39,0,196,39,15, - 68,57,3,196,56,1,68,57,3,196,60,9,69,8,3,197, - 7,1,69,8,3,197,11,9,69,23,3,197,22,1,69,23, - 3,197,26,11,69,40,3,197,39,1,69,40,3,199,61,19, - 72,18,0,200,18,9,72,31,3,200,30,1,72,31,3,78, - 41,10,114,197,0,0,0,114,196,0,0,0,114,198,0,0, - 0,114,90,1,0,0,114,92,1,0,0,114,96,1,0,0, - 114,94,1,0,0,114,100,1,0,0,114,105,1,0,0,114, - 77,1,0,0,114,30,0,0,0,114,28,0,0,0,114,10, - 0,0,0,114,87,1,0,0,114,87,1,0,0,239,3,0, - 0,115,44,0,0,0,132,0,242,4,6,5,22,242,16,12, - 5,48,242,28,8,5,47,242,20,4,5,12,242,14,8,5, - 43,240,20,0,55,57,244,0,6,5,79,1,243,16,83,1, - 5,27,114,28,0,0,0,114,87,1,0,0,99,0,0,0, - 0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0, - 0,243,100,0,0,0,135,0,151,0,101,0,90,1,100,0, - 90,2,100,1,90,3,100,2,132,0,90,4,100,3,132,0, - 90,5,100,4,132,0,90,6,101,7,136,0,102,1,100,5, - 132,8,171,0,0,0,0,0,0,0,90,8,101,7,100,6, - 132,0,171,0,0,0,0,0,0,0,90,9,100,7,132,0, - 90,10,101,7,100,8,132,0,171,0,0,0,0,0,0,0, - 90,11,136,0,120,1,90,12,83,0,41,9,218,10,70,105, - 108,101,76,111,97,100,101,114,122,103,66,97,115,101,32,102, - 105,108,101,32,108,111,97,100,101,114,32,99,108,97,115,115, - 32,119,104,105,99,104,32,105,109,112,108,101,109,101,110,116, - 115,32,116,104,101,32,108,111,97,100,101,114,32,112,114,111, - 116,111,99,111,108,32,109,101,116,104,111,100,115,32,116,104, - 97,116,10,32,32,32,32,114,101,113,117,105,114,101,32,102, - 105,108,101,32,115,121,115,116,101,109,32,117,115,97,103,101, - 46,99,3,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,3,0,0,0,243,32,0,0,0,151,0,124,1,124, - 0,95,0,0,0,0,0,0,0,0,0,124,2,124,0,95, - 1,0,0,0,0,0,0,0,0,121,1,41,2,122,75,67, - 97,99,104,101,32,116,104,101,32,109,111,100,117,108,101,32, - 110,97,109,101,32,97,110,100,32,116,104,101,32,112,97,116, - 104,32,116,111,32,116,104,101,32,102,105,108,101,32,102,111, - 117,110,100,32,98,121,32,116,104,101,10,32,32,32,32,32, - 32,32,32,102,105,110,100,101,114,46,78,114,230,0,0,0, - 41,3,114,190,0,0,0,114,43,1,0,0,114,68,0,0, - 0,115,3,0,0,0,32,32,32,114,10,0,0,0,114,68, - 1,0,0,122,19,70,105,108,101,76,111,97,100,101,114,46, - 95,95,105,110,105,116,95,95,133,4,0,0,115,18,0,0, - 0,128,0,240,6,0,21,29,136,4,140,9,216,20,24,136, - 4,141,9,114,28,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,3,0,0,0,243,106,0, - 0,0,151,0,124,0,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,106,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 107,40,0,0,120,1,114,25,1,0,124,0,106,2,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,107,40,0,0,83,0,114,77,0,0, - 0,169,2,218,9,95,95,99,108,97,115,115,95,95,114,203, - 0,0,0,169,2,114,190,0,0,0,218,5,111,116,104,101, - 114,115,2,0,0,0,32,32,114,10,0,0,0,218,6,95, - 95,101,113,95,95,122,17,70,105,108,101,76,111,97,100,101, - 114,46,95,95,101,113,95,95,139,4,0,0,243,44,0,0, - 0,128,0,216,16,20,151,14,145,14,160,37,167,47,161,47, - 209,16,49,242,0,1,17,48,216,16,20,151,13,145,13,160, - 21,167,30,161,30,209,16,47,240,3,1,9,49,114,28,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,88,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,124,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,116,1,0,0,0,0,0,0,0,0, - 124,0,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,122,12, - 0,0,83,0,114,77,0,0,0,169,3,218,4,104,97,115, - 104,114,188,0,0,0,114,68,0,0,0,169,1,114,190,0, - 0,0,115,1,0,0,0,32,114,10,0,0,0,218,8,95, - 95,104,97,115,104,95,95,122,19,70,105,108,101,76,111,97, - 100,101,114,46,95,95,104,97,115,104,95,95,143,4,0,0, - 243,29,0,0,0,128,0,220,15,19,144,68,151,73,145,73, - 139,127,164,20,160,100,167,105,161,105,163,31,209,15,48,208, - 8,48,114,28,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,243,42,0,0, - 0,149,1,151,0,116,0,0,0,0,0,0,0,0,0,116, - 2,0,0,0,0,0,0,0,0,124,0,141,11,0,0,124, - 1,171,1,0,0,0,0,0,0,83,0,41,1,122,100,76, - 111,97,100,32,97,32,109,111,100,117,108,101,32,102,114,111, - 109,32,97,32,102,105,108,101,46,10,10,32,32,32,32,32, - 32,32,32,84,104,105,115,32,109,101,116,104,111,100,32,105, + 101,99,111,100,101,32,102,105,108,101,115,46,10,78,114,34, + 0,0,0,41,3,114,196,0,0,0,114,75,0,0,0,114, + 53,0,0,0,115,3,0,0,0,32,32,32,114,10,0,0, + 0,114,112,1,0,0,218,21,83,111,117,114,99,101,76,111, + 97,100,101,114,46,115,101,116,95,100,97,116,97,41,4,0, + 0,114,89,1,0,0,114,32,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,6,0,0,0,3,0,0,0, + 243,152,0,0,0,149,0,85,0,82,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,53, + 1,0,0,0,0,0,0,110,2,30,0,85,0,82,3,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,2,53,1,0,0,0,0,0,0,110,3,91,9,0, + 0,0,0,0,0,0,0,85,3,53,1,0,0,0,0,0, + 0,36,0,33,0,91,4,0,0,0,0,0,0,0,0,7, + 0,97,16,0,0,110,4,91,7,0,0,0,0,0,0,0, + 0,83,1,85,1,83,2,57,2,85,4,101,2,83,3,110, + 4,65,4,102,1,102,0,61,3,31,0,102,1,41,4,122, + 52,67,111,110,99,114,101,116,101,32,105,109,112,108,101,109, + 101,110,116,97,116,105,111,110,32,111,102,32,73,110,115,112, + 101,99,116,76,111,97,100,101,114,46,103,101,116,95,115,111, + 117,114,99,101,46,122,39,115,111,117,114,99,101,32,110,111, + 116,32,97,118,97,105,108,97,98,108,101,32,116,104,114,111, + 117,103,104,32,103,101,116,95,100,97,116,97,40,41,114,193, + 0,0,0,78,41,5,114,15,1,0,0,218,8,103,101,116, + 95,100,97,116,97,114,95,0,0,0,114,195,0,0,0,114, + 10,1,0,0,41,5,114,196,0,0,0,114,51,1,0,0, + 114,75,0,0,0,114,6,1,0,0,114,39,1,0,0,115, + 5,0,0,0,32,32,32,32,32,114,10,0,0,0,218,10, + 103,101,116,95,115,111,117,114,99,101,218,23,83,111,117,114, + 99,101,76,111,97,100,101,114,46,103,101,116,95,115,111,117, + 114,99,101,48,4,0,0,115,90,0,0,0,128,0,224,15, + 19,215,15,32,209,15,32,160,24,211,15,42,136,4,240,2, + 4,9,54,216,27,31,159,61,153,61,168,20,211,27,46,136, + 76,244,8,0,16,29,152,92,211,15,42,208,8,42,248,244, + 7,0,16,23,243,0,2,9,54,220,18,29,208,30,71,216, + 35,43,241,3,1,19,45,216,50,53,240,3,1,13,54,251, + 240,3,2,9,54,250,115,20,0,0,0,147,17,47,0,175, + 10,65,9,3,185,11,65,4,3,193,4,5,65,9,3,114, + 177,0,0,0,41,1,218,9,95,111,112,116,105,109,105,122, + 101,99,3,0,0,0,0,0,0,0,1,0,0,0,9,0, + 0,0,3,0,0,0,243,56,0,0,0,149,0,91,0,0, + 0,0,0,0,0,0,0,82,3,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,91,4,0,0,0, + 0,0,0,0,0,88,18,83,1,83,2,85,3,83,3,57, + 6,36,0,41,4,122,114,82,101,116,117,114,110,32,116,104, + 101,32,99,111,100,101,32,111,98,106,101,99,116,32,99,111, + 109,112,105,108,101,100,32,102,114,111,109,32,115,111,117,114, + 99,101,46,10,10,84,104,101,32,39,100,97,116,97,39,32, + 97,114,103,117,109,101,110,116,32,99,97,110,32,98,101,32, + 97,110,121,32,111,98,106,101,99,116,32,116,121,112,101,32, + 116,104,97,116,32,99,111,109,112,105,108,101,40,41,32,115, + 117,112,112,111,114,116,115,46,10,114,93,1,0,0,84,41, + 2,218,12,100,111,110,116,95,105,110,104,101,114,105,116,114, + 142,0,0,0,41,3,114,216,0,0,0,114,92,1,0,0, + 218,7,99,111,109,112,105,108,101,41,4,114,196,0,0,0, + 114,53,0,0,0,114,75,0,0,0,114,122,1,0,0,115, + 4,0,0,0,32,32,32,32,114,10,0,0,0,218,14,115, + 111,117,114,99,101,95,116,111,95,99,111,100,101,218,27,83, + 111,117,114,99,101,76,111,97,100,101,114,46,115,111,117,114, + 99,101,95,116,111,95,99,111,100,101,58,4,0,0,115,41, + 0,0,0,128,0,244,10,0,16,26,215,15,51,209,15,51, + 180,71,184,84,200,22,216,53,57,192,73,240,3,0,16,52, + 240,0,1,16,79,1,240,0,1,9,79,1,114,32,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,7,0, + 0,0,3,0,0,0,243,118,4,0,0,149,0,85,0,82, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,1,53,1,0,0,0,0,0,0,110,2,83, + 1,110,3,83,1,110,4,83,1,110,5,83,2,110,6,83, + 3,110,7,30,0,91,3,0,0,0,0,0,0,0,0,85, + 2,53,1,0,0,0,0,0,0,110,8,30,0,85,0,82, + 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,2,53,1,0,0,0,0,0,0,110,9,91, + 7,0,0,0,0,0,0,0,0,85,9,83,4,5,0,0, + 0,53,1,0,0,0,0,0,0,110,3,30,0,85,0,82, + 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,8,53,1,0,0,0,0,0,0,110,10,85, + 1,85,8,83,5,46,2,110,11,30,0,91,11,0,0,0, + 0,0,0,0,0,88,161,85,11,53,3,0,0,0,0,0, + 0,110,12,91,13,0,0,0,0,0,0,0,0,85,10,53, + 1,0,0,0,0,0,0,83,6,83,1,4,0,110,13,85, + 12,83,7,45,1,0,0,83,8,58,103,0,0,110,6,85, + 6,40,0,0,0,0,0,0,0,97,113,0,0,85,12,83, + 9,45,1,0,0,83,8,58,103,0,0,110,7,91,14,0, + 0,0,0,0,0,0,0,82,16,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,10,58,119,0, + 0,97,84,0,0,85,7,40,0,0,0,0,0,0,0,100, + 20,0,0,91,14,0,0,0,0,0,0,0,0,82,16,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,83,11,58,88,0,0,97,57,0,0,85,0,82,9,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,2,53,1,0,0,0,0,0,0,110,4,91,14,0, + 0,0,0,0,0,0,0,82,18,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,34,0,91,20,0, + 0,0,0,0,0,0,0,85,4,53,2,0,0,0,0,0, + 0,110,5,91,23,0,0,0,0,0,0,0,0,88,165,85, + 1,85,11,53,4,0,0,0,0,0,0,32,0,79,18,91, + 25,0,0,0,0,0,0,0,0,85,10,85,3,85,9,83, + 12,5,0,0,0,85,1,85,11,53,5,0,0,0,0,0, + 0,32,0,91,26,0,0,0,0,0,0,0,0,82,29,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,83,13,85,8,85,2,53,3,0,0,0,0,0,0,32, + 0,91,31,0,0,0,0,0,0,0,0,88,209,85,8,85, + 2,83,14,57,4,36,0,33,0,91,32,0,0,0,0,0, + 0,0,0,91,34,0,0,0,0,0,0,0,0,52,2,7, + 0,97,3,0,0,32,0,31,0,79,54,102,0,61,3,31, + 0,102,1,33,0,91,36,0,0,0,0,0,0,0,0,7, + 0,97,3,0,0,32,0,31,0,79,38,102,0,61,3,31, + 0,102,1,33,0,91,36,0,0,0,0,0,0,0,0,7, + 0,97,3,0,0,32,0,31,0,79,22,102,0,61,3,31, + 0,102,1,33,0,91,38,0,0,0,0,0,0,0,0,7, + 0,97,5,0,0,32,0,83,1,110,8,31,0,79,4,102, + 0,61,3,31,0,102,1,85,4,99,17,0,0,85,0,82, + 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,2,53,1,0,0,0,0,0,0,110,4,85, + 0,82,41,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,88,66,53,2,0,0,0,0,0,0,110, + 14,91,26,0,0,0,0,0,0,0,0,82,29,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, + 15,85,2,53,2,0,0,0,0,0,0,32,0,91,42,0, + 0,0,0,0,0,0,0,82,44,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,100,115,0,0,85,8,98,112,0,0,85,3,98, + 109,0,0,85,6,40,0,0,0,0,0,0,0,97,43,0, + 0,85,5,99,27,0,0,91,14,0,0,0,0,0,0,0, + 0,82,18,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,91,20,0,0,0,0,0,0,0, + 0,85,4,53,2,0,0,0,0,0,0,110,5,91,47,0, + 0,0,0,0,0,0,0,88,229,85,7,53,3,0,0,0, + 0,0,0,110,10,79,21,91,49,0,0,0,0,0,0,0, + 0,88,227,91,51,0,0,0,0,0,0,0,0,85,4,53, + 1,0,0,0,0,0,0,53,3,0,0,0,0,0,0,110, + 10,30,0,85,0,82,53,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,88,40,85,10,53,3,0, + 0,0,0,0,0,32,0,85,14,36,0,33,0,91,38,0, + 0,0,0,0,0,0,0,7,0,97,4,0,0,32,0,31, + 0,85,14,36,0,102,0,61,3,31,0,102,1,85,14,36, + 0,41,16,122,166,67,111,110,99,114,101,116,101,32,105,109, + 112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,32, + 73,110,115,112,101,99,116,76,111,97,100,101,114,46,103,101, + 116,95,99,111,100,101,46,10,10,82,101,97,100,105,110,103, + 32,111,102,32,98,121,116,101,99,111,100,101,32,114,101,113, + 117,105,114,101,115,32,112,97,116,104,95,115,116,97,116,115, + 32,116,111,32,98,101,32,105,109,112,108,101,109,101,110,116, + 101,100,46,32,84,111,32,119,114,105,116,101,10,98,121,116, + 101,99,111,100,101,44,32,115,101,116,95,100,97,116,97,32, + 109,117,115,116,32,97,108,115,111,32,98,101,32,105,109,112, + 108,101,109,101,110,116,101,100,46,10,10,78,70,84,114,250, + 0,0,0,114,237,0,0,0,114,220,0,0,0,114,6,0, + 0,0,114,1,0,0,0,114,59,0,0,0,218,5,110,101, + 118,101,114,218,6,97,108,119,97,121,115,218,4,115,105,122, + 101,122,13,123,125,32,109,97,116,99,104,101,115,32,123,125, + 41,3,114,194,0,0,0,114,180,0,0,0,114,183,0,0, + 0,122,19,99,111,100,101,32,111,98,106,101,99,116,32,102, + 114,111,109,32,123,125,41,27,114,15,1,0,0,114,159,0, + 0,0,114,109,1,0,0,114,44,0,0,0,114,119,1,0, + 0,114,227,0,0,0,218,10,109,101,109,111,114,121,118,105, + 101,119,114,242,0,0,0,218,21,99,104,101,99,107,95,104, + 97,115,104,95,98,97,115,101,100,95,112,121,99,115,114,234, + 0,0,0,218,17,95,82,65,87,95,77,65,71,73,67,95, + 78,85,77,66,69,82,114,235,0,0,0,114,232,0,0,0, + 114,216,0,0,0,114,223,0,0,0,114,245,0,0,0,114, + 195,0,0,0,114,224,0,0,0,114,95,0,0,0,114,141, + 0,0,0,114,126,1,0,0,114,23,0,0,0,218,19,100, + 111,110,116,95,119,114,105,116,101,95,98,121,116,101,99,111, + 100,101,114,254,0,0,0,114,251,0,0,0,114,7,0,0, + 0,114,114,1,0,0,41,15,114,196,0,0,0,114,51,1, + 0,0,114,183,0,0,0,114,230,0,0,0,114,6,1,0, + 0,114,234,0,0,0,218,10,104,97,115,104,95,98,97,115, + 101,100,218,12,99,104,101,99,107,95,115,111,117,114,99,101, + 114,180,0,0,0,218,2,115,116,114,53,0,0,0,114,225, + 0,0,0,114,24,0,0,0,218,10,98,121,116,101,115,95, + 100,97,116,97,218,11,99,111,100,101,95,111,98,106,101,99, + 116,115,15,0,0,0,32,32,32,32,32,32,32,32,32,32, + 32,32,32,32,32,114,10,0,0,0,114,91,1,0,0,218, + 21,83,111,117,114,99,101,76,111,97,100,101,114,46,103,101, + 116,95,99,111,100,101,66,4,0,0,115,134,2,0,0,128, + 0,240,14,0,23,27,215,22,39,209,22,39,168,8,211,22, + 49,136,11,216,23,27,136,12,216,23,27,136,12,216,22,26, + 136,11,216,21,26,136,10,216,23,27,136,12,240,2,51,9, + 74,1,220,28,45,168,107,211,28,58,136,77,240,8,46,13, + 74,1,216,21,25,151,95,145,95,160,91,211,21,49,144,2, + 244,8,0,32,35,160,50,160,103,161,59,211,31,47,144,12, + 240,2,40,17,74,1,216,27,31,159,61,153,61,168,29,211, + 27,55,144,68,240,10,0,33,41,216,32,45,241,5,3,35, + 22,144,75,240,8,31,21,74,1,220,32,45,168,100,184,107, + 211,32,74,152,5,220,37,47,176,4,211,37,53,176,98,176, + 99,208,37,58,152,10,216,37,42,168,83,161,91,176,65,209, + 37,53,152,10,222,27,37,216,43,48,176,52,169,60,184,49, + 209,43,60,152,76,220,32,36,215,32,58,209,32,58,184,103, + 211,32,69,222,33,45,220,33,37,215,33,59,209,33,59,184, + 120,211,33,71,216,47,51,175,125,169,125,184,91,211,47,73, + 160,12,220,46,50,215,46,62,210,46,62,220,36,53,216,36, + 48,243,5,3,47,34,160,11,244,8,0,33,51,176,52,192, + 104,216,51,62,244,3,1,33,64,1,248,244,6,0,29,52, + 216,32,36,216,32,44,216,32,34,160,54,161,10,216,32,40, + 216,32,43,244,11,6,29,30,244,20,0,25,35,215,24,51, + 209,24,51,176,79,192,93,216,52,63,244,3,1,25,65,1, + 228,31,48,176,26,216,63,76,216,61,72,241,5,2,32,74, + 1,240,0,2,25,74,1,248,244,11,0,29,40,172,24,208, + 27,50,243,0,1,21,29,217,24,28,240,3,1,21,29,251, + 244,63,0,24,31,243,0,1,17,25,217,20,24,240,3,1, + 17,25,251,244,13,0,20,27,243,0,1,13,21,217,16,20, + 240,3,1,13,21,251,244,11,0,16,35,243,0,1,9,33, + 216,28,32,138,77,240,3,1,9,33,250,240,100,1,0,12, + 24,209,11,31,216,27,31,159,61,153,61,168,27,211,27,53, + 136,76,216,22,26,215,22,41,209,22,41,168,44,211,22,68, + 136,11,220,8,18,215,8,35,209,8,35,208,36,57,184,59, + 212,8,71,220,16,19,215,16,39,215,16,39,168,77,209,44, + 69,216,16,28,209,16,40,222,15,25,216,19,30,209,19,38, + 220,34,38,215,34,50,210,34,50,212,51,68,216,51,63,243, + 3,1,35,65,1,144,75,228,23,40,168,27,192,60,211,23, + 80,145,4,228,23,45,168,107,220,46,49,176,44,211,46,63, + 243,3,1,24,65,1,144,4,240,4,3,13,21,216,16,20, + 215,16,36,209,16,36,160,91,192,20,212,16,70,240,6,0, + 16,27,208,8,26,248,244,5,0,20,39,243,0,1,13,21, + 216,16,20,216,15,26,208,8,26,240,5,1,13,21,250,224, + 15,26,208,8,26,115,89,0,0,0,157,11,69,36,0,169, + 17,69,20,0,193,9,17,69,4,0,193,32,66,44,68,46, + 0,196,46,16,69,1,3,197,0,1,69,1,3,197,4,10, + 69,17,3,197,16,1,69,17,3,197,20,10,69,33,3,197, + 32,1,69,33,3,197,36,12,69,51,3,197,50,1,69,51, + 3,200,20,18,72,40,0,200,40,10,72,54,3,200,53,1, + 72,54,3,114,34,0,0,0,78,41,12,114,204,0,0,0, + 114,203,0,0,0,114,205,0,0,0,114,71,1,0,0,114, + 106,1,0,0,114,109,1,0,0,114,114,1,0,0,114,112, + 1,0,0,114,120,1,0,0,114,126,1,0,0,114,91,1, + 0,0,114,76,1,0,0,114,34,0,0,0,114,32,0,0, + 0,114,10,0,0,0,114,103,1,0,0,114,103,1,0,0, + 7,4,0,0,115,44,0,0,0,134,0,242,4,6,5,22, + 242,16,12,5,48,242,28,8,5,47,242,20,4,5,12,242, + 14,8,5,43,240,20,0,55,57,245,0,6,5,79,1,245, + 16,83,1,5,27,114,32,0,0,0,114,103,1,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 0,0,0,0,243,110,0,0,0,94,0,149,0,92,0,114, + 1,83,0,114,2,83,1,114,3,83,2,114,4,83,3,26, + 0,114,5,83,4,26,0,114,6,83,5,26,0,114,7,92, + 8,85,0,52,1,83,6,26,0,106,8,53,0,0,0,0, + 0,0,0,114,9,92,8,83,7,26,0,53,0,0,0,0, + 0,0,0,114,10,83,8,26,0,114,11,92,8,83,9,26, + 0,53,0,0,0,0,0,0,0,114,12,83,10,114,13,85, + 0,61,1,114,14,36,0,41,11,218,10,70,105,108,101,76, + 111,97,100,101,114,105,152,4,0,0,122,99,66,97,115,101, + 32,102,105,108,101,32,108,111,97,100,101,114,32,99,108,97, + 115,115,32,119,104,105,99,104,32,105,109,112,108,101,109,101, + 110,116,115,32,116,104,101,32,108,111,97,100,101,114,32,112, + 114,111,116,111,99,111,108,32,109,101,116,104,111,100,115,32, + 116,104,97,116,10,114,101,113,117,105,114,101,32,102,105,108, + 101,32,115,121,115,116,101,109,32,117,115,97,103,101,46,99, + 3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 3,0,0,0,243,28,0,0,0,149,0,88,16,108,0,0, + 0,0,0,0,0,0,0,88,32,108,1,0,0,0,0,0, + 0,0,0,103,1,41,2,122,67,67,97,99,104,101,32,116, + 104,101,32,109,111,100,117,108,101,32,110,97,109,101,32,97, + 110,100,32,116,104,101,32,112,97,116,104,32,116,111,32,116, + 104,101,32,102,105,108,101,32,102,111,117,110,100,32,98,121, + 32,116,104,101,10,102,105,110,100,101,114,46,78,114,237,0, + 0,0,41,3,114,196,0,0,0,114,51,1,0,0,114,75, + 0,0,0,115,3,0,0,0,32,32,32,114,10,0,0,0, + 114,80,1,0,0,218,19,70,105,108,101,76,111,97,100,101, + 114,46,95,95,105,110,105,116,95,95,157,4,0,0,115,14, + 0,0,0,128,0,240,6,0,21,29,140,9,216,20,24,141, + 9,114,32,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,3,0,0,0,243,116,0,0,0, + 149,0,85,0,82,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,1,82,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,72, + 0,0,61,1,40,0,0,0,0,0,0,0,97,25,0,0, + 32,0,85,0,82,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,1,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,72, + 0,0,36,0,114,84,0,0,0,169,2,218,9,95,95,99, + 108,97,115,115,95,95,114,210,0,0,0,169,2,114,196,0, + 0,0,218,5,111,116,104,101,114,115,2,0,0,0,32,32, + 114,10,0,0,0,218,6,95,95,101,113,95,95,218,17,70, + 105,108,101,76,111,97,100,101,114,46,95,95,101,113,95,95, + 163,4,0,0,243,44,0,0,0,128,0,216,16,20,151,14, + 145,14,160,37,167,47,161,47,209,16,49,247,0,1,17,48, + 216,16,20,151,13,145,13,160,21,167,30,161,30,209,16,47, + 240,3,1,9,49,114,32,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 88,0,0,0,149,0,91,1,0,0,0,0,0,0,0,0, + 85,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,91,1, + 0,0,0,0,0,0,0,0,85,0,82,4,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,45,12,0,0,36,0,114,84,0,0, + 0,169,3,218,4,104,97,115,104,114,194,0,0,0,114,75, + 0,0,0,169,1,114,196,0,0,0,115,1,0,0,0,32, + 114,10,0,0,0,218,8,95,95,104,97,115,104,95,95,218, + 19,70,105,108,101,76,111,97,100,101,114,46,95,95,104,97, + 115,104,95,95,167,4,0,0,243,29,0,0,0,128,0,220, + 15,19,144,68,151,73,145,73,139,127,164,20,160,100,167,105, + 161,105,163,31,209,15,48,208,8,48,114,32,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,243,42,0,0,0,62,1,149,0,91,0,0, + 0,0,0,0,0,0,0,91,2,0,0,0,0,0,0,0, + 0,85,0,93,11,0,0,85,1,53,1,0,0,0,0,0, + 0,36,0,41,1,122,84,76,111,97,100,32,97,32,109,111, + 100,117,108,101,32,102,114,111,109,32,97,32,102,105,108,101, + 46,10,10,84,104,105,115,32,109,101,116,104,111,100,32,105, 115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,85, 115,101,32,101,120,101,99,95,109,111,100,117,108,101,40,41, - 32,105,110,115,116,101,97,100,46,10,10,32,32,32,32,32, - 32,32,32,41,3,218,5,115,117,112,101,114,114,120,1,0, - 0,114,85,1,0,0,41,3,114,190,0,0,0,114,43,1, - 0,0,114,124,1,0,0,115,3,0,0,0,32,32,128,114, - 10,0,0,0,114,85,1,0,0,122,22,70,105,108,101,76, - 111,97,100,101,114,46,108,111,97,100,95,109,111,100,117,108, - 101,146,4,0,0,115,23,0,0,0,248,128,0,244,20,0, - 16,21,148,90,160,20,209,15,50,176,56,211,15,60,208,8, - 60,114,28,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,3,0,0,0,243,26,0,0,0, - 151,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,83,0,169,1,122,58,82,101, - 116,117,114,110,32,116,104,101,32,112,97,116,104,32,116,111, - 32,116,104,101,32,115,111,117,114,99,101,32,102,105,108,101, - 32,97,115,32,102,111,117,110,100,32,98,121,32,116,104,101, - 32,102,105,110,100,101,114,46,114,84,0,0,0,114,84,1, - 0,0,115,2,0,0,0,32,32,114,10,0,0,0,114,8, - 1,0,0,122,23,70,105,108,101,76,111,97,100,101,114,46, - 103,101,116,95,102,105,108,101,110,97,109,101,158,4,0,0, - 243,14,0,0,0,128,0,240,6,0,16,20,143,121,137,121, - 208,8,24,114,28,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,6,0,0,0,3,0,0,0,243,46,1, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, - 116,2,0,0,0,0,0,0,0,0,116,4,0,0,0,0, - 0,0,0,0,102,2,171,2,0,0,0,0,0,0,114,56, - 116,7,0,0,0,0,0,0,0,0,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,11, - 0,0,0,0,0,0,0,0,124,1,171,1,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,53,0,125,2,124,2, - 106,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,99,2,100,1, - 100,1,100,1,171,2,0,0,0,0,0,0,1,0,83,0, - 116,7,0,0,0,0,0,0,0,0,106,14,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 100,2,171,2,0,0,0,0,0,0,53,0,125,2,124,2, - 106,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,99,2,100,1, - 100,1,100,1,171,2,0,0,0,0,0,0,1,0,83,0, - 35,0,49,0,115,1,119,2,1,0,89,0,1,0,1,0, - 121,1,120,3,89,0,119,1,35,0,49,0,115,1,119,2, - 1,0,89,0,1,0,1,0,121,1,120,3,89,0,119,1, - 41,3,122,39,82,101,116,117,114,110,32,116,104,101,32,100, - 97,116,97,32,102,114,111,109,32,112,97,116,104,32,97,115, - 32,114,97,119,32,98,121,116,101,115,46,78,218,1,114,41, - 8,114,233,0,0,0,114,87,1,0,0,218,19,69,120,116, - 101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114, - 114,114,0,0,0,218,9,111,112,101,110,95,99,111,100,101, - 114,137,0,0,0,218,4,114,101,97,100,114,115,0,0,0, - 41,3,114,190,0,0,0,114,68,0,0,0,114,120,0,0, - 0,115,3,0,0,0,32,32,32,114,10,0,0,0,114,99, - 1,0,0,122,19,70,105,108,101,76,111,97,100,101,114,46, - 103,101,116,95,100,97,116,97,163,4,0,0,115,106,0,0, - 0,128,0,228,11,21,144,100,156,92,212,43,62,208,28,63, - 212,11,64,220,17,20,151,29,145,29,156,115,160,52,155,121, + 32,105,110,115,116,101,97,100,46,10,10,41,3,218,5,115, + 117,112,101,114,114,143,1,0,0,114,100,1,0,0,41,3, + 114,196,0,0,0,114,51,1,0,0,114,148,1,0,0,115, + 3,0,0,0,32,32,128,114,10,0,0,0,114,100,1,0, + 0,218,22,70,105,108,101,76,111,97,100,101,114,46,108,111, + 97,100,95,109,111,100,117,108,101,170,4,0,0,115,23,0, + 0,0,248,128,0,244,20,0,16,21,148,90,160,20,209,15, + 50,176,56,211,15,60,208,8,60,114,32,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3, + 0,0,0,243,26,0,0,0,149,0,85,0,82,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 36,0,169,1,122,58,82,101,116,117,114,110,32,116,104,101, + 32,112,97,116,104,32,116,111,32,116,104,101,32,115,111,117, + 114,99,101,32,102,105,108,101,32,97,115,32,102,111,117,110, + 100,32,98,121,32,116,104,101,32,102,105,110,100,101,114,46, + 114,92,0,0,0,114,99,1,0,0,115,2,0,0,0,32, + 32,114,10,0,0,0,114,15,1,0,0,218,23,70,105,108, + 101,76,111,97,100,101,114,46,103,101,116,95,102,105,108,101, + 110,97,109,101,182,4,0,0,243,14,0,0,0,128,0,240, + 6,0,16,20,143,121,137,121,208,8,24,114,32,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,6,0,0, + 0,3,0,0,0,243,80,1,0,0,149,0,91,1,0,0, + 0,0,0,0,0,0,85,0,91,2,0,0,0,0,0,0, + 0,0,91,4,0,0,0,0,0,0,0,0,52,2,53,2, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,97,57, + 0,0,91,6,0,0,0,0,0,0,0,0,82,8,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 34,0,91,11,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,2,0, + 110,2,85,2,82,13,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 115,2,83,1,83,1,83,1,53,2,0,0,0,0,0,0, + 32,0,36,0,91,6,0,0,0,0,0,0,0,0,82,14, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,34,0,85,1,83,2,53,2,0,0,0,0,0,0, + 2,0,110,2,85,2,82,13,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,115,2,83,1,83,1,83,1,53,2,0,0,0,0, + 0,0,32,0,36,0,33,0,44,0,40,0,0,0,0,0, + 0,0,100,1,0,0,102,2,32,0,31,0,32,0,32,0, + 103,1,61,3,31,0,102,1,33,0,44,0,40,0,0,0, + 0,0,0,0,100,1,0,0,102,2,32,0,31,0,32,0, + 32,0,103,1,61,3,31,0,102,1,41,3,122,39,82,101, + 116,117,114,110,32,116,104,101,32,100,97,116,97,32,102,114, + 111,109,32,112,97,116,104,32,97,115,32,114,97,119,32,98, + 121,116,101,115,46,78,218,1,114,41,8,114,240,0,0,0, + 114,103,1,0,0,218,19,69,120,116,101,110,115,105,111,110, + 70,105,108,101,76,111,97,100,101,114,114,122,0,0,0,218, + 9,111,112,101,110,95,99,111,100,101,114,143,0,0,0,218, + 4,114,101,97,100,218,6,70,105,108,101,73,79,41,3,114, + 196,0,0,0,114,75,0,0,0,114,127,0,0,0,115,3, + 0,0,0,32,32,32,114,10,0,0,0,114,119,1,0,0, + 218,19,70,105,108,101,76,111,97,100,101,114,46,103,101,116, + 95,100,97,116,97,187,4,0,0,115,109,0,0,0,128,0, + 228,11,21,144,100,156,92,212,43,62,208,28,63,215,11,64, + 209,11,64,220,17,20,151,29,146,29,156,115,160,52,155,121, 212,17,41,168,84,216,23,27,151,121,145,121,147,123,247,3, - 0,18,42,209,17,41,244,6,0,18,21,151,26,145,26,152, + 0,18,42,209,17,41,244,6,0,18,21,151,26,146,26,152, 68,160,35,212,17,38,168,36,216,23,27,151,121,145,121,147, - 123,247,3,0,18,39,209,17,38,247,7,0,18,42,208,17, - 41,250,247,6,0,18,39,208,17,38,250,115,23,0,0,0, - 181,16,65,63,3,193,37,16,66,11,3,193,63,5,66,8, - 7,194,11,5,66,20,7,99,2,0,0,0,0,0,0,0, + 123,247,3,0,18,39,209,17,38,247,7,0,18,42,213,17, + 41,250,247,6,0,18,39,213,17,38,250,115,23,0,0,0, + 187,16,66,6,3,193,44,16,66,23,3,194,6,10,66,20, + 7,194,23,10,66,37,7,99,2,0,0,0,0,0,0,0, 0,0,0,0,3,0,0,0,3,0,0,0,243,30,0,0, - 0,151,0,100,1,100,2,108,0,109,1,125,2,1,0,2, - 0,124,2,124,0,171,1,0,0,0,0,0,0,83,0,41, + 0,149,0,83,1,83,2,75,0,74,1,110,2,32,0,85, + 2,34,0,85,0,53,1,0,0,0,0,0,0,36,0,41, 3,78,114,1,0,0,0,41,1,218,10,70,105,108,101,82, 101,97,100,101,114,41,2,218,17,105,109,112,111,114,116,108, - 105,98,46,114,101,97,100,101,114,115,114,146,1,0,0,41, - 3,114,190,0,0,0,114,80,1,0,0,114,146,1,0,0, + 105,98,46,114,101,97,100,101,114,115,114,176,1,0,0,41, + 3,114,196,0,0,0,114,94,1,0,0,114,176,1,0,0, 115,3,0,0,0,32,32,32,114,10,0,0,0,218,19,103, 101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100, - 101,114,122,30,70,105,108,101,76,111,97,100,101,114,46,103, + 101,114,218,30,70,105,108,101,76,111,97,100,101,114,46,103, 101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100, - 101,114,172,4,0,0,115,16,0,0,0,128,0,229,8,48, - 217,15,25,152,36,211,15,31,208,8,31,114,28,0,0,0, - 41,13,114,197,0,0,0,114,196,0,0,0,114,198,0,0, - 0,114,199,0,0,0,114,68,1,0,0,114,127,1,0,0, - 114,133,1,0,0,114,209,0,0,0,114,85,1,0,0,114, - 8,1,0,0,114,99,1,0,0,114,148,1,0,0,218,13, - 95,95,99,108,97,115,115,99,101,108,108,95,95,41,1,114, - 124,1,0,0,115,1,0,0,0,64,114,10,0,0,0,114, - 120,1,0,0,114,120,1,0,0,128,4,0,0,115,88,0, - 0,0,248,132,0,241,4,1,5,34,242,6,4,5,25,242, - 12,2,5,49,242,8,1,5,49,240,6,0,6,17,243,2, - 9,5,61,243,3,0,6,17,240,2,9,5,61,240,22,0, - 6,17,241,2,2,5,25,243,3,0,6,17,240,2,2,5, - 25,242,8,7,5,35,240,18,0,6,17,241,2,2,5,32, - 243,3,0,6,17,244,2,2,5,32,114,28,0,0,0,114, - 120,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,0,0,0,0,243,40,0,0,0,151,0, - 101,0,90,1,100,0,90,2,100,1,90,3,100,2,132,0, - 90,4,100,3,132,0,90,5,100,4,100,5,156,1,100,6, - 132,2,90,6,121,7,41,8,218,16,83,111,117,114,99,101, - 70,105,108,101,76,111,97,100,101,114,122,62,67,111,110,99, - 114,101,116,101,32,105,109,112,108,101,109,101,110,116,97,116, - 105,111,110,32,111,102,32,83,111,117,114,99,101,76,111,97, - 100,101,114,32,117,115,105,110,103,32,116,104,101,32,102,105, - 108,101,32,115,121,115,116,101,109,46,99,2,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, - 74,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,125,2,124,2,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,2,106,4,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,1,156,2,83,0,41,2, - 122,33,82,101,116,117,114,110,32,116,104,101,32,109,101,116, - 97,100,97,116,97,32,102,111,114,32,116,104,101,32,112,97, - 116,104,46,41,2,114,243,0,0,0,114,109,1,0,0,41, - 3,114,85,0,0,0,218,8,115,116,95,109,116,105,109,101, - 218,7,115,116,95,115,105,122,101,41,3,114,190,0,0,0, - 114,68,0,0,0,114,116,1,0,0,115,3,0,0,0,32, - 32,32,114,10,0,0,0,114,92,1,0,0,122,27,83,111, - 117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,112, - 97,116,104,95,115,116,97,116,115,182,4,0,0,115,31,0, - 0,0,128,0,228,13,23,152,4,211,13,29,136,2,216,25, - 27,159,27,153,27,168,98,175,106,169,106,209,15,57,208,8, - 57,114,28,0,0,0,99,4,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,243,64,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,124,1,171,1, - 0,0,0,0,0,0,125,4,124,0,106,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, - 124,3,124,4,172,1,171,3,0,0,0,0,0,0,83,0, - 41,2,78,169,1,218,5,95,109,111,100,101,41,2,114,184, - 0,0,0,114,94,1,0,0,41,5,114,190,0,0,0,114, - 177,0,0,0,114,174,0,0,0,114,48,0,0,0,114,89, - 0,0,0,115,5,0,0,0,32,32,32,32,32,114,10,0, - 0,0,114,96,1,0,0,122,32,83,111,117,114,99,101,70, - 105,108,101,76,111,97,100,101,114,46,95,99,97,99,104,101, - 95,98,121,116,101,99,111,100,101,187,4,0,0,115,33,0, - 0,0,128,0,228,15,25,152,43,211,15,38,136,4,216,15, - 19,143,125,137,125,152,93,168,68,184,4,136,125,211,15,61, - 208,8,61,114,28,0,0,0,114,107,0,0,0,114,156,1, - 0,0,99,3,0,0,0,0,0,0,0,1,0,0,0,7, - 0,0,0,3,0,0,0,243,14,2,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,124,1,171,1,0,0,0,0, - 0,0,92,2,0,0,125,4,125,5,103,0,125,6,124,4, - 114,56,116,3,0,0,0,0,0,0,0,0,124,4,171,1, - 0,0,0,0,0,0,115,45,116,1,0,0,0,0,0,0, - 0,0,124,4,171,1,0,0,0,0,0,0,92,2,0,0, - 125,4,125,7,124,6,106,5,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,7,171,1,0,0, - 0,0,0,0,1,0,124,4,114,12,116,3,0,0,0,0, - 0,0,0,0,124,4,171,1,0,0,0,0,0,0,115,1, - 140,45,116,7,0,0,0,0,0,0,0,0,124,6,171,1, - 0,0,0,0,0,0,68,0,93,36,0,0,125,7,116,9, - 0,0,0,0,0,0,0,0,124,4,124,7,171,2,0,0, - 0,0,0,0,125,4,9,0,116,11,0,0,0,0,0,0, - 0,0,106,12,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,4,171,1,0,0,0,0,0,0, - 1,0,140,38,4,0,9,0,116,23,0,0,0,0,0,0, - 0,0,124,1,124,2,124,3,171,3,0,0,0,0,0,0, - 1,0,116,18,0,0,0,0,0,0,0,0,106,21,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,3,124,1,171,2,0,0,0,0,0,0,1,0,121,2, - 35,0,116,14,0,0,0,0,0,0,0,0,36,0,114,3, - 1,0,89,0,140,87,116,16,0,0,0,0,0,0,0,0, - 36,0,114,34,125,8,116,18,0,0,0,0,0,0,0,0, - 106,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,1,124,4,124,8,171,3,0,0,0,0, - 0,0,1,0,89,0,100,2,125,8,126,8,1,0,121,2, - 100,2,125,8,126,8,119,1,119,0,120,3,89,0,119,1, - 35,0,116,16,0,0,0,0,0,0,0,0,36,0,114,33, - 125,8,116,18,0,0,0,0,0,0,0,0,106,21,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,1,124,1,124,8,171,3,0,0,0,0,0,0,1,0, - 89,0,100,2,125,8,126,8,121,2,100,2,125,8,126,8, - 119,1,119,0,120,3,89,0,119,1,41,4,122,27,87,114, - 105,116,101,32,98,121,116,101,115,32,100,97,116,97,32,116, - 111,32,97,32,102,105,108,101,46,122,27,99,111,117,108,100, - 32,110,111,116,32,99,114,101,97,116,101,32,123,33,114,125, - 58,32,123,33,114,125,78,122,12,99,114,101,97,116,101,100, - 32,123,33,114,125,41,12,114,81,0,0,0,114,96,0,0, - 0,114,64,0,0,0,218,8,114,101,118,101,114,115,101,100, - 114,72,0,0,0,114,23,0,0,0,218,5,109,107,100,105, - 114,218,15,70,105,108,101,69,120,105,115,116,115,69,114,114, - 111,114,114,87,0,0,0,114,208,0,0,0,114,216,0,0, - 0,114,122,0,0,0,41,9,114,190,0,0,0,114,68,0, - 0,0,114,48,0,0,0,114,157,1,0,0,218,6,112,97, - 114,101,110,116,114,152,0,0,0,114,66,0,0,0,114,74, - 0,0,0,114,32,1,0,0,115,9,0,0,0,32,32,32, - 32,32,32,32,32,32,114,10,0,0,0,114,94,1,0,0, - 122,25,83,111,117,114,99,101,70,105,108,101,76,111,97,100, - 101,114,46,115,101,116,95,100,97,116,97,192,4,0,0,115, - 251,0,0,0,128,0,228,27,38,160,116,211,27,44,209,8, - 24,136,6,144,8,216,21,23,136,10,225,14,20,156,91,168, - 22,212,29,48,220,27,38,160,118,211,27,46,137,76,136,70, - 144,68,216,12,22,215,12,29,209,12,29,152,100,212,12,35, - 241,5,0,15,21,156,91,168,22,213,29,48,244,8,0,21, - 29,152,90,214,20,40,136,68,220,21,31,160,6,168,4,211, - 21,45,136,70,240,2,10,13,23,220,16,19,151,9,145,9, - 152,38,213,16,33,240,7,0,21,41,240,26,6,9,45,220, - 12,25,152,36,160,4,160,101,212,12,44,220,12,22,215,12, + 101,114,196,4,0,0,115,16,0,0,0,128,0,229,8,48, + 217,15,25,152,36,211,15,31,208,8,31,114,32,0,0,0, + 114,237,0,0,0,41,15,114,204,0,0,0,114,203,0,0, + 0,114,205,0,0,0,114,71,1,0,0,114,206,0,0,0, + 114,80,1,0,0,114,151,1,0,0,114,158,1,0,0,114, + 217,0,0,0,114,100,1,0,0,114,15,1,0,0,114,119, + 1,0,0,114,178,1,0,0,114,76,1,0,0,218,13,95, + 95,99,108,97,115,115,99,101,108,108,95,95,41,1,114,148, + 1,0,0,115,1,0,0,0,64,114,10,0,0,0,114,143, + 1,0,0,114,143,1,0,0,152,4,0,0,115,88,0,0, + 0,248,134,0,241,4,1,5,34,242,6,4,5,25,242,12, + 2,5,49,242,8,1,5,49,240,6,0,6,17,244,2,9, + 5,61,243,3,0,6,17,240,2,9,5,61,240,22,0,6, + 17,241,2,2,5,25,243,3,0,6,17,240,2,2,5,25, + 242,8,7,5,35,240,18,0,6,17,241,2,2,5,32,243, + 3,0,6,17,246,2,2,5,32,114,32,0,0,0,114,143, + 1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,0,0,0,0,243,50,0,0,0,149,0,92, + 0,114,1,83,0,114,2,83,1,114,3,83,2,114,4,83, + 3,26,0,114,5,83,4,26,0,114,6,83,5,83,6,46, + 1,83,7,26,0,106,2,114,7,83,8,114,8,103,9,41, + 10,218,16,83,111,117,114,99,101,70,105,108,101,76,111,97, + 100,101,114,105,202,4,0,0,122,62,67,111,110,99,114,101, + 116,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111, + 110,32,111,102,32,83,111,117,114,99,101,76,111,97,100,101, + 114,32,117,115,105,110,103,32,116,104,101,32,102,105,108,101, + 32,115,121,115,116,101,109,46,99,2,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,3,0,0,0,243,74,0, + 0,0,149,0,91,1,0,0,0,0,0,0,0,0,85,1, + 53,1,0,0,0,0,0,0,110,2,85,2,82,2,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,2,82,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,1,46,2,36,0,41,2,122,33, + 82,101,116,117,114,110,32,116,104,101,32,109,101,116,97,100, + 97,116,97,32,102,111,114,32,116,104,101,32,112,97,116,104, + 46,41,2,114,250,0,0,0,114,131,1,0,0,41,3,114, + 93,0,0,0,218,8,115,116,95,109,116,105,109,101,218,7, + 115,116,95,115,105,122,101,41,3,114,196,0,0,0,114,75, + 0,0,0,114,138,1,0,0,115,3,0,0,0,32,32,32, + 114,10,0,0,0,114,109,1,0,0,218,27,83,111,117,114, + 99,101,70,105,108,101,76,111,97,100,101,114,46,112,97,116, + 104,95,115,116,97,116,115,206,4,0,0,115,31,0,0,0, + 128,0,228,13,23,152,4,211,13,29,136,2,216,25,27,159, + 27,153,27,168,98,175,106,169,106,209,15,57,208,8,57,114, + 32,0,0,0,99,4,0,0,0,0,0,0,0,0,0,0, + 0,6,0,0,0,3,0,0,0,243,56,0,0,0,149,0, + 91,1,0,0,0,0,0,0,0,0,85,1,53,1,0,0, + 0,0,0,0,110,4,85,0,82,3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,88,35,85,4, + 83,1,57,3,36,0,41,2,78,169,1,218,5,95,109,111, + 100,101,41,2,114,190,0,0,0,114,112,1,0,0,41,5, + 114,196,0,0,0,114,183,0,0,0,114,180,0,0,0,114, + 53,0,0,0,114,97,0,0,0,115,5,0,0,0,32,32, + 32,32,32,114,10,0,0,0,114,114,1,0,0,218,32,83, + 111,117,114,99,101,70,105,108,101,76,111,97,100,101,114,46, + 95,99,97,99,104,101,95,98,121,116,101,99,111,100,101,211, + 4,0,0,115,31,0,0,0,128,0,228,15,25,152,43,211, + 15,38,136,4,216,15,19,143,125,137,125,152,93,184,4,136, + 125,208,15,61,208,8,61,114,32,0,0,0,114,115,0,0, + 0,114,188,1,0,0,99,3,0,0,0,0,0,0,0,1, + 0,0,0,7,0,0,0,3,0,0,0,243,60,2,0,0, + 149,0,91,1,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,117,2,0,0,112,69,47,0,110,6, + 85,4,40,0,0,0,0,0,0,0,97,71,0,0,91,3, + 0,0,0,0,0,0,0,0,85,4,53,1,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,100,55,0,0,91,1, + 0,0,0,0,0,0,0,0,85,4,53,1,0,0,0,0, + 0,0,117,2,0,0,112,71,85,6,82,5,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,7, + 53,1,0,0,0,0,0,0,32,0,85,4,40,0,0,0, + 0,0,0,0,97,18,0,0,91,3,0,0,0,0,0,0, + 0,0,85,4,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,100,2,0,0,77,55,0,0,91,7,0,0, + 0,0,0,0,0,0,85,6,53,1,0,0,0,0,0,0, + 19,0,72,37,0,0,110,7,91,9,0,0,0,0,0,0, + 0,0,88,71,53,2,0,0,0,0,0,0,110,4,30,0, + 91,10,0,0,0,0,0,0,0,0,82,12,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 85,4,53,1,0,0,0,0,0,0,32,0,77,39,0,0, + 11,0,32,0,30,0,91,23,0,0,0,0,0,0,0,0, + 88,18,85,3,53,3,0,0,0,0,0,0,32,0,91,18, + 0,0,0,0,0,0,0,0,82,21,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,3,85,1, + 53,2,0,0,0,0,0,0,32,0,103,2,33,0,91,14, + 0,0,0,0,0,0,0,0,7,0,97,4,0,0,32,0, + 31,0,77,90,0,0,91,16,0,0,0,0,0,0,0,0, + 7,0,97,33,0,0,110,8,91,18,0,0,0,0,0,0, + 0,0,82,21,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,1,88,72,53,3,0,0,0,0, + 0,0,32,0,31,0,83,2,110,8,65,8,32,0,103,2, + 83,2,110,8,65,8,102,1,102,0,61,3,31,0,102,1, + 33,0,91,16,0,0,0,0,0,0,0,0,7,0,97,33, + 0,0,110,8,91,18,0,0,0,0,0,0,0,0,82,21, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,1,85,1,85,8,53,3,0,0,0,0,0,0, + 32,0,31,0,83,2,110,8,65,8,103,2,83,2,110,8, + 65,8,102,1,102,0,61,3,31,0,102,1,41,4,122,27, + 87,114,105,116,101,32,98,121,116,101,115,32,100,97,116,97, + 32,116,111,32,97,32,102,105,108,101,46,122,27,99,111,117, + 108,100,32,110,111,116,32,99,114,101,97,116,101,32,123,33, + 114,125,58,32,123,33,114,125,78,122,12,99,114,101,97,116, + 101,100,32,123,33,114,125,41,12,114,89,0,0,0,114,104, + 0,0,0,114,71,0,0,0,218,8,114,101,118,101,114,115, + 101,100,114,79,0,0,0,114,26,0,0,0,218,5,109,107, + 100,105,114,218,15,70,105,108,101,69,120,105,115,116,115,69, + 114,114,111,114,114,95,0,0,0,114,216,0,0,0,114,223, + 0,0,0,114,128,0,0,0,41,9,114,196,0,0,0,114, + 75,0,0,0,114,53,0,0,0,114,189,1,0,0,218,6, + 112,97,114,101,110,116,114,158,0,0,0,114,73,0,0,0, + 114,81,0,0,0,114,39,1,0,0,115,9,0,0,0,32, + 32,32,32,32,32,32,32,32,114,10,0,0,0,114,112,1, + 0,0,218,25,83,111,117,114,99,101,70,105,108,101,76,111, + 97,100,101,114,46,115,101,116,95,100,97,116,97,216,4,0, + 0,115,247,0,0,0,128,0,228,27,38,160,116,211,27,44, + 209,8,24,136,6,216,21,23,136,10,230,14,20,156,91,168, + 22,215,29,48,209,29,48,220,27,38,160,118,211,27,46,137, + 76,136,70,216,12,22,215,12,29,209,12,29,152,100,212,12, + 35,246,5,0,15,21,156,91,168,22,215,29,48,211,29,48, + 244,8,0,21,29,152,90,214,20,40,136,68,220,21,31,160, + 6,211,21,45,136,70,240,2,10,13,23,220,16,19,151,9, + 146,9,152,38,214,16,33,241,7,0,21,41,240,26,6,9, + 45,220,12,25,152,36,160,101,212,12,44,220,12,22,215,12, 39,209,12,39,168,14,184,4,213,12,61,248,244,23,0,20, - 35,242,0,2,13,25,225,16,24,220,19,26,242,0,5,13, + 35,243,0,2,13,25,226,16,24,220,19,26,243,0,5,13, 23,244,6,0,17,27,215,16,43,209,16,43,208,44,73,216, - 44,50,176,67,244,3,1,17,57,229,16,22,251,240,11,5, - 13,23,251,244,18,0,16,23,242,0,3,9,45,228,12,22, - 215,12,39,209,12,39,208,40,69,192,116,216,40,43,247,3, - 1,13,45,241,0,1,13,45,251,240,5,3,9,45,250,115, - 54,0,0,0,193,38,21,66,34,2,193,62,35,67,26,0, - 194,34,9,67,23,5,194,45,8,67,23,5,194,53,23,67, - 18,5,195,18,5,67,23,5,195,26,9,68,4,3,195,35, - 23,67,63,3,195,63,5,68,4,3,78,41,7,114,197,0, - 0,0,114,196,0,0,0,114,198,0,0,0,114,199,0,0, - 0,114,92,1,0,0,114,96,1,0,0,114,94,1,0,0, - 114,30,0,0,0,114,28,0,0,0,114,10,0,0,0,114, - 151,1,0,0,114,151,1,0,0,178,4,0,0,115,25,0, - 0,0,132,0,225,4,72,242,4,3,5,58,242,10,3,5, - 62,240,10,0,45,50,245,0,28,5,45,114,28,0,0,0, - 114,151,1,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,0,0,0,0,243,28,0,0,0,151, - 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,132, - 0,90,4,100,3,132,0,90,5,121,4,41,5,218,20,83, - 111,117,114,99,101,108,101,115,115,70,105,108,101,76,111,97, - 100,101,114,122,45,76,111,97,100,101,114,32,119,104,105,99, - 104,32,104,97,110,100,108,101,115,32,115,111,117,114,99,101, - 108,101,115,115,32,102,105,108,101,32,105,109,112,111,114,116, - 115,46,99,2,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,3,0,0,0,243,158,0,0,0,151,0,124,0, - 106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,125,2, - 124,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 125,3,124,1,124,2,100,1,156,2,125,4,116,5,0,0, - 0,0,0,0,0,0,124,3,124,1,124,4,171,3,0,0, - 0,0,0,0,1,0,116,7,0,0,0,0,0,0,0,0, - 116,9,0,0,0,0,0,0,0,0,124,3,171,1,0,0, - 0,0,0,0,100,2,100,0,26,0,124,1,124,2,172,3, - 171,3,0,0,0,0,0,0,83,0,41,4,78,114,230,0, - 0,0,114,212,0,0,0,41,2,114,188,0,0,0,114,174, - 0,0,0,41,5,114,8,1,0,0,114,99,1,0,0,114, - 220,0,0,0,114,238,0,0,0,114,110,1,0,0,41,5, - 114,190,0,0,0,114,43,1,0,0,114,68,0,0,0,114, - 48,0,0,0,114,218,0,0,0,115,5,0,0,0,32,32, - 32,32,32,114,10,0,0,0,114,77,1,0,0,122,29,83, - 111,117,114,99,101,108,101,115,115,70,105,108,101,76,111,97, - 100,101,114,46,103,101,116,95,99,111,100,101,227,4,0,0, - 115,95,0,0,0,128,0,216,15,19,215,15,32,209,15,32, - 160,24,211,15,42,136,4,216,15,19,143,125,137,125,152,84, - 211,15,34,136,4,240,8,0,21,29,216,20,24,241,5,3, - 23,10,136,11,244,8,0,9,22,144,100,152,72,160,107,212, - 8,50,220,15,32,220,12,22,144,116,211,12,28,152,82,152, - 83,208,12,33,216,17,25,216,26,30,244,7,4,16,10,240, - 0,4,9,10,114,28,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,243,4, - 0,0,0,151,0,121,1,41,2,122,39,82,101,116,117,114, - 110,32,78,111,110,101,32,97,115,32,116,104,101,114,101,32, - 105,115,32,110,111,32,115,111,117,114,99,101,32,99,111,100, - 101,46,78,114,30,0,0,0,114,84,1,0,0,115,2,0, - 0,0,32,32,114,10,0,0,0,114,100,1,0,0,122,31, - 83,111,117,114,99,101,108,101,115,115,70,105,108,101,76,111, - 97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,243, - 4,0,0,243,5,0,0,0,128,0,224,15,19,114,28,0, - 0,0,78,41,6,114,197,0,0,0,114,196,0,0,0,114, - 198,0,0,0,114,199,0,0,0,114,77,1,0,0,114,100, - 1,0,0,114,30,0,0,0,114,28,0,0,0,114,10,0, - 0,0,114,164,1,0,0,114,164,1,0,0,223,4,0,0, - 115,15,0,0,0,132,0,225,4,55,242,4,14,5,10,243, - 32,2,5,20,114,28,0,0,0,114,164,1,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0, - 0,0,0,243,80,0,0,0,151,0,101,0,90,1,100,0, - 90,2,100,1,90,3,100,2,132,0,90,4,100,3,132,0, - 90,5,100,4,132,0,90,6,100,5,132,0,90,7,100,6, - 132,0,90,8,100,7,132,0,90,9,100,8,132,0,90,10, - 100,9,132,0,90,11,101,12,100,10,132,0,171,0,0,0, - 0,0,0,0,90,13,121,11,41,12,114,142,1,0,0,122, - 93,76,111,97,100,101,114,32,102,111,114,32,101,120,116,101, - 110,115,105,111,110,32,109,111,100,117,108,101,115,46,10,10, - 32,32,32,32,84,104,101,32,99,111,110,115,116,114,117,99, - 116,111,114,32,105,115,32,100,101,115,105,103,110,101,100,32, - 116,111,32,119,111,114,107,32,119,105,116,104,32,70,105,108, - 101,70,105,110,100,101,114,46,10,10,32,32,32,32,99,3, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,243,32,0,0,0,151,0,124,1,124,0,95,0, - 0,0,0,0,0,0,0,0,124,2,124,0,95,1,0,0, - 0,0,0,0,0,0,121,0,114,77,0,0,0,114,230,0, - 0,0,41,3,114,190,0,0,0,114,188,0,0,0,114,68, - 0,0,0,115,3,0,0,0,32,32,32,114,10,0,0,0, - 114,68,1,0,0,122,28,69,120,116,101,110,115,105,111,110, - 70,105,108,101,76,111,97,100,101,114,46,95,95,105,110,105, - 116,95,95,0,5,0,0,115,16,0,0,0,128,0,216,20, - 24,136,4,140,9,216,20,24,136,4,141,9,114,28,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,3,0,0,0,243,106,0,0,0,151,0,124,0,106, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,1,106,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,107,40,0,0,120,1,114, - 25,1,0,124,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,106,2,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,107, - 40,0,0,83,0,114,77,0,0,0,114,123,1,0,0,114, - 125,1,0,0,115,2,0,0,0,32,32,114,10,0,0,0, - 114,127,1,0,0,122,26,69,120,116,101,110,115,105,111,110, - 70,105,108,101,76,111,97,100,101,114,46,95,95,101,113,95, - 95,4,5,0,0,114,128,1,0,0,114,28,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,88,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,106,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,116,1,0,0,0,0,0,0,0,0,124,0,106, - 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,122,12,0,0,83, - 0,114,77,0,0,0,114,130,1,0,0,114,132,1,0,0, - 115,1,0,0,0,32,114,10,0,0,0,114,133,1,0,0, - 122,28,69,120,116,101,110,115,105,111,110,70,105,108,101,76, - 111,97,100,101,114,46,95,95,104,97,115,104,95,95,8,5, - 0,0,114,134,1,0,0,114,28,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, - 0,243,164,0,0,0,151,0,116,0,0,0,0,0,0,0, - 0,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,116,4,0,0,0,0,0,0,0,0, - 106,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,2,0,0,0,0,0,0,125,2, - 116,0,0,0,0,0,0,0,0,0,106,9,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, - 124,1,106,10,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,106,12,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,3,0,0, - 0,0,0,0,1,0,124,2,83,0,41,2,122,40,67,114, - 101,97,116,101,32,97,110,32,117,110,105,110,105,116,105,97, - 108,105,122,101,100,32,101,120,116,101,110,115,105,111,110,32, - 109,111,100,117,108,101,122,38,101,120,116,101,110,115,105,111, - 110,32,109,111,100,117,108,101,32,123,33,114,125,32,108,111, - 97,100,101,100,32,102,114,111,109,32,123,33,114,125,41,7, - 114,208,0,0,0,114,78,1,0,0,114,235,0,0,0,218, - 14,99,114,101,97,116,101,95,100,121,110,97,109,105,99,114, - 216,0,0,0,114,188,0,0,0,114,68,0,0,0,41,3, - 114,190,0,0,0,114,17,1,0,0,114,80,1,0,0,115, - 3,0,0,0,32,32,32,114,10,0,0,0,114,74,1,0, - 0,122,33,69,120,116,101,110,115,105,111,110,70,105,108,101, - 76,111,97,100,101,114,46,99,114,101,97,116,101,95,109,111, - 100,117,108,101,11,5,0,0,115,64,0,0,0,128,0,228, - 17,27,215,17,53,209,17,53,220,12,16,215,12,31,209,12, - 31,160,20,243,3,1,18,39,136,6,228,8,18,215,8,35, - 209,8,35,208,36,76,216,25,29,159,25,153,25,160,68,167, - 73,161,73,244,3,1,9,47,224,15,21,136,13,114,28,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,3,0,0,0,243,162,0,0,0,151,0,116,0, - 0,0,0,0,0,0,0,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,4,0,0, - 0,0,0,0,0,0,106,6,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,171,2,0,0, - 0,0,0,0,1,0,116,0,0,0,0,0,0,0,0,0, - 106,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,1,124,0,106,10,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,106,12, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,3,0,0,0,0,0,0,1,0,121,2,41,3, - 122,30,73,110,105,116,105,97,108,105,122,101,32,97,110,32, - 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101, - 122,40,101,120,116,101,110,115,105,111,110,32,109,111,100,117, - 108,101,32,123,33,114,125,32,101,120,101,99,117,116,101,100, - 32,102,114,111,109,32,123,33,114,125,78,41,7,114,208,0, - 0,0,114,78,1,0,0,114,235,0,0,0,218,12,101,120, - 101,99,95,100,121,110,97,109,105,99,114,216,0,0,0,114, - 188,0,0,0,114,68,0,0,0,169,2,114,190,0,0,0, - 114,80,1,0,0,115,2,0,0,0,32,32,114,10,0,0, - 0,114,81,1,0,0,122,31,69,120,116,101,110,115,105,111, - 110,70,105,108,101,76,111,97,100,101,114,46,101,120,101,99, - 95,109,111,100,117,108,101,19,5,0,0,115,54,0,0,0, - 128,0,228,8,18,215,8,44,209,8,44,172,84,215,45,62, - 209,45,62,192,6,212,8,71,220,8,18,215,8,35,209,8, - 35,208,36,78,216,25,29,159,25,153,25,160,68,167,73,161, - 73,245,3,1,9,47,114,28,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,100,0,0,0,135,2,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,100,1,25,0,0,0,138,2,116,5,0,0,0,0,0, - 0,0,0,136,2,102,1,100,2,132,8,116,6,0,0,0, - 0,0,0,0,0,68,0,171,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,83,0,41,3,122,49,82,101,116, - 117,114,110,32,84,114,117,101,32,105,102,32,116,104,101,32, - 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101, - 32,105,115,32,97,32,112,97,99,107,97,103,101,46,114,6, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,51,0,0,0,243,46,0,0,0,149,1,75, - 0,1,0,151,0,124,0,93,12,0,0,125,1,137,2,100, - 0,124,1,122,0,0,0,107,40,0,0,150,1,151,1,1, - 0,140,14,4,0,121,1,173,3,119,1,41,2,114,68,1, - 0,0,78,114,30,0,0,0,41,3,114,8,0,0,0,218, - 6,115,117,102,102,105,120,218,9,102,105,108,101,95,110,97, - 109,101,115,3,0,0,0,32,32,128,114,10,0,0,0,114, - 11,0,0,0,122,49,69,120,116,101,110,115,105,111,110,70, - 105,108,101,76,111,97,100,101,114,46,105,115,95,112,97,99, - 107,97,103,101,46,60,108,111,99,97,108,115,62,46,60,103, - 101,110,101,120,112,114,62,28,5,0,0,115,35,0,0,0, - 248,232,0,248,128,0,240,0,1,19,53,217,33,51,144,118, - 240,3,0,20,29,160,10,168,86,209,32,51,213,19,51,217, - 33,51,249,115,4,0,0,0,131,18,21,1,41,4,114,81, - 0,0,0,114,68,0,0,0,218,3,97,110,121,114,62,1, - 0,0,41,3,114,190,0,0,0,114,43,1,0,0,114,180, - 1,0,0,115,3,0,0,0,32,32,64,114,10,0,0,0, - 114,11,1,0,0,122,30,69,120,116,101,110,115,105,111,110, - 70,105,108,101,76,111,97,100,101,114,46,105,115,95,112,97, - 99,107,97,103,101,25,5,0,0,115,48,0,0,0,248,128, - 0,228,20,31,160,4,167,9,161,9,211,20,42,168,49,209, - 20,45,136,9,220,15,18,243,0,1,19,53,221,33,51,243, - 3,1,19,53,243,0,1,16,53,240,0,1,9,53,114,28, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,243,4,0,0,0,151,0,121, - 1,41,2,122,63,82,101,116,117,114,110,32,78,111,110,101, - 32,97,115,32,97,110,32,101,120,116,101,110,115,105,111,110, - 32,109,111,100,117,108,101,32,99,97,110,110,111,116,32,99, - 114,101,97,116,101,32,97,32,99,111,100,101,32,111,98,106, - 101,99,116,46,78,114,30,0,0,0,114,84,1,0,0,115, - 2,0,0,0,32,32,114,10,0,0,0,114,77,1,0,0, - 122,28,69,120,116,101,110,115,105,111,110,70,105,108,101,76, - 111,97,100,101,114,46,103,101,116,95,99,111,100,101,31,5, - 0,0,114,167,1,0,0,114,28,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,243,4,0,0,0,151,0,121,1,41,2,122,53,82,101, - 116,117,114,110,32,78,111,110,101,32,97,115,32,101,120,116, - 101,110,115,105,111,110,32,109,111,100,117,108,101,115,32,104, - 97,118,101,32,110,111,32,115,111,117,114,99,101,32,99,111, - 100,101,46,78,114,30,0,0,0,114,84,1,0,0,115,2, - 0,0,0,32,32,114,10,0,0,0,114,100,1,0,0,122, - 30,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111, - 97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,35, - 5,0,0,114,167,1,0,0,114,28,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, - 0,0,243,26,0,0,0,151,0,124,0,106,0,0,0,0, + 44,50,244,3,1,17,57,229,16,22,251,240,11,5,13,23, + 251,244,18,0,16,23,243,0,3,9,45,228,12,22,215,12, + 39,209,12,39,208,40,69,192,116,216,40,43,247,3,1,13, + 45,241,0,1,13,45,251,240,5,3,9,45,250,115,54,0, + 0,0,193,56,22,66,54,2,194,19,34,67,48,0,194,54, + 10,67,45,5,195,3,9,67,45,5,195,12,22,67,40,5, + 195,40,5,67,45,5,195,48,10,68,27,3,195,58,23,68, + 22,3,196,22,5,68,27,3,114,34,0,0,0,78,41,9, + 114,204,0,0,0,114,203,0,0,0,114,205,0,0,0,114, + 71,1,0,0,114,206,0,0,0,114,109,1,0,0,114,114, + 1,0,0,114,112,1,0,0,114,76,1,0,0,114,34,0, + 0,0,114,32,0,0,0,114,10,0,0,0,114,182,1,0, + 0,114,182,1,0,0,202,4,0,0,115,30,0,0,0,134, + 0,225,4,72,242,4,3,5,58,242,10,3,5,62,240,10, + 0,45,50,247,0,28,5,45,240,0,28,5,45,114,32,0, + 0,0,114,182,1,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,1,0,0,0,0,0,0,0,243,36,0,0, + 0,149,0,92,0,114,1,83,0,114,2,83,1,114,3,83, + 2,114,4,83,3,26,0,114,5,83,4,26,0,114,6,83, + 5,114,7,103,6,41,7,218,20,83,111,117,114,99,101,108, + 101,115,115,70,105,108,101,76,111,97,100,101,114,105,247,4, + 0,0,122,45,76,111,97,100,101,114,32,119,104,105,99,104, + 32,104,97,110,100,108,101,115,32,115,111,117,114,99,101,108, + 101,115,115,32,102,105,108,101,32,105,109,112,111,114,116,115, + 46,99,2,0,0,0,0,0,0,0,0,0,0,0,6,0, + 0,0,3,0,0,0,243,150,0,0,0,149,0,85,0,82, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,1,53,1,0,0,0,0,0,0,110,2,85, + 0,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,2,53,1,0,0,0,0,0,0,110, + 3,85,1,85,2,83,1,46,2,110,4,91,5,0,0,0, + 0,0,0,0,0,88,49,85,4,53,3,0,0,0,0,0, + 0,32,0,91,7,0,0,0,0,0,0,0,0,91,9,0, + 0,0,0,0,0,0,0,85,3,53,1,0,0,0,0,0, + 0,83,2,83,0,4,0,85,1,85,2,83,3,57,3,36, + 0,41,4,78,114,237,0,0,0,114,220,0,0,0,41,2, + 114,194,0,0,0,114,180,0,0,0,41,5,114,15,1,0, + 0,114,119,1,0,0,114,227,0,0,0,114,245,0,0,0, + 114,132,1,0,0,41,5,114,196,0,0,0,114,51,1,0, + 0,114,75,0,0,0,114,53,0,0,0,114,225,0,0,0, + 115,5,0,0,0,32,32,32,32,32,114,10,0,0,0,114, + 91,1,0,0,218,29,83,111,117,114,99,101,108,101,115,115, + 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,99, + 111,100,101,251,4,0,0,115,93,0,0,0,128,0,216,15, + 19,215,15,32,209,15,32,160,24,211,15,42,136,4,216,15, + 19,143,125,137,125,152,84,211,15,34,136,4,240,8,0,21, + 29,216,20,24,241,5,3,23,10,136,11,244,8,0,9,22, + 144,100,160,107,212,8,50,220,15,32,220,12,22,144,116,211, + 12,28,152,82,152,83,208,12,33,216,17,25,216,26,30,241, + 7,4,16,10,240,0,4,9,10,114,32,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3, + 0,0,0,243,4,0,0,0,149,0,103,1,41,2,122,39, + 82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,116, + 104,101,114,101,32,105,115,32,110,111,32,115,111,117,114,99, + 101,32,99,111,100,101,46,78,114,34,0,0,0,114,99,1, + 0,0,115,2,0,0,0,32,32,114,10,0,0,0,114,120, + 1,0,0,218,31,83,111,117,114,99,101,108,101,115,115,70, + 105,108,101,76,111,97,100,101,114,46,103,101,116,95,115,111, + 117,114,99,101,11,5,0,0,243,5,0,0,0,128,0,224, + 15,19,114,32,0,0,0,114,34,0,0,0,78,41,8,114, + 204,0,0,0,114,203,0,0,0,114,205,0,0,0,114,71, + 1,0,0,114,206,0,0,0,114,91,1,0,0,114,120,1, + 0,0,114,76,1,0,0,114,34,0,0,0,114,32,0,0, + 0,114,10,0,0,0,114,198,1,0,0,114,198,1,0,0, + 247,4,0,0,115,15,0,0,0,134,0,225,4,55,242,4, + 14,5,10,245,32,2,5,20,114,32,0,0,0,114,198,1, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,0,0,0,0,243,88,0,0,0,149,0,92,0, + 114,1,83,0,114,2,83,1,114,3,83,2,114,4,83,3, + 26,0,114,5,83,4,26,0,114,6,83,5,26,0,114,7, + 83,6,26,0,114,8,83,7,26,0,114,9,83,8,26,0, + 114,10,83,9,26,0,114,11,83,10,26,0,114,12,92,13, + 83,11,26,0,53,0,0,0,0,0,0,0,114,14,83,12, + 114,15,103,13,41,14,114,170,1,0,0,105,16,5,0,0, + 122,85,76,111,97,100,101,114,32,102,111,114,32,101,120,116, + 101,110,115,105,111,110,32,109,111,100,117,108,101,115,46,10, + 10,84,104,101,32,99,111,110,115,116,114,117,99,116,111,114, + 32,105,115,32,100,101,115,105,103,110,101,100,32,116,111,32, + 119,111,114,107,32,119,105,116,104,32,70,105,108,101,70,105, + 110,100,101,114,46,10,10,99,3,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,3,0,0,0,243,28,0,0, + 0,149,0,88,16,108,0,0,0,0,0,0,0,0,0,88, + 32,108,1,0,0,0,0,0,0,0,0,103,0,114,84,0, + 0,0,114,237,0,0,0,41,3,114,196,0,0,0,114,194, + 0,0,0,114,75,0,0,0,115,3,0,0,0,32,32,32, + 114,10,0,0,0,114,80,1,0,0,218,28,69,120,116,101, + 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46, + 95,95,105,110,105,116,95,95,24,5,0,0,115,12,0,0, + 0,128,0,216,20,24,140,9,216,20,24,141,9,114,32,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,3,0,0,0,243,116,0,0,0,149,0,85,0, + 82,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,1,82,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,58,72,0,0,61,1, + 40,0,0,0,0,0,0,0,97,25,0,0,32,0,85,0, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,1,82,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,58,72,0,0,36,0, + 114,84,0,0,0,114,147,1,0,0,114,149,1,0,0,115, + 2,0,0,0,32,32,114,10,0,0,0,114,151,1,0,0, + 218,26,69,120,116,101,110,115,105,111,110,70,105,108,101,76, + 111,97,100,101,114,46,95,95,101,113,95,95,28,5,0,0, + 114,153,1,0,0,114,32,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 88,0,0,0,149,0,91,1,0,0,0,0,0,0,0,0, + 85,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,91,1, + 0,0,0,0,0,0,0,0,85,0,82,4,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,45,12,0,0,36,0,114,84,0,0, + 0,114,155,1,0,0,114,157,1,0,0,115,1,0,0,0, + 32,114,10,0,0,0,114,158,1,0,0,218,28,69,120,116, + 101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114, + 46,95,95,104,97,115,104,95,95,32,5,0,0,114,160,1, + 0,0,114,32,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,5,0,0,0,3,0,0,0,243,164,0,0, + 0,149,0,91,0,0,0,0,0,0,0,0,0,82,3,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,91,4,0,0,0,0,0,0,0,0,82,6,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 1,53,2,0,0,0,0,0,0,110,2,91,0,0,0,0, + 0,0,0,0,0,82,9,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,1,85,1,82,10,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,0,82,12,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,53,3,0,0,0,0,0,0,32, + 0,85,2,36,0,41,2,122,40,67,114,101,97,116,101,32, + 97,110,32,117,110,105,110,105,116,105,97,108,105,122,101,100, + 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108, + 101,122,38,101,120,116,101,110,115,105,111,110,32,109,111,100, + 117,108,101,32,123,33,114,125,32,108,111,97,100,101,100,32, + 102,114,111,109,32,123,33,114,125,41,7,114,216,0,0,0, + 114,92,1,0,0,114,242,0,0,0,218,14,99,114,101,97, + 116,101,95,100,121,110,97,109,105,99,114,223,0,0,0,114, + 194,0,0,0,114,75,0,0,0,41,3,114,196,0,0,0, + 114,24,1,0,0,114,94,1,0,0,115,3,0,0,0,32, + 32,32,114,10,0,0,0,114,87,1,0,0,218,33,69,120, + 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101, + 114,46,99,114,101,97,116,101,95,109,111,100,117,108,101,35, + 5,0,0,115,64,0,0,0,128,0,228,17,27,215,17,53, + 209,17,53,220,12,16,215,12,31,209,12,31,160,20,243,3, + 1,18,39,136,6,228,8,18,215,8,35,209,8,35,208,36, + 76,216,25,29,159,25,153,25,160,68,167,73,161,73,244,3, + 1,9,47,224,15,21,136,13,114,32,0,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, + 0,0,243,162,0,0,0,149,0,91,0,0,0,0,0,0, + 0,0,0,82,3,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,91,4,0,0,0,0,0,0,0, + 0,82,6,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,1,53,2,0,0,0,0,0,0,32, + 0,91,0,0,0,0,0,0,0,0,0,82,9,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, - 0,114,138,1,0,0,114,84,0,0,0,114,84,1,0,0, - 115,2,0,0,0,32,32,114,10,0,0,0,114,8,1,0, - 0,122,32,69,120,116,101,110,115,105,111,110,70,105,108,101, - 76,111,97,100,101,114,46,103,101,116,95,102,105,108,101,110, - 97,109,101,39,5,0,0,114,139,1,0,0,114,28,0,0, - 0,78,41,14,114,197,0,0,0,114,196,0,0,0,114,198, - 0,0,0,114,199,0,0,0,114,68,1,0,0,114,127,1, - 0,0,114,133,1,0,0,114,74,1,0,0,114,81,1,0, - 0,114,11,1,0,0,114,77,1,0,0,114,100,1,0,0, - 114,209,0,0,0,114,8,1,0,0,114,30,0,0,0,114, - 28,0,0,0,114,10,0,0,0,114,142,1,0,0,114,142, - 1,0,0,248,4,0,0,115,67,0,0,0,132,0,241,4, - 4,5,8,242,12,2,5,25,242,8,2,5,49,242,8,1, - 5,49,242,6,6,5,22,242,16,4,5,47,242,12,4,5, - 53,242,12,2,5,20,242,8,2,5,20,240,8,0,6,17, - 241,2,2,5,25,243,3,0,6,17,241,2,2,5,25,114, - 28,0,0,0,114,142,1,0,0,99,0,0,0,0,0,0, - 0,0,0,0,0,0,1,0,0,0,0,0,0,0,243,86, - 0,0,0,151,0,101,0,90,1,100,0,90,2,100,1,90, - 3,100,2,90,4,100,3,132,0,90,5,100,4,132,0,90, - 6,100,5,132,0,90,7,100,6,132,0,90,8,100,7,132, - 0,90,9,100,8,132,0,90,10,100,9,132,0,90,11,100, - 10,132,0,90,12,100,11,132,0,90,13,100,12,132,0,90, - 14,100,13,132,0,90,15,121,14,41,15,218,14,95,78,97, - 109,101,115,112,97,99,101,80,97,116,104,97,38,1,0,0, - 82,101,112,114,101,115,101,110,116,115,32,97,32,110,97,109, - 101,115,112,97,99,101,32,112,97,99,107,97,103,101,39,115, - 32,112,97,116,104,46,32,32,73,116,32,117,115,101,115,32, - 116,104,101,32,109,111,100,117,108,101,32,110,97,109,101,10, - 32,32,32,32,116,111,32,102,105,110,100,32,105,116,115,32, - 112,97,114,101,110,116,32,109,111,100,117,108,101,44,32,97, - 110,100,32,102,114,111,109,32,116,104,101,114,101,32,105,116, - 32,108,111,111,107,115,32,117,112,32,116,104,101,32,112,97, - 114,101,110,116,39,115,10,32,32,32,32,95,95,112,97,116, - 104,95,95,46,32,32,87,104,101,110,32,116,104,105,115,32, - 99,104,97,110,103,101,115,44,32,116,104,101,32,109,111,100, - 117,108,101,39,115,32,111,119,110,32,112,97,116,104,32,105, - 115,32,114,101,99,111,109,112,117,116,101,100,44,10,32,32, - 32,32,117,115,105,110,103,32,112,97,116,104,95,102,105,110, - 100,101,114,46,32,32,70,111,114,32,116,111,112,45,108,101, - 118,101,108,32,109,111,100,117,108,101,115,44,32,116,104,101, - 32,112,97,114,101,110,116,32,109,111,100,117,108,101,39,115, - 32,112,97,116,104,10,32,32,32,32,105,115,32,115,121,115, - 46,112,97,116,104,46,114,1,0,0,0,99,4,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,140,0,0,0,151,0,124,1,124,0,95,0,0,0,0, - 0,0,0,0,0,124,2,124,0,95,1,0,0,0,0,0, - 0,0,0,116,5,0,0,0,0,0,0,0,0,124,0,106, - 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,124,0,95,4,0,0,0,0,0,0,0,0,124, - 0,106,10,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,95,6,0,0,0,0,0,0,0, - 0,124,3,124,0,95,7,0,0,0,0,0,0,0,0,121, - 0,114,77,0,0,0,41,8,218,5,95,110,97,109,101,218, - 5,95,112,97,116,104,114,180,0,0,0,218,16,95,103,101, - 116,95,112,97,114,101,110,116,95,112,97,116,104,218,17,95, - 108,97,115,116,95,112,97,114,101,110,116,95,112,97,116,104, - 218,6,95,101,112,111,99,104,218,11,95,108,97,115,116,95, - 101,112,111,99,104,218,12,95,112,97,116,104,95,102,105,110, - 100,101,114,169,4,114,190,0,0,0,114,188,0,0,0,114, - 68,0,0,0,218,11,112,97,116,104,95,102,105,110,100,101, - 114,115,4,0,0,0,32,32,32,32,114,10,0,0,0,114, - 68,1,0,0,122,23,95,78,97,109,101,115,112,97,99,101, - 80,97,116,104,46,95,95,105,110,105,116,95,95,56,5,0, - 0,115,58,0,0,0,128,0,216,21,25,136,4,140,10,216, - 21,25,136,4,140,10,220,33,38,160,116,215,39,60,209,39, - 60,211,39,62,211,33,63,136,4,212,8,30,216,27,31,159, - 59,153,59,136,4,212,8,24,216,28,39,136,4,213,8,25, - 114,28,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,3,0,0,0,243,84,0,0,0,151, - 0,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,3,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,1,171,1,0, - 0,0,0,0,0,92,3,0,0,125,1,125,2,125,3,124, - 2,100,2,107,40,0,0,114,1,121,3,124,1,100,4,102, - 2,83,0,41,5,122,62,82,101,116,117,114,110,115,32,97, - 32,116,117,112,108,101,32,111,102,32,40,112,97,114,101,110, - 116,45,109,111,100,117,108,101,45,110,97,109,101,44,32,112, - 97,114,101,110,116,45,112,97,116,104,45,97,116,116,114,45, - 110,97,109,101,41,114,103,0,0,0,114,12,0,0,0,41, - 2,114,20,0,0,0,114,68,0,0,0,218,8,95,95,112, - 97,116,104,95,95,41,2,114,188,1,0,0,114,132,0,0, - 0,41,4,114,190,0,0,0,114,162,1,0,0,218,3,100, - 111,116,218,2,109,101,115,4,0,0,0,32,32,32,32,114, - 10,0,0,0,218,23,95,102,105,110,100,95,112,97,114,101, - 110,116,95,112,97,116,104,95,110,97,109,101,115,122,38,95, - 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,102, - 105,110,100,95,112,97,114,101,110,116,95,112,97,116,104,95, - 110,97,109,101,115,63,5,0,0,115,51,0,0,0,128,0, - 224,26,30,159,42,153,42,215,26,47,209,26,47,176,3,211, - 26,52,137,15,136,6,144,3,144,82,216,11,14,144,34,138, + 1,85,0,82,10,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,0,82,12,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,3,0, + 0,0,0,0,0,32,0,103,2,41,3,122,30,73,110,105, + 116,105,97,108,105,122,101,32,97,110,32,101,120,116,101,110, + 115,105,111,110,32,109,111,100,117,108,101,122,40,101,120,116, + 101,110,115,105,111,110,32,109,111,100,117,108,101,32,123,33, + 114,125,32,101,120,101,99,117,116,101,100,32,102,114,111,109, + 32,123,33,114,125,78,41,7,114,216,0,0,0,114,92,1, + 0,0,114,242,0,0,0,218,12,101,120,101,99,95,100,121, + 110,97,109,105,99,114,223,0,0,0,114,194,0,0,0,114, + 75,0,0,0,169,2,114,196,0,0,0,114,94,1,0,0, + 115,2,0,0,0,32,32,114,10,0,0,0,114,95,1,0, + 0,218,31,69,120,116,101,110,115,105,111,110,70,105,108,101, + 76,111,97,100,101,114,46,101,120,101,99,95,109,111,100,117, + 108,101,43,5,0,0,115,54,0,0,0,128,0,228,8,18, + 215,8,44,209,8,44,172,84,215,45,62,209,45,62,192,6, + 212,8,71,220,8,18,215,8,35,209,8,35,208,36,78,216, + 25,29,159,25,153,25,160,68,167,73,161,73,245,3,1,9, + 47,114,32,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,102,0,0,0, + 94,2,149,0,91,1,0,0,0,0,0,0,0,0,85,0, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,83,1,5,0, + 0,0,109,2,91,5,0,0,0,0,0,0,0,0,85,2, + 52,1,83,2,26,0,106,8,91,6,0,0,0,0,0,0, + 0,0,19,0,53,0,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,36,0,41,3,122,49,82,101,116,117,114,110, + 32,84,114,117,101,32,105,102,32,116,104,101,32,101,120,116, + 101,110,115,105,111,110,32,109,111,100,117,108,101,32,105,115, + 32,97,32,112,97,99,107,97,103,101,46,114,6,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,51,0,0,0,243,52,0,0,0,62,1,35,0,32,0, + 149,0,85,0,19,0,72,13,0,0,110,1,84,2,83,0, + 85,1,45,0,0,0,58,72,0,0,118,0,149,5,32,0, + 77,15,0,0,11,0,32,0,103,1,55,3,102,1,41,2, + 114,80,1,0,0,78,114,34,0,0,0,41,3,114,8,0, + 0,0,218,6,115,117,102,102,105,120,218,9,102,105,108,101, + 95,110,97,109,101,115,3,0,0,0,32,32,128,114,10,0, + 0,0,114,11,0,0,0,218,49,69,120,116,101,110,115,105, + 111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,95, + 112,97,99,107,97,103,101,46,60,108,111,99,97,108,115,62, + 46,60,103,101,110,101,120,112,114,62,52,5,0,0,115,34, + 0,0,0,248,233,0,128,0,240,0,1,19,53,218,33,51, + 144,118,240,3,0,20,29,160,10,168,86,209,32,51,214,19, + 51,218,33,51,249,115,4,0,0,0,131,21,24,1,41,4, + 114,89,0,0,0,114,75,0,0,0,218,3,97,110,121,114, + 73,1,0,0,41,3,114,196,0,0,0,114,51,1,0,0, + 114,221,1,0,0,115,3,0,0,0,32,32,64,114,10,0, + 0,0,114,18,1,0,0,218,30,69,120,116,101,110,115,105, + 111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,95, + 112,97,99,107,97,103,101,49,5,0,0,115,48,0,0,0, + 248,128,0,228,20,31,160,4,167,9,161,9,211,20,42,168, + 49,209,20,45,136,9,220,15,18,244,0,1,19,53,221,33, + 51,243,3,1,19,53,243,0,1,16,53,240,0,1,9,53, + 114,32,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,243,4,0,0,0,149, + 0,103,1,41,2,122,63,82,101,116,117,114,110,32,78,111, + 110,101,32,97,115,32,97,110,32,101,120,116,101,110,115,105, + 111,110,32,109,111,100,117,108,101,32,99,97,110,110,111,116, + 32,99,114,101,97,116,101,32,97,32,99,111,100,101,32,111, + 98,106,101,99,116,46,78,114,34,0,0,0,114,99,1,0, + 0,115,2,0,0,0,32,32,114,10,0,0,0,114,91,1, + 0,0,218,28,69,120,116,101,110,115,105,111,110,70,105,108, + 101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101, + 55,5,0,0,114,203,1,0,0,114,32,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3, + 0,0,0,243,4,0,0,0,149,0,103,1,41,2,122,53, + 82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,101, + 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,115, + 32,104,97,118,101,32,110,111,32,115,111,117,114,99,101,32, + 99,111,100,101,46,78,114,34,0,0,0,114,99,1,0,0, + 115,2,0,0,0,32,32,114,10,0,0,0,114,120,1,0, + 0,218,30,69,120,116,101,110,115,105,111,110,70,105,108,101, + 76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99, + 101,59,5,0,0,114,203,1,0,0,114,32,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 3,0,0,0,243,26,0,0,0,149,0,85,0,82,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,36,0,114,165,1,0,0,114,92,0,0,0,114,99,1, + 0,0,115,2,0,0,0,32,32,114,10,0,0,0,114,15, + 1,0,0,218,32,69,120,116,101,110,115,105,111,110,70,105, + 108,101,76,111,97,100,101,114,46,103,101,116,95,102,105,108, + 101,110,97,109,101,63,5,0,0,114,167,1,0,0,114,32, + 0,0,0,114,237,0,0,0,78,41,16,114,204,0,0,0, + 114,203,0,0,0,114,205,0,0,0,114,71,1,0,0,114, + 206,0,0,0,114,80,1,0,0,114,151,1,0,0,114,158, + 1,0,0,114,87,1,0,0,114,95,1,0,0,114,18,1, + 0,0,114,91,1,0,0,114,120,1,0,0,114,217,0,0, + 0,114,15,1,0,0,114,76,1,0,0,114,34,0,0,0, + 114,32,0,0,0,114,10,0,0,0,114,170,1,0,0,114, + 170,1,0,0,16,5,0,0,115,67,0,0,0,134,0,241, + 4,4,5,8,242,12,2,5,25,242,8,2,5,49,242,8, + 1,5,49,242,6,6,5,22,242,16,4,5,47,242,12,4, + 5,53,242,12,2,5,20,242,8,2,5,20,240,8,0,6, + 17,241,2,2,5,25,243,3,0,6,17,243,2,2,5,25, + 114,32,0,0,0,114,170,1,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,243, + 94,0,0,0,149,0,92,0,114,1,83,0,114,2,83,1, + 114,3,83,2,114,4,83,3,114,5,83,4,26,0,114,6, + 83,5,26,0,114,7,83,6,26,0,114,8,83,7,26,0, + 114,9,83,8,26,0,114,10,83,9,26,0,114,11,83,10, + 26,0,114,12,83,11,26,0,114,13,83,12,26,0,114,14, + 83,13,26,0,114,15,83,14,26,0,114,16,83,15,114,17, + 103,16,41,17,218,14,95,78,97,109,101,115,112,97,99,101, + 80,97,116,104,105,69,5,0,0,97,22,1,0,0,82,101, + 112,114,101,115,101,110,116,115,32,97,32,110,97,109,101,115, + 112,97,99,101,32,112,97,99,107,97,103,101,39,115,32,112, + 97,116,104,46,32,32,73,116,32,117,115,101,115,32,116,104, + 101,32,109,111,100,117,108,101,32,110,97,109,101,10,116,111, + 32,102,105,110,100,32,105,116,115,32,112,97,114,101,110,116, + 32,109,111,100,117,108,101,44,32,97,110,100,32,102,114,111, + 109,32,116,104,101,114,101,32,105,116,32,108,111,111,107,115, + 32,117,112,32,116,104,101,32,112,97,114,101,110,116,39,115, + 10,95,95,112,97,116,104,95,95,46,32,32,87,104,101,110, + 32,116,104,105,115,32,99,104,97,110,103,101,115,44,32,116, + 104,101,32,109,111,100,117,108,101,39,115,32,111,119,110,32, + 112,97,116,104,32,105,115,32,114,101,99,111,109,112,117,116, + 101,100,44,10,117,115,105,110,103,32,112,97,116,104,95,102, + 105,110,100,101,114,46,32,32,70,111,114,32,116,111,112,45, + 108,101,118,101,108,32,109,111,100,117,108,101,115,44,32,116, + 104,101,32,112,97,114,101,110,116,32,109,111,100,117,108,101, + 39,115,32,112,97,116,104,10,105,115,32,115,121,115,46,112, + 97,116,104,46,114,1,0,0,0,99,4,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,134, + 0,0,0,149,0,88,16,108,0,0,0,0,0,0,0,0, + 0,88,32,108,1,0,0,0,0,0,0,0,0,91,5,0, + 0,0,0,0,0,0,0,85,0,82,7,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,53,1,0,0,0,0,0,0,85,0,108, + 4,0,0,0,0,0,0,0,0,85,0,82,10,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 0,108,6,0,0,0,0,0,0,0,0,88,48,108,7,0, + 0,0,0,0,0,0,0,103,0,114,84,0,0,0,41,8, + 218,5,95,110,97,109,101,218,5,95,112,97,116,104,114,186, + 0,0,0,218,16,95,103,101,116,95,112,97,114,101,110,116, + 95,112,97,116,104,218,17,95,108,97,115,116,95,112,97,114, + 101,110,116,95,112,97,116,104,218,6,95,101,112,111,99,104, + 218,11,95,108,97,115,116,95,101,112,111,99,104,218,12,95, + 112,97,116,104,95,102,105,110,100,101,114,169,4,114,196,0, + 0,0,114,194,0,0,0,114,75,0,0,0,218,11,112,97, + 116,104,95,102,105,110,100,101,114,115,4,0,0,0,32,32, + 32,32,114,10,0,0,0,114,80,1,0,0,218,23,95,78, + 97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,105, + 110,105,116,95,95,80,5,0,0,115,52,0,0,0,128,0, + 216,21,25,140,10,216,21,25,140,10,220,33,38,160,116,215, + 39,60,209,39,60,211,39,62,211,33,63,136,4,212,8,30, + 216,27,31,159,59,153,59,136,4,212,8,24,216,28,39,213, + 8,25,114,32,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,3,0,0,0,243,84,0,0, + 0,149,0,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,1,53, + 1,0,0,0,0,0,0,117,3,0,0,112,18,110,3,85, + 2,83,2,58,88,0,0,97,1,0,0,103,3,85,1,83, + 4,52,2,36,0,41,5,122,62,82,101,116,117,114,110,115, + 32,97,32,116,117,112,108,101,32,111,102,32,40,112,97,114, + 101,110,116,45,109,111,100,117,108,101,45,110,97,109,101,44, + 32,112,97,114,101,110,116,45,112,97,116,104,45,97,116,116, + 114,45,110,97,109,101,41,114,111,0,0,0,114,12,0,0, + 0,41,2,114,23,0,0,0,114,75,0,0,0,218,8,95, + 95,112,97,116,104,95,95,41,2,114,234,1,0,0,114,138, + 0,0,0,41,4,114,196,0,0,0,114,195,1,0,0,218, + 3,100,111,116,218,2,109,101,115,4,0,0,0,32,32,32, + 32,114,10,0,0,0,218,23,95,102,105,110,100,95,112,97, + 114,101,110,116,95,112,97,116,104,95,110,97,109,101,115,218, + 38,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46, + 95,102,105,110,100,95,112,97,114,101,110,116,95,112,97,116, + 104,95,110,97,109,101,115,87,5,0,0,115,49,0,0,0, + 128,0,224,26,30,159,42,153,42,215,26,47,209,26,47,176, + 3,211,26,52,137,15,136,6,144,82,216,11,14,144,34,139, 57,224,19,32,240,6,0,16,22,144,122,208,15,33,208,8, - 33,114,28,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,98,0,0,0, - 151,0,124,0,106,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, - 92,2,0,0,125,1,125,2,116,3,0,0,0,0,0,0, - 0,0,116,4,0,0,0,0,0,0,0,0,106,6,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,25,0,0,0,124,2,171,2,0,0,0,0,0,0, - 83,0,114,77,0,0,0,41,4,114,201,1,0,0,114,202, - 0,0,0,114,20,0,0,0,218,7,109,111,100,117,108,101, - 115,41,3,114,190,0,0,0,218,18,112,97,114,101,110,116, - 95,109,111,100,117,108,101,95,110,97,109,101,218,14,112,97, - 116,104,95,97,116,116,114,95,110,97,109,101,115,3,0,0, - 0,32,32,32,114,10,0,0,0,114,190,1,0,0,122,31, - 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95, - 103,101,116,95,112,97,114,101,110,116,95,112,97,116,104,73, - 5,0,0,115,45,0,0,0,128,0,216,45,49,215,45,73, - 209,45,73,211,45,75,209,8,42,208,8,26,152,78,220,15, - 22,148,115,151,123,145,123,208,35,53,209,23,54,184,14,211, - 15,71,208,8,71,114,28,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, - 90,1,0,0,151,0,116,1,0,0,0,0,0,0,0,0, - 124,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,125,1,124,1,124,0,106,4,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 107,55,0,0,115,25,124,0,106,6,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,106,8, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,107,55,0,0,114,95,124,0,106,11,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 106,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,2,0,0,0,0,0,0,125,2, - 124,2,129,41,124,2,106,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,128,29,124,2,106,16, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,114,17,124,2,106,16,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,95,9,0,0, - 0,0,0,0,0,0,124,1,124,0,95,2,0,0,0,0, - 0,0,0,0,124,0,106,6,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,95,4,0,0, - 0,0,0,0,0,0,124,0,106,18,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,83,0,114,77, - 0,0,0,41,10,114,180,0,0,0,114,190,1,0,0,114, - 191,1,0,0,114,192,1,0,0,114,193,1,0,0,114,194, - 1,0,0,114,188,1,0,0,114,5,1,0,0,114,6,1, - 0,0,114,189,1,0,0,41,3,114,190,0,0,0,218,11, - 112,97,114,101,110,116,95,112,97,116,104,114,17,1,0,0, - 115,3,0,0,0,32,32,32,114,10,0,0,0,218,12,95, - 114,101,99,97,108,99,117,108,97,116,101,122,27,95,78,97, - 109,101,115,112,97,99,101,80,97,116,104,46,95,114,101,99, - 97,108,99,117,108,97,116,101,77,5,0,0,115,143,0,0, - 0,128,0,228,22,27,152,68,215,28,49,209,28,49,211,28, - 51,211,22,52,136,11,216,11,22,152,36,215,26,48,209,26, - 48,210,11,48,176,68,183,75,177,75,192,52,215,67,83,209, - 67,83,210,52,83,216,19,23,215,19,36,209,19,36,160,84, - 167,90,161,90,176,27,211,19,61,136,68,240,6,0,16,20, - 208,15,31,160,68,167,75,161,75,208,36,55,216,19,23,215, - 19,50,210,19,50,216,33,37,215,33,64,209,33,64,144,68, - 148,74,216,37,48,136,68,212,12,34,216,31,35,159,123,153, - 123,136,68,212,12,28,216,15,19,143,122,137,122,208,8,25, - 114,28,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,243,52,0,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,124,0,106,3,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,83,0,114,77,0,0,0,41,2,218,4,105,116,101,114, - 114,208,1,0,0,114,132,1,0,0,115,1,0,0,0,32, - 114,10,0,0,0,218,8,95,95,105,116,101,114,95,95,122, - 23,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46, - 95,95,105,116,101,114,95,95,91,5,0,0,115,22,0,0, - 0,128,0,220,15,19,144,68,215,20,37,209,20,37,211,20, - 39,211,15,40,208,8,40,114,28,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0, - 0,243,40,0,0,0,151,0,124,0,106,1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,124,1,25,0,0,0,83,0,114,77, - 0,0,0,169,1,114,208,1,0,0,41,2,114,190,0,0, - 0,218,5,105,110,100,101,120,115,2,0,0,0,32,32,114, - 10,0,0,0,218,11,95,95,103,101,116,105,116,101,109,95, - 95,122,26,95,78,97,109,101,115,112,97,99,101,80,97,116, - 104,46,95,95,103,101,116,105,116,101,109,95,95,94,5,0, - 0,115,22,0,0,0,128,0,216,15,19,215,15,32,209,15, - 32,211,15,34,160,53,209,15,41,208,8,41,114,28,0,0, - 0,99,3,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,3,0,0,0,243,34,0,0,0,151,0,124,2,124, - 0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,1,60,0,0,0,121,0,114,77,0, - 0,0,169,1,114,189,1,0,0,41,3,114,190,0,0,0, - 114,214,1,0,0,114,68,0,0,0,115,3,0,0,0,32, - 32,32,114,10,0,0,0,218,11,95,95,115,101,116,105,116, - 101,109,95,95,122,26,95,78,97,109,101,115,112,97,99,101, - 80,97,116,104,46,95,95,115,101,116,105,116,101,109,95,95, - 97,5,0,0,115,16,0,0,0,128,0,216,28,32,136,4, - 143,10,137,10,144,53,210,8,25,114,28,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,52,0,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,124,0,106,3,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,83,0,114,77,0,0, - 0,41,2,114,7,0,0,0,114,208,1,0,0,114,132,1, - 0,0,115,1,0,0,0,32,114,10,0,0,0,218,7,95, - 95,108,101,110,95,95,122,22,95,78,97,109,101,115,112,97, - 99,101,80,97,116,104,46,95,95,108,101,110,95,95,100,5, - 0,0,115,22,0,0,0,128,0,220,15,18,144,52,215,19, - 36,209,19,36,211,19,38,211,15,39,208,8,39,114,28,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,34,0,0,0,151,0,100,1, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,155,2,100,2,157,3,83,0,41,3, - 78,122,15,95,78,97,109,101,115,112,97,99,101,80,97,116, - 104,40,218,1,41,114,217,1,0,0,114,132,1,0,0,115, - 1,0,0,0,32,114,10,0,0,0,218,8,95,95,114,101, - 112,114,95,95,122,23,95,78,97,109,101,115,112,97,99,101, - 80,97,116,104,46,95,95,114,101,112,114,95,95,103,5,0, - 0,115,21,0,0,0,128,0,216,17,32,160,20,167,26,161, - 26,160,14,168,97,208,15,48,208,8,48,114,28,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,3,0,0,0,243,38,0,0,0,151,0,124,1,124,0, - 106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,118,0,83,0, - 114,77,0,0,0,114,213,1,0,0,169,2,114,190,0,0, - 0,218,4,105,116,101,109,115,2,0,0,0,32,32,114,10, - 0,0,0,218,12,95,95,99,111,110,116,97,105,110,115,95, - 95,122,27,95,78,97,109,101,115,112,97,99,101,80,97,116, - 104,46,95,95,99,111,110,116,97,105,110,115,95,95,106,5, - 0,0,115,22,0,0,0,128,0,216,15,19,144,116,215,23, - 40,209,23,40,211,23,42,208,15,42,208,8,42,114,28,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,58,0,0,0,151,0,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,106,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,171,1,0,0,0,0, - 0,0,1,0,121,0,114,77,0,0,0,41,2,114,189,1, - 0,0,114,64,0,0,0,114,225,1,0,0,115,2,0,0, - 0,32,32,114,10,0,0,0,114,64,0,0,0,122,21,95, - 78,97,109,101,115,112,97,99,101,80,97,116,104,46,97,112, - 112,101,110,100,109,5,0,0,115,20,0,0,0,128,0,216, - 8,12,143,10,137,10,215,8,25,209,8,25,152,36,213,8, - 31,114,28,0,0,0,78,41,16,114,197,0,0,0,114,196, - 0,0,0,114,198,0,0,0,114,199,0,0,0,114,192,1, - 0,0,114,68,1,0,0,114,201,1,0,0,114,190,1,0, - 0,114,208,1,0,0,114,211,1,0,0,114,215,1,0,0, - 114,218,1,0,0,114,220,1,0,0,114,223,1,0,0,114, - 227,1,0,0,114,64,0,0,0,114,30,0,0,0,114,28, - 0,0,0,114,10,0,0,0,114,186,1,0,0,114,186,1, - 0,0,45,5,0,0,115,70,0,0,0,132,0,241,2,4, - 5,20,240,16,0,14,15,128,70,242,4,5,5,40,242,14, - 8,5,34,242,20,2,5,72,1,242,8,12,5,26,242,28, - 1,5,41,242,6,1,5,42,242,6,1,5,33,242,6,1, - 5,40,242,6,1,5,49,242,6,1,5,43,243,6,1,5, - 32,114,28,0,0,0,114,186,1,0,0,99,0,0,0,0, - 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, - 243,60,0,0,0,151,0,101,0,90,1,100,0,90,2,100, - 1,132,0,90,3,100,2,132,0,90,4,100,3,132,0,90, - 5,100,4,132,0,90,6,100,5,132,0,90,7,100,6,132, - 0,90,8,100,7,132,0,90,9,100,8,132,0,90,10,121, - 9,41,10,218,15,78,97,109,101,115,112,97,99,101,76,111, - 97,100,101,114,99,4,0,0,0,0,0,0,0,0,0,0, - 0,5,0,0,0,3,0,0,0,243,40,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,1,124,2,124,3, - 171,3,0,0,0,0,0,0,124,0,95,1,0,0,0,0, - 0,0,0,0,121,0,114,77,0,0,0,41,2,114,186,1, - 0,0,114,189,1,0,0,114,195,1,0,0,115,4,0,0, - 0,32,32,32,32,114,10,0,0,0,114,68,1,0,0,122, - 24,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114, - 46,95,95,105,110,105,116,95,95,117,5,0,0,115,18,0, - 0,0,128,0,220,21,35,160,68,168,36,176,11,211,21,60, - 136,4,141,10,114,28,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,243,4, - 0,0,0,151,0,121,1,41,2,78,84,114,30,0,0,0, - 114,84,1,0,0,115,2,0,0,0,32,32,114,10,0,0, - 0,114,11,1,0,0,122,26,78,97,109,101,115,112,97,99, + 33,114,32,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,96,0,0,0, + 149,0,85,0,82,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 117,2,0,0,112,18,91,3,0,0,0,0,0,0,0,0, + 91,4,0,0,0,0,0,0,0,0,82,6,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,1, + 5,0,0,0,85,2,53,2,0,0,0,0,0,0,36,0, + 114,84,0,0,0,41,4,114,248,1,0,0,114,209,0,0, + 0,114,23,0,0,0,218,7,109,111,100,117,108,101,115,41, + 3,114,196,0,0,0,218,18,112,97,114,101,110,116,95,109, + 111,100,117,108,101,95,110,97,109,101,218,14,112,97,116,104, + 95,97,116,116,114,95,110,97,109,101,115,3,0,0,0,32, + 32,32,114,10,0,0,0,114,236,1,0,0,218,31,95,78, + 97,109,101,115,112,97,99,101,80,97,116,104,46,95,103,101, + 116,95,112,97,114,101,110,116,95,112,97,116,104,97,5,0, + 0,115,43,0,0,0,128,0,216,45,49,215,45,73,209,45, + 73,211,45,75,209,8,42,208,8,26,220,15,22,148,115,151, + 123,145,123,208,35,53,209,23,54,184,14,211,15,71,208,8, + 71,114,32,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,104,1,0,0, + 149,0,91,1,0,0,0,0,0,0,0,0,85,0,82,3, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,53,0,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,110,1,88,16,82,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,58,119,0,0,100,26, + 0,0,85,0,82,6,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,0,82,8,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,119, + 0,0,97,101,0,0,85,0,82,11,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,0,82,12, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,1,53,2,0,0,0,0,0,0,110,2,85,2, + 98,47,0,0,85,2,82,14,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,99,34,0,0,85,2, + 82,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,97,17,0,0, + 85,2,82,16,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,0,108,9,0,0,0,0,0,0, + 0,0,88,16,108,2,0,0,0,0,0,0,0,0,85,0, + 82,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,0,108,4,0,0,0,0,0,0,0,0, + 85,0,82,18,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,36,0,114,84,0,0,0,41,10,114, + 186,0,0,0,114,236,1,0,0,114,237,1,0,0,114,238, + 1,0,0,114,239,1,0,0,114,240,1,0,0,114,234,1, + 0,0,114,12,1,0,0,114,13,1,0,0,114,235,1,0, + 0,41,3,114,196,0,0,0,218,11,112,97,114,101,110,116, + 95,112,97,116,104,114,24,1,0,0,115,3,0,0,0,32, + 32,32,114,10,0,0,0,218,12,95,114,101,99,97,108,99, + 117,108,97,116,101,218,27,95,78,97,109,101,115,112,97,99, + 101,80,97,116,104,46,95,114,101,99,97,108,99,117,108,97, + 116,101,101,5,0,0,115,139,0,0,0,128,0,228,22,27, + 152,68,215,28,49,209,28,49,211,28,51,211,22,52,136,11, + 216,11,22,215,26,48,209,26,48,211,11,48,176,68,183,75, + 177,75,192,52,215,67,83,209,67,83,211,52,83,216,19,23, + 215,19,36,209,19,36,160,84,167,90,161,90,176,27,211,19, + 61,136,68,240,6,0,16,20,209,15,31,160,68,167,75,161, + 75,209,36,55,216,19,23,215,19,50,215,19,50,216,33,37, + 215,33,64,209,33,64,144,68,148,74,216,37,48,212,12,34, + 216,31,35,159,123,153,123,136,68,212,12,28,216,15,19,143, + 122,137,122,208,8,25,114,32,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 243,52,0,0,0,149,0,91,1,0,0,0,0,0,0,0, + 0,85,0,82,3,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,53, + 1,0,0,0,0,0,0,36,0,114,84,0,0,0,41,2, + 218,4,105,116,101,114,114,1,2,0,0,114,157,1,0,0, + 115,1,0,0,0,32,114,10,0,0,0,218,8,95,95,105, + 116,101,114,95,95,218,23,95,78,97,109,101,115,112,97,99, + 101,80,97,116,104,46,95,95,105,116,101,114,95,95,115,5, + 0,0,115,22,0,0,0,128,0,220,15,19,144,68,215,20, + 37,209,20,37,211,20,39,211,15,40,208,8,40,114,32,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,3,0,0,0,243,40,0,0,0,149,0,85,0, + 82,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,85,1,5,0, + 0,0,36,0,114,84,0,0,0,169,1,114,1,2,0,0, + 41,2,114,196,0,0,0,218,5,105,110,100,101,120,115,2, + 0,0,0,32,32,114,10,0,0,0,218,11,95,95,103,101, + 116,105,116,101,109,95,95,218,26,95,78,97,109,101,115,112, + 97,99,101,80,97,116,104,46,95,95,103,101,116,105,116,101, + 109,95,95,118,5,0,0,115,22,0,0,0,128,0,216,15, + 19,215,15,32,209,15,32,211,15,34,160,53,209,15,41,208, + 8,41,114,32,0,0,0,99,3,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,3,0,0,0,243,32,0,0, + 0,149,0,88,32,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,1,39,0,0,0,103, + 0,114,84,0,0,0,169,1,114,235,1,0,0,41,3,114, + 196,0,0,0,114,9,2,0,0,114,75,0,0,0,115,3, + 0,0,0,32,32,32,114,10,0,0,0,218,11,95,95,115, + 101,116,105,116,101,109,95,95,218,26,95,78,97,109,101,115, + 112,97,99,101,80,97,116,104,46,95,95,115,101,116,105,116, + 101,109,95,95,121,5,0,0,115,14,0,0,0,128,0,216, + 28,32,143,10,137,10,144,53,210,8,25,114,32,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,243,52,0,0,0,149,0,91,1,0,0, + 0,0,0,0,0,0,85,0,82,3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,36,0,114,84, + 0,0,0,41,2,114,7,0,0,0,114,1,2,0,0,114, + 157,1,0,0,115,1,0,0,0,32,114,10,0,0,0,218, + 7,95,95,108,101,110,95,95,218,22,95,78,97,109,101,115, + 112,97,99,101,80,97,116,104,46,95,95,108,101,110,95,95, + 124,5,0,0,115,22,0,0,0,128,0,220,15,18,144,52, + 215,19,36,209,19,36,211,19,38,211,15,39,208,8,39,114, + 32,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,243,36,0,0,0,149,0, + 83,1,85,0,82,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,60,2,14,0,83,2,51,3, + 36,0,41,3,78,122,15,95,78,97,109,101,115,112,97,99, + 101,80,97,116,104,40,218,1,41,114,13,2,0,0,114,157, + 1,0,0,115,1,0,0,0,32,114,10,0,0,0,218,8, + 95,95,114,101,112,114,95,95,218,23,95,78,97,109,101,115, + 112,97,99,101,80,97,116,104,46,95,95,114,101,112,114,95, + 95,127,5,0,0,115,21,0,0,0,128,0,216,17,32,160, + 20,167,26,161,26,161,14,168,97,208,15,48,208,8,48,114, + 32,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,243,38,0,0,0,149,0, + 88,16,82,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,59,0, + 0,0,36,0,114,84,0,0,0,114,8,2,0,0,169,2, + 114,196,0,0,0,218,4,105,116,101,109,115,2,0,0,0, + 32,32,114,10,0,0,0,218,12,95,95,99,111,110,116,97, + 105,110,115,95,95,218,27,95,78,97,109,101,115,112,97,99, + 101,80,97,116,104,46,95,95,99,111,110,116,97,105,110,115, + 95,95,130,5,0,0,115,20,0,0,0,128,0,216,15,19, + 215,23,40,209,23,40,211,23,42,209,15,42,208,8,42,114, + 32,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,243,58,0,0,0,149,0, + 85,0,82,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,82,3,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,1,53,1,0,0, + 0,0,0,0,32,0,103,0,114,84,0,0,0,41,2,114, + 235,1,0,0,114,71,0,0,0,114,24,2,0,0,115,2, + 0,0,0,32,32,114,10,0,0,0,114,71,0,0,0,218, + 21,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46, + 97,112,112,101,110,100,133,5,0,0,115,20,0,0,0,128, + 0,216,8,12,143,10,137,10,215,8,25,209,8,25,152,36, + 213,8,31,114,32,0,0,0,41,5,114,239,1,0,0,114, + 237,1,0,0,114,234,1,0,0,114,235,1,0,0,114,240, + 1,0,0,78,41,18,114,204,0,0,0,114,203,0,0,0, + 114,205,0,0,0,114,71,1,0,0,114,206,0,0,0,114, + 238,1,0,0,114,80,1,0,0,114,248,1,0,0,114,236, + 1,0,0,114,1,2,0,0,114,5,2,0,0,114,10,2, + 0,0,114,14,2,0,0,114,17,2,0,0,114,21,2,0, + 0,114,26,2,0,0,114,71,0,0,0,114,76,1,0,0, + 114,34,0,0,0,114,32,0,0,0,114,10,0,0,0,114, + 232,1,0,0,114,232,1,0,0,69,5,0,0,115,70,0, + 0,0,134,0,241,2,4,5,20,240,16,0,14,15,128,70, + 242,4,5,5,40,242,14,8,5,34,242,20,2,5,72,1, + 242,8,12,5,26,242,28,1,5,41,242,6,1,5,42,242, + 6,1,5,33,242,6,1,5,40,242,6,1,5,49,242,6, + 1,5,43,245,6,1,5,32,114,32,0,0,0,114,232,1, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,1, + 0,0,0,0,0,0,0,243,68,0,0,0,149,0,92,0, + 114,1,83,0,114,2,83,1,114,3,83,2,26,0,114,4, + 83,3,26,0,114,5,83,4,26,0,114,6,83,5,26,0, + 114,7,83,6,26,0,114,8,83,7,26,0,114,9,83,8, + 26,0,114,10,83,9,26,0,114,11,83,10,114,12,103,11, + 41,12,218,15,78,97,109,101,115,112,97,99,101,76,111,97, + 100,101,114,105,140,5,0,0,99,4,0,0,0,0,0,0, + 0,0,0,0,0,5,0,0,0,3,0,0,0,243,38,0, + 0,0,149,0,91,1,0,0,0,0,0,0,0,0,88,18, + 85,3,53,3,0,0,0,0,0,0,85,0,108,1,0,0, + 0,0,0,0,0,0,103,0,114,84,0,0,0,41,2,114, + 232,1,0,0,114,235,1,0,0,114,241,1,0,0,115,4, + 0,0,0,32,32,32,32,114,10,0,0,0,114,80,1,0, + 0,218,24,78,97,109,101,115,112,97,99,101,76,111,97,100, + 101,114,46,95,95,105,110,105,116,95,95,141,5,0,0,115, + 16,0,0,0,128,0,220,21,35,160,68,176,11,211,21,60, + 136,4,141,10,114,32,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,1,0,0,0,3,0,0,0,243,4, + 0,0,0,149,0,103,1,41,2,78,84,114,34,0,0,0, + 114,99,1,0,0,115,2,0,0,0,32,32,114,10,0,0, + 0,114,18,1,0,0,218,26,78,97,109,101,115,112,97,99, 101,76,111,97,100,101,114,46,105,115,95,112,97,99,107,97, - 103,101,120,5,0,0,115,5,0,0,0,128,0,216,15,19, - 114,28,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,243,4,0,0,0,151, - 0,121,1,41,2,78,114,12,0,0,0,114,30,0,0,0, - 114,84,1,0,0,115,2,0,0,0,32,32,114,10,0,0, - 0,114,100,1,0,0,122,26,78,97,109,101,115,112,97,99, + 103,101,144,5,0,0,115,5,0,0,0,128,0,216,15,19, + 114,32,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,243,4,0,0,0,149, + 0,103,1,41,2,78,114,12,0,0,0,114,34,0,0,0, + 114,99,1,0,0,115,2,0,0,0,32,32,114,10,0,0, + 0,114,120,1,0,0,218,26,78,97,109,101,115,112,97,99, 101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114, - 99,101,123,5,0,0,115,5,0,0,0,128,0,216,15,17, - 114,28,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,6,0,0,0,3,0,0,0,243,32,0,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,100,1,100,2,100, - 3,100,4,172,5,171,4,0,0,0,0,0,0,83,0,41, - 6,78,114,12,0,0,0,122,8,60,115,116,114,105,110,103, - 62,114,79,1,0,0,84,41,1,114,103,1,0,0,41,1, - 114,104,1,0,0,114,84,1,0,0,115,2,0,0,0,32, - 32,114,10,0,0,0,114,77,1,0,0,122,24,78,97,109, - 101,115,112,97,99,101,76,111,97,100,101,114,46,103,101,116, - 95,99,111,100,101,126,5,0,0,115,19,0,0,0,128,0, - 220,15,22,144,114,152,58,160,118,184,68,212,15,65,208,8, - 65,114,28,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,243,4,0,0,0, - 151,0,121,1,114,72,1,0,0,114,30,0,0,0,114,73, - 1,0,0,115,2,0,0,0,32,32,114,10,0,0,0,114, - 74,1,0,0,122,29,78,97,109,101,115,112,97,99,101,76, - 111,97,100,101,114,46,99,114,101,97,116,101,95,109,111,100, - 117,108,101,129,5,0,0,114,75,1,0,0,114,28,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,243,4,0,0,0,151,0,121,0,114, - 77,0,0,0,114,30,0,0,0,114,176,1,0,0,115,2, - 0,0,0,32,32,114,10,0,0,0,114,81,1,0,0,122, - 27,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114, - 46,101,120,101,99,95,109,111,100,117,108,101,132,5,0,0, - 115,5,0,0,0,128,0,216,8,12,114,28,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,110,0,0,0,151,0,116,0,0,0,0, - 0,0,0,0,0,106,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,1,124,0,106,4,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,2,0,0,0,0,0,0,1,0,116,0,0,0,0, - 0,0,0,0,0,106,7,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,124,1,171,2,0, - 0,0,0,0,0,83,0,41,2,122,98,76,111,97,100,32, - 97,32,110,97,109,101,115,112,97,99,101,32,109,111,100,117, - 108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,105, + 99,101,147,5,0,0,115,5,0,0,0,128,0,216,15,17, + 114,32,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,7,0,0,0,3,0,0,0,243,26,0,0,0,149, + 0,91,1,0,0,0,0,0,0,0,0,83,1,83,2,83, + 3,83,4,83,5,57,4,36,0,41,6,78,114,12,0,0, + 0,122,8,60,115,116,114,105,110,103,62,114,93,1,0,0, + 84,41,1,114,124,1,0,0,41,1,114,125,1,0,0,114, + 99,1,0,0,115,2,0,0,0,32,32,114,10,0,0,0, + 114,91,1,0,0,218,24,78,97,109,101,115,112,97,99,101, + 76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,150, + 5,0,0,115,19,0,0,0,128,0,220,15,22,144,114,152, + 58,160,118,184,68,209,15,65,208,8,65,114,32,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,3,0,0,0,243,4,0,0,0,149,0,103,1,114,85, + 1,0,0,114,34,0,0,0,114,86,1,0,0,115,2,0, + 0,0,32,32,114,10,0,0,0,114,87,1,0,0,218,29, + 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46, + 99,114,101,97,116,101,95,109,111,100,117,108,101,153,5,0, + 0,114,89,1,0,0,114,32,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, + 243,4,0,0,0,149,0,103,0,114,84,0,0,0,114,34, + 0,0,0,114,216,1,0,0,115,2,0,0,0,32,32,114, + 10,0,0,0,114,95,1,0,0,218,27,78,97,109,101,115, + 112,97,99,101,76,111,97,100,101,114,46,101,120,101,99,95, + 109,111,100,117,108,101,156,5,0,0,115,5,0,0,0,128, + 0,216,8,12,114,32,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,108, + 0,0,0,149,0,91,0,0,0,0,0,0,0,0,0,82, + 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,83,1,85,0,82,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,2,0,0,0, + 0,0,0,32,0,91,0,0,0,0,0,0,0,0,0,82, + 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,88,1,53,2,0,0,0,0,0,0,36,0,41, + 2,122,82,76,111,97,100,32,97,32,110,97,109,101,115,112, + 97,99,101,32,109,111,100,117,108,101,46,10,10,84,104,105, 115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114, 101,99,97,116,101,100,46,32,32,85,115,101,32,101,120,101, 99,95,109,111,100,117,108,101,40,41,32,105,110,115,116,101, - 97,100,46,10,10,32,32,32,32,32,32,32,32,122,38,110, - 97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,32, - 108,111,97,100,101,100,32,119,105,116,104,32,112,97,116,104, - 32,123,33,114,125,41,4,114,208,0,0,0,114,216,0,0, - 0,114,189,1,0,0,114,83,1,0,0,114,84,1,0,0, - 115,2,0,0,0,32,32,114,10,0,0,0,114,85,1,0, - 0,122,27,78,97,109,101,115,112,97,99,101,76,111,97,100, - 101,114,46,108,111,97,100,95,109,111,100,117,108,101,135,5, - 0,0,115,49,0,0,0,128,0,244,14,0,9,19,215,8, - 35,209,8,35,208,36,76,216,36,40,167,74,161,74,244,3, - 1,9,48,244,6,0,16,26,215,15,43,209,15,43,168,68, - 176,40,211,15,59,208,8,59,114,28,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,50,0,0,0,151,0,100,1,100,2,108,0,109, - 1,125,2,1,0,2,0,124,2,124,0,106,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,83,0,41,3,78,114,1,0,0, - 0,41,1,218,15,78,97,109,101,115,112,97,99,101,82,101, - 97,100,101,114,41,3,114,147,1,0,0,114,239,1,0,0, - 114,189,1,0,0,41,3,114,190,0,0,0,114,80,1,0, - 0,114,239,1,0,0,115,3,0,0,0,32,32,32,114,10, - 0,0,0,114,148,1,0,0,122,35,78,97,109,101,115,112, - 97,99,101,76,111,97,100,101,114,46,103,101,116,95,114,101, - 115,111,117,114,99,101,95,114,101,97,100,101,114,147,5,0, - 0,115,20,0,0,0,128,0,221,8,53,217,15,30,152,116, - 159,122,153,122,211,15,42,208,8,42,114,28,0,0,0,78, - 41,11,114,197,0,0,0,114,196,0,0,0,114,198,0,0, - 0,114,68,1,0,0,114,11,1,0,0,114,100,1,0,0, - 114,77,1,0,0,114,74,1,0,0,114,81,1,0,0,114, - 85,1,0,0,114,148,1,0,0,114,30,0,0,0,114,28, - 0,0,0,114,10,0,0,0,114,230,1,0,0,114,230,1, - 0,0,116,5,0,0,115,43,0,0,0,132,0,242,2,1, - 5,61,242,6,1,5,20,242,6,1,5,18,242,6,1,5, - 66,1,242,6,1,5,57,242,6,1,5,13,242,6,10,5, - 60,243,24,2,5,43,114,28,0,0,0,114,230,1,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,0,0,0,0,243,116,0,0,0,151,0,101,0,90,1, - 100,0,90,2,100,1,90,3,101,4,100,2,132,0,171,0, - 0,0,0,0,0,0,90,5,101,4,100,3,132,0,171,0, - 0,0,0,0,0,0,90,6,101,7,100,4,132,0,171,0, - 0,0,0,0,0,0,90,8,101,7,100,9,100,6,132,1, - 171,0,0,0,0,0,0,0,90,9,101,7,100,10,100,7, - 132,1,171,0,0,0,0,0,0,0,90,10,101,4,100,8, - 132,0,171,0,0,0,0,0,0,0,90,11,121,5,41,11, - 218,10,80,97,116,104,70,105,110,100,101,114,122,62,77,101, - 116,97,32,112,97,116,104,32,102,105,110,100,101,114,32,102, - 111,114,32,115,121,115,46,112,97,116,104,32,97,110,100,32, - 112,97,99,107,97,103,101,32,95,95,112,97,116,104,95,95, - 32,97,116,116,114,105,98,117,116,101,115,46,99,0,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, - 0,243,56,1,0,0,151,0,116,1,0,0,0,0,0,0, - 0,0,116,2,0,0,0,0,0,0,0,0,106,4,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,68,0,93,65,0,0,92,2,0,0,125,0, - 125,1,124,1,129,11,116,9,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,115,18,116,2,0,0, - 0,0,0,0,0,0,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,61,0,140,37, - 116,11,0,0,0,0,0,0,0,0,124,1,100,2,171,2, - 0,0,0,0,0,0,115,1,140,50,124,1,106,13,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,1,0,140,67,4,0,116,14, - 0,0,0,0,0,0,0,0,120,1,106,16,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,3, - 122,13,0,0,99,2,95,8,0,0,0,0,0,0,0,0, - 100,4,100,5,108,9,109,10,125,2,1,0,124,2,106,13, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,1,0,121,1,41,6, - 122,125,67,97,108,108,32,116,104,101,32,105,110,118,97,108, - 105,100,97,116,101,95,99,97,99,104,101,115,40,41,32,109, - 101,116,104,111,100,32,111,110,32,97,108,108,32,112,97,116, - 104,32,101,110,116,114,121,32,102,105,110,100,101,114,115,10, - 32,32,32,32,32,32,32,32,115,116,111,114,101,100,32,105, - 110,32,115,121,115,46,112,97,116,104,95,105,109,112,111,114, - 116,101,114,95,99,97,99,104,101,115,32,40,119,104,101,114, - 101,32,105,109,112,108,101,109,101,110,116,101,100,41,46,78, - 218,17,105,110,118,97,108,105,100,97,116,101,95,99,97,99, - 104,101,115,114,6,0,0,0,114,1,0,0,0,169,1,218, - 18,77,101,116,97,100,97,116,97,80,97,116,104,70,105,110, - 100,101,114,41,11,218,4,108,105,115,116,114,20,0,0,0, - 218,19,112,97,116,104,95,105,109,112,111,114,116,101,114,95, - 99,97,99,104,101,218,5,105,116,101,109,115,114,100,0,0, - 0,114,200,0,0,0,114,243,1,0,0,114,186,1,0,0, - 114,192,1,0,0,218,18,105,109,112,111,114,116,108,105,98, - 46,109,101,116,97,100,97,116,97,114,245,1,0,0,41,3, - 114,188,0,0,0,218,6,102,105,110,100,101,114,114,245,1, - 0,0,115,3,0,0,0,32,32,32,114,10,0,0,0,114, - 243,1,0,0,122,28,80,97,116,104,70,105,110,100,101,114, - 46,105,110,118,97,108,105,100,97,116,101,95,99,97,99,104, - 101,115,162,5,0,0,115,124,0,0,0,128,0,244,8,0, - 29,33,164,19,215,33,56,209,33,56,215,33,62,209,33,62, - 211,33,64,214,28,65,137,76,136,68,144,38,240,6,0,16, - 22,136,126,164,91,176,20,212,37,54,220,20,23,215,20,43, - 209,20,43,168,68,209,20,49,220,17,24,152,22,208,33,52, - 213,17,53,216,16,22,215,16,40,209,16,40,213,16,42,240, - 13,0,29,66,1,244,18,0,9,23,215,8,29,210,8,29, - 160,17,209,8,34,213,8,29,229,8,57,216,8,26,215,8, - 44,209,8,44,213,8,46,114,28,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, - 0,243,212,0,0,0,151,0,116,0,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,129,42,116,0,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,115,26,116,5,0,0,0,0,0,0, - 0,0,106,6,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,2,116,8,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,1,0,116,0,0,0, - 0,0,0,0,0,0,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,68,0,93,12,0,0, - 125,1,9,0,2,0,124,1,124,0,171,1,0,0,0,0, - 0,0,99,2,1,0,83,0,4,0,121,1,35,0,116,10, - 0,0,0,0,0,0,0,0,36,0,114,3,1,0,89,0, - 140,27,119,0,120,3,89,0,119,1,41,3,122,46,83,101, - 97,114,99,104,32,115,121,115,46,112,97,116,104,95,104,111, - 111,107,115,32,102,111,114,32,97,32,102,105,110,100,101,114, - 32,102,111,114,32,39,112,97,116,104,39,46,78,122,23,115, - 121,115,46,112,97,116,104,95,104,111,111,107,115,32,105,115, - 32,101,109,112,116,121,41,6,114,20,0,0,0,218,10,112, - 97,116,104,95,104,111,111,107,115,114,127,0,0,0,114,128, - 0,0,0,218,13,73,109,112,111,114,116,87,97,114,110,105, - 110,103,114,189,0,0,0,41,2,114,68,0,0,0,218,4, - 104,111,111,107,115,2,0,0,0,32,32,114,10,0,0,0, - 218,11,95,112,97,116,104,95,104,111,111,107,115,122,22,80, - 97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,95, - 104,111,111,107,115,180,5,0,0,115,89,0,0,0,128,0, - 244,6,0,12,15,143,62,137,62,208,11,37,172,99,175,110, - 170,110,220,12,21,143,78,137,78,208,27,52,180,109,212,12, - 68,220,20,23,151,78,148,78,136,68,240,2,3,13,25,217, - 23,27,152,68,147,122,210,16,33,240,5,0,21,35,240,12, - 0,20,24,248,244,7,0,20,31,242,0,1,13,25,217,16, - 24,240,3,1,13,25,250,115,18,0,0,0,193,15,7,65, - 27,2,193,27,9,65,39,5,193,38,1,65,39,5,99,2, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,232,0,0,0,151,0,124,1,100,1,107,40, - 0,0,114,21,9,0,116,1,0,0,0,0,0,0,0,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,125,1,9,0, - 116,6,0,0,0,0,0,0,0,0,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 25,0,0,0,125,2,124,2,83,0,35,0,116,4,0,0, - 0,0,0,0,0,0,36,0,114,3,1,0,89,0,121,2, - 119,0,120,3,89,0,119,1,35,0,116,10,0,0,0,0, - 0,0,0,0,36,0,114,40,1,0,124,0,106,13,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,125,2,124,2,116,6, - 0,0,0,0,0,0,0,0,106,8,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,1,60,0, - 0,0,89,0,124,2,83,0,119,0,120,3,89,0,119,1, - 41,3,122,210,71,101,116,32,116,104,101,32,102,105,110,100, - 101,114,32,102,111,114,32,116,104,101,32,112,97,116,104,32, - 101,110,116,114,121,32,102,114,111,109,32,115,121,115,46,112, - 97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,99, - 104,101,46,10,10,32,32,32,32,32,32,32,32,73,102,32, - 116,104,101,32,112,97,116,104,32,101,110,116,114,121,32,105, - 115,32,110,111,116,32,105,110,32,116,104,101,32,99,97,99, - 104,101,44,32,102,105,110,100,32,116,104,101,32,97,112,112, - 114,111,112,114,105,97,116,101,32,102,105,110,100,101,114,10, - 32,32,32,32,32,32,32,32,97,110,100,32,99,97,99,104, - 101,32,105,116,46,32,73,102,32,110,111,32,102,105,110,100, - 101,114,32,105,115,32,97,118,97,105,108,97,98,108,101,44, - 32,115,116,111,114,101,32,78,111,110,101,46,10,10,32,32, - 32,32,32,32,32,32,114,12,0,0,0,78,41,7,114,23, - 0,0,0,114,95,0,0,0,218,17,70,105,108,101,78,111, - 116,70,111,117,110,100,69,114,114,111,114,114,20,0,0,0, - 114,247,1,0,0,218,8,75,101,121,69,114,114,111,114,114, - 255,1,0,0,41,3,114,51,1,0,0,114,68,0,0,0, - 114,250,1,0,0,115,3,0,0,0,32,32,32,114,10,0, - 0,0,218,20,95,112,97,116,104,95,105,109,112,111,114,116, - 101,114,95,99,97,99,104,101,122,31,80,97,116,104,70,105, - 110,100,101,114,46,95,112,97,116,104,95,105,109,112,111,114, - 116,101,114,95,99,97,99,104,101,193,5,0,0,115,128,0, - 0,0,128,0,240,16,0,12,16,144,50,138,58,240,2,5, - 13,28,220,23,26,151,122,145,122,147,124,144,4,240,10,4, - 9,51,220,21,24,215,21,44,209,21,44,168,84,209,21,50, - 136,70,240,8,0,16,22,136,13,248,244,19,0,20,37,242, - 0,3,13,28,241,6,0,24,28,240,7,3,13,28,251,244, - 12,0,16,24,242,0,2,9,51,216,21,24,151,95,145,95, - 160,84,211,21,42,136,70,216,44,50,140,67,215,12,35,209, - 12,35,160,68,210,12,41,216,15,21,136,13,240,7,2,9, - 51,250,115,29,0,0,0,135,20,49,0,156,19,65,0,0, - 177,9,61,3,188,1,61,3,193,0,45,65,49,3,193,48, - 1,65,49,3,78,99,4,0,0,0,0,0,0,0,0,0, - 0,0,5,0,0,0,3,0,0,0,243,58,1,0,0,151, - 0,103,0,125,4,124,2,68,0,93,118,0,0,125,5,116, - 1,0,0,0,0,0,0,0,0,124,5,116,2,0,0,0, - 0,0,0,0,0,171,2,0,0,0,0,0,0,115,1,140, - 20,124,0,106,5,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,5,171,1,0,0,0,0,0, - 0,125,6,124,6,128,1,140,40,124,6,106,7,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,124,3,171,2,0,0,0,0,0,0,125,7,124,7,128, - 1,140,61,124,7,106,8,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,129,4,124,7,99,2,1, - 0,83,0,124,7,106,10,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,125,8,124,8,128,11,116, - 13,0,0,0,0,0,0,0,0,100,2,171,1,0,0,0, - 0,0,0,130,1,124,4,106,15,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,8,171,1,0, - 0,0,0,0,0,1,0,140,120,4,0,116,16,0,0,0, - 0,0,0,0,0,106,19,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,100,1,171,2,0, - 0,0,0,0,0,125,7,124,4,124,7,95,5,0,0,0, - 0,0,0,0,0,124,7,83,0,41,3,122,63,70,105,110, - 100,32,116,104,101,32,108,111,97,100,101,114,32,111,114,32, - 110,97,109,101,115,112,97,99,101,95,112,97,116,104,32,102, - 111,114,32,116,104,105,115,32,109,111,100,117,108,101,47,112, - 97,99,107,97,103,101,32,110,97,109,101,46,78,122,19,115, - 112,101,99,32,109,105,115,115,105,110,103,32,108,111,97,100, - 101,114,41,10,114,233,0,0,0,114,137,0,0,0,114,3, - 2,0,0,114,59,1,0,0,114,5,1,0,0,114,6,1, - 0,0,114,189,0,0,0,114,241,0,0,0,114,208,0,0, - 0,114,12,1,0,0,41,9,114,51,1,0,0,114,43,1, - 0,0,114,68,0,0,0,114,58,1,0,0,218,14,110,97, - 109,101,115,112,97,99,101,95,112,97,116,104,218,5,101,110, - 116,114,121,114,250,1,0,0,114,17,1,0,0,218,8,112, - 111,114,116,105,111,110,115,115,9,0,0,0,32,32,32,32, - 32,32,32,32,32,114,10,0,0,0,218,9,95,103,101,116, - 95,115,112,101,99,122,20,80,97,116,104,70,105,110,100,101, - 114,46,95,103,101,116,95,115,112,101,99,215,5,0,0,115, - 173,0,0,0,128,0,240,10,0,26,28,136,14,219,21,25, - 136,69,220,19,29,152,101,164,83,212,19,41,216,16,24,216, - 21,24,215,21,45,209,21,45,168,101,211,21,52,136,70,216, - 15,21,209,15,33,216,23,29,215,23,39,209,23,39,168,8, - 176,38,211,23,57,144,4,216,19,23,144,60,216,20,28,216, - 19,23,151,59,145,59,208,19,42,216,27,31,146,75,216,27, - 31,215,27,58,209,27,58,144,8,216,19,27,208,19,35,220, - 26,37,208,38,59,211,26,60,208,20,60,240,10,0,17,31, - 215,16,37,209,16,37,160,104,213,16,47,240,35,0,22,26, - 244,38,0,20,30,215,19,40,209,19,40,168,24,176,52,211, - 19,56,136,68,216,46,60,136,68,212,12,43,216,19,23,136, - 75,114,28,0,0,0,99,4,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,243,214,0,0,0, - 151,0,124,2,128,16,116,0,0,0,0,0,0,0,0,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,125,2,124,0,106,5,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,1,124,2, - 124,3,171,3,0,0,0,0,0,0,125,4,124,4,128,1, - 121,1,124,4,106,6,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,128,52,124,4,106,8,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 125,5,124,5,114,37,100,1,124,4,95,5,0,0,0,0, - 0,0,0,0,116,13,0,0,0,0,0,0,0,0,124,1, - 124,5,124,0,106,4,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,3,0,0,0,0,0,0, - 124,4,95,4,0,0,0,0,0,0,0,0,124,4,83,0, - 121,1,124,4,83,0,41,2,122,141,84,114,121,32,116,111, - 32,102,105,110,100,32,97,32,115,112,101,99,32,102,111,114, - 32,39,102,117,108,108,110,97,109,101,39,32,111,110,32,115, - 121,115,46,112,97,116,104,32,111,114,32,39,112,97,116,104, - 39,46,10,10,32,32,32,32,32,32,32,32,84,104,101,32, - 115,101,97,114,99,104,32,105,115,32,98,97,115,101,100,32, - 111,110,32,115,121,115,46,112,97,116,104,95,104,111,111,107, - 115,32,97,110,100,32,115,121,115,46,112,97,116,104,95,105, - 109,112,111,114,116,101,114,95,99,97,99,104,101,46,10,32, - 32,32,32,32,32,32,32,78,41,7,114,20,0,0,0,114, - 68,0,0,0,114,8,2,0,0,114,5,1,0,0,114,6, - 1,0,0,114,10,1,0,0,114,186,1,0,0,41,6,114, - 51,1,0,0,114,43,1,0,0,114,68,0,0,0,114,58, - 1,0,0,114,17,1,0,0,114,5,2,0,0,115,6,0, - 0,0,32,32,32,32,32,32,114,10,0,0,0,114,59,1, - 0,0,122,20,80,97,116,104,70,105,110,100,101,114,46,102, - 105,110,100,95,115,112,101,99,244,5,0,0,115,114,0,0, - 0,128,0,240,12,0,12,16,136,60,220,19,22,151,56,145, - 56,136,68,216,15,18,143,125,137,125,152,88,160,116,168,86, - 211,15,52,136,4,216,11,15,136,60,216,19,23,216,13,17, - 143,91,137,91,208,13,32,216,29,33,215,29,60,209,29,60, - 136,78,217,15,29,240,6,0,31,35,144,4,148,11,220,50, - 64,192,24,200,62,208,91,94,215,91,104,209,91,104,211,50, - 105,144,4,212,16,47,216,23,27,144,11,224,23,27,224,19, - 23,136,75,114,28,0,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,15,0,0,0,243,50,0, - 0,0,151,0,100,1,100,2,108,0,109,1,125,2,1,0, - 2,0,124,2,106,4,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,105,0,124,1,164,1, - 142,1,83,0,41,3,97,32,1,0,0,10,32,32,32,32, - 32,32,32,32,70,105,110,100,32,100,105,115,116,114,105,98, - 117,116,105,111,110,115,46,10,10,32,32,32,32,32,32,32, - 32,82,101,116,117,114,110,32,97,110,32,105,116,101,114,97, - 98,108,101,32,111,102,32,97,108,108,32,68,105,115,116,114, - 105,98,117,116,105,111,110,32,105,110,115,116,97,110,99,101, - 115,32,99,97,112,97,98,108,101,32,111,102,10,32,32,32, - 32,32,32,32,32,108,111,97,100,105,110,103,32,116,104,101, - 32,109,101,116,97,100,97,116,97,32,102,111,114,32,112,97, - 99,107,97,103,101,115,32,109,97,116,99,104,105,110,103,32, - 96,96,99,111,110,116,101,120,116,46,110,97,109,101,96,96, - 10,32,32,32,32,32,32,32,32,40,111,114,32,97,108,108, - 32,110,97,109,101,115,32,105,102,32,96,96,78,111,110,101, - 96,96,32,105,110,100,105,99,97,116,101,100,41,32,97,108, - 111,110,103,32,116,104,101,32,112,97,116,104,115,32,105,110, - 32,116,104,101,32,108,105,115,116,10,32,32,32,32,32,32, - 32,32,111,102,32,100,105,114,101,99,116,111,114,105,101,115, - 32,96,96,99,111,110,116,101,120,116,46,112,97,116,104,96, - 96,46,10,32,32,32,32,32,32,32,32,114,1,0,0,0, - 114,244,1,0,0,41,3,114,249,1,0,0,114,245,1,0, - 0,218,18,102,105,110,100,95,100,105,115,116,114,105,98,117, - 116,105,111,110,115,41,3,114,191,0,0,0,114,192,0,0, - 0,114,245,1,0,0,115,3,0,0,0,32,32,32,114,10, - 0,0,0,114,11,2,0,0,122,29,80,97,116,104,70,105, - 110,100,101,114,46,102,105,110,100,95,100,105,115,116,114,105, - 98,117,116,105,111,110,115,12,6,0,0,115,32,0,0,0, - 128,0,245,20,0,9,58,216,15,52,208,15,33,215,15,52, - 209,15,52,176,100,208,15,69,184,102,209,15,69,208,8,69, - 114,28,0,0,0,114,77,0,0,0,114,60,1,0,0,41, - 12,114,197,0,0,0,114,196,0,0,0,114,198,0,0,0, - 114,199,0,0,0,114,63,1,0,0,114,243,1,0,0,114, - 255,1,0,0,114,64,1,0,0,114,3,2,0,0,114,8, - 2,0,0,114,59,1,0,0,114,11,2,0,0,114,30,0, - 0,0,114,28,0,0,0,114,10,0,0,0,114,241,1,0, - 0,114,241,1,0,0,158,5,0,0,115,125,0,0,0,132, - 0,225,4,72,224,5,17,241,2,15,5,47,243,3,0,6, - 18,240,2,15,5,47,240,34,0,6,18,241,2,10,5,24, - 243,3,0,6,18,240,2,10,5,24,240,24,0,6,17,241, - 2,19,5,22,243,3,0,6,17,240,2,19,5,22,240,42, - 0,6,17,242,2,26,5,24,243,3,0,6,17,240,2,26, - 5,24,240,56,0,6,17,242,2,21,5,24,243,3,0,6, - 17,240,2,21,5,24,240,46,0,6,18,241,2,10,5,70, - 1,243,3,0,6,18,241,2,10,5,70,1,114,28,0,0, - 0,114,241,1,0,0,99,0,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,0,0,0,0,243,70,0,0,0, - 151,0,101,0,90,1,100,0,90,2,100,1,90,3,100,2, - 132,0,90,4,100,3,132,0,90,5,100,4,132,0,90,6, - 100,10,100,6,132,1,90,7,100,7,132,0,90,8,101,9, - 100,8,132,0,171,0,0,0,0,0,0,0,90,10,100,9, - 132,0,90,11,121,5,41,11,218,10,70,105,108,101,70,105, - 110,100,101,114,122,172,70,105,108,101,45,98,97,115,101,100, - 32,102,105,110,100,101,114,46,10,10,32,32,32,32,73,110, - 116,101,114,97,99,116,105,111,110,115,32,119,105,116,104,32, - 116,104,101,32,102,105,108,101,32,115,121,115,116,101,109,32, - 97,114,101,32,99,97,99,104,101,100,32,102,111,114,32,112, - 101,114,102,111,114,109,97,110,99,101,44,32,98,101,105,110, - 103,10,32,32,32,32,114,101,102,114,101,115,104,101,100,32, - 119,104,101,110,32,116,104,101,32,100,105,114,101,99,116,111, - 114,121,32,116,104,101,32,102,105,110,100,101,114,32,105,115, - 32,104,97,110,100,108,105,110,103,32,104,97,115,32,98,101, - 101,110,32,109,111,100,105,102,105,101,100,46,10,10,32,32, - 32,32,99,2,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,7,0,0,0,243,12,1,0,0,135,5,151,0, - 103,0,125,3,124,2,68,0,93,31,0,0,92,2,0,0, - 138,5,125,4,124,3,106,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,136,5,102,1,100,1, - 132,8,124,4,68,0,171,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,1,0,140,33,4,0,124,3,124,0, - 95,1,0,0,0,0,0,0,0,0,124,1,114,5,124,1, - 100,2,107,40,0,0,114,26,116,5,0,0,0,0,0,0, - 0,0,106,6,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,124,0, - 95,4,0,0,0,0,0,0,0,0,110,16,116,11,0,0, - 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 124,0,95,4,0,0,0,0,0,0,0,0,100,3,124,0, - 95,6,0,0,0,0,0,0,0,0,116,15,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,124,0,95,8, - 0,0,0,0,0,0,0,0,116,15,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,124,0,95,9,0,0, - 0,0,0,0,0,0,121,4,41,5,122,154,73,110,105,116, + 97,100,46,10,10,122,38,110,97,109,101,115,112,97,99,101, + 32,109,111,100,117,108,101,32,108,111,97,100,101,100,32,119, + 105,116,104,32,112,97,116,104,32,123,33,114,125,41,4,114, + 216,0,0,0,114,223,0,0,0,114,235,1,0,0,114,98, + 1,0,0,114,99,1,0,0,115,2,0,0,0,32,32,114, + 10,0,0,0,114,100,1,0,0,218,27,78,97,109,101,115, + 112,97,99,101,76,111,97,100,101,114,46,108,111,97,100,95, + 109,111,100,117,108,101,159,5,0,0,115,47,0,0,0,128, + 0,244,14,0,9,19,215,8,35,209,8,35,208,36,76,216, + 36,40,167,74,161,74,244,3,1,9,48,244,6,0,16,26, + 215,15,43,209,15,43,168,68,211,15,59,208,8,59,114,32, + 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,3,0,0,0,243,50,0,0,0,149,0,83, + 1,83,2,75,0,74,1,110,2,32,0,85,2,34,0,85, + 0,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,1,0,0,0,0,0,0,36,0,41, + 3,78,114,1,0,0,0,41,1,218,15,78,97,109,101,115, + 112,97,99,101,82,101,97,100,101,114,41,3,114,177,1,0, + 0,114,47,2,0,0,114,235,1,0,0,41,3,114,196,0, + 0,0,114,94,1,0,0,114,47,2,0,0,115,3,0,0, + 0,32,32,32,114,10,0,0,0,114,178,1,0,0,218,35, + 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46, + 103,101,116,95,114,101,115,111,117,114,99,101,95,114,101,97, + 100,101,114,171,5,0,0,115,20,0,0,0,128,0,221,8, + 53,217,15,30,152,116,159,122,153,122,211,15,42,208,8,42, + 114,32,0,0,0,114,13,2,0,0,78,41,13,114,204,0, + 0,0,114,203,0,0,0,114,205,0,0,0,114,71,1,0, + 0,114,80,1,0,0,114,18,1,0,0,114,120,1,0,0, + 114,91,1,0,0,114,87,1,0,0,114,95,1,0,0,114, + 100,1,0,0,114,178,1,0,0,114,76,1,0,0,114,34, + 0,0,0,114,32,0,0,0,114,10,0,0,0,114,31,2, + 0,0,114,31,2,0,0,140,5,0,0,115,43,0,0,0, + 134,0,242,2,1,5,61,242,6,1,5,20,242,6,1,5, + 18,242,6,1,5,66,1,242,6,1,5,57,242,6,1,5, + 13,242,6,10,5,60,245,24,2,5,43,114,32,0,0,0, + 114,31,2,0,0,99,0,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,0,0,0,0,243,128,0,0,0,149, + 0,92,0,114,1,83,0,114,2,83,1,114,3,83,2,114, + 4,92,5,83,3,26,0,53,0,0,0,0,0,0,0,114, + 6,92,5,83,4,26,0,53,0,0,0,0,0,0,0,114, + 7,92,8,83,5,26,0,53,0,0,0,0,0,0,0,114, + 9,92,8,83,11,83,7,26,0,106,1,53,0,0,0,0, + 0,0,0,114,10,92,8,83,12,83,8,26,0,106,1,53, + 0,0,0,0,0,0,0,114,11,92,5,83,9,26,0,53, + 0,0,0,0,0,0,0,114,12,83,10,114,13,103,6,41, + 13,218,10,80,97,116,104,70,105,110,100,101,114,105,182,5, + 0,0,122,62,77,101,116,97,32,112,97,116,104,32,102,105, + 110,100,101,114,32,102,111,114,32,115,121,115,46,112,97,116, + 104,32,97,110,100,32,112,97,99,107,97,103,101,32,95,95, + 112,97,116,104,95,95,32,97,116,116,114,105,98,117,116,101, + 115,46,99,0,0,0,0,0,0,0,0,0,0,0,0,5, + 0,0,0,3,0,0,0,243,84,1,0,0,149,0,91,1, + 0,0,0,0,0,0,0,0,91,2,0,0,0,0,0,0, + 0,0,82,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,82,7,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,19,0,72,78,0,0, + 117,2,0,0,112,1,85,1,98,16,0,0,91,9,0,0, + 0,0,0,0,0,0,85,0,53,1,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,100,19,0,0,91,2,0,0, + 0,0,0,0,0,0,82,4,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,0,9,0,77,43, + 0,0,91,11,0,0,0,0,0,0,0,0,85,1,83,2, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 100,2,0,0,77,62,0,0,85,1,82,13,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,32,0,77,80,0,0,11,0,32,0, + 91,14,0,0,0,0,0,0,0,0,61,1,82,16,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 83,3,45,13,0,0,115,2,108,8,0,0,0,0,0,0, + 0,0,83,4,83,5,75,9,74,10,110,2,32,0,85,2, + 82,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,32,0,103,1, + 41,6,122,116,67,97,108,108,32,116,104,101,32,105,110,118, + 97,108,105,100,97,116,101,95,99,97,99,104,101,115,40,41, + 32,109,101,116,104,111,100,32,111,110,32,97,108,108,32,112, + 97,116,104,32,101,110,116,114,121,32,102,105,110,100,101,114, + 115,10,115,116,111,114,101,100,32,105,110,32,115,121,115,46, + 112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97, + 99,104,101,32,40,119,104,101,114,101,32,105,109,112,108,101, + 109,101,110,116,101,100,41,46,78,218,17,105,110,118,97,108, + 105,100,97,116,101,95,99,97,99,104,101,115,114,6,0,0, + 0,114,1,0,0,0,169,1,218,18,77,101,116,97,100,97, + 116,97,80,97,116,104,70,105,110,100,101,114,41,11,218,4, + 108,105,115,116,114,23,0,0,0,218,19,112,97,116,104,95, + 105,109,112,111,114,116,101,114,95,99,97,99,104,101,218,5, + 105,116,101,109,115,114,108,0,0,0,114,207,0,0,0,114, + 52,2,0,0,114,232,1,0,0,114,238,1,0,0,218,18, + 105,109,112,111,114,116,108,105,98,46,109,101,116,97,100,97, + 116,97,114,54,2,0,0,41,3,114,194,0,0,0,218,6, + 102,105,110,100,101,114,114,54,2,0,0,115,3,0,0,0, + 32,32,32,114,10,0,0,0,114,52,2,0,0,218,28,80, + 97,116,104,70,105,110,100,101,114,46,105,110,118,97,108,105, + 100,97,116,101,95,99,97,99,104,101,115,186,5,0,0,115, + 128,0,0,0,128,0,244,8,0,29,33,164,19,215,33,56, + 209,33,56,215,33,62,209,33,62,211,33,64,214,28,65,137, + 76,136,68,240,6,0,16,22,137,126,164,91,176,20,215,37, + 54,209,37,54,220,20,23,215,20,43,209,20,43,168,68,210, + 20,49,220,17,24,152,22,208,33,52,215,17,53,211,17,53, + 216,16,22,215,16,40,209,16,40,214,16,42,241,13,0,29, + 66,1,244,18,0,9,23,215,8,29,210,8,29,160,17,209, + 8,34,213,8,29,229,8,57,216,8,26,215,8,44,209,8, + 44,213,8,46,114,32,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,232, + 0,0,0,149,0,91,0,0,0,0,0,0,0,0,0,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,98,48,0,0,91,0,0,0,0,0,0,0,0, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,100,27,0, + 0,91,4,0,0,0,0,0,0,0,0,82,6,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,83,2,91,8,0,0,0,0,0,0,0,0,53,2,0, + 0,0,0,0,0,32,0,91,0,0,0,0,0,0,0,0, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,19,0,72,12,0,0,110,1,30,0,85, + 1,34,0,85,0,53,1,0,0,0,0,0,0,115,2,32, + 0,36,0,11,0,32,0,103,1,33,0,91,10,0,0,0, + 0,0,0,0,0,7,0,97,4,0,0,32,0,31,0,77, + 30,0,0,102,0,61,3,31,0,102,1,41,3,122,46,83, + 101,97,114,99,104,32,115,121,115,46,112,97,116,104,95,104, + 111,111,107,115,32,102,111,114,32,97,32,102,105,110,100,101, + 114,32,102,111,114,32,39,112,97,116,104,39,46,78,122,23, + 115,121,115,46,112,97,116,104,95,104,111,111,107,115,32,105, + 115,32,101,109,112,116,121,41,6,114,23,0,0,0,218,10, + 112,97,116,104,95,104,111,111,107,115,114,133,0,0,0,114, + 134,0,0,0,218,13,73,109,112,111,114,116,87,97,114,110, + 105,110,103,114,195,0,0,0,41,2,114,75,0,0,0,218, + 4,104,111,111,107,115,2,0,0,0,32,32,114,10,0,0, + 0,218,11,95,112,97,116,104,95,104,111,111,107,115,218,22, + 80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,104, + 95,104,111,111,107,115,204,5,0,0,115,89,0,0,0,128, + 0,244,6,0,12,15,143,62,137,62,209,11,37,172,99,175, + 110,175,110,220,12,21,143,78,138,78,208,27,52,180,109,212, + 12,68,220,20,23,151,78,148,78,136,68,240,2,3,13,25, + 217,23,27,152,68,147,122,210,16,33,241,5,0,21,35,240, + 12,0,20,24,248,244,7,0,20,31,243,0,1,13,25,218, + 16,24,240,3,1,13,25,250,115,18,0,0,0,193,22,7, + 65,35,2,193,35,10,65,49,5,193,48,1,65,49,5,99, + 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,243,240,0,0,0,149,0,85,1,83,1,58, + 88,0,0,97,22,0,0,30,0,91,0,0,0,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,53,0,0,0,0,0,0, + 0,110,1,30,0,91,6,0,0,0,0,0,0,0,0,82, + 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,1,5,0,0,0,110,2,85,2,36,0,33, + 0,91,4,0,0,0,0,0,0,0,0,7,0,97,3,0, + 0,32,0,31,0,103,2,102,0,61,3,31,0,102,1,33, + 0,91,10,0,0,0,0,0,0,0,0,7,0,97,40,0, + 0,32,0,85,0,82,13,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,1,53,1,0,0,0, + 0,0,0,110,2,85,2,91,6,0,0,0,0,0,0,0, + 0,82,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,1,39,0,0,0,31,0,85,2,36, + 0,102,0,61,3,31,0,102,1,41,3,122,186,71,101,116, + 32,116,104,101,32,102,105,110,100,101,114,32,102,111,114,32, + 116,104,101,32,112,97,116,104,32,101,110,116,114,121,32,102, + 114,111,109,32,115,121,115,46,112,97,116,104,95,105,109,112, + 111,114,116,101,114,95,99,97,99,104,101,46,10,10,73,102, + 32,116,104,101,32,112,97,116,104,32,101,110,116,114,121,32, + 105,115,32,110,111,116,32,105,110,32,116,104,101,32,99,97, + 99,104,101,44,32,102,105,110,100,32,116,104,101,32,97,112, + 112,114,111,112,114,105,97,116,101,32,102,105,110,100,101,114, + 10,97,110,100,32,99,97,99,104,101,32,105,116,46,32,73, + 102,32,110,111,32,102,105,110,100,101,114,32,105,115,32,97, + 118,97,105,108,97,98,108,101,44,32,115,116,111,114,101,32, + 78,111,110,101,46,10,10,114,12,0,0,0,78,41,7,114, + 26,0,0,0,114,103,0,0,0,218,17,70,105,108,101,78, + 111,116,70,111,117,110,100,69,114,114,111,114,114,23,0,0, + 0,114,56,2,0,0,218,8,75,101,121,69,114,114,111,114, + 114,65,2,0,0,41,3,114,59,1,0,0,114,75,0,0, + 0,114,59,2,0,0,115,3,0,0,0,32,32,32,114,10, + 0,0,0,218,20,95,112,97,116,104,95,105,109,112,111,114, + 116,101,114,95,99,97,99,104,101,218,31,80,97,116,104,70, + 105,110,100,101,114,46,95,112,97,116,104,95,105,109,112,111, + 114,116,101,114,95,99,97,99,104,101,217,5,0,0,115,128, + 0,0,0,128,0,240,16,0,12,16,144,50,139,58,240,2, + 5,13,28,220,23,26,151,122,146,122,147,124,144,4,240,10, + 4,9,51,220,21,24,215,21,44,209,21,44,168,84,209,21, + 50,136,70,240,8,0,16,22,136,13,248,244,19,0,20,37, + 243,0,3,13,28,241,6,0,24,28,240,7,3,13,28,251, + 244,12,0,16,24,243,0,2,9,51,216,21,24,151,95,145, + 95,160,84,211,21,42,136,70,216,44,50,140,67,215,12,35, + 209,12,35,160,68,210,12,41,216,15,21,136,13,240,7,2, + 9,51,250,115,31,0,0,0,136,21,51,0,158,19,65,3, + 0,179,10,65,0,3,191,1,65,0,3,193,3,46,65,53, + 3,193,52,1,65,53,3,78,99,4,0,0,0,0,0,0, + 0,0,0,0,0,5,0,0,0,3,0,0,0,243,82,1, + 0,0,149,0,47,0,110,4,85,2,19,0,72,130,0,0, + 110,5,91,1,0,0,0,0,0,0,0,0,85,5,91,2, + 0,0,0,0,0,0,0,0,53,2,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,100,2,0,0,77,26,0,0, + 85,0,82,5,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,5,53,1,0,0,0,0,0,0, + 110,6,85,6,99,2,0,0,77,48,0,0,85,6,82,7, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,88,19,53,2,0,0,0,0,0,0,110,7,85,7, + 99,2,0,0,77,70,0,0,85,7,82,8,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,4, + 0,0,85,7,115,2,32,0,36,0,85,7,82,10,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 110,8,85,8,99,11,0,0,91,13,0,0,0,0,0,0, + 0,0,83,2,53,1,0,0,0,0,0,0,101,1,85,4, + 82,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,8,53,1,0,0,0,0,0,0,32,0, + 77,132,0,0,11,0,32,0,91,16,0,0,0,0,0,0, + 0,0,82,19,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,1,83,1,53,2,0,0,0,0, + 0,0,110,7,88,71,108,5,0,0,0,0,0,0,0,0, + 85,7,36,0,41,3,122,63,70,105,110,100,32,116,104,101, + 32,108,111,97,100,101,114,32,111,114,32,110,97,109,101,115, + 112,97,99,101,95,112,97,116,104,32,102,111,114,32,116,104, + 105,115,32,109,111,100,117,108,101,47,112,97,99,107,97,103, + 101,32,110,97,109,101,46,78,122,19,115,112,101,99,32,109, + 105,115,115,105,110,103,32,108,111,97,100,101,114,41,10,114, + 240,0,0,0,114,143,0,0,0,114,70,2,0,0,114,68, + 1,0,0,114,12,1,0,0,114,13,1,0,0,114,195,0, + 0,0,114,248,0,0,0,114,216,0,0,0,114,19,1,0, + 0,41,9,114,59,1,0,0,114,51,1,0,0,114,75,0, + 0,0,114,67,1,0,0,218,14,110,97,109,101,115,112,97, + 99,101,95,112,97,116,104,218,5,101,110,116,114,121,114,59, + 2,0,0,114,24,1,0,0,218,8,112,111,114,116,105,111, + 110,115,115,9,0,0,0,32,32,32,32,32,32,32,32,32, + 114,10,0,0,0,218,9,95,103,101,116,95,115,112,101,99, + 218,20,80,97,116,104,70,105,110,100,101,114,46,95,103,101, + 116,95,115,112,101,99,239,5,0,0,115,172,0,0,0,128, + 0,240,10,0,26,28,136,14,219,21,25,136,69,220,19,29, + 152,101,164,83,215,19,41,209,19,41,217,16,24,216,21,24, + 215,21,45,209,21,45,168,101,211,21,52,136,70,216,15,21, + 211,15,33,216,23,29,215,23,39,209,23,39,168,8,211,23, + 57,144,4,216,19,23,145,60,217,20,28,216,19,23,151,59, + 145,59,209,19,42,216,27,31,146,75,216,27,31,215,27,58, + 209,27,58,144,8,216,19,27,209,19,35,220,26,37,208,38, + 59,211,26,60,208,20,60,240,10,0,17,31,215,16,37,209, + 16,37,160,104,214,16,47,241,35,0,22,26,244,38,0,20, + 30,215,19,40,209,19,40,168,24,176,52,211,19,56,136,68, + 216,46,60,212,12,43,216,19,23,136,75,114,32,0,0,0, + 99,4,0,0,0,0,0,0,0,0,0,0,0,5,0,0, + 0,3,0,0,0,243,226,0,0,0,149,0,85,2,99,16, + 0,0,91,0,0,0,0,0,0,0,0,0,82,2,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 110,2,85,0,82,5,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,88,18,85,3,53,3,0,0, + 0,0,0,0,110,4,85,4,99,1,0,0,103,1,85,4, + 82,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,99,56,0,0,85,4,82,8,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,5, + 85,5,40,0,0,0,0,0,0,0,97,36,0,0,83,1, + 85,4,108,5,0,0,0,0,0,0,0,0,91,13,0,0, + 0,0,0,0,0,0,88,21,85,0,82,4,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,3, + 0,0,0,0,0,0,85,4,108,4,0,0,0,0,0,0, + 0,0,85,4,36,0,103,1,85,4,36,0,41,2,122,125, + 84,114,121,32,116,111,32,102,105,110,100,32,97,32,115,112, + 101,99,32,102,111,114,32,39,102,117,108,108,110,97,109,101, + 39,32,111,110,32,115,121,115,46,112,97,116,104,32,111,114, + 32,39,112,97,116,104,39,46,10,10,84,104,101,32,115,101, + 97,114,99,104,32,105,115,32,98,97,115,101,100,32,111,110, + 32,115,121,115,46,112,97,116,104,95,104,111,111,107,115,32, + 97,110,100,32,115,121,115,46,112,97,116,104,95,105,109,112, + 111,114,116,101,114,95,99,97,99,104,101,46,10,78,41,7, + 114,23,0,0,0,114,75,0,0,0,114,76,2,0,0,114, + 12,1,0,0,114,13,1,0,0,114,17,1,0,0,114,232, + 1,0,0,41,6,114,59,1,0,0,114,51,1,0,0,114, + 75,0,0,0,114,67,1,0,0,114,24,1,0,0,114,73, + 2,0,0,115,6,0,0,0,32,32,32,32,32,32,114,10, + 0,0,0,114,68,1,0,0,218,20,80,97,116,104,70,105, + 110,100,101,114,46,102,105,110,100,95,115,112,101,99,12,6, + 0,0,115,110,0,0,0,128,0,240,12,0,12,16,137,60, + 220,19,22,151,56,145,56,136,68,216,15,18,143,125,137,125, + 152,88,168,86,211,15,52,136,4,216,11,15,137,60,216,19, + 23,216,13,17,143,91,137,91,209,13,32,216,29,33,215,29, + 60,209,29,60,136,78,222,15,29,240,6,0,31,35,144,4, + 148,11,220,50,64,192,24,208,91,94,215,91,104,209,91,104, + 211,50,105,144,4,212,16,47,216,23,27,144,11,224,23,27, + 224,19,23,136,75,114,32,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,5,0,0,0,15,0,0,0,243, + 50,0,0,0,149,0,83,1,83,2,75,0,74,1,110,2, + 32,0,85,2,82,4,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,85,0,48,0,85,1, + 68,1,54,1,36,0,41,3,122,240,10,70,105,110,100,32, + 100,105,115,116,114,105,98,117,116,105,111,110,115,46,10,10, + 82,101,116,117,114,110,32,97,110,32,105,116,101,114,97,98, + 108,101,32,111,102,32,97,108,108,32,68,105,115,116,114,105, + 98,117,116,105,111,110,32,105,110,115,116,97,110,99,101,115, + 32,99,97,112,97,98,108,101,32,111,102,10,108,111,97,100, + 105,110,103,32,116,104,101,32,109,101,116,97,100,97,116,97, + 32,102,111,114,32,112,97,99,107,97,103,101,115,32,109,97, + 116,99,104,105,110,103,32,96,96,99,111,110,116,101,120,116, + 46,110,97,109,101,96,96,10,40,111,114,32,97,108,108,32, + 110,97,109,101,115,32,105,102,32,96,96,78,111,110,101,96, + 96,32,105,110,100,105,99,97,116,101,100,41,32,97,108,111, + 110,103,32,116,104,101,32,112,97,116,104,115,32,105,110,32, + 116,104,101,32,108,105,115,116,10,111,102,32,100,105,114,101, + 99,116,111,114,105,101,115,32,96,96,99,111,110,116,101,120, + 116,46,112,97,116,104,96,96,46,10,114,1,0,0,0,114, + 53,2,0,0,41,3,114,58,2,0,0,114,54,2,0,0, + 218,18,102,105,110,100,95,100,105,115,116,114,105,98,117,116, + 105,111,110,115,41,3,114,197,0,0,0,114,198,0,0,0, + 114,54,2,0,0,115,3,0,0,0,32,32,32,114,10,0, + 0,0,114,81,2,0,0,218,29,80,97,116,104,70,105,110, + 100,101,114,46,102,105,110,100,95,100,105,115,116,114,105,98, + 117,116,105,111,110,115,36,6,0,0,115,29,0,0,0,128, + 0,245,20,0,9,58,216,15,33,215,15,52,210,15,52,176, + 100,208,15,69,184,102,209,15,69,208,8,69,114,32,0,0, + 0,114,34,0,0,0,114,84,0,0,0,114,70,1,0,0, + 41,14,114,204,0,0,0,114,203,0,0,0,114,205,0,0, + 0,114,71,1,0,0,114,206,0,0,0,114,74,1,0,0, + 114,52,2,0,0,114,65,2,0,0,114,75,1,0,0,114, + 70,2,0,0,114,76,2,0,0,114,68,1,0,0,114,81, + 2,0,0,114,76,1,0,0,114,34,0,0,0,114,32,0, + 0,0,114,10,0,0,0,114,50,2,0,0,114,50,2,0, + 0,182,5,0,0,115,125,0,0,0,134,0,225,4,72,224, + 5,17,241,2,15,5,47,243,3,0,6,18,240,2,15,5, + 47,240,34,0,6,18,241,2,10,5,24,243,3,0,6,18, + 240,2,10,5,24,240,24,0,6,17,241,2,19,5,22,243, + 3,0,6,17,240,2,19,5,22,240,42,0,6,17,243,2, + 26,5,24,243,3,0,6,17,240,2,26,5,24,240,56,0, + 6,17,243,2,21,5,24,243,3,0,6,17,240,2,21,5, + 24,240,46,0,6,18,241,2,10,5,70,1,243,3,0,6, + 18,243,2,10,5,70,1,114,32,0,0,0,114,50,2,0, + 0,99,0,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,0,0,0,0,243,80,0,0,0,149,0,92,0,114, + 1,83,0,114,2,83,1,114,3,83,2,114,4,83,3,26, + 0,114,5,83,4,26,0,114,6,83,5,26,0,114,7,83, + 12,83,7,26,0,106,1,114,8,83,8,26,0,114,9,92, + 10,83,9,26,0,53,0,0,0,0,0,0,0,114,11,83, + 10,26,0,114,12,83,11,114,13,103,6,41,13,218,10,70, + 105,108,101,70,105,110,100,101,114,105,50,6,0,0,122,160, + 70,105,108,101,45,98,97,115,101,100,32,102,105,110,100,101, + 114,46,10,10,73,110,116,101,114,97,99,116,105,111,110,115, + 32,119,105,116,104,32,116,104,101,32,102,105,108,101,32,115, + 121,115,116,101,109,32,97,114,101,32,99,97,99,104,101,100, + 32,102,111,114,32,112,101,114,102,111,114,109,97,110,99,101, + 44,32,98,101,105,110,103,10,114,101,102,114,101,115,104,101, + 100,32,119,104,101,110,32,116,104,101,32,100,105,114,101,99, + 116,111,114,121,32,116,104,101,32,102,105,110,100,101,114,32, + 105,115,32,104,97,110,100,108,105,110,103,32,104,97,115,32, + 98,101,101,110,32,109,111,100,105,102,105,101,100,46,10,10, + 99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0, + 0,7,0,0,0,243,30,1,0,0,94,5,149,0,47,0, + 110,3,85,2,19,0,72,33,0,0,117,2,0,0,109,5, + 110,4,85,3,82,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,5,52,1,83,1,26,0, + 106,8,85,4,19,0,53,0,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,32,0,77,35,0,0,11,0,32,0, + 88,48,108,1,0,0,0,0,0,0,0,0,85,1,40,0, + 0,0,0,0,0,0,97,6,0,0,85,1,83,2,58,88, + 0,0,97,27,0,0,91,4,0,0,0,0,0,0,0,0, + 82,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,34,0,53,0,0,0,0,0,0,0,85,0, + 108,4,0,0,0,0,0,0,0,0,79,16,91,11,0,0, + 0,0,0,0,0,0,85,1,53,1,0,0,0,0,0,0, + 85,0,108,4,0,0,0,0,0,0,0,0,83,3,85,0, + 108,6,0,0,0,0,0,0,0,0,91,15,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,85,0,108,8, + 0,0,0,0,0,0,0,0,91,15,0,0,0,0,0,0, + 0,0,53,0,0,0,0,0,0,0,85,0,108,9,0,0, + 0,0,0,0,0,0,103,4,41,5,122,138,73,110,105,116, 105,97,108,105,122,101,32,119,105,116,104,32,116,104,101,32, 112,97,116,104,32,116,111,32,115,101,97,114,99,104,32,111, 110,32,97,110,100,32,97,32,118,97,114,105,97,98,108,101, - 32,110,117,109,98,101,114,32,111,102,10,32,32,32,32,32, - 32,32,32,50,45,116,117,112,108,101,115,32,99,111,110,116, - 97,105,110,105,110,103,32,116,104,101,32,108,111,97,100,101, - 114,32,97,110,100,32,116,104,101,32,102,105,108,101,32,115, - 117,102,102,105,120,101,115,32,116,104,101,32,108,111,97,100, - 101,114,10,32,32,32,32,32,32,32,32,114,101,99,111,103, + 32,110,117,109,98,101,114,32,111,102,10,50,45,116,117,112, + 108,101,115,32,99,111,110,116,97,105,110,105,110,103,32,116, + 104,101,32,108,111,97,100,101,114,32,97,110,100,32,116,104, + 101,32,102,105,108,101,32,115,117,102,102,105,120,101,115,32, + 116,104,101,32,108,111,97,100,101,114,10,114,101,99,111,103, 110,105,122,101,115,46,99,1,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,51,0,0,0,243,38,0,0,0, - 149,1,75,0,1,0,151,0,124,0,93,8,0,0,125,1, - 124,1,137,2,102,2,150,1,151,1,1,0,140,10,4,0, - 121,0,173,3,119,1,114,77,0,0,0,114,30,0,0,0, - 41,3,114,8,0,0,0,114,179,1,0,0,114,5,1,0, - 0,115,3,0,0,0,32,32,128,114,10,0,0,0,114,11, - 0,0,0,122,38,70,105,108,101,70,105,110,100,101,114,46, - 95,95,105,110,105,116,95,95,46,60,108,111,99,97,108,115, - 62,46,60,103,101,110,101,120,112,114,62,41,6,0,0,115, - 23,0,0,0,248,232,0,248,128,0,208,26,67,185,40,176, - 6,152,70,160,70,212,27,43,185,40,249,115,4,0,0,0, - 131,14,17,1,114,103,0,0,0,114,171,0,0,0,78,41, - 10,114,241,0,0,0,218,8,95,108,111,97,100,101,114,115, - 114,23,0,0,0,114,95,0,0,0,114,68,0,0,0,114, - 105,0,0,0,218,11,95,112,97,116,104,95,109,116,105,109, - 101,218,3,115,101,116,218,11,95,112,97,116,104,95,99,97, - 99,104,101,218,19,95,114,101,108,97,120,101,100,95,112,97, - 116,104,95,99,97,99,104,101,41,6,114,190,0,0,0,114, - 68,0,0,0,218,14,108,111,97,100,101,114,95,100,101,116, - 97,105,108,115,218,7,108,111,97,100,101,114,115,114,19,1, - 0,0,114,5,1,0,0,115,6,0,0,0,32,32,32,32, - 32,64,114,10,0,0,0,114,68,1,0,0,122,19,70,105, - 108,101,70,105,110,100,101,114,46,95,95,105,110,105,116,95, - 95,35,6,0,0,115,112,0,0,0,248,128,0,240,8,0, - 19,21,136,7,219,32,46,209,12,28,136,70,144,72,216,12, - 19,143,78,137,78,211,26,67,185,40,211,26,67,213,12,67, - 240,3,0,33,47,224,24,31,136,4,140,13,225,15,19,144, - 116,152,115,146,123,220,24,27,159,10,153,10,155,12,136,68, - 141,73,228,24,37,160,100,211,24,43,136,68,140,73,216,27, - 29,136,4,212,8,24,220,27,30,155,53,136,4,212,8,24, - 220,35,38,163,53,136,4,213,8,32,114,28,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 3,0,0,0,243,18,0,0,0,151,0,100,1,124,0,95, - 0,0,0,0,0,0,0,0,0,121,2,41,3,122,31,73, - 110,118,97,108,105,100,97,116,101,32,116,104,101,32,100,105, - 114,101,99,116,111,114,121,32,109,116,105,109,101,46,114,171, - 0,0,0,78,41,1,114,17,2,0,0,114,132,1,0,0, - 115,1,0,0,0,32,114,10,0,0,0,114,243,1,0,0, - 122,28,70,105,108,101,70,105,110,100,101,114,46,105,110,118, - 97,108,105,100,97,116,101,95,99,97,99,104,101,115,52,6, - 0,0,115,10,0,0,0,128,0,224,27,29,136,4,213,8, - 24,114,28,0,0,0,99,6,0,0,0,0,0,0,0,0, - 0,0,0,6,0,0,0,3,0,0,0,243,50,0,0,0, - 151,0,2,0,124,1,124,2,124,3,171,2,0,0,0,0, - 0,0,125,6,116,1,0,0,0,0,0,0,0,0,124,2, - 124,3,124,6,124,4,172,1,171,4,0,0,0,0,0,0, - 83,0,41,2,78,114,4,1,0,0,41,1,114,21,1,0, - 0,41,7,114,190,0,0,0,114,18,1,0,0,114,43,1, - 0,0,114,68,0,0,0,218,4,115,109,115,108,114,58,1, - 0,0,114,5,1,0,0,115,7,0,0,0,32,32,32,32, - 32,32,32,114,10,0,0,0,114,8,2,0,0,122,20,70, - 105,108,101,70,105,110,100,101,114,46,95,103,101,116,95,115, - 112,101,99,56,6,0,0,115,38,0,0,0,128,0,217,17, - 29,152,104,168,4,211,17,45,136,6,220,15,38,160,120,176, - 20,184,102,216,66,70,244,3,1,16,72,1,240,0,1,9, - 72,1,114,28,0,0,0,78,99,3,0,0,0,0,0,0, - 0,0,0,0,0,8,0,0,0,3,0,0,0,243,192,3, - 0,0,151,0,100,1,125,3,124,1,106,1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,2, - 171,1,0,0,0,0,0,0,100,3,25,0,0,0,125,4, - 9,0,116,3,0,0,0,0,0,0,0,0,124,0,106,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,120,1,115,20,1,0,116,7,0,0,0,0,0,0, - 0,0,106,8,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,106,10,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,125,5,124,5,124,0, - 106,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,107,55,0,0,114,23,124,0,106,17,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,1,0,124,5,124,0,95,7, - 0,0,0,0,0,0,0,0,116,19,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,114,29,124,0,106,20, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,125,6,124,4,106,23,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,125,7,110,14,124,0,106,24,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,125,6,124,4, - 125,7,124,7,124,6,118,0,114,105,116,27,0,0,0,0, - 0,0,0,0,124,0,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,4,171,2,0,0, - 0,0,0,0,125,8,124,0,106,28,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,68,0,93,57, - 0,0,92,2,0,0,125,9,125,10,100,5,124,9,122,0, - 0,0,125,11,116,27,0,0,0,0,0,0,0,0,124,8, - 124,11,171,2,0,0,0,0,0,0,125,12,116,31,0,0, - 0,0,0,0,0,0,124,12,171,1,0,0,0,0,0,0, - 115,1,140,35,124,0,106,33,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,10,124,1,124,12, - 124,8,103,1,124,2,171,5,0,0,0,0,0,0,99,2, - 1,0,83,0,4,0,116,35,0,0,0,0,0,0,0,0, - 124,8,171,1,0,0,0,0,0,0,125,3,124,0,106,28, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,68,0,93,97,0,0,92,2,0,0,125,9,125,10, - 9,0,116,27,0,0,0,0,0,0,0,0,124,0,106,4, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,4,124,9,122,0,0,0,171,2,0,0,0,0, - 0,0,125,12,116,38,0,0,0,0,0,0,0,0,106,41, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,7,124,12,100,3,172,8,171,3,0,0,0,0, - 0,0,1,0,124,7,124,9,122,0,0,0,124,6,118,0, - 115,1,140,64,116,31,0,0,0,0,0,0,0,0,124,12, - 171,1,0,0,0,0,0,0,115,1,140,76,124,0,106,33, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,10,124,1,124,12,100,6,124,2,171,5,0,0, - 0,0,0,0,99,2,1,0,83,0,4,0,124,3,114,54, - 116,38,0,0,0,0,0,0,0,0,106,41,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,9, - 127,8,171,2,0,0,0,0,0,0,1,0,116,38,0,0, - 0,0,0,0,0,0,106,43,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,100,6,171,2, - 0,0,0,0,0,0,125,13,124,8,103,1,124,13,95,22, - 0,0,0,0,0,0,0,0,124,13,83,0,121,6,35,0, - 116,12,0,0,0,0,0,0,0,0,36,0,114,6,1,0, - 100,4,125,5,89,0,144,1,140,127,119,0,120,3,89,0, - 119,1,35,0,116,36,0,0,0,0,0,0,0,0,36,0, - 114,4,1,0,89,0,1,0,121,6,119,0,120,3,89,0, - 119,1,41,10,122,111,84,114,121,32,116,111,32,102,105,110, - 100,32,97,32,115,112,101,99,32,102,111,114,32,116,104,101, - 32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,108, - 101,46,10,10,32,32,32,32,32,32,32,32,82,101,116,117, - 114,110,115,32,116,104,101,32,109,97,116,99,104,105,110,103, - 32,115,112,101,99,44,32,111,114,32,78,111,110,101,32,105, - 102,32,110,111,116,32,102,111,117,110,100,46,10,32,32,32, - 32,32,32,32,32,70,114,103,0,0,0,114,52,0,0,0, - 114,171,0,0,0,114,68,1,0,0,78,122,9,116,114,121, - 105,110,103,32,123,125,41,1,218,9,118,101,114,98,111,115, - 105,116,121,122,25,112,111,115,115,105,98,108,101,32,110,97, - 109,101,115,112,97,99,101,32,102,111,114,32,123,125,41,23, - 114,132,0,0,0,114,85,0,0,0,114,68,0,0,0,114, - 23,0,0,0,114,95,0,0,0,114,153,1,0,0,114,87, - 0,0,0,114,17,2,0,0,218,11,95,102,105,108,108,95, - 99,97,99,104,101,114,27,0,0,0,114,20,2,0,0,114, - 173,0,0,0,114,19,2,0,0,114,72,0,0,0,114,16, - 2,0,0,114,93,0,0,0,114,8,2,0,0,114,96,0, - 0,0,114,139,0,0,0,114,208,0,0,0,114,216,0,0, - 0,114,12,1,0,0,114,6,1,0,0,41,14,114,190,0, - 0,0,114,43,1,0,0,114,58,1,0,0,218,12,105,115, - 95,110,97,109,101,115,112,97,99,101,218,11,116,97,105,108, - 95,109,111,100,117,108,101,114,243,0,0,0,218,5,99,97, - 99,104,101,218,12,99,97,99,104,101,95,109,111,100,117,108, - 101,218,9,98,97,115,101,95,112,97,116,104,114,179,1,0, - 0,114,18,1,0,0,218,13,105,110,105,116,95,102,105,108, - 101,110,97,109,101,218,9,102,117,108,108,95,112,97,116,104, - 114,17,1,0,0,115,14,0,0,0,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,114,10,0,0,0,114,59,1, - 0,0,122,20,70,105,108,101,70,105,110,100,101,114,46,102, - 105,110,100,95,115,112,101,99,61,6,0,0,115,220,1,0, - 0,128,0,240,10,0,24,29,136,12,216,22,30,215,22,41, - 209,22,41,168,35,211,22,46,168,113,209,22,49,136,11,240, - 2,3,9,23,220,20,30,152,116,159,121,153,121,210,31,56, - 172,67,175,74,169,74,171,76,211,20,57,215,20,66,209,20, - 66,136,69,240,6,0,12,17,144,68,215,20,36,209,20,36, - 210,11,36,216,12,16,215,12,28,209,12,28,212,12,30,216, - 31,36,136,68,212,12,28,228,11,22,140,61,216,20,24,215, - 20,44,209,20,44,136,69,216,27,38,215,27,44,209,27,44, - 211,27,46,137,76,224,20,24,215,20,36,209,20,36,136,69, - 216,27,38,136,76,224,11,23,152,53,209,11,32,220,24,34, - 160,52,167,57,161,57,168,107,211,24,58,136,73,216,40,44, - 175,13,172,13,209,16,36,144,6,152,12,216,32,42,168,86, - 209,32,51,144,13,220,28,38,160,121,176,45,211,28,64,144, - 9,220,19,31,160,9,213,19,42,216,27,31,159,62,153,62, - 168,44,184,8,192,41,200,105,200,91,208,90,96,211,27,97, - 210,20,97,240,9,0,41,54,244,16,0,32,43,168,57,211, - 31,53,144,12,224,36,40,167,77,164,77,209,12,32,136,70, - 144,76,240,2,3,13,28,220,28,38,160,116,167,121,161,121, - 176,43,192,6,209,50,70,211,28,71,144,9,244,6,0,13, - 23,215,12,39,209,12,39,168,11,176,89,200,33,208,12,39, - 212,12,76,216,15,27,152,102,209,15,36,168,5,210,15,45, - 220,19,31,160,9,213,19,42,216,27,31,159,62,153,62,168, - 44,184,8,192,41,216,42,46,176,6,243,3,1,28,56,242, - 0,1,21,56,240,17,0,37,50,241,20,0,12,24,220,12, - 22,215,12,39,209,12,39,208,40,67,192,89,212,12,79,220, - 19,29,215,19,40,209,19,40,168,24,176,52,211,19,56,136, - 68,216,47,56,168,107,136,68,212,12,43,216,19,23,136,75, - 216,15,19,248,244,81,1,0,16,23,242,0,1,9,23,216, - 20,22,139,69,240,3,1,9,23,251,244,56,0,20,30,242, - 0,1,13,28,218,23,27,240,3,1,13,28,250,115,35,0, - 0,0,152,53,70,62,0,196,40,25,71,16,2,198,62,11, - 71,13,3,199,12,1,71,13,3,199,16,9,71,29,5,199, - 28,1,71,29,5,99,1,0,0,0,0,0,0,0,0,0, - 0,0,5,0,0,0,3,0,0,0,243,84,2,0,0,151, - 0,124,0,106,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,125,1,9,0,116,3,0,0,0, - 0,0,0,0,0,106,4,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,120,1,115,20,1, - 0,116,3,0,0,0,0,0,0,0,0,106,6,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,171,1,0,0,0,0,0,0,125, - 2,116,14,0,0,0,0,0,0,0,0,106,16,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,1,171,1,0,0,0,0,0,0,115,17,116, - 21,0,0,0,0,0,0,0,0,124,2,171,1,0,0,0, - 0,0,0,124,0,95,11,0,0,0,0,0,0,0,0,110, - 88,116,21,0,0,0,0,0,0,0,0,171,0,0,0,0, - 0,0,0,125,3,124,2,68,0,93,66,0,0,125,4,124, - 4,106,25,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,2,171,1,0,0,0,0,0,0,92, - 3,0,0,125,5,125,6,125,7,124,6,114,22,124,5,155, - 0,100,2,124,7,106,27,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,155,0,157,3,125,8,110,2,124,5,125,8,124,3,106, - 29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,8,171,1,0,0,0,0,0,0,1,0,140, - 68,4,0,124,3,124,0,95,11,0,0,0,0,0,0,0, - 0,116,14,0,0,0,0,0,0,0,0,106,16,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,116,30,0,0,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,114,36,124,2,68,0,143,9,99,2,104, - 0,99,2,93,18,0,0,125,9,124,9,106,27,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,146,2,140,20,4,0,99,2,125, - 9,124,0,95,16,0,0,0,0,0,0,0,0,121,3,121, - 3,35,0,116,8,0,0,0,0,0,0,0,0,116,10,0, - 0,0,0,0,0,0,0,116,12,0,0,0,0,0,0,0, - 0,102,3,36,0,114,5,1,0,103,0,125,2,89,0,140, - 232,119,0,120,3,89,0,119,1,99,2,1,0,99,2,125, - 9,119,0,41,4,122,68,70,105,108,108,32,116,104,101,32, - 99,97,99,104,101,32,111,102,32,112,111,116,101,110,116,105, - 97,108,32,109,111,100,117,108,101,115,32,97,110,100,32,112, - 97,99,107,97,103,101,115,32,102,111,114,32,116,104,105,115, - 32,100,105,114,101,99,116,111,114,121,46,114,14,0,0,0, - 114,103,0,0,0,78,41,17,114,68,0,0,0,114,23,0, - 0,0,218,7,108,105,115,116,100,105,114,114,95,0,0,0, - 114,1,2,0,0,218,15,80,101,114,109,105,115,115,105,111, - 110,69,114,114,111,114,218,18,78,111,116,65,68,105,114,101, - 99,116,111,114,121,69,114,114,111,114,114,20,0,0,0,114, - 31,0,0,0,114,32,0,0,0,114,18,2,0,0,114,19, - 2,0,0,114,159,0,0,0,114,173,0,0,0,218,3,97, - 100,100,114,33,0,0,0,114,20,2,0,0,41,10,114,190, - 0,0,0,114,68,0,0,0,218,8,99,111,110,116,101,110, - 116,115,218,21,108,111,119,101,114,95,115,117,102,102,105,120, - 95,99,111,110,116,101,110,116,115,114,226,1,0,0,114,188, - 0,0,0,114,199,1,0,0,114,179,1,0,0,218,8,110, - 101,119,95,110,97,109,101,218,2,102,110,115,10,0,0,0, - 32,32,32,32,32,32,32,32,32,32,114,10,0,0,0,114, - 28,2,0,0,122,22,70,105,108,101,70,105,110,100,101,114, - 46,95,102,105,108,108,95,99,97,99,104,101,112,6,0,0, - 115,4,1,0,0,128,0,224,15,19,143,121,137,121,136,4, - 240,2,5,9,26,220,23,26,151,123,145,123,160,52,210,35, - 55,172,51,175,58,169,58,171,60,211,23,56,136,72,244,14, - 0,16,19,143,124,137,124,215,15,38,209,15,38,160,117,212, - 15,45,220,31,34,160,56,155,125,136,68,213,12,28,244,14, - 0,37,40,163,69,208,12,33,219,24,32,144,4,216,36,40, - 167,78,161,78,176,51,211,36,55,209,16,33,144,4,144,99, - 152,54,217,19,22,216,34,38,160,22,160,113,168,22,175,28, - 169,28,171,30,208,40,56,208,31,57,145,72,224,31,35,144, - 72,216,16,37,215,16,41,209,16,41,168,40,213,16,51,240, - 13,0,25,33,240,14,0,32,53,136,68,212,12,28,220,11, - 14,143,60,137,60,215,11,34,209,11,34,212,35,62,212,11, - 63,217,61,69,211,39,70,185,88,176,114,168,2,175,8,169, - 8,173,10,184,88,209,39,70,136,68,213,12,36,240,3,0, - 12,64,1,248,244,47,0,17,34,164,63,212,52,70,208,15, - 71,242,0,3,9,26,240,6,0,24,26,138,72,240,7,3, - 9,26,252,242,48,0,40,71,1,115,23,0,0,0,142,43, - 68,9,0,195,40,23,68,37,4,196,9,22,68,34,3,196, - 33,1,68,34,3,99,1,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,7,0,0,0,243,22,0,0,0,135, - 0,135,1,151,0,136,0,136,1,102,2,100,1,132,8,125, - 2,124,2,83,0,41,2,97,20,1,0,0,65,32,99,108, - 97,115,115,32,109,101,116,104,111,100,32,119,104,105,99,104, - 32,114,101,116,117,114,110,115,32,97,32,99,108,111,115,117, - 114,101,32,116,111,32,117,115,101,32,111,110,32,115,121,115, - 46,112,97,116,104,95,104,111,111,107,10,32,32,32,32,32, - 32,32,32,119,104,105,99,104,32,119,105,108,108,32,114,101, - 116,117,114,110,32,97,110,32,105,110,115,116,97,110,99,101, - 32,117,115,105,110,103,32,116,104,101,32,115,112,101,99,105, - 102,105,101,100,32,108,111,97,100,101,114,115,32,97,110,100, - 32,116,104,101,32,112,97,116,104,10,32,32,32,32,32,32, - 32,32,99,97,108,108,101,100,32,111,110,32,116,104,101,32, - 99,108,111,115,117,114,101,46,10,10,32,32,32,32,32,32, - 32,32,73,102,32,116,104,101,32,112,97,116,104,32,99,97, - 108,108,101,100,32,111,110,32,116,104,101,32,99,108,111,115, - 117,114,101,32,105,115,32,110,111,116,32,97,32,100,105,114, - 101,99,116,111,114,121,44,32,73,109,112,111,114,116,69,114, - 114,111,114,32,105,115,10,32,32,32,32,32,32,32,32,114, - 97,105,115,101,100,46,10,10,32,32,32,32,32,32,32,32, - 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,19,0,0,0,243,70,0,0,0,149,2,151,0,116,1, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,115,13,116,3,0,0,0,0,0,0,0,0,100,1, - 124,0,172,2,171,2,0,0,0,0,0,0,130,1,2,0, - 137,1,124,0,103,1,137,2,162,1,173,6,142,0,83,0, + 0,0,0,3,0,0,0,51,0,0,0,243,42,0,0,0, + 62,1,35,0,32,0,149,0,85,0,19,0,72,8,0,0, + 111,17,84,2,52,2,118,0,149,5,32,0,77,10,0,0, + 11,0,32,0,103,0,55,3,102,1,114,84,0,0,0,114, + 34,0,0,0,41,3,114,8,0,0,0,114,220,1,0,0, + 114,12,1,0,0,115,3,0,0,0,32,32,128,114,10,0, + 0,0,114,11,0,0,0,218,38,70,105,108,101,70,105,110, + 100,101,114,46,95,95,105,110,105,116,95,95,46,60,108,111, + 99,97,108,115,62,46,60,103,101,110,101,120,112,114,62,65, + 6,0,0,115,20,0,0,0,248,233,0,128,0,208,26,67, + 186,40,176,6,160,70,213,27,43,186,40,249,115,4,0,0, + 0,131,16,19,1,114,111,0,0,0,114,177,0,0,0,78, + 41,10,114,248,0,0,0,218,8,95,108,111,97,100,101,114, + 115,114,26,0,0,0,114,103,0,0,0,114,75,0,0,0, + 114,113,0,0,0,218,11,95,112,97,116,104,95,109,116,105, + 109,101,218,3,115,101,116,218,11,95,112,97,116,104,95,99, + 97,99,104,101,218,19,95,114,101,108,97,120,101,100,95,112, + 97,116,104,95,99,97,99,104,101,41,6,114,196,0,0,0, + 114,75,0,0,0,218,14,108,111,97,100,101,114,95,100,101, + 116,97,105,108,115,218,7,108,111,97,100,101,114,115,114,26, + 1,0,0,114,12,1,0,0,115,6,0,0,0,32,32,32, + 32,32,64,114,10,0,0,0,114,80,1,0,0,218,19,70, + 105,108,101,70,105,110,100,101,114,46,95,95,105,110,105,116, + 95,95,59,6,0,0,115,110,0,0,0,248,128,0,240,8, + 0,19,21,136,7,219,32,46,209,12,28,136,70,144,72,216, + 12,19,143,78,137,78,212,26,67,185,40,211,26,67,214,12, + 67,241,3,0,33,47,224,24,31,140,13,230,15,19,144,116, + 152,115,147,123,220,24,27,159,10,154,10,155,12,136,68,141, + 73,228,24,37,160,100,211,24,43,136,68,140,73,216,27,29, + 136,4,212,8,24,220,27,30,155,53,136,4,212,8,24,220, + 35,38,163,53,136,4,213,8,32,114,32,0,0,0,99,1, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, + 0,0,0,243,18,0,0,0,149,0,83,1,85,0,108,0, + 0,0,0,0,0,0,0,0,103,2,41,3,122,31,73,110, + 118,97,108,105,100,97,116,101,32,116,104,101,32,100,105,114, + 101,99,116,111,114,121,32,109,116,105,109,101,46,114,177,0, + 0,0,78,41,1,114,89,2,0,0,114,157,1,0,0,115, + 1,0,0,0,32,114,10,0,0,0,114,52,2,0,0,218, + 28,70,105,108,101,70,105,110,100,101,114,46,105,110,118,97, + 108,105,100,97,116,101,95,99,97,99,104,101,115,76,6,0, + 0,115,10,0,0,0,128,0,224,27,29,136,4,213,8,24, + 114,32,0,0,0,99,6,0,0,0,0,0,0,0,0,0, + 0,0,7,0,0,0,3,0,0,0,243,40,0,0,0,149, + 0,85,1,34,0,88,35,53,2,0,0,0,0,0,0,110, + 6,91,1,0,0,0,0,0,0,0,0,88,35,85,6,85, + 4,83,1,57,4,36,0,41,2,78,114,11,1,0,0,41, + 1,114,28,1,0,0,41,7,114,196,0,0,0,114,25,1, + 0,0,114,51,1,0,0,114,75,0,0,0,218,4,115,109, + 115,108,114,67,1,0,0,114,12,1,0,0,115,7,0,0, + 0,32,32,32,32,32,32,32,114,10,0,0,0,114,76,2, + 0,0,218,20,70,105,108,101,70,105,110,100,101,114,46,95, + 103,101,116,95,115,112,101,99,80,6,0,0,115,34,0,0, + 0,128,0,217,17,29,152,104,211,17,45,136,6,220,15,38, + 160,120,184,102,216,66,70,241,3,1,16,72,1,240,0,1, + 9,72,1,114,32,0,0,0,78,99,3,0,0,0,0,0, + 0,0,0,0,0,0,8,0,0,0,3,0,0,0,243,240, + 3,0,0,149,0,83,1,110,3,85,1,82,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, + 2,53,1,0,0,0,0,0,0,83,3,5,0,0,0,110, + 4,30,0,91,3,0,0,0,0,0,0,0,0,85,0,82, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,61,1,40,0,0,0,0,0,0,0,100,21,0, + 0,32,0,91,6,0,0,0,0,0,0,0,0,82,8,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,34,0,53,0,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,82,10,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,110,5,88,80,82,14,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,58, + 119,0,0,97,22,0,0,85,0,82,17,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,32,0,88,80,108,7,0,0,0,0,0, + 0,0,0,91,19,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,29,0, + 0,85,0,82,20,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,110,6,85,4,82,23,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 0,0,0,0,0,0,0,110,7,79,14,85,0,82,24,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,110,6,85,4,110,7,88,118,59,0,0,0,97,108,0, + 0,91,27,0,0,0,0,0,0,0,0,85,0,82,4,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,4,53,2,0,0,0,0,0,0,110,8,85,0,82, + 28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,19,0,72,59,0,0,117,2,0,0,112,154,83, + 5,85,9,45,0,0,0,110,11,91,27,0,0,0,0,0, + 0,0,0,88,139,53,2,0,0,0,0,0,0,110,12,91, + 31,0,0,0,0,0,0,0,0,85,12,53,1,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,100,2,0,0,77, + 39,0,0,85,0,82,33,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,88,161,88,200,47,1,85, + 2,53,5,0,0,0,0,0,0,115,2,32,0,36,0,11, + 0,32,0,91,35,0,0,0,0,0,0,0,0,85,8,53, + 1,0,0,0,0,0,0,110,3,85,0,82,28,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19, + 0,72,99,0,0,117,2,0,0,112,154,30,0,91,27,0, + 0,0,0,0,0,0,0,85,0,82,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,88,73,45, + 0,0,0,53,2,0,0,0,0,0,0,110,12,91,38,0, + 0,0,0,0,0,0,0,82,41,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,7,85,12,83, + 3,83,8,57,3,32,0,88,121,45,0,0,0,85,6,59, + 0,0,0,100,2,0,0,77,61,0,0,91,31,0,0,0, + 0,0,0,0,0,85,12,53,1,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,100,2,0,0,77,79,0,0,85, + 0,82,33,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,88,161,85,12,83,6,85,2,53,5,0, + 0,0,0,0,0,115,2,32,0,36,0,11,0,32,0,85, + 3,40,0,0,0,0,0,0,0,97,54,0,0,91,38,0, + 0,0,0,0,0,0,0,82,41,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,9,87,8,53, + 2,0,0,0,0,0,0,32,0,91,38,0,0,0,0,0, + 0,0,0,82,43,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,1,83,6,53,2,0,0,0, + 0,0,0,110,13,85,8,47,1,85,13,108,22,0,0,0, + 0,0,0,0,0,85,13,36,0,103,6,33,0,91,12,0, + 0,0,0,0,0,0,0,7,0,97,6,0,0,32,0,83, + 4,110,5,31,0,71,1,78,144,102,0,61,3,31,0,102, + 1,33,0,91,36,0,0,0,0,0,0,0,0,7,0,97, + 4,0,0,32,0,31,0,32,0,103,6,102,0,61,3,31, + 0,102,1,41,10,122,95,84,114,121,32,116,111,32,102,105, + 110,100,32,97,32,115,112,101,99,32,102,111,114,32,116,104, + 101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,117, + 108,101,46,10,10,82,101,116,117,114,110,115,32,116,104,101, + 32,109,97,116,99,104,105,110,103,32,115,112,101,99,44,32, + 111,114,32,78,111,110,101,32,105,102,32,110,111,116,32,102, + 111,117,110,100,46,10,70,114,111,0,0,0,114,59,0,0, + 0,114,177,0,0,0,114,80,1,0,0,78,122,9,116,114, + 121,105,110,103,32,123,125,41,1,218,9,118,101,114,98,111, + 115,105,116,121,122,25,112,111,115,115,105,98,108,101,32,110, + 97,109,101,115,112,97,99,101,32,102,111,114,32,123,125,41, + 23,114,138,0,0,0,114,93,0,0,0,114,75,0,0,0, + 114,26,0,0,0,114,103,0,0,0,114,184,1,0,0,114, + 95,0,0,0,114,89,2,0,0,218,11,95,102,105,108,108, + 95,99,97,99,104,101,114,30,0,0,0,114,92,2,0,0, + 114,179,0,0,0,114,91,2,0,0,114,79,0,0,0,114, + 88,2,0,0,114,101,0,0,0,114,76,2,0,0,114,104, + 0,0,0,114,145,0,0,0,114,216,0,0,0,114,223,0, + 0,0,114,19,1,0,0,114,13,1,0,0,41,14,114,196, + 0,0,0,114,51,1,0,0,114,67,1,0,0,218,12,105, + 115,95,110,97,109,101,115,112,97,99,101,218,11,116,97,105, + 108,95,109,111,100,117,108,101,114,250,0,0,0,218,5,99, + 97,99,104,101,218,12,99,97,99,104,101,95,109,111,100,117, + 108,101,218,9,98,97,115,101,95,112,97,116,104,114,220,1, + 0,0,114,25,1,0,0,218,13,105,110,105,116,95,102,105, + 108,101,110,97,109,101,218,9,102,117,108,108,95,112,97,116, + 104,114,24,1,0,0,115,14,0,0,0,32,32,32,32,32, + 32,32,32,32,32,32,32,32,32,114,10,0,0,0,114,68, + 1,0,0,218,20,70,105,108,101,70,105,110,100,101,114,46, + 102,105,110,100,95,115,112,101,99,85,6,0,0,115,206,1, + 0,0,128,0,240,10,0,24,29,136,12,216,22,30,215,22, + 41,209,22,41,168,35,211,22,46,168,113,209,22,49,136,11, + 240,2,3,9,23,220,20,30,152,116,159,121,153,121,215,31, + 56,172,67,175,74,170,74,171,76,211,20,57,215,20,66,209, + 20,66,136,69,240,6,0,12,17,215,20,36,209,20,36,211, + 11,36,216,12,16,215,12,28,209,12,28,212,12,30,216,31, + 36,212,12,28,228,11,22,143,61,137,61,216,20,24,215,20, + 44,209,20,44,136,69,216,27,38,215,27,44,209,27,44,211, + 27,46,137,76,224,20,24,215,20,36,209,20,36,136,69,216, + 27,38,136,76,224,11,23,211,11,32,220,24,34,160,52,167, + 57,161,57,168,107,211,24,58,136,73,216,40,44,175,13,172, + 13,209,16,36,144,6,216,32,42,168,86,209,32,51,144,13, + 220,28,38,160,121,211,28,64,144,9,220,19,31,160,9,215, + 19,42,211,19,42,216,27,31,159,62,153,62,168,44,192,41, + 200,91,208,90,96,211,27,97,210,20,97,241,9,0,41,54, + 244,16,0,32,43,168,57,211,31,53,144,12,224,36,40,167, + 77,164,77,209,12,32,136,70,240,2,3,13,28,220,28,38, + 160,116,167,121,161,121,176,43,209,50,70,211,28,71,144,9, + 244,6,0,13,23,215,12,39,209,12,39,168,11,176,89,200, + 33,208,12,39,209,12,76,216,15,27,209,15,36,168,5,213, + 15,45,220,19,31,160,9,215,19,42,211,19,42,216,27,31, + 159,62,153,62,168,44,192,41,216,42,46,176,6,243,3,1, + 28,56,242,0,1,21,56,241,17,0,37,50,246,20,0,12, + 24,220,12,22,215,12,39,209,12,39,208,40,67,192,89,212, + 12,79,220,19,29,215,19,40,209,19,40,168,24,176,52,211, + 19,56,136,68,216,47,56,168,107,136,68,212,12,43,216,19, + 23,136,75,216,15,19,248,244,81,1,0,16,23,243,0,1, + 9,23,216,20,22,139,69,240,3,1,9,23,251,244,56,0, + 20,30,243,0,1,13,28,218,23,27,240,3,1,13,28,250, + 115,35,0,0,0,152,59,71,20,0,196,53,24,71,39,2, + 199,20,12,71,36,3,199,35,1,71,36,3,199,39,10,71, + 53,5,199,52,1,71,53,5,99,1,0,0,0,0,0,0, + 0,0,0,0,0,5,0,0,0,3,0,0,0,243,134,2, + 0,0,149,0,85,0,82,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,110,1,30,0,91,2, + 0,0,0,0,0,0,0,0,82,4,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,85,1, + 61,1,40,0,0,0,0,0,0,0,100,21,0,0,32,0, + 91,2,0,0,0,0,0,0,0,0,82,6,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 53,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 110,2,91,14,0,0,0,0,0,0,0,0,82,16,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 82,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,1,53,1,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,100,17,0,0,91,21,0,0,0,0, + 0,0,0,0,85,2,53,1,0,0,0,0,0,0,85,0, + 108,11,0,0,0,0,0,0,0,0,79,93,91,21,0,0, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,110,3, + 85,2,19,0,72,71,0,0,110,4,85,4,82,25,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 83,2,53,1,0,0,0,0,0,0,117,3,0,0,112,86, + 110,7,85,6,40,0,0,0,0,0,0,0,97,22,0,0, + 85,5,14,0,83,2,85,7,82,27,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,14,0,51,3,110,8,79,2,85,5,110,8, + 85,3,82,29,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,8,53,1,0,0,0,0,0,0, + 32,0,77,73,0,0,11,0,32,0,88,48,108,11,0,0, + 0,0,0,0,0,0,91,14,0,0,0,0,0,0,0,0, + 82,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,82,19,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,91,30,0,0,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,97,38,0,0,85,2,19,0,86,9,115,2,49,0, + 115,2,19,0,72,18,0,0,111,153,82,27,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,105,2,77,20,0,0,11,0,32,0, + 115,2,110,9,85,0,108,16,0,0,0,0,0,0,0,0, + 103,3,103,3,33,0,91,8,0,0,0,0,0,0,0,0, + 91,10,0,0,0,0,0,0,0,0,91,12,0,0,0,0, + 0,0,0,0,52,3,7,0,97,5,0,0,32,0,47,0, + 110,2,31,0,78,250,102,0,61,3,31,0,102,1,115,2, + 32,0,115,2,110,9,102,0,41,4,122,68,70,105,108,108, + 32,116,104,101,32,99,97,99,104,101,32,111,102,32,112,111, + 116,101,110,116,105,97,108,32,109,111,100,117,108,101,115,32, + 97,110,100,32,112,97,99,107,97,103,101,115,32,102,111,114, + 32,116,104,105,115,32,100,105,114,101,99,116,111,114,121,46, + 114,14,0,0,0,114,111,0,0,0,78,41,17,114,75,0, + 0,0,114,26,0,0,0,218,7,108,105,115,116,100,105,114, + 114,103,0,0,0,114,68,2,0,0,218,15,80,101,114,109, + 105,115,115,105,111,110,69,114,114,111,114,218,18,78,111,116, + 65,68,105,114,101,99,116,111,114,121,69,114,114,111,114,114, + 23,0,0,0,114,35,0,0,0,114,36,0,0,0,114,90, + 2,0,0,114,91,2,0,0,114,165,0,0,0,114,179,0, + 0,0,218,3,97,100,100,114,37,0,0,0,114,92,2,0, + 0,41,10,114,196,0,0,0,114,75,0,0,0,218,8,99, + 111,110,116,101,110,116,115,218,21,108,111,119,101,114,95,115, + 117,102,102,105,120,95,99,111,110,116,101,110,116,115,114,25, + 2,0,0,114,194,0,0,0,114,246,1,0,0,114,220,1, + 0,0,218,8,110,101,119,95,110,97,109,101,218,2,102,110, + 115,10,0,0,0,32,32,32,32,32,32,32,32,32,32,114, + 10,0,0,0,114,103,2,0,0,218,22,70,105,108,101,70, + 105,110,100,101,114,46,95,102,105,108,108,95,99,97,99,104, + 101,136,6,0,0,115,4,1,0,0,128,0,224,15,19,143, + 121,137,121,136,4,240,2,5,9,26,220,23,26,151,123,146, + 123,160,52,215,35,55,172,51,175,58,170,58,171,60,211,23, + 56,136,72,244,14,0,16,19,143,124,137,124,215,15,38,209, + 15,38,160,117,215,15,45,209,15,45,220,31,34,160,56,155, + 125,136,68,213,12,28,244,14,0,37,40,163,69,208,12,33, + 219,24,32,144,4,216,36,40,167,78,161,78,176,51,211,36, + 55,209,16,33,144,4,152,54,222,19,22,216,34,38,160,22, + 160,113,168,22,175,28,169,28,171,30,208,40,56,208,31,57, + 145,72,224,31,35,144,72,216,16,37,215,16,41,209,16,41, + 168,40,214,16,51,241,13,0,25,33,240,14,0,32,53,212, + 12,28,220,11,14,143,60,137,60,215,11,34,209,11,34,212, + 35,62,215,11,63,209,11,63,217,61,69,211,39,70,186,88, + 176,114,175,8,169,8,174,10,185,88,209,39,70,136,68,213, + 12,36,240,3,0,12,64,1,248,244,47,0,17,34,164,63, + 212,52,70,208,15,71,243,0,3,9,26,240,6,0,24,26, + 138,72,240,7,3,9,26,252,242,48,0,40,71,1,115,23, + 0,0,0,142,50,68,33,0,195,62,25,68,62,4,196,33, + 23,68,59,3,196,58,1,68,59,3,99,1,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,7,0,0,0,243, + 24,0,0,0,94,0,94,1,149,0,85,0,85,1,52,2, + 83,1,26,0,106,8,110,2,85,2,36,0,41,2,122,236, + 65,32,99,108,97,115,115,32,109,101,116,104,111,100,32,119, + 104,105,99,104,32,114,101,116,117,114,110,115,32,97,32,99, + 108,111,115,117,114,101,32,116,111,32,117,115,101,32,111,110, + 32,115,121,115,46,112,97,116,104,95,104,111,111,107,10,119, + 104,105,99,104,32,119,105,108,108,32,114,101,116,117,114,110, + 32,97,110,32,105,110,115,116,97,110,99,101,32,117,115,105, + 110,103,32,116,104,101,32,115,112,101,99,105,102,105,101,100, + 32,108,111,97,100,101,114,115,32,97,110,100,32,116,104,101, + 32,112,97,116,104,10,99,97,108,108,101,100,32,111,110,32, + 116,104,101,32,99,108,111,115,117,114,101,46,10,10,73,102, + 32,116,104,101,32,112,97,116,104,32,99,97,108,108,101,100, + 32,111,110,32,116,104,101,32,99,108,111,115,117,114,101,32, + 105,115,32,110,111,116,32,97,32,100,105,114,101,99,116,111, + 114,121,44,32,73,109,112,111,114,116,69,114,114,111,114,32, + 105,115,10,114,97,105,115,101,100,46,10,10,99,1,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,19,0,0, + 0,243,74,0,0,0,62,2,149,0,91,1,0,0,0,0, + 0,0,0,0,85,0,53,1,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,100,10,0,0,91,3,0,0,0,0, + 0,0,0,0,83,1,85,0,83,2,57,2,101,1,84,1, + 34,0,85,0,47,1,84,2,81,1,55,6,54,0,36,0, 41,3,122,45,80,97,116,104,32,104,111,111,107,32,102,111, 114,32,105,109,112,111,114,116,108,105,98,46,109,97,99,104, 105,110,101,114,121,46,70,105,108,101,70,105,110,100,101,114, 46,122,30,111,110,108,121,32,100,105,114,101,99,116,111,114, 105,101,115,32,97,114,101,32,115,117,112,112,111,114,116,101, - 100,114,84,0,0,0,41,2,114,96,0,0,0,114,189,0, - 0,0,41,3,114,68,0,0,0,114,51,1,0,0,114,21, + 100,114,92,0,0,0,41,2,114,104,0,0,0,114,195,0, + 0,0,41,3,114,75,0,0,0,114,59,1,0,0,114,93, 2,0,0,115,3,0,0,0,32,128,128,114,10,0,0,0, 218,24,112,97,116,104,95,104,111,111,107,95,102,111,114,95, - 70,105,108,101,70,105,110,100,101,114,122,54,70,105,108,101, + 70,105,108,101,70,105,110,100,101,114,218,54,70,105,108,101, 70,105,110,100,101,114,46,112,97,116,104,95,104,111,111,107, 46,60,108,111,99,97,108,115,62,46,112,97,116,104,95,104, 111,111,107,95,102,111,114,95,70,105,108,101,70,105,110,100, - 101,114,153,6,0,0,115,41,0,0,0,248,128,0,228,19, - 30,152,116,212,19,36,220,22,33,208,34,66,200,20,212,22, - 78,208,16,78,217,19,22,144,116,208,19,45,152,110,210,19, - 45,208,12,45,114,28,0,0,0,114,30,0,0,0,41,3, - 114,51,1,0,0,114,21,2,0,0,114,47,2,0,0,115, - 3,0,0,0,96,96,32,114,10,0,0,0,218,9,112,97, - 116,104,95,104,111,111,107,122,20,70,105,108,101,70,105,110, - 100,101,114,46,112,97,116,104,95,104,111,111,107,143,6,0, - 0,115,16,0,0,0,249,128,0,245,20,4,9,46,240,12, - 0,16,40,208,8,39,114,28,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 243,34,0,0,0,151,0,100,1,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,155, - 2,100,2,157,3,83,0,41,3,78,122,11,70,105,108,101, - 70,105,110,100,101,114,40,114,222,1,0,0,114,84,0,0, - 0,114,132,1,0,0,115,1,0,0,0,32,114,10,0,0, - 0,114,223,1,0,0,122,19,70,105,108,101,70,105,110,100, - 101,114,46,95,95,114,101,112,114,95,95,161,6,0,0,115, - 21,0,0,0,128,0,216,17,28,152,84,159,89,153,89,152, - 77,168,17,208,15,43,208,8,43,114,28,0,0,0,114,77, - 0,0,0,41,12,114,197,0,0,0,114,196,0,0,0,114, - 198,0,0,0,114,199,0,0,0,114,68,1,0,0,114,243, - 1,0,0,114,8,2,0,0,114,59,1,0,0,114,28,2, - 0,0,114,64,1,0,0,114,48,2,0,0,114,223,1,0, - 0,114,30,0,0,0,114,28,0,0,0,114,10,0,0,0, - 114,13,2,0,0,114,13,2,0,0,26,6,0,0,115,60, - 0,0,0,132,0,241,4,5,5,8,242,14,15,5,41,242, - 34,2,5,30,242,8,3,5,72,1,243,10,49,5,20,242, - 102,1,29,5,71,1,240,62,0,6,17,241,2,15,5,40, - 243,3,0,6,17,240,2,15,5,40,243,34,1,5,44,114, - 28,0,0,0,114,13,2,0,0,99,4,0,0,0,0,0, - 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,50, - 1,0,0,151,0,124,0,106,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,1,171,1,0, - 0,0,0,0,0,125,4,124,0,106,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,2,171, - 1,0,0,0,0,0,0,125,5,124,4,115,45,124,5,114, - 13,124,5,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,125,4,110,30,124,2,124,3,107, - 40,0,0,114,13,116,5,0,0,0,0,0,0,0,0,124, - 1,124,2,171,2,0,0,0,0,0,0,125,4,110,12,116, - 7,0,0,0,0,0,0,0,0,124,1,124,2,171,2,0, - 0,0,0,0,0,125,4,124,5,115,32,116,9,0,0,0, - 0,0,0,0,0,124,1,124,2,124,4,172,3,171,3,0, - 0,0,0,0,0,125,5,124,3,114,16,116,11,0,0,0, - 0,0,0,0,0,124,3,171,1,0,0,0,0,0,0,124, - 5,95,6,0,0,0,0,0,0,0,0,9,0,124,5,124, - 0,100,2,60,0,0,0,124,4,124,0,100,1,60,0,0, - 0,124,2,124,0,100,4,60,0,0,0,124,3,124,0,100, - 5,60,0,0,0,121,0,35,0,116,14,0,0,0,0,0, - 0,0,0,36,0,114,3,1,0,89,0,121,0,119,0,120, - 3,89,0,119,1,41,6,78,114,23,1,0,0,114,24,1, - 0,0,41,1,114,5,1,0,0,218,8,95,95,102,105,108, - 101,95,95,218,10,95,95,99,97,99,104,101,100,95,95,41, - 8,114,27,1,0,0,114,5,1,0,0,114,164,1,0,0, - 114,151,1,0,0,114,21,1,0,0,114,105,0,0,0,218, - 6,99,97,99,104,101,100,218,9,69,120,99,101,112,116,105, - 111,110,41,6,218,2,110,115,114,188,0,0,0,218,8,112, - 97,116,104,110,97,109,101,218,9,99,112,97,116,104,110,97, - 109,101,114,5,1,0,0,114,17,1,0,0,115,6,0,0, - 0,32,32,32,32,32,32,114,10,0,0,0,218,14,95,102, - 105,120,95,117,112,95,109,111,100,117,108,101,114,58,2,0, - 0,167,6,0,0,115,170,0,0,0,128,0,224,13,15,143, - 86,137,86,144,76,211,13,33,128,70,216,11,13,143,54,137, - 54,144,42,211,11,29,128,68,217,11,17,217,11,15,216,21, - 25,151,91,145,91,137,70,216,13,21,152,25,210,13,34,220, - 21,41,168,36,176,8,211,21,57,137,70,228,21,37,160,100, - 168,72,211,21,53,136,70,217,11,15,220,15,38,160,116,168, - 88,184,102,212,15,69,136,4,217,11,20,220,26,39,168,9, - 211,26,50,136,68,140,75,240,2,7,5,13,216,25,29,136, - 2,136,58,137,14,216,27,33,136,2,136,60,209,8,24,216, - 25,33,136,2,136,58,137,14,216,27,36,136,2,136,60,210, - 8,24,248,220,11,20,242,0,2,5,13,225,8,12,240,5, - 2,5,13,250,115,18,0,0,0,193,53,20,66,10,0,194, - 10,9,66,22,3,194,21,1,66,22,3,99,0,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 243,112,0,0,0,151,0,116,0,0,0,0,0,0,0,0, - 0,116,3,0,0,0,0,0,0,0,0,106,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,102,2,125,0,116,6,0,0,0, - 0,0,0,0,0,116,8,0,0,0,0,0,0,0,0,102, - 2,125,1,116,10,0,0,0,0,0,0,0,0,116,12,0, - 0,0,0,0,0,0,0,102,2,125,2,124,0,124,1,124, - 2,103,3,83,0,41,1,122,95,82,101,116,117,114,110,115, - 32,97,32,108,105,115,116,32,111,102,32,102,105,108,101,45, - 98,97,115,101,100,32,109,111,100,117,108,101,32,108,111,97, - 100,101,114,115,46,10,10,32,32,32,32,69,97,99,104,32, - 105,116,101,109,32,105,115,32,97,32,116,117,112,108,101,32, - 40,108,111,97,100,101,114,44,32,115,117,102,102,105,120,101, - 115,41,46,10,32,32,32,32,41,7,114,142,1,0,0,114, - 235,0,0,0,218,18,101,120,116,101,110,115,105,111,110,95, - 115,117,102,102,105,120,101,115,114,151,1,0,0,114,160,0, - 0,0,114,164,1,0,0,114,141,0,0,0,41,3,218,10, - 101,120,116,101,110,115,105,111,110,115,218,6,115,111,117,114, - 99,101,218,8,98,121,116,101,99,111,100,101,115,3,0,0, - 0,32,32,32,114,10,0,0,0,114,14,1,0,0,114,14, - 1,0,0,192,6,0,0,115,57,0,0,0,128,0,244,10, - 0,18,37,164,100,215,38,61,209,38,61,211,38,63,208,17, - 63,128,74,220,13,29,156,127,208,13,46,128,70,220,15,35, - 212,37,54,208,15,54,128,72,216,12,22,152,6,160,8,208, - 11,41,208,4,41,114,28,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,243, - 8,0,0,0,151,0,124,0,97,0,121,0,114,77,0,0, - 0,41,1,114,208,0,0,0,41,1,218,17,95,98,111,111, - 116,115,116,114,97,112,95,109,111,100,117,108,101,115,1,0, - 0,0,32,114,10,0,0,0,218,21,95,115,101,116,95,98, - 111,111,116,115,116,114,97,112,95,109,111,100,117,108,101,114, - 66,2,0,0,203,6,0,0,115,7,0,0,0,128,0,224, - 17,34,129,74,114,28,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,212, - 0,0,0,151,0,116,1,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,1,0,116,3,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,125,1,116, - 4,0,0,0,0,0,0,0,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,9,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,116,11,0,0,0,0,0,0,0,0,106,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,142,0,103,1,171,1,0,0,0,0,0,0,1,0,116, - 4,0,0,0,0,0,0,0,0,106,14,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,17,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,116,18,0,0,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,1,0,121,1,41,2,122,41,73,110,115,116,97, - 108,108,32,116,104,101,32,112,97,116,104,45,98,97,115,101, - 100,32,105,109,112,111,114,116,32,99,111,109,112,111,110,101, - 110,116,115,46,78,41,10,114,66,2,0,0,114,14,1,0, - 0,114,20,0,0,0,114,252,1,0,0,114,241,0,0,0, - 114,13,2,0,0,114,48,2,0,0,218,9,109,101,116,97, - 95,112,97,116,104,114,64,0,0,0,114,241,1,0,0,41, - 2,114,65,2,0,0,218,17,115,117,112,112,111,114,116,101, - 100,95,108,111,97,100,101,114,115,115,2,0,0,0,32,32, - 114,10,0,0,0,218,8,95,105,110,115,116,97,108,108,114, - 70,2,0,0,208,6,0,0,115,71,0,0,0,128,0,228, - 4,25,208,26,43,212,4,44,220,24,51,211,24,53,208,4, - 21,220,4,7,135,78,129,78,215,4,25,209,4,25,156,58, - 215,27,47,209,27,47,208,49,66,208,27,67,208,26,68,212, - 4,69,220,4,7,135,77,129,77,215,4,24,209,4,24,156, - 26,213,4,36,114,28,0,0,0,41,1,114,107,0,0,0, - 114,77,0,0,0,41,3,78,78,78,41,2,114,1,0,0, - 0,114,1,0,0,0,41,1,84,41,87,114,199,0,0,0, - 114,208,0,0,0,114,235,0,0,0,114,114,0,0,0,114, - 20,0,0,0,114,127,0,0,0,114,231,0,0,0,114,31, - 0,0,0,114,61,1,0,0,218,2,110,116,114,23,0,0, - 0,114,37,1,0,0,218,5,112,111,115,105,120,114,61,0, - 0,0,218,3,97,108,108,114,62,0,0,0,114,180,0,0, - 0,114,58,0,0,0,114,65,0,0,0,218,20,95,112,97, - 116,104,115,101,112,115,95,119,105,116,104,95,99,111,108,111, - 110,114,34,0,0,0,218,37,95,67,65,83,69,95,73,78, - 83,69,78,83,73,84,73,86,69,95,80,76,65,84,70,79, - 82,77,83,95,66,89,84,69,83,95,75,69,89,114,33,0, - 0,0,114,35,0,0,0,114,27,0,0,0,114,43,0,0, - 0,114,49,0,0,0,114,53,0,0,0,114,72,0,0,0, - 114,81,0,0,0,114,85,0,0,0,114,91,0,0,0,114, - 93,0,0,0,114,96,0,0,0,114,100,0,0,0,114,105, - 0,0,0,114,122,0,0,0,218,4,116,121,112,101,218,8, - 95,95,99,111,100,101,95,95,114,234,0,0,0,114,41,0, - 0,0,114,215,0,0,0,114,40,0,0,0,114,46,0,0, - 0,114,112,1,0,0,114,144,0,0,0,114,140,0,0,0, - 114,160,0,0,0,114,64,0,0,0,114,60,2,0,0,114, - 62,1,0,0,114,141,0,0,0,218,23,68,69,66,85,71, - 95,66,89,84,69,67,79,68,69,95,83,85,70,70,73,88, - 69,83,218,27,79,80,84,73,77,73,90,69,68,95,66,89, - 84,69,67,79,68,69,95,83,85,70,70,73,88,69,83,114, - 153,0,0,0,114,168,0,0,0,114,178,0,0,0,114,181, - 0,0,0,114,184,0,0,0,114,209,0,0,0,114,220,0, - 0,0,114,225,0,0,0,114,228,0,0,0,114,238,0,0, - 0,114,244,0,0,0,114,247,0,0,0,114,3,1,0,0, - 114,26,1,0,0,114,15,1,0,0,114,21,1,0,0,114, - 33,1,0,0,114,35,1,0,0,114,66,1,0,0,114,87, - 1,0,0,114,120,1,0,0,114,151,1,0,0,114,164,1, - 0,0,114,142,1,0,0,114,186,1,0,0,114,230,1,0, - 0,218,16,95,78,97,109,101,115,112,97,99,101,76,111,97, - 100,101,114,114,241,1,0,0,114,13,2,0,0,114,58,2, - 0,0,114,14,1,0,0,114,66,2,0,0,114,70,2,0, + 101,114,177,6,0,0,115,44,0,0,0,248,128,0,228,19, + 30,152,116,215,19,36,209,19,36,220,22,33,208,34,66,200, + 20,209,22,78,208,16,78,217,19,22,144,116,208,19,45,152, + 110,210,19,45,208,12,45,114,32,0,0,0,114,34,0,0, + 0,41,3,114,59,1,0,0,114,93,2,0,0,114,124,2, + 0,0,115,3,0,0,0,96,96,32,114,10,0,0,0,218, + 9,112,97,116,104,95,104,111,111,107,218,20,70,105,108,101, + 70,105,110,100,101,114,46,112,97,116,104,95,104,111,111,107, + 167,6,0,0,115,16,0,0,0,249,128,0,246,20,4,9, + 46,240,12,0,16,40,208,8,39,114,32,0,0,0,99,1, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, + 0,0,0,243,36,0,0,0,149,0,83,1,85,0,82,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,60,2,14,0,83,2,51,3,36,0,41,3,78,122, + 11,70,105,108,101,70,105,110,100,101,114,40,114,20,2,0, + 0,114,92,0,0,0,114,157,1,0,0,115,1,0,0,0, + 32,114,10,0,0,0,114,21,2,0,0,218,19,70,105,108, + 101,70,105,110,100,101,114,46,95,95,114,101,112,114,95,95, + 185,6,0,0,115,21,0,0,0,128,0,216,17,28,152,84, + 159,89,153,89,153,77,168,17,208,15,43,208,8,43,114,32, + 0,0,0,41,5,114,88,2,0,0,114,91,2,0,0,114, + 89,2,0,0,114,92,2,0,0,114,75,0,0,0,114,84, + 0,0,0,41,14,114,204,0,0,0,114,203,0,0,0,114, + 205,0,0,0,114,71,1,0,0,114,206,0,0,0,114,80, + 1,0,0,114,52,2,0,0,114,76,2,0,0,114,68,1, + 0,0,114,103,2,0,0,114,75,1,0,0,114,126,2,0, + 0,114,21,2,0,0,114,76,1,0,0,114,34,0,0,0, + 114,32,0,0,0,114,10,0,0,0,114,84,2,0,0,114, + 84,2,0,0,50,6,0,0,115,60,0,0,0,134,0,241, + 4,5,5,8,242,14,15,5,41,242,34,2,5,30,242,8, + 3,5,72,1,244,10,49,5,20,242,102,1,29,5,71,1, + 240,62,0,6,17,241,2,15,5,40,243,3,0,6,17,240, + 2,15,5,40,245,34,1,5,44,114,32,0,0,0,114,84, + 2,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,243,30,0,0,0,149,0,92, + 0,114,1,83,0,114,2,83,1,114,3,83,2,114,4,83, + 3,26,0,114,5,83,4,114,6,103,5,41,6,218,20,65, + 112,112,108,101,70,114,97,109,101,119,111,114,107,76,111,97, + 100,101,114,105,189,6,0,0,122,114,65,32,108,111,97,100, + 101,114,32,102,111,114,32,109,111,100,117,108,101,115,32,116, + 104,97,116,32,104,97,118,101,32,98,101,101,110,32,112,97, + 99,107,97,103,101,100,32,97,115,32,102,114,97,109,101,119, + 111,114,107,115,32,102,111,114,10,99,111,109,112,97,116,105, + 98,105,108,105,116,121,32,119,105,116,104,32,65,112,112,108, + 101,39,115,32,105,79,83,32,65,112,112,32,83,116,111,114, + 101,32,112,111,108,105,99,105,101,115,46,10,99,2,0,0, + 0,0,0,0,0,0,0,0,0,6,0,0,0,3,0,0, + 0,243,188,3,0,0,149,0,85,1,82,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,3, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,1,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,97,131,0,0,91,4,0,0,0,0,0,0, + 0,0,82,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,85,1,82,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,2, + 53,2,0,0,0,0,0,0,2,0,110,2,85,2,82,9, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,53,0,0,0,0,0,0,0,82,11,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,82,13,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,110,3,83,0,83,0,83,0,53,2,0,0,0,0, + 0,0,32,0,91,15,0,0,0,0,0,0,0,0,91,16, + 0,0,0,0,0,0,0,0,82,18,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,1,0,0, + 0,0,0,0,83,3,5,0,0,0,110,4,91,21,0,0, + 0,0,0,0,0,0,85,4,87,3,53,2,0,0,0,0, + 0,0,85,1,108,0,0,0,0,0,0,0,0,0,85,0, + 82,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,82,3,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,83,1,53,1,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,97,13,0,0,85,0, + 82,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,110,5,79,128,91,4,0,0,0,0,0,0, + 0,0,82,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,85,0,82,22,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,4, + 45,0,0,0,83,2,53,2,0,0,0,0,0,0,2,0, + 110,2,85,2,82,9,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 82,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,82,13,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 53,0,0,0,0,0,0,0,110,6,91,15,0,0,0,0, + 0,0,0,0,91,16,0,0,0,0,0,0,0,0,82,18, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,83,3,5,0,0,0, + 110,4,91,21,0,0,0,0,0,0,0,0,88,70,53,2, + 0,0,0,0,0,0,110,5,83,0,83,0,83,0,53,2, + 0,0,0,0,0,0,32,0,91,24,0,0,0,0,0,0, + 0,0,82,27,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,91,28,0,0,0,0,0,0,0,0, + 82,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,1,53,2,0,0,0,0,0,0,110,7, + 91,24,0,0,0,0,0,0,0,0,82,33,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,5, + 85,1,82,34,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,1,82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,87,5,53,4, + 0,0,0,0,0,0,32,0,30,0,88,87,108,18,0,0, + 0,0,0,0,0,0,85,7,36,0,33,0,44,0,40,0, + 0,0,0,0,0,0,100,1,0,0,102,2,32,0,31,0, + 32,0,32,0,71,1,78,66,61,3,31,0,102,1,33,0, + 44,0,40,0,0,0,0,0,0,0,100,1,0,0,102,2, + 32,0,31,0,32,0,32,0,78,121,61,3,31,0,102,1, + 33,0,91,38,0,0,0,0,0,0,0,0,7,0,97,4, + 0,0,32,0,31,0,85,7,36,0,102,0,61,3,31,0, + 102,1,41,6,78,250,6,46,102,119,111,114,107,114,169,1, + 0,0,114,1,0,0,0,122,7,46,111,114,105,103,105,110, + 122,66,65,112,112,108,101,32,102,114,97,109,101,119,111,114, + 107,32,101,120,116,101,110,115,105,111,110,32,109,111,100,117, + 108,101,32,123,33,114,125,32,108,111,97,100,101,100,32,102, + 114,111,109,32,123,33,114,125,32,40,112,97,116,104,32,123, + 33,114,125,41,41,20,114,17,1,0,0,114,66,0,0,0, + 114,122,0,0,0,114,173,1,0,0,114,172,1,0,0,114, + 5,1,0,0,218,5,115,116,114,105,112,114,89,0,0,0, + 114,23,0,0,0,218,10,101,120,101,99,117,116,97,98,108, + 101,114,79,0,0,0,114,75,0,0,0,114,216,0,0,0, + 114,92,1,0,0,114,242,0,0,0,114,212,1,0,0,114, + 223,0,0,0,114,194,0,0,0,218,8,95,95,102,105,108, + 101,95,95,114,35,1,0,0,41,8,114,196,0,0,0,114, + 24,1,0,0,114,127,0,0,0,218,16,102,114,97,109,101, + 119,111,114,107,95,98,105,110,97,114,121,218,11,98,117,110, + 100,108,101,95,112,97,116,104,114,75,0,0,0,114,17,1, + 0,0,114,94,1,0,0,115,8,0,0,0,32,32,32,32, + 32,32,32,32,114,10,0,0,0,114,87,1,0,0,218,34, + 65,112,112,108,101,70,114,97,109,101,119,111,114,107,76,111, + 97,100,101,114,46,99,114,101,97,116,101,95,109,111,100,117, + 108,101,193,6,0,0,115,100,1,0,0,128,0,240,10,0, + 12,16,143,59,137,59,215,11,31,209,11,31,160,8,215,11, + 41,209,11,41,220,17,20,151,26,146,26,152,68,159,75,153, + 75,168,19,212,17,45,176,20,216,35,39,167,57,161,57,163, + 59,215,35,53,209,35,53,211,35,55,215,35,61,209,35,61, + 211,35,63,208,16,32,247,3,0,18,46,228,26,37,164,99, + 167,110,161,110,211,26,53,176,97,209,26,56,136,75,220,26, + 36,160,91,208,50,66,211,26,67,136,68,140,75,240,10,0, + 12,16,143,57,137,57,215,11,29,209,11,29,152,104,215,11, + 39,209,11,39,216,19,23,151,57,145,57,137,68,228,17,20, + 151,26,146,26,152,68,159,73,153,73,168,9,209,28,49,176, + 51,212,17,55,184,52,216,25,29,159,25,153,25,155,27,215, + 25,43,209,25,43,211,25,45,215,25,51,209,25,51,211,25, + 53,144,6,220,30,41,172,35,175,46,169,46,211,30,57,184, + 33,209,30,60,144,11,220,23,33,160,43,211,23,54,144,4, + 247,7,0,18,56,244,10,0,18,28,215,17,53,209,17,53, + 180,100,215,54,73,209,54,73,200,52,211,17,80,136,6,228, + 8,18,215,8,35,209,8,35,216,12,80,216,12,16,143,73, + 137,73,216,12,16,143,75,137,75,216,12,16,244,9,5,9, + 10,240,16,6,9,17,216,30,34,140,79,240,14,0,16,22, + 136,13,247,69,1,0,18,46,214,17,45,250,247,22,0,18, + 56,213,17,55,251,244,34,0,16,30,243,0,4,9,17,240, + 8,0,13,17,224,15,21,136,13,240,13,4,9,17,250,115, + 43,0,0,0,193,2,45,70,42,3,195,53,65,20,70,60, + 3,198,34,6,71,13,0,198,42,10,70,57,7,198,60,10, + 71,10,7,199,13,10,71,27,3,199,26,1,71,27,3,114, + 34,0,0,0,78,41,7,114,204,0,0,0,114,203,0,0, + 0,114,205,0,0,0,114,71,1,0,0,114,206,0,0,0, + 114,87,1,0,0,114,76,1,0,0,114,34,0,0,0,114, + 32,0,0,0,114,10,0,0,0,114,131,2,0,0,114,131, + 2,0,0,189,6,0,0,115,12,0,0,0,134,0,241,2, + 2,5,8,245,6,40,5,22,114,32,0,0,0,114,131,2, + 0,0,99,4,0,0,0,0,0,0,0,0,0,0,0,6, + 0,0,0,3,0,0,0,243,72,1,0,0,149,0,85,0, + 82,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,1,53,1,0,0,0,0,0,0,110,4, + 85,0,82,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,2,53,1,0,0,0,0,0,0, + 110,5,85,4,40,0,0,0,0,0,0,0,100,48,0,0, + 85,5,40,0,0,0,0,0,0,0,97,13,0,0,85,5, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,110,4,79,28,88,35,58,88,0,0,97,12, + 0,0,91,5,0,0,0,0,0,0,0,0,88,18,53,2, + 0,0,0,0,0,0,110,4,79,11,91,7,0,0,0,0, + 0,0,0,0,88,18,53,2,0,0,0,0,0,0,110,4, + 85,5,40,0,0,0,0,0,0,0,100,33,0,0,91,9, + 0,0,0,0,0,0,0,0,88,18,85,4,83,3,57,3, + 110,5,85,3,40,0,0,0,0,0,0,0,97,16,0,0, + 91,11,0,0,0,0,0,0,0,0,85,3,53,1,0,0, + 0,0,0,0,85,5,108,6,0,0,0,0,0,0,0,0, + 30,0,88,80,83,2,39,0,0,0,88,64,83,1,39,0, + 0,0,88,32,83,4,39,0,0,0,88,48,83,5,39,0, + 0,0,103,0,33,0,91,14,0,0,0,0,0,0,0,0, + 7,0,97,3,0,0,32,0,31,0,103,0,102,0,61,3, + 31,0,102,1,41,6,78,114,30,1,0,0,114,31,1,0, + 0,41,1,114,12,1,0,0,114,136,2,0,0,218,10,95, + 95,99,97,99,104,101,100,95,95,41,8,114,34,1,0,0, + 114,12,1,0,0,114,198,1,0,0,114,182,1,0,0,114, + 28,1,0,0,114,113,0,0,0,218,6,99,97,99,104,101, + 100,218,9,69,120,99,101,112,116,105,111,110,41,6,218,2, + 110,115,114,194,0,0,0,218,8,112,97,116,104,110,97,109, + 101,218,9,99,112,97,116,104,110,97,109,101,114,12,1,0, + 0,114,24,1,0,0,115,6,0,0,0,32,32,32,32,32, + 32,114,10,0,0,0,218,14,95,102,105,120,95,117,112,95, + 109,111,100,117,108,101,114,147,2,0,0,237,6,0,0,115, + 154,0,0,0,128,0,224,13,15,143,86,137,86,144,76,211, + 13,33,128,70,216,11,13,143,54,137,54,144,42,211,11,29, + 128,68,222,11,17,222,11,15,216,21,25,151,91,145,91,137, + 70,216,13,21,211,13,34,220,21,41,168,36,211,21,57,137, + 70,228,21,37,160,100,211,21,53,136,70,222,11,15,220,15, + 38,160,116,184,102,209,15,69,136,4,222,11,20,220,26,39, + 168,9,211,26,50,136,68,140,75,240,2,7,5,13,216,25, + 29,136,58,137,14,216,27,33,136,60,209,8,24,216,25,33, + 136,58,137,14,216,27,36,136,60,210,8,24,248,220,11,20, + 243,0,2,5,13,225,8,12,240,5,2,5,13,250,115,18, + 0,0,0,194,3,16,66,20,0,194,20,10,66,33,3,194, + 32,1,66,33,3,99,0,0,0,0,0,0,0,0,0,0, + 0,0,8,0,0,0,3,0,0,0,243,108,1,0,0,149, + 0,47,0,110,0,91,1,0,0,0,0,0,0,0,0,91, + 2,0,0,0,0,0,0,0,0,83,1,53,2,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,97,123,0,0,91, + 4,0,0,0,0,0,0,0,0,82,6,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,2,59, + 0,0,0,97,61,0,0,91,8,0,0,0,0,0,0,0, + 0,91,2,0,0,0,0,0,0,0,0,82,10,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,53,0,0,0,0,0,0,0,19,0,86,1,115,2,47, + 0,115,2,19,0,72,21,0,0,110,1,85,1,82,13,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,83,3,83,4,53,2,0,0,0,0,0,0,80,2,77, + 23,0,0,11,0,32,0,115,2,110,1,52,2,47,1,110, + 0,85,0,82,15,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,91,16,0,0,0,0,0,0,0, + 0,91,2,0,0,0,0,0,0,0,0,82,10,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,53,0,0,0,0,0,0,0,52,2,53,1,0,0,0, + 0,0,0,32,0,91,18,0,0,0,0,0,0,0,0,91, + 20,0,0,0,0,0,0,0,0,52,2,110,2,91,22,0, + 0,0,0,0,0,0,0,91,24,0,0,0,0,0,0,0, + 0,52,2,110,3,88,2,85,3,47,2,45,0,0,0,36, + 0,115,2,32,0,115,2,110,1,102,0,41,5,122,87,82, + 101,116,117,114,110,115,32,97,32,108,105,115,116,32,111,102, + 32,102,105,108,101,45,98,97,115,101,100,32,109,111,100,117, + 108,101,32,108,111,97,100,101,114,115,46,10,10,69,97,99, + 104,32,105,116,101,109,32,105,115,32,97,32,116,117,112,108, + 101,32,40,108,111,97,100,101,114,44,32,115,117,102,102,105, + 120,101,115,41,46,10,114,212,1,0,0,62,3,0,0,0, + 114,17,0,0,0,114,18,0,0,0,114,19,0,0,0,122, + 3,46,115,111,114,133,2,0,0,41,13,114,207,0,0,0, + 114,242,0,0,0,114,23,0,0,0,114,35,0,0,0,114, + 131,2,0,0,218,18,101,120,116,101,110,115,105,111,110,95, + 115,117,102,102,105,120,101,115,114,107,0,0,0,114,71,0, + 0,0,114,170,1,0,0,114,182,1,0,0,114,166,0,0, + 0,114,198,1,0,0,114,147,0,0,0,41,4,218,17,101, + 120,116,101,110,115,105,111,110,95,108,111,97,100,101,114,115, + 114,220,1,0,0,218,6,115,111,117,114,99,101,218,8,98, + 121,116,101,99,111,100,101,115,4,0,0,0,32,32,32,32, + 114,10,0,0,0,114,21,1,0,0,114,21,1,0,0,6, + 7,0,0,115,171,0,0,0,128,0,240,10,0,25,27,208, + 4,21,220,7,14,140,116,208,21,37,215,7,38,209,7,38, + 220,11,14,143,60,137,60,208,27,53,211,11,53,220,34,54, + 228,30,34,215,30,53,210,30,53,212,30,55,243,5,3,57, + 14,226,30,55,144,70,240,3,0,17,23,151,14,145,14,152, + 117,160,104,214,16,47,217,30,55,241,5,3,57,14,240,0, + 3,34,15,240,0,3,33,16,208,12,29,240,8,0,9,26, + 215,8,32,209,8,32,212,34,53,180,116,215,55,78,210,55, + 78,211,55,80,208,33,81,212,8,82,220,13,29,156,127,208, + 13,46,128,70,220,15,35,212,37,54,208,15,54,128,72,216, + 11,28,168,8,208,31,49,209,11,49,208,4,49,249,242,15, + 3,57,14,115,6,0,0,0,193,8,28,66,49,6,99,1, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3, + 0,0,0,243,8,0,0,0,149,0,85,0,113,0,103,0, + 114,84,0,0,0,41,1,114,216,0,0,0,41,1,218,17, + 95,98,111,111,116,115,116,114,97,112,95,109,111,100,117,108, + 101,115,1,0,0,0,32,114,10,0,0,0,218,21,95,115, + 101,116,95,98,111,111,116,115,116,114,97,112,95,109,111,100, + 117,108,101,114,155,2,0,0,24,7,0,0,115,7,0,0, + 0,128,0,224,17,34,129,74,114,32,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, + 0,0,243,214,0,0,0,149,0,91,1,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,32,0,91, + 3,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0, + 0,110,1,91,4,0,0,0,0,0,0,0,0,82,6,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,82,9,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,91,10,0,0,0,0,0,0,0,0,82, + 12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,85,1,54,0,47,1,53,1,0,0,0, + 0,0,0,32,0,91,4,0,0,0,0,0,0,0,0,82, + 14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,82,17,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,91,18,0,0,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,32,0,103,1,41,2,122, + 41,73,110,115,116,97,108,108,32,116,104,101,32,112,97,116, + 104,45,98,97,115,101,100,32,105,109,112,111,114,116,32,99, + 111,109,112,111,110,101,110,116,115,46,78,41,10,114,155,2, + 0,0,114,21,1,0,0,114,23,0,0,0,114,62,2,0, + 0,114,248,0,0,0,114,84,2,0,0,114,126,2,0,0, + 218,9,109,101,116,97,95,112,97,116,104,114,71,0,0,0, + 114,50,2,0,0,41,2,114,154,2,0,0,218,17,115,117, + 112,112,111,114,116,101,100,95,108,111,97,100,101,114,115,115, + 2,0,0,0,32,32,114,10,0,0,0,218,8,95,105,110, + 115,116,97,108,108,114,159,2,0,0,29,7,0,0,115,71, + 0,0,0,128,0,228,4,25,208,26,43,212,4,44,220,24, + 51,211,24,53,208,4,21,220,4,7,135,78,129,78,215,4, + 25,209,4,25,156,58,215,27,47,210,27,47,208,49,66,208, + 27,67,208,26,68,212,4,69,220,4,7,135,77,129,77,215, + 4,24,209,4,24,156,26,213,4,36,114,32,0,0,0,41, + 1,114,115,0,0,0,114,84,0,0,0,41,3,78,78,78, + 41,2,114,1,0,0,0,114,1,0,0,0,41,1,84,41, + 89,114,206,0,0,0,114,216,0,0,0,114,242,0,0,0, + 114,122,0,0,0,114,23,0,0,0,114,133,0,0,0,114, + 238,0,0,0,114,35,0,0,0,114,72,1,0,0,218,2, + 110,116,114,26,0,0,0,114,44,1,0,0,218,5,112,111, + 115,105,120,114,68,0,0,0,218,3,97,108,108,114,69,0, + 0,0,114,186,0,0,0,114,65,0,0,0,114,72,0,0, + 0,218,20,95,112,97,116,104,115,101,112,115,95,119,105,116, + 104,95,99,111,108,111,110,114,38,0,0,0,218,37,95,67, + 65,83,69,95,73,78,83,69,78,83,73,84,73,86,69,95, + 80,76,65,84,70,79,82,77,83,95,66,89,84,69,83,95, + 75,69,89,114,37,0,0,0,114,39,0,0,0,114,30,0, + 0,0,114,47,0,0,0,114,54,0,0,0,114,57,0,0, + 0,114,60,0,0,0,114,79,0,0,0,114,89,0,0,0, + 114,93,0,0,0,114,99,0,0,0,114,101,0,0,0,114, + 104,0,0,0,114,108,0,0,0,114,113,0,0,0,114,128, + 0,0,0,218,4,116,121,112,101,218,8,95,95,99,111,100, + 101,95,95,114,241,0,0,0,114,45,0,0,0,114,222,0, + 0,0,114,44,0,0,0,114,51,0,0,0,114,134,1,0, + 0,114,150,0,0,0,114,146,0,0,0,114,166,0,0,0, + 114,71,0,0,0,114,149,2,0,0,114,73,1,0,0,114, + 147,0,0,0,218,23,68,69,66,85,71,95,66,89,84,69, + 67,79,68,69,95,83,85,70,70,73,88,69,83,218,27,79, + 80,84,73,77,73,90,69,68,95,66,89,84,69,67,79,68, + 69,95,83,85,70,70,73,88,69,83,114,159,0,0,0,114, + 174,0,0,0,114,184,0,0,0,114,187,0,0,0,114,190, + 0,0,0,114,217,0,0,0,114,227,0,0,0,114,232,0, + 0,0,114,235,0,0,0,114,245,0,0,0,114,251,0,0, + 0,114,254,0,0,0,114,10,1,0,0,114,33,1,0,0, + 114,22,1,0,0,114,28,1,0,0,114,40,1,0,0,114, + 42,1,0,0,114,78,1,0,0,114,103,1,0,0,114,143, + 1,0,0,114,182,1,0,0,114,198,1,0,0,114,170,1, + 0,0,114,232,1,0,0,114,31,2,0,0,218,16,95,78, + 97,109,101,115,112,97,99,101,76,111,97,100,101,114,114,50, + 2,0,0,114,84,2,0,0,114,131,2,0,0,114,147,2, + 0,0,114,21,1,0,0,114,155,2,0,0,114,159,2,0, 0,41,1,218,1,115,115,1,0,0,0,48,114,10,0,0, - 0,218,8,60,109,111,100,117,108,101,62,114,82,2,0,0, - 1,0,0,0,115,198,2,0,0,240,3,1,1,1,241,2, + 0,218,8,60,109,111,100,117,108,101,62,114,171,2,0,0, + 1,0,0,0,115,218,2,0,0,240,3,1,1,1,241,2, 7,1,4,240,44,0,14,18,128,10,243,6,0,1,12,219, 0,10,219,0,10,219,0,16,219,0,14,240,6,0,16,19, - 143,124,137,124,152,119,209,15,38,128,11,217,3,14,219,4, - 20,220,4,17,227,4,23,241,6,0,4,15,216,23,27,152, + 143,124,137,124,152,119,209,15,38,128,11,222,3,14,219,4, + 20,220,4,17,227,4,23,246,6,0,4,15,216,23,27,152, 83,144,107,129,79,224,23,26,144,101,128,79,225,7,10,209, - 10,52,161,79,211,10,52,212,7,52,208,0,52,208,7,52, - 216,11,26,152,49,209,11,29,128,8,217,17,22,144,127,211, - 17,39,128,14,216,18,20,151,39,145,39,152,47,211,18,42, - 128,15,217,41,56,211,23,57,169,31,160,65,152,33,152,65, - 152,51,154,7,168,31,209,23,57,208,0,20,240,8,0,39, - 45,208,0,35,216,40,58,208,0,37,216,32,69,216,34,69, - 241,3,1,33,70,1,208,0,27,242,8,14,1,23,241,32, - 0,15,31,211,14,32,128,11,242,6,2,1,55,242,10,3, - 1,42,242,10,3,1,42,241,12,0,4,15,243,2,27,5, - 42,242,60,3,5,63,242,12,5,1,34,242,16,7,1,26, - 242,20,6,1,50,242,18,2,1,46,242,10,4,1,46,241, - 14,0,4,15,243,2,5,5,82,1,242,16,2,5,48,242, - 10,7,1,20,243,20,23,1,14,241,52,0,14,18,144,45, - 215,18,40,209,18,40,211,13,41,128,10,240,112,7,0,17, - 21,143,127,137,127,152,113,160,40,211,15,43,168,103,209,15, - 53,128,12,224,20,23,151,78,145,78,160,60,176,24,211,20, - 58,208,0,17,224,11,24,128,8,216,7,13,128,4,224,19, - 24,144,39,128,15,217,3,14,216,4,19,215,4,26,209,4, - 26,152,54,212,4,34,224,21,44,144,84,215,21,44,209,21, - 44,211,21,46,208,0,18,224,21,27,144,72,208,0,17,224, - 56,73,208,0,73,208,0,23,208,26,53,240,4,67,1,1, - 48,192,20,244,0,67,1,1,48,242,76,2,37,1,64,1, - 242,80,1,16,1,71,1,242,38,9,1,20,242,24,9,1, - 16,242,24,28,1,31,242,62,30,1,17,242,66,1,25,1, - 76,1,242,56,21,1,10,243,48,10,1,57,243,26,7,1, - 16,243,20,8,1,16,242,22,9,1,68,1,241,28,0,13, - 19,139,72,128,9,240,6,67,1,1,16,184,52,216,55,64, - 244,3,67,1,1,16,242,76,2,45,1,23,247,100,1,48, - 1,28,241,0,48,1,28,247,102,1,27,1,60,241,0,27, - 1,60,244,60,78,2,1,27,144,61,244,0,78,2,1,27, - 247,98,4,47,1,32,241,0,47,1,32,244,100,1,42,1, - 45,144,122,160,60,244,0,42,1,45,244,90,1,22,1,20, - 152,58,160,125,244,0,22,1,20,244,50,50,1,25,152,42, - 160,109,244,0,50,1,25,247,106,1,65,1,1,32,241,0, - 65,1,1,32,247,78,2,33,1,43,241,0,33,1,43,240, - 74,1,0,20,35,208,0,16,247,10,121,1,1,70,1,241, - 0,121,1,1,70,1,247,120,3,72,2,1,44,241,0,72, - 2,1,44,243,90,4,22,1,13,242,50,8,1,42,242,22, - 2,1,35,243,10,5,1,37,249,242,125,52,0,24,58,115, - 6,0,0,0,193,52,12,71,55,4, + 10,52,161,79,211,10,52,215,7,52,209,7,52,208,0,52, + 208,7,52,216,11,26,152,49,209,11,29,128,8,217,17,22, + 144,127,211,17,39,128,14,216,18,20,151,39,145,39,152,47, + 211,18,42,128,15,217,41,56,211,23,57,170,31,160,65,152, + 33,152,65,152,51,155,7,169,31,209,23,57,208,0,20,240, + 8,0,39,45,208,0,35,216,40,84,208,0,37,216,32,69, + 216,34,69,241,3,1,33,70,1,208,0,27,242,8,14,1, + 23,241,32,0,15,31,211,14,32,128,11,242,6,2,1,55, + 242,10,3,1,42,242,10,3,1,42,242,10,3,1,42,246, + 12,0,4,15,243,2,27,5,42,242,60,3,5,63,242,12, + 5,1,34,242,16,7,1,26,242,20,6,1,50,242,18,2, + 1,46,242,10,4,1,46,246,14,0,4,15,243,2,5,5, + 82,1,242,16,2,5,48,242,10,7,1,20,244,20,19,1, + 14,241,44,0,14,18,144,45,215,18,40,209,18,40,211,13, + 41,128,10,240,92,8,0,17,21,143,127,137,127,152,113,160, + 40,211,15,43,168,103,209,15,53,128,12,224,20,23,151,78, + 145,78,160,60,176,24,211,20,58,208,0,17,224,11,24,128, + 8,216,7,13,128,4,224,19,24,144,39,128,15,222,3,14, + 216,4,19,215,4,26,209,4,26,152,54,212,4,34,224,21, + 25,215,21,44,210,21,44,211,21,46,208,0,18,224,21,27, + 144,72,208,0,17,224,56,73,208,0,73,208,0,23,208,26, + 53,240,4,68,1,1,48,192,20,246,0,68,1,1,48,242, + 78,2,37,1,64,1,242,80,1,16,1,71,1,242,38,9, + 1,20,242,24,9,1,16,242,24,28,1,31,242,62,30,1, + 17,242,66,1,25,1,76,1,242,56,21,1,10,244,48,10, + 1,57,244,26,7,1,16,244,20,8,1,16,242,22,9,1, + 68,1,241,28,0,13,19,139,72,128,9,240,6,67,1,1, + 16,184,52,216,55,64,246,3,67,1,1,16,242,76,2,45, + 1,23,247,100,1,48,1,28,241,0,48,1,28,247,102,1, + 27,1,60,241,0,27,1,60,244,60,78,2,1,27,144,61, + 244,0,78,2,1,27,247,98,4,47,1,32,241,0,47,1, + 32,244,100,1,42,1,45,144,122,160,60,244,0,42,1,45, + 244,90,1,22,1,20,152,58,160,125,244,0,22,1,20,244, + 50,50,1,25,152,42,160,109,244,0,50,1,25,247,106,1, + 65,1,1,32,241,0,65,1,1,32,247,78,2,33,1,43, + 241,0,33,1,43,240,74,1,0,20,35,208,0,16,247,10, + 121,1,1,70,1,241,0,121,1,1,70,1,247,120,3,72, + 2,1,44,241,0,72,2,1,44,244,86,4,44,1,22,208, + 27,46,244,0,44,1,22,244,96,1,22,1,13,242,50,15, + 1,50,242,36,2,1,35,243,10,5,1,37,249,242,87,55, + 0,24,58,115,6,0,0,0,194,3,15,72,47,4, }; diff --git a/contrib/tools/python3/Python/frozen_modules/importlib.machinery.h b/contrib/tools/python3/Python/frozen_modules/importlib.machinery.h index 6bfbd0d7042..63e146492f6 100644 --- a/contrib/tools/python3/Python/frozen_modules/importlib.machinery.h +++ b/contrib/tools/python3/Python/frozen_modules/importlib.machinery.h @@ -1,68 +1,70 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__importlib_machinery[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,0,0,0,0,243,162,0,0,0,151,0,100,0,90,0, - 100,1,100,2,108,1,109,2,90,2,1,0,100,1,100,3, - 108,1,109,3,90,3,1,0,100,1,100,4,108,1,109,4, - 90,4,1,0,100,1,100,5,108,5,109,6,90,6,109,7, - 90,7,109,8,90,8,109,9,90,9,109,10,90,10,1,0, - 100,1,100,6,108,5,109,11,90,11,1,0,100,1,100,7, - 108,5,109,12,90,12,1,0,100,1,100,8,108,5,109,13, - 90,13,1,0,100,1,100,9,108,5,109,14,90,14,1,0, - 100,1,100,10,108,5,109,15,90,15,1,0,100,1,100,11, - 108,5,109,16,90,16,1,0,100,1,100,12,108,5,109,17, - 90,17,1,0,100,13,132,0,90,18,121,14,41,15,122,57, - 84,104,101,32,109,97,99,104,105,110,101,114,121,32,111,102, - 32,105,109,112,111,114,116,108,105,98,58,32,102,105,110,100, - 101,114,115,44,32,108,111,97,100,101,114,115,44,32,104,111, - 111,107,115,44,32,101,116,99,46,233,1,0,0,0,41,1, - 218,10,77,111,100,117,108,101,83,112,101,99,41,1,218,15, - 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,41, - 1,218,14,70,114,111,122,101,110,73,109,112,111,114,116,101, - 114,41,5,218,15,83,79,85,82,67,69,95,83,85,70,70, - 73,88,69,83,218,23,68,69,66,85,71,95,66,89,84,69, - 67,79,68,69,95,83,85,70,70,73,88,69,83,218,27,79, - 80,84,73,77,73,90,69,68,95,66,89,84,69,67,79,68, - 69,95,83,85,70,70,73,88,69,83,218,17,66,89,84,69, - 67,79,68,69,95,83,85,70,70,73,88,69,83,218,18,69, - 88,84,69,78,83,73,79,78,95,83,85,70,70,73,88,69, - 83,41,1,218,21,87,105,110,100,111,119,115,82,101,103,105, - 115,116,114,121,70,105,110,100,101,114,41,1,218,10,80,97, - 116,104,70,105,110,100,101,114,41,1,218,10,70,105,108,101, - 70,105,110,100,101,114,41,1,218,16,83,111,117,114,99,101, - 70,105,108,101,76,111,97,100,101,114,41,1,218,20,83,111, - 117,114,99,101,108,101,115,115,70,105,108,101,76,111,97,100, - 101,114,41,1,218,19,69,120,116,101,110,115,105,111,110,70, - 105,108,101,76,111,97,100,101,114,41,1,218,15,78,97,109, - 101,115,112,97,99,101,76,111,97,100,101,114,99,0,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0, - 0,243,42,0,0,0,151,0,116,0,0,0,0,0,0,0, - 0,0,116,2,0,0,0,0,0,0,0,0,122,0,0,0, - 116,4,0,0,0,0,0,0,0,0,122,0,0,0,83,0, - 41,1,122,65,82,101,116,117,114,110,115,32,97,32,108,105, - 115,116,32,111,102,32,97,108,108,32,114,101,99,111,103,110, - 105,122,101,100,32,109,111,100,117,108,101,32,115,117,102,102, - 105,120,101,115,32,102,111,114,32,116,104,105,115,32,112,114, - 111,99,101,115,115,41,3,114,6,0,0,0,114,9,0,0, - 0,114,10,0,0,0,169,0,243,0,0,0,0,250,28,60, - 102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,98, - 46,109,97,99,104,105,110,101,114,121,62,218,12,97,108,108, - 95,115,117,102,102,105,120,101,115,114,22,0,0,0,18,0, - 0,0,115,20,0,0,0,128,0,228,11,26,212,29,46,209, - 11,46,212,49,67,209,11,67,208,4,67,114,20,0,0,0, - 78,41,19,218,7,95,95,100,111,99,95,95,218,10,95,98, - 111,111,116,115,116,114,97,112,114,3,0,0,0,114,4,0, - 0,0,114,5,0,0,0,218,19,95,98,111,111,116,115,116, - 114,97,112,95,101,120,116,101,114,110,97,108,114,6,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,9,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,12,0,0,0,114, - 13,0,0,0,114,14,0,0,0,114,15,0,0,0,114,16, - 0,0,0,114,17,0,0,0,114,22,0,0,0,114,19,0, - 0,0,114,20,0,0,0,114,21,0,0,0,218,8,60,109, - 111,100,117,108,101,62,114,26,0,0,0,1,0,0,0,115, - 56,0,0,0,240,3,1,1,1,217,0,63,229,0,34,221, - 0,39,221,0,38,247,2,2,1,41,245,0,2,1,41,245, - 6,0,1,55,221,0,43,221,0,43,221,0,49,221,0,53, - 221,0,52,221,0,48,243,6,2,1,68,1,114,20,0,0, - 0, + 0,0,0,0,0,243,174,0,0,0,149,0,83,0,114,0, + 83,1,83,2,75,1,74,2,114,2,32,0,83,1,83,3, + 75,1,74,3,114,3,32,0,83,1,83,4,75,1,74,4, + 114,4,32,0,83,1,83,5,75,5,74,6,114,6,74,7, + 114,7,74,8,114,8,74,9,114,9,74,10,114,10,32,0, + 83,1,83,6,75,5,74,11,114,11,32,0,83,1,83,7, + 75,5,74,12,114,12,32,0,83,1,83,8,75,5,74,13, + 114,13,32,0,83,1,83,9,75,5,74,14,114,14,32,0, + 83,1,83,10,75,5,74,15,114,15,32,0,83,1,83,11, + 75,5,74,16,114,16,32,0,83,1,83,12,75,5,74,17, + 114,17,32,0,83,1,83,13,75,5,74,18,114,18,32,0, + 83,14,26,0,114,19,103,15,41,16,122,57,84,104,101,32, + 109,97,99,104,105,110,101,114,121,32,111,102,32,105,109,112, + 111,114,116,108,105,98,58,32,102,105,110,100,101,114,115,44, + 32,108,111,97,100,101,114,115,44,32,104,111,111,107,115,44, + 32,101,116,99,46,233,1,0,0,0,41,1,218,10,77,111, + 100,117,108,101,83,112,101,99,41,1,218,15,66,117,105,108, + 116,105,110,73,109,112,111,114,116,101,114,41,1,218,14,70, + 114,111,122,101,110,73,109,112,111,114,116,101,114,41,5,218, + 15,83,79,85,82,67,69,95,83,85,70,70,73,88,69,83, + 218,23,68,69,66,85,71,95,66,89,84,69,67,79,68,69, + 95,83,85,70,70,73,88,69,83,218,27,79,80,84,73,77, + 73,90,69,68,95,66,89,84,69,67,79,68,69,95,83,85, + 70,70,73,88,69,83,218,17,66,89,84,69,67,79,68,69, + 95,83,85,70,70,73,88,69,83,218,18,69,88,84,69,78, + 83,73,79,78,95,83,85,70,70,73,88,69,83,41,1,218, + 21,87,105,110,100,111,119,115,82,101,103,105,115,116,114,121, + 70,105,110,100,101,114,41,1,218,10,80,97,116,104,70,105, + 110,100,101,114,41,1,218,10,70,105,108,101,70,105,110,100, + 101,114,41,1,218,16,83,111,117,114,99,101,70,105,108,101, + 76,111,97,100,101,114,41,1,218,20,83,111,117,114,99,101, + 108,101,115,115,70,105,108,101,76,111,97,100,101,114,41,1, + 218,19,69,120,116,101,110,115,105,111,110,70,105,108,101,76, + 111,97,100,101,114,41,1,218,20,65,112,112,108,101,70,114, + 97,109,101,119,111,114,107,76,111,97,100,101,114,41,1,218, + 15,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114, + 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,3,0,0,0,243,42,0,0,0,149,0,91,0,0,0, + 0,0,0,0,0,0,91,2,0,0,0,0,0,0,0,0, + 45,0,0,0,91,4,0,0,0,0,0,0,0,0,45,0, + 0,0,36,0,41,1,122,65,82,101,116,117,114,110,115,32, + 97,32,108,105,115,116,32,111,102,32,97,108,108,32,114,101, + 99,111,103,110,105,122,101,100,32,109,111,100,117,108,101,32, + 115,117,102,102,105,120,101,115,32,102,111,114,32,116,104,105, + 115,32,112,114,111,99,101,115,115,41,3,114,6,0,0,0, + 114,9,0,0,0,114,10,0,0,0,169,0,243,0,0,0, + 0,218,28,60,102,114,111,122,101,110,32,105,109,112,111,114, + 116,108,105,98,46,109,97,99,104,105,110,101,114,121,62,218, + 12,97,108,108,95,115,117,102,102,105,120,101,115,114,23,0, + 0,0,19,0,0,0,115,20,0,0,0,128,0,228,11,26, + 212,29,46,209,11,46,212,49,67,209,11,67,208,4,67,114, + 21,0,0,0,78,41,20,218,7,95,95,100,111,99,95,95, + 218,10,95,98,111,111,116,115,116,114,97,112,114,3,0,0, + 0,114,4,0,0,0,114,5,0,0,0,218,19,95,98,111, + 111,116,115,116,114,97,112,95,101,120,116,101,114,110,97,108, + 114,6,0,0,0,114,7,0,0,0,114,8,0,0,0,114, + 9,0,0,0,114,10,0,0,0,114,11,0,0,0,114,12, + 0,0,0,114,13,0,0,0,114,14,0,0,0,114,15,0, + 0,0,114,16,0,0,0,114,17,0,0,0,114,18,0,0, + 0,114,23,0,0,0,114,20,0,0,0,114,21,0,0,0, + 114,22,0,0,0,218,8,60,109,111,100,117,108,101,62,114, + 27,0,0,0,1,0,0,0,115,59,0,0,0,240,3,1, + 1,1,217,0,63,229,0,34,221,0,39,221,0,38,247,2, + 2,1,41,245,0,2,1,41,245,6,0,1,55,221,0,43, + 221,0,43,221,0,49,221,0,53,221,0,52,221,0,53,221, + 0,48,243,6,2,1,68,1,114,21,0,0,0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/importlib.util.h b/contrib/tools/python3/Python/frozen_modules/importlib.util.h index fa0746ad4ce..0142191b726 100644 --- a/contrib/tools/python3/Python/frozen_modules/importlib.util.h +++ b/contrib/tools/python3/Python/frozen_modules/importlib.util.h @@ -1,736 +1,743 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__importlib_util[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,0,0,0,0,243,20,1,0,0,151,0,100,0,90,0, - 100,1,100,2,108,1,109,2,90,2,1,0,100,1,100,3, - 108,3,109,4,90,4,1,0,100,1,100,4,108,3,109,5, - 90,5,1,0,100,1,100,5,108,3,109,6,90,6,1,0, - 100,1,100,6,108,3,109,7,90,7,1,0,100,1,100,7, - 108,8,109,9,90,9,1,0,100,1,100,8,108,8,109,10, - 90,10,1,0,100,1,100,9,108,8,109,11,90,11,1,0, - 100,1,100,10,108,8,109,12,90,12,1,0,100,1,100,11, - 108,8,109,13,90,13,1,0,100,1,100,12,108,8,109,14, - 90,14,1,0,100,13,100,14,108,15,90,15,100,13,100,14, - 108,16,90,16,100,13,100,14,108,17,90,17,100,15,132,0, - 90,18,100,16,132,0,90,19,100,25,100,17,132,1,90,20, - 100,25,100,18,132,1,90,21,2,0,71,0,100,19,132,0, - 100,20,171,2,0,0,0,0,0,0,90,22,2,0,71,0, - 100,21,132,0,100,22,101,17,106,46,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,3,0,0, - 0,0,0,0,90,24,2,0,71,0,100,23,132,0,100,24, - 101,2,171,3,0,0,0,0,0,0,90,25,121,14,41,26, - 122,45,85,116,105,108,105,116,121,32,99,111,100,101,32,102, - 111,114,32,99,111,110,115,116,114,117,99,116,105,110,103,32, - 105,109,112,111,114,116,101,114,115,44,32,101,116,99,46,233, - 1,0,0,0,41,1,218,6,76,111,97,100,101,114,41,1, - 218,16,109,111,100,117,108,101,95,102,114,111,109,95,115,112, - 101,99,41,1,218,13,95,114,101,115,111,108,118,101,95,110, - 97,109,101,41,1,218,16,115,112,101,99,95,102,114,111,109, - 95,108,111,97,100,101,114,41,1,218,10,95,102,105,110,100, - 95,115,112,101,99,41,1,218,12,77,65,71,73,67,95,78, - 85,77,66,69,82,41,1,218,17,95,82,65,87,95,77,65, - 71,73,67,95,78,85,77,66,69,82,41,1,218,17,99,97, - 99,104,101,95,102,114,111,109,95,115,111,117,114,99,101,41, - 1,218,13,100,101,99,111,100,101,95,115,111,117,114,99,101, - 41,1,218,17,115,111,117,114,99,101,95,102,114,111,109,95, - 99,97,99,104,101,41,1,218,23,115,112,101,99,95,102,114, - 111,109,95,102,105,108,101,95,108,111,99,97,116,105,111,110, - 233,0,0,0,0,78,99,1,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,54,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,106,2,0,0, + 0,0,0,0,0,243,24,1,0,0,149,0,83,0,114,0, + 83,1,83,2,75,1,74,2,114,2,32,0,83,1,83,3, + 75,3,74,4,114,4,32,0,83,1,83,4,75,3,74,5, + 114,5,32,0,83,1,83,5,75,3,74,6,114,6,32,0, + 83,1,83,6,75,3,74,7,114,7,32,0,83,1,83,7, + 75,8,74,9,114,9,32,0,83,1,83,8,75,8,74,10, + 114,10,32,0,83,1,83,9,75,8,74,11,114,11,32,0, + 83,1,83,10,75,8,74,12,114,12,32,0,83,1,83,11, + 75,8,74,13,114,13,32,0,83,1,83,12,75,8,74,14, + 114,14,32,0,83,13,83,14,75,15,114,15,83,13,83,14, + 75,16,114,16,83,13,83,14,75,17,114,17,83,15,26,0, + 114,18,83,16,26,0,114,19,83,25,83,17,26,0,106,1, + 114,20,83,25,83,18,26,0,106,1,114,21,24,0,34,0, + 83,19,26,0,83,20,53,2,0,0,0,0,0,0,114,22, + 24,0,34,0,83,21,26,0,83,22,92,17,82,46,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,4,0,0,0,0,0,0,0,0,124,0,171,2,0,0, - 0,0,0,0,83,0,41,1,122,66,82,101,116,117,114,110, - 32,116,104,101,32,104,97,115,104,32,111,102,32,42,115,111, - 117,114,99,101,95,98,121,116,101,115,42,32,97,115,32,117, - 115,101,100,32,105,110,32,104,97,115,104,45,98,97,115,101, - 100,32,112,121,99,32,102,105,108,101,115,46,41,3,218,4, - 95,105,109,112,218,11,115,111,117,114,99,101,95,104,97,115, - 104,114,9,0,0,0,41,1,218,12,115,111,117,114,99,101, - 95,98,121,116,101,115,115,1,0,0,0,32,250,23,60,102, - 114,111,122,101,110,32,105,109,112,111,114,116,108,105,98,46, - 117,116,105,108,62,114,17,0,0,0,114,17,0,0,0,19, - 0,0,0,115,22,0,0,0,128,0,228,11,15,215,11,27, - 209,11,27,212,28,45,168,124,211,11,60,208,4,60,243,0, + 53,3,0,0,0,0,0,0,114,24,24,0,34,0,83,23, + 26,0,83,24,92,2,53,3,0,0,0,0,0,0,114,25, + 103,14,41,26,122,45,85,116,105,108,105,116,121,32,99,111, + 100,101,32,102,111,114,32,99,111,110,115,116,114,117,99,116, + 105,110,103,32,105,109,112,111,114,116,101,114,115,44,32,101, + 116,99,46,233,1,0,0,0,41,1,218,6,76,111,97,100, + 101,114,41,1,218,16,109,111,100,117,108,101,95,102,114,111, + 109,95,115,112,101,99,41,1,218,13,95,114,101,115,111,108, + 118,101,95,110,97,109,101,41,1,218,16,115,112,101,99,95, + 102,114,111,109,95,108,111,97,100,101,114,41,1,218,10,95, + 102,105,110,100,95,115,112,101,99,41,1,218,12,77,65,71, + 73,67,95,78,85,77,66,69,82,41,1,218,17,95,82,65, + 87,95,77,65,71,73,67,95,78,85,77,66,69,82,41,1, + 218,17,99,97,99,104,101,95,102,114,111,109,95,115,111,117, + 114,99,101,41,1,218,13,100,101,99,111,100,101,95,115,111, + 117,114,99,101,41,1,218,17,115,111,117,114,99,101,95,102, + 114,111,109,95,99,97,99,104,101,41,1,218,23,115,112,101, + 99,95,102,114,111,109,95,102,105,108,101,95,108,111,99,97, + 116,105,111,110,233,0,0,0,0,78,99,1,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 56,0,0,0,149,0,91,0,0,0,0,0,0,0,0,0, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,34,0,91,4,0,0,0,0,0,0,0,0, + 85,0,53,2,0,0,0,0,0,0,36,0,41,1,122,66, + 82,101,116,117,114,110,32,116,104,101,32,104,97,115,104,32, + 111,102,32,42,115,111,117,114,99,101,95,98,121,116,101,115, + 42,32,97,115,32,117,115,101,100,32,105,110,32,104,97,115, + 104,45,98,97,115,101,100,32,112,121,99,32,102,105,108,101, + 115,46,41,3,218,4,95,105,109,112,218,11,115,111,117,114, + 99,101,95,104,97,115,104,114,9,0,0,0,41,1,218,12, + 115,111,117,114,99,101,95,98,121,116,101,115,115,1,0,0, + 0,32,218,23,60,102,114,111,122,101,110,32,105,109,112,111, + 114,116,108,105,98,46,117,116,105,108,62,114,17,0,0,0, + 114,17,0,0,0,19,0,0,0,115,22,0,0,0,128,0, + 228,11,15,215,11,27,210,11,27,212,28,45,168,124,211,11, + 60,208,4,60,243,0,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,6,0,0,0,3,0,0,0,243,188, + 0,0,0,149,0,85,0,82,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,1,53,1,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,100,2,0, + 0,85,0,36,0,85,1,40,0,0,0,0,0,0,0,100, + 24,0,0,91,3,0,0,0,0,0,0,0,0,83,2,91, + 5,0,0,0,0,0,0,0,0,85,0,53,1,0,0,0, + 0,0,0,14,0,83,3,51,3,53,1,0,0,0,0,0, + 0,101,1,83,4,110,2,85,0,19,0,72,16,0,0,110, + 3,85,3,83,1,58,119,0,0,97,2,0,0,32,0,79, + 9,85,2,83,5,45,13,0,0,110,2,77,18,0,0,11, + 0,32,0,91,7,0,0,0,0,0,0,0,0,88,2,83, + 6,4,0,88,18,53,3,0,0,0,0,0,0,36,0,41, + 7,122,50,82,101,115,111,108,118,101,32,97,32,114,101,108, + 97,116,105,118,101,32,109,111,100,117,108,101,32,110,97,109, + 101,32,116,111,32,97,110,32,97,98,115,111,108,117,116,101, + 32,111,110,101,46,218,1,46,122,25,110,111,32,112,97,99, + 107,97,103,101,32,115,112,101,99,105,102,105,101,100,32,102, + 111,114,32,122,37,32,40,114,101,113,117,105,114,101,100,32, + 102,111,114,32,114,101,108,97,116,105,118,101,32,109,111,100, + 117,108,101,32,110,97,109,101,115,41,114,14,0,0,0,114, + 2,0,0,0,78,41,4,218,10,115,116,97,114,116,115,119, + 105,116,104,218,11,73,109,112,111,114,116,69,114,114,111,114, + 218,4,114,101,112,114,114,5,0,0,0,41,4,218,4,110, + 97,109,101,218,7,112,97,99,107,97,103,101,218,5,108,101, + 118,101,108,218,9,99,104,97,114,97,99,116,101,114,115,4, + 0,0,0,32,32,32,32,114,19,0,0,0,218,12,114,101, + 115,111,108,118,101,95,110,97,109,101,114,30,0,0,0,24, + 0,0,0,115,118,0,0,0,128,0,224,11,15,143,63,137, + 63,152,51,215,11,31,209,11,31,216,15,19,136,11,222,13, + 20,220,14,25,208,28,53,180,100,184,52,179,106,176,92,240, + 0,1,66,1,65,1,240,0,1,27,65,1,243,0,1,15, + 66,1,240,0,1,9,66,1,224,12,13,128,69,219,21,25, + 136,9,216,11,20,152,3,211,11,27,217,12,17,216,8,13, + 144,17,137,10,138,5,241,7,0,22,26,244,8,0,12,25, + 152,20,152,102,152,28,160,119,211,11,54,208,4,54,114,20, 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 6,0,0,0,3,0,0,0,243,166,0,0,0,151,0,124, - 0,106,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,1,171,1,0,0,0,0,0,0,115, - 2,124,0,83,0,124,1,115,24,116,3,0,0,0,0,0, - 0,0,0,100,2,116,5,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,155,0,100,3,157,3,171, - 1,0,0,0,0,0,0,130,1,100,4,125,2,124,0,68, - 0,93,14,0,0,125,3,124,3,100,1,107,55,0,0,114, - 2,1,0,110,7,124,2,100,5,122,13,0,0,125,2,140, - 16,4,0,116,7,0,0,0,0,0,0,0,0,124,0,124, - 2,100,6,26,0,124,1,124,2,171,3,0,0,0,0,0, - 0,83,0,41,7,122,50,82,101,115,111,108,118,101,32,97, - 32,114,101,108,97,116,105,118,101,32,109,111,100,117,108,101, - 32,110,97,109,101,32,116,111,32,97,110,32,97,98,115,111, - 108,117,116,101,32,111,110,101,46,218,1,46,122,25,110,111, - 32,112,97,99,107,97,103,101,32,115,112,101,99,105,102,105, - 101,100,32,102,111,114,32,122,37,32,40,114,101,113,117,105, - 114,101,100,32,102,111,114,32,114,101,108,97,116,105,118,101, - 32,109,111,100,117,108,101,32,110,97,109,101,115,41,114,14, - 0,0,0,114,2,0,0,0,78,41,4,218,10,115,116,97, - 114,116,115,119,105,116,104,218,11,73,109,112,111,114,116,69, - 114,114,111,114,218,4,114,101,112,114,114,5,0,0,0,41, - 4,218,4,110,97,109,101,218,7,112,97,99,107,97,103,101, - 218,5,108,101,118,101,108,218,9,99,104,97,114,97,99,116, - 101,114,115,4,0,0,0,32,32,32,32,114,19,0,0,0, - 218,12,114,101,115,111,108,118,101,95,110,97,109,101,114,30, - 0,0,0,24,0,0,0,115,119,0,0,0,128,0,224,11, - 15,143,63,137,63,152,51,212,11,31,216,15,19,136,11,217, - 13,20,220,14,25,208,28,53,180,100,184,52,179,106,176,92, - 240,0,1,66,1,65,1,240,0,1,27,65,1,243,0,1, - 15,66,1,240,0,1,9,66,1,224,12,13,128,69,219,21, - 25,136,9,216,11,20,152,3,210,11,27,217,12,17,216,8, - 13,144,17,137,10,137,5,240,7,0,22,26,244,8,0,12, - 25,152,20,152,101,152,102,152,28,160,119,176,5,211,11,54, - 208,4,54,114,20,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,3,0,0,0,243,224,0, - 0,0,151,0,124,0,116,0,0,0,0,0,0,0,0,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,118,1,114,12,116,5,0,0,0,0,0,0, - 0,0,124,0,124,1,171,2,0,0,0,0,0,0,83,0, - 116,0,0,0,0,0,0,0,0,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 25,0,0,0,125,2,124,2,128,1,121,1,9,0,124,2, - 106,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,125,3,124,3,128,14,116,9,0,0,0,0, - 0,0,0,0,124,0,155,0,100,2,157,2,171,1,0,0, - 0,0,0,0,130,1,124,3,83,0,35,0,116,10,0,0, - 0,0,0,0,0,0,36,0,114,16,1,0,116,9,0,0, - 0,0,0,0,0,0,124,0,155,0,100,3,157,2,171,1, - 0,0,0,0,0,0,100,1,130,2,119,0,120,3,89,0, - 119,1,41,4,97,135,2,0,0,82,101,116,117,114,110,32, - 116,104,101,32,115,112,101,99,32,102,111,114,32,116,104,101, - 32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,108, - 101,46,10,10,32,32,32,32,70,105,114,115,116,44,32,115, - 121,115,46,109,111,100,117,108,101,115,32,105,115,32,99,104, - 101,99,107,101,100,32,116,111,32,115,101,101,32,105,102,32, - 116,104,101,32,109,111,100,117,108,101,32,119,97,115,32,97, - 108,114,101,97,100,121,32,105,109,112,111,114,116,101,100,46, - 32,73,102,10,32,32,32,32,115,111,44,32,116,104,101,110, - 32,115,121,115,46,109,111,100,117,108,101,115,91,110,97,109, - 101,93,46,95,95,115,112,101,99,95,95,32,105,115,32,114, - 101,116,117,114,110,101,100,46,32,73,102,32,116,104,97,116, - 32,104,97,112,112,101,110,115,32,116,111,32,98,101,10,32, - 32,32,32,115,101,116,32,116,111,32,78,111,110,101,44,32, - 116,104,101,110,32,86,97,108,117,101,69,114,114,111,114,32, - 105,115,32,114,97,105,115,101,100,46,32,73,102,32,116,104, - 101,32,109,111,100,117,108,101,32,105,115,32,110,111,116,32, - 105,110,10,32,32,32,32,115,121,115,46,109,111,100,117,108, - 101,115,44,32,116,104,101,110,32,115,121,115,46,109,101,116, - 97,95,112,97,116,104,32,105,115,32,115,101,97,114,99,104, - 101,100,32,102,111,114,32,97,32,115,117,105,116,97,98,108, - 101,32,115,112,101,99,32,119,105,116,104,32,116,104,101,10, - 32,32,32,32,118,97,108,117,101,32,111,102,32,39,112,97, - 116,104,39,32,103,105,118,101,110,32,116,111,32,116,104,101, - 32,102,105,110,100,101,114,115,46,32,78,111,110,101,32,105, - 115,32,114,101,116,117,114,110,101,100,32,105,102,32,110,111, - 32,115,112,101,99,32,99,111,117,108,100,10,32,32,32,32, - 98,101,32,102,111,117,110,100,46,10,10,32,32,32,32,68, - 111,116,116,101,100,32,110,97,109,101,115,32,100,111,32,110, - 111,116,32,104,97,118,101,32,116,104,101,105,114,32,112,97, - 114,101,110,116,32,112,97,99,107,97,103,101,115,32,105,109, - 112,108,105,99,105,116,108,121,32,105,109,112,111,114,116,101, - 100,46,32,89,111,117,32,119,105,108,108,10,32,32,32,32, - 109,111,115,116,32,108,105,107,101,108,121,32,110,101,101,100, - 32,116,111,32,101,120,112,108,105,99,105,116,108,121,32,105, - 109,112,111,114,116,32,97,108,108,32,112,97,114,101,110,116, - 32,112,97,99,107,97,103,101,115,32,105,110,32,116,104,101, - 32,112,114,111,112,101,114,10,32,32,32,32,111,114,100,101, - 114,32,102,111,114,32,97,32,115,117,98,109,111,100,117,108, - 101,32,116,111,32,103,101,116,32,116,104,101,32,99,111,114, - 114,101,99,116,32,115,112,101,99,46,10,10,32,32,32,32, - 78,250,17,46,95,95,115,112,101,99,95,95,32,105,115,32, - 78,111,110,101,250,20,46,95,95,115,112,101,99,95,95,32, - 105,115,32,110,111,116,32,115,101,116,41,6,218,3,115,121, - 115,218,7,109,111,100,117,108,101,115,114,7,0,0,0,218, - 8,95,95,115,112,101,99,95,95,218,10,86,97,108,117,101, - 69,114,114,111,114,218,14,65,116,116,114,105,98,117,116,101, - 69,114,114,111,114,41,4,114,26,0,0,0,218,4,112,97, - 116,104,218,6,109,111,100,117,108,101,218,4,115,112,101,99, - 115,4,0,0,0,32,32,32,32,114,19,0,0,0,218,20, - 95,102,105,110,100,95,115,112,101,99,95,102,114,111,109,95, - 112,97,116,104,114,42,0,0,0,39,0,0,0,115,136,0, - 0,0,128,0,240,30,0,8,12,148,51,151,59,145,59,209, - 7,30,220,15,25,152,36,160,4,211,15,37,208,8,37,228, - 17,20,151,27,145,27,152,84,209,17,34,136,6,216,11,17, - 136,62,216,19,23,240,2,7,9,24,216,19,25,151,63,145, - 63,136,68,240,8,0,16,20,136,124,220,22,32,160,68,160, - 54,208,41,58,208,33,59,211,22,60,208,16,60,216,19,23, - 136,75,248,244,11,0,16,30,242,0,1,9,70,1,220,18, - 28,160,4,152,118,208,37,57,208,29,58,211,18,59,192,20, - 208,12,69,240,3,1,9,70,1,250,115,11,0,0,0,182, - 12,65,20,0,193,20,25,65,45,3,99,2,0,0,0,0, - 0,0,0,0,0,0,0,7,0,0,0,3,0,0,0,243, - 208,1,0,0,151,0,124,0,106,1,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,1,171,1, - 0,0,0,0,0,0,114,12,116,3,0,0,0,0,0,0, - 0,0,124,0,124,1,171,2,0,0,0,0,0,0,110,1, - 124,0,125,2,124,2,116,4,0,0,0,0,0,0,0,0, - 106,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,118,1,114,64,124,2,106,9,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, - 171,1,0,0,0,0,0,0,100,2,25,0,0,0,125,3, - 124,3,114,28,116,11,0,0,0,0,0,0,0,0,124,3, - 100,3,103,1,172,4,171,2,0,0,0,0,0,0,125,4, - 9,0,124,4,106,12,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,125,5,110,2,100,8,125,5, - 116,19,0,0,0,0,0,0,0,0,124,2,124,5,171,2, - 0,0,0,0,0,0,83,0,116,4,0,0,0,0,0,0, - 0,0,106,6,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,25,0,0,0,125,7,124,7, - 128,1,121,8,9,0,124,7,106,20,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,125,8,124,8, - 128,14,116,23,0,0,0,0,0,0,0,0,124,0,155,0, - 100,9,157,2,171,1,0,0,0,0,0,0,130,1,124,8, - 83,0,35,0,116,14,0,0,0,0,0,0,0,0,36,0, - 114,25,125,6,116,17,0,0,0,0,0,0,0,0,100,5, - 124,3,155,2,100,6,124,2,155,2,157,4,124,2,172,7, - 171,2,0,0,0,0,0,0,124,6,130,2,100,8,125,6, - 126,6,119,1,119,0,120,3,89,0,119,1,35,0,116,14, - 0,0,0,0,0,0,0,0,36,0,114,16,1,0,116,23, - 0,0,0,0,0,0,0,0,124,0,155,0,100,10,157,2, - 171,1,0,0,0,0,0,0,100,8,130,2,119,0,120,3, - 89,0,119,1,41,11,97,175,2,0,0,82,101,116,117,114, - 110,32,116,104,101,32,115,112,101,99,32,102,111,114,32,116, - 104,101,32,115,112,101,99,105,102,105,101,100,32,109,111,100, - 117,108,101,46,10,10,32,32,32,32,70,105,114,115,116,44, - 32,115,121,115,46,109,111,100,117,108,101,115,32,105,115,32, - 99,104,101,99,107,101,100,32,116,111,32,115,101,101,32,105, - 102,32,116,104,101,32,109,111,100,117,108,101,32,119,97,115, - 32,97,108,114,101,97,100,121,32,105,109,112,111,114,116,101, - 100,46,32,73,102,10,32,32,32,32,115,111,44,32,116,104, - 101,110,32,115,121,115,46,109,111,100,117,108,101,115,91,110, - 97,109,101,93,46,95,95,115,112,101,99,95,95,32,105,115, - 32,114,101,116,117,114,110,101,100,46,32,73,102,32,116,104, - 97,116,32,104,97,112,112,101,110,115,32,116,111,32,98,101, - 10,32,32,32,32,115,101,116,32,116,111,32,78,111,110,101, - 44,32,116,104,101,110,32,86,97,108,117,101,69,114,114,111, - 114,32,105,115,32,114,97,105,115,101,100,46,32,73,102,32, - 116,104,101,32,109,111,100,117,108,101,32,105,115,32,110,111, - 116,32,105,110,10,32,32,32,32,115,121,115,46,109,111,100, - 117,108,101,115,44,32,116,104,101,110,32,115,121,115,46,109, - 101,116,97,95,112,97,116,104,32,105,115,32,115,101,97,114, - 99,104,101,100,32,102,111,114,32,97,32,115,117,105,116,97, - 98,108,101,32,115,112,101,99,32,119,105,116,104,32,116,104, - 101,10,32,32,32,32,118,97,108,117,101,32,111,102,32,39, - 112,97,116,104,39,32,103,105,118,101,110,32,116,111,32,116, - 104,101,32,102,105,110,100,101,114,115,46,32,78,111,110,101, - 32,105,115,32,114,101,116,117,114,110,101,100,32,105,102,32, - 110,111,32,115,112,101,99,32,99,111,117,108,100,10,32,32, - 32,32,98,101,32,102,111,117,110,100,46,10,10,32,32,32, - 32,73,102,32,116,104,101,32,110,97,109,101,32,105,115,32, - 102,111,114,32,115,117,98,109,111,100,117,108,101,32,40,99, - 111,110,116,97,105,110,115,32,97,32,100,111,116,41,44,32, - 116,104,101,32,112,97,114,101,110,116,32,109,111,100,117,108, - 101,32,105,115,10,32,32,32,32,97,117,116,111,109,97,116, - 105,99,97,108,108,121,32,105,109,112,111,114,116,101,100,46, - 10,10,32,32,32,32,84,104,101,32,110,97,109,101,32,97, - 110,100,32,112,97,99,107,97,103,101,32,97,114,103,117,109, - 101,110,116,115,32,119,111,114,107,32,116,104,101,32,115,97, - 109,101,32,97,115,32,105,109,112,111,114,116,108,105,98,46, - 105,109,112,111,114,116,95,109,111,100,117,108,101,40,41,46, - 10,32,32,32,32,73,110,32,111,116,104,101,114,32,119,111, - 114,100,115,44,32,114,101,108,97,116,105,118,101,32,109,111, - 100,117,108,101,32,110,97,109,101,115,32,40,119,105,116,104, - 32,108,101,97,100,105,110,103,32,100,111,116,115,41,32,119, - 111,114,107,46,10,10,32,32,32,32,114,22,0,0,0,114, - 14,0,0,0,218,8,95,95,112,97,116,104,95,95,41,1, - 218,8,102,114,111,109,108,105,115,116,122,32,95,95,112,97, - 116,104,95,95,32,97,116,116,114,105,98,117,116,101,32,110, - 111,116,32,102,111,117,110,100,32,111,110,32,122,22,32,119, - 104,105,108,101,32,116,114,121,105,110,103,32,116,111,32,102, - 105,110,100,32,41,1,114,26,0,0,0,78,114,32,0,0, - 0,114,33,0,0,0,41,12,114,23,0,0,0,114,30,0, - 0,0,114,34,0,0,0,114,35,0,0,0,218,10,114,112, - 97,114,116,105,116,105,111,110,218,10,95,95,105,109,112,111, - 114,116,95,95,114,44,0,0,0,114,38,0,0,0,218,19, - 77,111,100,117,108,101,78,111,116,70,111,117,110,100,69,114, - 114,111,114,114,7,0,0,0,114,36,0,0,0,114,37,0, - 0,0,41,9,114,26,0,0,0,114,27,0,0,0,218,8, - 102,117,108,108,110,97,109,101,218,11,112,97,114,101,110,116, - 95,110,97,109,101,218,6,112,97,114,101,110,116,218,11,112, - 97,114,101,110,116,95,112,97,116,104,218,1,101,114,40,0, - 0,0,114,41,0,0,0,115,9,0,0,0,32,32,32,32, - 32,32,32,32,32,114,19,0,0,0,218,9,102,105,110,100, - 95,115,112,101,99,114,54,0,0,0,70,0,0,0,115,28, - 1,0,0,128,0,240,34,0,47,51,175,111,169,111,184,99, - 212,46,66,140,124,152,68,160,39,212,15,42,200,4,128,72, - 216,7,15,148,115,151,123,145,123,209,7,34,216,22,30,215, - 22,41,209,22,41,168,35,211,22,46,168,113,209,22,49,136, - 11,217,11,22,220,21,31,160,11,176,122,176,108,212,21,67, - 136,70,240,2,5,13,80,1,216,30,36,159,111,153,111,145, - 11,240,12,0,27,31,136,75,220,15,25,152,40,160,75,211, + 5,0,0,0,3,0,0,0,243,232,0,0,0,149,0,85, + 0,91,0,0,0,0,0,0,0,0,0,82,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59, + 1,0,0,97,11,0,0,91,5,0,0,0,0,0,0,0, + 0,88,1,53,2,0,0,0,0,0,0,36,0,91,0,0, + 0,0,0,0,0,0,0,82,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,0,5,0,0, + 0,110,2,85,2,99,1,0,0,103,1,30,0,85,2,82, + 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,110,3,85,3,99,14,0,0,91,9,0,0,0, + 0,0,0,0,0,85,0,14,0,83,2,51,2,53,1,0, + 0,0,0,0,0,101,1,85,3,36,0,33,0,91,10,0, + 0,0,0,0,0,0,0,7,0,97,16,0,0,32,0,91, + 9,0,0,0,0,0,0,0,0,85,0,14,0,83,3,51, + 2,53,1,0,0,0,0,0,0,83,1,101,2,102,0,61, + 3,31,0,102,1,41,4,97,95,2,0,0,82,101,116,117, + 114,110,32,116,104,101,32,115,112,101,99,32,102,111,114,32, + 116,104,101,32,115,112,101,99,105,102,105,101,100,32,109,111, + 100,117,108,101,46,10,10,70,105,114,115,116,44,32,115,121, + 115,46,109,111,100,117,108,101,115,32,105,115,32,99,104,101, + 99,107,101,100,32,116,111,32,115,101,101,32,105,102,32,116, + 104,101,32,109,111,100,117,108,101,32,119,97,115,32,97,108, + 114,101,97,100,121,32,105,109,112,111,114,116,101,100,46,32, + 73,102,10,115,111,44,32,116,104,101,110,32,115,121,115,46, + 109,111,100,117,108,101,115,91,110,97,109,101,93,46,95,95, + 115,112,101,99,95,95,32,105,115,32,114,101,116,117,114,110, + 101,100,46,32,73,102,32,116,104,97,116,32,104,97,112,112, + 101,110,115,32,116,111,32,98,101,10,115,101,116,32,116,111, + 32,78,111,110,101,44,32,116,104,101,110,32,86,97,108,117, + 101,69,114,114,111,114,32,105,115,32,114,97,105,115,101,100, + 46,32,73,102,32,116,104,101,32,109,111,100,117,108,101,32, + 105,115,32,110,111,116,32,105,110,10,115,121,115,46,109,111, + 100,117,108,101,115,44,32,116,104,101,110,32,115,121,115,46, + 109,101,116,97,95,112,97,116,104,32,105,115,32,115,101,97, + 114,99,104,101,100,32,102,111,114,32,97,32,115,117,105,116, + 97,98,108,101,32,115,112,101,99,32,119,105,116,104,32,116, + 104,101,10,118,97,108,117,101,32,111,102,32,39,112,97,116, + 104,39,32,103,105,118,101,110,32,116,111,32,116,104,101,32, + 102,105,110,100,101,114,115,46,32,78,111,110,101,32,105,115, + 32,114,101,116,117,114,110,101,100,32,105,102,32,110,111,32, + 115,112,101,99,32,99,111,117,108,100,10,98,101,32,102,111, + 117,110,100,46,10,10,68,111,116,116,101,100,32,110,97,109, + 101,115,32,100,111,32,110,111,116,32,104,97,118,101,32,116, + 104,101,105,114,32,112,97,114,101,110,116,32,112,97,99,107, + 97,103,101,115,32,105,109,112,108,105,99,105,116,108,121,32, + 105,109,112,111,114,116,101,100,46,32,89,111,117,32,119,105, + 108,108,10,109,111,115,116,32,108,105,107,101,108,121,32,110, + 101,101,100,32,116,111,32,101,120,112,108,105,99,105,116,108, + 121,32,105,109,112,111,114,116,32,97,108,108,32,112,97,114, + 101,110,116,32,112,97,99,107,97,103,101,115,32,105,110,32, + 116,104,101,32,112,114,111,112,101,114,10,111,114,100,101,114, + 32,102,111,114,32,97,32,115,117,98,109,111,100,117,108,101, + 32,116,111,32,103,101,116,32,116,104,101,32,99,111,114,114, + 101,99,116,32,115,112,101,99,46,10,10,78,250,17,46,95, + 95,115,112,101,99,95,95,32,105,115,32,78,111,110,101,250, + 20,46,95,95,115,112,101,99,95,95,32,105,115,32,110,111, + 116,32,115,101,116,41,6,218,3,115,121,115,218,7,109,111, + 100,117,108,101,115,114,7,0,0,0,218,8,95,95,115,112, + 101,99,95,95,218,10,86,97,108,117,101,69,114,114,111,114, + 218,14,65,116,116,114,105,98,117,116,101,69,114,114,111,114, + 41,4,114,26,0,0,0,218,4,112,97,116,104,218,6,109, + 111,100,117,108,101,218,4,115,112,101,99,115,4,0,0,0, + 32,32,32,32,114,19,0,0,0,218,20,95,102,105,110,100, + 95,115,112,101,99,95,102,114,111,109,95,112,97,116,104,114, + 42,0,0,0,39,0,0,0,115,134,0,0,0,128,0,240, + 30,0,8,12,148,51,151,59,145,59,211,7,30,220,15,25, + 152,36,211,15,37,208,8,37,228,17,20,151,27,145,27,152, + 84,209,17,34,136,6,216,11,17,137,62,216,19,23,240,2, + 7,9,24,216,19,25,151,63,145,63,136,68,240,8,0,16, + 20,137,124,220,22,32,160,68,160,54,208,41,58,208,33,59, + 211,22,60,208,16,60,216,19,23,136,75,248,244,11,0,16, + 30,243,0,1,9,70,1,220,18,28,160,4,152,118,208,37, + 57,208,29,58,211,18,59,192,20,208,12,69,240,3,1,9, + 70,1,250,115,11,0,0,0,184,12,65,23,0,193,23,26, + 65,49,3,99,2,0,0,0,0,0,0,0,0,0,0,0, + 7,0,0,0,3,0,0,0,243,228,1,0,0,149,0,85, + 0,82,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,1,53,1,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,97,11,0,0,91,3,0,0,0, + 0,0,0,0,0,88,1,53,2,0,0,0,0,0,0,79, + 1,85,0,110,2,85,2,91,4,0,0,0,0,0,0,0, + 0,82,6,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,59,1,0,0,97,65,0,0,85,2,82, + 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,83,1,53,1,0,0,0,0,0,0,83,2,5, + 0,0,0,110,3,85,3,40,0,0,0,0,0,0,0,97, + 25,0,0,91,11,0,0,0,0,0,0,0,0,85,3,83, + 3,47,1,83,4,57,2,110,4,30,0,85,4,82,12,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,110,5,79,2,83,8,110,5,91,19,0,0,0,0,0, + 0,0,0,88,37,53,2,0,0,0,0,0,0,36,0,91, + 4,0,0,0,0,0,0,0,0,82,6,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,2,5, + 0,0,0,110,7,85,7,99,1,0,0,103,8,30,0,85, + 7,82,20,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,110,8,85,8,99,14,0,0,91,23,0, + 0,0,0,0,0,0,0,85,0,14,0,83,9,51,2,53, + 1,0,0,0,0,0,0,101,1,85,8,36,0,33,0,91, + 14,0,0,0,0,0,0,0,0,7,0,97,24,0,0,110, + 6,91,17,0,0,0,0,0,0,0,0,83,5,85,3,60, + 2,14,0,83,6,85,2,60,2,14,0,51,4,85,2,83, + 7,57,2,85,6,101,2,83,8,110,6,65,6,102,1,102, + 0,61,3,31,0,102,1,33,0,91,14,0,0,0,0,0, + 0,0,0,7,0,97,16,0,0,32,0,91,23,0,0,0, + 0,0,0,0,0,85,0,14,0,83,10,51,2,53,1,0, + 0,0,0,0,0,83,8,101,2,102,0,61,3,31,0,102, + 1,41,11,97,131,2,0,0,82,101,116,117,114,110,32,116, + 104,101,32,115,112,101,99,32,102,111,114,32,116,104,101,32, + 115,112,101,99,105,102,105,101,100,32,109,111,100,117,108,101, + 46,10,10,70,105,114,115,116,44,32,115,121,115,46,109,111, + 100,117,108,101,115,32,105,115,32,99,104,101,99,107,101,100, + 32,116,111,32,115,101,101,32,105,102,32,116,104,101,32,109, + 111,100,117,108,101,32,119,97,115,32,97,108,114,101,97,100, + 121,32,105,109,112,111,114,116,101,100,46,32,73,102,10,115, + 111,44,32,116,104,101,110,32,115,121,115,46,109,111,100,117, + 108,101,115,91,110,97,109,101,93,46,95,95,115,112,101,99, + 95,95,32,105,115,32,114,101,116,117,114,110,101,100,46,32, + 73,102,32,116,104,97,116,32,104,97,112,112,101,110,115,32, + 116,111,32,98,101,10,115,101,116,32,116,111,32,78,111,110, + 101,44,32,116,104,101,110,32,86,97,108,117,101,69,114,114, + 111,114,32,105,115,32,114,97,105,115,101,100,46,32,73,102, + 32,116,104,101,32,109,111,100,117,108,101,32,105,115,32,110, + 111,116,32,105,110,10,115,121,115,46,109,111,100,117,108,101, + 115,44,32,116,104,101,110,32,115,121,115,46,109,101,116,97, + 95,112,97,116,104,32,105,115,32,115,101,97,114,99,104,101, + 100,32,102,111,114,32,97,32,115,117,105,116,97,98,108,101, + 32,115,112,101,99,32,119,105,116,104,32,116,104,101,10,118, + 97,108,117,101,32,111,102,32,39,112,97,116,104,39,32,103, + 105,118,101,110,32,116,111,32,116,104,101,32,102,105,110,100, + 101,114,115,46,32,78,111,110,101,32,105,115,32,114,101,116, + 117,114,110,101,100,32,105,102,32,110,111,32,115,112,101,99, + 32,99,111,117,108,100,10,98,101,32,102,111,117,110,100,46, + 10,10,73,102,32,116,104,101,32,110,97,109,101,32,105,115, + 32,102,111,114,32,115,117,98,109,111,100,117,108,101,32,40, + 99,111,110,116,97,105,110,115,32,97,32,100,111,116,41,44, + 32,116,104,101,32,112,97,114,101,110,116,32,109,111,100,117, + 108,101,32,105,115,10,97,117,116,111,109,97,116,105,99,97, + 108,108,121,32,105,109,112,111,114,116,101,100,46,10,10,84, + 104,101,32,110,97,109,101,32,97,110,100,32,112,97,99,107, + 97,103,101,32,97,114,103,117,109,101,110,116,115,32,119,111, + 114,107,32,116,104,101,32,115,97,109,101,32,97,115,32,105, + 109,112,111,114,116,108,105,98,46,105,109,112,111,114,116,95, + 109,111,100,117,108,101,40,41,46,10,73,110,32,111,116,104, + 101,114,32,119,111,114,100,115,44,32,114,101,108,97,116,105, + 118,101,32,109,111,100,117,108,101,32,110,97,109,101,115,32, + 40,119,105,116,104,32,108,101,97,100,105,110,103,32,100,111, + 116,115,41,32,119,111,114,107,46,10,10,114,22,0,0,0, + 114,14,0,0,0,218,8,95,95,112,97,116,104,95,95,41, + 1,218,8,102,114,111,109,108,105,115,116,122,32,95,95,112, + 97,116,104,95,95,32,97,116,116,114,105,98,117,116,101,32, + 110,111,116,32,102,111,117,110,100,32,111,110,32,122,22,32, + 119,104,105,108,101,32,116,114,121,105,110,103,32,116,111,32, + 102,105,110,100,32,41,1,114,26,0,0,0,78,114,32,0, + 0,0,114,33,0,0,0,41,12,114,23,0,0,0,114,30, + 0,0,0,114,34,0,0,0,114,35,0,0,0,218,10,114, + 112,97,114,116,105,116,105,111,110,218,10,95,95,105,109,112, + 111,114,116,95,95,114,44,0,0,0,114,38,0,0,0,218, + 19,77,111,100,117,108,101,78,111,116,70,111,117,110,100,69, + 114,114,111,114,114,7,0,0,0,114,36,0,0,0,114,37, + 0,0,0,41,9,114,26,0,0,0,114,27,0,0,0,218, + 8,102,117,108,108,110,97,109,101,218,11,112,97,114,101,110, + 116,95,110,97,109,101,218,6,112,97,114,101,110,116,218,11, + 112,97,114,101,110,116,95,112,97,116,104,218,1,101,114,40, + 0,0,0,114,41,0,0,0,115,9,0,0,0,32,32,32, + 32,32,32,32,32,32,114,19,0,0,0,218,9,102,105,110, + 100,95,115,112,101,99,114,54,0,0,0,70,0,0,0,115, + 27,1,0,0,128,0,240,34,0,47,51,175,111,169,111,184, + 99,215,46,66,209,46,66,140,124,152,68,212,15,42,200,4, + 128,72,216,7,15,148,115,151,123,145,123,211,7,34,216,22, + 30,215,22,41,209,22,41,168,35,211,22,46,168,113,209,22, + 49,136,11,222,11,22,220,21,31,160,11,176,122,176,108,209, + 21,67,136,70,240,2,5,13,80,1,216,30,36,159,111,153, + 111,145,11,240,12,0,27,31,136,75,220,15,25,152,40,211, 15,48,208,8,48,228,17,20,151,27,145,27,152,88,209,17, - 38,136,6,216,11,17,136,62,216,19,23,240,2,7,9,24, - 216,19,25,151,63,145,63,136,68,240,8,0,16,20,136,124, + 38,136,6,216,11,17,137,62,216,19,23,240,2,7,9,24, + 216,19,25,151,63,145,63,136,68,240,8,0,16,20,137,124, 220,22,32,160,68,160,54,208,41,58,208,33,59,211,22,60, - 208,16,60,216,19,23,136,75,248,244,37,0,20,34,242,0, - 3,13,80,1,220,22,41,216,22,54,176,123,176,111,240,0, - 1,70,1,44,216,44,52,168,60,240,3,1,21,57,216,63, - 71,244,5,2,23,73,1,224,78,79,240,5,2,17,80,1, - 251,240,3,3,13,80,1,251,244,26,0,16,30,242,0,1, + 208,16,60,216,19,23,136,75,248,244,37,0,20,34,243,0, + 3,13,80,1,220,22,41,216,22,54,176,123,177,111,240,0, + 1,70,1,44,216,44,52,169,60,240,3,1,21,57,216,63, + 71,241,5,2,23,73,1,224,78,79,240,5,2,17,80,1, + 251,240,3,3,13,80,1,251,244,26,0,16,30,243,0,1, 9,70,1,220,18,28,160,4,152,118,208,37,57,208,29,58, 211,18,59,192,20,208,12,69,240,3,1,9,70,1,250,115, - 36,0,0,0,193,23,12,66,39,0,194,9,12,67,12,0, - 194,39,9,67,9,3,194,48,20,67,4,3,195,4,5,67, - 9,3,195,12,25,67,37,3,99,0,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,0,0,0,0,243,50,0, - 0,0,151,0,101,0,90,1,100,0,90,2,100,1,90,3, - 100,2,132,0,90,4,100,3,132,0,90,5,100,4,132,0, - 90,6,101,7,100,5,132,0,171,0,0,0,0,0,0,0, - 90,8,121,6,41,7,218,43,95,105,110,99,111,109,112,97, - 116,105,98,108,101,95,101,120,116,101,110,115,105,111,110,95, - 109,111,100,117,108,101,95,114,101,115,116,114,105,99,116,105, - 111,110,115,97,103,5,0,0,65,32,99,111,110,116,101,120, - 116,32,109,97,110,97,103,101,114,32,116,104,97,116,32,99, - 97,110,32,116,101,109,112,111,114,97,114,105,108,121,32,115, - 107,105,112,32,116,104,101,32,99,111,109,112,97,116,105,98, - 105,108,105,116,121,32,99,104,101,99,107,46,10,10,32,32, - 32,32,78,79,84,69,58,32,84,104,105,115,32,102,117,110, - 99,116,105,111,110,32,105,115,32,109,101,97,110,116,32,116, - 111,32,97,99,99,111,109,109,111,100,97,116,101,32,97,110, - 32,117,110,117,115,117,97,108,32,99,97,115,101,59,32,111, - 110,101,10,32,32,32,32,119,104,105,99,104,32,105,115,32, - 108,105,107,101,108,121,32,116,111,32,101,118,101,110,116,117, - 97,108,108,121,32,103,111,32,97,119,97,121,46,32,32,84, - 104,101,114,101,39,115,32,105,115,32,97,32,112,114,101,116, - 116,121,32,103,111,111,100,10,32,32,32,32,99,104,97,110, - 99,101,32,116,104,105,115,32,105,115,32,110,111,116,32,119, - 104,97,116,32,121,111,117,32,119,101,114,101,32,108,111,111, - 107,105,110,103,32,102,111,114,46,10,10,32,32,32,32,87, - 65,82,78,73,78,71,58,32,85,115,105,110,103,32,116,104, - 105,115,32,102,117,110,99,116,105,111,110,32,116,111,32,100, - 105,115,97,98,108,101,32,116,104,101,32,99,104,101,99,107, - 32,99,97,110,32,108,101,97,100,32,116,111,10,32,32,32, - 32,117,110,101,120,112,101,99,116,101,100,32,98,101,104,97, - 118,105,111,114,32,97,110,100,32,101,118,101,110,32,99,114, - 97,115,104,101,115,46,32,32,73,116,32,115,104,111,117,108, - 100,32,111,110,108,121,32,98,101,32,117,115,101,100,32,100, - 117,114,105,110,103,10,32,32,32,32,101,120,116,101,110,115, - 105,111,110,32,109,111,100,117,108,101,32,100,101,118,101,108, - 111,112,109,101,110,116,46,10,10,32,32,32,32,73,102,32, - 34,100,105,115,97,98,108,101,95,99,104,101,99,107,34,32, - 105,115,32,84,114,117,101,32,116,104,101,110,32,116,104,101, - 32,99,111,109,112,97,116,105,98,105,108,105,116,121,32,99, - 104,101,99,107,32,119,105,108,108,32,110,111,116,10,32,32, - 32,32,104,97,112,112,101,110,32,119,104,105,108,101,32,116, - 104,101,32,99,111,110,116,101,120,116,32,109,97,110,97,103, - 101,114,32,105,115,32,97,99,116,105,118,101,46,32,32,79, - 116,104,101,114,119,105,115,101,32,116,104,101,32,99,104,101, - 99,107,10,32,32,32,32,42,119,105,108,108,42,32,104,97, - 112,112,101,110,46,10,10,32,32,32,32,78,111,114,109,97, - 108,108,121,44,32,101,120,116,101,110,115,105,111,110,115,32, - 116,104,97,116,32,100,111,32,110,111,116,32,115,117,112,112, - 111,114,116,32,109,117,108,116,105,112,108,101,32,105,110,116, - 101,114,112,114,101,116,101,114,115,10,32,32,32,32,109,97, - 121,32,110,111,116,32,98,101,32,105,109,112,111,114,116,101, - 100,32,105,110,32,97,32,115,117,98,105,110,116,101,114,112, - 114,101,116,101,114,46,32,32,84,104,97,116,32,105,109,112, - 108,105,101,115,32,109,111,100,117,108,101,115,10,32,32,32, - 32,116,104,97,116,32,100,111,32,110,111,116,32,105,109,112, - 108,101,109,101,110,116,32,109,117,108,116,105,45,112,104,97, - 115,101,32,105,110,105,116,32,111,114,32,116,104,97,116,32, - 101,120,112,108,105,99,105,116,108,121,32,111,102,32,111,117, - 116,46,10,10,32,32,32,32,76,105,107,101,119,105,115,101, - 32,102,111,114,32,109,111,100,117,108,101,115,32,105,109,112, - 111,114,116,32,105,110,32,97,32,115,117,98,105,110,116,101, - 114,112,101,116,101,114,32,119,105,116,104,32,105,116,115,32, - 111,119,110,32,71,73,76,10,32,32,32,32,119,104,101,110, - 32,116,104,101,32,101,120,116,101,110,115,105,111,110,32,100, - 111,101,115,32,110,111,116,32,115,117,112,112,111,114,116,32, - 97,32,112,101,114,45,105,110,116,101,114,112,114,101,116,101, - 114,32,71,73,76,46,32,32,84,104,105,115,10,32,32,32, - 32,105,109,112,108,105,101,115,32,116,104,101,32,109,111,100, - 117,108,101,32,100,111,101,115,32,110,111,116,32,104,97,118, - 101,32,97,32,80,121,95,109,111,100,95,109,117,108,116,105, - 112,108,101,95,105,110,116,101,114,112,114,101,116,101,114,115, - 32,115,108,111,116,10,32,32,32,32,115,101,116,32,116,111, - 32,80,121,95,77,79,68,95,80,69,82,95,73,78,84,69, - 82,80,82,69,84,69,82,95,71,73,76,95,83,85,80,80, - 79,82,84,69,68,46,10,10,32,32,32,32,73,110,32,98, - 111,116,104,32,99,97,115,101,115,44,32,116,104,105,115,32, + 36,0,0,0,193,31,12,66,48,0,194,17,12,67,21,0, + 194,48,10,67,18,3,194,58,19,67,13,3,195,13,5,67, + 18,3,195,21,26,67,47,3,99,0,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,0,0,0,0,243,58,0, + 0,0,149,0,92,0,114,1,83,0,114,2,83,1,114,3, + 83,2,114,4,83,3,26,0,114,5,83,4,26,0,114,6, + 83,5,26,0,114,7,92,8,83,6,26,0,53,0,0,0, + 0,0,0,0,114,9,83,7,114,10,103,8,41,9,218,43, + 95,105,110,99,111,109,112,97,116,105,98,108,101,95,101,120, + 116,101,110,115,105,111,110,95,109,111,100,117,108,101,95,114, + 101,115,116,114,105,99,116,105,111,110,115,233,119,0,0,0, + 97,16,5,0,0,65,32,99,111,110,116,101,120,116,32,109, + 97,110,97,103,101,114,32,116,104,97,116,32,99,97,110,32, + 116,101,109,112,111,114,97,114,105,108,121,32,115,107,105,112, + 32,116,104,101,32,99,111,109,112,97,116,105,98,105,108,105, + 116,121,32,99,104,101,99,107,46,10,10,78,79,84,69,58, + 32,84,104,105,115,32,102,117,110,99,116,105,111,110,32,105, + 115,32,109,101,97,110,116,32,116,111,32,97,99,99,111,109, + 109,111,100,97,116,101,32,97,110,32,117,110,117,115,117,97, + 108,32,99,97,115,101,59,32,111,110,101,10,119,104,105,99, + 104,32,105,115,32,108,105,107,101,108,121,32,116,111,32,101, + 118,101,110,116,117,97,108,108,121,32,103,111,32,97,119,97, + 121,46,32,32,84,104,101,114,101,39,115,32,105,115,32,97, + 32,112,114,101,116,116,121,32,103,111,111,100,10,99,104,97, + 110,99,101,32,116,104,105,115,32,105,115,32,110,111,116,32, + 119,104,97,116,32,121,111,117,32,119,101,114,101,32,108,111, + 111,107,105,110,103,32,102,111,114,46,10,10,87,65,82,78, + 73,78,71,58,32,85,115,105,110,103,32,116,104,105,115,32, + 102,117,110,99,116,105,111,110,32,116,111,32,100,105,115,97, + 98,108,101,32,116,104,101,32,99,104,101,99,107,32,99,97, + 110,32,108,101,97,100,32,116,111,10,117,110,101,120,112,101, + 99,116,101,100,32,98,101,104,97,118,105,111,114,32,97,110, + 100,32,101,118,101,110,32,99,114,97,115,104,101,115,46,32, + 32,73,116,32,115,104,111,117,108,100,32,111,110,108,121,32, + 98,101,32,117,115,101,100,32,100,117,114,105,110,103,10,101, + 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,32, + 100,101,118,101,108,111,112,109,101,110,116,46,10,10,73,102, + 32,34,100,105,115,97,98,108,101,95,99,104,101,99,107,34, + 32,105,115,32,84,114,117,101,32,116,104,101,110,32,116,104, + 101,32,99,111,109,112,97,116,105,98,105,108,105,116,121,32, + 99,104,101,99,107,32,119,105,108,108,32,110,111,116,10,104, + 97,112,112,101,110,32,119,104,105,108,101,32,116,104,101,32, 99,111,110,116,101,120,116,32,109,97,110,97,103,101,114,32, - 109,97,121,32,98,101,32,117,115,101,100,32,116,111,32,116, - 101,109,112,111,114,97,114,105,108,121,10,32,32,32,32,100, - 105,115,97,98,108,101,32,116,104,101,32,99,104,101,99,107, - 32,102,111,114,32,99,111,109,112,97,116,105,98,108,101,32, - 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101, - 115,46,10,10,32,32,32,32,89,111,117,32,99,97,110,32, - 103,101,116,32,116,104,101,32,115,97,109,101,32,101,102,102, - 101,99,116,32,97,115,32,116,104,105,115,32,102,117,110,99, - 116,105,111,110,32,98,121,32,105,109,112,108,101,109,101,110, - 116,105,110,103,32,116,104,101,10,32,32,32,32,98,97,115, - 105,99,32,105,110,116,101,114,102,97,99,101,32,111,102,32, - 109,117,108,116,105,45,112,104,97,115,101,32,105,110,105,116, - 32,40,80,69,80,32,52,56,57,41,32,97,110,100,32,108, - 121,105,110,103,32,97,98,111,117,116,10,32,32,32,32,115, - 117,112,112,111,114,116,32,102,111,114,32,109,117,108,116,105, - 112,108,101,32,105,110,116,101,114,112,114,101,116,101,114,115, - 32,40,111,114,32,112,101,114,45,105,110,116,101,114,112,114, - 101,116,101,114,32,71,73,76,41,46,10,32,32,32,32,99, - 1,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, - 3,0,0,0,243,36,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,1,171,1,0,0,0,0,0,0,124, - 0,95,1,0,0,0,0,0,0,0,0,121,0,169,1,78, - 41,2,218,4,98,111,111,108,218,13,100,105,115,97,98,108, - 101,95,99,104,101,99,107,41,2,218,4,115,101,108,102,114, - 60,0,0,0,115,2,0,0,0,32,32,114,19,0,0,0, - 218,8,95,95,105,110,105,116,95,95,122,52,95,105,110,99, - 111,109,112,97,116,105,98,108,101,95,101,120,116,101,110,115, - 105,111,110,95,109,111,100,117,108,101,95,114,101,115,116,114, - 105,99,116,105,111,110,115,46,95,95,105,110,105,116,95,95, - 151,0,0,0,115,15,0,0,0,128,0,220,29,33,160,45, - 211,29,48,136,4,213,8,26,114,20,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,78,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,124,0,95,3,0,0,0,0,0,0,0, - 0,124,0,83,0,114,58,0,0,0,41,4,114,16,0,0, - 0,218,39,95,111,118,101,114,114,105,100,101,95,109,117,108, - 116,105,95,105,110,116,101,114,112,95,101,120,116,101,110,115, - 105,111,110,115,95,99,104,101,99,107,218,8,111,118,101,114, - 114,105,100,101,218,3,111,108,100,169,1,114,61,0,0,0, - 115,1,0,0,0,32,114,19,0,0,0,218,9,95,95,101, - 110,116,101,114,95,95,122,53,95,105,110,99,111,109,112,97, + 105,115,32,97,99,116,105,118,101,46,32,32,79,116,104,101, + 114,119,105,115,101,32,116,104,101,32,99,104,101,99,107,10, + 42,119,105,108,108,42,32,104,97,112,112,101,110,46,10,10, + 78,111,114,109,97,108,108,121,44,32,101,120,116,101,110,115, + 105,111,110,115,32,116,104,97,116,32,100,111,32,110,111,116, + 32,115,117,112,112,111,114,116,32,109,117,108,116,105,112,108, + 101,32,105,110,116,101,114,112,114,101,116,101,114,115,10,109, + 97,121,32,110,111,116,32,98,101,32,105,109,112,111,114,116, + 101,100,32,105,110,32,97,32,115,117,98,105,110,116,101,114, + 112,114,101,116,101,114,46,32,32,84,104,97,116,32,105,109, + 112,108,105,101,115,32,109,111,100,117,108,101,115,10,116,104, + 97,116,32,100,111,32,110,111,116,32,105,109,112,108,101,109, + 101,110,116,32,109,117,108,116,105,45,112,104,97,115,101,32, + 105,110,105,116,32,111,114,32,116,104,97,116,32,101,120,112, + 108,105,99,105,116,108,121,32,111,102,32,111,117,116,46,10, + 10,76,105,107,101,119,105,115,101,32,102,111,114,32,109,111, + 100,117,108,101,115,32,105,109,112,111,114,116,32,105,110,32, + 97,32,115,117,98,105,110,116,101,114,112,114,101,116,101,114, + 32,119,105,116,104,32,105,116,115,32,111,119,110,32,71,73, + 76,10,119,104,101,110,32,116,104,101,32,101,120,116,101,110, + 115,105,111,110,32,100,111,101,115,32,110,111,116,32,115,117, + 112,112,111,114,116,32,97,32,112,101,114,45,105,110,116,101, + 114,112,114,101,116,101,114,32,71,73,76,46,32,32,84,104, + 105,115,10,105,109,112,108,105,101,115,32,116,104,101,32,109, + 111,100,117,108,101,32,100,111,101,115,32,110,111,116,32,104, + 97,118,101,32,97,32,80,121,95,109,111,100,95,109,117,108, + 116,105,112,108,101,95,105,110,116,101,114,112,114,101,116,101, + 114,115,32,115,108,111,116,10,115,101,116,32,116,111,32,80, + 121,95,77,79,68,95,80,69,82,95,73,78,84,69,82,80, + 82,69,84,69,82,95,71,73,76,95,83,85,80,80,79,82, + 84,69,68,46,10,10,73,110,32,98,111,116,104,32,99,97, + 115,101,115,44,32,116,104,105,115,32,99,111,110,116,101,120, + 116,32,109,97,110,97,103,101,114,32,109,97,121,32,98,101, + 32,117,115,101,100,32,116,111,32,116,101,109,112,111,114,97, + 114,105,108,121,10,100,105,115,97,98,108,101,32,116,104,101, + 32,99,104,101,99,107,32,102,111,114,32,99,111,109,112,97, + 116,105,98,108,101,32,101,120,116,101,110,115,105,111,110,32, + 109,111,100,117,108,101,115,46,10,10,89,111,117,32,99,97, + 110,32,103,101,116,32,116,104,101,32,115,97,109,101,32,101, + 102,102,101,99,116,32,97,115,32,116,104,105,115,32,102,117, + 110,99,116,105,111,110,32,98,121,32,105,109,112,108,101,109, + 101,110,116,105,110,103,32,116,104,101,10,98,97,115,105,99, + 32,105,110,116,101,114,102,97,99,101,32,111,102,32,109,117, + 108,116,105,45,112,104,97,115,101,32,105,110,105,116,32,40, + 80,69,80,32,52,56,57,41,32,97,110,100,32,108,121,105, + 110,103,32,97,98,111,117,116,10,115,117,112,112,111,114,116, + 32,102,111,114,32,109,117,108,116,105,112,108,101,32,105,110, + 116,101,114,112,114,101,116,101,114,115,32,40,111,114,32,112, + 101,114,45,105,110,116,101,114,112,114,101,116,101,114,32,71, + 73,76,41,46,10,99,1,0,0,0,0,0,0,0,1,0, + 0,0,3,0,0,0,3,0,0,0,243,36,0,0,0,149, + 0,91,1,0,0,0,0,0,0,0,0,85,1,53,1,0, + 0,0,0,0,0,85,0,108,1,0,0,0,0,0,0,0, + 0,103,0,169,1,78,41,2,218,4,98,111,111,108,218,13, + 100,105,115,97,98,108,101,95,99,104,101,99,107,41,2,218, + 4,115,101,108,102,114,61,0,0,0,115,2,0,0,0,32, + 32,114,19,0,0,0,218,8,95,95,105,110,105,116,95,95, + 218,52,95,105,110,99,111,109,112,97,116,105,98,108,101,95, + 101,120,116,101,110,115,105,111,110,95,109,111,100,117,108,101, + 95,114,101,115,116,114,105,99,116,105,111,110,115,46,95,95, + 105,110,105,116,95,95,151,0,0,0,115,15,0,0,0,128, + 0,220,29,33,160,45,211,29,48,136,4,213,8,26,114,20, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,3,0,0,0,243,80,0,0,0,149,0,91, + 0,0,0,0,0,0,0,0,0,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,85, + 0,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,1,0,0,0,0,0,0,85,0,108, + 3,0,0,0,0,0,0,0,0,85,0,36,0,114,59,0, + 0,0,41,4,114,16,0,0,0,218,39,95,111,118,101,114, + 114,105,100,101,95,109,117,108,116,105,95,105,110,116,101,114, + 112,95,101,120,116,101,110,115,105,111,110,115,95,99,104,101, + 99,107,218,8,111,118,101,114,114,105,100,101,218,3,111,108, + 100,169,1,114,62,0,0,0,115,1,0,0,0,32,114,19, + 0,0,0,218,9,95,95,101,110,116,101,114,95,95,218,53, + 95,105,110,99,111,109,112,97,116,105,98,108,101,95,101,120, + 116,101,110,115,105,111,110,95,109,111,100,117,108,101,95,114, + 101,115,116,114,105,99,116,105,111,110,115,46,95,95,101,110, + 116,101,114,95,95,154,0,0,0,115,29,0,0,0,128,0, + 220,19,23,215,19,63,210,19,63,192,4,199,13,193,13,211, + 19,78,136,4,140,8,216,15,19,136,11,114,20,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,7,0,0,0,243,76,0,0,0,149,0,85,0,82,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,110,2,85,0,63,0,91,2,0,0,0,0,0,0, + 0,0,82,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,85,2,53,1,0,0,0,0, + 0,0,32,0,103,0,114,59,0,0,0,41,3,114,68,0, + 0,0,114,16,0,0,0,114,66,0,0,0,41,3,114,62, + 0,0,0,218,4,97,114,103,115,114,68,0,0,0,115,3, + 0,0,0,32,32,32,114,19,0,0,0,218,8,95,95,101, + 120,105,116,95,95,218,52,95,105,110,99,111,109,112,97,116, + 105,98,108,101,95,101,120,116,101,110,115,105,111,110,95,109, + 111,100,117,108,101,95,114,101,115,116,114,105,99,116,105,111, + 110,115,46,95,95,101,120,105,116,95,95,158,0,0,0,115, + 30,0,0,0,128,0,216,14,18,143,104,137,104,136,3,216, + 12,16,136,72,220,8,12,215,8,52,210,8,52,176,83,213, + 8,57,114,20,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,1,0,0,0,3,0,0,0,243,44,0,0, + 0,149,0,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,2,0,0,83,1,36,0,83,2,36,0,41,3,78, + 233,255,255,255,255,114,2,0,0,0,41,1,114,61,0,0, + 0,114,69,0,0,0,115,1,0,0,0,32,114,19,0,0, + 0,114,67,0,0,0,218,52,95,105,110,99,111,109,112,97, 116,105,98,108,101,95,101,120,116,101,110,115,105,111,110,95, 109,111,100,117,108,101,95,114,101,115,116,114,105,99,116,105, - 111,110,115,46,95,95,101,110,116,101,114,95,95,154,0,0, - 0,115,29,0,0,0,128,0,220,19,23,215,19,63,209,19, - 63,192,4,199,13,193,13,211,19,78,136,4,140,8,216,15, - 19,136,11,114,20,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,7,0,0,0,243,74,0, - 0,0,151,0,124,0,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,125,2,124,0,96,0, - 116,3,0,0,0,0,0,0,0,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, - 171,1,0,0,0,0,0,0,1,0,121,0,114,58,0,0, - 0,41,3,114,66,0,0,0,114,16,0,0,0,114,64,0, - 0,0,41,3,114,61,0,0,0,218,4,97,114,103,115,114, - 66,0,0,0,115,3,0,0,0,32,32,32,114,19,0,0, - 0,218,8,95,95,101,120,105,116,95,95,122,52,95,105,110, - 99,111,109,112,97,116,105,98,108,101,95,101,120,116,101,110, - 115,105,111,110,95,109,111,100,117,108,101,95,114,101,115,116, - 114,105,99,116,105,111,110,115,46,95,95,101,120,105,116,95, - 95,158,0,0,0,115,30,0,0,0,128,0,216,14,18,143, - 104,137,104,136,3,216,12,16,136,72,220,8,12,215,8,52, - 209,8,52,176,83,213,8,57,114,20,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, - 0,0,243,34,0,0,0,151,0,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114, - 2,100,1,83,0,100,2,83,0,41,3,78,233,255,255,255, - 255,114,2,0,0,0,41,1,114,60,0,0,0,114,67,0, - 0,0,115,1,0,0,0,32,114,19,0,0,0,114,65,0, - 0,0,122,52,95,105,110,99,111,109,112,97,116,105,98,108, - 101,95,101,120,116,101,110,115,105,111,110,95,109,111,100,117, - 108,101,95,114,101,115,116,114,105,99,116,105,111,110,115,46, - 111,118,101,114,114,105,100,101,163,0,0,0,115,21,0,0, - 0,128,0,224,21,25,215,21,39,210,21,39,136,114,208,8, - 46,168,81,208,8,46,114,20,0,0,0,78,41,9,218,8, + 111,110,115,46,111,118,101,114,114,105,100,101,163,0,0,0, + 115,21,0,0,0,128,0,224,21,25,215,21,39,215,21,39, + 136,114,208,8,46,168,81,208,8,46,114,20,0,0,0,41, + 2,114,61,0,0,0,114,68,0,0,0,78,41,11,218,8, 95,95,110,97,109,101,95,95,218,10,95,95,109,111,100,117, 108,101,95,95,218,12,95,95,113,117,97,108,110,97,109,101, - 95,95,218,7,95,95,100,111,99,95,95,114,62,0,0,0, - 114,68,0,0,0,114,71,0,0,0,218,8,112,114,111,112, - 101,114,116,121,114,65,0,0,0,169,0,114,20,0,0,0, - 114,19,0,0,0,114,56,0,0,0,114,56,0,0,0,119, - 0,0,0,115,42,0,0,0,132,0,241,2,29,5,8,242, - 62,1,5,49,242,6,2,5,20,242,8,3,5,58,240,10, - 0,6,14,241,2,1,5,47,243,3,0,6,14,241,2,1, - 5,47,114,20,0,0,0,114,56,0,0,0,99,0,0,0, - 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, - 0,243,28,0,0,0,151,0,101,0,90,1,100,0,90,2, - 100,1,90,3,100,2,132,0,90,4,100,3,132,0,90,5, - 121,4,41,5,218,11,95,76,97,122,121,77,111,100,117,108, - 101,122,75,65,32,115,117,98,99,108,97,115,115,32,111,102, - 32,116,104,101,32,109,111,100,117,108,101,32,116,121,112,101, - 32,119,104,105,99,104,32,116,114,105,103,103,101,114,115,32, - 108,111,97,100,105,110,103,32,117,112,111,110,32,97,116,116, - 114,105,98,117,116,101,32,97,99,99,101,115,115,46,99,2, - 0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,3, - 0,0,0,243,18,3,0,0,151,0,116,0,0,0,0,0, - 0,0,0,0,106,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,100,1,171,2,0,0, - 0,0,0,0,125,2,124,2,106,4,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,125,3,124,3, - 100,2,25,0,0,0,53,0,1,0,116,0,0,0,0,0, - 0,0,0,0,106,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,100,3,171,2,0,0, - 0,0,0,0,116,6,0,0,0,0,0,0,0,0,117,0, - 144,1,114,35,124,3,100,4,25,0,0,0,114,31,116,0, - 0,0,0,0,0,0,0,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,124,1, - 171,2,0,0,0,0,0,0,99,2,100,5,100,5,100,5, - 171,2,0,0,0,0,0,0,1,0,83,0,100,6,124,3, - 100,4,60,0,0,0,116,0,0,0,0,0,0,0,0,0, - 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,100,7,171,2,0,0,0,0,0,0, - 125,4,124,2,106,8,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,125,5,124,3,100,7,25,0, - 0,0,125,6,124,4,125,7,105,0,125,8,124,7,106,11, + 95,95,218,15,95,95,102,105,114,115,116,108,105,110,101,110, + 111,95,95,218,7,95,95,100,111,99,95,95,114,63,0,0, + 0,114,70,0,0,0,114,74,0,0,0,218,8,112,114,111, + 112,101,114,116,121,114,67,0,0,0,218,21,95,95,115,116, + 97,116,105,99,95,97,116,116,114,105,98,117,116,101,115,95, + 95,169,0,114,20,0,0,0,114,19,0,0,0,114,56,0, + 0,0,114,56,0,0,0,119,0,0,0,115,42,0,0,0, + 134,0,241,2,29,5,8,242,62,1,5,49,242,6,2,5, + 20,242,8,3,5,58,240,10,0,6,14,241,2,1,5,47, + 243,3,0,6,14,243,2,1,5,47,114,20,0,0,0,114, + 56,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,0,0,0,0,243,36,0,0,0,149,0, + 92,0,114,1,83,0,114,2,83,1,114,3,83,2,114,4, + 83,3,26,0,114,5,83,4,26,0,114,6,83,5,114,7, + 103,6,41,7,218,11,95,76,97,122,121,77,111,100,117,108, + 101,233,168,0,0,0,122,75,65,32,115,117,98,99,108,97, + 115,115,32,111,102,32,116,104,101,32,109,111,100,117,108,101, + 32,116,121,112,101,32,119,104,105,99,104,32,116,114,105,103, + 103,101,114,115,32,108,111,97,100,105,110,103,32,117,112,111, + 110,32,97,116,116,114,105,98,117,116,101,32,97,99,99,101, + 115,115,46,99,2,0,0,0,0,0,0,0,0,0,0,0, + 7,0,0,0,3,0,0,0,243,86,3,0,0,149,0,91, + 0,0,0,0,0,0,0,0,0,82,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,83, + 1,53,2,0,0,0,0,0,0,110,2,85,2,82,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,68,0,93,50,0,0, - 92,2,0,0,125,9,125,10,124,9,124,6,118,1,114,6, - 124,10,124,8,124,9,60,0,0,0,140,16,116,13,0,0, - 0,0,0,0,0,0,124,7,124,9,25,0,0,0,171,1, - 0,0,0,0,0,0,116,13,0,0,0,0,0,0,0,0, - 124,6,124,9,25,0,0,0,171,1,0,0,0,0,0,0, - 107,55,0,0,115,1,140,46,124,10,124,8,124,9,60,0, - 0,0,140,52,4,0,124,2,106,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,17,0,0, + 0,110,3,85,3,83,2,5,0,0,0,2,0,32,0,91, + 0,0,0,0,0,0,0,0,0,82,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,83, + 3,53,2,0,0,0,0,0,0,91,6,0,0,0,0,0, + 0,0,0,76,0,71,1,97,64,0,0,85,3,83,3,5, + 0,0,0,110,4,85,3,83,4,5,0,0,0,40,0,0, + 0,0,0,0,0,97,26,0,0,85,4,82,3,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88, + 1,53,2,0,0,0,0,0,0,115,2,83,5,83,5,83, + 5,53,2,0,0,0,0,0,0,32,0,36,0,83,6,85, + 3,83,4,39,0,0,0,85,4,82,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,83, + 7,53,2,0,0,0,0,0,0,110,5,85,2,82,8,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,1,0,124,5,116,18, - 0,0,0,0,0,0,0,0,106,20,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,118,0,114,55, - 116,13,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,116,13,0,0,0,0,0,0,0,0,116,18, - 0,0,0,0,0,0,0,0,106,20,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,5,25,0, - 0,0,171,1,0,0,0,0,0,0,107,55,0,0,114,15, - 116,23,0,0,0,0,0,0,0,0,100,8,124,5,155,2, - 100,9,157,3,171,1,0,0,0,0,0,0,130,1,124,4, - 106,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,8,171,1,0,0,0,0,0,0,1,0, - 116,26,0,0,0,0,0,0,0,0,106,28,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 95,15,0,0,0,0,0,0,0,0,100,5,100,5,100,5, - 171,2,0,0,0,0,0,0,1,0,116,33,0,0,0,0, - 0,0,0,0,124,0,124,1,171,2,0,0,0,0,0,0, - 83,0,35,0,49,0,115,1,119,2,1,0,89,0,1,0, - 1,0,140,21,120,3,89,0,119,1,41,10,122,56,84,114, - 105,103,103,101,114,32,116,104,101,32,108,111,97,100,32,111, - 102,32,116,104,101,32,109,111,100,117,108,101,32,97,110,100, - 32,114,101,116,117,114,110,32,116,104,101,32,97,116,116,114, - 105,98,117,116,101,46,114,36,0,0,0,218,4,108,111,99, - 107,218,9,95,95,99,108,97,115,115,95,95,218,10,105,115, - 95,108,111,97,100,105,110,103,78,84,218,8,95,95,100,105, - 99,116,95,95,122,18,109,111,100,117,108,101,32,111,98,106, - 101,99,116,32,102,111,114,32,122,46,32,115,117,98,115,116, - 105,116,117,116,101,100,32,105,110,32,115,121,115,46,109,111, - 100,117,108,101,115,32,100,117,114,105,110,103,32,97,32,108, - 97,122,121,32,108,111,97,100,41,17,218,6,111,98,106,101, - 99,116,218,16,95,95,103,101,116,97,116,116,114,105,98,117, - 116,101,95,95,218,12,108,111,97,100,101,114,95,115,116,97, - 116,101,114,81,0,0,0,114,26,0,0,0,218,5,105,116, - 101,109,115,218,2,105,100,218,6,108,111,97,100,101,114,218, - 11,101,120,101,99,95,109,111,100,117,108,101,114,34,0,0, - 0,114,35,0,0,0,114,37,0,0,0,218,6,117,112,100, - 97,116,101,218,5,116,121,112,101,115,218,10,77,111,100,117, - 108,101,84,121,112,101,114,84,0,0,0,218,7,103,101,116, - 97,116,116,114,41,11,114,61,0,0,0,218,4,97,116,116, - 114,114,36,0,0,0,114,89,0,0,0,114,86,0,0,0, - 218,13,111,114,105,103,105,110,97,108,95,110,97,109,101,218, - 10,97,116,116,114,115,95,116,104,101,110,218,9,97,116,116, - 114,115,95,110,111,119,218,13,97,116,116,114,115,95,117,112, - 100,97,116,101,100,218,3,107,101,121,218,5,118,97,108,117, - 101,115,11,0,0,0,32,32,32,32,32,32,32,32,32,32, - 32,114,19,0,0,0,114,88,0,0,0,122,28,95,76,97, + 0,110,6,85,3,83,7,5,0,0,0,110,7,85,5,110, + 8,48,0,110,9,85,8,82,11,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,0,0,0,0, + 0,0,0,19,0,72,50,0,0,117,2,0,0,112,171,88, + 167,59,1,0,0,97,6,0,0,88,185,85,10,39,0,0, + 0,77,16,0,0,91,13,0,0,0,0,0,0,0,0,88, + 138,5,0,0,0,53,1,0,0,0,0,0,0,91,13,0, + 0,0,0,0,0,0,0,88,122,5,0,0,0,53,1,0, + 0,0,0,0,0,58,119,0,0,100,2,0,0,77,46,0, + 0,88,185,85,10,39,0,0,0,77,52,0,0,11,0,32, + 0,85,2,82,14,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,82,17,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,32,0,85,6,91,18,0,0,0,0,0, + 0,0,0,82,20,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,59,0,0,0,97,57,0,0,91, + 13,0,0,0,0,0,0,0,0,85,0,53,1,0,0,0, + 0,0,0,91,13,0,0,0,0,0,0,0,0,91,18,0, + 0,0,0,0,0,0,0,82,20,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,6,5,0,0, + 0,53,1,0,0,0,0,0,0,58,119,0,0,97,16,0, + 0,91,23,0,0,0,0,0,0,0,0,83,8,85,6,60, + 2,14,0,83,9,51,3,53,1,0,0,0,0,0,0,101, + 1,85,5,82,25,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,9,53,1,0,0,0,0,0, + 0,32,0,91,27,0,0,0,0,0,0,0,0,85,0,91, + 6,0,0,0,0,0,0,0,0,53,2,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,97,23,0,0,91,0,0, + 0,0,0,0,0,0,0,82,29,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,0,83,3,85, + 4,53,3,0,0,0,0,0,0,32,0,83,5,83,5,83, + 5,53,2,0,0,0,0,0,0,32,0,91,31,0,0,0, + 0,0,0,0,0,88,1,53,2,0,0,0,0,0,0,36, + 0,33,0,44,0,40,0,0,0,0,0,0,0,100,1,0, + 0,102,2,32,0,31,0,32,0,32,0,78,25,61,3,31, + 0,102,1,41,10,122,56,84,114,105,103,103,101,114,32,116, + 104,101,32,108,111,97,100,32,111,102,32,116,104,101,32,109, + 111,100,117,108,101,32,97,110,100,32,114,101,116,117,114,110, + 32,116,104,101,32,97,116,116,114,105,98,117,116,101,46,114, + 36,0,0,0,218,4,108,111,99,107,218,9,95,95,99,108, + 97,115,115,95,95,218,10,105,115,95,108,111,97,100,105,110, + 103,78,84,218,8,95,95,100,105,99,116,95,95,122,18,109, + 111,100,117,108,101,32,111,98,106,101,99,116,32,102,111,114, + 32,122,46,32,115,117,98,115,116,105,116,117,116,101,100,32, + 105,110,32,115,121,115,46,109,111,100,117,108,101,115,32,100, + 117,114,105,110,103,32,97,32,108,97,122,121,32,108,111,97, + 100,41,16,218,6,111,98,106,101,99,116,218,16,95,95,103, + 101,116,97,116,116,114,105,98,117,116,101,95,95,218,12,108, + 111,97,100,101,114,95,115,116,97,116,101,114,88,0,0,0, + 114,26,0,0,0,218,5,105,116,101,109,115,218,2,105,100, + 218,6,108,111,97,100,101,114,218,11,101,120,101,99,95,109, + 111,100,117,108,101,114,34,0,0,0,114,35,0,0,0,114, + 37,0,0,0,218,6,117,112,100,97,116,101,218,10,105,115, + 105,110,115,116,97,110,99,101,218,11,95,95,115,101,116,97, + 116,116,114,95,95,218,7,103,101,116,97,116,116,114,41,12, + 114,62,0,0,0,218,4,97,116,116,114,114,36,0,0,0, + 114,97,0,0,0,114,92,0,0,0,114,94,0,0,0,218, + 13,111,114,105,103,105,110,97,108,95,110,97,109,101,218,10, + 97,116,116,114,115,95,116,104,101,110,218,9,97,116,116,114, + 115,95,110,111,119,218,13,97,116,116,114,115,95,117,112,100, + 97,116,101,100,218,3,107,101,121,218,5,118,97,108,117,101, + 115,12,0,0,0,32,32,32,32,32,32,32,32,32,32,32, + 32,114,19,0,0,0,114,96,0,0,0,218,28,95,76,97, 122,121,77,111,100,117,108,101,46,95,95,103,101,116,97,116, - 116,114,105,98,117,116,101,95,95,172,0,0,0,115,131,1, + 116,114,105,98,117,116,101,95,95,172,0,0,0,115,145,1, 0,0,128,0,228,19,25,215,19,42,209,19,42,168,52,176, 26,211,19,60,136,8,216,23,31,215,23,44,209,23,44,136, 12,216,13,25,152,38,211,13,33,244,6,0,16,22,215,15, - 38,209,15,38,160,116,168,91,211,15,57,188,91,210,15,72, - 240,10,0,20,32,160,12,210,19,45,220,27,33,215,27,50, - 209,27,50,176,52,184,20,211,27,62,247,19,0,14,34,209, - 13,33,240,20,0,46,50,144,12,152,92,209,16,42,228,27, - 33,215,27,50,209,27,50,176,52,184,26,211,27,68,144,8, - 240,12,0,33,41,167,13,161,13,144,13,240,6,0,30,42, - 168,42,209,29,53,144,10,216,28,36,144,9,216,32,34,144, - 13,216,34,43,167,47,161,47,214,34,51,145,74,144,67,152, - 21,240,6,0,24,27,160,42,209,23,44,216,45,50,152,13, - 160,99,210,24,42,220,25,27,152,73,160,99,153,78,211,25, - 43,172,114,176,42,184,83,177,47,211,47,66,211,25,66,216, - 45,50,152,13,160,99,210,24,42,240,13,0,35,52,240,14, - 0,17,25,151,15,145,15,215,16,43,209,16,43,168,68,212, - 16,49,240,6,0,20,33,164,67,167,75,161,75,209,19,47, - 220,23,25,152,36,147,120,164,50,164,99,167,107,161,107,176, - 45,209,38,64,211,35,65,210,23,65,220,30,40,208,43,61, - 184,109,208,61,78,240,0,2,79,1,49,240,0,2,42,49, - 243,0,2,31,50,240,0,2,25,50,240,10,0,17,25,151, - 15,145,15,160,13,212,16,46,228,33,38,215,33,49,209,33, - 49,144,4,148,14,247,87,1,0,14,34,244,90,1,0,16, - 23,144,116,152,84,211,15,34,208,8,34,247,91,1,0,14, - 34,208,13,33,250,115,25,0,0,0,168,56,69,61,3,193, - 42,65,45,69,61,3,195,24,66,17,69,61,3,197,61,5, - 70,6,7,99,2,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,62,0,0,0,151,0,124, - 0,106,1,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,1,171,1,0,0,0,0,0,0,1, - 0,116,3,0,0,0,0,0,0,0,0,124,0,124,1,171, - 2,0,0,0,0,0,0,1,0,121,1,41,2,122,47,84, - 114,105,103,103,101,114,32,116,104,101,32,108,111,97,100,32, - 97,110,100,32,116,104,101,110,32,112,101,114,102,111,114,109, - 32,116,104,101,32,100,101,108,101,116,105,111,110,46,78,41, - 2,114,88,0,0,0,218,7,100,101,108,97,116,116,114,41, - 2,114,61,0,0,0,114,98,0,0,0,115,2,0,0,0, - 32,32,114,19,0,0,0,218,11,95,95,100,101,108,97,116, - 116,114,95,95,122,23,95,76,97,122,121,77,111,100,117,108, - 101,46,95,95,100,101,108,97,116,116,114,95,95,223,0,0, - 0,115,28,0,0,0,128,0,240,8,0,9,13,215,8,29, - 209,8,29,152,100,212,8,35,220,8,15,144,4,144,100,213, - 8,27,114,20,0,0,0,78,41,6,114,74,0,0,0,114, - 75,0,0,0,114,76,0,0,0,114,77,0,0,0,114,88, - 0,0,0,114,107,0,0,0,114,79,0,0,0,114,20,0, - 0,0,114,19,0,0,0,114,81,0,0,0,114,81,0,0, - 0,168,0,0,0,115,16,0,0,0,132,0,225,4,85,242, - 4,49,5,35,243,102,1,5,5,28,114,20,0,0,0,114, - 81,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,0,0,0,0,243,66,0,0,0,151,0, - 101,0,90,1,100,0,90,2,100,1,90,3,101,4,100,2, - 132,0,171,0,0,0,0,0,0,0,90,5,101,6,100,3, - 132,0,171,0,0,0,0,0,0,0,90,7,100,4,132,0, - 90,8,100,5,132,0,90,9,100,6,132,0,90,10,121,7, - 41,8,218,10,76,97,122,121,76,111,97,100,101,114,122,75, - 65,32,108,111,97,100,101,114,32,116,104,97,116,32,99,114, - 101,97,116,101,115,32,97,32,109,111,100,117,108,101,32,119, - 104,105,99,104,32,100,101,102,101,114,115,32,108,111,97,100, - 105,110,103,32,117,110,116,105,108,32,97,116,116,114,105,98, - 117,116,101,32,97,99,99,101,115,115,46,99,1,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,50,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,124,0,100,1,171,2,0,0,0,0,0,0,115,11,116, - 3,0,0,0,0,0,0,0,0,100,2,171,1,0,0,0, - 0,0,0,130,1,121,0,41,3,78,114,93,0,0,0,122, + 38,209,15,38,160,116,168,91,211,15,57,188,91,211,15,72, + 216,28,40,168,27,209,28,53,144,9,240,12,0,20,32,160, + 12,215,19,45,216,27,36,215,27,53,209,27,53,176,100,211, + 27,65,247,23,0,14,34,209,13,33,240,24,0,46,50,144, + 12,152,92,209,16,42,224,27,36,215,27,53,209,27,53,176, + 100,184,74,211,27,71,144,8,240,12,0,33,41,167,13,161, + 13,144,13,240,6,0,30,42,168,42,209,29,53,144,10,216, + 28,36,144,9,216,32,34,144,13,216,34,43,167,47,161,47, + 214,34,51,145,74,144,67,240,6,0,24,27,211,23,44,216, + 45,50,160,99,211,24,42,220,25,27,152,73,153,78,211,25, + 43,172,114,176,42,177,47,211,47,66,213,25,66,216,45,50, + 160,99,211,24,42,241,13,0,35,52,240,14,0,17,25,151, + 15,145,15,215,16,43,209,16,43,168,68,212,16,49,240,6, + 0,20,33,164,67,167,75,161,75,211,19,47,220,23,25,152, + 36,147,120,164,50,164,99,167,107,161,107,176,45,209,38,64, + 211,35,65,211,23,65,220,30,40,208,43,61,184,109,209,61, + 78,240,0,2,79,1,49,240,0,2,42,49,243,0,2,31, + 50,240,0,2,25,50,240,10,0,17,25,151,15,145,15,160, + 13,212,16,46,244,6,0,20,30,152,100,164,75,215,19,48, + 209,19,48,220,20,26,215,20,38,209,20,38,160,116,168,91, + 184,41,212,20,68,247,95,1,0,14,34,244,98,1,0,16, + 23,144,116,211,15,34,208,8,34,247,99,1,0,14,34,213, + 13,33,250,115,25,0,0,0,168,62,70,26,3,193,48,65, + 38,70,26,3,195,26,66,45,70,26,3,198,26,10,70,40, + 7,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,60,0,0,0,149,0,85,0,82, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,1,53,1,0,0,0,0,0,0,32,0,91, + 3,0,0,0,0,0,0,0,0,88,1,53,2,0,0,0, + 0,0,0,32,0,103,1,41,2,122,47,84,114,105,103,103, + 101,114,32,116,104,101,32,108,111,97,100,32,97,110,100,32, + 116,104,101,110,32,112,101,114,102,111,114,109,32,116,104,101, + 32,100,101,108,101,116,105,111,110,46,78,41,2,114,96,0, + 0,0,218,7,100,101,108,97,116,116,114,41,2,114,62,0, + 0,0,114,106,0,0,0,115,2,0,0,0,32,32,114,19, + 0,0,0,218,11,95,95,100,101,108,97,116,116,114,95,95, + 218,23,95,76,97,122,121,77,111,100,117,108,101,46,95,95, + 100,101,108,97,116,116,114,95,95,227,0,0,0,115,26,0, + 0,0,128,0,240,8,0,9,13,215,8,29,209,8,29,152, + 100,212,8,35,220,8,15,144,4,213,8,27,114,20,0,0, + 0,114,86,0,0,0,78,41,8,114,79,0,0,0,114,80, + 0,0,0,114,81,0,0,0,114,82,0,0,0,114,83,0, + 0,0,114,96,0,0,0,114,116,0,0,0,114,85,0,0, + 0,114,86,0,0,0,114,20,0,0,0,114,19,0,0,0, + 114,88,0,0,0,114,88,0,0,0,168,0,0,0,115,16, + 0,0,0,134,0,225,4,85,242,4,53,5,35,245,110,1, + 5,5,28,114,20,0,0,0,114,88,0,0,0,99,0,0, + 0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0, + 0,0,243,74,0,0,0,149,0,92,0,114,1,83,0,114, + 2,83,1,114,3,83,2,114,4,92,5,83,3,26,0,53, + 0,0,0,0,0,0,0,114,6,92,7,83,4,26,0,53, + 0,0,0,0,0,0,0,114,8,83,5,26,0,114,9,83, + 6,26,0,114,10,83,7,26,0,114,11,83,8,114,12,103, + 9,41,10,218,10,76,97,122,121,76,111,97,100,101,114,233, + 235,0,0,0,122,75,65,32,108,111,97,100,101,114,32,116, + 104,97,116,32,99,114,101,97,116,101,115,32,97,32,109,111, + 100,117,108,101,32,119,104,105,99,104,32,100,101,102,101,114, + 115,32,108,111,97,100,105,110,103,32,117,110,116,105,108,32, + 97,116,116,114,105,98,117,116,101,32,97,99,99,101,115,115, + 46,99,1,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,60,0,0,0,149,0,91,1,0, + 0,0,0,0,0,0,0,85,0,83,1,53,2,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,100,11,0,0,91, + 3,0,0,0,0,0,0,0,0,83,2,53,1,0,0,0, + 0,0,0,101,1,103,0,41,3,78,114,101,0,0,0,122, 32,108,111,97,100,101,114,32,109,117,115,116,32,100,101,102, 105,110,101,32,101,120,101,99,95,109,111,100,117,108,101,40, 41,41,2,218,7,104,97,115,97,116,116,114,218,9,84,121, - 112,101,69,114,114,111,114,41,1,114,92,0,0,0,115,1, + 112,101,69,114,114,111,114,169,1,114,100,0,0,0,115,1, 0,0,0,32,114,19,0,0,0,218,20,95,95,99,104,101, - 99,107,95,101,97,103,101,114,95,108,111,97,100,101,114,122, + 99,107,95,101,97,103,101,114,95,108,111,97,100,101,114,218, 31,76,97,122,121,76,111,97,100,101,114,46,95,95,99,104, 101,99,107,95,101,97,103,101,114,95,108,111,97,100,101,114, - 235,0,0,0,115,29,0,0,0,128,0,228,15,22,144,118, - 152,125,212,15,45,220,18,27,208,28,62,211,18,63,208,12, - 63,240,3,0,16,46,114,20,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 243,52,0,0,0,135,0,135,1,151,0,137,0,106,1,0, + 239,0,0,0,115,32,0,0,0,128,0,228,15,22,144,118, + 152,125,215,15,45,209,15,45,220,18,27,208,28,62,211,18, + 63,208,12,63,240,3,0,16,46,114,20,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, + 0,0,0,243,54,0,0,0,94,0,94,1,149,0,84,0, + 82,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,84,1,53,1,0,0,0,0,0,0,32,0, + 85,0,85,1,52,2,83,1,26,0,106,8,36,0,41,2, + 122,62,67,111,110,115,116,114,117,99,116,32,97,32,99,97, + 108,108,97,98,108,101,32,119,104,105,99,104,32,114,101,116, + 117,114,110,115,32,116,104,101,32,101,97,103,101,114,32,108, + 111,97,100,101,114,32,109,97,100,101,32,108,97,122,121,46, + 99,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0, + 0,31,0,0,0,243,32,0,0,0,62,2,149,0,84,2, + 34,0,84,3,34,0,85,0,48,0,85,1,68,1,54,1, + 53,1,0,0,0,0,0,0,36,0,114,59,0,0,0,114, + 86,0,0,0,41,4,114,73,0,0,0,218,6,107,119,97, + 114,103,115,218,3,99,108,115,114,100,0,0,0,115,4,0, + 0,0,32,32,128,128,114,19,0,0,0,218,8,60,108,97, + 109,98,100,97,62,218,36,76,97,122,121,76,111,97,100,101, + 114,46,102,97,99,116,111,114,121,46,60,108,111,99,97,108, + 115,62,46,60,108,97,109,98,100,97,62,248,0,0,0,115, + 20,0,0,0,248,128,0,161,115,169,54,176,52,208,43,66, + 184,54,209,43,66,212,39,67,114,20,0,0,0,41,1,218, + 31,95,76,97,122,121,76,111,97,100,101,114,95,95,99,104, + 101,99,107,95,101,97,103,101,114,95,108,111,97,100,101,114, + 41,2,114,130,0,0,0,114,100,0,0,0,115,2,0,0, + 0,96,96,114,19,0,0,0,218,7,102,97,99,116,111,114, + 121,218,18,76,97,122,121,76,111,97,100,101,114,46,102,97, + 99,116,111,114,121,244,0,0,0,115,25,0,0,0,249,128, + 0,240,6,0,9,12,215,8,32,209,8,32,160,22,212,8, + 40,221,15,67,208,8,67,114,20,0,0,0,99,2,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,243,50,0,0,0,149,0,85,0,82,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,1, + 53,1,0,0,0,0,0,0,32,0,88,16,108,1,0,0, + 0,0,0,0,0,0,103,0,114,59,0,0,0,41,2,114, + 133,0,0,0,114,100,0,0,0,41,2,114,62,0,0,0, + 114,100,0,0,0,115,2,0,0,0,32,32,114,19,0,0, + 0,114,63,0,0,0,218,19,76,97,122,121,76,111,97,100, + 101,114,46,95,95,105,110,105,116,95,95,250,0,0,0,115, + 21,0,0,0,128,0,216,8,12,215,8,33,209,8,33,160, + 38,212,8,41,216,22,28,141,11,114,20,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, + 0,0,0,243,56,0,0,0,149,0,85,0,82,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,137,1,171,1,0,0,0,0,0,0,1,0,136,0,136, - 1,102,2,100,1,132,8,83,0,41,2,122,62,67,111,110, - 115,116,114,117,99,116,32,97,32,99,97,108,108,97,98,108, - 101,32,119,104,105,99,104,32,114,101,116,117,114,110,115,32, - 116,104,101,32,101,97,103,101,114,32,108,111,97,100,101,114, - 32,109,97,100,101,32,108,97,122,121,46,99,0,0,0,0, - 0,0,0,0,0,0,0,0,7,0,0,0,31,0,0,0, - 243,32,0,0,0,149,2,151,0,2,0,137,2,2,0,137, - 3,124,0,105,0,124,1,164,1,142,1,171,1,0,0,0, - 0,0,0,83,0,114,58,0,0,0,114,79,0,0,0,41, - 4,114,70,0,0,0,218,6,107,119,97,114,103,115,218,3, - 99,108,115,114,92,0,0,0,115,4,0,0,0,32,32,128, - 128,114,19,0,0,0,218,8,60,108,97,109,98,100,97,62, - 122,36,76,97,122,121,76,111,97,100,101,114,46,102,97,99, - 116,111,114,121,46,60,108,111,99,97,108,115,62,46,60,108, - 97,109,98,100,97,62,244,0,0,0,115,20,0,0,0,248, - 128,0,161,115,169,54,176,52,208,43,66,184,54,209,43,66, - 212,39,67,114,20,0,0,0,41,1,218,31,95,76,97,122, - 121,76,111,97,100,101,114,95,95,99,104,101,99,107,95,101, - 97,103,101,114,95,108,111,97,100,101,114,41,2,114,117,0, - 0,0,114,92,0,0,0,115,2,0,0,0,96,96,114,19, - 0,0,0,218,7,102,97,99,116,111,114,121,122,18,76,97, - 122,121,76,111,97,100,101,114,46,102,97,99,116,111,114,121, - 240,0,0,0,115,25,0,0,0,249,128,0,240,6,0,9, - 12,215,8,32,209,8,32,160,22,212,8,40,220,15,67,208, - 8,67,114,20,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,243,52,0,0, - 0,151,0,124,0,106,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,1,0,124,1,124,0,95,1,0,0,0,0,0, - 0,0,0,121,0,114,58,0,0,0,41,2,114,119,0,0, - 0,114,92,0,0,0,41,2,114,61,0,0,0,114,92,0, - 0,0,115,2,0,0,0,32,32,114,19,0,0,0,114,62, - 0,0,0,122,19,76,97,122,121,76,111,97,100,101,114,46, - 95,95,105,110,105,116,95,95,246,0,0,0,115,23,0,0, - 0,128,0,216,8,12,215,8,33,209,8,33,160,38,212,8, - 41,216,22,28,136,4,141,11,114,20,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,56,0,0,0,151,0,124,0,106,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,1,171,1,0,0,0,0,0,0,83,0,114, - 58,0,0,0,41,2,114,92,0,0,0,218,13,99,114,101, - 97,116,101,95,109,111,100,117,108,101,41,2,114,61,0,0, - 0,114,41,0,0,0,115,2,0,0,0,32,32,114,19,0, - 0,0,114,123,0,0,0,122,24,76,97,122,121,76,111,97, - 100,101,114,46,99,114,101,97,116,101,95,109,111,100,117,108, - 101,250,0,0,0,115,23,0,0,0,128,0,216,15,19,143, - 123,137,123,215,15,40,209,15,40,168,20,211,15,46,208,8, - 46,114,20,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,243,40,1,0,0, - 151,0,100,1,100,2,108,0,125,2,124,0,106,2,0,0, + 82,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,1,53,1,0,0,0,0,0,0,36,0, + 114,59,0,0,0,41,2,114,100,0,0,0,218,13,99,114, + 101,97,116,101,95,109,111,100,117,108,101,41,2,114,62,0, + 0,0,114,41,0,0,0,115,2,0,0,0,32,32,114,19, + 0,0,0,114,139,0,0,0,218,24,76,97,122,121,76,111, + 97,100,101,114,46,99,114,101,97,116,101,95,109,111,100,117, + 108,101,254,0,0,0,115,23,0,0,0,128,0,216,15,19, + 143,123,137,123,215,15,40,209,15,40,168,20,211,15,46,208, + 8,46,114,20,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,3,0,0,0,243,38,1,0, + 0,149,0,83,1,83,2,75,0,110,2,85,0,82,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,95,1,0,0,0,0,0,0,0,0, - 124,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,95,3,0,0,0,0,0,0, - 0,0,105,0,125,3,124,1,106,8,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,11,0,0, + 0,85,1,82,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,108,1,0,0,0,0,0,0,0, + 0,85,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,1,108,3,0,0,0,0,0, + 0,0,0,48,0,110,3,85,1,82,8,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,11,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,124,3,100,3,60,0,0,0, - 124,1,106,12,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,3,100,4,60,0,0,0,124,2, - 106,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,124,3,100,5, - 60,0,0,0,100,6,124,3,100,7,60,0,0,0,124,3, - 124,1,106,4,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,95,8,0,0,0,0,0,0,0,0, - 116,18,0,0,0,0,0,0,0,0,124,1,95,6,0,0, - 0,0,0,0,0,0,121,2,41,8,122,28,77,97,107,101, - 32,116,104,101,32,109,111,100,117,108,101,32,108,111,97,100, - 32,108,97,122,105,108,121,46,114,14,0,0,0,78,114,86, - 0,0,0,114,84,0,0,0,114,83,0,0,0,70,114,85, - 0,0,0,41,10,218,9,116,104,114,101,97,100,105,110,103, - 114,92,0,0,0,114,36,0,0,0,218,10,95,95,108,111, - 97,100,101,114,95,95,114,86,0,0,0,218,4,99,111,112, - 121,114,84,0,0,0,218,5,82,76,111,99,107,114,89,0, - 0,0,114,81,0,0,0,41,4,114,61,0,0,0,114,40, - 0,0,0,114,125,0,0,0,114,89,0,0,0,115,4,0, - 0,0,32,32,32,32,114,19,0,0,0,114,93,0,0,0, - 122,22,76,97,122,121,76,111,97,100,101,114,46,101,120,101, - 99,95,109,111,100,117,108,101,253,0,0,0,115,128,0,0, - 0,128,0,243,8,0,9,25,216,33,37,167,27,161,27,136, - 6,143,15,137,15,212,8,30,216,28,32,159,75,153,75,136, - 6,212,8,25,240,10,0,24,26,136,12,216,35,41,167,63, - 161,63,215,35,55,209,35,55,211,35,57,136,12,144,90,209, - 8,32,216,36,42,215,36,52,209,36,52,136,12,144,91,209, - 8,33,216,31,40,159,127,153,127,211,31,48,136,12,144,86, - 209,8,28,216,37,42,136,12,144,92,209,8,34,216,39,51, - 136,6,143,15,137,15,212,8,36,220,27,38,136,6,213,8, - 24,114,20,0,0,0,78,41,11,114,74,0,0,0,114,75, - 0,0,0,114,76,0,0,0,114,77,0,0,0,218,12,115, - 116,97,116,105,99,109,101,116,104,111,100,114,119,0,0,0, - 218,11,99,108,97,115,115,109,101,116,104,111,100,114,120,0, - 0,0,114,62,0,0,0,114,123,0,0,0,114,93,0,0, - 0,114,79,0,0,0,114,20,0,0,0,114,19,0,0,0, - 114,109,0,0,0,114,109,0,0,0,231,0,0,0,115,62, - 0,0,0,132,0,225,4,85,224,5,17,241,2,2,5,64, - 1,243,3,0,6,18,240,2,2,5,64,1,240,8,0,6, - 17,241,2,3,5,68,1,243,3,0,6,17,240,2,3,5, - 68,1,242,10,2,5,29,242,8,1,5,47,243,6,17,5, - 39,114,20,0,0,0,114,109,0,0,0,114,58,0,0,0, - 41,26,114,77,0,0,0,218,4,95,97,98,99,114,3,0, - 0,0,218,10,95,98,111,111,116,115,116,114,97,112,114,4, - 0,0,0,114,5,0,0,0,114,6,0,0,0,114,7,0, - 0,0,218,19,95,98,111,111,116,115,116,114,97,112,95,101, - 120,116,101,114,110,97,108,114,8,0,0,0,114,9,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,12,0,0,0, - 114,13,0,0,0,114,16,0,0,0,114,34,0,0,0,114, - 95,0,0,0,114,17,0,0,0,114,30,0,0,0,114,42, - 0,0,0,114,54,0,0,0,114,56,0,0,0,114,96,0, - 0,0,114,81,0,0,0,114,109,0,0,0,114,79,0,0, - 0,114,20,0,0,0,114,19,0,0,0,218,8,60,109,111, - 100,117,108,101,62,114,134,0,0,0,1,0,0,0,115,113, - 0,0,0,240,3,1,1,1,217,0,51,221,0,24,221,0, - 40,221,0,37,221,0,40,221,0,34,221,0,45,221,0,50, - 221,0,50,221,0,46,221,0,50,221,0,56,227,0,11,219, - 0,10,219,0,12,242,6,2,1,61,242,10,12,1,55,243, - 30,28,1,24,243,62,42,1,24,247,98,1,46,1,47,241, - 0,46,1,47,244,98,1,60,1,28,144,37,215,18,34,209, - 18,34,244,0,60,1,28,244,126,1,39,1,39,144,22,245, - 0,39,1,39,114,20,0,0,0, + 0,53,0,0,0,0,0,0,0,85,3,83,3,39,0,0, + 0,85,1,82,12,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,3,83,4,39,0,0,0,85, + 2,82,15,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,85,3,83, + 5,39,0,0,0,83,6,85,3,83,7,39,0,0,0,88, + 49,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,108,8,0,0,0,0,0,0,0,0,91, + 18,0,0,0,0,0,0,0,0,85,1,108,6,0,0,0, + 0,0,0,0,0,103,2,41,8,122,28,77,97,107,101,32, + 116,104,101,32,109,111,100,117,108,101,32,108,111,97,100,32, + 108,97,122,105,108,121,46,114,14,0,0,0,78,114,94,0, + 0,0,114,92,0,0,0,114,91,0,0,0,70,114,93,0, + 0,0,41,10,218,9,116,104,114,101,97,100,105,110,103,114, + 100,0,0,0,114,36,0,0,0,218,10,95,95,108,111,97, + 100,101,114,95,95,114,94,0,0,0,218,4,99,111,112,121, + 114,92,0,0,0,218,5,82,76,111,99,107,114,97,0,0, + 0,114,88,0,0,0,41,4,114,62,0,0,0,114,40,0, + 0,0,114,142,0,0,0,114,97,0,0,0,115,4,0,0, + 0,32,32,32,32,114,19,0,0,0,114,101,0,0,0,218, + 22,76,97,122,121,76,111,97,100,101,114,46,101,120,101,99, + 95,109,111,100,117,108,101,1,1,0,0,115,126,0,0,0, + 128,0,243,8,0,9,25,216,33,37,167,27,161,27,136,6, + 143,15,137,15,212,8,30,216,28,32,159,75,153,75,136,6, + 212,8,25,240,10,0,24,26,136,12,216,35,41,167,63,161, + 63,215,35,55,209,35,55,211,35,57,136,12,144,90,209,8, + 32,216,36,42,215,36,52,209,36,52,136,12,144,91,209,8, + 33,216,31,40,159,127,153,127,211,31,48,136,12,144,86,209, + 8,28,216,37,42,136,12,144,92,209,8,34,216,39,51,143, + 15,137,15,212,8,36,220,27,38,136,6,213,8,24,114,20, + 0,0,0,114,124,0,0,0,78,41,13,114,79,0,0,0, + 114,80,0,0,0,114,81,0,0,0,114,82,0,0,0,114, + 83,0,0,0,218,12,115,116,97,116,105,99,109,101,116,104, + 111,100,114,133,0,0,0,218,11,99,108,97,115,115,109,101, + 116,104,111,100,114,134,0,0,0,114,63,0,0,0,114,139, + 0,0,0,114,101,0,0,0,114,85,0,0,0,114,86,0, + 0,0,114,20,0,0,0,114,19,0,0,0,114,119,0,0, + 0,114,119,0,0,0,235,0,0,0,115,62,0,0,0,134, + 0,225,4,85,224,5,17,241,2,2,5,64,1,243,3,0, + 6,18,240,2,2,5,64,1,240,8,0,6,17,241,2,3, + 5,68,1,243,3,0,6,17,240,2,3,5,68,1,242,10, + 2,5,29,242,8,1,5,47,245,6,17,5,39,114,20,0, + 0,0,114,119,0,0,0,114,59,0,0,0,41,26,114,83, + 0,0,0,218,4,95,97,98,99,114,3,0,0,0,218,10, + 95,98,111,111,116,115,116,114,97,112,114,4,0,0,0,114, + 5,0,0,0,114,6,0,0,0,114,7,0,0,0,218,19, + 95,98,111,111,116,115,116,114,97,112,95,101,120,116,101,114, + 110,97,108,114,8,0,0,0,114,9,0,0,0,114,10,0, + 0,0,114,11,0,0,0,114,12,0,0,0,114,13,0,0, + 0,114,16,0,0,0,114,34,0,0,0,218,5,116,121,112, + 101,115,114,17,0,0,0,114,30,0,0,0,114,42,0,0, + 0,114,54,0,0,0,114,56,0,0,0,218,10,77,111,100, + 117,108,101,84,121,112,101,114,88,0,0,0,114,119,0,0, + 0,114,86,0,0,0,114,20,0,0,0,114,19,0,0,0, + 218,8,60,109,111,100,117,108,101,62,114,154,0,0,0,1, + 0,0,0,115,115,0,0,0,240,3,1,1,1,217,0,51, + 221,0,24,221,0,40,221,0,37,221,0,40,221,0,34,221, + 0,45,221,0,50,221,0,50,221,0,46,221,0,50,221,0, + 56,227,0,11,219,0,10,219,0,12,242,6,2,1,61,242, + 10,12,1,55,244,30,28,1,24,244,62,42,1,24,247,98, + 1,46,1,47,241,0,46,1,47,244,98,1,64,1,1,28, + 144,37,215,18,34,209,18,34,244,0,64,1,1,28,244,70, + 2,39,1,39,144,22,245,0,39,1,39,114,20,0,0,0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/io.h b/contrib/tools/python3/Python/frozen_modules/io.h index 3ffb8db86f7..ac97836b02d 100644 --- a/contrib/tools/python3/Python/frozen_modules/io.h +++ b/contrib/tools/python3/Python/frozen_modules/io.h @@ -1,260 +1,269 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__io[] = { - 227,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0, - 0,0,0,0,0,243,32,2,0,0,151,0,100,0,90,0, - 100,1,90,1,103,0,100,2,162,1,90,2,100,3,100,4, - 108,3,90,3,100,3,100,4,108,4,90,4,100,3,100,5, - 108,3,109,5,90,5,109,6,90,6,109,7,90,7,109,8, - 90,8,109,9,90,9,109,10,90,10,109,11,90,11,109,12, - 90,12,109,13,90,13,109,14,90,14,109,15,90,15,109,16, - 90,16,109,17,90,17,109,18,90,18,109,19,90,19,1,0, - 100,6,101,7,95,20,0,0,0,0,0,0,0,0,100,3, - 90,21,100,7,90,22,100,8,90,23,2,0,71,0,100,9, - 132,0,100,10,101,3,106,48,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,101,4,106,50,0,0, + 227,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0, + 0,0,0,0,0,243,36,2,0,0,149,0,83,0,114,0, + 83,1,114,1,47,0,83,2,81,1,114,2,83,3,83,4, + 75,3,114,3,83,3,83,4,75,4,114,4,83,3,83,5, + 75,3,74,5,114,5,74,6,114,6,74,7,114,7,74,8, + 114,8,74,9,114,9,74,10,114,10,74,11,114,11,74,12, + 114,12,74,13,114,13,74,14,114,14,74,15,114,15,74,16, + 114,16,74,17,114,17,74,18,114,18,74,19,114,19,32,0, + 83,6,92,7,108,20,0,0,0,0,0,0,0,0,83,3, + 114,21,83,7,114,22,83,8,114,23,24,0,34,0,83,9, + 26,0,83,10,92,3,82,48,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,92,4,82,50,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 172,11,171,4,0,0,0,0,0,0,90,26,2,0,71,0, - 100,12,132,0,100,13,101,3,106,54,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,101,26,171,4, - 0,0,0,0,0,0,90,28,2,0,71,0,100,14,132,0, - 100,15,101,3,106,58,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,101,26,171,4,0,0,0,0, - 0,0,90,30,2,0,71,0,100,16,132,0,100,17,101,3, - 106,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,101,26,171,4,0,0,0,0,0,0,90,32, - 101,28,106,67,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,101,10,171,1,0,0,0,0,0,0, - 1,0,101,11,101,13,101,14,101,16,101,15,102,5,68,0, - 93,19,0,0,90,34,101,30,106,67,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,101,34,171,1, - 0,0,0,0,0,0,1,0,140,21,4,0,101,12,101,19, - 102,2,68,0,93,19,0,0,90,34,101,32,106,67,0,0, + 83,11,57,4,114,26,24,0,34,0,83,12,26,0,83,13, + 92,3,82,54,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,26,53,4,0,0,0,0,0,0, + 114,28,24,0,34,0,83,14,26,0,83,15,92,3,82,58, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 101,34,171,1,0,0,0,0,0,0,1,0,140,21,4,0, - 91,34,9,0,100,3,100,18,108,3,109,35,90,35,1,0, - 101,28,106,67,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,101,35,171,1,0,0,0,0,0,0, - 1,0,121,4,35,0,101,36,36,0,114,3,1,0,89,0, - 121,4,119,0,120,3,89,0,119,1,41,19,97,193,5,0, - 0,84,104,101,32,105,111,32,109,111,100,117,108,101,32,112, - 114,111,118,105,100,101,115,32,116,104,101,32,80,121,116,104, - 111,110,32,105,110,116,101,114,102,97,99,101,115,32,116,111, - 32,115,116,114,101,97,109,32,104,97,110,100,108,105,110,103, - 46,32,84,104,101,10,98,117,105,108,116,105,110,32,111,112, - 101,110,32,102,117,110,99,116,105,111,110,32,105,115,32,100, - 101,102,105,110,101,100,32,105,110,32,116,104,105,115,32,109, - 111,100,117,108,101,46,10,10,65,116,32,116,104,101,32,116, - 111,112,32,111,102,32,116,104,101,32,73,47,79,32,104,105, - 101,114,97,114,99,104,121,32,105,115,32,116,104,101,32,97, - 98,115,116,114,97,99,116,32,98,97,115,101,32,99,108,97, - 115,115,32,73,79,66,97,115,101,46,32,73,116,10,100,101, - 102,105,110,101,115,32,116,104,101,32,98,97,115,105,99,32, - 105,110,116,101,114,102,97,99,101,32,116,111,32,97,32,115, - 116,114,101,97,109,46,32,78,111,116,101,44,32,104,111,119, - 101,118,101,114,44,32,116,104,97,116,32,116,104,101,114,101, - 32,105,115,32,110,111,10,115,101,112,97,114,97,116,105,111, - 110,32,98,101,116,119,101,101,110,32,114,101,97,100,105,110, - 103,32,97,110,100,32,119,114,105,116,105,110,103,32,116,111, - 32,115,116,114,101,97,109,115,59,32,105,109,112,108,101,109, - 101,110,116,97,116,105,111,110,115,32,97,114,101,10,97,108, - 108,111,119,101,100,32,116,111,32,114,97,105,115,101,32,97, - 110,32,79,83,69,114,114,111,114,32,105,102,32,116,104,101, - 121,32,100,111,32,110,111,116,32,115,117,112,112,111,114,116, - 32,97,32,103,105,118,101,110,32,111,112,101,114,97,116,105, - 111,110,46,10,10,69,120,116,101,110,100,105,110,103,32,73, - 79,66,97,115,101,32,105,115,32,82,97,119,73,79,66,97, - 115,101,32,119,104,105,99,104,32,100,101,97,108,115,32,115, - 105,109,112,108,121,32,119,105,116,104,32,116,104,101,32,114, - 101,97,100,105,110,103,32,97,110,100,10,119,114,105,116,105, - 110,103,32,111,102,32,114,97,119,32,98,121,116,101,115,32, - 116,111,32,97,32,115,116,114,101,97,109,46,32,70,105,108, - 101,73,79,32,115,117,98,99,108,97,115,115,101,115,32,82, - 97,119,73,79,66,97,115,101,32,116,111,32,112,114,111,118, - 105,100,101,10,97,110,32,105,110,116,101,114,102,97,99,101, - 32,116,111,32,79,83,32,102,105,108,101,115,46,10,10,66, - 117,102,102,101,114,101,100,73,79,66,97,115,101,32,100,101, - 97,108,115,32,119,105,116,104,32,98,117,102,102,101,114,105, - 110,103,32,111,110,32,97,32,114,97,119,32,98,121,116,101, - 32,115,116,114,101,97,109,32,40,82,97,119,73,79,66,97, - 115,101,41,46,32,73,116,115,10,115,117,98,99,108,97,115, - 115,101,115,44,32,66,117,102,102,101,114,101,100,87,114,105, - 116,101,114,44,32,66,117,102,102,101,114,101,100,82,101,97, - 100,101,114,44,32,97,110,100,32,66,117,102,102,101,114,101, - 100,82,87,80,97,105,114,32,98,117,102,102,101,114,10,115, - 116,114,101,97,109,115,32,116,104,97,116,32,97,114,101,32, - 114,101,97,100,97,98,108,101,44,32,119,114,105,116,97,98, - 108,101,44,32,97,110,100,32,98,111,116,104,32,114,101,115, - 112,101,99,116,105,118,101,108,121,46,10,66,117,102,102,101, - 114,101,100,82,97,110,100,111,109,32,112,114,111,118,105,100, - 101,115,32,97,32,98,117,102,102,101,114,101,100,32,105,110, - 116,101,114,102,97,99,101,32,116,111,32,114,97,110,100,111, - 109,32,97,99,99,101,115,115,10,115,116,114,101,97,109,115, - 46,32,66,121,116,101,115,73,79,32,105,115,32,97,32,115, - 105,109,112,108,101,32,115,116,114,101,97,109,32,111,102,32, - 105,110,45,109,101,109,111,114,121,32,98,121,116,101,115,46, - 10,10,65,110,111,116,104,101,114,32,73,79,66,97,115,101, - 32,115,117,98,99,108,97,115,115,44,32,84,101,120,116,73, - 79,66,97,115,101,44,32,100,101,97,108,115,32,119,105,116, - 104,32,116,104,101,32,101,110,99,111,100,105,110,103,32,97, - 110,100,32,100,101,99,111,100,105,110,103,10,111,102,32,115, - 116,114,101,97,109,115,32,105,110,116,111,32,116,101,120,116, - 46,32,84,101,120,116,73,79,87,114,97,112,112,101,114,44, - 32,119,104,105,99,104,32,101,120,116,101,110,100,115,32,105, - 116,44,32,105,115,32,97,32,98,117,102,102,101,114,101,100, - 32,116,101,120,116,10,105,110,116,101,114,102,97,99,101,32, - 116,111,32,97,32,98,117,102,102,101,114,101,100,32,114,97, - 119,32,115,116,114,101,97,109,32,40,96,66,117,102,102,101, - 114,101,100,73,79,66,97,115,101,96,41,46,32,70,105,110, - 97,108,108,121,44,32,83,116,114,105,110,103,73,79,10,105, - 115,32,97,110,32,105,110,45,109,101,109,111,114,121,32,115, - 116,114,101,97,109,32,102,111,114,32,116,101,120,116,46,10, - 10,65,114,103,117,109,101,110,116,32,110,97,109,101,115,32, - 97,114,101,32,110,111,116,32,112,97,114,116,32,111,102,32, - 116,104,101,32,115,112,101,99,105,102,105,99,97,116,105,111, - 110,44,32,97,110,100,32,111,110,108,121,32,116,104,101,32, - 97,114,103,117,109,101,110,116,115,10,111,102,32,111,112,101, - 110,40,41,32,97,114,101,32,105,110,116,101,110,100,101,100, - 32,116,111,32,98,101,32,117,115,101,100,32,97,115,32,107, - 101,121,119,111,114,100,32,97,114,103,117,109,101,110,116,115, - 46,10,10,100,97,116,97,58,10,10,68,69,70,65,85,76, - 84,95,66,85,70,70,69,82,95,83,73,90,69,10,10,32, - 32,32,65,110,32,105,110,116,32,99,111,110,116,97,105,110, - 105,110,103,32,116,104,101,32,100,101,102,97,117,108,116,32, - 98,117,102,102,101,114,32,115,105,122,101,32,117,115,101,100, - 32,98,121,32,116,104,101,32,109,111,100,117,108,101,39,115, - 32,98,117,102,102,101,114,101,100,10,32,32,32,73,47,79, - 32,99,108,97,115,115,101,115,46,32,111,112,101,110,40,41, - 32,117,115,101,115,32,116,104,101,32,102,105,108,101,39,115, - 32,98,108,107,115,105,122,101,32,40,97,115,32,111,98,116, - 97,105,110,101,100,32,98,121,32,111,115,46,115,116,97,116, - 41,32,105,102,10,32,32,32,112,111,115,115,105,98,108,101, - 46,10,122,235,71,117,105,100,111,32,118,97,110,32,82,111, - 115,115,117,109,32,60,103,117,105,100,111,64,112,121,116,104, - 111,110,46,111,114,103,62,44,32,77,105,107,101,32,86,101, - 114,100,111,110,101,32,60,109,105,107,101,46,118,101,114,100, - 111,110,101,64,103,109,97,105,108,46,99,111,109,62,44,32, - 77,97,114,107,32,82,117,115,115,101,108,108,32,60,109,97, - 114,107,46,114,117,115,115,101,108,108,64,122,101,110,46,99, - 111,46,117,107,62,44,32,65,110,116,111,105,110,101,32,80, - 105,116,114,111,117,32,60,115,111,108,105,112,115,105,115,64, - 112,105,116,114,111,117,46,110,101,116,62,44,32,65,109,97, - 117,114,121,32,70,111,114,103,101,111,116,32,100,39,65,114, - 99,32,60,97,109,97,117,114,121,102,97,64,103,109,97,105, - 108,46,99,111,109,62,44,32,66,101,110,106,97,109,105,110, - 32,80,101,116,101,114,115,111,110,32,60,98,101,110,106,97, - 109,105,110,64,112,121,116,104,111,110,46,111,114,103,62,41, - 22,218,15,66,108,111,99,107,105,110,103,73,79,69,114,114, - 111,114,218,4,111,112,101,110,218,9,111,112,101,110,95,99, - 111,100,101,218,6,73,79,66,97,115,101,218,9,82,97,119, - 73,79,66,97,115,101,218,6,70,105,108,101,73,79,218,7, - 66,121,116,101,115,73,79,218,8,83,116,114,105,110,103,73, - 79,218,14,66,117,102,102,101,114,101,100,73,79,66,97,115, - 101,218,14,66,117,102,102,101,114,101,100,82,101,97,100,101, - 114,218,14,66,117,102,102,101,114,101,100,87,114,105,116,101, - 114,218,14,66,117,102,102,101,114,101,100,82,87,80,97,105, - 114,218,14,66,117,102,102,101,114,101,100,82,97,110,100,111, - 109,218,10,84,101,120,116,73,79,66,97,115,101,218,13,84, - 101,120,116,73,79,87,114,97,112,112,101,114,218,20,85,110, - 115,117,112,112,111,114,116,101,100,79,112,101,114,97,116,105, - 111,110,218,8,83,69,69,75,95,83,69,84,218,8,83,69, - 69,75,95,67,85,82,218,8,83,69,69,75,95,69,78,68, - 218,19,68,69,70,65,85,76,84,95,66,85,70,70,69,82, - 95,83,73,90,69,218,13,116,101,120,116,95,101,110,99,111, - 100,105,110,103,218,25,73,110,99,114,101,109,101,110,116,97, - 108,78,101,119,108,105,110,101,68,101,99,111,100,101,114,233, - 0,0,0,0,78,41,15,114,21,0,0,0,114,2,0,0, - 0,114,17,0,0,0,114,3,0,0,0,114,4,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,9,0,0,0,114, - 11,0,0,0,114,12,0,0,0,114,13,0,0,0,114,14, - 0,0,0,114,23,0,0,0,114,22,0,0,0,114,16,0, - 0,0,218,2,105,111,233,1,0,0,0,233,2,0,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,0,0,0,0,243,56,0,0,0,151,0,101,0,90,1, - 100,0,90,2,101,3,106,8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,10,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,5, - 121,1,41,2,114,5,0,0,0,78,41,6,218,8,95,95, - 110,97,109,101,95,95,218,10,95,95,109,111,100,117,108,101, - 95,95,218,12,95,95,113,117,97,108,110,97,109,101,95,95, - 218,3,95,105,111,218,7,95,73,79,66,97,115,101,218,7, - 95,95,100,111,99,95,95,169,0,243,0,0,0,0,250,11, - 60,102,114,111,122,101,110,32,105,111,62,114,5,0,0,0, - 114,5,0,0,0,72,0,0,0,115,17,0,0,0,132,0, - 216,14,17,143,107,137,107,215,14,33,209,14,33,129,71,114, - 36,0,0,0,114,5,0,0,0,41,1,218,9,109,101,116, - 97,99,108,97,115,115,99,0,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,0,0,0,0,243,56,0,0,0, - 151,0,101,0,90,1,100,0,90,2,101,3,106,8,0,0, + 0,0,92,26,53,4,0,0,0,0,0,0,114,30,24,0, + 34,0,83,16,26,0,83,17,92,3,82,62,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,26, + 53,4,0,0,0,0,0,0,114,32,92,28,82,67,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,90,5,121,1,41,2,114,6,0,0,0,78, - 41,6,114,29,0,0,0,114,30,0,0,0,114,31,0,0, - 0,114,32,0,0,0,218,10,95,82,97,119,73,79,66,97, - 115,101,114,34,0,0,0,114,35,0,0,0,114,36,0,0, - 0,114,37,0,0,0,114,6,0,0,0,114,6,0,0,0, - 75,0,0,0,115,17,0,0,0,132,0,216,14,17,143,110, - 137,110,215,14,36,209,14,36,129,71,114,36,0,0,0,114, - 6,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,1,0,0,0,0,0,0,0,243,56,0,0,0,151,0, - 101,0,90,1,100,0,90,2,101,3,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,10, + 92,10,53,1,0,0,0,0,0,0,32,0,92,11,92,13, + 92,14,92,16,92,15,52,5,19,0,72,20,0,0,114,34, + 92,30,82,67,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,92,34,53,1,0,0,0,0,0,0, + 32,0,77,22,0,0,11,0,32,0,92,12,92,19,52,2, + 19,0,72,20,0,0,114,34,92,32,82,67,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,34, + 53,1,0,0,0,0,0,0,32,0,77,22,0,0,11,0, + 32,0,67,34,30,0,83,3,83,18,75,3,74,35,114,35, + 32,0,92,28,82,67,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,92,35,53,1,0,0,0,0, + 0,0,32,0,103,4,33,0,92,36,7,0,97,3,0,0, + 32,0,31,0,103,4,102,0,61,3,31,0,102,1,41,19, + 97,193,5,0,0,84,104,101,32,105,111,32,109,111,100,117, + 108,101,32,112,114,111,118,105,100,101,115,32,116,104,101,32, + 80,121,116,104,111,110,32,105,110,116,101,114,102,97,99,101, + 115,32,116,111,32,115,116,114,101,97,109,32,104,97,110,100, + 108,105,110,103,46,32,84,104,101,10,98,117,105,108,116,105, + 110,32,111,112,101,110,32,102,117,110,99,116,105,111,110,32, + 105,115,32,100,101,102,105,110,101,100,32,105,110,32,116,104, + 105,115,32,109,111,100,117,108,101,46,10,10,65,116,32,116, + 104,101,32,116,111,112,32,111,102,32,116,104,101,32,73,47, + 79,32,104,105,101,114,97,114,99,104,121,32,105,115,32,116, + 104,101,32,97,98,115,116,114,97,99,116,32,98,97,115,101, + 32,99,108,97,115,115,32,73,79,66,97,115,101,46,32,73, + 116,10,100,101,102,105,110,101,115,32,116,104,101,32,98,97, + 115,105,99,32,105,110,116,101,114,102,97,99,101,32,116,111, + 32,97,32,115,116,114,101,97,109,46,32,78,111,116,101,44, + 32,104,111,119,101,118,101,114,44,32,116,104,97,116,32,116, + 104,101,114,101,32,105,115,32,110,111,10,115,101,112,97,114, + 97,116,105,111,110,32,98,101,116,119,101,101,110,32,114,101, + 97,100,105,110,103,32,97,110,100,32,119,114,105,116,105,110, + 103,32,116,111,32,115,116,114,101,97,109,115,59,32,105,109, + 112,108,101,109,101,110,116,97,116,105,111,110,115,32,97,114, + 101,10,97,108,108,111,119,101,100,32,116,111,32,114,97,105, + 115,101,32,97,110,32,79,83,69,114,114,111,114,32,105,102, + 32,116,104,101,121,32,100,111,32,110,111,116,32,115,117,112, + 112,111,114,116,32,97,32,103,105,118,101,110,32,111,112,101, + 114,97,116,105,111,110,46,10,10,69,120,116,101,110,100,105, + 110,103,32,73,79,66,97,115,101,32,105,115,32,82,97,119, + 73,79,66,97,115,101,32,119,104,105,99,104,32,100,101,97, + 108,115,32,115,105,109,112,108,121,32,119,105,116,104,32,116, + 104,101,32,114,101,97,100,105,110,103,32,97,110,100,10,119, + 114,105,116,105,110,103,32,111,102,32,114,97,119,32,98,121, + 116,101,115,32,116,111,32,97,32,115,116,114,101,97,109,46, + 32,70,105,108,101,73,79,32,115,117,98,99,108,97,115,115, + 101,115,32,82,97,119,73,79,66,97,115,101,32,116,111,32, + 112,114,111,118,105,100,101,10,97,110,32,105,110,116,101,114, + 102,97,99,101,32,116,111,32,79,83,32,102,105,108,101,115, + 46,10,10,66,117,102,102,101,114,101,100,73,79,66,97,115, + 101,32,100,101,97,108,115,32,119,105,116,104,32,98,117,102, + 102,101,114,105,110,103,32,111,110,32,97,32,114,97,119,32, + 98,121,116,101,32,115,116,114,101,97,109,32,40,82,97,119, + 73,79,66,97,115,101,41,46,32,73,116,115,10,115,117,98, + 99,108,97,115,115,101,115,44,32,66,117,102,102,101,114,101, + 100,87,114,105,116,101,114,44,32,66,117,102,102,101,114,101, + 100,82,101,97,100,101,114,44,32,97,110,100,32,66,117,102, + 102,101,114,101,100,82,87,80,97,105,114,32,98,117,102,102, + 101,114,10,115,116,114,101,97,109,115,32,116,104,97,116,32, + 97,114,101,32,114,101,97,100,97,98,108,101,44,32,119,114, + 105,116,97,98,108,101,44,32,97,110,100,32,98,111,116,104, + 32,114,101,115,112,101,99,116,105,118,101,108,121,46,10,66, + 117,102,102,101,114,101,100,82,97,110,100,111,109,32,112,114, + 111,118,105,100,101,115,32,97,32,98,117,102,102,101,114,101, + 100,32,105,110,116,101,114,102,97,99,101,32,116,111,32,114, + 97,110,100,111,109,32,97,99,99,101,115,115,10,115,116,114, + 101,97,109,115,46,32,66,121,116,101,115,73,79,32,105,115, + 32,97,32,115,105,109,112,108,101,32,115,116,114,101,97,109, + 32,111,102,32,105,110,45,109,101,109,111,114,121,32,98,121, + 116,101,115,46,10,10,65,110,111,116,104,101,114,32,73,79, + 66,97,115,101,32,115,117,98,99,108,97,115,115,44,32,84, + 101,120,116,73,79,66,97,115,101,44,32,100,101,97,108,115, + 32,119,105,116,104,32,116,104,101,32,101,110,99,111,100,105, + 110,103,32,97,110,100,32,100,101,99,111,100,105,110,103,10, + 111,102,32,115,116,114,101,97,109,115,32,105,110,116,111,32, + 116,101,120,116,46,32,84,101,120,116,73,79,87,114,97,112, + 112,101,114,44,32,119,104,105,99,104,32,101,120,116,101,110, + 100,115,32,105,116,44,32,105,115,32,97,32,98,117,102,102, + 101,114,101,100,32,116,101,120,116,10,105,110,116,101,114,102, + 97,99,101,32,116,111,32,97,32,98,117,102,102,101,114,101, + 100,32,114,97,119,32,115,116,114,101,97,109,32,40,96,66, + 117,102,102,101,114,101,100,73,79,66,97,115,101,96,41,46, + 32,70,105,110,97,108,108,121,44,32,83,116,114,105,110,103, + 73,79,10,105,115,32,97,110,32,105,110,45,109,101,109,111, + 114,121,32,115,116,114,101,97,109,32,102,111,114,32,116,101, + 120,116,46,10,10,65,114,103,117,109,101,110,116,32,110,97, + 109,101,115,32,97,114,101,32,110,111,116,32,112,97,114,116, + 32,111,102,32,116,104,101,32,115,112,101,99,105,102,105,99, + 97,116,105,111,110,44,32,97,110,100,32,111,110,108,121,32, + 116,104,101,32,97,114,103,117,109,101,110,116,115,10,111,102, + 32,111,112,101,110,40,41,32,97,114,101,32,105,110,116,101, + 110,100,101,100,32,116,111,32,98,101,32,117,115,101,100,32, + 97,115,32,107,101,121,119,111,114,100,32,97,114,103,117,109, + 101,110,116,115,46,10,10,100,97,116,97,58,10,10,68,69, + 70,65,85,76,84,95,66,85,70,70,69,82,95,83,73,90, + 69,10,10,32,32,32,65,110,32,105,110,116,32,99,111,110, + 116,97,105,110,105,110,103,32,116,104,101,32,100,101,102,97, + 117,108,116,32,98,117,102,102,101,114,32,115,105,122,101,32, + 117,115,101,100,32,98,121,32,116,104,101,32,109,111,100,117, + 108,101,39,115,32,98,117,102,102,101,114,101,100,10,32,32, + 32,73,47,79,32,99,108,97,115,115,101,115,46,32,111,112, + 101,110,40,41,32,117,115,101,115,32,116,104,101,32,102,105, + 108,101,39,115,32,98,108,107,115,105,122,101,32,40,97,115, + 32,111,98,116,97,105,110,101,100,32,98,121,32,111,115,46, + 115,116,97,116,41,32,105,102,10,32,32,32,112,111,115,115, + 105,98,108,101,46,10,122,235,71,117,105,100,111,32,118,97, + 110,32,82,111,115,115,117,109,32,60,103,117,105,100,111,64, + 112,121,116,104,111,110,46,111,114,103,62,44,32,77,105,107, + 101,32,86,101,114,100,111,110,101,32,60,109,105,107,101,46, + 118,101,114,100,111,110,101,64,103,109,97,105,108,46,99,111, + 109,62,44,32,77,97,114,107,32,82,117,115,115,101,108,108, + 32,60,109,97,114,107,46,114,117,115,115,101,108,108,64,122, + 101,110,46,99,111,46,117,107,62,44,32,65,110,116,111,105, + 110,101,32,80,105,116,114,111,117,32,60,115,111,108,105,112, + 115,105,115,64,112,105,116,114,111,117,46,110,101,116,62,44, + 32,65,109,97,117,114,121,32,70,111,114,103,101,111,116,32, + 100,39,65,114,99,32,60,97,109,97,117,114,121,102,97,64, + 103,109,97,105,108,46,99,111,109,62,44,32,66,101,110,106, + 97,109,105,110,32,80,101,116,101,114,115,111,110,32,60,98, + 101,110,106,97,109,105,110,64,112,121,116,104,111,110,46,111, + 114,103,62,41,22,218,15,66,108,111,99,107,105,110,103,73, + 79,69,114,114,111,114,218,4,111,112,101,110,218,9,111,112, + 101,110,95,99,111,100,101,218,6,73,79,66,97,115,101,218, + 9,82,97,119,73,79,66,97,115,101,218,6,70,105,108,101, + 73,79,218,7,66,121,116,101,115,73,79,218,8,83,116,114, + 105,110,103,73,79,218,14,66,117,102,102,101,114,101,100,73, + 79,66,97,115,101,218,14,66,117,102,102,101,114,101,100,82, + 101,97,100,101,114,218,14,66,117,102,102,101,114,101,100,87, + 114,105,116,101,114,218,14,66,117,102,102,101,114,101,100,82, + 87,80,97,105,114,218,14,66,117,102,102,101,114,101,100,82, + 97,110,100,111,109,218,10,84,101,120,116,73,79,66,97,115, + 101,218,13,84,101,120,116,73,79,87,114,97,112,112,101,114, + 218,20,85,110,115,117,112,112,111,114,116,101,100,79,112,101, + 114,97,116,105,111,110,218,8,83,69,69,75,95,83,69,84, + 218,8,83,69,69,75,95,67,85,82,218,8,83,69,69,75, + 95,69,78,68,218,19,68,69,70,65,85,76,84,95,66,85, + 70,70,69,82,95,83,73,90,69,218,13,116,101,120,116,95, + 101,110,99,111,100,105,110,103,218,25,73,110,99,114,101,109, + 101,110,116,97,108,78,101,119,108,105,110,101,68,101,99,111, + 100,101,114,233,0,0,0,0,78,41,15,114,21,0,0,0, + 114,2,0,0,0,114,17,0,0,0,114,3,0,0,0,114, + 4,0,0,0,114,7,0,0,0,114,8,0,0,0,114,9, + 0,0,0,114,11,0,0,0,114,12,0,0,0,114,13,0, + 0,0,114,14,0,0,0,114,23,0,0,0,114,22,0,0, + 0,114,16,0,0,0,218,2,105,111,233,1,0,0,0,233, + 2,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,0,0,0,0,243,64,0,0,0,149,0, + 92,0,114,1,83,0,114,2,83,1,114,3,92,4,82,10, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,90,5,121,1,41,2,114,10,0,0,0,78,41,6, - 114,29,0,0,0,114,30,0,0,0,114,31,0,0,0,114, - 32,0,0,0,218,15,95,66,117,102,102,101,114,101,100,73, - 79,66,97,115,101,114,34,0,0,0,114,35,0,0,0,114, - 36,0,0,0,114,37,0,0,0,114,10,0,0,0,114,10, - 0,0,0,78,0,0,0,115,19,0,0,0,132,0,216,14, - 17,215,14,33,209,14,33,215,14,41,209,14,41,129,71,114, - 36,0,0,0,114,10,0,0,0,99,0,0,0,0,0,0, - 0,0,0,0,0,0,1,0,0,0,0,0,0,0,243,56, - 0,0,0,151,0,101,0,90,1,100,0,90,2,101,3,106, - 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,10,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,90,5,121,1,41,2,114,15,0, - 0,0,78,41,6,114,29,0,0,0,114,30,0,0,0,114, - 31,0,0,0,114,32,0,0,0,218,11,95,84,101,120,116, - 73,79,66,97,115,101,114,34,0,0,0,114,35,0,0,0, - 114,36,0,0,0,114,37,0,0,0,114,15,0,0,0,114, - 15,0,0,0,81,0,0,0,115,17,0,0,0,132,0,216, - 14,17,143,111,137,111,215,14,37,209,14,37,129,71,114,36, - 0,0,0,114,15,0,0,0,41,1,218,17,95,87,105,110, - 100,111,119,115,67,111,110,115,111,108,101,73,79,41,37,114, - 34,0,0,0,218,10,95,95,97,117,116,104,111,114,95,95, - 218,7,95,95,97,108,108,95,95,114,32,0,0,0,218,3, - 97,98,99,114,21,0,0,0,114,2,0,0,0,114,17,0, - 0,0,114,3,0,0,0,114,4,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,9,0,0,0,114,11,0,0,0, - 114,12,0,0,0,114,13,0,0,0,114,14,0,0,0,114, - 23,0,0,0,114,22,0,0,0,114,16,0,0,0,114,30, - 0,0,0,114,18,0,0,0,114,19,0,0,0,114,20,0, - 0,0,114,33,0,0,0,218,7,65,66,67,77,101,116,97, - 114,5,0,0,0,114,40,0,0,0,114,6,0,0,0,114, - 42,0,0,0,114,10,0,0,0,114,44,0,0,0,114,15, - 0,0,0,218,8,114,101,103,105,115,116,101,114,218,5,107, - 108,97,115,115,114,45,0,0,0,218,11,73,109,112,111,114, - 116,69,114,114,111,114,114,35,0,0,0,114,36,0,0,0, - 114,37,0,0,0,218,8,60,109,111,100,117,108,101,62,114, - 53,0,0,0,1,0,0,0,115,47,1,0,0,240,3,1, - 1,1,241,2,33,1,4,240,72,1,5,15,56,128,10,242, - 14,5,11,80,1,128,7,243,16,0,1,11,219,0,10,247, - 4,3,1,74,1,247,0,3,1,74,1,247,0,3,1,74, - 1,247,0,3,1,74,1,241,0,3,1,74,1,240,14,0, - 35,39,208,0,20,212,0,31,240,6,0,12,13,128,8,216, - 11,12,128,8,216,11,12,128,8,244,10,1,1,34,136,83, - 143,91,137,91,160,67,167,75,161,75,245,0,1,1,34,244, - 6,1,1,37,144,3,151,14,145,14,160,6,244,0,1,1, - 37,244,6,1,1,42,144,83,215,21,40,209,21,40,168,38, - 244,0,1,1,42,244,6,1,1,38,144,19,151,31,145,31, - 160,38,244,0,1,1,38,240,6,0,1,10,215,0,18,209, - 0,18,144,54,212,0,26,224,14,21,144,126,160,126,176,126, - 216,14,28,243,3,1,14,30,128,69,224,4,18,215,4,27, - 209,4,27,152,69,213,4,34,240,5,1,14,30,240,8,0, - 15,23,152,13,211,13,38,128,69,216,4,14,215,4,23,209, - 4,23,152,5,213,4,30,240,3,0,14,39,224,4,9,240, - 4,5,1,42,221,4,37,240,8,0,5,14,215,4,22,209, - 4,22,208,23,40,213,4,41,248,240,7,0,8,19,242,0, - 1,1,9,217,4,8,240,3,1,1,9,250,115,18,0,0, - 0,195,45,6,68,5,0,196,5,5,68,13,3,196,12,1, - 68,13,3, + 0,0,82,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,114,6,83,2,114,7,103,3,41,4, + 114,5,0,0,0,233,72,0,0,0,169,0,78,41,8,218, + 8,95,95,110,97,109,101,95,95,218,10,95,95,109,111,100, + 117,108,101,95,95,218,12,95,95,113,117,97,108,110,97,109, + 101,95,95,218,15,95,95,102,105,114,115,116,108,105,110,101, + 110,111,95,95,218,3,95,105,111,218,7,95,73,79,66,97, + 115,101,218,7,95,95,100,111,99,95,95,218,21,95,95,115, + 116,97,116,105,99,95,97,116,116,114,105,98,117,116,101,115, + 95,95,114,30,0,0,0,243,0,0,0,0,218,11,60,102, + 114,111,122,101,110,32,105,111,62,114,5,0,0,0,114,5, + 0,0,0,72,0,0,0,115,17,0,0,0,134,0,216,14, + 17,143,107,137,107,215,14,33,209,14,33,131,71,114,39,0, + 0,0,114,5,0,0,0,41,1,218,9,109,101,116,97,99, + 108,97,115,115,99,0,0,0,0,0,0,0,0,0,0,0, + 0,1,0,0,0,0,0,0,0,243,64,0,0,0,149,0, + 92,0,114,1,83,0,114,2,83,1,114,3,92,4,82,10, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,82,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,114,6,83,2,114,7,103,3,41,4, + 114,6,0,0,0,233,75,0,0,0,114,30,0,0,0,78, + 41,8,114,31,0,0,0,114,32,0,0,0,114,33,0,0, + 0,114,34,0,0,0,114,35,0,0,0,218,10,95,82,97, + 119,73,79,66,97,115,101,114,37,0,0,0,114,38,0,0, + 0,114,30,0,0,0,114,39,0,0,0,114,40,0,0,0, + 114,6,0,0,0,114,6,0,0,0,75,0,0,0,115,17, + 0,0,0,134,0,216,14,17,143,110,137,110,215,14,36,209, + 14,36,131,71,114,39,0,0,0,114,6,0,0,0,99,0, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, + 0,0,0,243,64,0,0,0,149,0,92,0,114,1,83,0, + 114,2,83,1,114,3,92,4,82,10,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,82,12,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 114,6,83,2,114,7,103,3,41,4,114,10,0,0,0,233, + 78,0,0,0,114,30,0,0,0,78,41,8,114,31,0,0, + 0,114,32,0,0,0,114,33,0,0,0,114,34,0,0,0, + 114,35,0,0,0,218,15,95,66,117,102,102,101,114,101,100, + 73,79,66,97,115,101,114,37,0,0,0,114,38,0,0,0, + 114,30,0,0,0,114,39,0,0,0,114,40,0,0,0,114, + 10,0,0,0,114,10,0,0,0,78,0,0,0,115,19,0, + 0,0,134,0,216,14,17,215,14,33,209,14,33,215,14,41, + 209,14,41,131,71,114,39,0,0,0,114,10,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 0,0,0,0,243,64,0,0,0,149,0,92,0,114,1,83, + 0,114,2,83,1,114,3,92,4,82,10,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,12,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,114,6,83,2,114,7,103,3,41,4,114,15,0,0,0, + 233,81,0,0,0,114,30,0,0,0,78,41,8,114,31,0, + 0,0,114,32,0,0,0,114,33,0,0,0,114,34,0,0, + 0,114,35,0,0,0,218,11,95,84,101,120,116,73,79,66, + 97,115,101,114,37,0,0,0,114,38,0,0,0,114,30,0, + 0,0,114,39,0,0,0,114,40,0,0,0,114,15,0,0, + 0,114,15,0,0,0,81,0,0,0,115,17,0,0,0,134, + 0,216,14,17,143,111,137,111,215,14,37,209,14,37,131,71, + 114,39,0,0,0,114,15,0,0,0,41,1,218,17,95,87, + 105,110,100,111,119,115,67,111,110,115,111,108,101,73,79,41, + 37,114,37,0,0,0,218,10,95,95,97,117,116,104,111,114, + 95,95,218,7,95,95,97,108,108,95,95,114,35,0,0,0, + 218,3,97,98,99,114,21,0,0,0,114,2,0,0,0,114, + 17,0,0,0,114,3,0,0,0,114,4,0,0,0,114,7, + 0,0,0,114,8,0,0,0,114,9,0,0,0,114,11,0, + 0,0,114,12,0,0,0,114,13,0,0,0,114,14,0,0, + 0,114,23,0,0,0,114,22,0,0,0,114,16,0,0,0, + 114,32,0,0,0,114,18,0,0,0,114,19,0,0,0,114, + 20,0,0,0,114,36,0,0,0,218,7,65,66,67,77,101, + 116,97,114,5,0,0,0,114,44,0,0,0,114,6,0,0, + 0,114,47,0,0,0,114,10,0,0,0,114,50,0,0,0, + 114,15,0,0,0,218,8,114,101,103,105,115,116,101,114,218, + 5,107,108,97,115,115,114,51,0,0,0,218,11,73,109,112, + 111,114,116,69,114,114,111,114,114,30,0,0,0,114,39,0, + 0,0,114,40,0,0,0,218,8,60,109,111,100,117,108,101, + 62,114,59,0,0,0,1,0,0,0,115,47,1,0,0,240, + 3,1,1,1,241,2,33,1,4,240,72,1,5,15,56,128, + 10,242,14,5,11,80,1,128,7,243,16,0,1,11,219,0, + 10,247,4,3,1,74,1,247,0,3,1,74,1,247,0,3, + 1,74,1,247,0,3,1,74,1,241,0,3,1,74,1,240, + 14,0,35,39,208,0,20,212,0,31,240,6,0,12,13,128, + 8,216,11,12,128,8,216,11,12,128,8,244,10,1,1,34, + 136,83,143,91,137,91,160,67,167,75,161,75,242,0,1,1, + 34,244,6,1,1,37,144,3,151,14,145,14,160,6,244,0, + 1,1,37,244,6,1,1,42,144,83,215,21,40,209,21,40, + 168,38,244,0,1,1,42,244,6,1,1,38,144,19,151,31, + 145,31,160,38,244,0,1,1,38,240,6,0,1,10,215,0, + 18,209,0,18,144,54,212,0,26,224,14,21,144,126,160,126, + 176,126,216,14,28,243,3,1,14,30,128,69,224,4,18,215, + 4,27,209,4,27,152,69,214,4,34,241,5,1,14,30,240, + 8,0,15,23,152,13,211,13,38,128,69,216,4,14,215,4, + 23,209,4,23,152,5,214,4,30,241,3,0,14,39,224,4, + 9,240,4,5,1,42,221,4,37,240,8,0,5,14,215,4, + 22,209,4,22,208,23,40,213,4,41,248,240,7,0,8,19, + 243,0,1,1,9,217,4,8,240,3,1,1,9,250,115,18, + 0,0,0,195,46,6,68,6,0,196,6,6,68,15,3,196, + 14,1,68,15,3, }; diff --git a/contrib/tools/python3/Python/frozen_modules/ntpath.h b/contrib/tools/python3/Python/frozen_modules/ntpath.h index 96d6d6b8719..1a4752d134d 100644 --- a/contrib/tools/python3/Python/frozen_modules/ntpath.h +++ b/contrib/tools/python3/Python/frozen_modules/ntpath.h @@ -1,1717 +1,1702 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__ntpath[] = { - 227,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,0,0,0,0,243,170,2,0,0,151,0,100,0,90,0, - 100,1,90,1,100,2,90,2,100,1,90,3,100,3,90,4, - 100,4,90,5,100,5,90,6,100,6,90,7,100,7,90,8, - 100,8,100,9,108,9,90,9,100,8,100,9,108,10,90,10, - 100,8,100,9,108,11,90,11,100,8,100,9,108,12,90,12, - 100,8,100,10,108,12,173,2,1,0,103,0,100,11,162,1, - 90,13,100,12,132,0,90,14,9,0,100,8,100,13,108,15, - 109,16,90,17,109,18,90,19,109,20,90,21,1,0,100,14, - 132,0,90,22,100,16,132,0,90,24,100,17,132,0,90,25, - 100,18,132,0,90,26,100,19,132,0,90,27,100,20,132,0, - 90,28,100,21,132,0,90,29,101,12,106,60,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,0, + 227,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0, + 0,0,0,0,0,243,188,3,0,0,149,0,83,0,114,0, + 83,1,114,1,83,2,114,2,83,1,114,3,83,3,114,4, + 83,4,114,5,83,5,114,6,83,6,114,7,83,7,114,8, + 83,8,83,9,75,9,114,9,83,8,83,9,75,10,114,10, + 83,8,83,9,75,11,114,11,83,8,83,10,75,11,55,2, + 32,0,47,0,83,11,81,1,114,12,83,12,26,0,114,13, + 30,0,83,8,83,13,75,14,74,15,114,16,74,17,114,18, + 74,19,114,20,32,0,83,14,26,0,114,21,83,16,26,0, + 114,23,83,17,26,0,114,24,83,18,26,0,114,25,30,0, + 83,8,83,19,75,26,74,27,114,28,32,0,83,21,26,0, + 114,29,83,22,26,0,114,30,92,11,82,62,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,101,29,95,0,0,0,0,0,0,0,0,0,100,22, - 132,0,90,31,100,23,132,0,90,32,2,0,101,33,101,9, - 106,68,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,24,171,2,0,0,0,0,0,0,114,4, - 100,25,132,0,90,35,110,3,100,26,132,0,90,35,100,27, - 132,0,90,36,9,0,100,8,100,28,108,37,109,38,90,38, - 1,0,100,29,132,0,90,39,100,30,132,0,90,40,100,31, - 132,0,90,41,9,0,100,8,100,32,108,37,109,42,90,43, - 1,0,9,0,100,8,100,34,108,37,109,44,90,44,1,0, - 100,35,132,0,90,45,9,0,100,8,100,37,108,37,109,46, - 90,46,109,47,90,48,1,0,101,49,102,1,100,38,132,1, - 90,50,101,49,102,1,100,39,132,1,90,51,100,40,100,41, - 156,1,100,42,132,2,90,52,100,44,90,53,100,54,100,45, - 132,1,90,54,100,46,132,0,90,55,9,0,100,8,100,47, - 108,37,109,56,90,57,1,0,100,8,100,48,108,37,109,58, - 90,59,1,0,100,8,100,49,108,37,109,60,90,61,1,0, - 100,8,100,50,108,37,109,62,90,63,1,0,9,0,100,8, - 100,51,108,37,109,64,90,64,1,0,100,52,132,0,90,65, - 121,9,35,0,101,23,36,0,114,6,1,0,100,15,132,0, - 90,22,89,0,140,193,119,0,120,3,89,0,119,1,35,0, - 101,23,36,0,114,5,1,0,100,9,90,38,89,0,140,119, - 119,0,120,3,89,0,119,1,35,0,101,23,36,0,114,6, - 1,0,100,33,132,0,90,43,89,0,140,117,119,0,120,3, - 89,0,119,1,35,0,101,23,36,0,114,6,1,0,100,36, - 132,0,90,45,89,0,140,121,119,0,120,3,89,0,119,1, - 35,0,101,23,36,0,114,9,1,0,100,40,100,41,156,1, - 100,43,132,2,90,52,89,0,140,113,119,0,120,3,89,0, - 119,1,35,0,101,23,36,0,114,3,1,0,89,0,140,90, - 119,0,120,3,89,0,119,1,35,0,101,23,36,0,114,6, - 1,0,100,53,132,0,90,65,89,0,121,9,119,0,120,3, - 89,0,119,1,41,55,122,144,67,111,109,109,111,110,32,112, - 97,116,104,110,97,109,101,32,109,97,110,105,112,117,108,97, - 116,105,111,110,115,44,32,87,105,110,100,111,119,115,78,84, - 47,57,53,32,118,101,114,115,105,111,110,46,10,10,73,110, - 115,116,101,97,100,32,111,102,32,105,109,112,111,114,116,105, - 110,103,32,116,104,105,115,32,109,111,100,117,108,101,32,100, - 105,114,101,99,116,108,121,44,32,105,109,112,111,114,116,32, - 111,115,32,97,110,100,32,114,101,102,101,114,32,116,111,32, - 116,104,105,115,10,109,111,100,117,108,101,32,97,115,32,111, - 115,46,112,97,116,104,46,10,218,1,46,250,2,46,46,218, - 1,92,218,1,59,218,1,47,122,8,46,59,67,58,92,98, - 105,110,218,3,110,117,108,233,0,0,0,0,78,41,1,218, - 1,42,41,41,218,8,110,111,114,109,99,97,115,101,218,5, - 105,115,97,98,115,218,4,106,111,105,110,218,10,115,112,108, - 105,116,100,114,105,118,101,218,9,115,112,108,105,116,114,111, - 111,116,218,5,115,112,108,105,116,218,8,115,112,108,105,116, - 101,120,116,218,8,98,97,115,101,110,97,109,101,218,7,100, - 105,114,110,97,109,101,218,12,99,111,109,109,111,110,112,114, - 101,102,105,120,218,7,103,101,116,115,105,122,101,218,8,103, - 101,116,109,116,105,109,101,218,8,103,101,116,97,116,105,109, - 101,218,8,103,101,116,99,116,105,109,101,218,6,105,115,108, - 105,110,107,218,6,101,120,105,115,116,115,218,7,108,101,120, - 105,115,116,115,218,5,105,115,100,105,114,218,6,105,115,102, - 105,108,101,218,7,105,115,109,111,117,110,116,218,10,101,120, - 112,97,110,100,117,115,101,114,218,10,101,120,112,97,110,100, - 118,97,114,115,218,8,110,111,114,109,112,97,116,104,218,7, - 97,98,115,112,97,116,104,218,6,99,117,114,100,105,114,218, - 6,112,97,114,100,105,114,218,3,115,101,112,218,7,112,97, - 116,104,115,101,112,218,7,100,101,102,112,97,116,104,218,6, - 97,108,116,115,101,112,218,6,101,120,116,115,101,112,218,7, - 100,101,118,110,117,108,108,218,8,114,101,97,108,112,97,116, - 104,218,26,115,117,112,112,111,114,116,115,95,117,110,105,99, - 111,100,101,95,102,105,108,101,110,97,109,101,115,218,7,114, - 101,108,112,97,116,104,218,8,115,97,109,101,102,105,108,101, - 218,12,115,97,109,101,111,112,101,110,102,105,108,101,218,8, - 115,97,109,101,115,116,97,116,218,10,99,111,109,109,111,110, - 112,97,116,104,218,10,105,115,106,117,110,99,116,105,111,110, - 218,13,65,76,76,79,87,95,77,73,83,83,73,78,71,99, - 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,38,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,116,2,0,0,0,0,0,0,0, - 0,171,2,0,0,0,0,0,0,114,1,121,1,121,2,41, - 3,78,243,2,0,0,0,92,47,250,2,92,47,41,2,218, - 10,105,115,105,110,115,116,97,110,99,101,218,5,98,121,116, - 101,115,169,1,218,4,112,97,116,104,115,1,0,0,0,32, - 250,15,60,102,114,111,122,101,110,32,110,116,112,97,116,104, - 62,218,13,95,103,101,116,95,98,111,116,104,115,101,112,115, - 114,59,0,0,0,36,0,0,0,115,18,0,0,0,128,0, - 220,7,17,144,36,156,5,212,7,30,216,15,21,224,15,20, - 243,0,0,0,0,41,3,218,13,76,67,77,97,112,83,116, - 114,105,110,103,69,120,218,21,76,79,67,65,76,69,95,78, - 65,77,69,95,73,78,86,65,82,73,65,78,84,218,15,76, - 67,77,65,80,95,76,79,87,69,82,67,65,83,69,99,1, - 0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,3, - 0,0,0,243,88,1,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,125,0,124,0,115,2,124,0,83,0,116,5,0,0, - 0,0,0,0,0,0,124,0,116,6,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,114,93,116,9,0,0, - 0,0,0,0,0,0,106,10,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,125,1,124,0,106,13,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,100,1,171,2, - 0,0,0,0,0,0,106,15,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,2,100,3,171,2, - 0,0,0,0,0,0,125,0,116,17,0,0,0,0,0,0, - 0,0,116,18,0,0,0,0,0,0,0,0,116,20,0,0, - 0,0,0,0,0,0,124,0,171,3,0,0,0,0,0,0, - 125,0,124,0,106,23,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,100,1,171,2,0,0, - 0,0,0,0,83,0,116,17,0,0,0,0,0,0,0,0, - 116,18,0,0,0,0,0,0,0,0,116,20,0,0,0,0, - 0,0,0,0,124,0,106,15,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,2,100,3,171,2, - 0,0,0,0,0,0,171,3,0,0,0,0,0,0,83,0, - 41,4,250,110,78,111,114,109,97,108,105,122,101,32,99,97, - 115,101,32,111,102,32,112,97,116,104,110,97,109,101,46,10, - 10,32,32,32,32,32,32,32,32,77,97,107,101,115,32,97, - 108,108,32,99,104,97,114,97,99,116,101,114,115,32,108,111, - 119,101,114,99,97,115,101,32,97,110,100,32,97,108,108,32, - 115,108,97,115,104,101,115,32,105,110,116,111,32,98,97,99, - 107,115,108,97,115,104,101,115,46,10,32,32,32,32,32,32, - 32,32,218,15,115,117,114,114,111,103,97,116,101,101,115,99, - 97,112,101,114,6,0,0,0,114,4,0,0,0,41,12,218, - 2,111,115,218,6,102,115,112,97,116,104,114,54,0,0,0, - 114,55,0,0,0,218,3,115,121,115,218,21,103,101,116,102, - 105,108,101,115,121,115,116,101,109,101,110,99,111,100,105,110, - 103,218,6,100,101,99,111,100,101,218,7,114,101,112,108,97, - 99,101,218,14,95,76,67,77,97,112,83,116,114,105,110,103, - 69,120,218,22,95,76,79,67,65,76,69,95,78,65,77,69, - 95,73,78,86,65,82,73,65,78,84,218,16,95,76,67,77, - 65,80,95,76,79,87,69,82,67,65,83,69,218,6,101,110, - 99,111,100,101,41,2,218,1,115,218,8,101,110,99,111,100, - 105,110,103,115,2,0,0,0,32,32,114,58,0,0,0,114, - 10,0,0,0,114,10,0,0,0,52,0,0,0,115,148,0, - 0,0,128,0,244,10,0,13,15,143,73,137,73,144,97,139, - 76,136,1,217,15,16,216,19,20,136,72,220,11,21,144,97, - 156,21,212,11,31,220,23,26,215,23,48,209,23,48,211,23, - 50,136,72,216,16,17,151,8,145,8,152,24,208,35,52,211, - 16,53,215,16,61,209,16,61,184,99,192,52,211,16,72,136, - 65,220,16,30,212,31,53,220,31,47,176,17,243,3,1,17, - 52,136,65,224,19,20,151,56,145,56,152,72,208,38,55,211, - 19,56,208,12,56,228,19,33,212,34,56,220,34,50,216,34, - 35,167,41,161,41,168,67,176,20,211,34,54,243,5,2,20, - 56,240,0,2,13,56,114,60,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,6,0,0,0,3,0,0,0, - 243,24,1,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,125, - 0,116,5,0,0,0,0,0,0,0,0,124,0,116,6,0, - 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,114, - 70,116,1,0,0,0,0,0,0,0,0,106,8,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116, - 1,0,0,0,0,0,0,0,0,106,10,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,106,13,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,1,100,2,171, - 2,0,0,0,0,0,0,106,15,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,83,0,124,0,106, - 13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,1,100,2,171,2,0,0,0,0,0,0,106, - 15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,83,0,41,3,114, - 65,0,0,0,114,6,0,0,0,114,4,0,0,0,41,8, - 114,67,0,0,0,114,68,0,0,0,114,54,0,0,0,114, - 55,0,0,0,218,8,102,115,101,110,99,111,100,101,218,8, - 102,115,100,101,99,111,100,101,114,72,0,0,0,218,5,108, - 111,119,101,114,41,1,114,77,0,0,0,115,1,0,0,0, - 32,114,58,0,0,0,114,10,0,0,0,114,10,0,0,0, - 71,0,0,0,115,98,0,0,0,128,0,244,10,0,13,15, - 143,73,137,73,144,97,139,76,136,1,220,11,21,144,97,156, - 21,212,11,31,220,19,21,151,59,145,59,156,114,159,123,153, - 123,168,49,155,126,215,31,53,209,31,53,176,99,184,52,211, - 31,64,215,31,70,209,31,70,211,31,72,211,19,73,208,12, - 73,216,15,16,143,121,137,121,152,19,152,100,211,15,35,215, - 15,41,209,15,41,211,15,43,208,8,43,114,60,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,218,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,125,0,116,5,0,0,0,0,0,0,0,0, - 124,0,116,6,0,0,0,0,0,0,0,0,171,2,0,0, - 0,0,0,0,114,7,100,1,125,1,100,2,125,2,100,3, - 125,3,110,6,100,4,125,1,100,5,125,2,100,6,125,3, - 124,0,100,7,100,8,26,0,106,9,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,2,124,1, - 171,2,0,0,0,0,0,0,125,0,124,0,106,11,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,115,18,124,0,106,11, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,3,100,9,171,2,0,0,0,0,0,0,114,1, - 121,10,121,11,41,12,122,31,84,101,115,116,32,119,104,101, - 116,104,101,114,32,97,32,112,97,116,104,32,105,115,32,97, - 98,115,111,108,117,116,101,243,1,0,0,0,92,243,1,0, - 0,0,47,115,2,0,0,0,58,92,114,4,0,0,0,114, - 6,0,0,0,122,2,58,92,78,233,3,0,0,0,233,1, - 0,0,0,84,70,41,6,114,67,0,0,0,114,68,0,0, - 0,114,54,0,0,0,114,55,0,0,0,114,72,0,0,0, - 218,10,115,116,97,114,116,115,119,105,116,104,41,4,114,77, - 0,0,0,114,36,0,0,0,114,39,0,0,0,218,9,99, - 111,108,111,110,95,115,101,112,115,4,0,0,0,32,32,32, - 32,114,58,0,0,0,114,11,0,0,0,114,11,0,0,0, - 88,0,0,0,115,110,0,0,0,128,0,228,8,10,143,9, - 137,9,144,33,139,12,128,65,220,7,17,144,33,148,85,212, - 7,27,216,14,19,136,3,216,17,21,136,6,216,20,26,137, - 9,224,14,18,136,3,216,17,20,136,6,216,20,25,136,9, - 216,8,9,136,34,136,49,136,5,143,13,137,13,144,102,152, - 99,211,8,34,128,65,240,6,0,8,9,135,124,129,124,144, - 67,212,7,24,152,65,159,76,153,76,168,25,176,65,212,28, - 54,216,15,19,216,11,16,114,60,0,0,0,99,1,0,0, + 0,0,92,30,108,0,0,0,0,0,0,0,0,0,83,23, + 26,0,114,32,83,24,26,0,114,33,30,0,83,8,83,25, + 75,26,74,34,114,34,32,0,83,26,26,0,114,35,92,36, + 34,0,92,37,34,0,83,27,53,1,0,0,0,0,0,0, + 19,0,86,0,115,2,49,0,115,2,19,0,72,11,0,0, + 110,0,92,38,34,0,85,0,53,1,0,0,0,0,0,0, + 105,2,77,13,0,0,11,0,32,0,115,2,110,0,49,0, + 83,28,107,1,45,7,0,0,53,1,0,0,0,0,0,0, + 114,39,92,36,34,0,49,0,83,29,107,1,83,30,19,0, + 86,1,115,2,49,0,115,2,19,0,72,8,0,0,110,1, + 83,31,85,1,14,0,51,2,105,2,77,10,0,0,11,0, + 32,0,115,2,110,1,45,7,0,0,83,30,19,0,86,1, + 115,2,49,0,115,2,19,0,72,8,0,0,110,1,83,32, + 85,1,14,0,51,2,105,2,77,10,0,0,11,0,32,0, + 115,2,110,1,45,7,0,0,53,1,0,0,0,0,0,0, + 114,40,83,33,26,0,114,41,83,34,26,0,114,42,83,35, + 26,0,114,43,83,36,114,44,83,9,113,45,83,9,113,46, + 83,37,26,0,114,47,30,0,83,8,83,38,75,26,74,48, + 114,49,32,0,30,0,83,8,83,40,75,26,74,50,114,50, + 32,0,83,41,26,0,114,51,30,0,83,8,83,43,75,26, + 74,52,114,52,74,53,114,53,74,54,114,55,32,0,92,56, + 52,1,83,44,26,0,106,1,114,57,92,56,52,1,83,45, + 26,0,106,1,114,58,83,46,83,47,46,1,83,48,26,0, + 106,2,114,59,83,50,114,60,83,61,83,51,26,0,106,1, + 114,61,83,52,26,0,114,62,30,0,83,8,83,53,75,26, + 74,63,114,64,32,0,83,8,83,54,75,26,74,65,114,66, + 32,0,83,8,83,55,75,26,74,67,114,68,32,0,83,8, + 83,56,75,26,74,69,114,70,32,0,83,8,83,57,75,26, + 74,71,114,72,32,0,83,8,83,58,75,26,74,73,114,74, + 32,0,30,0,83,8,83,59,75,26,74,75,114,75,32,0, + 83,60,26,0,114,76,103,9,33,0,92,22,7,0,97,7, + 0,0,32,0,83,15,26,0,114,21,31,0,71,1,78,42, + 102,0,61,3,31,0,102,1,33,0,92,22,7,0,97,7, + 0,0,32,0,83,20,26,0,114,28,31,0,71,1,78,42, + 102,0,61,3,31,0,102,1,33,0,92,22,7,0,97,6, + 0,0,32,0,83,9,114,34,31,0,71,1,78,11,102,0, + 61,3,31,0,102,1,115,2,32,0,115,2,110,0,102,0, + 115,2,32,0,115,2,110,1,102,0,115,2,32,0,115,2, + 110,1,102,0,33,0,92,22,7,0,97,6,0,0,32,0, + 83,39,26,0,114,49,31,0,78,171,102,0,61,3,31,0, + 102,1,33,0,92,22,7,0,97,6,0,0,32,0,83,42, + 26,0,114,51,31,0,78,176,102,0,61,3,31,0,102,1, + 33,0,92,22,7,0,97,10,0,0,32,0,83,46,83,47, + 46,1,83,49,26,0,106,2,114,59,31,0,78,165,102,0, + 61,3,31,0,102,1,33,0,92,22,7,0,97,3,0,0, + 32,0,31,0,78,130,102,0,61,3,31,0,102,1,33,0, + 92,22,7,0,97,3,0,0,32,0,31,0,103,9,102,0, + 61,3,31,0,102,1,41,62,122,144,67,111,109,109,111,110, + 32,112,97,116,104,110,97,109,101,32,109,97,110,105,112,117, + 108,97,116,105,111,110,115,44,32,87,105,110,100,111,119,115, + 78,84,47,57,53,32,118,101,114,115,105,111,110,46,10,10, + 73,110,115,116,101,97,100,32,111,102,32,105,109,112,111,114, + 116,105,110,103,32,116,104,105,115,32,109,111,100,117,108,101, + 32,100,105,114,101,99,116,108,121,44,32,105,109,112,111,114, + 116,32,111,115,32,97,110,100,32,114,101,102,101,114,32,116, + 111,32,116,104,105,115,10,109,111,100,117,108,101,32,97,115, + 32,111,115,46,112,97,116,104,46,10,218,1,46,250,2,46, + 46,218,1,92,218,1,59,218,1,47,122,8,46,59,67,58, + 92,98,105,110,218,3,110,117,108,233,0,0,0,0,78,41, + 1,218,1,42,41,43,218,8,110,111,114,109,99,97,115,101, + 218,5,105,115,97,98,115,218,4,106,111,105,110,218,10,115, + 112,108,105,116,100,114,105,118,101,218,9,115,112,108,105,116, + 114,111,111,116,218,5,115,112,108,105,116,218,8,115,112,108, + 105,116,101,120,116,218,8,98,97,115,101,110,97,109,101,218, + 7,100,105,114,110,97,109,101,218,12,99,111,109,109,111,110, + 112,114,101,102,105,120,218,7,103,101,116,115,105,122,101,218, + 8,103,101,116,109,116,105,109,101,218,8,103,101,116,97,116, + 105,109,101,218,8,103,101,116,99,116,105,109,101,218,6,105, + 115,108,105,110,107,218,6,101,120,105,115,116,115,218,7,108, + 101,120,105,115,116,115,218,5,105,115,100,105,114,218,6,105, + 115,102,105,108,101,218,7,105,115,109,111,117,110,116,218,10, + 105,115,114,101,115,101,114,118,101,100,218,10,101,120,112,97, + 110,100,117,115,101,114,218,10,101,120,112,97,110,100,118,97, + 114,115,218,8,110,111,114,109,112,97,116,104,218,7,97,98, + 115,112,97,116,104,218,6,99,117,114,100,105,114,218,6,112, + 97,114,100,105,114,218,3,115,101,112,218,7,112,97,116,104, + 115,101,112,218,7,100,101,102,112,97,116,104,218,6,97,108, + 116,115,101,112,218,6,101,120,116,115,101,112,218,7,100,101, + 118,110,117,108,108,218,8,114,101,97,108,112,97,116,104,218, + 26,115,117,112,112,111,114,116,115,95,117,110,105,99,111,100, + 101,95,102,105,108,101,110,97,109,101,115,218,7,114,101,108, + 112,97,116,104,218,8,115,97,109,101,102,105,108,101,218,12, + 115,97,109,101,111,112,101,110,102,105,108,101,218,8,115,97, + 109,101,115,116,97,116,218,10,99,111,109,109,111,110,112,97, + 116,104,218,10,105,115,106,117,110,99,116,105,111,110,218,10, + 105,115,100,101,118,100,114,105,118,101,218,13,65,76,76,79, + 87,95,77,73,83,83,73,78,71,99,1,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,48, + 0,0,0,149,0,91,1,0,0,0,0,0,0,0,0,85, + 0,91,2,0,0,0,0,0,0,0,0,53,2,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,97,1,0,0,103, + 1,103,2,41,3,78,243,2,0,0,0,92,47,250,2,92, + 47,41,2,218,10,105,115,105,110,115,116,97,110,99,101,218, + 5,98,121,116,101,115,169,1,218,4,112,97,116,104,115,1, + 0,0,0,32,218,15,60,102,114,111,122,101,110,32,110,116, + 112,97,116,104,62,218,13,95,103,101,116,95,98,111,116,104, + 115,101,112,115,114,61,0,0,0,34,0,0,0,115,21,0, + 0,0,128,0,220,7,17,144,36,156,5,215,7,30,209,7, + 30,216,15,21,224,15,20,243,0,0,0,0,41,3,218,13, + 76,67,77,97,112,83,116,114,105,110,103,69,120,218,21,76, + 79,67,65,76,69,95,78,65,77,69,95,73,78,86,65,82, + 73,65,78,84,218,15,76,67,77,65,80,95,76,79,87,69, + 82,67,65,83,69,99,1,0,0,0,0,0,0,0,0,0, + 0,0,8,0,0,0,3,0,0,0,243,112,1,0,0,149, + 0,91,0,0,0,0,0,0,0,0,0,82,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,85,0,53,1,0,0,0,0,0,0,110,0,85,0,40, + 0,0,0,0,0,0,0,100,2,0,0,85,0,36,0,91, + 5,0,0,0,0,0,0,0,0,85,0,91,6,0,0,0, + 0,0,0,0,0,53,2,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,97,94,0,0,91,8,0,0,0,0,0, + 0,0,0,82,10,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,53,0,0,0,0,0,0, + 0,110,1,85,0,82,13,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,1,83,1,53,2,0, + 0,0,0,0,0,82,15,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,2,83,3,53,2,0, + 0,0,0,0,0,110,0,91,17,0,0,0,0,0,0,0, + 0,91,18,0,0,0,0,0,0,0,0,91,20,0,0,0, + 0,0,0,0,0,85,0,53,3,0,0,0,0,0,0,110, + 0,85,0,82,23,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,1,83,1,53,2,0,0,0, + 0,0,0,36,0,91,17,0,0,0,0,0,0,0,0,91, + 18,0,0,0,0,0,0,0,0,91,20,0,0,0,0,0, + 0,0,0,85,0,82,15,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,2,83,3,53,2,0, + 0,0,0,0,0,53,3,0,0,0,0,0,0,36,0,41, + 4,250,94,78,111,114,109,97,108,105,122,101,32,99,97,115, + 101,32,111,102,32,112,97,116,104,110,97,109,101,46,10,10, + 77,97,107,101,115,32,97,108,108,32,99,104,97,114,97,99, + 116,101,114,115,32,108,111,119,101,114,99,97,115,101,32,97, + 110,100,32,97,108,108,32,115,108,97,115,104,101,115,32,105, + 110,116,111,32,98,97,99,107,115,108,97,115,104,101,115,46, + 10,218,15,115,117,114,114,111,103,97,116,101,101,115,99,97, + 112,101,114,6,0,0,0,114,4,0,0,0,41,12,218,2, + 111,115,218,6,102,115,112,97,116,104,114,56,0,0,0,114, + 57,0,0,0,218,3,115,121,115,218,21,103,101,116,102,105, + 108,101,115,121,115,116,101,109,101,110,99,111,100,105,110,103, + 218,6,100,101,99,111,100,101,218,7,114,101,112,108,97,99, + 101,218,14,95,76,67,77,97,112,83,116,114,105,110,103,69, + 120,218,22,95,76,79,67,65,76,69,95,78,65,77,69,95, + 73,78,86,65,82,73,65,78,84,218,16,95,76,67,77,65, + 80,95,76,79,87,69,82,67,65,83,69,218,6,101,110,99, + 111,100,101,41,2,218,1,115,218,8,101,110,99,111,100,105, + 110,103,115,2,0,0,0,32,32,114,60,0,0,0,114,10, + 0,0,0,114,10,0,0,0,50,0,0,0,115,151,0,0, + 0,128,0,244,10,0,13,15,143,73,138,73,144,97,139,76, + 136,1,222,15,16,216,19,20,136,72,220,11,21,144,97,156, + 21,215,11,31,209,11,31,220,23,26,215,23,48,210,23,48, + 211,23,50,136,72,216,16,17,151,8,145,8,152,24,208,35, + 52,211,16,53,215,16,61,209,16,61,184,99,192,52,211,16, + 72,136,65,220,16,30,212,31,53,220,31,47,176,17,243,3, + 1,17,52,136,65,224,19,20,151,56,145,56,152,72,208,38, + 55,211,19,56,208,12,56,228,19,33,212,34,56,220,34,50, + 216,34,35,167,41,161,41,168,67,176,20,211,34,54,243,5, + 2,20,56,240,0,2,13,56,114,62,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,6,0,0,0,3,0, + 0,0,243,40,1,0,0,149,0,91,0,0,0,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,85,0,53,1,0,0,0, + 0,0,0,110,0,91,5,0,0,0,0,0,0,0,0,85, + 0,91,6,0,0,0,0,0,0,0,0,53,2,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,97,72,0,0,91, + 0,0,0,0,0,0,0,0,0,82,8,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,91, + 0,0,0,0,0,0,0,0,0,82,10,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,85, + 0,53,1,0,0,0,0,0,0,82,13,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,1,83, + 2,53,2,0,0,0,0,0,0,82,15,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,53,1,0,0,0,0,0,0,36,0,85, + 0,82,13,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,1,83,2,53,2,0,0,0,0,0, + 0,82,15,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,36,0,41, + 3,114,67,0,0,0,114,6,0,0,0,114,4,0,0,0, + 41,8,114,69,0,0,0,114,70,0,0,0,114,56,0,0, + 0,114,57,0,0,0,218,8,102,115,101,110,99,111,100,101, + 218,8,102,115,100,101,99,111,100,101,114,74,0,0,0,218, + 5,108,111,119,101,114,41,1,114,79,0,0,0,115,1,0, + 0,0,32,114,60,0,0,0,114,10,0,0,0,114,10,0, + 0,0,69,0,0,0,115,101,0,0,0,128,0,244,10,0, + 13,15,143,73,138,73,144,97,139,76,136,1,220,11,21,144, + 97,156,21,215,11,31,209,11,31,220,19,21,151,59,146,59, + 156,114,159,123,154,123,168,49,155,126,215,31,53,209,31,53, + 176,99,184,52,211,31,64,215,31,70,209,31,70,211,31,72, + 211,19,73,208,12,73,216,15,16,143,121,137,121,152,19,152, + 100,211,15,35,215,15,41,209,15,41,211,15,43,208,8,43, + 114,62,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,4,0,0,0,3,0,0,0,243,246,0,0,0,149, + 0,91,0,0,0,0,0,0,0,0,0,82,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,85,0,53,1,0,0,0,0,0,0,110,0,91,5,0, + 0,0,0,0,0,0,0,85,0,91,6,0,0,0,0,0, + 0,0,0,53,2,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,97,9,0,0,83,1,110,1,83,2,110,2,83, + 3,110,3,83,4,110,4,79,8,83,5,110,1,83,6,110, + 2,83,7,110,3,83,8,110,4,85,0,83,9,83,10,4, + 0,82,9,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,88,33,53,2,0,0,0,0,0,0,110, + 0,85,0,82,11,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,3,83,11,53,2,0,0,0, + 0,0,0,61,1,40,0,0,0,0,0,0,0,100,17,0, + 0,32,0,85,0,82,11,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,4,53,1,0,0,0, + 0,0,0,36,0,41,12,122,31,84,101,115,116,32,119,104, + 101,116,104,101,114,32,97,32,112,97,116,104,32,105,115,32, + 97,98,115,111,108,117,116,101,243,1,0,0,0,92,243,1, + 0,0,0,47,115,2,0,0,0,58,92,243,2,0,0,0, + 92,92,114,4,0,0,0,114,6,0,0,0,122,2,58,92, + 250,2,92,92,78,233,3,0,0,0,233,1,0,0,0,41, + 6,114,69,0,0,0,114,70,0,0,0,114,56,0,0,0, + 114,57,0,0,0,114,74,0,0,0,218,10,115,116,97,114, + 116,115,119,105,116,104,41,5,114,79,0,0,0,114,37,0, + 0,0,114,40,0,0,0,218,9,99,111,108,111,110,95,115, + 101,112,218,10,100,111,117,98,108,101,95,115,101,112,115,5, + 0,0,0,32,32,32,32,32,114,60,0,0,0,114,11,0, + 0,0,114,11,0,0,0,80,0,0,0,115,119,0,0,0, + 128,0,228,8,10,143,9,138,9,144,33,139,12,128,65,220, + 7,17,144,33,148,85,215,7,27,209,7,27,216,14,19,136, + 3,216,17,21,136,6,216,20,26,136,9,216,21,28,137,10, + 224,14,18,136,3,216,17,20,136,6,216,20,25,136,9,216, + 21,27,136,10,216,8,9,136,34,136,49,136,5,143,13,137, + 13,144,102,211,8,34,128,65,224,11,12,143,60,137,60,152, + 9,160,49,211,11,37,215,11,65,168,17,175,28,169,28,176, + 106,211,41,65,208,4,65,114,62,0,0,0,99,1,0,0, 0,0,0,0,0,0,0,0,0,5,0,0,0,7,0,0, - 0,243,56,2,0,0,151,0,116,1,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 125,0,116,5,0,0,0,0,0,0,0,0,124,0,116,6, - 0,0,0,0,0,0,0,0,171,2,0,0,0,0,0,0, - 114,7,100,1,125,2,100,2,125,3,100,3,125,4,110,6, - 100,4,125,2,100,5,125,3,100,6,125,4,9,0,124,1, - 115,8,124,0,100,0,100,7,26,0,124,2,122,0,0,0, - 1,0,116,9,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,92,3,0,0,125,5,125,6,125,7, - 116,11,0,0,0,0,0,0,0,0,116,0,0,0,0,0, - 0,0,0,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,171,2,0,0,0,0, - 0,0,68,0,93,98,0,0,125,8,116,9,0,0,0,0, - 0,0,0,0,124,8,171,1,0,0,0,0,0,0,92,3, - 0,0,125,9,125,10,125,11,124,10,114,11,124,9,115,2, - 124,5,115,2,124,9,125,5,124,10,125,6,124,11,125,7, - 140,31,124,9,114,47,124,9,124,5,107,55,0,0,114,42, - 124,9,106,13,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,124,5, - 106,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,107,55,0,0, - 114,7,124,9,125,5,124,10,125,6,124,11,125,7,140,78, - 124,9,125,5,124,7,114,12,124,7,100,8,25,0,0,0, - 124,3,118,1,114,5,124,7,124,2,122,0,0,0,125,7, - 124,7,124,11,122,0,0,0,125,7,140,100,4,0,124,7, - 114,22,124,6,115,20,124,5,114,18,124,5,100,8,100,0, - 26,0,124,4,124,3,122,0,0,0,118,1,114,8,124,5, - 124,2,122,0,0,0,124,7,122,0,0,0,83,0,124,5, - 124,6,122,0,0,0,124,7,122,0,0,0,83,0,35,0, - 116,14,0,0,0,0,0,0,0,0,116,16,0,0,0,0, - 0,0,0,0,116,18,0,0,0,0,0,0,0,0,102,3, - 36,0,114,25,1,0,116,21,0,0,0,0,0,0,0,0, - 106,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,9,124,0,103,2,124,1,162,1,173,6, - 142,0,1,0,130,0,119,0,120,3,89,0,119,1,41,10, - 78,114,84,0,0,0,114,52,0,0,0,243,1,0,0,0, - 58,114,4,0,0,0,114,53,0,0,0,218,1,58,114,8, - 0,0,0,233,255,255,255,255,114,12,0,0,0,41,12,114, - 67,0,0,0,114,68,0,0,0,114,54,0,0,0,114,55, - 0,0,0,114,14,0,0,0,218,3,109,97,112,114,82,0, - 0,0,218,9,84,121,112,101,69,114,114,111,114,218,14,65, - 116,116,114,105,98,117,116,101,69,114,114,111,114,218,12,66, - 121,116,101,115,87,97,114,110,105,110,103,218,11,103,101,110, - 101,114,105,99,112,97,116,104,218,16,95,99,104,101,99,107, - 95,97,114,103,95,116,121,112,101,115,41,12,114,57,0,0, - 0,218,5,112,97,116,104,115,114,36,0,0,0,218,4,115, - 101,112,115,218,5,99,111,108,111,110,218,12,114,101,115,117, - 108,116,95,100,114,105,118,101,218,11,114,101,115,117,108,116, - 95,114,111,111,116,218,11,114,101,115,117,108,116,95,112,97, - 116,104,218,1,112,218,7,112,95,100,114,105,118,101,218,6, - 112,95,114,111,111,116,218,6,112,95,112,97,116,104,115,12, - 0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,114, - 58,0,0,0,114,12,0,0,0,114,12,0,0,0,108,0, - 0,0,115,95,1,0,0,128,0,220,11,13,143,57,137,57, - 144,84,139,63,128,68,220,7,17,144,36,156,5,212,7,30, - 216,14,19,136,3,216,15,21,136,4,216,16,20,137,5,224, - 14,18,136,3,216,15,20,136,4,216,16,19,136,5,240,2, - 33,5,14,217,15,20,216,12,16,144,18,144,33,136,72,144, - 115,138,78,220,49,58,184,52,179,31,209,8,46,136,12,144, - 107,160,59,220,17,20,148,82,151,89,145,89,160,5,214,17, - 38,136,65,220,38,47,176,1,163,108,209,12,35,136,71,144, - 86,152,86,217,15,21,225,19,26,161,44,216,35,42,144,76, - 216,30,36,144,11,216,30,36,144,11,216,16,24,217,17,24, - 152,87,168,12,210,29,52,216,19,26,151,61,145,61,147,63, - 160,108,215,38,56,209,38,56,211,38,58,210,19,58,224,35, - 42,144,76,216,34,40,144,75,216,34,40,144,75,216,20,28, - 224,31,38,144,12,225,15,26,152,123,168,50,153,127,176,100, - 209,31,58,216,30,41,168,67,209,30,47,144,11,216,26,37, - 168,6,209,26,46,137,75,240,43,0,18,39,241,46,0,13, - 24,161,11,217,12,24,152,92,168,34,168,35,208,29,46,176, - 101,184,100,177,108,209,29,66,216,19,31,160,35,209,19,37, - 168,11,209,19,51,208,12,51,216,15,27,152,107,209,15,41, - 168,75,209,15,55,208,8,55,248,220,12,21,148,126,164,124, - 208,11,52,242,0,2,5,14,220,8,19,215,8,36,209,8, - 36,160,86,168,84,208,8,58,176,69,211,8,58,216,8,13, - 240,5,2,5,14,250,115,18,0,0,0,180,66,47,67,44, - 0,195,36,7,67,44,0,195,44,45,68,25,3,99,1,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,46,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,92,3,0, - 0,125,1,125,2,125,3,124,1,124,2,124,3,122,0,0, - 0,102,2,83,0,41,1,97,218,2,0,0,83,112,108,105, - 116,32,97,32,112,97,116,104,110,97,109,101,32,105,110,116, - 111,32,100,114,105,118,101,47,85,78,67,32,115,104,97,114, - 101,112,111,105,110,116,32,97,110,100,32,114,101,108,97,116, - 105,118,101,32,112,97,116,104,32,115,112,101,99,105,102,105, - 101,114,115,46,10,32,32,32,32,82,101,116,117,114,110,115, - 32,97,32,50,45,116,117,112,108,101,32,40,100,114,105,118, - 101,95,111,114,95,117,110,99,44,32,112,97,116,104,41,59, - 32,101,105,116,104,101,114,32,112,97,114,116,32,109,97,121, - 32,98,101,32,101,109,112,116,121,46,10,10,32,32,32,32, - 73,102,32,121,111,117,32,97,115,115,105,103,110,10,32,32, - 32,32,32,32,32,32,114,101,115,117,108,116,32,61,32,115, - 112,108,105,116,100,114,105,118,101,40,112,41,10,32,32,32, - 32,73,116,32,105,115,32,97,108,119,97,121,115,32,116,114, - 117,101,32,116,104,97,116,58,10,32,32,32,32,32,32,32, - 32,114,101,115,117,108,116,91,48,93,32,43,32,114,101,115, - 117,108,116,91,49,93,32,61,61,32,112,10,10,32,32,32, - 32,73,102,32,116,104,101,32,112,97,116,104,32,99,111,110, - 116,97,105,110,101,100,32,97,32,100,114,105,118,101,32,108, - 101,116,116,101,114,44,32,100,114,105,118,101,95,111,114,95, + 0,243,84,2,0,0,149,0,91,0,0,0,0,0,0,0, + 0,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,85,0,53,1,0,0,0,0, + 0,0,110,0,91,5,0,0,0,0,0,0,0,0,85,0, + 91,6,0,0,0,0,0,0,0,0,53,2,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,97,7,0,0,83,1, + 110,2,83,2,110,3,83,3,110,4,79,6,83,4,110,2, + 83,5,110,3,83,6,110,4,30,0,91,9,0,0,0,0, + 0,0,0,0,85,0,53,1,0,0,0,0,0,0,117,3, + 0,0,112,86,110,7,85,1,19,0,72,126,0,0,110,8, + 91,9,0,0,0,0,0,0,0,0,85,8,53,1,0,0, + 0,0,0,0,117,3,0,0,112,154,110,11,85,10,40,0, + 0,0,0,0,0,0,97,22,0,0,85,9,40,0,0,0, + 0,0,0,0,100,7,0,0,85,5,40,0,0,0,0,0, + 0,0,100,2,0,0,85,9,110,5,85,10,110,6,85,11, + 110,7,77,46,0,0,85,9,40,0,0,0,0,0,0,0, + 97,49,0,0,88,149,58,119,0,0,97,44,0,0,85,9, + 82,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,85,5,82,11, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,53,0,0,0,0,0,0,0,58,119,0,0,97,8, + 0,0,85,9,110,5,85,10,110,6,85,11,110,7,77,100, + 0,0,85,9,110,5,85,7,40,0,0,0,0,0,0,0, + 97,13,0,0,85,7,83,7,5,0,0,0,85,3,59,1, + 0,0,97,4,0,0,88,114,45,0,0,0,110,7,88,123, + 45,0,0,0,110,7,77,128,0,0,11,0,32,0,85,7, + 40,0,0,0,0,0,0,0,97,30,0,0,85,6,40,0, + 0,0,0,0,0,0,100,23,0,0,85,5,40,0,0,0, + 0,0,0,0,97,16,0,0,85,5,83,7,5,0,0,0, + 85,4,59,1,0,0,97,7,0,0,88,82,45,0,0,0, + 85,7,45,0,0,0,36,0,88,86,45,0,0,0,85,7, + 45,0,0,0,36,0,33,0,91,12,0,0,0,0,0,0, + 0,0,91,14,0,0,0,0,0,0,0,0,91,16,0,0, + 0,0,0,0,0,0,52,3,7,0,97,26,0,0,32,0, + 91,18,0,0,0,0,0,0,0,0,82,20,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 83,8,85,0,47,2,85,1,81,1,55,6,54,0,32,0, + 101,0,102,0,61,3,31,0,102,1,41,9,78,114,86,0, + 0,0,114,54,0,0,0,115,3,0,0,0,58,92,47,114, + 4,0,0,0,114,55,0,0,0,122,3,58,92,47,233,255, + 255,255,255,114,12,0,0,0,41,11,114,69,0,0,0,114, + 70,0,0,0,114,56,0,0,0,114,57,0,0,0,114,14, + 0,0,0,114,84,0,0,0,218,9,84,121,112,101,69,114, + 114,111,114,218,14,65,116,116,114,105,98,117,116,101,69,114, + 114,111,114,218,12,66,121,116,101,115,87,97,114,110,105,110, + 103,218,11,103,101,110,101,114,105,99,112,97,116,104,218,16, + 95,99,104,101,99,107,95,97,114,103,95,116,121,112,101,115, + 41,12,114,59,0,0,0,218,5,112,97,116,104,115,114,37, + 0,0,0,218,4,115,101,112,115,218,10,99,111,108,111,110, + 95,115,101,112,115,218,12,114,101,115,117,108,116,95,100,114, + 105,118,101,218,11,114,101,115,117,108,116,95,114,111,111,116, + 218,11,114,101,115,117,108,116,95,112,97,116,104,218,1,112, + 218,7,112,95,100,114,105,118,101,218,6,112,95,114,111,111, + 116,218,6,112,95,112,97,116,104,115,12,0,0,0,32,32, + 32,32,32,32,32,32,32,32,32,32,114,60,0,0,0,114, + 12,0,0,0,114,12,0,0,0,99,0,0,0,115,51,1, + 0,0,128,0,220,11,13,143,57,138,57,144,84,139,63,128, + 68,220,7,17,144,36,156,5,215,7,30,209,7,30,216,14, + 19,136,3,216,15,21,136,4,216,21,28,137,10,224,14,18, + 136,3,216,15,20,136,4,216,21,27,136,10,240,2,31,5, + 14,220,49,58,184,52,179,31,209,8,46,136,12,160,59,219, + 17,22,136,65,220,38,47,176,1,163,108,209,12,35,136,71, + 152,86,222,15,21,230,19,26,166,44,216,35,42,144,76,216, + 30,36,144,11,216,30,36,144,11,217,16,24,222,17,24,152, + 87,211,29,52,216,19,26,151,61,145,61,147,63,160,108,215, + 38,56,209,38,56,211,38,58,211,19,58,224,35,42,144,76, + 216,34,40,144,75,216,34,40,144,75,217,20,28,224,31,38, + 144,12,230,15,26,152,123,168,50,153,127,176,100,211,31,58, + 216,30,41,209,30,47,144,11,216,26,37,209,26,46,138,75, + 241,43,0,18,23,246,46,0,13,24,166,11,222,12,24,152, + 92,168,34,209,29,45,176,90,211,29,63,216,19,31,209,19, + 37,168,11,209,19,51,208,12,51,216,15,27,209,15,41,168, + 75,209,15,55,208,8,55,248,220,12,21,148,126,164,124,208, + 11,52,243,0,2,5,14,220,8,19,215,8,36,210,8,36, + 160,86,168,84,208,8,58,176,69,211,8,58,216,8,13,240, + 5,2,5,14,250,115,18,0,0,0,186,66,54,67,56,0, + 195,49,6,67,56,0,195,56,47,68,39,3,99,1,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,243,42,0,0,0,149,0,91,1,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,117,3,0,0, + 112,18,110,3,88,18,85,3,45,0,0,0,52,2,36,0, + 41,1,97,170,2,0,0,83,112,108,105,116,32,97,32,112, + 97,116,104,110,97,109,101,32,105,110,116,111,32,100,114,105, + 118,101,47,85,78,67,32,115,104,97,114,101,112,111,105,110, + 116,32,97,110,100,32,114,101,108,97,116,105,118,101,32,112, + 97,116,104,32,115,112,101,99,105,102,105,101,114,115,46,10, + 82,101,116,117,114,110,115,32,97,32,50,45,116,117,112,108, + 101,32,40,100,114,105,118,101,95,111,114,95,117,110,99,44, + 32,112,97,116,104,41,59,32,101,105,116,104,101,114,32,112, + 97,114,116,32,109,97,121,32,98,101,32,101,109,112,116,121, + 46,10,10,73,102,32,121,111,117,32,97,115,115,105,103,110, + 10,32,32,32,32,114,101,115,117,108,116,32,61,32,115,112, + 108,105,116,100,114,105,118,101,40,112,41,10,73,116,32,105, + 115,32,97,108,119,97,121,115,32,116,114,117,101,32,116,104, + 97,116,58,10,32,32,32,32,114,101,115,117,108,116,91,48, + 93,32,43,32,114,101,115,117,108,116,91,49,93,32,61,61, + 32,112,10,10,73,102,32,116,104,101,32,112,97,116,104,32, + 99,111,110,116,97,105,110,101,100,32,97,32,100,114,105,118, + 101,32,108,101,116,116,101,114,44,32,100,114,105,118,101,95, + 111,114,95,117,110,99,32,119,105,108,108,32,99,111,110,116, + 97,105,110,32,101,118,101,114,121,116,104,105,110,103,10,117, + 112,32,116,111,32,97,110,100,32,105,110,99,108,117,100,105, + 110,103,32,116,104,101,32,99,111,108,111,110,46,32,32,101, + 46,103,46,32,115,112,108,105,116,100,114,105,118,101,40,34, + 99,58,47,100,105,114,34,41,32,114,101,116,117,114,110,115, + 32,40,34,99,58,34,44,32,34,47,100,105,114,34,41,10, + 10,73,102,32,116,104,101,32,112,97,116,104,32,99,111,110, + 116,97,105,110,101,100,32,97,32,85,78,67,32,112,97,116, + 104,44,32,116,104,101,32,100,114,105,118,101,95,111,114,95, 117,110,99,32,119,105,108,108,32,99,111,110,116,97,105,110, - 32,101,118,101,114,121,116,104,105,110,103,10,32,32,32,32, - 117,112,32,116,111,32,97,110,100,32,105,110,99,108,117,100, - 105,110,103,32,116,104,101,32,99,111,108,111,110,46,32,32, - 101,46,103,46,32,115,112,108,105,116,100,114,105,118,101,40, - 34,99,58,47,100,105,114,34,41,32,114,101,116,117,114,110, - 115,32,40,34,99,58,34,44,32,34,47,100,105,114,34,41, - 10,10,32,32,32,32,73,102,32,116,104,101,32,112,97,116, - 104,32,99,111,110,116,97,105,110,101,100,32,97,32,85,78, - 67,32,112,97,116,104,44,32,116,104,101,32,100,114,105,118, - 101,95,111,114,95,117,110,99,32,119,105,108,108,32,99,111, - 110,116,97,105,110,32,116,104,101,32,104,111,115,116,32,110, - 97,109,101,10,32,32,32,32,97,110,100,32,115,104,97,114, - 101,32,117,112,32,116,111,32,98,117,116,32,110,111,116,32, - 105,110,99,108,117,100,105,110,103,32,116,104,101,32,102,111, - 117,114,116,104,32,100,105,114,101,99,116,111,114,121,32,115, - 101,112,97,114,97,116,111,114,32,99,104,97,114,97,99,116, - 101,114,46,10,32,32,32,32,101,46,103,46,32,115,112,108, - 105,116,100,114,105,118,101,40,34,47,47,104,111,115,116,47, - 99,111,109,112,117,116,101,114,47,100,105,114,34,41,32,114, - 101,116,117,114,110,115,32,40,34,47,47,104,111,115,116,47, - 99,111,109,112,117,116,101,114,34,44,32,34,47,100,105,114, - 34,41,10,10,32,32,32,32,80,97,116,104,115,32,99,97, - 110,110,111,116,32,99,111,110,116,97,105,110,32,98,111,116, - 104,32,97,32,100,114,105,118,101,32,108,101,116,116,101,114, - 32,97,110,100,32,97,32,85,78,67,32,112,97,116,104,46, - 10,10,32,32,32,32,41,1,114,14,0,0,0,41,4,114, - 106,0,0,0,218,5,100,114,105,118,101,218,4,114,111,111, - 116,218,4,116,97,105,108,115,4,0,0,0,32,32,32,32, - 114,58,0,0,0,114,13,0,0,0,114,13,0,0,0,157, - 0,0,0,115,35,0,0,0,128,0,244,38,0,25,34,160, - 33,155,12,209,4,21,128,69,136,52,144,20,216,11,16,144, - 36,152,20,145,43,208,11,29,208,4,29,114,60,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,3,0,0,0,243,254,1,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,125,0,116,5,0,0,0,0,0,0,0,0, - 124,0,116,6,0,0,0,0,0,0,0,0,171,2,0,0, - 0,0,0,0,114,11,100,1,125,1,100,2,125,2,100,3, - 125,3,100,4,125,4,100,5,125,5,110,10,100,6,125,1, - 100,7,125,2,100,8,125,3,100,9,125,4,100,10,125,5, - 124,0,106,9,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,124,1,171,2,0,0,0,0, - 0,0,125,6,124,6,100,11,100,12,26,0,124,1,107,40, - 0,0,114,124,124,6,100,12,100,13,26,0,124,1,107,40, - 0,0,114,105,124,6,100,11,100,14,26,0,106,11,0,0, + 32,116,104,101,32,104,111,115,116,32,110,97,109,101,10,97, + 110,100,32,115,104,97,114,101,32,117,112,32,116,111,32,98, + 117,116,32,110,111,116,32,105,110,99,108,117,100,105,110,103, + 32,116,104,101,32,102,111,117,114,116,104,32,100,105,114,101, + 99,116,111,114,121,32,115,101,112,97,114,97,116,111,114,32, + 99,104,97,114,97,99,116,101,114,46,10,101,46,103,46,32, + 115,112,108,105,116,100,114,105,118,101,40,34,47,47,104,111, + 115,116,47,99,111,109,112,117,116,101,114,47,100,105,114,34, + 41,32,114,101,116,117,114,110,115,32,40,34,47,47,104,111, + 115,116,47,99,111,109,112,117,116,101,114,34,44,32,34,47, + 100,105,114,34,41,10,10,80,97,116,104,115,32,99,97,110, + 110,111,116,32,99,111,110,116,97,105,110,32,98,111,116,104, + 32,97,32,100,114,105,118,101,32,108,101,116,116,101,114,32, + 97,110,100,32,97,32,85,78,67,32,112,97,116,104,46,10, + 10,41,1,114,14,0,0,0,41,4,114,108,0,0,0,218, + 5,100,114,105,118,101,218,4,114,111,111,116,218,4,116,97, + 105,108,115,4,0,0,0,32,32,32,32,114,60,0,0,0, + 114,13,0,0,0,114,13,0,0,0,146,0,0,0,115,31, + 0,0,0,128,0,244,38,0,25,34,160,33,155,12,209,4, + 21,128,69,144,20,216,11,16,152,20,145,43,208,11,29,208, + 4,29,114,62,0,0,0,41,1,218,18,95,112,97,116,104, + 95,115,112,108,105,116,114,111,111,116,95,101,120,99,1,0, + 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, + 0,0,243,4,2,0,0,149,0,91,0,0,0,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,85,0,53,1,0,0,0, + 0,0,0,110,0,91,5,0,0,0,0,0,0,0,0,85, + 0,91,6,0,0,0,0,0,0,0,0,53,2,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,97,11,0,0,83, + 1,110,1,83,2,110,2,83,3,110,3,83,4,110,4,83, + 5,110,5,79,10,83,6,110,1,83,7,110,2,83,8,110, + 3,83,9,110,4,83,10,110,5,85,0,82,9,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88, + 33,53,2,0,0,0,0,0,0,110,6,85,6,83,11,83, + 12,4,0,85,1,58,88,0,0,97,121,0,0,85,6,83, + 12,83,13,4,0,85,1,58,88,0,0,97,102,0,0,85, + 6,83,11,83,14,4,0,82,11,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,0,0,0,0, + 0,0,0,85,4,58,88,0,0,97,2,0,0,83,14,79, + 1,83,13,110,7,85,6,82,13,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,88,23,53,2,0, + 0,0,0,0,0,110,8,85,8,83,15,58,88,0,0,97, + 4,0,0,88,5,85,5,52,3,36,0,85,6,82,13,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,124,4,107,40,0,0,114,2, - 100,14,110,1,100,13,125,7,124,6,106,13,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 124,7,171,2,0,0,0,0,0,0,125,8,124,8,100,15, - 107,40,0,0,114,5,124,0,124,5,124,5,102,3,83,0, - 124,6,106,13,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,124,8,100,12,122,0,0,0, - 171,2,0,0,0,0,0,0,125,9,124,9,100,15,107,40, - 0,0,114,5,124,0,124,5,124,5,102,3,83,0,124,0, - 100,11,124,9,26,0,124,0,124,9,124,9,100,12,122,0, - 0,0,26,0,124,0,124,9,100,12,122,0,0,0,100,11, - 26,0,102,3,83,0,124,5,124,0,100,11,100,12,26,0, - 124,0,100,12,100,11,26,0,102,3,83,0,124,6,100,12, - 100,13,26,0,124,3,107,40,0,0,114,33,124,6,100,13, - 100,16,26,0,124,1,107,40,0,0,114,14,124,0,100,11, - 100,13,26,0,124,0,100,13,100,16,26,0,124,0,100,16, - 100,11,26,0,102,3,83,0,124,0,100,11,100,13,26,0, - 124,5,124,0,100,13,100,11,26,0,102,3,83,0,124,5, - 124,5,124,0,102,3,83,0,41,17,97,254,1,0,0,83, + 0,88,24,83,12,45,0,0,0,53,2,0,0,0,0,0, + 0,110,9,85,9,83,15,58,88,0,0,97,4,0,0,88, + 5,85,5,52,3,36,0,85,0,83,11,85,9,4,0,88, + 9,85,9,83,12,45,0,0,0,4,0,88,9,83,12,45, + 0,0,0,83,11,4,0,52,3,36,0,88,80,83,11,83, + 12,4,0,85,0,83,12,83,11,4,0,52,3,36,0,85, + 6,83,12,83,13,4,0,85,3,58,88,0,0,97,33,0, + 0,85,6,83,13,83,16,4,0,85,1,58,88,0,0,97, + 14,0,0,85,0,83,11,83,13,4,0,85,0,83,13,83, + 16,4,0,85,0,83,16,83,11,4,0,52,3,36,0,85, + 0,83,11,83,13,4,0,88,80,83,13,83,11,4,0,52, + 3,36,0,88,85,85,0,52,3,36,0,41,17,122,87,83, 112,108,105,116,32,97,32,112,97,116,104,110,97,109,101,32, 105,110,116,111,32,100,114,105,118,101,44,32,114,111,111,116, - 32,97,110,100,32,116,97,105,108,46,32,84,104,101,32,100, - 114,105,118,101,32,105,115,32,100,101,102,105,110,101,100,10, - 32,32,32,32,101,120,97,99,116,108,121,32,97,115,32,105, - 110,32,115,112,108,105,116,100,114,105,118,101,40,41,46,32, - 79,110,32,87,105,110,100,111,119,115,44,32,116,104,101,32, - 114,111,111,116,32,109,97,121,32,98,101,32,97,32,115,105, - 110,103,108,101,32,112,97,116,104,10,32,32,32,32,115,101, - 112,97,114,97,116,111,114,32,111,114,32,97,110,32,101,109, - 112,116,121,32,115,116,114,105,110,103,46,32,84,104,101,32, + 32,97,110,100,32,116,97,105,108,46,10,10,84,104,101,32, 116,97,105,108,32,99,111,110,116,97,105,110,115,32,97,110, 121,116,104,105,110,103,32,97,102,116,101,114,32,116,104,101, - 32,114,111,111,116,46,10,32,32,32,32,70,111,114,32,101, - 120,97,109,112,108,101,58,10,10,32,32,32,32,32,32,32, - 32,115,112,108,105,116,114,111,111,116,40,39,47,47,115,101, - 114,118,101,114,47,115,104,97,114,101,47,39,41,32,61,61, - 32,40,39,47,47,115,101,114,118,101,114,47,115,104,97,114, - 101,39,44,32,39,47,39,44,32,39,39,41,10,32,32,32, - 32,32,32,32,32,115,112,108,105,116,114,111,111,116,40,39, - 67,58,47,85,115,101,114,115,47,66,97,114,110,101,121,39, - 41,32,61,61,32,40,39,67,58,39,44,32,39,47,39,44, - 32,39,85,115,101,114,115,47,66,97,114,110,101,121,39,41, - 10,32,32,32,32,32,32,32,32,115,112,108,105,116,114,111, - 111,116,40,39,67,58,47,47,47,115,112,97,109,47,47,47, - 104,97,109,39,41,32,61,61,32,40,39,67,58,39,44,32, - 39,47,39,44,32,39,47,47,115,112,97,109,47,47,47,104, - 97,109,39,41,10,32,32,32,32,32,32,32,32,115,112,108, - 105,116,114,111,111,116,40,39,87,105,110,100,111,119,115,47, - 110,111,116,101,112,97,100,39,41,32,61,61,32,40,39,39, - 44,32,39,39,44,32,39,87,105,110,100,111,119,115,47,110, - 111,116,101,112,97,100,39,41,10,32,32,32,32,114,84,0, - 0,0,114,85,0,0,0,114,91,0,0,0,243,8,0,0, - 0,92,92,63,92,85,78,67,92,114,60,0,0,0,114,4, - 0,0,0,114,6,0,0,0,114,92,0,0,0,250,8,92, - 92,63,92,85,78,67,92,218,0,78,114,87,0,0,0,233, - 2,0,0,0,233,8,0,0,0,114,93,0,0,0,114,86, - 0,0,0,41,7,114,67,0,0,0,114,68,0,0,0,114, - 54,0,0,0,114,55,0,0,0,114,72,0,0,0,218,5, - 117,112,112,101,114,218,4,102,105,110,100,41,10,114,106,0, - 0,0,114,36,0,0,0,114,39,0,0,0,114,102,0,0, - 0,218,10,117,110,99,95,112,114,101,102,105,120,218,5,101, - 109,112,116,121,218,5,110,111,114,109,112,218,5,115,116,97, - 114,116,218,5,105,110,100,101,120,218,6,105,110,100,101,120, - 50,115,10,0,0,0,32,32,32,32,32,32,32,32,32,32, - 114,58,0,0,0,114,14,0,0,0,114,14,0,0,0,180, - 0,0,0,115,135,1,0,0,128,0,244,22,0,9,11,143, - 9,137,9,144,33,139,12,128,65,220,7,17,144,33,148,85, - 212,7,27,216,14,19,136,3,216,17,21,136,6,216,16,20, - 136,5,216,21,36,136,10,216,16,19,137,5,224,14,18,136, - 3,216,17,20,136,6,216,16,19,136,5,216,21,35,136,10, - 216,16,18,136,5,216,12,13,143,73,137,73,144,102,152,99, - 211,12,34,128,69,216,7,12,136,82,136,97,128,121,144,67, - 210,7,23,216,11,16,144,17,144,49,136,58,152,19,210,11, - 28,240,6,0,26,31,152,114,160,1,152,25,159,31,153,31, - 211,25,42,168,106,210,25,56,145,65,184,97,136,69,216,20, - 25,151,74,145,74,152,115,160,69,211,20,42,136,69,216,15, - 20,152,2,138,123,216,23,24,152,37,160,21,144,127,208,16, - 38,216,21,26,151,90,145,90,160,3,160,85,168,81,161,89, - 211,21,47,136,70,216,15,21,152,18,138,124,216,23,24,152, - 37,160,21,144,127,208,16,38,216,19,20,144,87,144,102,144, - 58,152,113,160,22,168,6,176,17,169,10,208,31,51,176,81, - 176,118,192,1,177,122,176,123,176,94,208,19,67,208,12,67, - 240,6,0,20,25,152,33,152,66,152,81,152,37,160,17,160, - 49,160,50,160,21,208,19,38,208,12,38,216,9,14,136,113, - 144,17,136,26,144,117,210,9,28,216,11,16,144,17,144,49, - 136,58,152,19,210,11,28,224,19,20,144,82,144,97,144,53, - 152,33,152,65,152,97,152,38,160,33,160,65,160,66,160,37, - 208,19,39,208,12,39,240,6,0,20,21,144,82,144,97,144, - 53,152,37,160,17,160,49,160,50,160,21,208,19,38,208,12, - 38,240,6,0,16,21,144,101,152,81,136,127,208,8,30,114, - 60,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,243,248,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,125,0,116,5,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,125,1, - 116,7,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,92,3,0,0,125,2,125,3,125,0,116,9, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,125,4,124,4,114,28,124,0,124,4,100,1,122,10, - 0,0,25,0,0,0,124,1,118,1,114,18,124,4,100,1, - 122,23,0,0,125,4,124,4,114,11,124,0,124,4,100,1, - 122,10,0,0,25,0,0,0,124,1,118,1,114,1,140,18, - 124,0,100,2,124,4,26,0,124,0,124,4,100,2,26,0, - 125,6,125,5,124,2,124,3,122,0,0,0,124,5,106,11, + 32,114,111,111,116,46,114,86,0,0,0,114,87,0,0,0, + 243,1,0,0,0,58,243,8,0,0,0,92,92,63,92,85, + 78,67,92,114,62,0,0,0,114,4,0,0,0,114,6,0, + 0,0,218,1,58,250,8,92,92,63,92,85,78,67,92,218, + 0,78,114,91,0,0,0,233,2,0,0,0,233,8,0,0, + 0,114,96,0,0,0,114,90,0,0,0,41,7,114,69,0, + 0,0,114,70,0,0,0,114,56,0,0,0,114,57,0,0, + 0,114,74,0,0,0,218,5,117,112,112,101,114,218,4,102, + 105,110,100,41,10,114,108,0,0,0,114,37,0,0,0,114, + 40,0,0,0,218,5,99,111,108,111,110,218,10,117,110,99, + 95,112,114,101,102,105,120,218,5,101,109,112,116,121,218,5, + 110,111,114,109,112,218,5,115,116,97,114,116,218,5,105,110, + 100,101,120,218,6,105,110,100,101,120,50,115,10,0,0,0, + 32,32,32,32,32,32,32,32,32,32,114,60,0,0,0,114, + 14,0,0,0,114,14,0,0,0,172,0,0,0,115,118,1, + 0,0,128,0,244,8,0,13,15,143,73,138,73,144,97,139, + 76,136,1,220,11,21,144,97,156,21,215,11,31,209,11,31, + 216,18,23,136,67,216,21,25,136,70,216,20,24,136,69,216, + 25,40,136,74,216,20,23,137,69,224,18,22,136,67,216,21, + 24,136,70,216,20,23,136,69,216,25,39,136,74,216,20,22, + 136,69,216,16,17,151,9,145,9,152,38,211,16,38,136,5, + 216,11,16,144,18,144,33,136,57,152,3,211,11,27,216,15, + 20,144,81,144,113,136,122,152,83,211,15,32,240,6,0,30, + 35,160,50,160,65,152,89,159,95,153,95,211,29,46,176,42, + 211,29,60,153,1,192,33,144,5,216,24,29,159,10,153,10, + 160,51,211,24,46,144,5,216,19,24,152,66,147,59,216,27, + 28,160,85,152,63,208,20,42,216,25,30,159,26,153,26,160, + 67,176,17,169,25,211,25,51,144,6,216,19,25,152,82,147, + 60,216,27,28,160,85,152,63,208,20,42,216,23,24,152,23, + 152,38,144,122,160,49,168,70,176,81,169,74,208,35,55,184, + 17,192,65,185,58,184,59,184,30,208,23,71,208,16,71,240, + 6,0,24,29,160,2,160,17,152,101,160,81,160,113,160,114, + 160,85,208,23,42,208,16,42,216,13,18,144,49,144,81,136, + 90,152,53,211,13,32,216,15,20,144,81,144,113,136,122,152, + 83,211,15,32,224,23,24,152,18,152,33,144,117,152,97,160, + 1,160,33,152,102,160,97,168,1,168,2,160,101,208,23,43, + 208,16,43,240,6,0,24,25,152,18,152,33,144,117,152,101, + 160,113,160,114,160,85,208,23,42,208,16,42,240,6,0,20, + 25,160,17,144,63,208,12,34,114,62,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, + 0,0,243,12,1,0,0,149,0,91,0,0,0,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,85,0,53,1,0,0,0, + 0,0,0,110,0,91,5,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,110,1,91,7,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,117, + 3,0,0,112,35,110,0,91,9,0,0,0,0,0,0,0, + 0,85,0,53,1,0,0,0,0,0,0,110,4,85,4,40, + 0,0,0,0,0,0,0,97,36,0,0,88,4,83,1,45, + 10,0,0,5,0,0,0,85,1,59,1,0,0,97,25,0, + 0,85,4,83,1,45,23,0,0,110,4,85,4,40,0,0, + 0,0,0,0,0,97,13,0,0,88,4,83,1,45,10,0, + 0,5,0,0,0,85,1,59,1,0,0,97,2,0,0,77, + 25,0,0,85,0,83,2,85,4,4,0,88,4,83,2,4, + 0,112,101,88,35,45,0,0,0,85,5,82,11,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 1,53,1,0,0,0,0,0,0,45,0,0,0,85,6,52, + 2,36,0,41,3,122,118,83,112,108,105,116,32,97,32,112, + 97,116,104,110,97,109,101,46,10,10,82,101,116,117,114,110, + 32,116,117,112,108,101,32,40,104,101,97,100,44,32,116,97, + 105,108,41,32,119,104,101,114,101,32,116,97,105,108,32,105, + 115,32,101,118,101,114,121,116,104,105,110,103,32,97,102,116, + 101,114,32,116,104,101,32,102,105,110,97,108,32,115,108,97, + 115,104,46,10,69,105,116,104,101,114,32,112,97,114,116,32, + 109,97,121,32,98,101,32,101,109,112,116,121,46,114,91,0, + 0,0,78,41,6,114,69,0,0,0,114,70,0,0,0,114, + 61,0,0,0,114,14,0,0,0,218,3,108,101,110,218,6, + 114,115,116,114,105,112,41,7,114,108,0,0,0,114,103,0, + 0,0,218,1,100,218,1,114,218,1,105,218,4,104,101,97, + 100,114,115,0,0,0,115,7,0,0,0,32,32,32,32,32, + 32,32,114,60,0,0,0,114,15,0,0,0,114,15,0,0, + 0,222,0,0,0,115,136,0,0,0,128,0,244,10,0,9, + 11,143,9,138,9,144,33,139,12,128,65,220,11,24,152,17, + 211,11,27,128,68,220,14,23,152,1,139,108,129,71,128,65, + 136,33,228,8,11,136,65,139,6,128,65,222,10,11,144,1, + 144,65,145,35,145,6,152,100,211,16,34,216,8,9,136,81, + 137,6,136,1,246,3,0,11,12,144,1,144,65,145,35,145, + 6,152,100,213,16,34,224,17,18,144,50,144,65,144,21,152, + 1,152,34,152,5,136,36,216,11,12,137,53,144,52,151,59, + 145,59,152,116,211,19,36,209,11,36,160,100,208,11,42,208, + 4,42,114,62,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,6,0,0,0,3,0,0,0,243,188,0,0, + 0,149,0,91,0,0,0,0,0,0,0,0,0,82,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,1,171,1,0,0,0,0,0,0,122,0,0,0, - 124,6,102,2,83,0,41,3,122,126,83,112,108,105,116,32, - 97,32,112,97,116,104,110,97,109,101,46,10,10,32,32,32, - 32,82,101,116,117,114,110,32,116,117,112,108,101,32,40,104, - 101,97,100,44,32,116,97,105,108,41,32,119,104,101,114,101, - 32,116,97,105,108,32,105,115,32,101,118,101,114,121,116,104, - 105,110,103,32,97,102,116,101,114,32,116,104,101,32,102,105, - 110,97,108,32,115,108,97,115,104,46,10,32,32,32,32,69, - 105,116,104,101,114,32,112,97,114,116,32,109,97,121,32,98, - 101,32,101,109,112,116,121,46,114,87,0,0,0,78,41,6, - 114,67,0,0,0,114,68,0,0,0,114,59,0,0,0,114, - 14,0,0,0,218,3,108,101,110,218,6,114,115,116,114,105, - 112,41,7,114,106,0,0,0,114,101,0,0,0,218,1,100, - 218,1,114,218,1,105,218,4,104,101,97,100,114,113,0,0, - 0,115,7,0,0,0,32,32,32,32,32,32,32,114,58,0, - 0,0,114,15,0,0,0,114,15,0,0,0,237,0,0,0, - 115,148,0,0,0,128,0,244,10,0,9,11,143,9,137,9, - 144,33,139,12,128,65,220,11,24,152,17,211,11,27,128,68, - 220,14,23,152,1,139,108,129,71,128,65,128,113,136,33,228, - 8,11,136,65,139,6,128,65,217,10,11,144,1,144,33,144, - 65,145,35,145,6,152,100,209,16,34,216,8,9,136,81,137, - 6,136,1,241,3,0,11,12,144,1,144,33,144,65,145,35, - 145,6,152,100,210,16,34,224,17,18,144,50,144,65,144,21, - 152,1,152,33,152,34,152,5,136,36,128,68,216,11,12,136, - 113,137,53,144,52,151,59,145,59,152,116,211,19,36,209,11, - 36,160,100,208,11,42,208,4,42,114,60,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,3, - 0,0,0,243,172,0,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,125,0,116,5,0,0,0,0,0,0,0,0,124,0, - 116,6,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,114,24,116,9,0,0,0,0,0,0,0,0,106,10, + 0,34,0,85,0,53,1,0,0,0,0,0,0,110,0,91, + 5,0,0,0,0,0,0,0,0,85,0,91,6,0,0,0, + 0,0,0,0,0,53,2,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,97,25,0,0,91,8,0,0,0,0,0, + 0,0,0,82,10,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,85,0,83,1,83,2,83, + 3,53,4,0,0,0,0,0,0,36,0,91,8,0,0,0, + 0,0,0,0,0,82,10,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,85,0,83,4,83, + 5,83,6,53,4,0,0,0,0,0,0,36,0,41,7,78, + 114,86,0,0,0,114,87,0,0,0,243,1,0,0,0,46, + 114,4,0,0,0,114,6,0,0,0,114,2,0,0,0,41, + 6,114,69,0,0,0,114,70,0,0,0,114,56,0,0,0, + 114,57,0,0,0,114,100,0,0,0,218,9,95,115,112,108, + 105,116,101,120,116,169,1,114,108,0,0,0,115,1,0,0, + 0,32,114,60,0,0,0,114,16,0,0,0,114,16,0,0, + 0,243,0,0,0,115,74,0,0,0,128,0,220,8,10,143, + 9,138,9,144,33,139,12,128,65,220,7,17,144,33,148,85, + 215,7,27,209,7,27,220,15,26,215,15,36,210,15,36,160, + 81,168,5,168,116,176,84,211,15,58,208,8,58,228,15,26, + 215,15,36,210,15,36,160,81,168,4,168,99,176,51,211,15, + 55,208,8,55,114,62,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,30, + 0,0,0,149,0,91,1,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,83,1,5,0,0,0,36, + 0,41,2,122,41,82,101,116,117,114,110,115,32,116,104,101, + 32,102,105,110,97,108,32,99,111,109,112,111,110,101,110,116, + 32,111,102,32,97,32,112,97,116,104,110,97,109,101,114,91, + 0,0,0,169,1,114,15,0,0,0,114,144,0,0,0,115, + 1,0,0,0,32,114,60,0,0,0,114,17,0,0,0,114, + 17,0,0,0,254,0,0,0,243,16,0,0,0,128,0,228, + 11,16,144,17,139,56,144,65,137,59,208,4,22,114,62,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,243,30,0,0,0,149,0,91,1, + 0,0,0,0,0,0,0,0,85,0,53,1,0,0,0,0, + 0,0,83,1,5,0,0,0,36,0,41,2,122,45,82,101, + 116,117,114,110,115,32,116,104,101,32,100,105,114,101,99,116, + 111,114,121,32,99,111,109,112,111,110,101,110,116,32,111,102, + 32,97,32,112,97,116,104,110,97,109,101,114,8,0,0,0, + 114,146,0,0,0,114,144,0,0,0,115,1,0,0,0,32, + 114,60,0,0,0,114,18,0,0,0,114,18,0,0,0,5, + 1,0,0,114,147,0,0,0,114,62,0,0,0,41,1,218, + 18,95,103,101,116,118,111,108,117,109,101,112,97,116,104,110, + 97,109,101,99,1,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,3,0,0,0,243,114,1,0,0,149,0,91, + 0,0,0,0,0,0,0,0,0,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,85, + 0,53,1,0,0,0,0,0,0,110,0,91,5,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,110, + 1,91,7,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,110,0,91,9,0,0,0,0,0,0,0, + 0,85,0,53,1,0,0,0,0,0,0,117,3,0,0,112, + 35,110,4,85,2,40,0,0,0,0,0,0,0,97,16,0, + 0,85,2,83,1,5,0,0,0,85,1,59,0,0,0,97, + 7,0,0,85,4,40,0,0,0,0,0,0,0,43,0,36, + 0,85,3,40,0,0,0,0,0,0,0,97,8,0,0,85, + 4,40,0,0,0,0,0,0,0,100,1,0,0,103,2,91, + 10,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,76,0,0,85,0,82,13,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,1,53,1,0, + 0,0,0,0,0,110,5,91,11,0,0,0,0,0,0,0, + 0,85,0,53,1,0,0,0,0,0,0,82,13,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 1,53,1,0,0,0,0,0,0,110,6,85,5,82,15,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,100,1,100,2,100,3,171,4,0,0,0,0, - 0,0,83,0,116,9,0,0,0,0,0,0,0,0,106,10, + 0,53,0,0,0,0,0,0,0,85,6,82,15,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 0,0,0,0,0,0,0,58,72,0,0,36,0,103,3,41, + 4,122,93,84,101,115,116,32,119,104,101,116,104,101,114,32, + 97,32,112,97,116,104,32,105,115,32,97,32,109,111,117,110, + 116,32,112,111,105,110,116,32,40,97,32,100,114,105,118,101, + 32,114,111,111,116,44,32,116,104,101,32,114,111,111,116,32, + 111,102,32,97,10,115,104,97,114,101,44,32,111,114,32,97, + 32,109,111,117,110,116,101,100,32,118,111,108,117,109,101,41, + 114,8,0,0,0,84,70,41,8,114,69,0,0,0,114,70, + 0,0,0,114,61,0,0,0,114,34,0,0,0,114,14,0, + 0,0,114,149,0,0,0,114,136,0,0,0,218,8,99,97, + 115,101,102,111,108,100,41,7,114,59,0,0,0,114,103,0, + 0,0,114,113,0,0,0,114,114,0,0,0,218,4,114,101, + 115,116,218,1,120,218,1,121,115,7,0,0,0,32,32,32, + 32,32,32,32,114,60,0,0,0,114,29,0,0,0,114,29, + 0,0,0,24,1,0,0,115,146,0,0,0,128,0,244,6, + 0,12,14,143,57,138,57,144,84,139,63,128,68,220,11,24, + 152,20,211,11,30,128,68,220,11,18,144,52,139,61,128,68, + 220,24,33,160,36,155,15,209,4,21,128,69,144,20,222,7, + 12,144,21,144,113,145,24,152,84,211,17,33,216,19,23,140, + 120,136,15,222,7,11,150,68,216,15,19,231,7,25,210,7, + 25,216,12,16,143,75,137,75,152,4,211,12,29,136,1,220, + 11,29,152,100,211,11,35,215,11,42,209,11,42,168,52,211, + 11,48,136,1,216,15,16,143,122,137,122,139,124,152,113,159, + 122,153,122,155,124,209,15,43,208,8,43,224,15,20,114,62, + 0,0,0,233,32,0,0,0,62,9,0,0,0,218,1,34, + 114,9,0,0,0,114,6,0,0,0,114,120,0,0,0,218, + 1,60,218,1,62,218,1,63,114,4,0,0,0,218,1,124, + 62,6,0,0,0,218,3,65,85,88,218,3,67,79,78,218, + 3,78,85,76,218,3,80,82,78,250,6,67,79,78,73,78, + 36,250,7,67,79,78,79,85,84,36,117,15,0,0,0,49, + 50,51,52,53,54,55,56,57,194,185,194,178,194,179,218,3, + 67,79,77,218,3,76,80,84,99,1,0,0,0,0,0,0, + 0,0,0,0,0,8,0,0,0,3,0,0,0,243,210,0, + 0,0,149,0,91,0,0,0,0,0,0,0,0,0,82,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,100,4,100,5,100,6,171,4,0,0,0,0, - 0,0,83,0,41,7,78,114,84,0,0,0,114,85,0,0, - 0,243,1,0,0,0,46,114,4,0,0,0,114,6,0,0, - 0,114,2,0,0,0,41,6,114,67,0,0,0,114,68,0, - 0,0,114,54,0,0,0,114,55,0,0,0,114,98,0,0, - 0,218,9,95,115,112,108,105,116,101,120,116,169,1,114,106, - 0,0,0,115,1,0,0,0,32,114,58,0,0,0,114,16, - 0,0,0,114,16,0,0,0,2,1,0,0,115,71,0,0, - 0,128,0,220,8,10,143,9,137,9,144,33,139,12,128,65, - 220,7,17,144,33,148,85,212,7,27,220,15,26,215,15,36, - 209,15,36,160,81,168,5,168,116,176,84,211,15,58,208,8, - 58,228,15,26,215,15,36,209,15,36,160,81,168,4,168,99, - 176,51,211,15,55,208,8,55,114,60,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,30,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,100,1,25, - 0,0,0,83,0,41,2,122,41,82,101,116,117,114,110,115, - 32,116,104,101,32,102,105,110,97,108,32,99,111,109,112,111, - 110,101,110,116,32,111,102,32,97,32,112,97,116,104,110,97, - 109,101,114,87,0,0,0,169,1,114,15,0,0,0,114,138, - 0,0,0,115,1,0,0,0,32,114,58,0,0,0,114,17, - 0,0,0,114,17,0,0,0,13,1,0,0,243,16,0,0, - 0,128,0,228,11,16,144,17,139,56,144,65,137,59,208,4, - 22,114,60,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,243,30,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,100,1,25,0,0,0,83,0,41,2, - 122,45,82,101,116,117,114,110,115,32,116,104,101,32,100,105, - 114,101,99,116,111,114,121,32,99,111,109,112,111,110,101,110, - 116,32,111,102,32,97,32,112,97,116,104,110,97,109,101,114, - 8,0,0,0,114,140,0,0,0,114,138,0,0,0,115,1, - 0,0,0,32,114,58,0,0,0,114,18,0,0,0,114,18, - 0,0,0,20,1,0,0,114,141,0,0,0,114,60,0,0, - 0,218,14,115,116,95,114,101,112,97,114,115,101,95,116,97, - 103,99,1,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,3,0,0,0,243,174,0,0,0,151,0,9,0,116, - 1,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,125,1,116,11,0,0,0,0,0, - 0,0,0,124,1,106,12,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,116,14,0,0,0,0,0, - 0,0,0,106,16,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,107,40,0,0,171,1,0,0,0, - 0,0,0,83,0,35,0,116,4,0,0,0,0,0,0,0, - 0,116,6,0,0,0,0,0,0,0,0,116,8,0,0,0, - 0,0,0,0,0,102,3,36,0,114,3,1,0,89,0,121, - 1,119,0,120,3,89,0,119,1,169,2,122,33,84,101,115, - 116,32,119,104,101,116,104,101,114,32,97,32,112,97,116,104, - 32,105,115,32,97,32,106,117,110,99,116,105,111,110,70,41, - 9,114,67,0,0,0,218,5,108,115,116,97,116,218,7,79, - 83,69,114,114,111,114,218,10,86,97,108,117,101,69,114,114, - 111,114,114,96,0,0,0,218,4,98,111,111,108,114,143,0, - 0,0,218,4,115,116,97,116,218,26,73,79,95,82,69,80, - 65,82,83,69,95,84,65,71,95,77,79,85,78,84,95,80, - 79,73,78,84,169,2,114,57,0,0,0,218,2,115,116,115, - 2,0,0,0,32,32,114,58,0,0,0,114,49,0,0,0, - 114,49,0,0,0,28,1,0,0,115,77,0,0,0,128,0, - 240,4,3,9,25,220,17,19,151,24,145,24,152,36,147,30, - 136,66,244,6,0,16,20,144,66,215,20,37,209,20,37,172, - 20,215,41,72,209,41,72,209,20,72,211,15,73,208,8,73, - 248,244,5,0,17,24,156,26,164,94,208,15,52,242,0,1, - 9,25,217,19,24,240,3,1,9,25,250,115,15,0,0,0, - 130,21,61,0,189,20,65,20,3,193,19,1,65,20,3,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,46,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,1,0,121,1,114,145,0,0,0,41,2,114,67, - 0,0,0,114,68,0,0,0,114,56,0,0,0,115,1,0, - 0,0,32,114,58,0,0,0,114,49,0,0,0,114,49,0, - 0,0,36,1,0,0,115,16,0,0,0,128,0,228,8,10, - 143,9,137,9,144,36,140,15,216,15,20,114,60,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,90,0,0,0,151,0,9,0,116,1, - 0,0,0,0,0,0,0,0,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,125,1,121,2,35,0,116,4,0,0, - 0,0,0,0,0,0,116,6,0,0,0,0,0,0,0,0, - 102,2,36,0,114,3,1,0,89,0,121,1,119,0,120,3, - 89,0,119,1,41,3,122,67,84,101,115,116,32,119,104,101, - 116,104,101,114,32,97,32,112,97,116,104,32,101,120,105,115, - 116,115,46,32,32,82,101,116,117,114,110,115,32,84,114,117, - 101,32,102,111,114,32,98,114,111,107,101,110,32,115,121,109, - 98,111,108,105,99,32,108,105,110,107,115,70,84,41,4,114, - 67,0,0,0,114,146,0,0,0,114,147,0,0,0,114,148, - 0,0,0,114,152,0,0,0,115,2,0,0,0,32,32,114, - 58,0,0,0,114,26,0,0,0,114,26,0,0,0,44,1, - 0,0,115,50,0,0,0,128,0,240,4,3,5,21,220,13, - 15,143,88,137,88,144,100,139,94,136,2,240,6,0,12,16, - 248,244,5,0,13,20,148,90,208,11,32,242,0,1,5,21, - 217,15,20,240,3,1,5,21,250,115,12,0,0,0,130,21, - 24,0,152,15,42,3,169,1,42,3,41,1,218,18,95,103, - 101,116,118,111,108,117,109,101,112,97,116,104,110,97,109,101, - 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,3,0,0,0,243,62,1,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,125,0,116,5,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,125,1,116,7,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 125,0,116,9,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,92,3,0,0,125,2,125,3,125,4, - 124,2,114,10,124,2,100,1,25,0,0,0,124,1,118,0, - 114,3,124,4,12,0,83,0,124,3,114,3,124,4,115,1, - 121,2,116,10,0,0,0,0,0,0,0,0,114,76,124,0, - 106,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,125,5, - 116,11,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,106,13,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,171,1,0,0,0,0, - 0,0,125,6,124,5,106,15,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,124,6,106,15,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, - 107,40,0,0,83,0,121,3,41,4,122,97,84,101,115,116, - 32,119,104,101,116,104,101,114,32,97,32,112,97,116,104,32, - 105,115,32,97,32,109,111,117,110,116,32,112,111,105,110,116, - 32,40,97,32,100,114,105,118,101,32,114,111,111,116,44,32, - 116,104,101,32,114,111,111,116,32,111,102,32,97,10,32,32, - 32,32,115,104,97,114,101,44,32,111,114,32,97,32,109,111, - 117,110,116,101,100,32,118,111,108,117,109,101,41,114,8,0, - 0,0,84,70,41,8,114,67,0,0,0,114,68,0,0,0, - 114,59,0,0,0,114,33,0,0,0,114,14,0,0,0,114, - 156,0,0,0,114,130,0,0,0,218,8,99,97,115,101,102, - 111,108,100,41,7,114,57,0,0,0,114,101,0,0,0,114, - 111,0,0,0,114,112,0,0,0,218,4,114,101,115,116,218, - 1,120,218,1,121,115,7,0,0,0,32,32,32,32,32,32, - 32,114,58,0,0,0,114,29,0,0,0,114,29,0,0,0, - 66,1,0,0,115,145,0,0,0,128,0,244,6,0,12,14, - 143,57,137,57,144,84,139,63,128,68,220,11,24,152,20,211, - 11,30,128,68,220,11,18,144,52,139,61,128,68,220,24,33, - 160,36,155,15,209,4,21,128,69,136,52,144,20,217,7,12, - 144,21,144,113,145,24,152,84,209,17,33,216,19,23,136,120, - 136,15,217,7,11,145,68,216,15,19,229,7,25,216,12,16, - 143,75,137,75,152,4,211,12,29,136,1,220,11,29,152,100, - 211,11,35,215,11,42,209,11,42,168,52,211,11,48,136,1, - 216,15,16,143,122,137,122,139,124,152,113,159,122,153,122,155, - 124,209,15,43,208,8,43,224,15,20,114,60,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 3,0,0,0,243,56,3,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,125,0,116,5,0,0,0,0,0,0,0,0,124, - 0,116,6,0,0,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,114,3,100,1,125,1,110,2,100,2,125,1,124, - 0,106,9,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,1,171,1,0,0,0,0,0,0,115, - 2,124,0,83,0,100,3,116,11,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,125,3,125,2,124, - 2,124,3,107,2,0,0,114,43,124,0,124,2,25,0,0, - 0,116,13,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,118,1,114,27,124,2,100,3,122,13,0, - 0,125,2,124,2,124,3,107,2,0,0,114,17,124,0,124, - 2,25,0,0,0,116,13,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,118,1,114,1,140,27,100, - 4,116,0,0,0,0,0,0,0,0,0,106,14,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118, - 0,114,20,116,0,0,0,0,0,0,0,0,0,106,14,0, + 0,0,34,0,91,5,0,0,0,0,0,0,0,0,85,0, + 53,1,0,0,0,0,0,0,83,1,5,0,0,0,53,1, + 0,0,0,0,0,0,82,7,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,91,8,0,0,0,0, + 0,0,0,0,91,10,0,0,0,0,0,0,0,0,53,2, + 0,0,0,0,0,0,110,0,91,13,0,0,0,0,0,0, + 0,0,83,2,26,0,91,15,0,0,0,0,0,0,0,0, + 85,0,82,17,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,91,10,0,0,0,0,0,0,0,0, + 53,1,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 19,0,53,0,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,36,0,41,3,122,54,82,101,116,117,114,110,32,116, + 114,117,101,32,105,102,32,116,104,101,32,112,97,116,104,110, + 97,109,101,32,105,115,32,114,101,115,101,114,118,101,100,32, + 98,121,32,116,104,101,32,115,121,115,116,101,109,46,114,123, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,51,0,0,0,243,56,0,0,0,35,0,32, + 0,149,0,85,0,19,0,72,16,0,0,110,1,91,1,0, + 0,0,0,0,0,0,0,85,1,53,1,0,0,0,0,0, + 0,118,0,149,5,32,0,77,18,0,0,11,0,32,0,103, + 0,55,3,102,1,169,1,78,41,1,218,15,95,105,115,114, + 101,115,101,114,118,101,100,110,97,109,101,41,2,218,2,46, + 48,218,4,110,97,109,101,115,2,0,0,0,32,32,114,60, + 0,0,0,218,9,60,103,101,110,101,120,112,114,62,218,29, + 105,115,114,101,115,101,114,118,101,100,46,60,108,111,99,97, + 108,115,62,46,60,103,101,110,101,120,112,114,62,60,1,0, + 0,115,26,0,0,0,233,0,128,0,208,14,75,210,49,74, + 168,20,140,127,152,116,215,15,36,208,15,36,210,49,74,249, + 115,4,0,0,0,130,24,26,1,41,9,114,69,0,0,0, + 114,83,0,0,0,114,14,0,0,0,114,74,0,0,0,114, + 40,0,0,0,114,37,0,0,0,218,3,97,110,121,218,8, + 114,101,118,101,114,115,101,100,114,15,0,0,0,114,58,0, + 0,0,115,1,0,0,0,32,114,60,0,0,0,114,30,0, + 0,0,114,30,0,0,0,55,1,0,0,115,70,0,0,0, + 128,0,244,8,0,12,14,143,59,138,59,148,121,160,20,147, + 127,160,113,209,23,41,211,11,42,215,11,50,209,11,50,180, + 54,188,51,211,11,63,128,68,220,11,14,209,14,75,180,24, + 184,36,191,42,185,42,196,83,187,47,212,49,74,211,14,75, + 211,11,75,208,4,75,114,62,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, + 243,196,0,0,0,149,0,85,0,83,1,83,2,4,0,83, + 3,59,0,0,0,97,5,0,0,85,0,83,4,59,1,0, + 0,36,0,91,0,0,0,0,0,0,0,0,0,82,3,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,4,25,0,0,0,125,4,110,69,100,5,116,0,0, - 0,0,0,0,0,0,0,106,14,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,118,1,114,2,124, - 0,83,0,9,0,116,0,0,0,0,0,0,0,0,0,106, - 14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,6,25,0,0,0,125,5,116,19,0,0,0, - 0,0,0,0,0,124,5,116,0,0,0,0,0,0,0,0, - 0,106,14,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,5,25,0,0,0,171,2,0,0,0, - 0,0,0,125,4,124,2,100,3,107,55,0,0,114,115,124, - 0,100,3,124,2,26,0,125,6,116,5,0,0,0,0,0, - 0,0,0,124,6,116,6,0,0,0,0,0,0,0,0,171, - 2,0,0,0,0,0,0,114,21,116,1,0,0,0,0,0, - 0,0,0,106,20,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,6,171,1,0,0,0,0,0, - 0,125,6,116,0,0,0,0,0,0,0,0,0,106,14,0, + 0,85,0,53,1,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,97,1,0,0,103,5,85,0,82,5,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, + 6,53,1,0,0,0,0,0,0,83,7,5,0,0,0,82, + 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,83,8,53,1,0,0,0,0,0,0,82,9,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,106,23,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,8,171,1,0,0,0,0,0,0,125, - 7,124,6,124,7,107,55,0,0,114,37,124,7,116,25,0, - 0,0,0,0,0,0,0,124,4,171,1,0,0,0,0,0, - 0,107,55,0,0,114,2,124,0,83,0,116,19,0,0,0, - 0,0,0,0,0,116,27,0,0,0,0,0,0,0,0,124, - 4,171,1,0,0,0,0,0,0,124,6,171,2,0,0,0, - 0,0,0,125,4,116,5,0,0,0,0,0,0,0,0,124, - 0,116,6,0,0,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,114,21,116,1,0,0,0,0,0,0,0,0,106, - 28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,4,171,1,0,0,0,0,0,0,125,4,124, - 4,124,0,124,2,100,9,26,0,122,0,0,0,83,0,35, - 0,116,16,0,0,0,0,0,0,0,0,36,0,114,5,1, - 0,100,7,125,5,89,0,140,207,119,0,120,3,89,0,119, - 1,41,10,122,76,69,120,112,97,110,100,32,126,32,97,110, - 100,32,126,117,115,101,114,32,99,111,110,115,116,114,117,99, - 116,115,46,10,10,32,32,32,32,73,102,32,117,115,101,114, - 32,111,114,32,36,72,79,77,69,32,105,115,32,117,110,107, - 110,111,119,110,44,32,100,111,32,110,111,116,104,105,110,103, - 46,243,1,0,0,0,126,218,1,126,114,87,0,0,0,218, - 11,85,83,69,82,80,82,79,70,73,76,69,218,8,72,79, - 77,69,80,65,84,72,218,9,72,79,77,69,68,82,73,86, - 69,114,117,0,0,0,218,8,85,83,69,82,78,65,77,69, - 78,41,15,114,67,0,0,0,114,68,0,0,0,114,54,0, - 0,0,114,55,0,0,0,114,88,0,0,0,114,129,0,0, - 0,114,59,0,0,0,218,7,101,110,118,105,114,111,110,218, - 8,75,101,121,69,114,114,111,114,114,12,0,0,0,114,81, - 0,0,0,218,3,103,101,116,114,17,0,0,0,114,18,0, - 0,0,114,80,0,0,0,41,8,114,57,0,0,0,218,5, - 116,105,108,100,101,114,133,0,0,0,218,1,110,218,8,117, - 115,101,114,104,111,109,101,114,111,0,0,0,218,11,116,97, - 114,103,101,116,95,117,115,101,114,218,12,99,117,114,114,101, - 110,116,95,117,115,101,114,115,8,0,0,0,32,32,32,32, - 32,32,32,32,114,58,0,0,0,114,30,0,0,0,114,30, - 0,0,0,95,1,0,0,115,123,1,0,0,128,0,244,8, - 0,12,14,143,57,137,57,144,84,139,63,128,68,220,7,17, - 144,36,156,5,212,7,30,216,16,20,137,5,224,16,19,136, - 5,216,11,15,143,63,137,63,152,53,212,11,33,216,15,19, - 136,11,216,11,12,140,99,144,36,139,105,128,113,128,65,216, - 10,11,136,97,138,37,144,68,152,17,145,71,164,61,176,20, - 211,35,54,209,20,54,216,8,9,136,81,137,6,136,1,240, - 3,0,11,12,136,97,138,37,144,68,152,17,145,71,164,61, - 176,20,211,35,54,210,20,54,240,6,0,8,21,156,2,159, - 10,153,10,209,7,34,220,19,21,151,58,145,58,152,109,209, - 19,44,137,8,216,13,23,156,50,159,58,153,58,209,13,37, - 216,15,19,136,11,240,4,3,9,23,220,20,22,151,74,145, - 74,152,123,209,20,43,136,69,244,6,0,20,24,152,5,156, - 114,159,122,153,122,168,42,209,31,53,211,19,54,136,8,224, - 7,8,136,65,130,118,216,22,26,152,49,152,81,144,105,136, - 11,220,11,21,144,107,164,53,212,11,41,220,26,28,159,43, - 153,43,160,107,211,26,50,136,75,220,23,25,151,122,145,122, - 151,126,145,126,160,106,211,23,49,136,12,224,11,22,152,44, - 210,11,38,240,12,0,16,28,156,120,168,8,211,31,49,210, - 15,49,216,23,27,144,11,220,23,27,156,71,160,72,211,28, - 45,168,123,211,23,59,136,72,228,7,17,144,36,156,5,212, - 7,30,220,19,21,151,59,145,59,152,120,211,19,40,136,8, - 224,11,19,144,100,152,49,152,50,144,104,209,11,30,208,4, - 30,248,244,47,0,16,24,242,0,1,9,23,216,20,22,138, - 69,240,3,1,9,23,250,115,18,0,0,0,194,54,19,70, - 11,0,198,11,11,70,25,3,198,24,1,70,25,3,99,1, - 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,3, - 0,0,0,243,236,6,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,125,0,116,5,0,0,0,0,0,0,0,0,124,0, - 116,6,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,114,80,100,1,124,0,118,1,114,6,100,2,124,0, - 118,1,114,2,124,0,83,0,100,3,100,4,108,4,125,1, - 116,7,0,0,0,0,0,0,0,0,124,1,106,10,0,0, + 0,53,0,0,0,0,0,0,0,91,10,0,0,0,0,0, + 0,0,0,59,0,0,0,36,0,41,9,122,54,82,101,116, + 117,114,110,32,116,114,117,101,32,105,102,32,116,104,101,32, + 102,105,108,101,110,97,109,101,32,105,115,32,114,101,115,101, + 114,118,101,100,32,98,121,32,116,104,101,32,115,121,115,116, + 101,109,46,114,96,0,0,0,78,41,2,114,2,0,0,0, + 218,1,32,41,2,114,2,0,0,0,114,3,0,0,0,84, + 114,2,0,0,0,114,8,0,0,0,114,180,0,0,0,41, + 6,218,15,95,114,101,115,101,114,118,101,100,95,99,104,97, + 114,115,218,12,105,110,116,101,114,115,101,99,116,105,111,110, + 218,9,112,97,114,116,105,116,105,111,110,114,136,0,0,0, + 114,125,0,0,0,218,15,95,114,101,115,101,114,118,101,100, + 95,110,97,109,101,115,41,1,114,174,0,0,0,115,1,0, + 0,0,32,114,60,0,0,0,114,172,0,0,0,114,172,0, + 0,0,62,1,0,0,115,98,0,0,0,128,0,240,6,0, + 8,12,136,66,136,67,128,121,144,74,211,7,30,216,15,19, + 152,59,209,15,38,208,8,38,244,8,0,8,23,215,7,35, + 209,7,35,160,68,215,7,41,209,7,41,216,15,19,240,8, + 0,12,16,143,62,137,62,152,35,211,11,30,152,113,209,11, + 33,215,11,40,209,11,40,168,19,211,11,45,215,11,51,209, + 11,51,211,11,53,188,31,209,11,72,208,4,72,114,62,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,5, + 0,0,0,3,0,0,0,243,78,3,0,0,149,0,91,0, + 0,0,0,0,0,0,0,0,82,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,85,0, + 53,1,0,0,0,0,0,0,110,0,91,5,0,0,0,0, + 0,0,0,0,85,0,91,6,0,0,0,0,0,0,0,0, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 97,5,0,0,83,1,110,1,83,2,110,2,79,4,83,3, + 110,1,83,4,110,2,85,0,82,9,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,2,53,1, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,100,2, + 0,0,85,0,36,0,83,5,91,11,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,112,67,88,52, + 58,18,0,0,97,28,0,0,88,3,5,0,0,0,85,1, + 59,1,0,0,97,20,0,0,85,3,83,5,45,13,0,0, + 110,3,88,52,58,18,0,0,97,10,0,0,88,3,5,0, + 0,0,85,1,59,1,0,0,97,2,0,0,77,20,0,0, + 83,6,91,0,0,0,0,0,0,0,0,0,82,12,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,106,12,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,122,0,0,0,100,5,122,0,0,0, - 100,6,171,2,0,0,0,0,0,0,125,2,100,7,125,3, - 100,2,125,4,100,8,125,5,100,9,125,6,100,1,125,7, - 116,15,0,0,0,0,0,0,0,0,116,0,0,0,0,0, - 0,0,0,0,100,10,100,4,171,3,0,0,0,0,0,0, - 125,8,110,68,100,11,124,0,118,1,114,6,100,12,124,0, - 118,1,114,2,124,0,83,0,100,3,100,4,108,4,125,1, - 124,1,106,10,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,106,12,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,122,0,0,0, - 100,5,122,0,0,0,125,2,100,13,125,3,100,12,125,4, - 100,14,125,5,100,15,125,6,100,11,125,7,116,0,0,0, - 0,0,0,0,0,0,106,16,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,125,8,124,0,100,4, - 100,3,26,0,125,9,100,3,125,10,116,19,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,125,11, - 124,10,124,11,107,2,0,0,144,2,114,5,124,0,124,10, - 124,10,100,16,122,0,0,0,26,0,125,12,124,12,124,3, - 107,40,0,0,114,53,124,0,124,10,100,16,122,0,0,0, - 100,4,26,0,125,0,116,19,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,125,11,9,0,124,0, - 106,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,12,171,1,0,0,0,0,0,0,125,10, - 124,9,124,12,124,0,100,4,124,10,100,16,122,0,0,0, - 26,0,122,0,0,0,122,13,0,0,125,9,144,1,110,183, - 124,12,124,4,107,40,0,0,114,141,124,0,124,10,100,16, - 122,0,0,0,124,10,100,17,122,0,0,0,26,0,124,4, - 107,40,0,0,114,12,124,9,124,12,122,13,0,0,125,9, - 124,10,100,16,122,13,0,0,125,10,144,1,110,152,124,0, - 124,10,100,16,122,0,0,0,100,4,26,0,125,0,116,19, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,125,11,9,0,124,0,106,21,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,4,171,1, - 0,0,0,0,0,0,125,10,124,0,100,4,124,10,26,0, - 125,13,9,0,124,8,128,58,116,1,0,0,0,0,0,0, - 0,0,106,24,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,116,0,0,0,0,0,0,0,0,0, - 106,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,116,1,0,0,0,0,0,0,0,0,106,26, + 59,0,0,0,97,20,0,0,91,0,0,0,0,0,0,0, + 0,0,82,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,6,5,0,0,0,110,5,79,83, + 83,7,91,0,0,0,0,0,0,0,0,0,82,12,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,13,171,1,0,0,0,0,0,0,25,0,0,0, - 171,1,0,0,0,0,0,0,125,14,110,5,124,8,124,13, - 25,0,0,0,125,14,124,9,124,14,122,13,0,0,125,9, - 144,1,110,37,124,12,124,7,107,40,0,0,144,1,114,26, - 124,0,124,10,100,16,122,0,0,0,124,10,100,17,122,0, - 0,0,26,0,124,7,107,40,0,0,114,12,124,9,124,12, - 122,13,0,0,125,9,124,10,100,16,122,13,0,0,125,10, - 144,1,110,5,124,0,124,10,100,16,122,0,0,0,124,10, - 100,17,122,0,0,0,26,0,124,5,107,40,0,0,114,114, - 124,0,124,10,100,17,122,0,0,0,100,4,26,0,125,0, - 116,19,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,125,11,9,0,124,0,106,21,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,6, - 171,1,0,0,0,0,0,0,125,10,124,0,100,4,124,10, - 26,0,125,13,9,0,124,8,128,58,116,1,0,0,0,0, - 0,0,0,0,106,24,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,0,0,0,0,0,0,0, - 0,0,106,16,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,116,1,0,0,0,0,0,0,0,0, - 106,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,13,171,1,0,0,0,0,0,0,25,0, - 0,0,171,1,0,0,0,0,0,0,125,14,110,5,124,8, - 124,13,25,0,0,0,125,14,124,9,124,14,122,13,0,0, - 125,9,110,133,124,0,100,4,100,3,26,0,125,13,124,10, - 100,16,122,13,0,0,125,10,124,0,124,10,124,10,100,16, - 122,0,0,0,26,0,125,12,124,12,114,29,124,12,124,2, - 118,0,114,25,124,13,124,12,122,13,0,0,125,13,124,10, - 100,16,122,13,0,0,125,10,124,0,124,10,124,10,100,16, - 122,0,0,0,26,0,125,12,124,12,114,5,124,12,124,2, - 118,0,114,1,140,25,9,0,124,8,128,58,116,1,0,0, - 0,0,0,0,0,0,106,24,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,116,0,0,0,0,0, - 0,0,0,0,106,16,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,1,0,0,0,0,0,0, - 0,0,106,26,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,13,171,1,0,0,0,0,0,0, - 25,0,0,0,171,1,0,0,0,0,0,0,125,14,110,5, - 124,8,124,13,25,0,0,0,125,14,124,9,124,14,122,13, - 0,0,125,9,124,12,114,11,124,10,100,16,122,23,0,0, - 125,10,110,5,124,9,124,12,122,13,0,0,125,9,124,10, - 100,16,122,13,0,0,125,10,124,10,124,11,107,2,0,0, - 114,2,144,2,140,5,124,9,83,0,35,0,116,22,0,0, - 0,0,0,0,0,0,36,0,114,16,1,0,124,9,124,12, - 124,0,122,0,0,0,122,13,0,0,125,9,124,11,100,16, - 122,10,0,0,125,10,89,0,140,38,119,0,120,3,89,0, - 119,1,35,0,116,28,0,0,0,0,0,0,0,0,36,0, - 114,12,1,0,124,4,124,13,122,0,0,0,124,4,122,0, - 0,0,125,14,89,0,144,1,140,106,119,0,120,3,89,0, - 119,1,35,0,116,22,0,0,0,0,0,0,0,0,36,0, - 114,16,1,0,124,9,124,4,124,0,122,0,0,0,122,13, - 0,0,125,9,124,11,100,16,122,10,0,0,125,10,89,0, - 140,90,119,0,120,3,89,0,119,1,35,0,116,28,0,0, - 0,0,0,0,0,0,36,0,114,14,1,0,124,7,124,5, - 122,0,0,0,124,13,122,0,0,0,124,6,122,0,0,0, - 125,14,89,0,140,255,119,0,120,3,89,0,119,1,35,0, - 116,22,0,0,0,0,0,0,0,0,36,0,114,19,1,0, - 124,9,124,7,124,5,122,0,0,0,124,0,122,0,0,0, - 122,13,0,0,125,9,124,11,100,16,122,10,0,0,125,10, - 89,0,140,147,119,0,120,3,89,0,119,1,35,0,116,28, - 0,0,0,0,0,0,0,0,36,0,114,8,1,0,124,7, - 124,13,122,0,0,0,125,14,89,0,140,185,119,0,120,3, - 89,0,119,1,41,18,122,102,69,120,112,97,110,100,32,115, - 104,101,108,108,32,118,97,114,105,97,98,108,101,115,32,111, - 102,32,116,104,101,32,102,111,114,109,115,32,36,118,97,114, - 44,32,36,123,118,97,114,125,32,97,110,100,32,37,118,97, - 114,37,46,10,10,32,32,32,32,85,110,107,110,111,119,110, - 32,118,97,114,105,97,98,108,101,115,32,97,114,101,32,108, - 101,102,116,32,117,110,99,104,97,110,103,101,100,46,243,1, - 0,0,0,36,243,1,0,0,0,37,114,8,0,0,0,78, - 122,2,95,45,218,5,97,115,99,105,105,243,1,0,0,0, - 39,243,1,0,0,0,123,243,1,0,0,0,125,218,8,101, - 110,118,105,114,111,110,98,218,1,36,218,1,37,218,1,39, - 218,1,123,218,1,125,114,87,0,0,0,114,118,0,0,0, - 41,15,114,67,0,0,0,114,68,0,0,0,114,54,0,0, - 0,114,55,0,0,0,218,6,115,116,114,105,110,103,218,13, - 97,115,99,105,105,95,108,101,116,116,101,114,115,218,6,100, - 105,103,105,116,115,218,7,103,101,116,97,116,116,114,114,169, - 0,0,0,114,129,0,0,0,114,126,0,0,0,114,148,0, - 0,0,114,80,0,0,0,114,81,0,0,0,114,170,0,0, - 0,41,15,114,57,0,0,0,114,190,0,0,0,218,8,118, - 97,114,99,104,97,114,115,218,5,113,117,111,116,101,218,7, - 112,101,114,99,101,110,116,218,5,98,114,97,99,101,218,6, - 114,98,114,97,99,101,218,6,100,111,108,108,97,114,114,169, - 0,0,0,218,3,114,101,115,114,126,0,0,0,218,7,112, - 97,116,104,108,101,110,218,1,99,218,3,118,97,114,218,5, - 118,97,108,117,101,115,15,0,0,0,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,114,58,0,0,0,114,31, - 0,0,0,114,31,0,0,0,156,1,0,0,115,72,4,0, - 0,128,0,244,8,0,12,14,143,57,137,57,144,84,139,63, - 128,68,220,7,17,144,36,156,5,212,7,30,216,11,15,144, - 116,209,11,27,160,4,168,68,209,32,48,216,19,23,136,75, - 219,8,21,220,19,24,152,22,215,25,45,209,25,45,176,6, - 183,13,177,13,209,25,61,192,4,209,25,68,192,103,211,19, - 78,136,8,216,16,21,136,5,216,18,22,136,7,216,16,20, - 136,5,216,17,21,136,6,216,17,21,136,6,220,18,25,156, - 34,152,106,168,36,211,18,47,137,7,224,11,14,144,100,137, - 63,152,115,168,36,153,127,216,19,23,136,75,219,8,21,216, - 19,25,215,19,39,209,19,39,168,38,175,45,169,45,209,19, - 55,184,36,209,19,62,136,8,216,16,20,136,5,216,18,21, - 136,7,216,16,19,136,5,216,17,20,136,6,216,17,20,136, - 6,220,18,20,151,42,145,42,136,7,216,10,14,136,114,144, - 1,136,40,128,67,216,12,13,128,69,220,14,17,144,36,139, - 105,128,71,216,10,15,144,39,139,47,216,12,16,144,21,144, - 117,152,81,145,119,208,12,31,136,1,216,11,12,144,5,138, - 58,216,19,23,152,5,160,1,153,9,152,10,208,19,35,136, - 68,220,22,25,152,36,147,105,136,71,240,2,5,13,36,216, - 24,28,159,10,153,10,160,49,155,13,144,5,216,16,19,144, - 113,152,52,160,10,160,21,168,17,161,25,208,27,43,209,23, - 43,209,16,43,146,3,240,8,0,14,15,144,39,138,92,216, - 15,19,144,69,152,65,145,73,152,101,160,97,153,105,208,15, - 40,168,71,210,15,51,216,16,19,144,113,145,8,144,3,216, - 16,21,152,17,145,10,146,5,224,23,27,152,69,160,33,153, - 71,152,72,144,126,144,4,220,26,29,152,100,155,41,144,7, - 240,2,14,17,33,216,28,32,159,74,153,74,160,119,211,28, - 47,144,69,240,10,0,27,31,152,118,160,5,152,44,144,67, - 240,2,6,21,56,216,27,34,152,63,220,36,38,167,75,161, - 75,180,2,183,10,177,10,188,50,191,59,185,59,192,115,211, - 59,75,209,48,76,211,36,77,153,69,224,36,43,168,67,161, - 76,152,69,240,6,0,21,24,152,53,145,76,146,67,216,13, - 14,144,38,139,91,216,15,19,144,69,152,65,145,73,152,101, - 160,97,153,105,208,15,40,168,70,210,15,50,216,16,19,144, - 113,145,8,144,3,216,16,21,152,17,145,10,146,5,216,17, - 21,144,101,152,97,145,105,160,5,168,1,161,9,208,17,42, - 168,101,210,17,51,216,23,27,152,69,160,33,153,71,152,72, - 144,126,144,4,220,26,29,152,100,155,41,144,7,240,2,14, - 17,33,216,28,32,159,74,153,74,160,118,211,28,46,144,69, - 240,10,0,27,31,152,118,160,5,152,44,144,67,240,2,6, - 21,62,216,27,34,152,63,220,36,38,167,75,161,75,180,2, - 183,10,177,10,188,50,191,59,185,59,192,115,211,59,75,209, - 48,76,211,36,77,153,69,224,36,43,168,67,161,76,152,69, - 240,6,0,21,24,152,53,145,76,145,67,224,22,26,152,50, - 152,65,144,104,144,3,216,16,21,152,17,145,10,144,5,216, - 20,24,152,21,152,117,160,113,153,121,208,20,41,144,1,217, - 22,23,152,65,160,24,153,77,216,20,23,152,49,145,72,144, - 67,216,20,25,152,81,145,74,144,69,216,24,28,152,85,160, - 53,168,49,161,57,208,24,45,144,65,241,7,0,23,24,152, - 65,160,24,154,77,240,8,6,17,41,216,23,30,144,127,220, - 32,34,167,11,161,11,172,66,175,74,169,74,180,114,183,123, - 177,123,192,51,211,55,71,209,44,72,211,32,73,153,5,224, - 32,39,168,3,161,12,152,5,240,6,0,17,20,144,117,145, - 12,144,3,217,19,20,216,20,25,152,81,145,74,145,69,224, - 12,15,144,49,137,72,136,67,216,8,13,144,17,137,10,136, - 5,240,87,2,0,11,16,144,39,140,47,240,88,2,0,12, - 15,128,74,248,244,73,2,0,20,30,242,0,2,13,36,216, - 16,19,144,113,152,52,145,120,145,15,144,3,216,24,31,160, - 33,153,11,146,5,240,5,2,13,36,251,244,44,0,28,36, - 242,0,1,21,56,216,32,39,168,35,161,13,176,7,209,32, - 55,155,5,240,3,1,21,56,251,244,21,0,24,34,242,0, - 2,17,40,216,20,23,152,55,160,84,153,62,209,20,41,144, - 67,216,28,35,160,97,153,75,146,69,240,5,2,17,40,251, - 244,64,1,0,28,36,242,0,1,21,62,216,32,38,168,21, - 161,14,176,19,209,32,52,176,118,209,32,61,154,5,240,3, - 1,21,62,251,244,21,0,24,34,242,0,2,17,40,216,20, - 23,152,54,160,69,153,62,168,68,209,27,48,209,20,48,144, - 67,216,28,35,160,97,153,75,146,69,240,5,2,17,40,251, - 244,52,0,24,32,242,0,1,17,41,216,28,34,160,83,153, - 76,146,69,240,3,1,17,41,250,115,111,0,0,0,195,51, - 31,75,25,0,197,7,17,76,13,0,197,30,65,1,75,53, - 0,199,40,17,77,3,0,199,63,65,1,76,41,0,201,56, - 65,1,77,34,0,203,25,22,75,50,3,203,49,1,75,50, - 3,203,53,17,76,10,3,204,9,1,76,10,3,204,13,22, - 76,38,3,204,37,1,76,38,3,204,41,20,77,0,3,204, - 63,1,77,0,3,205,3,25,77,31,3,205,30,1,77,31, - 3,205,34,14,77,51,3,205,50,1,77,51,3,41,1,218, - 14,95,112,97,116,104,95,110,111,114,109,112,97,116,104,99, - 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,12,2,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,125,0,116,5,0,0,0,0,0,0,0,0,124, - 0,116,6,0,0,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,114,9,100,1,125,1,100,2,125,2,100,3,125, - 3,100,4,125,4,110,8,100,5,125,1,100,6,125,2,100, - 7,125,3,100,8,125,4,124,0,106,9,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,2,124, - 1,171,2,0,0,0,0,0,0,125,0,116,11,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,92, - 3,0,0,125,5,125,6,125,0,124,5,124,6,122,0,0, - 0,125,7,124,0,106,13,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,125,8,100,9,125,9,124,9,116,15,0,0,0, - 0,0,0,0,0,124,8,171,1,0,0,0,0,0,0,107, - 2,0,0,114,95,124,8,124,9,25,0,0,0,114,8,124, - 8,124,9,25,0,0,0,124,3,107,40,0,0,114,4,124, - 8,124,9,61,0,110,63,124,8,124,9,25,0,0,0,124, - 4,107,40,0,0,114,50,124,9,100,9,107,68,0,0,114, - 28,124,8,124,9,100,10,122,10,0,0,25,0,0,0,124, - 4,107,55,0,0,114,17,124,8,124,9,100,10,122,10,0, - 0,124,9,100,10,122,0,0,0,133,2,61,0,124,9,100, - 10,122,23,0,0,125,9,110,22,124,9,100,9,107,40,0, - 0,114,6,124,6,114,4,124,8,124,9,61,0,110,11,124, - 9,100,10,122,13,0,0,125,9,110,5,124,9,100,10,122, - 13,0,0,125,9,124,9,116,15,0,0,0,0,0,0,0, - 0,124,8,171,1,0,0,0,0,0,0,107,2,0,0,114, - 1,140,95,124,7,115,19,124,8,115,17,124,8,106,17,0, + 59,1,0,0,97,2,0,0,85,0,36,0,91,0,0,0, + 0,0,0,0,0,0,82,12,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,82,15,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,8, + 83,9,53,2,0,0,0,0,0,0,110,6,91,17,0,0, + 0,0,0,0,0,0,85,6,91,0,0,0,0,0,0,0, + 0,0,82,12,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,7,5,0,0,0,53,2,0,0, + 0,0,0,0,110,5,85,3,83,5,58,119,0,0,97,122, + 0,0,85,0,83,5,85,3,4,0,110,7,91,5,0,0, + 0,0,0,0,0,0,85,7,91,6,0,0,0,0,0,0, + 0,0,53,2,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,97,22,0,0,91,0,0,0,0,0,0,0,0,0, + 82,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,34,0,85,7,53,1,0,0,0,0,0,0, + 110,7,91,0,0,0,0,0,0,0,0,0,82,12,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,3,171,1,0,0,0,0,0,0,1,0,124,7,124, - 1,106,19,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,8,171,1,0,0,0,0,0,0,122, - 0,0,0,83,0,41,11,122,48,78,111,114,109,97,108,105, - 122,101,32,112,97,116,104,44,32,101,108,105,109,105,110,97, - 116,105,110,103,32,100,111,117,98,108,101,32,115,108,97,115, - 104,101,115,44,32,101,116,99,46,114,84,0,0,0,114,85, - 0,0,0,114,136,0,0,0,243,2,0,0,0,46,46,114, - 4,0,0,0,114,6,0,0,0,114,2,0,0,0,114,3, - 0,0,0,114,8,0,0,0,114,87,0,0,0,41,10,114, - 67,0,0,0,114,68,0,0,0,114,54,0,0,0,114,55, - 0,0,0,114,72,0,0,0,114,14,0,0,0,114,15,0, - 0,0,114,129,0,0,0,218,6,97,112,112,101,110,100,114, - 12,0,0,0,41,10,114,57,0,0,0,114,36,0,0,0, - 114,39,0,0,0,114,34,0,0,0,114,35,0,0,0,114, - 111,0,0,0,114,112,0,0,0,218,6,112,114,101,102,105, - 120,218,5,99,111,109,112,115,114,133,0,0,0,115,10,0, - 0,0,32,32,32,32,32,32,32,32,32,32,114,58,0,0, - 0,114,32,0,0,0,114,32,0,0,0,16,2,0,0,115, - 51,1,0,0,128,0,228,15,17,143,121,137,121,152,20,139, - 127,136,4,220,11,21,144,100,156,69,212,11,34,216,18,23, - 136,67,216,21,25,136,70,216,21,25,136,70,216,21,26,137, - 70,224,18,22,136,67,216,21,24,136,70,216,21,24,136,70, - 216,21,25,136,70,216,15,19,143,124,137,124,152,70,160,67, - 211,15,40,136,4,220,28,37,160,100,155,79,209,8,25,136, - 5,136,116,144,84,216,17,22,152,20,145,28,136,6,216,16, - 20,151,10,145,10,152,51,147,15,136,5,216,12,13,136,1, - 216,14,15,148,35,144,101,147,42,138,110,216,19,24,152,17, - 146,56,152,117,160,81,153,120,168,54,210,31,49,216,20,25, - 152,33,145,72,216,17,22,144,113,145,24,152,86,210,17,35, - 216,19,20,144,113,146,53,152,85,160,49,160,81,161,51,153, - 90,168,54,210,29,49,216,24,29,152,97,160,1,153,99,160, - 33,160,65,161,35,152,103,152,14,216,20,21,152,17,145,70, - 145,65,216,21,22,152,33,146,86,161,4,216,24,29,152,97, - 153,8,224,20,21,152,17,145,70,145,65,224,16,17,144,81, - 145,6,144,1,240,25,0,15,16,148,35,144,101,147,42,139, - 110,241,28,0,16,22,153,101,216,12,17,143,76,137,76,152, - 22,212,12,32,216,15,21,152,3,159,8,153,8,160,21,155, - 15,209,15,39,208,8,39,114,60,0,0,0,41,1,218,16, - 95,103,101,116,102,117,108,108,112,97,116,104,110,97,109,101, - 99,1,0,0,0,0,0,0,0,0,0,0,0,6,0,0, - 0,3,0,0,0,243,244,1,0,0,151,0,9,0,116,1, - 0,0,0,0,0,0,0,0,116,3,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,83,0,35,0,116,4,0,0,0,0,0,0, - 0,0,116,6,0,0,0,0,0,0,0,0,102,2,36,0, - 114,3,1,0,89,0,110,4,119,0,120,3,89,0,119,1, - 116,9,0,0,0,0,0,0,0,0,106,10,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,125,0,116,13,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,115,164, - 116,15,0,0,0,0,0,0,0,0,124,0,116,16,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,114,19, - 100,1,125,1,116,8,0,0,0,0,0,0,0,0,106,18, + 82,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,10,53,1,0,0,0,0,0,0,110,8, + 88,120,58,119,0,0,97,38,0,0,85,8,91,21,0,0, + 0,0,0,0,0,0,85,5,53,1,0,0,0,0,0,0, + 58,119,0,0,97,2,0,0,85,0,36,0,91,17,0,0, + 0,0,0,0,0,0,91,23,0,0,0,0,0,0,0,0, + 85,5,53,1,0,0,0,0,0,0,85,7,53,2,0,0, + 0,0,0,0,110,5,91,5,0,0,0,0,0,0,0,0, + 85,0,91,6,0,0,0,0,0,0,0,0,53,2,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,97,22,0,0, + 91,0,0,0,0,0,0,0,0,0,82,24,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 85,5,53,1,0,0,0,0,0,0,110,5,88,80,85,3, + 83,11,4,0,45,0,0,0,36,0,41,12,122,72,69,120, + 112,97,110,100,32,126,32,97,110,100,32,126,117,115,101,114, + 32,99,111,110,115,116,114,117,99,116,115,46,10,10,73,102, + 32,117,115,101,114,32,111,114,32,36,72,79,77,69,32,105, + 115,32,117,110,107,110,111,119,110,44,32,100,111,32,110,111, + 116,104,105,110,103,46,114,54,0,0,0,243,1,0,0,0, + 126,114,55,0,0,0,218,1,126,114,91,0,0,0,218,11, + 85,83,69,82,80,82,79,70,73,76,69,218,8,72,79,77, + 69,80,65,84,72,218,9,72,79,77,69,68,82,73,86,69, + 114,122,0,0,0,218,8,85,83,69,82,78,65,77,69,78, + 41,13,114,69,0,0,0,114,70,0,0,0,114,56,0,0, + 0,114,57,0,0,0,114,92,0,0,0,114,135,0,0,0, + 218,7,101,110,118,105,114,111,110,218,3,103,101,116,114,12, + 0,0,0,114,83,0,0,0,114,17,0,0,0,114,18,0, + 0,0,114,82,0,0,0,41,9,114,59,0,0,0,114,103, + 0,0,0,218,5,116,105,108,100,101,114,139,0,0,0,218, + 1,110,218,8,117,115,101,114,104,111,109,101,114,113,0,0, + 0,218,11,116,97,114,103,101,116,95,117,115,101,114,218,12, + 99,117,114,114,101,110,116,95,117,115,101,114,115,9,0,0, + 0,32,32,32,32,32,32,32,32,32,114,60,0,0,0,114, + 31,0,0,0,114,31,0,0,0,87,1,0,0,115,98,1, + 0,0,128,0,244,8,0,12,14,143,57,138,57,144,84,139, + 63,128,68,220,7,17,144,36,156,5,215,7,30,209,7,30, + 216,15,21,136,4,216,16,20,137,5,224,15,20,136,4,216, + 16,19,136,5,216,11,15,143,63,137,63,152,53,215,11,33, + 209,11,33,216,15,19,136,11,216,11,12,140,99,144,36,139, + 105,128,113,216,10,11,139,37,144,68,145,71,160,52,211,20, + 39,216,8,9,136,81,137,6,136,1,240,3,0,11,12,139, + 37,144,68,145,71,160,52,213,20,39,240,6,0,8,21,156, + 2,159,10,153,10,211,7,34,220,19,21,151,58,145,58,152, + 109,209,19,44,137,8,216,9,19,156,50,159,58,153,58,211, + 9,37,216,15,19,136,11,228,16,18,151,10,145,10,151,14, + 145,14,152,123,168,66,211,16,47,136,5,220,19,23,152,5, + 156,114,159,122,153,122,168,42,209,31,53,211,19,54,136,8, + 224,7,8,136,65,131,118,216,22,26,152,49,152,81,144,105, + 136,11,220,11,21,144,107,164,53,215,11,41,209,11,41,220, + 26,28,159,43,154,43,160,107,211,26,50,136,75,220,23,25, + 151,122,145,122,151,126,145,126,160,106,211,23,49,136,12,224, + 11,22,211,11,38,240,12,0,16,28,156,120,168,8,211,31, + 49,211,15,49,216,23,27,144,11,220,23,27,156,71,160,72, + 211,28,45,168,123,211,23,59,136,72,228,7,17,144,36,156, + 5,215,7,30,209,7,30,220,19,21,151,59,146,59,152,120, + 211,19,40,136,8,224,11,19,152,49,152,50,144,104,209,11, + 30,208,4,30,114,62,0,0,0,122,46,39,91,94,39,93, + 42,39,63,124,37,40,37,124,91,94,37,93,42,37,63,41, + 124,92,36,40,92,36,124,91,45,92,119,93,43,124,92,123, + 91,94,125,93,42,92,125,63,41,99,1,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,58, + 2,0,0,94,4,94,5,94,6,94,7,94,8,149,0,91, + 0,0,0,0,0,0,0,0,0,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,85, + 0,53,1,0,0,0,0,0,0,110,0,91,5,0,0,0, + 0,0,0,0,0,85,0,91,6,0,0,0,0,0,0,0, + 0,53,2,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,117,0,0,83,1,85,0,59,1,0,0,97,8,0, + 0,83,2,85,0,59,1,0,0,97,2,0,0,85,0,36, + 0,91,8,0,0,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,100,60,0,0,83,3,83,4,75,5,110,1,85, + 1,82,13,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,91,14,0,0,0,0,0,0,0,0,82, + 17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,53,0,0,0,0,0,0,0,85,1,82,18,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,125,2,110,18,100,2,125,1,116,8,0,0,0,0, - 0,0,0,0,106,20,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,125,2,116,23,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,92,3, - 0,0,125,3,125,4,125,0,124,3,115,2,124,4,114,75, - 9,0,116,25,0,0,0,0,0,0,0,0,116,1,0,0, - 0,0,0,0,0,0,124,3,124,4,122,0,0,0,171,1, - 0,0,0,0,0,0,124,0,171,2,0,0,0,0,0,0, - 125,0,116,3,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,83,0,35,0,116,4,0,0,0,0, - 0,0,0,0,116,6,0,0,0,0,0,0,0,0,102,2, - 36,0,114,21,1,0,124,3,124,1,122,0,0,0,124,0, - 122,0,0,0,125,0,89,0,116,3,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,83,0,119,0, - 120,3,89,0,119,1,116,25,0,0,0,0,0,0,0,0, - 2,0,124,2,171,0,0,0,0,0,0,0,124,0,171,2, - 0,0,0,0,0,0,125,0,116,3,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,83,0,41,3, - 250,38,82,101,116,117,114,110,32,116,104,101,32,97,98,115, - 111,108,117,116,101,32,118,101,114,115,105,111,110,32,111,102, - 32,97,32,112,97,116,104,46,114,84,0,0,0,114,4,0, - 0,0,41,13,114,211,0,0,0,114,32,0,0,0,114,147, - 0,0,0,114,148,0,0,0,114,67,0,0,0,114,68,0, - 0,0,114,11,0,0,0,114,54,0,0,0,114,55,0,0, - 0,218,7,103,101,116,99,119,100,98,218,6,103,101,116,99, - 119,100,114,14,0,0,0,114,12,0,0,0,41,5,114,57, - 0,0,0,114,36,0,0,0,114,215,0,0,0,114,111,0, - 0,0,114,112,0,0,0,115,5,0,0,0,32,32,32,32, - 32,114,58,0,0,0,114,33,0,0,0,114,33,0,0,0, - 70,2,0,0,115,239,0,0,0,128,0,240,4,4,9,17, - 220,19,35,164,72,168,84,163,78,211,19,51,208,12,51,248, - 220,16,23,156,26,208,15,36,242,0,2,9,17,225,12,16, - 240,5,2,9,17,250,244,6,0,16,18,143,121,137,121,152, - 20,139,127,136,4,220,15,20,144,84,140,123,220,15,25,152, - 36,164,5,212,15,38,216,22,27,144,3,220,25,27,159,26, - 153,26,145,6,224,22,26,144,3,220,25,27,159,25,153,25, - 144,6,220,32,41,168,36,163,15,209,12,29,136,69,144,52, - 152,20,225,15,20,153,4,240,2,4,17,46,220,27,31,212, - 32,48,176,21,184,20,177,28,211,32,62,192,4,211,27,69, - 144,68,244,12,0,16,24,152,4,139,126,208,8,29,248,244, - 11,0,25,32,164,26,208,23,44,242,0,2,17,46,224,27, - 32,160,51,153,59,168,20,209,27,45,145,68,244,6,0,16, - 24,152,4,139,126,208,8,29,240,11,2,17,46,250,244,8, - 0,24,28,153,70,155,72,160,100,211,23,43,144,4,220,15, - 23,152,4,139,126,208,8,29,115,30,0,0,0,130,19,22, - 0,150,15,40,3,167,1,40,3,194,20,24,66,55,0,194, - 55,23,67,27,3,195,26,1,67,27,3,99,1,0,0,0, + 0,53,2,0,0,0,0,0,0,82,20,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,113,4,91, + 8,0,0,0,0,0,0,0,0,110,2,83,2,109,7,83, + 5,109,4,83,6,109,8,83,1,109,5,91,23,0,0,0, + 0,0,0,0,0,91,0,0,0,0,0,0,0,0,0,83, + 7,83,4,53,3,0,0,0,0,0,0,109,6,79,101,83, + 8,85,0,59,1,0,0,97,8,0,0,83,9,85,0,59, + 1,0,0,97,2,0,0,85,0,36,0,91,24,0,0,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,100,46,0, + 0,83,3,83,4,75,5,110,1,85,1,82,13,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,91, + 14,0,0,0,0,0,0,0,0,85,1,82,18,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 2,0,0,0,0,0,0,82,20,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,113,12,91,24,0, + 0,0,0,0,0,0,0,110,2,83,9,109,7,83,10,109, + 4,83,11,109,8,83,8,109,5,91,0,0,0,0,0,0, + 0,0,0,82,26,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,109,6,85,4,85,5,85,6,85, + 7,85,8,52,5,83,12,26,0,106,8,110,3,85,2,34, + 0,88,48,53,2,0,0,0,0,0,0,36,0,41,13,122, + 98,69,120,112,97,110,100,32,115,104,101,108,108,32,118,97, + 114,105,97,98,108,101,115,32,111,102,32,116,104,101,32,102, + 111,114,109,115,32,36,118,97,114,44,32,36,123,118,97,114, + 125,32,97,110,100,32,37,118,97,114,37,46,10,10,85,110, + 107,110,111,119,110,32,118,97,114,105,97,98,108,101,115,32, + 97,114,101,32,108,101,102,116,32,117,110,99,104,97,110,103, + 101,100,46,243,1,0,0,0,36,243,1,0,0,0,37,114, + 8,0,0,0,78,243,1,0,0,0,123,243,1,0,0,0, + 125,218,8,101,110,118,105,114,111,110,98,218,1,36,218,1, + 37,218,1,123,218,1,125,99,1,0,0,0,0,0,0,0, + 0,0,0,0,6,0,0,0,19,0,0,0,243,192,1,0, + 0,62,5,149,0,85,0,82,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,110,1,85,1,99, + 5,0,0,85,0,83,1,5,0,0,0,36,0,88,1,5, + 0,0,0,110,2,85,1,83,2,58,88,0,0,97,41,0, + 0,85,2,84,6,58,88,0,0,97,2,0,0,85,2,36, + 0,85,2,82,3,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,84,6,53,1,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,100,5,0,0,85,0,83, + 1,5,0,0,0,36,0,85,2,83,0,83,3,4,0,110, + 2,79,62,85,2,84,4,58,88,0,0,97,2,0,0,85, + 2,36,0,85,2,82,5,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,84,3,53,1,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,97,32,0,0,85, + 2,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,84,7,53,1,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,100,5,0,0,85,0,83,1,5, + 0,0,0,36,0,85,2,83,2,83,3,4,0,110,2,30, + 0,84,5,99,59,0,0,91,6,0,0,0,0,0,0,0, + 0,82,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,91,6,0,0,0,0,0,0,0, + 0,82,10,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,91,6,0,0,0,0,0,0,0,0,82, + 12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,85,2,53,1,0,0,0,0,0,0,5, + 0,0,0,53,1,0,0,0,0,0,0,36,0,84,5,85, + 2,5,0,0,0,36,0,33,0,91,14,0,0,0,0,0, + 0,0,0,7,0,97,8,0,0,32,0,85,0,83,1,5, + 0,0,0,115,2,31,0,36,0,102,0,61,3,31,0,102, + 1,41,4,78,114,8,0,0,0,114,91,0,0,0,114,96, + 0,0,0,41,8,218,9,108,97,115,116,105,110,100,101,120, + 218,8,101,110,100,115,119,105,116,104,114,92,0,0,0,114, + 69,0,0,0,114,82,0,0,0,114,192,0,0,0,114,83, + 0,0,0,218,8,75,101,121,69,114,114,111,114,41,8,218, + 1,109,114,210,0,0,0,114,174,0,0,0,218,5,98,114, + 97,99,101,218,6,100,111,108,108,97,114,114,192,0,0,0, + 218,7,112,101,114,99,101,110,116,218,6,114,98,114,97,99, + 101,115,8,0,0,0,32,32,32,128,128,128,128,128,114,60, + 0,0,0,218,4,114,101,112,108,218,24,101,120,112,97,110, + 100,118,97,114,115,46,60,108,111,99,97,108,115,62,46,114, + 101,112,108,182,1,0,0,115,227,0,0,0,248,128,0,216, + 20,21,151,75,145,75,136,9,216,11,20,209,11,28,216,19, + 20,144,81,145,52,136,75,216,15,16,137,124,136,4,216,11, + 20,152,1,139,62,216,15,19,144,119,139,127,216,23,27,144, + 11,216,19,23,151,61,145,61,160,23,215,19,41,209,19,41, + 216,23,24,152,17,145,116,144,11,216,19,23,152,3,152,18, + 144,57,137,68,224,15,19,144,118,139,126,216,23,27,144,11, + 216,15,19,143,127,137,127,152,117,215,15,37,209,15,37,216, + 23,27,151,125,145,125,160,86,215,23,44,209,23,44,216,27, + 28,152,81,153,52,144,75,216,23,27,152,65,152,98,144,122, + 144,4,240,4,6,9,24,216,15,22,137,127,220,23,25,151, + 123,146,123,164,50,167,58,161,58,172,98,175,107,170,107,184, + 36,211,46,63,209,35,64,211,23,65,208,16,65,224,23,30, + 152,116,145,125,208,16,36,248,220,15,23,243,0,1,9,24, + 216,19,20,144,81,145,52,138,75,240,3,1,9,24,250,115, + 24,0,0,0,194,8,61,67,11,0,195,6,4,67,11,0, + 195,11,15,67,29,3,195,28,1,67,29,3,41,14,114,69, + 0,0,0,114,70,0,0,0,114,56,0,0,0,114,57,0, + 0,0,218,8,95,118,97,114,115,117,98,98,218,2,114,101, + 218,7,99,111,109,112,105,108,101,218,11,95,118,97,114,112, + 97,116,116,101,114,110,114,78,0,0,0,218,5,65,83,67, + 73,73,218,3,115,117,98,218,7,103,101,116,97,116,116,114, + 218,7,95,118,97,114,115,117,98,114,192,0,0,0,41,9, + 114,59,0,0,0,114,221,0,0,0,114,225,0,0,0,114, + 218,0,0,0,114,214,0,0,0,114,215,0,0,0,114,192, + 0,0,0,114,216,0,0,0,114,217,0,0,0,115,9,0, + 0,0,32,32,32,32,64,64,64,64,64,114,60,0,0,0, + 114,32,0,0,0,114,32,0,0,0,151,1,0,0,115,241, + 0,0,0,252,128,0,244,8,0,12,14,143,57,138,57,144, + 84,139,63,128,68,228,7,17,144,36,156,5,215,7,30,209, + 7,30,216,11,15,144,116,211,11,27,160,4,168,68,211,32, + 48,216,19,23,136,75,223,15,23,138,120,219,12,21,216,23, + 25,151,122,145,122,164,43,215,34,52,209,34,52,211,34,54, + 184,2,191,8,185,8,211,23,65,215,23,69,209,23,69,136, + 72,220,14,22,136,3,216,18,22,136,7,216,16,20,136,5, + 216,17,21,136,6,216,17,21,136,6,220,18,25,156,34,152, + 106,168,36,211,18,47,137,7,224,11,14,144,100,139,63,152, + 115,168,36,155,127,216,19,23,136,75,223,15,22,138,119,219, + 12,21,216,22,24,151,106,145,106,164,27,168,98,175,104,169, + 104,211,22,55,215,22,59,209,22,59,136,71,220,14,21,136, + 3,216,18,21,136,7,216,16,19,136,5,216,17,20,136,6, + 216,17,20,136,6,220,18,20,151,42,145,42,136,7,247,4, + 25,5,24,241,0,25,5,24,241,54,0,12,15,136,116,139, + 63,208,4,26,114,62,0,0,0,41,1,218,14,95,112,97, + 116,104,95,110,111,114,109,112,97,116,104,99,1,0,0,0, 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,226,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,125, - 0,116,5,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,115,69,116,7,0,0,0,0,0,0,0, - 0,124,0,116,8,0,0,0,0,0,0,0,0,171,2,0, - 0,0,0,0,0,114,21,116,1,0,0,0,0,0,0,0, - 0,106,10,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,125,1,110, - 20,116,1,0,0,0,0,0,0,0,0,106,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,125,1,116,15,0,0,0,0,0, - 0,0,0,124,1,124,0,171,2,0,0,0,0,0,0,125, - 0,116,17,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,83,0,41,1,114,213,0,0,0,41,9, - 114,67,0,0,0,114,68,0,0,0,114,11,0,0,0,114, - 54,0,0,0,114,55,0,0,0,114,214,0,0,0,114,215, - 0,0,0,114,12,0,0,0,114,32,0,0,0,41,2,114, - 57,0,0,0,218,3,99,119,100,115,2,0,0,0,32,32, - 114,58,0,0,0,114,33,0,0,0,114,33,0,0,0,58, - 2,0,0,115,75,0,0,0,128,0,228,15,17,143,121,137, - 121,152,20,139,127,136,4,220,15,20,144,84,140,123,220,15, - 25,152,36,164,5,212,15,38,220,22,24,151,106,145,106,147, - 108,145,3,228,22,24,151,105,145,105,147,107,144,3,220,19, - 23,152,3,152,84,147,63,136,68,220,15,23,152,4,139,126, - 208,8,29,114,60,0,0,0,41,2,218,17,95,103,101,116, - 102,105,110,97,108,112,97,116,104,110,97,109,101,218,8,114, - 101,97,100,108,105,110,107,99,2,0,0,0,0,0,0,0, - 0,0,0,0,7,0,0,0,3,0,0,0,243,112,1,0, - 0,151,0,100,1,125,2,116,1,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,125,3,116,3,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,124, - 3,118,1,114,111,124,3,106,5,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,116,3,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,1,0,9,0,124,0,125,4,116, - 7,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,125,0,116,9,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,115,46,116,11,0,0,0, - 0,0,0,0,0,124,4,171,1,0,0,0,0,0,0,115, - 5,124,4,125,0,9,0,124,0,83,0,116,13,0,0,0, - 0,0,0,0,0,116,15,0,0,0,0,0,0,0,0,116, - 17,0,0,0,0,0,0,0,0,124,4,171,1,0,0,0, - 0,0,0,124,0,171,2,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,125,0,116,3,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,124,3,118,1,114, - 1,140,111,124,0,83,0,35,0,124,1,36,0,114,26,125, - 5,124,5,106,18,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,2,118,0,114,6,89,0,100, - 0,125,5,126,5,124,0,83,0,130,0,100,0,125,5,126, - 5,119,1,116,20,0,0,0,0,0,0,0,0,36,0,114, - 4,1,0,89,0,124,0,83,0,119,0,120,3,89,0,119, - 1,41,2,78,41,12,114,87,0,0,0,114,118,0,0,0, - 114,86,0,0,0,233,5,0,0,0,233,21,0,0,0,233, - 32,0,0,0,233,50,0,0,0,233,67,0,0,0,233,87, - 0,0,0,105,38,17,0,0,105,40,17,0,0,105,41,17, - 0,0,41,11,218,3,115,101,116,114,10,0,0,0,218,3, - 97,100,100,218,12,95,110,116,95,114,101,97,100,108,105,110, - 107,114,11,0,0,0,114,24,0,0,0,114,32,0,0,0, - 114,12,0,0,0,114,18,0,0,0,218,8,119,105,110,101, - 114,114,111,114,114,148,0,0,0,41,6,114,57,0,0,0, - 218,13,105,103,110,111,114,101,100,95,101,114,114,111,114,218, - 16,97,108,108,111,119,101,100,95,119,105,110,101,114,114,111, - 114,218,4,115,101,101,110,218,8,111,108,100,95,112,97,116, - 104,218,2,101,120,115,6,0,0,0,32,32,32,32,32,32, - 114,58,0,0,0,218,14,95,114,101,97,100,108,105,110,107, - 95,100,101,101,112,114,236,0,0,0,104,2,0,0,115,207, - 0,0,0,128,0,240,30,0,28,76,1,208,8,24,228,15, - 18,139,117,136,4,220,14,22,144,116,139,110,160,68,209,14, - 40,216,12,16,143,72,137,72,148,88,152,100,147,94,212,12, - 36,240,2,19,13,22,216,27,31,144,8,220,23,35,160,68, - 211,23,41,144,4,244,6,0,24,29,152,84,148,123,244,8, - 0,28,34,160,40,212,27,43,216,31,39,152,4,216,24,29, - 240,18,0,16,20,136,11,244,17,0,28,36,164,68,172,23, - 176,24,211,41,58,184,68,211,36,65,211,27,66,144,68,244, - 29,0,15,23,144,116,139,110,160,68,210,14,40,240,44,0, - 16,20,136,11,248,240,15,0,20,33,242,0,3,13,22,216, - 19,21,151,59,145,59,208,34,50,209,19,50,219,20,25,240, - 10,0,16,20,136,11,240,9,0,17,22,251,220,19,29,242, - 0,2,13,22,224,16,21,216,15,19,136,11,240,7,2,13, - 22,250,115,41,0,0,0,181,37,66,11,0,193,29,30,66, - 11,0,194,11,5,66,53,3,194,16,14,66,37,3,194,36, - 1,66,37,3,194,37,12,66,53,3,194,52,1,66,53,3, - 99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,3,0,0,0,243,90,1,0,0,151,0,100,1,125,2, - 124,0,100,0,100,2,26,0,125,3,124,0,114,28,9,0, - 116,1,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,125,0,124,3,114,12,116,3,0,0,0,0, - 0,0,0,0,124,0,124,3,171,2,0,0,0,0,0,0, - 83,0,124,0,83,0,124,3,83,0,35,0,124,1,36,0, - 114,121,125,4,124,4,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,2,118,1,114,1, - 130,0,9,0,116,7,0,0,0,0,0,0,0,0,124,0, - 124,1,172,3,171,2,0,0,0,0,0,0,125,5,124,5, - 124,0,107,55,0,0,114,21,124,3,114,12,116,3,0,0, - 0,0,0,0,0,0,124,5,124,3,171,2,0,0,0,0, - 0,0,110,1,124,5,99,2,89,0,100,0,125,4,126,4, - 83,0,110,11,35,0,124,1,36,0,114,3,1,0,89,0, - 110,4,119,0,120,3,89,0,119,1,116,9,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,92,2, - 0,0,125,0,125,6,124,0,114,12,124,6,115,10,124,0, - 124,3,122,0,0,0,99,2,89,0,100,0,125,4,126,4, - 83,0,124,3,114,12,116,3,0,0,0,0,0,0,0,0, - 124,6,124,3,171,2,0,0,0,0,0,0,110,1,124,6, - 125,3,89,0,100,0,125,4,126,4,110,8,100,0,125,4, - 126,4,119,1,119,0,120,3,89,0,119,1,124,0,114,1, - 140,162,140,135,41,4,78,41,15,114,87,0,0,0,114,118, - 0,0,0,114,86,0,0,0,114,221,0,0,0,114,222,0, - 0,0,114,223,0,0,0,114,224,0,0,0,233,53,0,0, - 0,233,65,0,0,0,114,225,0,0,0,114,226,0,0,0, - 233,123,0,0,0,233,161,0,0,0,105,128,7,0,0,105, - 129,7,0,0,114,8,0,0,0,169,1,114,231,0,0,0, - 41,5,114,218,0,0,0,114,12,0,0,0,114,230,0,0, - 0,114,236,0,0,0,114,15,0,0,0,41,7,114,57,0, - 0,0,114,231,0,0,0,114,232,0,0,0,114,113,0,0, - 0,114,235,0,0,0,218,8,110,101,119,95,112,97,116,104, - 218,4,110,97,109,101,115,7,0,0,0,32,32,32,32,32, - 32,32,114,58,0,0,0,218,27,95,103,101,116,102,105,110, - 97,108,112,97,116,104,110,97,109,101,95,110,111,110,115,116, - 114,105,99,116,114,245,0,0,0,146,2,0,0,115,228,0, - 0,0,128,0,240,36,0,28,88,1,208,8,24,240,8,0, - 16,20,144,66,144,81,136,120,136,4,217,14,18,240,2,23, - 13,58,220,23,40,168,20,211,23,46,144,4,217,43,47,148, - 116,152,68,160,36,211,23,39,208,16,57,176,84,208,16,57, - 240,44,0,16,20,136,11,248,240,43,0,20,33,242,0,20, - 13,58,216,19,21,151,59,145,59,208,38,54,209,19,54,216, - 20,25,240,2,10,17,25,244,8,0,32,46,168,100,216,60, - 73,244,3,1,32,75,1,144,72,224,23,31,160,52,210,23, - 39,217,55,59,156,116,160,72,168,100,212,31,51,192,24,213, - 24,73,240,3,0,24,40,248,224,23,36,242,0,2,17,25, - 225,20,24,240,5,2,17,25,250,244,6,0,30,35,160,52, - 155,91,145,10,144,4,144,100,241,8,0,20,24,161,4,216, - 27,31,160,36,153,59,213,20,38,217,43,47,148,116,152,68, - 160,36,212,23,39,176,84,149,4,251,240,41,20,13,58,250, - 242,9,0,15,19,248,115,77,0,0,0,139,24,40,0,164, - 1,40,0,168,5,66,38,3,173,15,66,33,3,189,33,65, - 37,2,193,30,1,66,38,3,193,36,1,66,33,3,193,37, - 5,65,45,5,193,42,2,66,33,3,193,44,1,65,45,5, - 193,45,25,66,33,3,194,6,1,66,38,3,194,12,16,66, - 33,3,194,33,5,66,38,3,70,41,1,218,6,115,116,114, - 105,99,116,99,1,0,0,0,0,0,0,0,1,0,0,0, - 6,0,0,0,3,0,0,0,243,192,3,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,125,0,116,3,0,0,0,0,0,0,0,0,124, - 0,116,4,0,0,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,114,73,100,1,125,2,100,2,125,3,100,3,125, - 4,116,7,0,0,0,0,0,0,0,0,106,8,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,125,5,116,11,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,116,11,0, - 0,0,0,0,0,0,0,116,7,0,0,0,0,0,0,0, - 0,106,12,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,116,14,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,171,1,0,0,0,0,0,0,107, - 40,0,0,114,55,121,4,100,5,125,2,100,6,125,3,100, - 7,125,4,116,7,0,0,0,0,0,0,0,0,106,16,0, + 243,58,2,0,0,149,0,91,0,0,0,0,0,0,0,0, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,85,0,53,1,0,0,0,0,0, + 0,110,0,91,5,0,0,0,0,0,0,0,0,85,0,91, + 6,0,0,0,0,0,0,0,0,53,2,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,97,9,0,0,83,1,110, + 1,83,2,110,2,83,3,110,3,83,4,110,4,79,8,83, + 5,110,1,83,6,110,2,83,7,110,3,83,8,110,4,85, + 0,82,9,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,88,33,53,2,0,0,0,0,0,0,110, + 0,91,11,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,117,3,0,0,112,86,110,0,88,86,45, + 0,0,0,110,7,85,0,82,13,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,1,53,1,0, + 0,0,0,0,0,110,8,83,9,110,9,85,9,91,15,0, + 0,0,0,0,0,0,0,85,8,53,1,0,0,0,0,0, + 0,58,18,0,0,97,105,0,0,88,137,5,0,0,0,40, + 0,0,0,0,0,0,0,97,8,0,0,88,137,5,0,0, + 0,85,3,58,88,0,0,97,3,0,0,88,137,9,0,79, + 68,88,137,5,0,0,0,85,4,58,88,0,0,97,55,0, + 0,85,9,83,9,58,148,0,0,97,27,0,0,88,137,83, + 10,45,10,0,0,5,0,0,0,85,4,58,119,0,0,97, + 16,0,0,88,137,83,10,45,10,0,0,85,9,83,10,45, + 0,0,0,50,2,9,0,85,9,83,10,45,23,0,0,110, + 9,79,27,85,9,83,9,58,88,0,0,97,10,0,0,85, + 6,40,0,0,0,0,0,0,0,97,3,0,0,88,137,9, + 0,79,11,85,9,83,10,45,13,0,0,110,9,79,5,85, + 9,83,10,45,13,0,0,110,9,85,9,91,15,0,0,0, + 0,0,0,0,0,85,8,53,1,0,0,0,0,0,0,58, + 18,0,0,97,2,0,0,77,105,0,0,85,7,40,0,0, + 0,0,0,0,0,100,24,0,0,85,8,40,0,0,0,0, + 0,0,0,100,17,0,0,85,8,82,17,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,3,53, + 1,0,0,0,0,0,0,32,0,88,113,82,19,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 8,53,1,0,0,0,0,0,0,45,0,0,0,36,0,41, + 11,122,48,78,111,114,109,97,108,105,122,101,32,112,97,116, + 104,44,32,101,108,105,109,105,110,97,116,105,110,103,32,100, + 111,117,98,108,101,32,115,108,97,115,104,101,115,44,32,101, + 116,99,46,114,86,0,0,0,114,87,0,0,0,114,142,0, + 0,0,243,2,0,0,0,46,46,114,4,0,0,0,114,6, + 0,0,0,114,2,0,0,0,114,3,0,0,0,114,8,0, + 0,0,114,91,0,0,0,41,10,114,69,0,0,0,114,70, + 0,0,0,114,56,0,0,0,114,57,0,0,0,114,74,0, + 0,0,114,14,0,0,0,114,15,0,0,0,114,135,0,0, + 0,218,6,97,112,112,101,110,100,114,12,0,0,0,41,10, + 114,59,0,0,0,114,37,0,0,0,114,40,0,0,0,114, + 35,0,0,0,114,36,0,0,0,114,113,0,0,0,114,114, + 0,0,0,218,6,112,114,101,102,105,120,218,5,99,111,109, + 112,115,114,139,0,0,0,115,10,0,0,0,32,32,32,32, + 32,32,32,32,32,32,114,60,0,0,0,114,33,0,0,0, + 114,33,0,0,0,219,1,0,0,115,32,1,0,0,128,0, + 228,15,17,143,121,138,121,152,20,139,127,136,4,220,11,21, + 144,100,156,69,215,11,34,209,11,34,216,18,23,136,67,216, + 21,25,136,70,216,21,25,136,70,216,21,26,137,70,224,18, + 22,136,67,216,21,24,136,70,216,21,24,136,70,216,21,25, + 136,70,216,15,19,143,124,137,124,152,70,211,15,40,136,4, + 220,28,37,160,100,155,79,209,8,25,136,5,144,84,216,17, + 22,145,28,136,6,216,16,20,151,10,145,10,152,51,147,15, + 136,5,216,12,13,136,1,216,14,15,148,35,144,101,147,42, + 139,110,216,19,24,151,56,152,117,153,120,168,54,211,31,49, + 216,20,25,145,72,216,17,22,145,24,152,86,211,17,35,216, + 19,20,144,113,147,53,152,85,160,81,161,51,153,90,168,54, + 211,29,49,216,24,29,160,1,153,99,160,33,160,65,161,35, + 152,103,152,14,216,20,21,152,17,145,70,145,65,216,21,22, + 152,33,147,86,166,4,216,24,29,153,8,224,20,21,152,17, + 145,70,145,65,224,16,17,144,81,145,6,144,1,240,25,0, + 15,16,148,35,144,101,147,42,141,110,246,28,0,16,22,158, + 101,216,12,17,143,76,137,76,152,22,212,12,32,216,15,21, + 159,8,153,8,160,21,155,15,209,15,39,208,8,39,114,62, + 0,0,0,41,1,218,16,95,103,101,116,102,117,108,108,112, + 97,116,104,110,97,109,101,99,1,0,0,0,0,0,0,0, + 0,0,0,0,6,0,0,0,3,0,0,0,243,244,1,0, + 0,149,0,30,0,91,1,0,0,0,0,0,0,0,0,91, + 3,0,0,0,0,0,0,0,0,85,0,53,1,0,0,0, + 0,0,0,53,1,0,0,0,0,0,0,36,0,33,0,91, + 4,0,0,0,0,0,0,0,0,91,6,0,0,0,0,0, + 0,0,0,52,2,7,0,97,3,0,0,32,0,31,0,79, + 4,102,0,61,3,31,0,102,1,91,8,0,0,0,0,0, + 0,0,0,82,10,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,85,0,53,1,0,0,0, + 0,0,0,110,0,91,13,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,100,157,0,0,91,15,0,0,0,0,0,0,0,0,85, + 0,91,16,0,0,0,0,0,0,0,0,53,2,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,97,19,0,0,83, + 1,110,1,91,8,0,0,0,0,0,0,0,0,82,18,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,125,5,116,11,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,116, - 11,0,0,0,0,0,0,0,0,116,14,0,0,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,107,40,0,0,114, - 1,121,8,124,0,106,19,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,2,171,1,0,0,0, - 0,0,0,125,6,124,1,116,20,0,0,0,0,0,0,0, - 0,117,0,114,9,116,22,0,0,0,0,0,0,0,0,125, - 7,100,9,125,1,110,11,124,1,114,3,100,10,125,7,110, - 6,116,24,0,0,0,0,0,0,0,0,125,7,124,6,115, - 23,116,27,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,115,12,116,29,0,0,0,0,0,0,0, - 0,124,5,124,0,171,2,0,0,0,0,0,0,125,0,9, - 0,116,31,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,125,0,100,11,125,8,124,6,115,85,124, - 0,106,19,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,2,171,1,0,0,0,0,0,0,114, - 68,124,0,106,19,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,3,171,1,0,0,0,0,0, - 0,114,18,124,4,124,0,116,41,0,0,0,0,0,0,0, - 0,124,3,171,1,0,0,0,0,0,0,100,0,26,0,122, - 0,0,0,125,10,110,14,124,0,116,41,0,0,0,0,0, - 0,0,0,124,2,171,1,0,0,0,0,0,0,100,0,26, - 0,125,10,9,0,116,31,0,0,0,0,0,0,0,0,124, - 10,171,1,0,0,0,0,0,0,124,0,107,40,0,0,114, - 2,124,10,125,0,124,0,83,0,124,0,83,0,35,0,116, - 32,0,0,0,0,0,0,0,0,36,0,114,44,125,9,124, - 1,114,21,116,25,0,0,0,0,0,0,0,0,116,35,0, - 0,0,0,0,0,0,0,124,9,171,1,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,100,0,130,2,116,1,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,125,0,89,0,100,0,125,9,126,9,140,137,100,0,125, - 9,126,9,119,1,124,7,36,0,114,35,125,9,124,9,106, - 36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,125,8,116,39,0,0,0,0,0,0,0,0,124, - 0,124,7,172,12,171,2,0,0,0,0,0,0,125,0,89, - 0,100,0,125,9,126,9,140,175,100,0,125,9,126,9,119, - 1,119,0,120,3,89,0,119,1,35,0,116,32,0,0,0, - 0,0,0,0,0,36,0,114,11,125,9,89,0,100,0,125, - 9,126,9,124,0,83,0,100,0,125,9,126,9,119,1,116, - 24,0,0,0,0,0,0,0,0,36,0,114,28,125,9,124, - 9,106,36,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,127,8,107,40,0,0,114,2,124,10,125, - 0,89,0,100,0,125,9,126,9,124,0,83,0,100,0,125, - 9,126,9,119,1,119,0,120,3,89,0,119,1,41,13,78, - 115,4,0,0,0,92,92,63,92,114,115,0,0,0,115,2, - 0,0,0,92,92,115,7,0,0,0,92,92,46,92,78,85, - 76,122,4,92,92,63,92,114,116,0,0,0,122,2,92,92, - 122,7,92,92,46,92,78,85,76,84,169,0,114,8,0,0, - 0,114,242,0,0,0,41,21,114,32,0,0,0,114,54,0, - 0,0,114,55,0,0,0,114,67,0,0,0,114,214,0,0, - 0,114,10,0,0,0,114,80,0,0,0,114,41,0,0,0, - 114,215,0,0,0,114,88,0,0,0,114,50,0,0,0,218, - 17,70,105,108,101,78,111,116,70,111,117,110,100,69,114,114, - 111,114,114,147,0,0,0,114,11,0,0,0,114,12,0,0, - 0,114,218,0,0,0,114,148,0,0,0,218,3,115,116,114, - 114,230,0,0,0,114,245,0,0,0,114,129,0,0,0,41, - 11,114,57,0,0,0,114,246,0,0,0,114,209,0,0,0, - 114,122,0,0,0,218,14,110,101,119,95,117,110,99,95,112, - 114,101,102,105,120,114,217,0,0,0,218,10,104,97,100,95, - 112,114,101,102,105,120,114,231,0,0,0,218,16,105,110,105, - 116,105,97,108,95,119,105,110,101,114,114,111,114,114,235,0, - 0,0,218,5,115,112,97,116,104,115,11,0,0,0,32,32, - 32,32,32,32,32,32,32,32,32,114,58,0,0,0,114,42, - 0,0,0,114,42,0,0,0,196,2,0,0,115,208,1,0, - 0,128,0,220,15,23,152,4,139,126,136,4,220,11,21,144, - 100,156,69,212,11,34,216,21,31,136,70,216,25,40,136,74, - 216,29,36,136,78,220,18,20,151,42,145,42,147,44,136,67, - 228,15,23,152,4,139,126,164,24,172,34,175,43,169,43,180, - 103,211,42,62,211,33,63,210,15,63,216,23,36,224,21,30, - 136,70,216,25,39,136,74,216,29,35,136,78,220,18,20,151, - 41,145,41,147,43,136,67,228,15,23,152,4,139,126,164,24, - 172,39,211,33,50,210,15,50,216,23,35,216,21,25,151,95, - 145,95,160,86,211,21,44,136,10,224,11,17,148,93,209,11, - 34,220,28,45,136,77,216,21,25,137,70,217,13,19,216,28, - 30,137,77,228,28,35,136,77,225,15,25,164,37,168,4,164, - 43,220,19,23,152,3,152,84,147,63,136,68,240,2,14,9, - 76,1,220,19,36,160,84,211,19,42,136,68,216,31,32,208, - 12,28,241,32,0,16,26,152,100,159,111,153,111,168,102,212, - 30,53,240,6,0,16,20,143,127,137,127,152,122,212,15,42, - 216,24,38,168,20,172,99,176,42,171,111,208,46,62,208,41, - 63,209,24,63,145,5,224,24,28,156,83,160,22,155,91,152, - 92,208,24,42,144,5,240,4,11,13,33,220,19,36,160,85, - 211,19,43,168,116,210,19,51,216,27,32,144,68,240,20,0, - 16,20,136,11,136,116,136,11,248,244,71,1,0,16,26,242, - 0,7,9,34,241,10,0,16,22,220,22,29,156,99,160,34, - 155,103,211,22,38,168,68,208,16,48,220,19,27,152,68,147, - 62,141,68,251,216,15,28,242,0,3,9,76,1,216,31,33, - 159,123,153,123,208,12,28,220,19,46,168,116,216,61,74,244, - 3,1,20,76,1,141,68,251,240,5,3,9,76,1,251,244, - 36,0,20,30,242,0,3,13,21,243,6,0,17,21,240,12, - 0,16,20,136,11,251,244,11,0,20,27,242,0,4,13,33, - 240,6,0,20,22,151,59,145,59,208,34,50,210,19,50,216, - 27,32,144,68,251,216,15,19,136,11,251,240,11,4,13,33, - 250,115,66,0,0,0,195,34,13,69,8,0,196,52,16,70, - 38,0,197,8,9,70,35,3,197,17,34,69,56,3,197,56, - 8,70,35,3,198,0,25,70,30,3,198,30,5,70,35,3, - 198,38,9,71,29,3,198,53,12,71,29,3,199,1,17,71, - 24,3,199,24,5,71,29,3,99,1,0,0,0,0,0,0, - 0,1,0,0,0,3,0,0,0,3,0,0,0,243,24,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,83,0,169,1,78,41,1,114, - 33,0,0,0,41,2,114,57,0,0,0,114,246,0,0,0, - 115,2,0,0,0,32,32,114,58,0,0,0,114,42,0,0, - 0,114,42,0,0,0,101,2,0,0,115,12,0,0,0,128, - 0,220,15,22,144,116,139,125,208,8,28,114,60,0,0,0, - 84,99,2,0,0,0,0,0,0,0,0,0,0,0,7,0, - 0,0,3,0,0,0,243,76,3,0,0,151,0,116,1,0, - 0,0,0,0,0,0,0,106,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,125,0,116,5,0,0,0,0,0,0,0, - 0,124,0,116,6,0,0,0,0,0,0,0,0,171,2,0, - 0,0,0,0,0,114,7,100,1,125,2,100,2,125,3,100, - 3,125,4,110,6,100,4,125,2,100,5,125,3,100,6,125, - 4,124,1,128,2,124,3,125,1,124,0,115,11,116,9,0, - 0,0,0,0,0,0,0,100,8,171,1,0,0,0,0,0, - 0,130,1,116,1,0,0,0,0,0,0,0,0,106,2,0, + 0,110,2,79,18,83,2,110,1,91,8,0,0,0,0,0, + 0,0,0,82,20,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,110,2,91,23,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,117,3,0, + 0,112,52,110,0,85,3,40,0,0,0,0,0,0,0,100, + 7,0,0,85,4,40,0,0,0,0,0,0,0,97,54,0, + 0,30,0,91,25,0,0,0,0,0,0,0,0,91,1,0, + 0,0,0,0,0,0,0,88,52,45,0,0,0,53,1,0, + 0,0,0,0,0,85,0,53,2,0,0,0,0,0,0,110, + 0,79,46,33,0,91,4,0,0,0,0,0,0,0,0,91, + 6,0,0,0,0,0,0,0,0,52,2,7,0,97,10,0, + 0,32,0,88,49,45,0,0,0,85,0,45,0,0,0,110, + 0,31,0,79,21,102,0,61,3,31,0,102,1,91,25,0, + 0,0,0,0,0,0,0,85,2,34,0,53,0,0,0,0, + 0,0,0,85,0,53,2,0,0,0,0,0,0,110,0,91, + 3,0,0,0,0,0,0,0,0,85,0,53,1,0,0,0, + 0,0,0,36,0,41,3,250,38,82,101,116,117,114,110,32, + 116,104,101,32,97,98,115,111,108,117,116,101,32,118,101,114, + 115,105,111,110,32,111,102,32,97,32,112,97,116,104,46,114, + 86,0,0,0,114,4,0,0,0,41,13,114,234,0,0,0, + 114,33,0,0,0,218,7,79,83,69,114,114,111,114,218,10, + 86,97,108,117,101,69,114,114,111,114,114,69,0,0,0,114, + 70,0,0,0,114,11,0,0,0,114,56,0,0,0,114,57, + 0,0,0,218,7,103,101,116,99,119,100,98,218,6,103,101, + 116,99,119,100,114,14,0,0,0,114,12,0,0,0,41,5, + 114,59,0,0,0,114,37,0,0,0,114,240,0,0,0,114, + 113,0,0,0,114,114,0,0,0,115,5,0,0,0,32,32, + 32,32,32,114,60,0,0,0,114,34,0,0,0,114,34,0, + 0,0,17,2,0,0,115,212,0,0,0,128,0,240,4,4, + 9,17,220,19,35,164,72,168,84,163,78,211,19,51,208,12, + 51,248,220,16,23,156,26,208,15,36,243,0,2,9,17,225, + 12,16,240,5,2,9,17,250,244,6,0,16,18,143,121,138, + 121,152,20,139,127,136,4,220,15,20,144,84,143,123,137,123, + 220,15,25,152,36,164,5,215,15,38,209,15,38,216,22,27, + 144,3,220,25,27,159,26,153,26,145,6,224,22,26,144,3, + 220,25,27,159,25,153,25,144,6,220,32,41,168,36,163,15, + 209,12,29,136,69,152,20,230,15,20,158,4,240,2,4,17, + 46,220,27,31,212,32,48,176,21,177,28,211,32,62,192,4, + 211,27,69,145,68,248,220,24,31,164,26,208,23,44,243,0, + 2,17,46,224,27,32,153,59,168,20,209,27,45,146,68,240, + 5,2,17,46,250,244,8,0,24,28,153,70,155,72,160,100, + 211,23,43,144,4,220,15,23,152,4,139,126,208,8,29,115, + 30,0,0,0,130,19,22,0,150,16,41,3,168,1,41,3, + 194,41,23,67,1,0,195,1,23,67,27,3,195,26,1,67, + 27,3,99,1,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,243,250,0,0,0,149,0,91,0, + 0,0,0,0,0,0,0,0,82,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,85,0, + 53,1,0,0,0,0,0,0,110,0,91,5,0,0,0,0, + 0,0,0,0,85,0,53,1,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,100,75,0,0,91,7,0,0,0,0, + 0,0,0,0,85,0,91,8,0,0,0,0,0,0,0,0, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 97,22,0,0,91,0,0,0,0,0,0,0,0,0,82,10, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,171,1,0,0,0,0,0,0,125,1,9,0,116, - 11,0,0,0,0,0,0,0,0,116,13,0,0,0,0,0, - 0,0,0,124,1,171,1,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,125,5,116,11,0,0,0,0,0,0,0, - 0,116,13,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,171,1,0,0,0,0,0,0,125,6,116, - 15,0,0,0,0,0,0,0,0,124,5,171,1,0,0,0, - 0,0,0,92,3,0,0,125,7,125,8,125,9,116,15,0, - 0,0,0,0,0,0,0,124,6,171,1,0,0,0,0,0, - 0,92,3,0,0,125,10,125,8,125,11,116,17,0,0,0, - 0,0,0,0,0,124,7,171,1,0,0,0,0,0,0,116, - 17,0,0,0,0,0,0,0,0,124,10,171,1,0,0,0, - 0,0,0,107,55,0,0,114,17,116,9,0,0,0,0,0, - 0,0,0,100,9,124,10,155,2,100,10,124,7,155,2,157, - 4,171,1,0,0,0,0,0,0,130,1,124,9,106,19,0, + 0,0,34,0,53,0,0,0,0,0,0,0,110,1,79,21, + 91,0,0,0,0,0,0,0,0,0,82,12,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 53,0,0,0,0,0,0,0,110,1,91,15,0,0,0,0, + 0,0,0,0,88,16,53,2,0,0,0,0,0,0,110,0, + 91,17,0,0,0,0,0,0,0,0,85,0,53,1,0,0, + 0,0,0,0,36,0,41,1,114,236,0,0,0,41,9,114, + 69,0,0,0,114,70,0,0,0,114,11,0,0,0,114,56, + 0,0,0,114,57,0,0,0,114,239,0,0,0,114,240,0, + 0,0,114,12,0,0,0,114,33,0,0,0,41,2,114,59, + 0,0,0,218,3,99,119,100,115,2,0,0,0,32,32,114, + 60,0,0,0,114,34,0,0,0,114,34,0,0,0,5,2, + 0,0,115,78,0,0,0,128,0,228,15,17,143,121,138,121, + 152,20,139,127,136,4,220,15,20,144,84,143,123,137,123,220, + 15,25,152,36,164,5,215,15,38,209,15,38,220,22,24,151, + 106,146,106,147,108,145,3,228,22,24,151,105,146,105,147,107, + 144,3,220,19,23,152,3,147,63,136,68,220,15,23,152,4, + 139,126,208,8,29,114,62,0,0,0,41,3,218,14,95,102, + 105,110,100,102,105,114,115,116,102,105,108,101,218,17,95,103, + 101,116,102,105,110,97,108,112,97,116,104,110,97,109,101,218, + 8,114,101,97,100,108,105,110,107,99,2,0,0,0,0,0, + 0,0,0,0,0,0,7,0,0,0,3,0,0,0,243,150, + 1,0,0,149,0,83,1,110,2,91,1,0,0,0,0,0, + 0,0,0,53,0,0,0,0,0,0,0,110,3,91,3,0, + 0,0,0,0,0,0,0,85,0,53,1,0,0,0,0,0, + 0,85,3,59,1,0,0,97,124,0,0,85,3,82,5,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,2,171,1,0,0,0,0,0,0,68,0,143,12,99, - 2,103,0,99,2,93,7,0,0,125,12,124,12,115,1,140, - 6,124,12,145,2,140,9,4,0,125,13,125,12,124,11,106, - 19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,2,171,1,0,0,0,0,0,0,68,0,143, - 12,99,2,103,0,99,2,93,7,0,0,125,12,124,12,115, - 1,140,6,124,12,145,2,140,9,4,0,125,14,125,12,100, - 11,125,15,116,21,0,0,0,0,0,0,0,0,124,13,124, - 14,171,2,0,0,0,0,0,0,68,0,93,35,0,0,92, - 2,0,0,125,16,125,17,116,17,0,0,0,0,0,0,0, - 0,124,16,171,1,0,0,0,0,0,0,116,17,0,0,0, - 0,0,0,0,0,124,17,171,1,0,0,0,0,0,0,107, - 55,0,0,114,2,1,0,110,7,124,15,100,12,122,13,0, - 0,125,15,140,37,4,0,124,4,103,1,116,23,0,0,0, - 0,0,0,0,0,124,13,171,1,0,0,0,0,0,0,124, - 15,122,10,0,0,122,5,0,0,124,14,124,15,100,7,26, - 0,122,0,0,0,125,18,124,18,115,2,124,3,83,0,116, - 25,0,0,0,0,0,0,0,0,124,18,142,0,83,0,99, - 2,1,0,99,2,125,12,119,0,99,2,1,0,99,2,125, - 12,119,0,35,0,116,26,0,0,0,0,0,0,0,0,116, - 8,0,0,0,0,0,0,0,0,116,28,0,0,0,0,0, - 0,0,0,116,30,0,0,0,0,0,0,0,0,116,32,0, - 0,0,0,0,0,0,0,102,5,36,0,114,25,1,0,116, - 35,0,0,0,0,0,0,0,0,106,36,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,13,124, - 0,124,1,171,3,0,0,0,0,0,0,1,0,130,0,119, - 0,120,3,89,0,119,1,41,14,122,35,82,101,116,117,114, - 110,32,97,32,114,101,108,97,116,105,118,101,32,118,101,114, - 115,105,111,110,32,111,102,32,97,32,112,97,116,104,114,84, - 0,0,0,114,136,0,0,0,114,207,0,0,0,114,4,0, - 0,0,114,2,0,0,0,114,3,0,0,0,78,122,17,110, - 111,32,112,97,116,104,32,115,112,101,99,105,102,105,101,100, - 122,17,112,97,116,104,32,105,115,32,111,110,32,109,111,117, - 110,116,32,122,17,44,32,115,116,97,114,116,32,111,110,32, - 109,111,117,110,116,32,114,8,0,0,0,114,87,0,0,0, - 114,44,0,0,0,41,19,114,67,0,0,0,114,68,0,0, - 0,114,54,0,0,0,114,55,0,0,0,114,148,0,0,0, - 114,33,0,0,0,114,32,0,0,0,114,14,0,0,0,114, - 10,0,0,0,114,15,0,0,0,218,3,122,105,112,114,129, - 0,0,0,114,12,0,0,0,114,95,0,0,0,114,96,0, - 0,0,114,97,0,0,0,218,18,68,101,112,114,101,99,97, - 116,105,111,110,87,97,114,110,105,110,103,114,98,0,0,0, - 114,99,0,0,0,41,19,114,57,0,0,0,114,125,0,0, - 0,114,36,0,0,0,114,34,0,0,0,114,35,0,0,0, - 218,9,115,116,97,114,116,95,97,98,115,218,8,112,97,116, - 104,95,97,98,115,218,11,115,116,97,114,116,95,100,114,105, - 118,101,218,1,95,218,10,115,116,97,114,116,95,114,101,115, - 116,218,10,112,97,116,104,95,100,114,105,118,101,218,9,112, - 97,116,104,95,114,101,115,116,114,160,0,0,0,218,10,115, - 116,97,114,116,95,108,105,115,116,218,9,112,97,116,104,95, - 108,105,115,116,114,133,0,0,0,218,2,101,49,218,2,101, - 50,218,8,114,101,108,95,108,105,115,116,115,19,0,0,0, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,114,58,0,0,0,114,44,0,0,0,114,44,0, - 0,0,14,3,0,0,115,180,1,0,0,128,0,228,11,13, - 143,57,137,57,144,84,139,63,128,68,220,7,17,144,36,156, - 5,212,7,30,216,14,19,136,3,216,17,21,136,6,216,17, - 22,137,6,224,14,18,136,3,216,17,20,136,6,216,17,21, - 136,6,224,7,12,128,125,216,16,22,136,5,225,11,15,220, - 14,24,208,25,44,211,14,45,208,8,45,228,12,14,143,73, - 137,73,144,101,211,12,28,128,69,240,2,24,5,14,220,20, - 27,156,72,160,85,155,79,211,20,44,136,9,220,19,26,156, - 56,160,68,155,62,211,19,42,136,8,220,37,46,168,121,211, - 37,57,209,8,34,136,11,144,81,152,10,220,35,44,168,88, - 211,35,54,209,8,32,136,10,144,65,144,121,220,11,19,144, - 75,211,11,32,164,72,168,90,211,36,56,210,11,56,221,18, - 28,218,16,26,153,75,240,3,1,30,41,243,0,1,19,42, - 240,0,1,13,42,240,6,0,34,44,215,33,49,209,33,49, - 176,35,212,33,54,211,21,60,209,33,54,152,65,186,33,146, - 97,208,33,54,136,10,208,21,60,216,32,41,167,15,161,15, - 176,3,212,32,52,211,20,58,209,32,52,152,49,186,1,146, - 81,208,32,52,136,9,208,20,58,224,12,13,136,1,220,22, - 25,152,42,160,105,214,22,48,137,70,136,66,144,2,220,15, - 23,152,2,139,124,156,120,168,2,155,124,210,15,43,217,16, - 21,216,12,13,144,17,137,70,137,65,240,7,0,23,49,240, - 10,0,21,27,144,56,156,115,160,58,155,127,168,113,209,31, - 48,209,19,49,176,73,184,97,184,98,176,77,209,19,65,136, - 8,217,15,23,216,19,25,136,77,220,15,19,144,88,136,127, - 208,8,30,249,242,25,0,22,61,249,218,20,58,248,244,24, - 0,13,22,148,122,164,62,180,60,212,65,83,208,11,84,242, - 0,2,5,14,220,8,19,215,8,36,209,8,36,160,89,176, - 4,176,101,212,8,60,216,8,13,240,5,2,5,14,250,115, - 62,0,0,0,193,26,66,1,69,44,0,195,27,7,69,34, - 4,195,35,4,69,34,4,195,39,21,69,44,0,195,60,7, - 69,39,4,196,4,4,69,39,4,196,8,65,17,69,44,0, - 197,26,7,69,44,0,197,34,10,69,44,0,197,44,55,70, - 35,3,99,1,0,0,0,0,0,0,0,0,0,0,0,10, - 0,0,0,3,0,0,0,243,96,4,0,0,151,0,124,0, - 115,11,116,1,0,0,0,0,0,0,0,0,100,1,171,1, - 0,0,0,0,0,0,130,1,116,3,0,0,0,0,0,0, - 0,0,116,5,0,0,0,0,0,0,0,0,116,6,0,0, - 0,0,0,0,0,0,106,8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,171,2,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,125,0,116,11, - 0,0,0,0,0,0,0,0,124,0,100,2,25,0,0,0, - 116,12,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,114,7,100,3,125,1,100,4,125,2,100,5,125,3, - 110,6,100,6,125,1,100,7,125,2,100,8,125,3,9,0, - 124,0,68,0,143,4,99,2,103,0,99,2,93,43,0,0, - 125,4,116,15,0,0,0,0,0,0,0,0,124,4,106,17, + 0,91,3,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,53,1,0,0,0,0,0,0,32,0,30, + 0,85,0,110,4,91,7,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,110,0,91,9,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,100,51,0,0,91,11,0,0,0, + 0,0,0,0,0,85,4,53,1,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,100,5,0,0,85,4,110,0,30, + 0,85,0,36,0,91,13,0,0,0,0,0,0,0,0,91, + 15,0,0,0,0,0,0,0,0,91,17,0,0,0,0,0, + 0,0,0,85,4,53,1,0,0,0,0,0,0,85,0,53, + 2,0,0,0,0,0,0,53,1,0,0,0,0,0,0,110, + 0,91,3,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,85,3,59,1,0,0,97,2,0,0,77, + 124,0,0,85,0,36,0,33,0,85,1,7,0,97,28,0, + 0,110,5,85,5,82,18,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,2,59,0,0,0,97, + 6,0,0,31,0,83,0,110,5,65,5,85,0,36,0,101, + 0,83,0,110,5,65,5,102,1,91,20,0,0,0,0,0, + 0,0,0,7,0,97,4,0,0,32,0,31,0,85,0,36, + 0,102,0,61,3,31,0,102,1,41,2,78,41,12,114,91, + 0,0,0,114,123,0,0,0,114,90,0,0,0,233,5,0, + 0,0,233,21,0,0,0,114,155,0,0,0,233,50,0,0, + 0,233,67,0,0,0,233,87,0,0,0,105,38,17,0,0, + 105,40,17,0,0,105,41,17,0,0,41,11,218,3,115,101, + 116,114,10,0,0,0,218,3,97,100,100,218,12,95,110,116, + 95,114,101,97,100,108,105,110,107,114,11,0,0,0,114,24, + 0,0,0,114,33,0,0,0,114,12,0,0,0,114,18,0, + 0,0,218,8,119,105,110,101,114,114,111,114,114,238,0,0, + 0,41,6,114,59,0,0,0,218,13,105,103,110,111,114,101, + 100,95,101,114,114,111,114,218,16,97,108,108,111,119,101,100, + 95,119,105,110,101,114,114,111,114,218,4,115,101,101,110,218, + 8,111,108,100,95,112,97,116,104,218,2,101,120,115,6,0, + 0,0,32,32,32,32,32,32,114,60,0,0,0,218,14,95, + 114,101,97,100,108,105,110,107,95,100,101,101,112,114,5,1, + 0,0,51,2,0,0,115,212,0,0,0,128,0,240,30,0, + 28,76,1,208,8,24,228,15,18,139,117,136,4,220,14,22, + 144,116,139,110,160,68,211,14,40,216,12,16,143,72,137,72, + 148,88,152,100,147,94,212,12,36,240,2,19,13,22,216,27, + 31,144,8,220,23,35,160,68,211,23,41,144,4,244,6,0, + 24,29,152,84,151,123,145,123,244,8,0,28,34,160,40,215, + 27,43,209,27,43,216,31,39,152,4,216,24,29,240,18,0, + 16,20,136,11,244,17,0,28,36,164,68,172,23,176,24,211, + 41,58,184,68,211,36,65,211,27,66,144,68,244,29,0,15, + 23,144,116,139,110,160,68,213,14,40,240,44,0,16,20,136, + 11,248,240,15,0,20,33,243,0,3,13,22,216,19,21,151, + 59,145,59,208,34,50,211,19,50,219,20,25,240,10,0,16, + 20,136,11,240,9,0,17,22,251,220,19,29,243,0,2,13, + 22,224,16,21,216,15,19,136,11,240,7,2,13,22,250,115, + 41,0,0,0,183,47,66,26,0,193,41,30,66,26,0,194, + 26,6,67,8,3,194,32,16,66,55,3,194,54,1,66,55, + 3,194,55,13,67,8,3,195,7,1,67,8,3,99,2,0, + 0,0,0,0,0,0,0,0,0,0,6,0,0,0,3,0, + 0,0,243,34,2,0,0,149,0,83,1,110,2,85,0,83, + 0,83,2,4,0,110,3,85,0,40,0,0,0,0,0,0, + 0,97,32,0,0,30,0,91,1,0,0,0,0,0,0,0, + 0,85,0,53,1,0,0,0,0,0,0,110,0,85,3,40, + 0,0,0,0,0,0,0,97,11,0,0,91,3,0,0,0, + 0,0,0,0,0,88,3,53,2,0,0,0,0,0,0,36, + 0,85,0,36,0,85,3,36,0,33,0,85,1,7,0,97, + 204,0,0,110,4,85,4,82,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,2,59,1,0, + 0,97,1,0,0,101,0,30,0,91,7,0,0,0,0,0, + 0,0,0,85,0,85,1,83,3,57,2,110,5,88,80,58, + 119,0,0,97,25,0,0,85,3,40,0,0,0,0,0,0, + 0,97,11,0,0,91,3,0,0,0,0,0,0,0,0,88, + 83,53,2,0,0,0,0,0,0,79,1,85,5,115,2,31, + 0,83,0,110,4,65,4,36,0,79,12,33,0,85,1,7, + 0,97,3,0,0,32,0,31,0,79,4,102,0,61,3,31, + 0,102,1,85,4,82,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,4,59,0,0,0,97, + 51,0,0,30,0,91,9,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,110,6,91,11,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,117, + 2,0,0,112,7,79,38,33,0,85,1,7,0,97,16,0, + 0,32,0,91,11,0,0,0,0,0,0,0,0,85,0,53, + 1,0,0,0,0,0,0,117,2,0,0,112,6,31,0,79, + 17,102,0,61,3,31,0,102,1,91,11,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,117,2,0, + 0,112,6,85,0,40,0,0,0,0,0,0,0,97,16,0, + 0,85,6,40,0,0,0,0,0,0,0,100,9,0,0,88, + 3,45,0,0,0,115,2,31,0,83,0,110,4,65,4,36, + 0,85,3,40,0,0,0,0,0,0,0,97,11,0,0,91, + 3,0,0,0,0,0,0,0,0,88,99,53,2,0,0,0, + 0,0,0,79,1,85,6,110,3,31,0,83,0,110,4,65, + 4,79,8,83,0,110,4,65,4,102,1,102,0,61,3,31, + 0,102,1,85,0,40,0,0,0,0,0,0,0,97,3,0, + 0,71,1,77,1,0,0,78,226,41,5,78,41,16,114,91, + 0,0,0,114,123,0,0,0,114,90,0,0,0,114,247,0, + 0,0,114,248,0,0,0,114,155,0,0,0,114,249,0,0, + 0,233,53,0,0,0,233,65,0,0,0,114,250,0,0,0, + 114,251,0,0,0,233,123,0,0,0,233,161,0,0,0,105, + 237,3,0,0,233,128,7,0,0,233,129,7,0,0,114,8, + 0,0,0,169,1,114,0,1,0,0,41,7,114,91,0,0, + 0,114,247,0,0,0,114,155,0,0,0,114,249,0,0,0, + 114,251,0,0,0,114,11,1,0,0,114,12,1,0,0,41, + 6,114,244,0,0,0,114,12,0,0,0,114,255,0,0,0, + 114,5,1,0,0,114,243,0,0,0,114,15,0,0,0,41, + 8,114,59,0,0,0,114,0,1,0,0,114,1,1,0,0, + 114,115,0,0,0,114,4,1,0,0,218,8,110,101,119,95, + 112,97,116,104,114,174,0,0,0,218,1,95,115,8,0,0, + 0,32,32,32,32,32,32,32,32,114,60,0,0,0,218,27, + 95,103,101,116,102,105,110,97,108,112,97,116,104,110,97,109, + 101,95,110,111,110,115,116,114,105,99,116,114,16,1,0,0, + 93,2,0,0,115,30,1,0,0,128,0,240,38,0,28,94, + 1,208,8,24,240,8,0,16,20,144,66,144,81,136,120,136, + 4,222,14,18,240,2,28,13,58,220,23,40,168,20,211,23, + 46,144,4,222,43,47,148,116,152,68,211,23,39,208,16,57, + 176,84,208,16,57,240,54,0,16,20,136,11,248,240,53,0, + 20,33,243,0,25,13,58,216,19,21,151,59,145,59,208,38, + 54,211,19,54,216,20,25,240,2,10,17,25,244,8,0,32, + 46,168,100,216,60,73,241,3,1,32,75,1,144,72,224,23, + 31,211,23,39,222,55,59,156,116,160,72,212,31,51,192,24, + 213,24,73,240,3,0,24,40,248,224,23,36,243,0,2,17, + 25,225,20,24,240,5,2,17,25,250,240,8,0,20,22,151, + 59,145,59,208,34,64,211,19,64,240,2,4,21,49,220,31, + 45,168,100,211,31,51,152,4,220,34,39,168,4,163,43,153, + 7,152,4,152,97,248,216,27,40,243,0,1,21,49,220,37, + 42,168,52,163,91,153,10,152,4,153,100,240,3,1,21,49, + 250,244,6,0,34,39,160,116,163,27,145,74,144,68,222,19, + 23,166,4,216,27,31,153,59,213,20,38,222,43,47,148,116, + 152,68,212,23,39,176,84,149,4,251,240,51,25,13,58,250, + 247,9,0,15,19,138,100,115,114,0,0,0,144,28,49,0, + 173,1,49,0,177,6,68,3,3,183,17,67,62,3,193,9, + 34,65,50,2,193,43,1,68,3,3,193,49,1,67,62,3, + 193,50,6,65,59,5,193,56,2,67,62,3,193,58,1,65, + 59,5,193,59,19,67,62,3,194,15,24,66,40,2,194,39, + 1,67,62,3,194,40,19,66,62,5,194,59,2,67,62,3, + 194,61,1,66,62,5,194,62,33,67,62,3,195,31,1,68, + 3,3,195,37,20,67,62,3,195,62,5,68,3,3,70,41, + 1,218,6,115,116,114,105,99,116,99,1,0,0,0,0,0, + 0,0,1,0,0,0,6,0,0,0,3,0,0,0,243,204, + 3,0,0,149,0,91,1,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,110,0,91,3,0,0,0, + 0,0,0,0,0,85,0,91,4,0,0,0,0,0,0,0, + 0,53,2,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,46,0,0,83,1,110,2,83,2,110,3,83,3,110, + 4,91,6,0,0,0,0,0,0,0,0,82,8,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,53,0,0,0,0,0,0,0,110,5,83,4,110,6,91, + 11,0,0,0,0,0,0,0,0,85,0,53,1,0,0,0, + 0,0,0,85,6,58,88,0,0,97,1,0,0,103,5,79, + 45,83,6,110,2,83,7,110,3,83,8,110,4,91,6,0, + 0,0,0,0,0,0,0,82,12,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,34,0,53,0,0, + 0,0,0,0,0,110,5,83,9,110,6,91,11,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,85, + 6,58,88,0,0,97,1,0,0,103,10,85,0,82,15,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,2,124,1,171,2,0,0,0,0,0,0,106,19, + 0,85,2,53,1,0,0,0,0,0,0,110,7,85,1,91, + 16,0,0,0,0,0,0,0,0,76,0,97,9,0,0,91, + 18,0,0,0,0,0,0,0,0,110,8,83,11,110,1,79, + 16,85,1,40,0,0,0,0,0,0,0,97,3,0,0,83, + 12,110,8,79,6,91,20,0,0,0,0,0,0,0,0,110, + 8,85,7,40,0,0,0,0,0,0,0,100,27,0,0,91, + 23,0,0,0,0,0,0,0,0,85,0,53,1,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,100,11,0,0,91, + 25,0,0,0,0,0,0,0,0,88,80,53,2,0,0,0, + 0,0,0,110,0,30,0,91,27,0,0,0,0,0,0,0, + 0,85,0,53,1,0,0,0,0,0,0,110,0,83,13,110, + 9,85,7,40,0,0,0,0,0,0,0,100,95,0,0,85, + 0,82,15,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,2,53,1,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,97,73,0,0,85,0,82,15,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,145,2,140,45,4,0,125,5,125,4,124,5,68,0, - 143,6,143,7,143,4,99,4,103,0,99,2,93,23,0,0, - 92,3,0,0,125,6,125,7,125,4,124,4,106,21,0,0, + 0,85,3,53,1,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,97,17,0,0,88,64,91,37,0,0,0,0,0, + 0,0,0,85,3,53,1,0,0,0,0,0,0,83,0,4, + 0,45,0,0,0,110,11,79,14,85,0,91,37,0,0,0, + 0,0,0,0,0,85,2,53,1,0,0,0,0,0,0,83, + 0,4,0,110,11,30,0,91,27,0,0,0,0,0,0,0, + 0,85,11,53,1,0,0,0,0,0,0,85,0,58,88,0, + 0,97,2,0,0,85,11,110,0,85,0,36,0,85,0,36, + 0,33,0,91,28,0,0,0,0,0,0,0,0,7,0,97, + 49,0,0,110,10,85,1,40,0,0,0,0,0,0,0,97, + 21,0,0,91,21,0,0,0,0,0,0,0,0,91,31,0, + 0,0,0,0,0,0,0,85,10,53,1,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,83,0,101,2,91,1,0, + 0,0,0,0,0,0,0,85,0,53,1,0,0,0,0,0, + 0,110,0,31,0,83,0,110,10,65,10,78,158,83,0,110, + 10,65,10,102,1,85,8,7,0,97,32,0,0,110,10,85, + 10,82,32,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,110,9,91,35,0,0,0,0,0,0,0, + 0,85,0,85,8,83,14,57,2,110,0,31,0,83,0,110, + 10,65,10,78,194,83,0,110,10,65,10,102,1,102,0,61, + 3,31,0,102,1,33,0,91,28,0,0,0,0,0,0,0, + 0,7,0,97,11,0,0,110,10,31,0,83,0,110,10,65, + 10,85,0,36,0,83,0,110,10,65,10,102,1,91,20,0, + 0,0,0,0,0,0,0,7,0,97,29,0,0,110,10,85, + 10,82,32,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,87,9,58,88,0,0,97,2,0,0,85, + 11,110,0,31,0,83,0,110,10,65,10,85,0,36,0,83, + 0,110,10,65,10,102,1,102,0,61,3,31,0,102,1,41, + 15,78,115,4,0,0,0,92,92,63,92,114,119,0,0,0, + 114,88,0,0,0,115,3,0,0,0,110,117,108,115,7,0, + 0,0,92,92,46,92,78,85,76,122,4,92,92,63,92,114, + 121,0,0,0,114,89,0,0,0,114,7,0,0,0,122,7, + 92,92,46,92,78,85,76,84,169,0,114,8,0,0,0,114, + 13,1,0,0,41,19,114,33,0,0,0,114,56,0,0,0, + 114,57,0,0,0,114,69,0,0,0,114,239,0,0,0,114, + 10,0,0,0,114,240,0,0,0,114,92,0,0,0,114,52, + 0,0,0,218,17,70,105,108,101,78,111,116,70,111,117,110, + 100,69,114,114,111,114,114,237,0,0,0,114,11,0,0,0, + 114,12,0,0,0,114,244,0,0,0,114,238,0,0,0,218, + 3,115,116,114,114,255,0,0,0,114,16,1,0,0,114,135, + 0,0,0,41,12,114,59,0,0,0,114,17,1,0,0,114, + 232,0,0,0,114,128,0,0,0,218,14,110,101,119,95,117, + 110,99,95,112,114,101,102,105,120,114,242,0,0,0,114,42, + 0,0,0,218,10,104,97,100,95,112,114,101,102,105,120,114, + 0,1,0,0,218,16,105,110,105,116,105,97,108,95,119,105, + 110,101,114,114,111,114,114,4,1,0,0,218,5,115,112,97, + 116,104,115,12,0,0,0,32,32,32,32,32,32,32,32,32, + 32,32,32,114,60,0,0,0,114,43,0,0,0,114,43,0, + 0,0,149,2,0,0,115,213,1,0,0,128,0,220,15,23, + 152,4,139,126,136,4,220,11,21,144,100,156,69,215,11,34, + 209,11,34,216,21,31,136,70,216,25,40,136,74,216,29,36, + 136,78,220,18,20,151,42,146,42,147,44,136,67,224,22,28, + 136,71,220,15,23,152,4,139,126,160,23,211,15,40,216,23, + 36,240,3,0,16,41,240,6,0,22,31,136,70,216,25,39, + 136,74,216,29,35,136,78,220,18,20,151,41,146,41,147,43, + 136,67,224,22,27,136,71,220,15,23,152,4,139,126,160,23, + 211,15,40,216,23,35,216,21,25,151,95,145,95,160,86,211, + 21,44,136,10,224,11,17,148,93,210,11,34,220,28,45,136, + 77,216,21,25,137,70,222,13,19,216,28,30,137,77,228,28, + 35,136,77,230,15,25,164,37,168,4,167,43,161,43,220,19, + 23,152,3,147,63,136,68,240,2,14,9,76,1,220,19,36, + 160,84,211,19,42,136,68,216,31,32,208,12,28,246,32,0, + 16,26,152,100,159,111,153,111,168,102,215,30,53,209,30,53, + 240,6,0,16,20,143,127,137,127,152,122,215,15,42,209,15, + 42,216,24,38,172,99,176,42,171,111,208,46,62,208,41,63, + 209,24,63,145,5,224,24,28,156,83,160,22,155,91,152,92, + 208,24,42,144,5,240,4,11,13,33,220,19,36,160,85,211, + 19,43,168,116,211,19,51,216,27,32,144,68,240,20,0,16, + 20,136,11,136,116,136,11,248,244,71,1,0,16,26,243,0, + 7,9,34,246,10,0,16,22,220,22,29,156,99,160,34,155, + 103,211,22,38,168,68,208,16,48,220,19,27,152,68,147,62, + 141,68,251,216,15,28,243,0,3,9,76,1,216,31,33,159, + 123,153,123,208,12,28,220,19,46,168,116,216,61,74,241,3, + 1,20,76,1,141,68,251,240,5,3,9,76,1,251,244,36, + 0,20,30,243,0,3,13,21,243,6,0,17,21,240,12,0, + 16,20,136,11,251,244,11,0,20,27,243,0,4,13,33,240, + 6,0,20,22,151,59,145,59,208,34,50,211,19,50,216,27, + 32,144,68,251,216,15,19,136,11,251,240,11,4,13,33,250, + 115,66,0,0,0,195,18,13,69,7,0,196,50,17,70,41, + 0,197,7,10,70,38,3,197,17,39,69,61,3,197,61,9, + 70,38,3,198,6,22,70,33,3,198,33,5,70,38,3,198, + 41,10,71,35,3,198,57,13,71,35,3,199,6,18,71,30, + 3,199,30,5,71,35,3,99,1,0,0,0,0,0,0,0, + 1,0,0,0,3,0,0,0,3,0,0,0,243,24,0,0, + 0,149,0,91,1,0,0,0,0,0,0,0,0,85,0,53, + 1,0,0,0,0,0,0,36,0,114,171,0,0,0,41,1, + 114,34,0,0,0,41,2,114,59,0,0,0,114,17,1,0, + 0,115,2,0,0,0,32,32,114,60,0,0,0,114,43,0, + 0,0,114,43,0,0,0,48,2,0,0,115,12,0,0,0, + 128,0,220,15,22,144,116,139,125,208,8,28,114,62,0,0, + 0,84,99,2,0,0,0,0,0,0,0,0,0,0,0,7, + 0,0,0,3,0,0,0,243,54,3,0,0,149,0,91,0, + 0,0,0,0,0,0,0,0,82,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,85,0, + 53,1,0,0,0,0,0,0,110,0,85,0,40,0,0,0, + 0,0,0,0,100,11,0,0,91,5,0,0,0,0,0,0, + 0,0,83,1,53,1,0,0,0,0,0,0,101,1,91,7, + 0,0,0,0,0,0,0,0,85,0,91,8,0,0,0,0, + 0,0,0,0,53,2,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,97,7,0,0,83,2,110,2,83,3,110,3, + 83,4,110,4,79,6,83,5,110,2,83,6,110,3,83,7, + 110,4,85,1,99,3,0,0,85,3,110,1,79,22,91,0, + 0,0,0,0,0,0,0,0,82,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,85,1, + 53,1,0,0,0,0,0,0,110,1,30,0,91,11,0,0, + 0,0,0,0,0,0,85,1,53,1,0,0,0,0,0,0, + 110,5,91,11,0,0,0,0,0,0,0,0,85,0,53,1, + 0,0,0,0,0,0,110,6,91,13,0,0,0,0,0,0, + 0,0,85,5,53,1,0,0,0,0,0,0,117,3,0,0, + 112,120,110,9,91,13,0,0,0,0,0,0,0,0,85,6, + 53,1,0,0,0,0,0,0,117,3,0,0,112,168,110,11, + 91,15,0,0,0,0,0,0,0,0,85,7,53,1,0,0, + 0,0,0,0,91,15,0,0,0,0,0,0,0,0,85,10, + 53,1,0,0,0,0,0,0,58,119,0,0,97,19,0,0, + 91,5,0,0,0,0,0,0,0,0,83,9,85,10,60,2, + 14,0,83,10,85,7,60,2,14,0,51,4,53,1,0,0, + 0,0,0,0,101,1,85,9,40,0,0,0,0,0,0,0, + 97,17,0,0,85,9,82,17,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,2,53,1,0,0, + 0,0,0,0,79,1,47,0,110,12,85,11,40,0,0,0, + 0,0,0,0,97,17,0,0,85,11,82,17,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,2, + 53,1,0,0,0,0,0,0,79,1,47,0,110,13,83,11, + 110,14,91,19,0,0,0,0,0,0,0,0,88,205,53,2, + 0,0,0,0,0,0,19,0,72,37,0,0,117,2,0,0, + 110,15,110,16,91,15,0,0,0,0,0,0,0,0,85,15, + 53,1,0,0,0,0,0,0,91,15,0,0,0,0,0,0, + 0,0,85,16,53,1,0,0,0,0,0,0,58,119,0,0, + 97,2,0,0,32,0,79,9,85,14,83,12,45,13,0,0, + 110,14,77,39,0,0,11,0,32,0,85,4,47,1,91,21, + 0,0,0,0,0,0,0,0,85,12,53,1,0,0,0,0, + 0,0,85,14,45,10,0,0,45,5,0,0,88,222,83,8, + 4,0,45,0,0,0,110,17,85,17,40,0,0,0,0,0, + 0,0,100,2,0,0,85,3,36,0,85,2,82,23,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,145,2,140,25,4,0, - 125,8,125,7,125,6,125,4,116,23,0,0,0,0,0,0, - 0,0,124,5,68,0,143,6,143,7,143,4,99,4,104,0, - 99,2,93,8,0,0,92,3,0,0,125,6,125,7,125,4, - 124,7,146,2,140,10,4,0,99,4,125,4,125,7,125,6, - 171,1,0,0,0,0,0,0,100,9,107,55,0,0,114,11, - 116,1,0,0,0,0,0,0,0,0,100,10,171,1,0,0, - 0,0,0,0,130,1,116,23,0,0,0,0,0,0,0,0, - 124,5,68,0,143,6,143,7,143,4,99,4,104,0,99,2, - 93,8,0,0,92,3,0,0,125,6,125,7,125,4,124,6, - 146,2,140,10,4,0,99,4,125,4,125,7,125,6,171,1, - 0,0,0,0,0,0,100,9,107,55,0,0,114,11,116,1, - 0,0,0,0,0,0,0,0,100,11,171,1,0,0,0,0, - 0,0,130,1,116,15,0,0,0,0,0,0,0,0,124,0, - 100,2,25,0,0,0,106,17,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,2,124,1,171,2, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,92,3, - 0,0,125,9,125,10,125,11,124,11,106,21,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 171,1,0,0,0,0,0,0,125,12,124,12,68,0,143,13, - 99,2,103,0,99,2,93,13,0,0,125,13,124,13,115,1, - 140,6,124,13,124,3,107,55,0,0,115,1,140,12,124,13, - 145,2,140,15,4,0,125,12,125,13,124,8,68,0,143,14, - 143,13,99,3,103,0,99,2,93,27,0,0,125,14,124,14, - 68,0,143,13,99,2,103,0,99,2,93,13,0,0,125,13, - 124,13,115,1,140,6,124,13,124,3,107,55,0,0,115,1, - 140,12,124,13,145,2,140,15,4,0,99,2,125,13,145,2, - 140,29,4,0,125,8,125,14,125,13,116,25,0,0,0,0, - 0,0,0,0,124,8,171,1,0,0,0,0,0,0,125,15, - 116,27,0,0,0,0,0,0,0,0,124,8,171,1,0,0, - 0,0,0,0,125,16,116,29,0,0,0,0,0,0,0,0, - 124,15,171,1,0,0,0,0,0,0,68,0,93,20,0,0, - 92,2,0,0,125,17,125,13,124,13,124,16,124,17,25,0, - 0,0,107,55,0,0,115,1,140,15,124,12,100,12,124,17, - 26,0,125,12,1,0,110,15,4,0,124,12,100,12,116,23, - 0,0,0,0,0,0,0,0,124,15,171,1,0,0,0,0, - 0,0,26,0,125,12,124,9,124,10,122,0,0,0,124,1, - 106,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,12,171,1,0,0,0,0,0,0,122,0, - 0,0,83,0,99,2,1,0,99,2,125,4,119,0,99,2, - 1,0,99,4,125,4,125,7,125,6,119,0,99,2,1,0, - 99,4,125,4,125,7,125,6,119,0,99,2,1,0,99,4, - 125,4,125,7,125,6,119,0,99,2,1,0,99,2,125,13, - 119,0,99,2,1,0,99,2,125,13,119,0,99,2,1,0, - 99,3,125,13,125,14,119,0,35,0,116,32,0,0,0,0, - 0,0,0,0,116,34,0,0,0,0,0,0,0,0,102,2, - 36,0,114,24,1,0,116,37,0,0,0,0,0,0,0,0, - 106,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,13,103,1,124,0,162,1,173,6,142,0, - 1,0,130,0,119,0,120,3,89,0,119,1,41,14,122,68, - 71,105,118,101,110,32,97,32,115,101,113,117,101,110,99,101, - 32,111,102,32,112,97,116,104,32,110,97,109,101,115,44,32, - 114,101,116,117,114,110,115,32,116,104,101,32,108,111,110,103, - 101,115,116,32,99,111,109,109,111,110,32,115,117,98,45,112, - 97,116,104,46,122,37,99,111,109,109,111,110,112,97,116,104, - 40,41,32,97,114,103,32,105,115,32,97,110,32,101,109,112, - 116,121,32,115,101,113,117,101,110,99,101,114,8,0,0,0, - 114,84,0,0,0,114,85,0,0,0,114,136,0,0,0,114, - 4,0,0,0,114,6,0,0,0,114,2,0,0,0,114,87, - 0,0,0,122,37,67,97,110,39,116,32,109,105,120,32,97, - 98,115,111,108,117,116,101,32,97,110,100,32,114,101,108,97, - 116,105,118,101,32,112,97,116,104,115,122,31,80,97,116,104, - 115,32,100,111,110,39,116,32,104,97,118,101,32,116,104,101, - 32,115,97,109,101,32,100,114,105,118,101,78,114,48,0,0, - 0,41,20,114,148,0,0,0,218,5,116,117,112,108,101,114, - 94,0,0,0,114,67,0,0,0,114,68,0,0,0,114,54, - 0,0,0,114,55,0,0,0,114,14,0,0,0,114,72,0, - 0,0,114,82,0,0,0,114,15,0,0,0,114,129,0,0, - 0,218,3,109,105,110,218,3,109,97,120,218,9,101,110,117, - 109,101,114,97,116,101,114,12,0,0,0,114,95,0,0,0, - 114,96,0,0,0,114,98,0,0,0,114,99,0,0,0,41, - 18,114,100,0,0,0,114,36,0,0,0,114,39,0,0,0, - 114,34,0,0,0,114,106,0,0,0,218,11,100,114,105,118, - 101,115,112,108,105,116,115,114,131,0,0,0,114,132,0,0, - 0,218,11,115,112,108,105,116,95,112,97,116,104,115,114,111, - 0,0,0,114,112,0,0,0,114,57,0,0,0,218,6,99, - 111,109,109,111,110,114,202,0,0,0,114,77,0,0,0,218, - 2,115,49,218,2,115,50,114,133,0,0,0,115,18,0,0, - 0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,114,58,0,0,0,114,48,0,0,0,114,48,0, - 0,0,70,3,0,0,115,45,2,0,0,128,0,241,6,0, - 12,17,220,14,24,208,25,64,211,14,65,208,8,65,228,12, - 17,148,35,148,98,151,105,145,105,160,21,211,18,39,211,12, - 40,128,69,220,7,17,144,37,152,1,145,40,156,69,212,7, - 34,216,14,19,136,3,216,17,21,136,6,216,17,21,137,6, - 224,14,18,136,3,216,17,20,136,6,216,17,20,136,6,240, - 4,30,5,14,217,74,79,211,22,80,201,37,192,81,148,121, - 160,17,167,25,161,25,168,54,176,51,211,33,55,215,33,61, - 209,33,61,211,33,63,213,23,64,200,37,136,11,208,22,80, - 217,51,62,213,22,63,177,59,169,7,168,1,168,49,168,97, - 144,113,151,119,145,119,152,115,149,124,176,59,136,11,210,22, - 63,228,11,14,161,27,213,15,45,161,27,145,103,144,97,152, - 17,152,65,146,1,160,27,211,15,45,211,11,46,176,33,210, - 11,51,220,18,28,208,29,68,211,18,69,208,12,69,244,10, - 0,12,15,161,27,213,15,45,161,27,145,103,144,97,152,17, - 152,65,146,1,160,27,211,15,45,211,11,46,176,33,210,11, - 51,220,18,28,208,29,62,211,18,63,208,12,63,228,28,37, - 160,101,168,65,161,104,215,38,54,209,38,54,176,118,184,115, - 211,38,67,211,28,68,209,8,25,136,5,136,116,144,84,216, - 17,21,151,26,145,26,152,67,147,31,136,6,217,29,35,211, - 17,57,153,86,152,1,162,113,168,81,176,38,171,91,146,33, - 152,86,136,6,208,17,57,225,68,79,212,22,80,193,75,184, - 113,161,49,211,23,58,161,49,152,97,170,1,168,97,176,54, - 171,107,154,1,160,49,211,23,58,192,75,136,11,209,22,80, - 220,13,16,144,27,211,13,29,136,2,220,13,16,144,27,211, - 13,29,136,2,220,20,29,152,98,150,77,137,68,136,65,136, - 113,216,15,16,144,66,144,113,145,69,139,122,216,25,31,160, - 2,160,17,152,26,144,6,217,16,21,240,7,0,21,34,240, - 10,0,22,28,152,72,156,83,160,18,155,87,208,21,37,136, - 70,224,15,20,144,116,137,124,152,99,159,104,153,104,160,118, - 211,30,46,209,15,46,208,8,46,249,242,53,0,23,81,1, - 249,220,22,63,249,228,15,45,249,244,12,0,16,46,249,242, - 10,0,18,58,249,226,23,58,249,211,22,80,248,244,22,0, - 13,22,148,126,208,11,38,242,0,2,5,14,220,8,19,215, - 8,36,209,8,36,160,92,208,8,58,176,69,211,8,58,216, - 8,13,240,5,2,5,14,250,115,145,0,0,0,193,18,4, - 72,6,0,193,22,48,71,28,4,194,6,8,72,6,0,194, - 14,28,71,33,8,194,42,15,72,6,0,194,57,13,71,40, - 12,195,6,34,72,6,0,195,40,13,71,47,12,195,53,65, - 14,72,6,0,197,3,7,71,54,4,197,11,5,71,54,4, - 197,17,4,71,54,4,197,21,7,72,6,0,197,28,9,72, - 0,6,197,37,7,71,59,12,197,45,5,71,59,12,197,51, - 4,71,59,12,197,55,5,72,0,6,197,60,50,72,6,0, - 198,47,44,72,6,0,199,28,31,72,6,0,199,59,5,72, - 0,6,200,0,6,72,6,0,200,6,39,72,45,3,41,1, - 218,11,95,112,97,116,104,95,105,115,100,105,114,41,1,218, - 12,95,112,97,116,104,95,105,115,102,105,108,101,41,1,218, - 12,95,112,97,116,104,95,105,115,108,105,110,107,41,1,218, - 12,95,112,97,116,104,95,101,120,105,115,116,115,41,1,218, - 16,95,112,97,116,104,95,105,115,100,101,118,100,114,105,118, - 101,99,1,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,3,0,0,0,243,74,0,0,0,151,0,9,0,116, - 1,0,0,0,0,0,0,0,0,116,3,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,83,0,35,0,116,4,0,0,0,0,0, - 0,0,0,36,0,114,3,1,0,89,0,121,1,119,0,120, - 3,89,0,119,1,169,2,122,64,68,101,116,101,114,109,105, - 110,101,115,32,119,104,101,116,104,101,114,32,116,104,101,32, - 115,112,101,99,105,102,105,101,100,32,112,97,116,104,32,105, - 115,32,111,110,32,97,32,87,105,110,100,111,119,115,32,68, - 101,118,32,68,114,105,118,101,46,70,41,3,114,30,1,0, - 0,114,33,0,0,0,114,147,0,0,0,114,56,0,0,0, - 115,1,0,0,0,32,114,58,0,0,0,218,10,105,115,100, - 101,118,100,114,105,118,101,114,33,1,0,0,140,3,0,0, - 115,40,0,0,0,128,0,240,4,3,9,25,220,19,35,164, - 71,168,68,163,77,211,19,50,208,12,50,248,220,15,22,242, - 0,1,9,25,217,19,24,240,3,1,9,25,250,115,12,0, - 0,0,130,19,22,0,150,9,34,3,161,1,34,3,99,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,243,4,0,0,0,151,0,121,1,114,32,1,0, - 0,114,248,0,0,0,114,56,0,0,0,115,1,0,0,0, - 32,114,58,0,0,0,114,33,1,0,0,114,33,1,0,0, - 135,3,0,0,115,7,0,0,0,128,0,240,6,0,16,21, - 114,60,0,0,0,114,0,1,0,0,41,66,218,7,95,95, - 100,111,99,95,95,114,34,0,0,0,114,35,0,0,0,114, - 40,0,0,0,114,36,0,0,0,114,37,0,0,0,114,39, - 0,0,0,114,38,0,0,0,114,41,0,0,0,114,67,0, - 0,0,114,69,0,0,0,114,150,0,0,0,114,98,0,0, - 0,218,7,95,95,97,108,108,95,95,114,59,0,0,0,218, - 7,95,119,105,110,97,112,105,114,61,0,0,0,114,73,0, - 0,0,114,62,0,0,0,114,74,0,0,0,114,63,0,0, - 0,114,75,0,0,0,114,10,0,0,0,218,11,73,109,112, - 111,114,116,69,114,114,111,114,114,11,0,0,0,114,12,0, - 0,0,114,13,0,0,0,114,14,0,0,0,114,15,0,0, - 0,114,16,0,0,0,114,137,0,0,0,114,17,0,0,0, - 114,18,0,0,0,218,7,104,97,115,97,116,116,114,218,11, - 115,116,97,116,95,114,101,115,117,108,116,114,49,0,0,0, - 114,26,0,0,0,218,2,110,116,114,156,0,0,0,114,29, - 0,0,0,114,30,0,0,0,114,31,0,0,0,114,205,0, - 0,0,114,32,0,0,0,114,211,0,0,0,114,33,0,0, - 0,114,218,0,0,0,114,219,0,0,0,114,229,0,0,0, - 114,147,0,0,0,114,236,0,0,0,114,245,0,0,0,114, - 42,0,0,0,114,43,0,0,0,114,44,0,0,0,114,48, - 0,0,0,114,26,1,0,0,114,27,0,0,0,114,27,1, - 0,0,114,28,0,0,0,114,28,1,0,0,114,24,0,0, - 0,114,29,1,0,0,114,25,0,0,0,114,30,1,0,0, - 114,33,1,0,0,114,248,0,0,0,114,60,0,0,0,114, - 58,0,0,0,218,8,60,109,111,100,117,108,101,62,114,42, - 1,0,0,1,0,0,0,115,241,1,0,0,240,3,1,1, - 1,241,4,4,1,4,240,18,0,10,13,128,6,216,9,13, - 128,6,216,9,12,128,6,216,6,10,128,3,216,10,13,128, - 7,216,9,12,128,6,216,10,21,128,7,216,10,15,128,7, - 227,0,9,219,0,10,219,0,11,219,0,18,220,0,25,242, - 6,7,11,28,128,7,242,18,4,1,21,240,20,33,1,44, - 247,2,3,5,45,241,0,3,5,45,242,10,17,5,56,242, - 72,1,16,1,17,242,40,43,1,14,242,98,1,20,1,30, - 242,46,49,1,31,242,114,1,13,1,43,242,42,5,1,56, - 240,12,0,20,31,215,19,40,209,19,40,215,19,48,209,19, - 48,128,8,212,0,16,242,10,2,1,23,242,14,2,1,23, - 241,14,0,4,11,136,50,143,62,137,62,208,27,43,212,3, - 44,243,2,6,5,74,1,242,16,3,5,21,242,16,6,1, - 16,240,36,3,1,30,221,4,37,242,6,17,1,21,242,58, - 45,1,31,242,122,1,106,1,1,15,240,96,3,38,1,40, - 221,4,45,240,82,1,41,1,30,221,4,35,242,30,25,5, - 30,240,54,103,2,1,20,223,4,62,240,12,0,44,51,243, - 0,40,5,20,240,84,1,0,57,64,1,243,0,48,5,20, - 240,100,1,0,34,39,244,0,68,1,5,20,240,80,2,0, - 30,34,208,0,26,243,4,43,1,14,242,112,1,46,1,14, - 240,98,1,10,1,9,245,8,0,5,40,221,4,41,221,4, - 41,221,4,41,240,12,13,1,25,221,4,35,243,14,5,5, - 25,248,240,77,26,0,8,19,242,0,9,1,44,244,2,8, - 5,44,240,3,9,1,44,251,240,116,7,0,8,19,242,0, - 1,1,30,216,25,29,210,4,22,240,3,1,1,30,251,240, - 94,6,0,8,19,242,0,35,1,40,244,2,34,5,40,240, - 3,35,1,40,251,240,84,1,0,8,19,242,0,10,1,30, - 244,2,9,5,30,240,3,10,1,30,251,240,84,1,0,8, - 19,242,0,3,1,29,224,33,38,246,0,1,5,29,240,5, - 3,1,29,251,240,120,8,0,8,19,242,0,2,1,9,225, - 4,8,240,5,2,1,9,251,240,14,0,8,19,242,0,4, - 1,21,244,2,3,5,21,240,3,4,1,21,250,115,125,0, - 0,0,176,13,67,52,0,194,14,6,68,2,0,194,30,6, - 68,15,0,194,37,6,68,29,0,194,47,8,68,43,0,195, - 17,24,68,60,0,195,42,6,69,7,0,195,52,8,67,63, - 3,195,62,1,67,63,3,196,2,7,68,12,3,196,11,1, - 68,12,3,196,15,8,68,26,3,196,25,1,68,26,3,196, - 29,8,68,40,3,196,39,1,68,40,3,196,43,11,68,57, - 3,196,56,1,68,57,3,196,60,5,69,4,3,197,3,1, - 69,4,3,197,7,8,69,18,3,197,17,1,69,18,3, + 85,17,53,1,0,0,0,0,0,0,36,0,33,0,91,24, + 0,0,0,0,0,0,0,0,91,4,0,0,0,0,0,0, + 0,0,91,26,0,0,0,0,0,0,0,0,91,28,0,0, + 0,0,0,0,0,0,91,30,0,0,0,0,0,0,0,0, + 52,5,7,0,97,25,0,0,32,0,91,32,0,0,0,0, + 0,0,0,0,82,34,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,83,13,88,1,53,3, + 0,0,0,0,0,0,32,0,101,0,102,0,61,3,31,0, + 102,1,41,14,122,35,82,101,116,117,114,110,32,97,32,114, + 101,108,97,116,105,118,101,32,118,101,114,115,105,111,110,32, + 111,102,32,97,32,112,97,116,104,122,17,110,111,32,112,97, + 116,104,32,115,112,101,99,105,102,105,101,100,114,86,0,0, + 0,114,142,0,0,0,114,230,0,0,0,114,4,0,0,0, + 114,2,0,0,0,114,3,0,0,0,78,122,17,112,97,116, + 104,32,105,115,32,111,110,32,109,111,117,110,116,32,122,17, + 44,32,115,116,97,114,116,32,111,110,32,109,111,117,110,116, + 32,114,8,0,0,0,114,91,0,0,0,114,45,0,0,0, + 41,18,114,69,0,0,0,114,70,0,0,0,114,238,0,0, + 0,114,56,0,0,0,114,57,0,0,0,114,34,0,0,0, + 114,14,0,0,0,114,10,0,0,0,114,15,0,0,0,218, + 3,122,105,112,114,135,0,0,0,114,12,0,0,0,114,97, + 0,0,0,114,98,0,0,0,114,99,0,0,0,218,18,68, + 101,112,114,101,99,97,116,105,111,110,87,97,114,110,105,110, + 103,114,100,0,0,0,114,101,0,0,0,41,18,114,59,0, + 0,0,114,131,0,0,0,114,37,0,0,0,114,35,0,0, + 0,114,36,0,0,0,218,9,115,116,97,114,116,95,97,98, + 115,218,8,112,97,116,104,95,97,98,115,218,11,115,116,97, + 114,116,95,100,114,105,118,101,114,15,1,0,0,218,10,115, + 116,97,114,116,95,114,101,115,116,218,10,112,97,116,104,95, + 100,114,105,118,101,218,9,112,97,116,104,95,114,101,115,116, + 218,10,115,116,97,114,116,95,108,105,115,116,218,9,112,97, + 116,104,95,108,105,115,116,114,139,0,0,0,218,2,101,49, + 218,2,101,50,218,8,114,101,108,95,108,105,115,116,115,18, + 0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32, + 32,32,32,32,32,114,60,0,0,0,114,45,0,0,0,114, + 45,0,0,0,225,2,0,0,115,128,1,0,0,128,0,228, + 11,13,143,57,138,57,144,84,139,63,128,68,222,11,15,220, + 14,24,208,25,44,211,14,45,208,8,45,228,7,17,144,36, + 156,5,215,7,30,209,7,30,216,14,19,136,3,216,17,21, + 136,6,216,17,22,137,6,224,14,18,136,3,216,17,20,136, + 6,216,17,21,136,6,224,7,12,129,125,216,16,22,137,5, + 228,16,18,151,9,146,9,152,37,211,16,32,136,5,240,4, + 24,5,14,220,20,27,152,69,147,78,136,9,220,19,26,152, + 52,147,61,136,8,220,37,46,168,121,211,37,57,209,8,34, + 136,11,152,10,220,35,44,168,88,211,35,54,209,8,32,136, + 10,144,121,220,11,19,144,75,211,11,32,164,72,168,90,211, + 36,56,211,11,56,221,18,28,219,16,26,154,75,240,3,1, + 30,41,243,0,1,19,42,240,0,1,13,42,246,6,0,47, + 57,144,90,215,21,37,209,21,37,160,99,212,21,42,184,98, + 136,10,222,44,53,144,73,151,79,145,79,160,67,212,20,40, + 184,50,136,9,224,12,13,136,1,220,22,25,152,42,214,22, + 48,137,70,136,66,144,2,220,15,23,152,2,139,124,156,120, + 168,2,155,124,211,15,43,217,16,21,216,12,13,144,17,137, + 70,138,65,241,7,0,23,49,240,10,0,21,27,144,56,156, + 115,160,58,155,127,168,113,209,31,48,209,19,49,176,73,184, + 98,176,77,209,19,65,136,8,222,15,23,216,19,25,136,77, + 216,15,18,143,120,137,120,152,8,211,15,33,208,8,33,248, + 220,12,21,148,122,164,62,180,60,212,65,83,208,11,84,243, + 0,2,5,14,220,8,19,215,8,36,210,8,36,160,89,176, + 4,212,8,60,216,8,13,240,5,2,5,14,250,115,19,0, + 0,0,193,40,67,38,69,32,0,197,15,16,69,32,0,197, + 32,56,70,24,3,99,1,0,0,0,0,0,0,0,0,0, + 0,0,10,0,0,0,3,0,0,0,243,210,4,0,0,149, + 0,91,1,0,0,0,0,0,0,0,0,91,3,0,0,0, + 0,0,0,0,0,91,4,0,0,0,0,0,0,0,0,82, + 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,0,53,2,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,110,0,85,0,40,0,0,0,0,0,0, + 0,100,11,0,0,91,9,0,0,0,0,0,0,0,0,83, + 1,53,1,0,0,0,0,0,0,101,1,91,11,0,0,0, + 0,0,0,0,0,85,0,83,2,5,0,0,0,91,12,0, + 0,0,0,0,0,0,0,53,2,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,97,7,0,0,83,3,110,1,83, + 4,110,2,83,5,110,3,79,6,83,6,110,1,83,7,110, + 2,83,8,110,3,30,0,85,0,19,0,86,4,115,2,47, + 0,115,2,19,0,72,43,0,0,110,4,91,15,0,0,0, + 0,0,0,0,0,85,4,82,17,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,88,33,53,2,0, + 0,0,0,0,0,82,19,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,80,2,77,45,0,0,11, + 0,32,0,110,5,110,4,85,5,19,0,86,6,86,7,86, + 4,115,4,47,0,115,2,19,0,72,22,0,0,117,3,0, + 0,112,103,111,68,82,21,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,1,53,1,0,0,0, + 0,0,0,80,2,77,24,0,0,11,0,32,0,110,8,110, + 7,110,6,110,4,91,23,0,0,0,0,0,0,0,0,85, + 5,19,0,86,6,86,7,86,4,115,4,49,0,115,2,19, + 0,72,7,0,0,117,3,0,0,112,103,111,70,105,2,77, + 9,0,0,11,0,32,0,115,4,110,4,110,7,110,6,53, + 1,0,0,0,0,0,0,83,9,58,119,0,0,97,11,0, + 0,91,9,0,0,0,0,0,0,0,0,83,10,53,1,0, + 0,0,0,0,0,101,1,91,15,0,0,0,0,0,0,0, + 0,85,0,83,2,5,0,0,0,82,17,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,88,33,53, + 2,0,0,0,0,0,0,53,1,0,0,0,0,0,0,117, + 3,0,0,112,154,110,11,91,23,0,0,0,0,0,0,0, + 0,85,5,19,0,86,6,86,7,86,4,115,4,49,0,115, + 2,19,0,72,7,0,0,117,3,0,0,112,103,111,71,105, + 2,77,9,0,0,11,0,32,0,115,4,110,4,110,7,110, + 6,53,1,0,0,0,0,0,0,83,9,58,119,0,0,97, + 29,0,0,85,9,40,0,0,0,0,0,0,0,97,11,0, + 0,91,9,0,0,0,0,0,0,0,0,83,11,53,1,0, + 0,0,0,0,0,101,1,91,9,0,0,0,0,0,0,0, + 0,83,12,53,1,0,0,0,0,0,0,101,1,85,11,82, + 21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,1,53,1,0,0,0,0,0,0,110,12,85, + 12,19,0,86,13,115,2,47,0,115,2,19,0,72,20,0, + 0,111,221,40,0,0,0,0,0,0,0,100,2,0,0,77, + 11,0,0,88,211,58,119,0,0,100,2,0,0,77,18,0, + 0,85,13,80,2,77,22,0,0,11,0,32,0,110,12,110, + 13,85,8,19,0,86,14,86,13,115,3,47,0,115,2,19, + 0,72,36,0,0,111,238,19,0,86,13,115,2,47,0,115, + 2,19,0,72,20,0,0,111,221,40,0,0,0,0,0,0, + 0,100,2,0,0,77,11,0,0,88,211,58,119,0,0,100, + 2,0,0,77,18,0,0,85,13,80,2,77,22,0,0,11, + 0,32,0,115,2,110,13,80,2,77,38,0,0,11,0,32, + 0,110,8,110,14,110,13,91,25,0,0,0,0,0,0,0, + 0,85,8,53,1,0,0,0,0,0,0,110,15,91,27,0, + 0,0,0,0,0,0,0,85,8,53,1,0,0,0,0,0, + 0,110,16,91,29,0,0,0,0,0,0,0,0,85,15,53, + 1,0,0,0,0,0,0,19,0,72,22,0,0,117,2,0, + 0,110,17,110,13,85,13,85,16,85,17,5,0,0,0,58, + 119,0,0,100,2,0,0,77,17,0,0,85,12,83,13,85, + 17,4,0,110,12,32,0,79,16,11,0,32,0,85,12,83, + 13,91,23,0,0,0,0,0,0,0,0,85,15,53,1,0, + 0,0,0,0,0,4,0,110,12,88,154,45,0,0,0,85, + 1,82,31,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,12,53,1,0,0,0,0,0,0,45, + 0,0,0,36,0,115,2,32,0,115,2,110,4,102,0,115, + 2,32,0,115,4,110,4,110,7,110,6,102,0,115,2,32, + 0,115,4,110,4,110,7,110,6,102,0,115,2,32,0,115, + 4,110,4,110,7,110,6,102,0,115,2,32,0,115,2,110, + 13,102,0,115,2,32,0,115,2,110,13,102,0,115,2,32, + 0,115,3,110,13,110,14,102,0,33,0,91,32,0,0,0, + 0,0,0,0,0,91,34,0,0,0,0,0,0,0,0,52, + 2,7,0,97,25,0,0,32,0,91,36,0,0,0,0,0, + 0,0,0,82,38,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,83,14,47,1,85,0,81, + 1,55,6,54,0,32,0,101,0,102,0,61,3,31,0,102, + 1,41,15,122,69,71,105,118,101,110,32,97,110,32,105,116, + 101,114,97,98,108,101,32,111,102,32,112,97,116,104,32,110, + 97,109,101,115,44,32,114,101,116,117,114,110,115,32,116,104, + 101,32,108,111,110,103,101,115,116,32,99,111,109,109,111,110, + 32,115,117,98,45,112,97,116,104,46,122,37,99,111,109,109, + 111,110,112,97,116,104,40,41,32,97,114,103,32,105,115,32, + 97,110,32,101,109,112,116,121,32,105,116,101,114,97,98,108, + 101,114,8,0,0,0,114,86,0,0,0,114,87,0,0,0, + 114,142,0,0,0,114,4,0,0,0,114,6,0,0,0,114, + 2,0,0,0,114,91,0,0,0,122,31,80,97,116,104,115, + 32,100,111,110,39,116,32,104,97,118,101,32,116,104,101,32, + 115,97,109,101,32,100,114,105,118,101,122,37,67,97,110,39, + 116,32,109,105,120,32,97,98,115,111,108,117,116,101,32,97, + 110,100,32,114,101,108,97,116,105,118,101,32,112,97,116,104, + 115,122,37,67,97,110,39,116,32,109,105,120,32,114,111,111, + 116,101,100,32,97,110,100,32,110,111,116,45,114,111,111,116, + 101,100,32,112,97,116,104,115,78,114,49,0,0,0,41,20, + 218,5,116,117,112,108,101,218,3,109,97,112,114,69,0,0, + 0,114,70,0,0,0,114,238,0,0,0,114,56,0,0,0, + 114,57,0,0,0,114,14,0,0,0,114,74,0,0,0,114, + 84,0,0,0,114,15,0,0,0,114,135,0,0,0,218,3, + 109,105,110,218,3,109,97,120,218,9,101,110,117,109,101,114, + 97,116,101,114,12,0,0,0,114,97,0,0,0,114,98,0, + 0,0,114,100,0,0,0,114,101,0,0,0,41,18,114,102, + 0,0,0,114,37,0,0,0,114,40,0,0,0,114,35,0, + 0,0,114,108,0,0,0,218,11,100,114,105,118,101,115,112, + 108,105,116,115,114,137,0,0,0,114,138,0,0,0,218,11, + 115,112,108,105,116,95,112,97,116,104,115,114,113,0,0,0, + 114,114,0,0,0,114,59,0,0,0,218,6,99,111,109,109, + 111,110,218,1,99,114,79,0,0,0,218,2,115,49,218,2, + 115,50,114,139,0,0,0,115,18,0,0,0,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,60, + 0,0,0,114,49,0,0,0,114,49,0,0,0,26,3,0, + 0,115,47,2,0,0,128,0,228,12,17,148,35,148,98,151, + 105,145,105,160,21,211,18,39,211,12,40,128,69,222,11,16, + 220,14,24,208,25,64,211,14,65,208,8,65,228,7,17,144, + 37,152,1,145,40,156,69,215,7,34,209,7,34,216,14,19, + 136,3,216,17,21,136,6,216,17,21,137,6,224,14,18,136, + 3,216,17,20,136,6,216,17,20,136,6,240,4,33,5,14, + 217,74,79,211,22,80,202,37,192,81,148,121,160,17,167,25, + 161,25,168,54,211,33,55,215,33,61,209,33,61,211,33,63, + 214,23,64,201,37,136,11,208,22,80,217,51,62,213,22,63, + 178,59,169,7,168,1,168,97,151,119,145,119,152,115,150,124, + 177,59,136,11,210,22,63,244,10,0,12,15,161,27,213,15, + 45,162,27,145,103,144,97,152,65,146,1,161,27,211,15,45, + 211,11,46,176,33,211,11,51,220,18,28,208,29,62,211,18, + 63,208,12,63,228,28,37,160,101,168,65,161,104,215,38,54, + 209,38,54,176,118,211,38,67,211,28,68,209,8,25,136,5, + 144,84,220,11,14,161,27,213,15,45,162,27,145,103,144,97, + 152,65,146,1,161,27,211,15,45,211,11,46,176,33,211,11, + 51,222,15,20,220,22,32,208,33,72,211,22,73,208,16,73, + 228,22,32,208,33,72,211,22,73,208,16,73,224,17,21,151, + 26,145,26,152,67,147,31,136,6,217,29,35,211,17,57,154, + 86,152,1,163,113,147,33,168,81,169,91,151,33,153,86,136, + 6,208,17,57,225,68,79,212,22,80,194,75,184,113,160,49, + 211,23,58,162,49,152,97,171,1,155,1,168,97,169,107,159, + 1,161,49,212,23,58,193,75,136,11,209,22,80,220,13,16, + 144,27,211,13,29,136,2,220,13,16,144,27,211,13,29,136, + 2,220,20,29,152,98,150,77,137,68,136,65,136,113,216,15, + 16,144,66,144,113,145,69,141,122,216,25,31,160,2,160,17, + 152,26,144,6,217,16,21,241,7,0,21,34,240,10,0,22, + 28,152,72,156,83,160,18,155,87,208,21,37,136,70,224,15, + 20,137,124,152,99,159,104,153,104,160,118,211,30,46,209,15, + 46,208,8,46,249,242,59,0,23,81,1,249,220,22,63,249, + 244,10,0,16,46,249,244,8,0,16,46,249,242,14,0,18, + 58,249,226,23,58,249,211,22,80,248,244,22,0,13,22,148, + 126,208,11,38,243,0,2,5,14,220,8,19,215,8,36,210, + 8,36,160,92,208,8,58,176,69,211,8,58,216,8,13,240, + 5,2,5,14,250,115,145,0,0,0,193,28,4,72,61,0, + 193,32,50,72,19,4,194,18,8,72,61,0,194,26,29,72, + 24,8,194,55,15,72,61,0,195,6,14,72,31,12,195,20, + 65,3,72,61,0,196,23,14,72,38,12,196,37,63,72,61, + 0,197,36,10,72,45,4,197,50,3,72,45,4,197,57,6, + 72,45,4,197,63,7,72,61,0,198,6,9,72,55,6,198, + 15,10,72,50,12,198,29,3,72,50,12,198,36,6,72,50, + 12,198,42,7,72,55,6,198,49,49,72,61,0,199,38,44, + 72,61,0,200,19,31,72,61,0,200,50,5,72,55,6,200, + 55,6,72,61,0,200,61,41,73,38,3,41,1,218,11,95, + 112,97,116,104,95,105,115,100,105,114,41,1,218,12,95,112, + 97,116,104,95,105,115,102,105,108,101,41,1,218,12,95,112, + 97,116,104,95,105,115,108,105,110,107,41,1,218,16,95,112, + 97,116,104,95,105,115,106,117,110,99,116,105,111,110,41,1, + 218,12,95,112,97,116,104,95,101,120,105,115,116,115,41,1, + 218,13,95,112,97,116,104,95,108,101,120,105,115,116,115,41, + 1,218,16,95,112,97,116,104,95,105,115,100,101,118,100,114, + 105,118,101,99,1,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,3,0,0,0,243,76,0,0,0,149,0,30, + 0,91,1,0,0,0,0,0,0,0,0,91,3,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,53, + 1,0,0,0,0,0,0,36,0,33,0,91,4,0,0,0, + 0,0,0,0,0,7,0,97,3,0,0,32,0,31,0,103, + 1,102,0,61,3,31,0,102,1,41,2,122,64,68,101,116, + 101,114,109,105,110,101,115,32,119,104,101,116,104,101,114,32, + 116,104,101,32,115,112,101,99,105,102,105,101,100,32,112,97, + 116,104,32,105,115,32,111,110,32,97,32,87,105,110,100,111, + 119,115,32,68,101,118,32,68,114,105,118,101,46,70,41,3, + 114,59,1,0,0,114,34,0,0,0,114,237,0,0,0,114, + 58,0,0,0,115,1,0,0,0,32,114,60,0,0,0,114, + 51,0,0,0,114,51,0,0,0,94,3,0,0,115,40,0, + 0,0,128,0,240,4,3,9,25,220,19,35,164,71,168,68, + 163,77,211,19,50,208,12,50,248,220,15,22,243,0,1,9, + 25,217,19,24,240,3,1,9,25,250,115,12,0,0,0,130, + 19,22,0,150,10,35,3,162,1,35,3,114,171,0,0,0, + 41,77,218,7,95,95,100,111,99,95,95,114,35,0,0,0, + 114,36,0,0,0,114,41,0,0,0,114,37,0,0,0,114, + 38,0,0,0,114,40,0,0,0,114,39,0,0,0,114,42, + 0,0,0,114,69,0,0,0,114,71,0,0,0,114,100,0, + 0,0,218,7,95,95,97,108,108,95,95,114,61,0,0,0, + 218,7,95,119,105,110,97,112,105,114,63,0,0,0,114,75, + 0,0,0,114,64,0,0,0,114,76,0,0,0,114,65,0, + 0,0,114,77,0,0,0,114,10,0,0,0,218,11,73,109, + 112,111,114,116,69,114,114,111,114,114,11,0,0,0,114,12, + 0,0,0,114,13,0,0,0,218,2,110,116,114,116,0,0, + 0,114,14,0,0,0,114,15,0,0,0,114,16,0,0,0, + 114,143,0,0,0,114,17,0,0,0,114,18,0,0,0,114, + 149,0,0,0,114,29,0,0,0,218,9,102,114,111,122,101, + 110,115,101,116,218,5,114,97,110,103,101,218,3,99,104,114, + 114,181,0,0,0,114,184,0,0,0,114,30,0,0,0,114, + 172,0,0,0,114,31,0,0,0,114,223,0,0,0,114,227, + 0,0,0,114,220,0,0,0,114,32,0,0,0,114,228,0, + 0,0,114,33,0,0,0,114,234,0,0,0,114,34,0,0, + 0,114,243,0,0,0,114,244,0,0,0,114,245,0,0,0, + 114,254,0,0,0,114,237,0,0,0,114,5,1,0,0,114, + 16,1,0,0,114,43,0,0,0,114,44,0,0,0,114,45, + 0,0,0,114,49,0,0,0,114,53,1,0,0,114,27,0, + 0,0,114,54,1,0,0,114,28,0,0,0,114,55,1,0, + 0,114,24,0,0,0,114,56,1,0,0,114,50,0,0,0, + 114,57,1,0,0,114,25,0,0,0,114,58,1,0,0,114, + 26,0,0,0,114,59,1,0,0,114,51,0,0,0,41,2, + 114,139,0,0,0,114,50,1,0,0,115,2,0,0,0,48, + 48,114,60,0,0,0,218,8,60,109,111,100,117,108,101,62, + 114,69,1,0,0,1,0,0,0,115,146,2,0,0,240,3, + 1,1,1,241,4,4,1,4,240,18,0,10,13,128,6,216, + 9,13,128,6,216,9,12,128,6,216,6,10,128,3,216,10, + 13,128,7,216,9,12,128,6,216,10,21,128,7,216,10,15, + 128,7,227,0,9,219,0,10,219,0,18,220,0,25,242,4, + 7,11,42,128,7,242,18,4,1,21,240,20,33,1,44,247, + 2,3,5,45,241,0,3,5,45,242,10,17,5,56,242,60, + 15,1,66,1,242,38,41,1,14,242,94,1,20,1,30,240, + 46,45,1,35,221,4,50,242,104,1,13,1,43,242,42,5, + 1,56,240,12,0,20,31,215,19,40,209,19,40,215,19,48, + 209,19,48,128,8,212,0,16,242,10,2,1,23,242,14,2, + 1,23,240,30,3,1,30,221,4,37,242,6,17,1,21,241, + 40,0,19,28,217,21,26,152,50,148,89,211,4,31,146,89, + 144,1,129,83,136,17,134,86,145,89,209,4,31,218,4,50, + 241,3,1,5,51,243,3,3,19,2,128,15,241,10,0,19, + 28,218,4,53,217,24,47,211,4,48,210,24,47,144,49,128, + 115,136,49,136,35,131,89,209,24,47,209,4,48,241,3,1, + 5,49,225,24,47,211,4,48,210,24,47,144,49,128,115,136, + 49,136,35,131,89,209,24,47,209,4,48,241,5,2,5,49, + 243,3,4,19,2,128,15,242,12,5,1,76,1,242,14,13, + 1,73,1,242,50,44,1,31,240,120,1,0,15,64,1,128, + 11,216,10,14,128,7,216,11,15,128,8,242,4,58,1,27, + 240,64,2,38,1,40,221,4,45,240,82,1,41,1,30,221, + 4,35,242,30,25,5,30,240,54,111,2,1,20,223,4,78, + 209,4,78,240,12,0,44,51,244,0,40,5,20,240,84,1, + 0,57,64,1,244,0,54,5,20,240,112,1,0,34,39,245, + 0,70,1,5,20,240,84,2,0,30,34,208,0,26,244,4, + 44,1,14,242,114,1,48,1,14,240,102,1,12,1,9,245, + 8,0,5,40,221,4,41,221,4,41,221,4,49,221,4,41, + 221,4,43,240,12,10,1,9,221,4,35,243,2,5,5,25, + 248,240,117,24,0,8,19,243,0,9,1,44,245,2,8,5, + 44,240,3,9,1,44,251,240,78,3,0,8,19,243,0,43, + 1,35,245,2,42,5,35,240,3,43,1,35,251,240,86,3, + 0,8,19,243,0,1,1,30,216,25,29,211,4,22,240,3, + 1,1,30,252,242,46,0,5,32,249,242,12,0,5,49,249, + 218,4,48,248,240,76,5,0,8,19,243,0,35,1,40,244, + 2,34,5,40,240,3,35,1,40,251,240,84,1,0,8,19, + 243,0,10,1,30,244,2,9,5,30,240,3,10,1,30,251, + 240,84,1,0,8,19,243,0,3,1,29,224,33,38,247,0, + 1,5,29,240,5,3,1,29,251,240,82,9,0,8,19,243, + 0,2,1,9,225,4,8,240,5,2,1,9,251,240,26,0, + 8,19,243,0,2,1,9,225,4,8,240,5,2,1,9,250, + 115,161,0,0,0,172,13,69,23,0,193,3,6,69,39,0, + 193,49,6,69,55,0,194,6,18,70,6,8,194,45,15,70, + 11,10,195,4,15,70,16,10,195,47,6,70,21,0,195,54, + 6,70,36,0,196,0,10,70,51,0,196,40,36,71,6,0, + 197,13,9,71,18,0,197,23,9,69,36,3,197,35,1,69, + 36,3,197,39,9,69,52,3,197,51,1,69,52,3,197,55, + 8,70,3,3,198,2,1,70,3,3,198,21,9,70,33,3, + 198,32,1,70,33,3,198,36,9,70,48,3,198,47,1,70, + 48,3,198,51,13,71,3,3,199,2,1,71,3,3,199,6, + 6,71,15,3,199,14,1,71,15,3,199,18,6,71,27,3, + 199,26,1,71,27,3, }; diff --git a/contrib/tools/python3/Python/frozen_modules/os.h b/contrib/tools/python3/Python/frozen_modules/os.h index e2e3345e03f..7cfd46b5a61 100644 --- a/contrib/tools/python3/Python/frozen_modules/os.h +++ b/contrib/tools/python3/Python/frozen_modules/os.h @@ -1,2003 +1,2062 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__os[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0, - 0,0,0,0,0,243,30,10,0,0,151,0,100,0,90,0, - 100,1,100,2,108,1,90,1,100,1,100,2,108,2,90,2, - 100,1,100,2,108,3,90,4,100,1,100,3,108,5,109,6, - 90,6,1,0,2,0,101,7,101,8,101,9,25,0,0,0, - 171,1,0,0,0,0,0,0,90,10,101,2,106,22,0,0, + 0,0,0,0,0,243,60,11,0,0,149,0,83,0,114,0, + 83,1,83,2,75,1,114,1,83,1,83,2,75,2,114,2, + 83,1,83,2,75,3,114,4,83,1,83,3,75,5,74,6, + 114,6,32,0,92,7,34,0,92,8,92,9,5,0,0,0, + 53,1,0,0,0,0,0,0,114,10,92,2,82,22,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 90,12,103,0,100,4,162,1,90,13,100,5,132,0,90,14, - 100,6,132,0,90,15,100,7,101,12,118,0,114,73,100,7, - 90,16,100,8,90,17,100,1,100,9,108,18,173,2,1,0, - 9,0,100,1,100,10,108,18,109,19,90,19,1,0,101,13, - 106,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,11,171,1,0,0,0,0,0,0,1,0, - 100,1,100,2,108,22,90,23,9,0,100,1,100,12,108,18, - 109,24,90,24,1,0,100,1,100,2,108,18,90,18,101,13, - 106,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,2,0,101,15,101,18,171,1,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,1,0,91,18,110,85, - 100,13,101,12,118,0,114,73,100,13,90,16,100,14,90,17, - 100,1,100,9,108,26,173,2,1,0,9,0,100,1,100,10, - 108,26,109,19,90,19,1,0,101,13,106,41,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,11, - 171,1,0,0,0,0,0,0,1,0,100,1,100,2,108,27, - 90,23,100,1,100,2,108,26,90,26,101,13,106,51,0,0, + 114,12,47,0,83,4,81,1,114,13,83,5,26,0,114,14, + 83,6,26,0,114,15,83,7,92,12,59,0,0,0,97,73, + 0,0,83,7,114,16,83,8,114,17,83,1,83,9,75,18, + 55,2,32,0,30,0,83,1,83,10,75,18,74,19,114,19, + 32,0,92,13,82,41,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,83,11,53,1,0,0,0,0, + 0,0,32,0,83,1,83,2,75,22,114,23,30,0,83,1, + 83,12,75,18,74,24,114,24,32,0,83,1,83,2,75,18, + 114,18,92,13,82,51,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,92,15,34,0,92,18,53,1, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,32,0, + 67,18,79,87,83,13,92,12,59,0,0,0,97,73,0,0, + 83,13,114,16,83,14,114,17,83,1,83,9,75,26,55,2, + 32,0,30,0,83,1,83,10,75,26,74,19,114,19,32,0, + 92,13,82,41,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,11,53,1,0,0,0,0,0,0, + 32,0,83,1,83,2,75,27,114,23,83,1,83,2,75,26, + 114,26,92,13,82,51,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,92,15,34,0,92,26,53,1, + 0,0,0,0,0,0,53,1,0,0,0,0,0,0,32,0, + 67,26,30,0,83,1,83,12,75,26,74,24,114,24,32,0, + 79,8,92,21,34,0,83,15,53,1,0,0,0,0,0,0, + 101,1,92,23,92,2,82,56,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,16,39,0,0,0, + 83,1,83,17,75,29,74,30,114,30,74,31,114,31,74,32, + 114,32,74,33,114,33,74,34,114,34,74,35,114,35,74,36, + 114,36,74,37,114,37,32,0,67,12,92,14,34,0,83,18, + 53,1,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 71,1,97,237,0,0,92,38,34,0,53,0,0,0,0,0, + 0,0,114,39,83,19,26,0,114,40,92,41,34,0,53,0, + 0,0,0,0,0,0,114,42,92,40,34,0,83,20,83,21, + 53,2,0,0,0,0,0,0,32,0,92,40,34,0,83,22, + 83,23,53,2,0,0,0,0,0,0,32,0,92,40,34,0, + 83,24,83,25,53,2,0,0,0,0,0,0,32,0,92,40, + 34,0,83,26,83,27,53,2,0,0,0,0,0,0,32,0, + 92,40,34,0,83,28,83,29,53,2,0,0,0,0,0,0, + 32,0,92,40,34,0,83,30,83,31,53,2,0,0,0,0, + 0,0,32,0,92,40,34,0,83,32,83,33,53,2,0,0, + 0,0,0,0,32,0,92,40,34,0,83,34,83,35,53,2, + 0,0,0,0,0,0,32,0,92,40,34,0,83,36,83,37, + 53,2,0,0,0,0,0,0,32,0,92,40,34,0,83,38, + 83,39,53,2,0,0,0,0,0,0,32,0,92,40,34,0, + 83,40,83,41,53,2,0,0,0,0,0,0,32,0,92,40, + 34,0,83,42,83,43,53,2,0,0,0,0,0,0,32,0, + 92,40,34,0,83,44,83,45,53,2,0,0,0,0,0,0, + 32,0,92,40,34,0,83,46,83,47,53,2,0,0,0,0, + 0,0,32,0,92,40,34,0,83,48,83,49,53,2,0,0, + 0,0,0,0,32,0,92,40,34,0,83,48,83,50,53,2, + 0,0,0,0,0,0,32,0,92,40,34,0,83,51,83,31, + 53,2,0,0,0,0,0,0,32,0,92,42,114,43,92,41, + 34,0,53,0,0,0,0,0,0,0,114,42,92,40,34,0, + 83,20,83,21,53,2,0,0,0,0,0,0,32,0,92,42, + 114,44,92,41,34,0,53,0,0,0,0,0,0,0,114,42, + 92,40,34,0,83,52,83,53,53,2,0,0,0,0,0,0, + 32,0,92,40,34,0,83,54,83,23,53,2,0,0,0,0, + 0,0,32,0,92,40,34,0,83,55,83,23,53,2,0,0, + 0,0,0,0,32,0,92,40,34,0,83,56,83,25,53,2, + 0,0,0,0,0,0,32,0,92,40,34,0,83,57,83,58, + 53,2,0,0,0,0,0,0,32,0,92,40,34,0,83,57, + 83,59,53,2,0,0,0,0,0,0,32,0,92,40,34,0, + 83,60,83,61,53,2,0,0,0,0,0,0,32,0,92,42, + 82,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,92,3,53,1,0,0,0,0,0,0,32,0, + 92,40,34,0,83,62,83,63,53,2,0,0,0,0,0,0, + 32,0,92,40,34,0,83,64,83,31,53,2,0,0,0,0, + 0,0,32,0,92,40,34,0,83,65,83,31,53,2,0,0, + 0,0,0,0,32,0,92,40,34,0,83,66,83,67,53,2, + 0,0,0,0,0,0,32,0,92,14,34,0,83,68,53,1, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,97,22, + 0,0,92,14,34,0,83,69,53,1,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,97,9,0,0,92,40,34,0, + 83,70,83,68,53,2,0,0,0,0,0,0,32,0,92,42, + 114,46,92,41,34,0,53,0,0,0,0,0,0,0,114,42, + 92,40,34,0,83,20,83,21,53,2,0,0,0,0,0,0, + 32,0,92,40,34,0,83,24,83,25,53,2,0,0,0,0, + 0,0,32,0,92,40,34,0,83,26,83,27,53,2,0,0, + 0,0,0,0,32,0,92,40,34,0,83,71,83,72,53,2, + 0,0,0,0,0,0,32,0,92,40,34,0,83,73,83,23, + 53,2,0,0,0,0,0,0,32,0,92,40,34,0,83,55, + 83,23,53,2,0,0,0,0,0,0,32,0,92,14,34,0, + 83,74,53,1,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,97,9,0,0,92,40,34,0,83,75,83,25,53,2, + 0,0,0,0,0,0,32,0,92,40,34,0,83,32,83,33, + 53,2,0,0,0,0,0,0,32,0,92,40,34,0,83,76, + 83,31,53,2,0,0,0,0,0,0,32,0,92,40,34,0, + 83,28,83,27,53,2,0,0,0,0,0,0,32,0,92,40, + 34,0,83,26,83,27,53,2,0,0,0,0,0,0,32,0, + 92,40,34,0,83,51,83,31,53,2,0,0,0,0,0,0, + 32,0,92,40,34,0,83,55,83,27,53,2,0,0,0,0, + 0,0,32,0,92,42,114,47,67,42,67,24,67,39,67,40, + 83,1,114,48,83,77,114,49,83,78,114,50,83,143,83,80, + 26,0,106,1,114,51,83,81,26,0,114,52,83,82,26,0, + 114,53,92,13,82,51,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,47,0,83,83,81,1,53,1, + 0,0,0,0,0,0,32,0,92,54,34,0,53,0,0,0, + 0,0,0,0,114,55,83,144,83,84,26,0,106,1,114,56, + 92,13,82,41,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,85,53,1,0,0,0,0,0,0, + 32,0,92,57,92,3,49,2,92,43,58,58,0,0,97,44, + 0,0,92,58,92,3,49,2,92,46,58,58,0,0,97,36, + 0,0,83,145,83,79,83,2,83,86,46,2,83,87,26,0, + 106,2,106,1,114,59,83,1,114,60,83,77,114,61,83,78, + 114,62,83,88,26,0,114,63,92,13,82,41,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,89, + 53,1,0,0,0,0,0,0,32,0,83,90,26,0,114,64, + 83,91,26,0,114,65,83,92,26,0,114,66,83,93,26,0, + 114,67,83,94,26,0,114,68,83,95,26,0,114,69,92,13, + 82,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,47,0,83,96,81,1,53,1,0,0,0,0, + 0,0,32,0,83,146,83,97,26,0,106,1,114,70,83,146, + 83,98,26,0,106,1,114,71,83,1,83,99,75,5,74,72, + 114,72,74,73,114,73,32,0,24,0,34,0,83,100,26,0, + 83,101,92,72,53,3,0,0,0,0,0,0,114,74,83,102, + 26,0,114,75,92,75,34,0,53,0,0,0,0,0,0,0, + 114,76,67,75,83,146,83,103,26,0,106,1,114,77,92,16, + 83,13,58,103,0,0,114,78,92,13,82,51,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,104, + 53,1,0,0,0,0,0,0,32,0,92,78,40,0,0,0, + 0,0,0,0,97,48,0,0,83,105,26,0,114,79,92,74, + 34,0,92,76,82,160,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,92,79,92,81,92,79,92,81, + 53,5,0,0,0,0,0,0,114,82,67,79,83,146,83,106, + 26,0,106,1,114,83,92,13,82,51,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,107,53,1, + 0,0,0,0,0,0,32,0,83,108,26,0,114,84,92,84, + 34,0,53,0,0,0,0,0,0,0,117,2,0,0,114,85, + 114,86,67,84,92,14,34,0,83,109,53,1,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,97,85,0,0,92,14, + 34,0,83,110,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,100,72,0,0,92,14,34,0,83,111,53,1, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,97,59, + 0,0,83,1,114,87,83,77,61,1,114,88,114,89,92,13, + 82,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,47,0,83,112,81,1,53,1,0,0,0,0, + 0,0,32,0,83,113,26,0,114,90,83,114,26,0,114,91, + 83,115,26,0,114,92,83,116,26,0,114,93,83,117,26,0, + 114,94,92,13,82,51,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,47,0,83,118,81,1,53,1, + 0,0,0,0,0,0,32,0,92,14,34,0,83,110,53,1, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,97,25, + 0,0,83,119,26,0,114,95,83,120,26,0,114,96,92,13, + 82,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,121,83,122,47,2,53,1,0,0,0,0, + 0,0,32,0,92,14,34,0,83,123,53,1,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,97,25,0,0,83,124, + 26,0,114,97,83,125,26,0,114,98,92,13,82,51,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 2,0,101,15,101,26,171,1,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,1,0,91,26,9,0,100,1,100,12, - 108,26,109,24,90,24,1,0,110,8,2,0,101,21,100,15, - 171,1,0,0,0,0,0,0,130,1,101,23,101,2,106,56, + 83,126,83,127,47,2,53,1,0,0,0,0,0,0,32,0, + 92,2,82,198,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,128,58,119,0,0,97,32,0,0, + 83,147,83,129,26,0,106,1,114,100,24,0,34,0,83,130, + 26,0,83,131,53,2,0,0,0,0,0,0,114,101,92,13, + 82,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,132,53,1,0,0,0,0,0,0,32,0, + 83,148,83,133,26,0,106,1,114,102,83,134,26,0,114,103, + 92,14,34,0,83,135,53,1,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,100,9,0,0,92,103,114,104,83,135, + 92,104,108,105,0,0,0,0,0,0,0,0,24,0,34,0, + 83,136,26,0,83,137,92,1,82,212,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,3,0,0, + 0,0,0,0,114,107,92,16,83,13,58,88,0,0,97,13, + 0,0,24,0,34,0,83,138,26,0,83,139,53,2,0,0, + 0,0,0,0,114,108,83,140,26,0,114,109,92,14,34,0, + 83,141,53,1,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,97,25,0,0,92,2,82,220,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,53,0, + 0,0,0,0,0,0,83,1,58,18,0,0,97,4,0,0, + 83,142,26,0,114,111,103,2,92,112,114,111,103,2,33,0, + 92,21,7,0,97,4,0,0,32,0,31,0,71,5,78,22, + 102,0,61,3,31,0,102,1,33,0,92,21,7,0,97,4, + 0,0,32,0,31,0,71,5,78,24,102,0,61,3,31,0, + 102,1,33,0,92,21,7,0,97,4,0,0,32,0,31,0, + 71,4,78,225,102,0,61,3,31,0,102,1,33,0,92,21, + 7,0,97,4,0,0,32,0,31,0,71,4,78,190,102,0, + 61,3,31,0,102,1,41,149,97,70,4,0,0,79,83,32, + 114,111,117,116,105,110,101,115,32,102,111,114,32,78,84,32, + 111,114,32,80,111,115,105,120,32,100,101,112,101,110,100,105, + 110,103,32,111,110,32,119,104,97,116,32,115,121,115,116,101, + 109,32,119,101,39,114,101,32,111,110,46,10,10,84,104,105, + 115,32,101,120,112,111,114,116,115,58,10,32,32,45,32,97, + 108,108,32,102,117,110,99,116,105,111,110,115,32,102,114,111, + 109,32,112,111,115,105,120,32,111,114,32,110,116,44,32,101, + 46,103,46,32,117,110,108,105,110,107,44,32,115,116,97,116, + 44,32,101,116,99,46,10,32,32,45,32,111,115,46,112,97, + 116,104,32,105,115,32,101,105,116,104,101,114,32,112,111,115, + 105,120,112,97,116,104,32,111,114,32,110,116,112,97,116,104, + 10,32,32,45,32,111,115,46,110,97,109,101,32,105,115,32, + 101,105,116,104,101,114,32,39,112,111,115,105,120,39,32,111, + 114,32,39,110,116,39,10,32,32,45,32,111,115,46,99,117, + 114,100,105,114,32,105,115,32,97,32,115,116,114,105,110,103, + 32,114,101,112,114,101,115,101,110,116,105,110,103,32,116,104, + 101,32,99,117,114,114,101,110,116,32,100,105,114,101,99,116, + 111,114,121,32,40,97,108,119,97,121,115,32,39,46,39,41, + 10,32,32,45,32,111,115,46,112,97,114,100,105,114,32,105, + 115,32,97,32,115,116,114,105,110,103,32,114,101,112,114,101, + 115,101,110,116,105,110,103,32,116,104,101,32,112,97,114,101, + 110,116,32,100,105,114,101,99,116,111,114,121,32,40,97,108, + 119,97,121,115,32,39,46,46,39,41,10,32,32,45,32,111, + 115,46,115,101,112,32,105,115,32,116,104,101,32,40,111,114, + 32,97,32,109,111,115,116,32,99,111,109,109,111,110,41,32, + 112,97,116,104,110,97,109,101,32,115,101,112,97,114,97,116, + 111,114,32,40,39,47,39,32,111,114,32,39,92,92,39,41, + 10,32,32,45,32,111,115,46,101,120,116,115,101,112,32,105, + 115,32,116,104,101,32,101,120,116,101,110,115,105,111,110,32, + 115,101,112,97,114,97,116,111,114,32,40,97,108,119,97,121, + 115,32,39,46,39,41,10,32,32,45,32,111,115,46,97,108, + 116,115,101,112,32,105,115,32,116,104,101,32,97,108,116,101, + 114,110,97,116,101,32,112,97,116,104,110,97,109,101,32,115, + 101,112,97,114,97,116,111,114,32,40,78,111,110,101,32,111, + 114,32,39,47,39,41,10,32,32,45,32,111,115,46,112,97, + 116,104,115,101,112,32,105,115,32,116,104,101,32,99,111,109, + 112,111,110,101,110,116,32,115,101,112,97,114,97,116,111,114, + 32,117,115,101,100,32,105,110,32,36,80,65,84,72,32,101, + 116,99,10,32,32,45,32,111,115,46,108,105,110,101,115,101, + 112,32,105,115,32,116,104,101,32,108,105,110,101,32,115,101, + 112,97,114,97,116,111,114,32,105,110,32,116,101,120,116,32, + 102,105,108,101,115,32,40,39,92,110,39,32,111,114,32,39, + 92,114,92,110,39,41,10,32,32,45,32,111,115,46,100,101, + 102,112,97,116,104,32,105,115,32,116,104,101,32,100,101,102, + 97,117,108,116,32,115,101,97,114,99,104,32,112,97,116,104, + 32,102,111,114,32,101,120,101,99,117,116,97,98,108,101,115, + 10,32,32,45,32,111,115,46,100,101,118,110,117,108,108,32, + 105,115,32,116,104,101,32,102,105,108,101,32,112,97,116,104, + 32,111,102,32,116,104,101,32,110,117,108,108,32,100,101,118, + 105,99,101,32,40,39,47,100,101,118,47,110,117,108,108,39, + 44,32,101,116,99,46,41,10,10,80,114,111,103,114,97,109, + 115,32,116,104,97,116,32,105,109,112,111,114,116,32,97,110, + 100,32,117,115,101,32,39,111,115,39,32,115,116,97,110,100, + 32,97,32,98,101,116,116,101,114,32,99,104,97,110,99,101, + 32,111,102,32,98,101,105,110,103,10,112,111,114,116,97,98, + 108,101,32,98,101,116,119,101,101,110,32,100,105,102,102,101, + 114,101,110,116,32,112,108,97,116,102,111,114,109,115,46,32, + 32,79,102,32,99,111,117,114,115,101,44,32,116,104,101,121, + 32,109,117,115,116,32,116,104,101,110,10,111,110,108,121,32, + 117,115,101,32,102,117,110,99,116,105,111,110,115,32,116,104, + 97,116,32,97,114,101,32,100,101,102,105,110,101,100,32,98, + 121,32,97,108,108,32,112,108,97,116,102,111,114,109,115,32, + 40,101,46,103,46,44,32,117,110,108,105,110,107,10,97,110, + 100,32,111,112,101,110,100,105,114,41,44,32,97,110,100,32, + 108,101,97,118,101,32,97,108,108,32,112,97,116,104,110,97, + 109,101,32,109,97,110,105,112,117,108,97,116,105,111,110,32, + 116,111,32,111,115,46,112,97,116,104,10,40,101,46,103,46, + 44,32,115,112,108,105,116,32,97,110,100,32,106,111,105,110, + 41,46,10,233,0,0,0,0,78,41,1,218,14,95,99,104, + 101,99,107,95,109,101,116,104,111,100,115,41,18,218,6,97, + 108,116,115,101,112,218,6,99,117,114,100,105,114,218,6,112, + 97,114,100,105,114,218,3,115,101,112,218,7,112,97,116,104, + 115,101,112,218,7,108,105,110,101,115,101,112,218,7,100,101, + 102,112,97,116,104,218,4,110,97,109,101,218,4,112,97,116, + 104,218,7,100,101,118,110,117,108,108,218,8,83,69,69,75, + 95,83,69,84,218,8,83,69,69,75,95,67,85,82,218,8, + 83,69,69,75,95,69,78,68,218,8,102,115,101,110,99,111, + 100,101,218,8,102,115,100,101,99,111,100,101,218,13,103,101, + 116,95,101,120,101,99,95,112,97,116,104,218,6,102,100,111, + 112,101,110,218,6,101,120,116,115,101,112,99,1,0,0,0, + 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, + 243,28,0,0,0,149,0,85,0,91,1,0,0,0,0,0, + 0,0,0,53,0,0,0,0,0,0,0,59,0,0,0,36, + 0,169,1,78,41,1,218,7,103,108,111,98,97,108,115,41, + 1,114,11,0,0,0,115,1,0,0,0,32,218,11,60,102, + 114,111,122,101,110,32,111,115,62,218,7,95,101,120,105,115, + 116,115,114,26,0,0,0,41,0,0,0,115,15,0,0,0, + 128,0,216,11,15,148,55,147,57,209,11,28,208,4,28,243, + 0,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,6,0,0,0,3,0,0,0,243,166,0,0,0,149,0, + 30,0,91,1,0,0,0,0,0,0,0,0,85,0,82,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,16,60,0,0,0,100,1,100,17,108,29,109,30, - 90,30,109,31,90,31,109,32,90,32,109,33,90,33,109,34, - 90,34,109,35,90,35,109,36,90,36,109,37,90,37,1,0, - 91,12,2,0,101,14,100,18,171,1,0,0,0,0,0,0, - 144,1,114,195,2,0,101,38,171,0,0,0,0,0,0,0, - 90,39,100,19,132,0,90,40,2,0,101,41,171,0,0,0, - 0,0,0,0,90,42,2,0,101,40,100,20,100,21,171,2, - 0,0,0,0,0,0,1,0,2,0,101,40,100,22,100,23, - 171,2,0,0,0,0,0,0,1,0,2,0,101,40,100,24, - 100,25,171,2,0,0,0,0,0,0,1,0,2,0,101,40, - 100,26,100,27,171,2,0,0,0,0,0,0,1,0,2,0, - 101,40,100,28,100,29,171,2,0,0,0,0,0,0,1,0, - 2,0,101,40,100,30,100,31,171,2,0,0,0,0,0,0, - 1,0,2,0,101,40,100,32,100,33,171,2,0,0,0,0, - 0,0,1,0,2,0,101,40,100,34,100,35,171,2,0,0, - 0,0,0,0,1,0,2,0,101,40,100,36,100,37,171,2, - 0,0,0,0,0,0,1,0,2,0,101,40,100,38,100,39, - 171,2,0,0,0,0,0,0,1,0,2,0,101,40,100,40, - 100,41,171,2,0,0,0,0,0,0,1,0,2,0,101,40, - 100,42,100,43,171,2,0,0,0,0,0,0,1,0,2,0, - 101,40,100,44,100,45,171,2,0,0,0,0,0,0,1,0, - 2,0,101,40,100,46,100,47,171,2,0,0,0,0,0,0, - 1,0,2,0,101,40,100,46,100,48,171,2,0,0,0,0, - 0,0,1,0,2,0,101,40,100,49,100,29,171,2,0,0, - 0,0,0,0,1,0,101,42,90,43,2,0,101,41,171,0, - 0,0,0,0,0,0,90,42,2,0,101,40,100,20,100,21, - 171,2,0,0,0,0,0,0,1,0,101,42,90,44,2,0, - 101,41,171,0,0,0,0,0,0,0,90,42,2,0,101,40, - 100,50,100,51,171,2,0,0,0,0,0,0,1,0,2,0, - 101,40,100,52,100,23,171,2,0,0,0,0,0,0,1,0, - 2,0,101,40,100,53,100,25,171,2,0,0,0,0,0,0, - 1,0,2,0,101,40,100,54,100,55,171,2,0,0,0,0, - 0,0,1,0,2,0,101,40,100,54,100,56,171,2,0,0, - 0,0,0,0,1,0,2,0,101,40,100,57,100,58,171,2, - 0,0,0,0,0,0,1,0,101,42,106,91,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,3, - 171,1,0,0,0,0,0,0,1,0,2,0,101,40,100,59, - 100,60,171,2,0,0,0,0,0,0,1,0,2,0,101,40, - 100,61,100,29,171,2,0,0,0,0,0,0,1,0,2,0, - 101,40,100,62,100,29,171,2,0,0,0,0,0,0,1,0, - 2,0,101,40,100,63,100,64,171,2,0,0,0,0,0,0, - 1,0,2,0,101,14,100,65,171,1,0,0,0,0,0,0, - 114,17,2,0,101,14,100,66,171,1,0,0,0,0,0,0, - 114,9,2,0,101,40,100,67,100,65,171,2,0,0,0,0, - 0,0,1,0,101,42,90,46,2,0,101,41,171,0,0,0, - 0,0,0,0,90,42,2,0,101,40,100,20,100,21,171,2, - 0,0,0,0,0,0,1,0,2,0,101,40,100,24,100,25, - 171,2,0,0,0,0,0,0,1,0,2,0,101,40,100,26, - 100,27,171,2,0,0,0,0,0,0,1,0,2,0,101,40, - 100,68,100,69,171,2,0,0,0,0,0,0,1,0,2,0, - 101,40,100,70,100,23,171,2,0,0,0,0,0,0,1,0, - 2,0,101,14,100,71,171,1,0,0,0,0,0,0,114,9, - 2,0,101,40,100,72,100,25,171,2,0,0,0,0,0,0, - 1,0,2,0,101,40,100,30,100,31,171,2,0,0,0,0, - 0,0,1,0,2,0,101,40,100,73,100,29,171,2,0,0, - 0,0,0,0,1,0,2,0,101,40,100,74,100,27,171,2, - 0,0,0,0,0,0,1,0,2,0,101,40,100,26,100,27, - 171,2,0,0,0,0,0,0,1,0,2,0,101,40,100,49, - 100,29,171,2,0,0,0,0,0,0,1,0,2,0,101,40, - 100,75,100,27,171,2,0,0,0,0,0,0,1,0,101,42, - 90,47,91,42,91,24,91,39,91,40,100,1,90,48,100,76, - 90,49,100,77,90,50,100,140,100,79,132,1,90,51,100,80, - 132,0,90,52,100,81,132,0,90,53,101,13,106,51,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 103,0,100,82,162,1,171,1,0,0,0,0,0,0,1,0, - 2,0,101,54,171,0,0,0,0,0,0,0,90,55,100,141, - 100,83,132,1,90,56,101,13,106,41,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,84,171,1, - 0,0,0,0,0,0,1,0,101,57,101,3,104,2,101,43, - 107,26,0,0,114,41,101,58,101,3,104,2,101,46,107,26, - 0,0,114,34,100,142,100,78,100,2,100,85,156,2,100,86, - 132,3,90,59,100,1,90,60,100,76,90,61,100,77,90,62, - 100,87,132,0,90,63,101,13,106,41,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,88,171,1, - 0,0,0,0,0,0,1,0,100,89,132,0,90,64,100,90, - 132,0,90,65,100,91,132,0,90,66,100,92,132,0,90,67, - 100,93,132,0,90,68,100,94,132,0,90,69,101,13,106,51, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,103,0,100,95,162,1,171,1,0,0,0,0,0,0, - 1,0,100,143,100,96,132,1,90,70,100,143,100,97,132,1, - 90,71,100,1,100,98,108,5,109,72,90,72,109,73,90,73, - 1,0,2,0,71,0,100,99,132,0,100,100,101,72,171,3, - 0,0,0,0,0,0,90,74,100,101,132,0,90,75,2,0, - 101,75,171,0,0,0,0,0,0,0,90,76,91,75,100,143, - 100,102,132,1,90,77,101,16,100,13,107,55,0,0,90,78, - 101,13,106,51,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,103,171,1,0,0,0,0,0,0, - 1,0,101,78,114,47,100,104,132,0,90,79,2,0,101,74, - 101,76,106,160,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,101,79,101,81,101,79,101,81,171,5, - 0,0,0,0,0,0,90,82,91,79,100,143,100,105,132,1, - 90,83,101,13,106,51,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,106,171,1,0,0,0,0, - 0,0,1,0,100,107,132,0,90,84,2,0,101,84,171,0, - 0,0,0,0,0,0,92,2,0,0,90,85,90,86,91,84, - 2,0,101,14,100,108,171,1,0,0,0,0,0,0,114,75, - 2,0,101,14,100,109,171,1,0,0,0,0,0,0,115,67, - 2,0,101,14,100,110,171,1,0,0,0,0,0,0,114,59, - 100,1,90,87,100,76,120,1,90,88,90,89,101,13,106,51, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,103,0,100,111,162,1,171,1,0,0,0,0,0,0, - 1,0,100,112,132,0,90,90,100,113,132,0,90,91,100,114, - 132,0,90,92,100,115,132,0,90,93,100,116,132,0,90,94, - 101,13,106,51,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,103,0,100,117,162,1,171,1,0,0, - 0,0,0,0,1,0,2,0,101,14,100,109,171,1,0,0, - 0,0,0,0,114,25,100,118,132,0,90,95,100,119,132,0, - 90,96,101,13,106,51,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,120,100,121,103,2,171,1, - 0,0,0,0,0,0,1,0,2,0,101,14,100,122,171,1, - 0,0,0,0,0,0,114,25,100,123,132,0,90,97,100,124, - 132,0,90,98,101,13,106,51,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,125,100,126,103,2, - 171,1,0,0,0,0,0,0,1,0,101,2,106,198,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,127,107,55,0,0,114,31,100,144,100,128,132,1,90,100, - 2,0,71,0,100,129,132,0,100,130,171,2,0,0,0,0, - 0,0,90,101,101,13,106,41,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,131,171,1,0,0, - 0,0,0,0,1,0,100,145,100,132,132,1,90,102,100,133, - 132,0,90,103,2,0,101,14,100,134,171,1,0,0,0,0, - 0,0,115,9,101,103,90,104,100,134,101,104,95,105,0,0, - 0,0,0,0,0,0,2,0,71,0,100,135,132,0,100,136, - 101,1,106,212,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,3,0,0,0,0,0,0,90,107, - 101,16,100,13,107,40,0,0,114,14,2,0,71,0,100,137, - 132,0,100,138,171,2,0,0,0,0,0,0,90,108,100,139, - 132,0,90,109,121,2,121,2,35,0,101,21,36,0,114,4, - 1,0,89,0,144,4,140,140,119,0,120,3,89,0,119,1, - 35,0,101,21,36,0,114,4,1,0,89,0,144,4,140,141, - 119,0,120,3,89,0,119,1,35,0,101,21,36,0,114,4, - 1,0,89,0,144,4,140,87,119,0,120,3,89,0,119,1, - 35,0,101,21,36,0,114,4,1,0,89,0,144,4,140,51, - 119,0,120,3,89,0,119,1,41,146,97,78,4,0,0,79, - 83,32,114,111,117,116,105,110,101,115,32,102,111,114,32,78, - 84,32,111,114,32,80,111,115,105,120,32,100,101,112,101,110, - 100,105,110,103,32,111,110,32,119,104,97,116,32,115,121,115, - 116,101,109,32,119,101,39,114,101,32,111,110,46,10,10,84, - 104,105,115,32,101,120,112,111,114,116,115,58,10,32,32,45, - 32,97,108,108,32,102,117,110,99,116,105,111,110,115,32,102, - 114,111,109,32,112,111,115,105,120,32,111,114,32,110,116,44, - 32,101,46,103,46,32,117,110,108,105,110,107,44,32,115,116, - 97,116,44,32,101,116,99,46,10,32,32,45,32,111,115,46, - 112,97,116,104,32,105,115,32,101,105,116,104,101,114,32,112, - 111,115,105,120,112,97,116,104,32,111,114,32,110,116,112,97, - 116,104,10,32,32,45,32,111,115,46,110,97,109,101,32,105, - 115,32,101,105,116,104,101,114,32,39,112,111,115,105,120,39, - 32,111,114,32,39,110,116,39,10,32,32,45,32,111,115,46, - 99,117,114,100,105,114,32,105,115,32,97,32,115,116,114,105, - 110,103,32,114,101,112,114,101,115,101,110,116,105,110,103,32, - 116,104,101,32,99,117,114,114,101,110,116,32,100,105,114,101, - 99,116,111,114,121,32,40,97,108,119,97,121,115,32,39,46, - 39,41,10,32,32,45,32,111,115,46,112,97,114,100,105,114, - 32,105,115,32,97,32,115,116,114,105,110,103,32,114,101,112, - 114,101,115,101,110,116,105,110,103,32,116,104,101,32,112,97, - 114,101,110,116,32,100,105,114,101,99,116,111,114,121,32,40, - 97,108,119,97,121,115,32,39,46,46,39,41,10,32,32,45, - 32,111,115,46,115,101,112,32,105,115,32,116,104,101,32,40, - 111,114,32,97,32,109,111,115,116,32,99,111,109,109,111,110, - 41,32,112,97,116,104,110,97,109,101,32,115,101,112,97,114, - 97,116,111,114,32,40,39,47,39,32,111,114,32,39,92,92, - 39,41,10,32,32,45,32,111,115,46,101,120,116,115,101,112, - 32,105,115,32,116,104,101,32,101,120,116,101,110,115,105,111, - 110,32,115,101,112,97,114,97,116,111,114,32,40,97,108,119, - 97,121,115,32,39,46,39,41,10,32,32,45,32,111,115,46, - 97,108,116,115,101,112,32,105,115,32,116,104,101,32,97,108, - 116,101,114,110,97,116,101,32,112,97,116,104,110,97,109,101, - 32,115,101,112,97,114,97,116,111,114,32,40,78,111,110,101, - 32,111,114,32,39,47,39,41,10,32,32,45,32,111,115,46, - 112,97,116,104,115,101,112,32,105,115,32,116,104,101,32,99, - 111,109,112,111,110,101,110,116,32,115,101,112,97,114,97,116, - 111,114,32,117,115,101,100,32,105,110,32,36,80,65,84,72, - 32,101,116,99,10,32,32,45,32,111,115,46,108,105,110,101, - 115,101,112,32,105,115,32,116,104,101,32,108,105,110,101,32, - 115,101,112,97,114,97,116,111,114,32,105,110,32,116,101,120, - 116,32,102,105,108,101,115,32,40,39,92,114,39,32,111,114, - 32,39,92,110,39,32,111,114,32,39,92,114,92,110,39,41, - 10,32,32,45,32,111,115,46,100,101,102,112,97,116,104,32, - 105,115,32,116,104,101,32,100,101,102,97,117,108,116,32,115, - 101,97,114,99,104,32,112,97,116,104,32,102,111,114,32,101, - 120,101,99,117,116,97,98,108,101,115,10,32,32,45,32,111, - 115,46,100,101,118,110,117,108,108,32,105,115,32,116,104,101, - 32,102,105,108,101,32,112,97,116,104,32,111,102,32,116,104, - 101,32,110,117,108,108,32,100,101,118,105,99,101,32,40,39, - 47,100,101,118,47,110,117,108,108,39,44,32,101,116,99,46, - 41,10,10,80,114,111,103,114,97,109,115,32,116,104,97,116, - 32,105,109,112,111,114,116,32,97,110,100,32,117,115,101,32, - 39,111,115,39,32,115,116,97,110,100,32,97,32,98,101,116, - 116,101,114,32,99,104,97,110,99,101,32,111,102,32,98,101, - 105,110,103,10,112,111,114,116,97,98,108,101,32,98,101,116, - 119,101,101,110,32,100,105,102,102,101,114,101,110,116,32,112, - 108,97,116,102,111,114,109,115,46,32,32,79,102,32,99,111, - 117,114,115,101,44,32,116,104,101,121,32,109,117,115,116,32, - 116,104,101,110,10,111,110,108,121,32,117,115,101,32,102,117, - 110,99,116,105,111,110,115,32,116,104,97,116,32,97,114,101, - 32,100,101,102,105,110,101,100,32,98,121,32,97,108,108,32, - 112,108,97,116,102,111,114,109,115,32,40,101,46,103,46,44, - 32,117,110,108,105,110,107,10,97,110,100,32,111,112,101,110, - 100,105,114,41,44,32,97,110,100,32,108,101,97,118,101,32, - 97,108,108,32,112,97,116,104,110,97,109,101,32,109,97,110, - 105,112,117,108,97,116,105,111,110,32,116,111,32,111,115,46, - 112,97,116,104,10,40,101,46,103,46,44,32,115,112,108,105, - 116,32,97,110,100,32,106,111,105,110,41,46,10,233,0,0, - 0,0,78,41,1,218,14,95,99,104,101,99,107,95,109,101, - 116,104,111,100,115,41,18,218,6,97,108,116,115,101,112,218, - 6,99,117,114,100,105,114,218,6,112,97,114,100,105,114,218, - 3,115,101,112,218,7,112,97,116,104,115,101,112,218,7,108, - 105,110,101,115,101,112,218,7,100,101,102,112,97,116,104,218, - 4,110,97,109,101,218,4,112,97,116,104,218,7,100,101,118, - 110,117,108,108,218,8,83,69,69,75,95,83,69,84,218,8, - 83,69,69,75,95,67,85,82,218,8,83,69,69,75,95,69, - 78,68,218,8,102,115,101,110,99,111,100,101,218,8,102,115, - 100,101,99,111,100,101,218,13,103,101,116,95,101,120,101,99, - 95,112,97,116,104,218,6,102,100,111,112,101,110,218,6,101, - 120,116,115,101,112,99,1,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,3,0,0,0,243,26,0,0,0,151, - 0,124,0,116,1,0,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,118,0,83,0,169,1,78,41,1,218,7, - 103,108,111,98,97,108,115,41,1,114,11,0,0,0,115,1, - 0,0,0,32,250,11,60,102,114,111,122,101,110,32,111,115, - 62,218,7,95,101,120,105,115,116,115,114,26,0,0,0,41, - 0,0,0,115,15,0,0,0,128,0,216,11,15,148,55,147, - 57,208,11,28,208,4,28,243,0,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,6,0,0,0,3,0,0, - 0,243,156,0,0,0,151,0,9,0,116,1,0,0,0,0, - 0,0,0,0,124,0,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,83,0,35,0,116,4,0,0,0,0,0,0,0,0, - 36,0,114,43,1,0,116,7,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,68,0,143,1,99,2, - 103,0,99,2,93,13,0,0,125,1,124,1,100,1,25,0, - 0,0,100,2,107,55,0,0,115,1,140,12,124,1,145,2, - 140,15,4,0,110,5,99,2,1,0,99,2,125,1,119,0, - 99,2,125,1,99,2,89,0,83,0,119,0,120,3,89,0, - 119,1,41,3,78,114,2,0,0,0,218,1,95,41,4,218, - 4,108,105,115,116,218,7,95,95,97,108,108,95,95,218,14, - 65,116,116,114,105,98,117,116,101,69,114,114,111,114,218,3, - 100,105,114,41,2,218,6,109,111,100,117,108,101,218,1,110, - 115,2,0,0,0,32,32,114,25,0,0,0,218,17,95,103, - 101,116,95,101,120,112,111,114,116,115,95,108,105,115,116,114, - 36,0,0,0,44,0,0,0,115,72,0,0,0,128,0,240, - 2,3,5,55,220,15,19,144,70,151,78,145,78,211,15,35, - 208,8,35,248,220,11,25,242,0,1,5,55,220,27,30,152, - 118,156,59,211,15,54,153,59,144,97,168,33,168,65,169,36, - 176,35,171,43,146,1,153,59,249,212,15,54,210,8,54,240, - 3,1,5,55,250,115,30,0,0,0,130,20,23,0,151,22, - 65,11,3,173,13,65,0,6,187,4,65,0,6,191,9,65, - 11,3,193,10,1,65,11,3,218,5,112,111,115,105,120,218, - 1,10,41,1,218,1,42,41,1,218,5,95,101,120,105,116, - 114,40,0,0,0,41,1,218,15,95,104,97,118,101,95,102, - 117,110,99,116,105,111,110,115,218,2,110,116,122,2,13,10, - 122,27,110,111,32,111,115,32,115,112,101,99,105,102,105,99, - 32,109,111,100,117,108,101,32,102,111,117,110,100,122,7,111, - 115,46,112,97,116,104,41,8,114,5,0,0,0,114,6,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,10,0,0, - 0,114,21,0,0,0,114,4,0,0,0,114,13,0,0,0, - 114,41,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,243,96,0,0,0,151, - 0,124,1,116,0,0,0,0,0,0,0,0,0,118,0,114, - 38,124,0,116,2,0,0,0,0,0,0,0,0,118,0,114, - 29,116,4,0,0,0,0,0,0,0,0,106,7,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116, - 0,0,0,0,0,0,0,0,0,124,1,25,0,0,0,171, - 1,0,0,0,0,0,0,1,0,121,0,121,0,121,0,114, - 23,0,0,0,41,4,218,8,95,103,108,111,98,97,108,115, - 114,41,0,0,0,218,4,95,115,101,116,218,3,97,100,100, - 41,2,218,3,115,116,114,218,2,102,110,115,2,0,0,0, - 32,32,114,25,0,0,0,218,4,95,97,100,100,114,49,0, - 0,0,104,0,0,0,115,39,0,0,0,128,0,216,12,14, - 148,40,137,78,160,19,172,15,209,33,55,220,12,16,143,72, - 137,72,148,88,152,98,145,92,213,12,34,240,3,0,34,56, - 136,78,114,27,0,0,0,218,14,72,65,86,69,95,70,65, - 67,67,69,83,83,65,84,218,6,97,99,99,101,115,115,218, - 13,72,65,86,69,95,70,67,72,77,79,68,65,84,218,5, - 99,104,109,111,100,218,13,72,65,86,69,95,70,67,72,79, - 87,78,65,84,218,5,99,104,111,119,110,218,12,72,65,86, - 69,95,70,83,84,65,84,65,84,218,4,115,116,97,116,218, - 14,72,65,86,69,95,70,85,84,73,77,69,83,65,84,218, - 5,117,116,105,109,101,218,11,72,65,86,69,95,76,73,78, - 75,65,84,218,4,108,105,110,107,218,12,72,65,86,69,95, - 77,75,68,73,82,65,84,218,5,109,107,100,105,114,218,13, - 72,65,86,69,95,77,75,70,73,70,79,65,84,218,6,109, - 107,102,105,102,111,218,12,72,65,86,69,95,77,75,78,79, - 68,65,84,218,5,109,107,110,111,100,218,11,72,65,86,69, - 95,79,80,69,78,65,84,218,4,111,112,101,110,218,15,72, - 65,86,69,95,82,69,65,68,76,73,78,75,65,84,218,8, - 114,101,97,100,108,105,110,107,218,13,72,65,86,69,95,82, - 69,78,65,77,69,65,84,218,6,114,101,110,97,109,101,218, - 14,72,65,86,69,95,83,89,77,76,73,78,75,65,84,218, - 7,115,121,109,108,105,110,107,218,13,72,65,86,69,95,85, - 78,76,73,78,75,65,84,218,6,117,110,108,105,110,107,218, - 5,114,109,100,105,114,218,14,72,65,86,69,95,85,84,73, - 77,69,78,83,65,84,218,11,72,65,86,69,95,70,67,72, - 68,73,82,218,5,99,104,100,105,114,218,11,72,65,86,69, - 95,70,67,72,77,79,68,218,11,72,65,86,69,95,70,67, - 72,79,87,78,218,14,72,65,86,69,95,70,68,79,80,69, - 78,68,73,82,218,7,108,105,115,116,100,105,114,218,7,115, - 99,97,110,100,105,114,218,12,72,65,86,69,95,70,69,88, - 69,67,86,69,218,6,101,120,101,99,118,101,218,14,72,65, - 86,69,95,70,84,82,85,78,67,65,84,69,218,8,116,114, - 117,110,99,97,116,101,218,13,72,65,86,69,95,70,85,84, - 73,77,69,78,83,218,12,72,65,86,69,95,70,85,84,73, - 77,69,83,218,14,72,65,86,69,95,70,80,65,84,72,67, - 79,78,70,218,8,112,97,116,104,99,111,110,102,218,7,115, - 116,97,116,118,102,115,218,8,102,115,116,97,116,118,102,115, - 218,13,72,65,86,69,95,70,83,84,65,84,86,70,83,218, - 13,72,65,86,69,95,76,67,72,70,76,65,71,83,218,7, - 99,104,102,108,97,103,115,218,11,72,65,86,69,95,76,67, - 72,77,79,68,218,6,108,99,104,111,119,110,218,11,72,65, - 86,69,95,76,67,72,79,87,78,218,12,72,65,86,69,95, - 76,85,84,73,77,69,83,218,10,72,65,86,69,95,76,83, - 84,65,84,218,10,77,83,95,87,73,78,68,79,87,83,233, + 0,0,53,1,0,0,0,0,0,0,36,0,33,0,91,4, + 0,0,0,0,0,0,0,0,7,0,97,47,0,0,32,0, + 91,7,0,0,0,0,0,0,0,0,85,0,53,1,0,0, + 0,0,0,0,19,0,86,1,115,2,47,0,115,2,19,0, + 72,15,0,0,111,17,83,1,5,0,0,0,83,2,58,119, + 0,0,100,2,0,0,77,13,0,0,85,1,80,2,77,17, + 0,0,11,0,32,0,79,5,115,2,32,0,115,2,110,1, + 102,0,115,2,110,1,115,2,31,0,36,0,102,0,61,3, + 31,0,102,1,41,3,78,114,2,0,0,0,218,1,95,41, + 4,218,4,108,105,115,116,218,7,95,95,97,108,108,95,95, + 218,14,65,116,116,114,105,98,117,116,101,69,114,114,111,114, + 218,3,100,105,114,41,2,218,6,109,111,100,117,108,101,218, + 1,110,115,2,0,0,0,32,32,114,25,0,0,0,218,17, + 95,103,101,116,95,101,120,112,111,114,116,115,95,108,105,115, + 116,114,36,0,0,0,44,0,0,0,115,70,0,0,0,128, + 0,240,2,3,5,55,220,15,19,144,70,151,78,145,78,211, + 15,35,208,8,35,248,220,11,25,243,0,1,5,55,220,27, + 30,152,118,156,59,211,15,54,154,59,144,97,168,65,169,36, + 176,35,169,43,151,1,154,59,249,212,15,54,210,8,54,240, + 3,1,5,55,250,115,31,0,0,0,130,20,23,0,151,23, + 65,16,3,174,12,65,5,6,190,6,65,5,6,193,4,9, + 65,16,3,193,15,1,65,16,3,218,5,112,111,115,105,120, + 218,1,10,41,1,218,1,42,41,1,218,5,95,101,120,105, + 116,114,40,0,0,0,41,1,218,15,95,104,97,118,101,95, + 102,117,110,99,116,105,111,110,115,218,2,110,116,122,2,13, + 10,122,27,110,111,32,111,115,32,115,112,101,99,105,102,105, + 99,32,109,111,100,117,108,101,32,102,111,117,110,100,122,7, + 111,115,46,112,97,116,104,41,8,114,5,0,0,0,114,6, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,10,0, + 0,0,114,21,0,0,0,114,4,0,0,0,114,13,0,0, + 0,114,41,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,243,104,0,0,0, + 149,0,85,1,91,0,0,0,0,0,0,0,0,0,59,0, + 0,0,97,40,0,0,85,0,91,2,0,0,0,0,0,0, + 0,0,59,0,0,0,97,29,0,0,91,4,0,0,0,0, + 0,0,0,0,82,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,91,0,0,0,0,0,0,0, + 0,0,85,1,5,0,0,0,53,1,0,0,0,0,0,0, + 32,0,103,0,103,0,103,0,114,23,0,0,0,41,4,218, + 8,95,103,108,111,98,97,108,115,114,41,0,0,0,218,4, + 95,115,101,116,218,3,97,100,100,41,2,218,3,115,116,114, + 218,2,102,110,115,2,0,0,0,32,32,114,25,0,0,0, + 218,4,95,97,100,100,114,49,0,0,0,104,0,0,0,115, + 39,0,0,0,128,0,216,12,14,148,40,139,78,160,19,172, + 15,211,33,55,220,12,16,143,72,137,72,148,88,152,98,145, + 92,213,12,34,240,3,0,34,56,136,78,114,27,0,0,0, + 218,14,72,65,86,69,95,70,65,67,67,69,83,83,65,84, + 218,6,97,99,99,101,115,115,218,13,72,65,86,69,95,70, + 67,72,77,79,68,65,84,218,5,99,104,109,111,100,218,13, + 72,65,86,69,95,70,67,72,79,87,78,65,84,218,5,99, + 104,111,119,110,218,12,72,65,86,69,95,70,83,84,65,84, + 65,84,218,4,115,116,97,116,218,10,72,65,86,69,95,76, + 83,84,65,84,218,5,108,115,116,97,116,218,14,72,65,86, + 69,95,70,85,84,73,77,69,83,65,84,218,5,117,116,105, + 109,101,218,11,72,65,86,69,95,76,73,78,75,65,84,218, + 4,108,105,110,107,218,12,72,65,86,69,95,77,75,68,73, + 82,65,84,218,5,109,107,100,105,114,218,13,72,65,86,69, + 95,77,75,70,73,70,79,65,84,218,6,109,107,102,105,102, + 111,218,12,72,65,86,69,95,77,75,78,79,68,65,84,218, + 5,109,107,110,111,100,218,11,72,65,86,69,95,79,80,69, + 78,65,84,218,4,111,112,101,110,218,15,72,65,86,69,95, + 82,69,65,68,76,73,78,75,65,84,218,8,114,101,97,100, + 108,105,110,107,218,13,72,65,86,69,95,82,69,78,65,77, + 69,65,84,218,6,114,101,110,97,109,101,218,14,72,65,86, + 69,95,83,89,77,76,73,78,75,65,84,218,7,115,121,109, + 108,105,110,107,218,13,72,65,86,69,95,85,78,76,73,78, + 75,65,84,218,6,117,110,108,105,110,107,218,5,114,109,100, + 105,114,218,14,72,65,86,69,95,85,84,73,77,69,78,83, + 65,84,218,11,72,65,86,69,95,70,67,72,68,73,82,218, + 5,99,104,100,105,114,218,11,72,65,86,69,95,70,67,72, + 77,79,68,218,10,77,83,95,87,73,78,68,79,87,83,218, + 11,72,65,86,69,95,70,67,72,79,87,78,218,14,72,65, + 86,69,95,70,68,79,80,69,78,68,73,82,218,7,108,105, + 115,116,100,105,114,218,7,115,99,97,110,100,105,114,218,12, + 72,65,86,69,95,70,69,88,69,67,86,69,218,6,101,120, + 101,99,118,101,218,14,72,65,86,69,95,70,84,82,85,78, + 67,65,84,69,218,8,116,114,117,110,99,97,116,101,218,13, + 72,65,86,69,95,70,85,84,73,77,69,78,83,218,12,72, + 65,86,69,95,70,85,84,73,77,69,83,218,14,72,65,86, + 69,95,70,80,65,84,72,67,79,78,70,218,8,112,97,116, + 104,99,111,110,102,218,7,115,116,97,116,118,102,115,218,8, + 102,115,116,97,116,118,102,115,218,13,72,65,86,69,95,70, + 83,84,65,84,86,70,83,218,13,72,65,86,69,95,76,67, + 72,70,76,65,71,83,218,7,99,104,102,108,97,103,115,218, + 11,72,65,86,69,95,76,67,72,77,79,68,218,6,108,99, + 104,111,119,110,218,11,72,65,86,69,95,76,67,72,79,87, + 78,218,12,72,65,86,69,95,76,85,84,73,77,69,83,233, 1,0,0,0,233,2,0,0,0,70,99,3,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, - 148,1,0,0,151,0,116,1,0,0,0,0,0,0,0,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,92,2, - 0,0,125,3,125,4,124,4,115,24,116,1,0,0,0,0, - 0,0,0,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,3,171,1,0,0,0,0, - 0,0,92,2,0,0,125,3,125,4,124,3,114,81,124,4, - 114,79,116,1,0,0,0,0,0,0,0,0,106,4,0,0, + 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,243, + 216,1,0,0,149,0,91,0,0,0,0,0,0,0,0,0, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,34,0,85,0,53,1,0,0,0,0,0,0, + 117,2,0,0,112,52,85,4,40,0,0,0,0,0,0,0, + 100,24,0,0,91,0,0,0,0,0,0,0,0,0,82,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,3,171,1,0,0,0,0,0,0,115,58,9,0,116,7, - 0,0,0,0,0,0,0,0,124,3,124,2,172,1,171,2, - 0,0,0,0,0,0,1,0,116,10,0,0,0,0,0,0, - 0,0,125,5,116,13,0,0,0,0,0,0,0,0,124,4, - 116,14,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,114,16,116,15,0,0,0,0,0,0,0,0,116,10, - 0,0,0,0,0,0,0,0,100,2,171,2,0,0,0,0, - 0,0,125,5,124,4,124,5,107,40,0,0,114,1,121,3, - 9,0,116,17,0,0,0,0,0,0,0,0,124,0,124,1, - 171,2,0,0,0,0,0,0,1,0,121,3,35,0,116,8, - 0,0,0,0,0,0,0,0,36,0,114,3,1,0,89,0, - 140,69,119,0,120,3,89,0,119,1,35,0,116,18,0,0, - 0,0,0,0,0,0,36,0,114,27,1,0,124,2,114,21, - 116,1,0,0,0,0,0,0,0,0,106,20,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,115,1,130,0,89,0,121,3, - 119,0,120,3,89,0,119,1,41,4,97,139,1,0,0,109, - 97,107,101,100,105,114,115,40,110,97,109,101,32,91,44,32, - 109,111,100,101,61,48,111,55,55,55,93,91,44,32,101,120, - 105,115,116,95,111,107,61,70,97,108,115,101,93,41,10,10, - 32,32,32,32,83,117,112,101,114,45,109,107,100,105,114,59, + 0,0,34,0,85,3,53,1,0,0,0,0,0,0,117,2, + 0,0,112,52,85,3,40,0,0,0,0,0,0,0,97,93, + 0,0,85,4,40,0,0,0,0,0,0,0,97,86,0,0, + 91,0,0,0,0,0,0,0,0,0,82,4,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 85,3,53,1,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,100,59,0,0,30,0,91,7,0,0,0,0,0,0, + 0,0,88,50,83,1,57,2,32,0,91,10,0,0,0,0, + 0,0,0,0,110,5,91,13,0,0,0,0,0,0,0,0, + 85,4,91,14,0,0,0,0,0,0,0,0,53,2,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,97,16,0,0, + 91,15,0,0,0,0,0,0,0,0,91,10,0,0,0,0, + 0,0,0,0,83,2,53,2,0,0,0,0,0,0,110,5, + 88,69,58,88,0,0,97,1,0,0,103,3,30,0,91,17, + 0,0,0,0,0,0,0,0,88,1,53,2,0,0,0,0, + 0,0,32,0,103,3,33,0,91,8,0,0,0,0,0,0, + 0,0,7,0,97,3,0,0,32,0,31,0,78,74,102,0, + 61,3,31,0,102,1,33,0,91,18,0,0,0,0,0,0, + 0,0,7,0,97,38,0,0,32,0,85,2,40,0,0,0, + 0,0,0,0,97,27,0,0,91,0,0,0,0,0,0,0, + 0,0,82,20,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,85,0,53,1,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,100,1,0,0,101,0, + 31,0,103,3,102,0,61,3,31,0,102,1,41,4,97,115, + 1,0,0,109,97,107,101,100,105,114,115,40,110,97,109,101, + 32,91,44,32,109,111,100,101,61,48,111,55,55,55,93,91, + 44,32,101,120,105,115,116,95,111,107,61,70,97,108,115,101, + 93,41,10,10,83,117,112,101,114,45,109,107,100,105,114,59, 32,99,114,101,97,116,101,32,97,32,108,101,97,102,32,100, 105,114,101,99,116,111,114,121,32,97,110,100,32,97,108,108, 32,105,110,116,101,114,109,101,100,105,97,116,101,32,111,110, 101,115,46,32,32,87,111,114,107,115,32,108,105,107,101,10, - 32,32,32,32,109,107,100,105,114,44,32,101,120,99,101,112, - 116,32,116,104,97,116,32,97,110,121,32,105,110,116,101,114, - 109,101,100,105,97,116,101,32,112,97,116,104,32,115,101,103, - 109,101,110,116,32,40,110,111,116,32,106,117,115,116,32,116, - 104,101,32,114,105,103,104,116,109,111,115,116,41,10,32,32, - 32,32,119,105,108,108,32,98,101,32,99,114,101,97,116,101, - 100,32,105,102,32,105,116,32,100,111,101,115,32,110,111,116, - 32,101,120,105,115,116,46,32,73,102,32,116,104,101,32,116, - 97,114,103,101,116,32,100,105,114,101,99,116,111,114,121,32, - 97,108,114,101,97,100,121,10,32,32,32,32,101,120,105,115, - 116,115,44,32,114,97,105,115,101,32,97,110,32,79,83,69, - 114,114,111,114,32,105,102,32,101,120,105,115,116,95,111,107, - 32,105,115,32,70,97,108,115,101,46,32,79,116,104,101,114, - 119,105,115,101,32,110,111,32,101,120,99,101,112,116,105,111, - 110,32,105,115,10,32,32,32,32,114,97,105,115,101,100,46, + 109,107,100,105,114,44,32,101,120,99,101,112,116,32,116,104, + 97,116,32,97,110,121,32,105,110,116,101,114,109,101,100,105, + 97,116,101,32,112,97,116,104,32,115,101,103,109,101,110,116, + 32,40,110,111,116,32,106,117,115,116,32,116,104,101,32,114, + 105,103,104,116,109,111,115,116,41,10,119,105,108,108,32,98, + 101,32,99,114,101,97,116,101,100,32,105,102,32,105,116,32, + 100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,32, + 73,102,32,116,104,101,32,116,97,114,103,101,116,32,100,105, + 114,101,99,116,111,114,121,32,97,108,114,101,97,100,121,10, + 101,120,105,115,116,115,44,32,114,97,105,115,101,32,97,110, + 32,79,83,69,114,114,111,114,32,105,102,32,101,120,105,115, + 116,95,111,107,32,105,115,32,70,97,108,115,101,46,32,79, + 116,104,101,114,119,105,115,101,32,110,111,32,101,120,99,101, + 112,116,105,111,110,32,105,115,10,114,97,105,115,101,100,46, 32,32,84,104,105,115,32,105,115,32,114,101,99,117,114,115, - 105,118,101,46,10,10,32,32,32,32,41,1,218,8,101,120, - 105,115,116,95,111,107,218,5,65,83,67,73,73,78,41,11, - 114,12,0,0,0,218,5,115,112,108,105,116,218,6,101,120, - 105,115,116,115,218,8,109,97,107,101,100,105,114,115,218,15, - 70,105,108,101,69,120,105,115,116,115,69,114,114,111,114,114, - 5,0,0,0,218,10,105,115,105,110,115,116,97,110,99,101, - 218,5,98,121,116,101,115,114,63,0,0,0,218,7,79,83, - 69,114,114,111,114,218,5,105,115,100,105,114,41,6,114,11, - 0,0,0,218,4,109,111,100,101,114,109,0,0,0,218,4, - 104,101,97,100,218,4,116,97,105,108,218,4,99,100,105,114, - 115,6,0,0,0,32,32,32,32,32,32,114,25,0,0,0, - 114,113,0,0,0,114,113,0,0,0,200,0,0,0,115,188, - 0,0,0,128,0,244,20,0,18,22,151,26,145,26,152,68, - 211,17,33,129,74,128,68,136,36,217,11,15,220,21,25,151, - 90,145,90,160,4,211,21,37,137,10,136,4,136,100,217,7, - 11,145,4,156,84,159,91,153,91,168,20,212,29,46,240,2, - 4,9,17,220,12,20,144,84,160,72,213,12,45,244,8,0, - 16,22,136,4,220,11,21,144,100,156,69,212,11,34,220,19, - 24,156,22,160,23,211,19,41,136,68,216,11,15,144,52,138, - 60,216,12,18,240,2,6,5,18,220,8,13,136,100,144,68, - 213,8,25,248,244,19,0,16,31,242,0,2,9,17,225,12, - 16,240,5,2,9,17,251,244,20,0,12,19,242,0,4,5, - 18,241,6,0,16,24,156,116,159,122,153,122,168,36,212,31, - 47,216,12,17,241,3,0,32,48,240,7,4,5,18,250,115, - 36,0,0,0,193,13,13,66,20,0,194,7,12,66,35,0, - 194,20,9,66,32,3,194,31,1,66,32,3,194,35,33,67, - 7,3,195,6,1,67,7,3,99,1,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,252,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,1,0,116,3,0,0,0,0, - 0,0,0,0,106,4,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,92,2,0,0,125,1,125,2,124,2,115,24,116,3, - 0,0,0,0,0,0,0,0,106,4,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,1,171,1, - 0,0,0,0,0,0,92,2,0,0,125,1,125,2,124,1, - 114,46,124,2,114,43,9,0,116,1,0,0,0,0,0,0, - 0,0,124,1,171,1,0,0,0,0,0,0,1,0,116,3, - 0,0,0,0,0,0,0,0,106,4,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,1,171,1, - 0,0,0,0,0,0,92,2,0,0,125,1,125,2,124,1, - 114,4,124,2,114,1,140,41,121,1,121,1,121,1,121,1, - 35,0,116,6,0,0,0,0,0,0,0,0,36,0,114,3, - 1,0,89,0,121,1,119,0,120,3,89,0,119,1,41,2, - 97,172,1,0,0,114,101,109,111,118,101,100,105,114,115,40, - 110,97,109,101,41,10,10,32,32,32,32,83,117,112,101,114, - 45,114,109,100,105,114,59,32,114,101,109,111,118,101,32,97, - 32,108,101,97,102,32,100,105,114,101,99,116,111,114,121,32, - 97,110,100,32,97,108,108,32,101,109,112,116,121,32,105,110, - 116,101,114,109,101,100,105,97,116,101,10,32,32,32,32,111, - 110,101,115,46,32,32,87,111,114,107,115,32,108,105,107,101, - 32,114,109,100,105,114,32,101,120,99,101,112,116,32,116,104, - 97,116,44,32,105,102,32,116,104,101,32,108,101,97,102,32, - 100,105,114,101,99,116,111,114,121,32,105,115,10,32,32,32, - 32,115,117,99,99,101,115,115,102,117,108,108,121,32,114,101, - 109,111,118,101,100,44,32,100,105,114,101,99,116,111,114,105, + 105,118,101,46,10,10,41,1,218,8,101,120,105,115,116,95, + 111,107,218,5,65,83,67,73,73,78,41,11,114,12,0,0, + 0,218,5,115,112,108,105,116,218,6,101,120,105,115,116,115, + 218,8,109,97,107,101,100,105,114,115,218,15,70,105,108,101, + 69,120,105,115,116,115,69,114,114,111,114,114,5,0,0,0, + 218,10,105,115,105,110,115,116,97,110,99,101,218,5,98,121, + 116,101,115,114,65,0,0,0,218,7,79,83,69,114,114,111, + 114,218,5,105,115,100,105,114,41,6,114,11,0,0,0,218, + 4,109,111,100,101,114,110,0,0,0,218,4,104,101,97,100, + 218,4,116,97,105,108,218,4,99,100,105,114,115,6,0,0, + 0,32,32,32,32,32,32,114,25,0,0,0,114,114,0,0, + 0,114,114,0,0,0,203,0,0,0,115,187,0,0,0,128, + 0,244,20,0,18,22,151,26,146,26,152,68,211,17,33,129, + 74,128,68,222,11,15,220,21,25,151,90,146,90,160,4,211, + 21,37,137,10,136,4,222,7,11,150,4,156,84,159,91,154, + 91,168,20,215,29,46,209,29,46,240,2,4,9,17,220,12, + 20,144,84,210,12,45,244,8,0,16,22,136,4,220,11,21, + 144,100,156,69,215,11,34,209,11,34,220,19,24,156,22,160, + 23,211,19,41,136,68,216,11,15,139,60,216,12,18,240,2, + 6,5,18,220,8,13,136,100,213,8,25,248,244,19,0,16, + 31,243,0,2,9,17,225,12,16,240,5,2,9,17,251,244, + 20,0,12,19,243,0,4,5,18,246,6,0,16,24,156,116, + 159,122,154,122,168,36,215,31,47,209,31,47,216,12,17,241, + 3,0,32,48,240,7,4,5,18,250,115,36,0,0,0,193, + 34,9,66,41,0,194,29,11,66,57,0,194,41,10,66,54, + 3,194,53,1,66,54,3,194,57,45,67,41,3,195,40,1, + 67,41,3,99,1,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,3,0,0,0,243,50,1,0,0,149,0,91, + 1,0,0,0,0,0,0,0,0,85,0,53,1,0,0,0, + 0,0,0,32,0,91,2,0,0,0,0,0,0,0,0,82, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,85,0,53,1,0,0,0,0,0,0,117, + 2,0,0,112,18,85,2,40,0,0,0,0,0,0,0,100, + 24,0,0,91,2,0,0,0,0,0,0,0,0,82,4,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,34,0,85,1,53,1,0,0,0,0,0,0,117,2,0, + 0,112,18,85,1,40,0,0,0,0,0,0,0,97,62,0, + 0,85,2,40,0,0,0,0,0,0,0,97,54,0,0,30, + 0,91,1,0,0,0,0,0,0,0,0,85,1,53,1,0, + 0,0,0,0,0,32,0,91,2,0,0,0,0,0,0,0, + 0,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,85,1,53,1,0,0,0,0,0, + 0,117,2,0,0,112,18,85,1,40,0,0,0,0,0,0, + 0,97,10,0,0,85,2,40,0,0,0,0,0,0,0,97, + 2,0,0,77,52,0,0,103,1,103,1,103,1,103,1,33, + 0,91,6,0,0,0,0,0,0,0,0,7,0,97,3,0, + 0,32,0,31,0,103,1,102,0,61,3,31,0,102,1,41, + 2,97,144,1,0,0,114,101,109,111,118,101,100,105,114,115, + 40,110,97,109,101,41,10,10,83,117,112,101,114,45,114,109, + 100,105,114,59,32,114,101,109,111,118,101,32,97,32,108,101, + 97,102,32,100,105,114,101,99,116,111,114,121,32,97,110,100, + 32,97,108,108,32,101,109,112,116,121,32,105,110,116,101,114, + 109,101,100,105,97,116,101,10,111,110,101,115,46,32,32,87, + 111,114,107,115,32,108,105,107,101,32,114,109,100,105,114,32, + 101,120,99,101,112,116,32,116,104,97,116,44,32,105,102,32, + 116,104,101,32,108,101,97,102,32,100,105,114,101,99,116,111, + 114,121,32,105,115,10,115,117,99,99,101,115,115,102,117,108, + 108,121,32,114,101,109,111,118,101,100,44,32,100,105,114,101, + 99,116,111,114,105,101,115,32,99,111,114,114,101,115,112,111, + 110,100,105,110,103,32,116,111,32,114,105,103,104,116,109,111, + 115,116,32,112,97,116,104,10,115,101,103,109,101,110,116,115, + 32,119,105,108,108,32,98,101,32,112,114,117,110,101,100,32, + 97,119,97,121,32,117,110,116,105,108,32,101,105,116,104,101, + 114,32,116,104,101,32,119,104,111,108,101,32,112,97,116,104, + 32,105,115,10,99,111,110,115,117,109,101,100,32,111,114,32, + 97,110,32,101,114,114,111,114,32,111,99,99,117,114,115,46, + 32,32,69,114,114,111,114,115,32,100,117,114,105,110,103,32, + 116,104,105,115,32,108,97,116,116,101,114,32,112,104,97,115, + 101,32,97,114,101,10,105,103,110,111,114,101,100,32,45,45, + 32,116,104,101,121,32,103,101,110,101,114,97,108,108,121,32, + 109,101,97,110,32,116,104,97,116,32,97,32,100,105,114,101, + 99,116,111,114,121,32,119,97,115,32,110,111,116,32,101,109, + 112,116,121,46,10,10,78,41,4,114,80,0,0,0,114,12, + 0,0,0,114,112,0,0,0,114,118,0,0,0,41,3,114, + 11,0,0,0,114,121,0,0,0,114,122,0,0,0,115,3, + 0,0,0,32,32,32,114,25,0,0,0,218,10,114,101,109, + 111,118,101,100,105,114,115,114,125,0,0,0,235,0,0,0, + 115,116,0,0,0,128,0,244,22,0,5,10,136,36,132,75, + 220,17,21,151,26,146,26,152,68,211,17,33,129,74,128,68, + 222,11,15,220,21,25,151,90,146,90,160,4,211,21,37,137, + 10,136,4,222,10,14,150,52,240,2,3,9,18,220,12,17, + 144,36,140,75,244,6,0,22,26,151,90,146,90,160,4,211, + 21,37,137,10,136,4,246,11,0,11,15,151,52,145,52,136, + 36,144,52,136,36,248,244,6,0,16,23,243,0,1,9,18, + 217,12,17,240,3,1,9,18,250,115,18,0,0,0,193,18, + 11,66,9,0,194,9,10,66,22,3,194,21,1,66,22,3, + 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,243,58,1,0,0,149,0,91,0,0,0, + 0,0,0,0,0,0,82,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,34,0,85,1,53,1, + 0,0,0,0,0,0,117,2,0,0,112,35,85,2,40,0, + 0,0,0,0,0,0,97,45,0,0,85,3,40,0,0,0, + 0,0,0,0,97,38,0,0,91,0,0,0,0,0,0,0, + 0,0,82,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,85,2,53,1,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,100,11,0,0,91,7, + 0,0,0,0,0,0,0,0,85,2,53,1,0,0,0,0, + 0,0,32,0,91,9,0,0,0,0,0,0,0,0,88,1, + 53,2,0,0,0,0,0,0,32,0,91,0,0,0,0,0, + 0,0,0,0,82,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,85,0,53,1,0,0, + 0,0,0,0,117,2,0,0,112,35,85,2,40,0,0,0, + 0,0,0,0,97,21,0,0,85,3,40,0,0,0,0,0, + 0,0,97,13,0,0,30,0,91,11,0,0,0,0,0,0, + 0,0,85,2,53,1,0,0,0,0,0,0,32,0,103,1, + 103,1,103,1,33,0,91,12,0,0,0,0,0,0,0,0, + 7,0,97,3,0,0,32,0,31,0,103,1,102,0,61,3, + 31,0,102,1,41,2,97,20,2,0,0,114,101,110,97,109, + 101,115,40,111,108,100,44,32,110,101,119,41,10,10,83,117, + 112,101,114,45,114,101,110,97,109,101,59,32,99,114,101,97, + 116,101,32,100,105,114,101,99,116,111,114,105,101,115,32,97, + 115,32,110,101,99,101,115,115,97,114,121,32,97,110,100,32, + 100,101,108,101,116,101,32,97,110,121,32,108,101,102,116,10, + 101,109,112,116,121,46,32,32,87,111,114,107,115,32,108,105, + 107,101,32,114,101,110,97,109,101,44,32,101,120,99,101,112, + 116,32,99,114,101,97,116,105,111,110,32,111,102,32,97,110, + 121,32,105,110,116,101,114,109,101,100,105,97,116,101,10,100, + 105,114,101,99,116,111,114,105,101,115,32,110,101,101,100,101, + 100,32,116,111,32,109,97,107,101,32,116,104,101,32,110,101, + 119,32,112,97,116,104,110,97,109,101,32,103,111,111,100,32, + 105,115,32,97,116,116,101,109,112,116,101,100,10,102,105,114, + 115,116,46,32,32,65,102,116,101,114,32,116,104,101,32,114, + 101,110,97,109,101,44,32,100,105,114,101,99,116,111,114,105, 101,115,32,99,111,114,114,101,115,112,111,110,100,105,110,103, - 32,116,111,32,114,105,103,104,116,109,111,115,116,32,112,97, - 116,104,10,32,32,32,32,115,101,103,109,101,110,116,115,32, - 119,105,108,108,32,98,101,32,112,114,117,110,101,100,32,97, - 119,97,121,32,117,110,116,105,108,32,101,105,116,104,101,114, - 32,116,104,101,32,119,104,111,108,101,32,112,97,116,104,32, - 105,115,10,32,32,32,32,99,111,110,115,117,109,101,100,32, - 111,114,32,97,110,32,101,114,114,111,114,32,111,99,99,117, - 114,115,46,32,32,69,114,114,111,114,115,32,100,117,114,105, - 110,103,32,116,104,105,115,32,108,97,116,116,101,114,32,112, - 104,97,115,101,32,97,114,101,10,32,32,32,32,105,103,110, - 111,114,101,100,32,45,45,32,116,104,101,121,32,103,101,110, - 101,114,97,108,108,121,32,109,101,97,110,32,116,104,97,116, - 32,97,32,100,105,114,101,99,116,111,114,121,32,119,97,115, - 32,110,111,116,32,101,109,112,116,121,46,10,10,32,32,32, - 32,78,41,4,114,78,0,0,0,114,12,0,0,0,114,111, - 0,0,0,114,117,0,0,0,41,3,114,11,0,0,0,114, - 120,0,0,0,114,121,0,0,0,115,3,0,0,0,32,32, - 32,114,25,0,0,0,218,10,114,101,109,111,118,101,100,105, - 114,115,114,124,0,0,0,232,0,0,0,115,120,0,0,0, - 128,0,244,22,0,5,10,136,36,132,75,220,17,21,151,26, - 145,26,152,68,211,17,33,129,74,128,68,136,36,217,11,15, - 220,21,25,151,90,145,90,160,4,211,21,37,137,10,136,4, - 136,100,217,10,14,145,52,240,2,3,9,18,220,12,17,144, - 36,140,75,244,6,0,22,26,151,90,145,90,160,4,211,21, - 37,137,10,136,4,136,100,241,11,0,11,15,147,52,136,36, - 144,52,136,36,248,244,6,0,16,23,242,0,1,9,18,217, - 12,17,240,3,1,9,18,250,115,18,0,0,0,193,3,11, - 65,47,0,193,47,9,65,59,3,193,58,1,65,59,3,99, - 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,6,1,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,92,2,0,0,125,2,125,3,124,2,114,34,124, - 3,114,32,116,1,0,0,0,0,0,0,0,0,106,4,0, + 32,116,111,32,114,105,103,104,116,109,111,115,116,10,112,97, + 116,104,32,115,101,103,109,101,110,116,115,32,111,102,32,116, + 104,101,32,111,108,100,32,110,97,109,101,32,119,105,108,108, + 32,98,101,32,112,114,117,110,101,100,32,117,110,116,105,108, + 32,101,105,116,104,101,114,32,116,104,101,10,119,104,111,108, + 101,32,112,97,116,104,32,105,115,32,99,111,110,115,117,109, + 101,100,32,111,114,32,97,32,110,111,110,101,109,112,116,121, + 32,100,105,114,101,99,116,111,114,121,32,105,115,32,102,111, + 117,110,100,46,10,10,78,111,116,101,58,32,116,104,105,115, + 32,102,117,110,99,116,105,111,110,32,99,97,110,32,102,97, + 105,108,32,119,105,116,104,32,116,104,101,32,110,101,119,32, + 100,105,114,101,99,116,111,114,121,32,115,116,114,117,99,116, + 117,114,101,32,109,97,100,101,10,105,102,32,121,111,117,32, + 108,97,99,107,32,112,101,114,109,105,115,115,105,111,110,115, + 32,110,101,101,100,101,100,32,116,111,32,117,110,108,105,110, + 107,32,116,104,101,32,108,101,97,102,32,100,105,114,101,99, + 116,111,114,121,32,111,114,10,102,105,108,101,46,10,10,78, + 41,7,114,12,0,0,0,114,112,0,0,0,114,113,0,0, + 0,114,114,0,0,0,114,75,0,0,0,114,125,0,0,0, + 114,118,0,0,0,41,4,218,3,111,108,100,218,3,110,101, + 119,114,121,0,0,0,114,122,0,0,0,115,4,0,0,0, + 32,32,32,32,114,25,0,0,0,218,7,114,101,110,97,109, + 101,115,114,129,0,0,0,1,1,0,0,115,113,0,0,0, + 128,0,244,30,0,18,22,151,26,146,26,152,67,147,31,129, + 74,128,68,222,7,11,150,4,156,84,159,91,154,91,168,20, + 215,29,46,209,29,46,220,8,16,144,20,140,14,220,4,10, + 136,51,212,4,20,220,17,21,151,26,146,26,152,67,147,31, + 129,74,128,68,222,7,11,150,4,240,2,3,9,17,220,12, + 22,144,116,213,12,28,240,5,0,17,21,128,116,248,244,6, + 0,16,23,243,0,1,9,17,217,12,16,240,3,1,9,17, + 250,115,18,0,0,0,193,63,11,66,13,0,194,13,10,66, + 26,3,194,25,1,66,26,3,41,3,114,114,0,0,0,114, + 125,0,0,0,114,129,0,0,0,99,4,0,0,0,0,0, + 0,0,0,0,0,0,7,0,0,0,35,0,0,0,243,86, + 5,0,0,35,0,32,0,149,0,91,0,0,0,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,83,1,88,1,88,35,53, + 5,0,0,0,0,0,0,32,0,91,5,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,47,1,110, + 4,91,6,0,0,0,0,0,0,0,0,82,8,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,91, + 6,0,0,0,0,0,0,0,0,82,10,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,112,101,85, + 4,40,0,0,0,0,0,0,0,71,1,97,41,0,0,85, + 4,82,13,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,110,0,91, + 15,0,0,0,0,0,0,0,0,85,0,91,16,0,0,0, + 0,0,0,0,0,53,2,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,97,6,0,0,85,0,118,0,149,5,32, + 0,77,51,0,0,47,0,110,7,47,0,110,8,47,0,110, + 9,30,0,91,19,0,0,0,0,0,0,0,0,85,0,53, + 1,0,0,0,0,0,0,110,10,83,3,110,12,85,10,2, + 0,32,0,30,0,30,0,30,0,91,23,0,0,0,0,0, + 0,0,0,85,10,53,1,0,0,0,0,0,0,110,13,30, + 0,85,3,91,26,0,0,0,0,0,0,0,0,76,0,97, + 44,0,0,85,13,82,29,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,3,83,5,57,1,61, + 1,40,0,0,0,0,0,0,0,97,21,0,0,32,0,85, + 13,82,31,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,43,0,110,14,79,17,85,13,82,29,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,2,171,1,0,0,0,0,0,0,115,11,116,7,0, - 0,0,0,0,0,0,0,124,2,171,1,0,0,0,0,0, - 0,1,0,116,9,0,0,0,0,0,0,0,0,124,0,124, - 1,171,2,0,0,0,0,0,0,1,0,116,1,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,92,2,0,0,125,2,125,3,124,2,114,16,124, - 3,114,13,9,0,116,11,0,0,0,0,0,0,0,0,124, - 2,171,1,0,0,0,0,0,0,1,0,121,1,121,1,121, - 1,35,0,116,12,0,0,0,0,0,0,0,0,36,0,114, - 3,1,0,89,0,121,1,119,0,120,3,89,0,119,1,41, - 2,97,60,2,0,0,114,101,110,97,109,101,115,40,111,108, - 100,44,32,110,101,119,41,10,10,32,32,32,32,83,117,112, - 101,114,45,114,101,110,97,109,101,59,32,99,114,101,97,116, - 101,32,100,105,114,101,99,116,111,114,105,101,115,32,97,115, - 32,110,101,99,101,115,115,97,114,121,32,97,110,100,32,100, - 101,108,101,116,101,32,97,110,121,32,108,101,102,116,10,32, - 32,32,32,101,109,112,116,121,46,32,32,87,111,114,107,115, - 32,108,105,107,101,32,114,101,110,97,109,101,44,32,101,120, - 99,101,112,116,32,99,114,101,97,116,105,111,110,32,111,102, - 32,97,110,121,32,105,110,116,101,114,109,101,100,105,97,116, - 101,10,32,32,32,32,100,105,114,101,99,116,111,114,105,101, - 115,32,110,101,101,100,101,100,32,116,111,32,109,97,107,101, - 32,116,104,101,32,110,101,119,32,112,97,116,104,110,97,109, - 101,32,103,111,111,100,32,105,115,32,97,116,116,101,109,112, - 116,101,100,10,32,32,32,32,102,105,114,115,116,46,32,32, - 65,102,116,101,114,32,116,104,101,32,114,101,110,97,109,101, - 44,32,100,105,114,101,99,116,111,114,105,101,115,32,99,111, - 114,114,101,115,112,111,110,100,105,110,103,32,116,111,32,114, - 105,103,104,116,109,111,115,116,10,32,32,32,32,112,97,116, - 104,32,115,101,103,109,101,110,116,115,32,111,102,32,116,104, - 101,32,111,108,100,32,110,97,109,101,32,119,105,108,108,32, - 98,101,32,112,114,117,110,101,100,32,117,110,116,105,108,32, - 101,105,116,104,101,114,32,116,104,101,10,32,32,32,32,119, - 104,111,108,101,32,112,97,116,104,32,105,115,32,99,111,110, - 115,117,109,101,100,32,111,114,32,97,32,110,111,110,101,109, - 112,116,121,32,100,105,114,101,99,116,111,114,121,32,105,115, - 32,102,111,117,110,100,46,10,10,32,32,32,32,78,111,116, - 101,58,32,116,104,105,115,32,102,117,110,99,116,105,111,110, - 32,99,97,110,32,102,97,105,108,32,119,105,116,104,32,116, - 104,101,32,110,101,119,32,100,105,114,101,99,116,111,114,121, - 32,115,116,114,117,99,116,117,114,101,32,109,97,100,101,10, - 32,32,32,32,105,102,32,121,111,117,32,108,97,99,107,32, - 112,101,114,109,105,115,115,105,111,110,115,32,110,101,101,100, - 101,100,32,116,111,32,117,110,108,105,110,107,32,116,104,101, - 32,108,101,97,102,32,100,105,114,101,99,116,111,114,121,32, - 111,114,10,32,32,32,32,102,105,108,101,46,10,10,32,32, - 32,32,78,41,7,114,12,0,0,0,114,111,0,0,0,114, - 112,0,0,0,114,113,0,0,0,114,73,0,0,0,114,124, - 0,0,0,114,117,0,0,0,41,4,218,3,111,108,100,218, - 3,110,101,119,114,120,0,0,0,114,121,0,0,0,115,4, - 0,0,0,32,32,32,32,114,25,0,0,0,218,7,114,101, - 110,97,109,101,115,114,128,0,0,0,254,0,0,0,115,116, - 0,0,0,128,0,244,30,0,18,22,151,26,145,26,152,67, - 147,31,129,74,128,68,136,36,217,7,11,145,4,156,84,159, - 91,153,91,168,20,212,29,46,220,8,16,144,20,140,14,220, - 4,10,136,51,144,3,212,4,20,220,17,21,151,26,145,26, - 152,67,147,31,129,74,128,68,136,36,217,7,11,145,4,240, - 2,3,9,17,220,12,22,144,116,213,12,28,240,5,0,17, - 21,128,116,248,244,6,0,16,23,242,0,1,9,17,217,12, - 16,240,3,1,9,17,250,115,18,0,0,0,193,38,11,65, - 52,0,193,52,9,66,0,3,193,63,1,66,0,3,41,3, - 114,113,0,0,0,114,124,0,0,0,114,128,0,0,0,99, - 4,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0, - 35,0,0,0,243,166,4,0,0,75,0,1,0,151,0,116, - 1,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,124, - 0,124,1,124,2,124,3,171,5,0,0,0,0,0,0,1, - 0,116,5,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,103,1,125,4,116,6,0,0,0,0,0, - 0,0,0,106,8,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,116,6,0,0,0,0,0,0,0, - 0,106,10,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,125,6,125,5,124,4,114,255,124,4,106, - 13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,125,0,116,15,0, - 0,0,0,0,0,0,0,124,0,116,16,0,0,0,0,0, - 0,0,0,171,2,0,0,0,0,0,0,114,5,124,0,150, - 1,151,1,1,0,140,39,103,0,125,7,103,0,125,8,103, - 0,125,9,9,0,116,19,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,125,10,100,3,125,12,124, - 10,53,0,1,0,9,0,9,0,9,0,116,23,0,0,0, - 0,0,0,0,0,124,10,171,1,0,0,0,0,0,0,125, - 13,9,0,9,0,124,3,116,26,0,0,0,0,0,0,0, - 0,117,0,114,38,124,13,106,29,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,3,172,5,171, - 1,0,0,0,0,0,0,120,1,114,17,1,0,124,13,106, - 31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,12,0,125,14,110, - 16,124,13,106,29,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,125, - 14,124,14,114,28,124,7,106,33,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,13,106,34,0, + 0,53,0,0,0,0,0,0,0,110,14,30,0,85,14,40, + 0,0,0,0,0,0,0,97,28,0,0,85,7,82,33,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,1,0,110,27,124,8,106, - 33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,13,106,34,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,1,0,124,1,115,56,124,14,114,54,124,3,114,3,100, - 4,125,15,110,20,9,0,124,13,106,37,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,125,16,124,16,12,0,125,15,124,15,114, - 27,124,9,106,33,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,13,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,1,0,140,193,121,2,121,2,35,0,116, - 20,0,0,0,0,0,0,0,0,36,0,114,21,125,11,124, - 2,129,8,2,0,124,2,124,11,171,1,0,0,0,0,0, - 0,1,0,89,0,100,2,125,11,126,11,144,1,140,27,100, - 2,125,11,126,11,119,1,119,0,120,3,89,0,119,1,35, - 0,116,24,0,0,0,0,0,0,0,0,36,0,114,3,1, - 0,89,0,110,72,119,0,120,3,89,0,119,1,35,0,116, - 20,0,0,0,0,0,0,0,0,36,0,114,22,125,11,124, - 2,129,8,2,0,124,2,124,11,171,1,0,0,0,0,0, - 0,1,0,100,4,125,12,89,0,100,2,125,11,126,11,110, - 42,100,2,125,11,126,11,119,1,119,0,120,3,89,0,119, - 1,35,0,116,20,0,0,0,0,0,0,0,0,36,0,114, - 5,1,0,100,3,125,14,89,0,140,213,119,0,120,3,89, - 0,119,1,35,0,116,20,0,0,0,0,0,0,0,0,36, - 0,114,5,1,0,100,3,125,16,89,0,140,147,119,0,120, - 3,89,0,119,1,100,2,100,2,100,2,171,2,0,0,0, - 0,0,0,1,0,110,12,35,0,49,0,115,1,119,2,1, - 0,89,0,1,0,1,0,110,3,120,3,89,0,119,1,124, - 12,114,2,144,1,140,143,124,1,114,61,124,0,124,7,124, - 8,102,3,150,1,151,1,1,0,116,39,0,0,0,0,0, - 0,0,0,124,7,171,1,0,0,0,0,0,0,68,0,93, - 39,0,0,125,17,2,0,124,6,124,0,124,17,171,2,0, - 0,0,0,0,0,125,18,124,3,115,9,2,0,124,5,124, - 18,171,1,0,0,0,0,0,0,114,1,140,23,124,4,106, - 33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,18,171,1,0,0,0,0,0,0,1,0,140, - 41,4,0,110,53,124,4,106,33,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,124,7,124, - 8,102,3,171,1,0,0,0,0,0,0,1,0,116,39,0, - 0,0,0,0,0,0,0,124,9,171,1,0,0,0,0,0, - 0,68,0,93,19,0,0,125,18,124,4,106,33,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 18,171,1,0,0,0,0,0,0,1,0,140,21,4,0,124, - 4,114,2,144,2,140,5,144,1,140,9,173,3,119,1,41, - 6,97,60,11,0,0,68,105,114,101,99,116,111,114,121,32, - 116,114,101,101,32,103,101,110,101,114,97,116,111,114,46,10, - 10,32,32,32,32,70,111,114,32,101,97,99,104,32,100,105, - 114,101,99,116,111,114,121,32,105,110,32,116,104,101,32,100, - 105,114,101,99,116,111,114,121,32,116,114,101,101,32,114,111, - 111,116,101,100,32,97,116,32,116,111,112,32,40,105,110,99, - 108,117,100,105,110,103,32,116,111,112,10,32,32,32,32,105, - 116,115,101,108,102,44,32,98,117,116,32,101,120,99,108,117, - 100,105,110,103,32,39,46,39,32,97,110,100,32,39,46,46, - 39,41,44,32,121,105,101,108,100,115,32,97,32,51,45,116, - 117,112,108,101,10,10,32,32,32,32,32,32,32,32,100,105, - 114,112,97,116,104,44,32,100,105,114,110,97,109,101,115,44, - 32,102,105,108,101,110,97,109,101,115,10,10,32,32,32,32, - 100,105,114,112,97,116,104,32,105,115,32,97,32,115,116,114, - 105,110,103,44,32,116,104,101,32,112,97,116,104,32,116,111, - 32,116,104,101,32,100,105,114,101,99,116,111,114,121,46,32, - 32,100,105,114,110,97,109,101,115,32,105,115,32,97,32,108, - 105,115,116,32,111,102,10,32,32,32,32,116,104,101,32,110, - 97,109,101,115,32,111,102,32,116,104,101,32,115,117,98,100, - 105,114,101,99,116,111,114,105,101,115,32,105,110,32,100,105, - 114,112,97,116,104,32,40,105,110,99,108,117,100,105,110,103, - 32,115,121,109,108,105,110,107,115,32,116,111,32,100,105,114, - 101,99,116,111,114,105,101,115,44,10,32,32,32,32,97,110, - 100,32,101,120,99,108,117,100,105,110,103,32,39,46,39,32, - 97,110,100,32,39,46,46,39,41,46,10,32,32,32,32,102, - 105,108,101,110,97,109,101,115,32,105,115,32,97,32,108,105, - 115,116,32,111,102,32,116,104,101,32,110,97,109,101,115,32, - 111,102,32,116,104,101,32,110,111,110,45,100,105,114,101,99, - 116,111,114,121,32,102,105,108,101,115,32,105,110,32,100,105, - 114,112,97,116,104,46,10,32,32,32,32,78,111,116,101,32, - 116,104,97,116,32,116,104,101,32,110,97,109,101,115,32,105, - 110,32,116,104,101,32,108,105,115,116,115,32,97,114,101,32, - 106,117,115,116,32,110,97,109,101,115,44,32,119,105,116,104, - 32,110,111,32,112,97,116,104,32,99,111,109,112,111,110,101, - 110,116,115,46,10,32,32,32,32,84,111,32,103,101,116,32, - 97,32,102,117,108,108,32,112,97,116,104,32,40,119,104,105, - 99,104,32,98,101,103,105,110,115,32,119,105,116,104,32,116, - 111,112,41,32,116,111,32,97,32,102,105,108,101,32,111,114, - 32,100,105,114,101,99,116,111,114,121,32,105,110,10,32,32, - 32,32,100,105,114,112,97,116,104,44,32,100,111,32,111,115, - 46,112,97,116,104,46,106,111,105,110,40,100,105,114,112,97, - 116,104,44,32,110,97,109,101,41,46,10,10,32,32,32,32, - 73,102,32,111,112,116,105,111,110,97,108,32,97,114,103,32, - 39,116,111,112,100,111,119,110,39,32,105,115,32,116,114,117, - 101,32,111,114,32,110,111,116,32,115,112,101,99,105,102,105, - 101,100,44,32,116,104,101,32,116,114,105,112,108,101,32,102, - 111,114,32,97,10,32,32,32,32,100,105,114,101,99,116,111, - 114,121,32,105,115,32,103,101,110,101,114,97,116,101,100,32, - 98,101,102,111,114,101,32,116,104,101,32,116,114,105,112,108, - 101,115,32,102,111,114,32,97,110,121,32,111,102,32,105,116, - 115,32,115,117,98,100,105,114,101,99,116,111,114,105,101,115, - 10,32,32,32,32,40,100,105,114,101,99,116,111,114,105,101, - 115,32,97,114,101,32,103,101,110,101,114,97,116,101,100,32, - 116,111,112,32,100,111,119,110,41,46,32,32,73,102,32,116, - 111,112,100,111,119,110,32,105,115,32,102,97,108,115,101,44, - 32,116,104,101,32,116,114,105,112,108,101,10,32,32,32,32, - 102,111,114,32,97,32,100,105,114,101,99,116,111,114,121,32, - 105,115,32,103,101,110,101,114,97,116,101,100,32,97,102,116, - 101,114,32,116,104,101,32,116,114,105,112,108,101,115,32,102, - 111,114,32,97,108,108,32,111,102,32,105,116,115,10,32,32, - 32,32,115,117,98,100,105,114,101,99,116,111,114,105,101,115, - 32,40,100,105,114,101,99,116,111,114,105,101,115,32,97,114, - 101,32,103,101,110,101,114,97,116,101,100,32,98,111,116,116, - 111,109,32,117,112,41,46,10,10,32,32,32,32,87,104,101, - 110,32,116,111,112,100,111,119,110,32,105,115,32,116,114,117, - 101,44,32,116,104,101,32,99,97,108,108,101,114,32,99,97, - 110,32,109,111,100,105,102,121,32,116,104,101,32,100,105,114, - 110,97,109,101,115,32,108,105,115,116,32,105,110,45,112,108, - 97,99,101,10,32,32,32,32,40,101,46,103,46,44,32,118, - 105,97,32,100,101,108,32,111,114,32,115,108,105,99,101,32, - 97,115,115,105,103,110,109,101,110,116,41,44,32,97,110,100, - 32,119,97,108,107,32,119,105,108,108,32,111,110,108,121,32, - 114,101,99,117,114,115,101,32,105,110,116,111,32,116,104,101, - 10,32,32,32,32,115,117,98,100,105,114,101,99,116,111,114, - 105,101,115,32,119,104,111,115,101,32,110,97,109,101,115,32, - 114,101,109,97,105,110,32,105,110,32,100,105,114,110,97,109, - 101,115,59,32,116,104,105,115,32,99,97,110,32,98,101,32, - 117,115,101,100,32,116,111,32,112,114,117,110,101,32,116,104, - 101,10,32,32,32,32,115,101,97,114,99,104,44,32,111,114, - 32,116,111,32,105,109,112,111,115,101,32,97,32,115,112,101, - 99,105,102,105,99,32,111,114,100,101,114,32,111,102,32,118, - 105,115,105,116,105,110,103,46,32,32,77,111,100,105,102,121, - 105,110,103,32,100,105,114,110,97,109,101,115,32,119,104,101, - 110,10,32,32,32,32,116,111,112,100,111,119,110,32,105,115, - 32,102,97,108,115,101,32,104,97,115,32,110,111,32,101,102, - 102,101,99,116,32,111,110,32,116,104,101,32,98,101,104,97, - 118,105,111,114,32,111,102,32,111,115,46,119,97,108,107,40, - 41,44,32,115,105,110,99,101,32,116,104,101,10,32,32,32, - 32,100,105,114,101,99,116,111,114,105,101,115,32,105,110,32, - 100,105,114,110,97,109,101,115,32,104,97,118,101,32,97,108, - 114,101,97,100,121,32,98,101,101,110,32,103,101,110,101,114, - 97,116,101,100,32,98,121,32,116,104,101,32,116,105,109,101, - 32,100,105,114,110,97,109,101,115,10,32,32,32,32,105,116, - 115,101,108,102,32,105,115,32,103,101,110,101,114,97,116,101, - 100,46,32,78,111,32,109,97,116,116,101,114,32,116,104,101, - 32,118,97,108,117,101,32,111,102,32,116,111,112,100,111,119, - 110,44,32,116,104,101,32,108,105,115,116,32,111,102,10,32, - 32,32,32,115,117,98,100,105,114,101,99,116,111,114,105,101, - 115,32,105,115,32,114,101,116,114,105,101,118,101,100,32,98, - 101,102,111,114,101,32,116,104,101,32,116,117,112,108,101,115, - 32,102,111,114,32,116,104,101,32,100,105,114,101,99,116,111, - 114,121,32,97,110,100,32,105,116,115,10,32,32,32,32,115, - 117,98,100,105,114,101,99,116,111,114,105,101,115,32,97,114, - 101,32,103,101,110,101,114,97,116,101,100,46,10,10,32,32, - 32,32,66,121,32,100,101,102,97,117,108,116,32,101,114,114, - 111,114,115,32,102,114,111,109,32,116,104,101,32,111,115,46, - 115,99,97,110,100,105,114,40,41,32,99,97,108,108,32,97, - 114,101,32,105,103,110,111,114,101,100,46,32,32,73,102,10, - 32,32,32,32,111,112,116,105,111,110,97,108,32,97,114,103, - 32,39,111,110,101,114,114,111,114,39,32,105,115,32,115,112, - 101,99,105,102,105,101,100,44,32,105,116,32,115,104,111,117, - 108,100,32,98,101,32,97,32,102,117,110,99,116,105,111,110, - 59,32,105,116,10,32,32,32,32,119,105,108,108,32,98,101, - 32,99,97,108,108,101,100,32,119,105,116,104,32,111,110,101, - 32,97,114,103,117,109,101,110,116,44,32,97,110,32,79,83, - 69,114,114,111,114,32,105,110,115,116,97,110,99,101,46,32, - 32,73,116,32,99,97,110,10,32,32,32,32,114,101,112,111, - 114,116,32,116,104,101,32,101,114,114,111,114,32,116,111,32, - 99,111,110,116,105,110,117,101,32,119,105,116,104,32,116,104, - 101,32,119,97,108,107,44,32,111,114,32,114,97,105,115,101, - 32,116,104,101,32,101,120,99,101,112,116,105,111,110,10,32, - 32,32,32,116,111,32,97,98,111,114,116,32,116,104,101,32, - 119,97,108,107,46,32,32,78,111,116,101,32,116,104,97,116, - 32,116,104,101,32,102,105,108,101,110,97,109,101,32,105,115, - 32,97,118,97,105,108,97,98,108,101,32,97,115,32,116,104, - 101,10,32,32,32,32,102,105,108,101,110,97,109,101,32,97, - 116,116,114,105,98,117,116,101,32,111,102,32,116,104,101,32, - 101,120,99,101,112,116,105,111,110,32,111,98,106,101,99,116, - 46,10,10,32,32,32,32,66,121,32,100,101,102,97,117,108, - 116,44,32,111,115,46,119,97,108,107,32,100,111,101,115,32, - 110,111,116,32,102,111,108,108,111,119,32,115,121,109,98,111, - 108,105,99,32,108,105,110,107,115,32,116,111,32,115,117,98, - 100,105,114,101,99,116,111,114,105,101,115,32,111,110,10,32, - 32,32,32,115,121,115,116,101,109,115,32,116,104,97,116,32, - 115,117,112,112,111,114,116,32,116,104,101,109,46,32,32,73, - 110,32,111,114,100,101,114,32,116,111,32,103,101,116,32,116, - 104,105,115,32,102,117,110,99,116,105,111,110,97,108,105,116, - 121,44,32,115,101,116,32,116,104,101,10,32,32,32,32,111, - 112,116,105,111,110,97,108,32,97,114,103,117,109,101,110,116, - 32,39,102,111,108,108,111,119,108,105,110,107,115,39,32,116, - 111,32,116,114,117,101,46,10,10,32,32,32,32,67,97,117, - 116,105,111,110,58,32,32,105,102,32,121,111,117,32,112,97, - 115,115,32,97,32,114,101,108,97,116,105,118,101,32,112,97, - 116,104,110,97,109,101,32,102,111,114,32,116,111,112,44,32, - 100,111,110,39,116,32,99,104,97,110,103,101,32,116,104,101, - 10,32,32,32,32,99,117,114,114,101,110,116,32,119,111,114, - 107,105,110,103,32,100,105,114,101,99,116,111,114,121,32,98, - 101,116,119,101,101,110,32,114,101,115,117,109,112,116,105,111, - 110,115,32,111,102,32,119,97,108,107,46,32,32,119,97,108, - 107,32,110,101,118,101,114,10,32,32,32,32,99,104,97,110, - 103,101,115,32,116,104,101,32,99,117,114,114,101,110,116,32, - 100,105,114,101,99,116,111,114,121,44,32,97,110,100,32,97, - 115,115,117,109,101,115,32,116,104,97,116,32,116,104,101,32, - 99,108,105,101,110,116,32,100,111,101,115,110,39,116,10,32, - 32,32,32,101,105,116,104,101,114,46,10,10,32,32,32,32, - 69,120,97,109,112,108,101,58,10,10,32,32,32,32,105,109, - 112,111,114,116,32,111,115,10,32,32,32,32,102,114,111,109, - 32,111,115,46,112,97,116,104,32,105,109,112,111,114,116,32, - 106,111,105,110,44,32,103,101,116,115,105,122,101,10,32,32, - 32,32,102,111,114,32,114,111,111,116,44,32,100,105,114,115, - 44,32,102,105,108,101,115,32,105,110,32,111,115,46,119,97, - 108,107,40,39,112,121,116,104,111,110,47,76,105,98,47,120, - 109,108,39,41,58,10,32,32,32,32,32,32,32,32,112,114, - 105,110,116,40,114,111,111,116,44,32,34,99,111,110,115,117, - 109,101,115,32,34,41,10,32,32,32,32,32,32,32,32,112, - 114,105,110,116,40,115,117,109,40,103,101,116,115,105,122,101, - 40,106,111,105,110,40,114,111,111,116,44,32,110,97,109,101, - 41,41,32,102,111,114,32,110,97,109,101,32,105,110,32,102, - 105,108,101,115,41,44,32,101,110,100,61,34,32,34,41,10, - 32,32,32,32,32,32,32,32,112,114,105,110,116,40,34,98, - 121,116,101,115,32,105,110,34,44,32,108,101,110,40,102,105, - 108,101,115,41,44,32,34,110,111,110,45,100,105,114,101,99, - 116,111,114,121,32,102,105,108,101,115,34,41,10,32,32,32, - 32,32,32,32,32,105,102,32,39,95,95,112,121,99,97,99, - 104,101,95,95,39,32,105,110,32,100,105,114,115,58,10,32, - 32,32,32,32,32,32,32,32,32,32,32,100,105,114,115,46, - 114,101,109,111,118,101,40,39,95,95,112,121,99,97,99,104, - 101,95,95,39,41,32,32,35,32,100,111,110,39,116,32,118, - 105,115,105,116,32,95,95,112,121,99,97,99,104,101,95,95, - 32,100,105,114,101,99,116,111,114,105,101,115,10,10,32,32, - 32,32,122,7,111,115,46,119,97,108,107,78,70,84,169,1, - 218,15,102,111,108,108,111,119,95,115,121,109,108,105,110,107, - 115,41,20,218,3,115,121,115,218,5,97,117,100,105,116,218, - 6,102,115,112,97,116,104,114,12,0,0,0,218,6,105,115, - 108,105,110,107,218,4,106,111,105,110,218,3,112,111,112,114, - 115,0,0,0,218,5,116,117,112,108,101,114,86,0,0,0, - 114,117,0,0,0,218,4,110,101,120,116,218,13,83,116,111, - 112,73,116,101,114,97,116,105,111,110,218,23,95,119,97,108, - 107,95,115,121,109,108,105,110,107,115,95,97,115,95,102,105, - 108,101,115,218,6,105,115,95,100,105,114,218,11,105,115,95, - 106,117,110,99,116,105,111,110,218,6,97,112,112,101,110,100, - 114,11,0,0,0,218,10,105,115,95,115,121,109,108,105,110, - 107,218,8,114,101,118,101,114,115,101,100,41,19,218,3,116, - 111,112,218,7,116,111,112,100,111,119,110,218,7,111,110,101, - 114,114,111,114,218,11,102,111,108,108,111,119,108,105,110,107, - 115,218,5,115,116,97,99,107,114,135,0,0,0,114,136,0, - 0,0,218,4,100,105,114,115,218,7,110,111,110,100,105,114, - 115,218,9,119,97,108,107,95,100,105,114,115,218,10,115,99, - 97,110,100,105,114,95,105,116,218,5,101,114,114,111,114,218, - 4,99,111,110,116,218,5,101,110,116,114,121,114,142,0,0, - 0,218,9,119,97,108,107,95,105,110,116,111,114,145,0,0, - 0,218,7,100,105,114,110,97,109,101,218,8,110,101,119,95, - 112,97,116,104,115,19,0,0,0,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,114,25,0,0, - 0,218,4,119,97,108,107,114,162,0,0,0,30,1,0,0, - 115,85,2,0,0,232,0,248,128,0,244,120,1,0,5,8, - 135,73,129,73,136,105,152,19,152,103,160,119,176,11,212,4, - 60,228,13,19,144,67,139,91,136,77,128,69,220,19,23,151, - 59,145,59,164,4,167,9,161,9,136,68,128,70,217,10,15, - 216,14,19,143,105,137,105,139,107,136,3,220,11,21,144,99, - 156,53,212,11,33,216,18,21,138,73,216,12,20,224,15,17, - 136,4,216,18,20,136,7,216,20,22,136,9,240,14,5,9, - 21,220,25,32,160,19,155,28,136,74,240,12,0,16,21,136, - 4,218,13,23,216,18,22,240,2,9,17,26,240,2,3,21, - 30,220,32,36,160,90,211,32,48,153,5,240,18,8,17,35, - 216,23,34,212,38,61,209,23,61,216,33,38,167,28,161,28, - 184,101,160,28,211,33,68,210,33,96,200,85,215,77,94,209, - 77,94,211,77,96,208,73,96,153,6,224,33,38,167,28,161, - 28,163,30,152,6,241,12,0,20,26,216,20,24,151,75,145, - 75,160,5,167,10,161,10,213,20,43,224,20,27,151,78,145, - 78,160,53,167,58,161,58,212,20,46,225,23,30,161,54,241, - 6,0,24,35,216,36,40,153,9,240,4,6,25,47,216,41, - 46,215,41,57,209,41,57,211,41,59,152,74,240,12,0,41, - 51,160,78,152,9,225,23,32,216,24,33,215,24,40,209,24, - 40,168,21,175,26,169,26,212,24,52,240,87,1,0,19,23, - 248,240,49,0,11,16,248,244,34,0,16,23,242,0,3,9, - 21,216,15,22,208,15,34,217,16,23,152,5,148,14,221,12, - 20,251,240,7,3,9,21,251,244,22,0,28,41,242,0,1, - 21,30,217,24,29,240,3,1,21,30,251,228,23,30,242,0, - 4,17,26,216,23,30,208,23,42,217,24,31,160,5,156,14, - 216,27,31,144,68,220,20,25,251,240,9,4,17,26,251,244, - 22,0,24,31,242,0,3,17,35,240,6,0,30,35,146,70, - 240,7,3,17,35,251,244,36,0,32,39,242,0,4,25,47, - 240,8,0,42,47,154,74,240,9,4,25,47,250,247,73,1, - 0,14,24,143,90,137,90,250,241,90,1,0,12,16,217,12, - 20,225,11,18,224,18,21,144,116,152,87,208,18,36,210,12, - 36,228,27,35,160,68,158,62,144,7,217,27,31,160,3,160, - 87,211,27,45,144,8,241,10,0,20,31,161,102,168,88,213, - 38,54,216,20,25,151,76,145,76,160,24,213,20,42,241,15, - 0,28,42,240,20,0,13,18,143,76,137,76,152,35,152,116, - 160,87,208,25,45,212,12,46,228,28,36,160,89,214,28,47, - 144,8,216,16,21,151,12,145,12,152,88,213,16,38,240,3, - 0,29,48,243,111,2,0,11,16,251,115,230,0,0,0,130, - 65,51,73,17,1,193,54,11,69,10,0,194,1,4,73,17, - 1,194,5,2,71,7,3,194,9,11,69,43,2,194,20,1, - 71,7,3,194,22,62,70,28,2,195,20,65,2,71,7,3, - 196,23,16,70,45,2,196,39,33,71,7,3,197,8,2,73, - 17,1,197,10,9,69,40,3,197,19,10,69,35,3,197,29, - 6,73,17,1,197,35,5,69,40,3,197,40,3,73,17,1, - 197,43,9,69,55,5,197,52,1,69,58,2,197,53,1,71, - 7,3,197,54,1,69,55,5,197,55,3,69,58,2,197,58, - 9,70,25,5,198,3,12,70,20,5,198,15,5,71,7,3, - 198,20,5,70,25,5,198,25,3,71,7,3,198,28,11,70, - 42,5,198,39,2,71,7,3,198,41,1,70,42,5,198,42, - 3,71,7,3,198,45,11,70,59,5,198,56,2,71,7,3, - 198,58,1,70,59,5,198,59,3,71,7,3,198,62,9,73, - 17,1,199,7,5,71,16,7,199,12,53,73,17,1,200,2, - 65,11,73,17,1,114,162,0,0,0,169,2,114,131,0,0, - 0,218,6,100,105,114,95,102,100,99,3,0,0,0,0,0, - 0,0,2,0,0,0,8,0,0,0,35,0,0,0,243,142, - 1,0,0,75,0,1,0,151,0,116,1,0,0,0,0,0, - 0,0,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,1,124,0,124,1,124,2,124, - 3,124,4,171,6,0,0,0,0,0,0,1,0,116,5,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,125,0,116,6,0,0,0,0,0,0,0,0,100,2,124, - 4,124,0,124,0,100,3,102,5,102,2,103,1,125,5,116, - 9,0,0,0,0,0,0,0,0,124,0,116,10,0,0,0, - 0,0,0,0,0,171,2,0,0,0,0,0,0,125,6,9, - 0,124,5,114,26,116,13,0,0,0,0,0,0,0,0,124, - 5,124,6,124,1,124,2,124,3,171,5,0,0,0,0,0, - 0,69,0,100,3,123,3,0,0,150,3,151,2,134,5,5, - 0,1,0,124,5,114,1,140,26,124,5,114,43,124,5,106, - 15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,92,2,0,0,125, - 7,125,8,124,7,116,16,0,0,0,0,0,0,0,0,107, - 40,0,0,114,11,116,19,0,0,0,0,0,0,0,0,124, - 8,171,1,0,0,0,0,0,0,1,0,124,5,114,1,140, - 42,121,3,121,3,55,0,140,53,35,0,124,5,114,43,124, - 5,106,15,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,92,2,0, - 0,125,7,125,8,124,7,116,16,0,0,0,0,0,0,0, - 0,107,40,0,0,114,11,116,19,0,0,0,0,0,0,0, - 0,124,8,171,1,0,0,0,0,0,0,1,0,124,5,114, - 1,140,42,119,0,119,0,120,3,89,0,119,1,173,3,119, - 1,41,4,97,24,5,0,0,68,105,114,101,99,116,111,114, - 121,32,116,114,101,101,32,103,101,110,101,114,97,116,111,114, - 46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,32, - 98,101,104,97,118,101,115,32,101,120,97,99,116,108,121,32, - 108,105,107,101,32,119,97,108,107,40,41,44,32,101,120,99, - 101,112,116,32,116,104,97,116,32,105,116,32,121,105,101,108, - 100,115,32,97,32,52,45,116,117,112,108,101,10,10,32,32, - 32,32,32,32,32,32,32,32,32,32,100,105,114,112,97,116, - 104,44,32,100,105,114,110,97,109,101,115,44,32,102,105,108, - 101,110,97,109,101,115,44,32,100,105,114,102,100,10,10,32, - 32,32,32,32,32,32,32,96,100,105,114,112,97,116,104,96, - 44,32,96,100,105,114,110,97,109,101,115,96,32,97,110,100, - 32,96,102,105,108,101,110,97,109,101,115,96,32,97,114,101, - 32,105,100,101,110,116,105,99,97,108,32,116,111,32,119,97, - 108,107,40,41,32,111,117,116,112,117,116,44,10,32,32,32, - 32,32,32,32,32,97,110,100,32,96,100,105,114,102,100,96, - 32,105,115,32,97,32,102,105,108,101,32,100,101,115,99,114, - 105,112,116,111,114,32,114,101,102,101,114,114,105,110,103,32, - 116,111,32,116,104,101,32,100,105,114,101,99,116,111,114,121, - 32,96,100,105,114,112,97,116,104,96,46,10,10,32,32,32, - 32,32,32,32,32,84,104,101,32,97,100,118,97,110,116,97, - 103,101,32,111,102,32,102,119,97,108,107,40,41,32,111,118, - 101,114,32,119,97,108,107,40,41,32,105,115,32,116,104,97, - 116,32,105,116,39,115,32,115,97,102,101,32,97,103,97,105, - 110,115,116,32,115,121,109,108,105,110,107,10,32,32,32,32, - 32,32,32,32,114,97,99,101,115,32,40,119,104,101,110,32, - 102,111,108,108,111,119,95,115,121,109,108,105,110,107,115,32, - 105,115,32,70,97,108,115,101,41,46,10,10,32,32,32,32, - 32,32,32,32,73,102,32,100,105,114,95,102,100,32,105,115, - 32,110,111,116,32,78,111,110,101,44,32,105,116,32,115,104, - 111,117,108,100,32,98,101,32,97,32,102,105,108,101,32,100, - 101,115,99,114,105,112,116,111,114,32,111,112,101,110,32,116, - 111,32,97,32,100,105,114,101,99,116,111,114,121,44,10,32, - 32,32,32,32,32,32,32,32,32,97,110,100,32,116,111,112, - 32,115,104,111,117,108,100,32,98,101,32,114,101,108,97,116, - 105,118,101,59,32,116,111,112,32,119,105,108,108,32,116,104, - 101,110,32,98,101,32,114,101,108,97,116,105,118,101,32,116, - 111,32,116,104,97,116,32,100,105,114,101,99,116,111,114,121, - 46,10,32,32,32,32,32,32,32,32,32,32,40,100,105,114, - 95,102,100,32,105,115,32,97,108,119,97,121,115,32,115,117, - 112,112,111,114,116,101,100,32,102,111,114,32,102,119,97,108, - 107,46,41,10,10,32,32,32,32,32,32,32,32,67,97,117, - 116,105,111,110,58,10,32,32,32,32,32,32,32,32,83,105, - 110,99,101,32,102,119,97,108,107,40,41,32,121,105,101,108, - 100,115,32,102,105,108,101,32,100,101,115,99,114,105,112,116, - 111,114,115,44,32,116,104,111,115,101,32,97,114,101,32,111, - 110,108,121,32,118,97,108,105,100,32,117,110,116,105,108,32, - 116,104,101,10,32,32,32,32,32,32,32,32,110,101,120,116, - 32,105,116,101,114,97,116,105,111,110,32,115,116,101,112,44, - 32,115,111,32,121,111,117,32,115,104,111,117,108,100,32,100, - 117,112,40,41,32,116,104,101,109,32,105,102,32,121,111,117, - 32,119,97,110,116,32,116,111,32,107,101,101,112,32,116,104, - 101,109,10,32,32,32,32,32,32,32,32,102,111,114,32,97, - 32,108,111,110,103,101,114,32,112,101,114,105,111,100,46,10, - 10,32,32,32,32,32,32,32,32,69,120,97,109,112,108,101, - 58,10,10,32,32,32,32,32,32,32,32,105,109,112,111,114, - 116,32,111,115,10,32,32,32,32,32,32,32,32,102,111,114, - 32,114,111,111,116,44,32,100,105,114,115,44,32,102,105,108, - 101,115,44,32,114,111,111,116,102,100,32,105,110,32,111,115, - 46,102,119,97,108,107,40,39,112,121,116,104,111,110,47,76, - 105,98,47,120,109,108,39,41,58,10,32,32,32,32,32,32, - 32,32,32,32,32,32,112,114,105,110,116,40,114,111,111,116, - 44,32,34,99,111,110,115,117,109,101,115,34,44,32,101,110, - 100,61,34,34,41,10,32,32,32,32,32,32,32,32,32,32, - 32,32,112,114,105,110,116,40,115,117,109,40,111,115,46,115, - 116,97,116,40,110,97,109,101,44,32,100,105,114,95,102,100, - 61,114,111,111,116,102,100,41,46,115,116,95,115,105,122,101, + 0,85,13,82,34,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,53,1,0,0,0,0,0,0,32, + 0,79,27,85,8,82,33,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,13,82,34,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 1,0,0,0,0,0,0,32,0,85,1,40,0,0,0,0, + 0,0,0,100,75,0,0,85,14,40,0,0,0,0,0,0, + 0,97,68,0,0,85,3,40,0,0,0,0,0,0,0,97, + 3,0,0,83,4,110,15,79,24,30,0,85,13,82,37,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,53,0,0,0,0,0,0,0,110,16,85,16,40,0,0, + 0,0,0,0,0,43,0,110,15,85,15,40,0,0,0,0, + 0,0,0,97,27,0,0,85,9,82,33,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,13,82, + 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,53,1,0,0,0,0,0,0,32,0,77,230,0, + 0,103,2,33,0,91,20,0,0,0,0,0,0,0,0,7, + 0,97,23,0,0,110,11,85,2,98,8,0,0,85,2,34, + 0,85,11,53,1,0,0,0,0,0,0,32,0,31,0,83, + 2,110,11,65,11,71,1,77,78,0,0,83,2,110,11,65, + 11,102,1,102,0,61,3,31,0,102,1,33,0,91,24,0, + 0,0,0,0,0,0,0,7,0,97,3,0,0,32,0,31, + 0,79,76,102,0,61,3,31,0,102,1,33,0,91,20,0, + 0,0,0,0,0,0,0,7,0,97,23,0,0,110,11,85, + 2,98,8,0,0,85,2,34,0,85,11,53,1,0,0,0, + 0,0,0,32,0,83,4,110,12,31,0,83,2,110,11,65, + 11,79,44,83,2,110,11,65,11,102,1,102,0,61,3,31, + 0,102,1,33,0,91,20,0,0,0,0,0,0,0,0,7, + 0,97,5,0,0,32,0,83,3,110,14,31,0,78,249,102, + 0,61,3,31,0,102,1,33,0,91,20,0,0,0,0,0, + 0,0,0,7,0,97,5,0,0,32,0,83,3,110,16,31, + 0,78,164,102,0,61,3,31,0,102,1,83,2,83,2,83, + 2,53,2,0,0,0,0,0,0,32,0,79,17,33,0,44, + 0,40,0,0,0,0,0,0,0,100,1,0,0,102,2,32, + 0,31,0,32,0,32,0,79,3,61,3,31,0,102,1,85, + 12,40,0,0,0,0,0,0,0,97,3,0,0,71,1,77, + 210,0,0,85,1,40,0,0,0,0,0,0,0,97,73,0, + 0,88,7,85,8,52,3,118,0,149,5,32,0,91,39,0, + 0,0,0,0,0,0,0,85,7,53,1,0,0,0,0,0, + 0,19,0,72,51,0,0,110,17,85,6,34,0,85,0,85, + 17,53,2,0,0,0,0,0,0,110,18,85,3,40,0,0, + 0,0,0,0,0,100,15,0,0,85,5,34,0,85,18,53, + 1,0,0,0,0,0,0,40,0,0,0,0,0,0,0,97, + 2,0,0,77,34,0,0,85,4,82,33,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,18,53, + 1,0,0,0,0,0,0,32,0,77,53,0,0,11,0,32, + 0,79,54,85,4,82,33,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,88,7,85,8,52,3,53, + 1,0,0,0,0,0,0,32,0,91,39,0,0,0,0,0, + 0,0,0,85,9,53,1,0,0,0,0,0,0,19,0,72, + 20,0,0,110,18,85,4,82,33,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,18,53,1,0, + 0,0,0,0,0,32,0,77,22,0,0,11,0,32,0,85, + 4,40,0,0,0,0,0,0,0,97,3,0,0,71,2,77, + 90,0,0,103,2,55,3,102,1,41,6,97,128,10,0,0, + 68,105,114,101,99,116,111,114,121,32,116,114,101,101,32,103, + 101,110,101,114,97,116,111,114,46,10,10,70,111,114,32,101, + 97,99,104,32,100,105,114,101,99,116,111,114,121,32,105,110, + 32,116,104,101,32,100,105,114,101,99,116,111,114,121,32,116, + 114,101,101,32,114,111,111,116,101,100,32,97,116,32,116,111, + 112,32,40,105,110,99,108,117,100,105,110,103,32,116,111,112, + 10,105,116,115,101,108,102,44,32,98,117,116,32,101,120,99, + 108,117,100,105,110,103,32,39,46,39,32,97,110,100,32,39, + 46,46,39,41,44,32,121,105,101,108,100,115,32,97,32,51, + 45,116,117,112,108,101,10,10,32,32,32,32,100,105,114,112, + 97,116,104,44,32,100,105,114,110,97,109,101,115,44,32,102, + 105,108,101,110,97,109,101,115,10,10,100,105,114,112,97,116, + 104,32,105,115,32,97,32,115,116,114,105,110,103,44,32,116, + 104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,100, + 105,114,101,99,116,111,114,121,46,32,32,100,105,114,110,97, + 109,101,115,32,105,115,32,97,32,108,105,115,116,32,111,102, + 10,116,104,101,32,110,97,109,101,115,32,111,102,32,116,104, + 101,32,115,117,98,100,105,114,101,99,116,111,114,105,101,115, + 32,105,110,32,100,105,114,112,97,116,104,32,40,105,110,99, + 108,117,100,105,110,103,32,115,121,109,108,105,110,107,115,32, + 116,111,32,100,105,114,101,99,116,111,114,105,101,115,44,10, + 97,110,100,32,101,120,99,108,117,100,105,110,103,32,39,46, + 39,32,97,110,100,32,39,46,46,39,41,46,10,102,105,108, + 101,110,97,109,101,115,32,105,115,32,97,32,108,105,115,116, + 32,111,102,32,116,104,101,32,110,97,109,101,115,32,111,102, + 32,116,104,101,32,110,111,110,45,100,105,114,101,99,116,111, + 114,121,32,102,105,108,101,115,32,105,110,32,100,105,114,112, + 97,116,104,46,10,78,111,116,101,32,116,104,97,116,32,116, + 104,101,32,110,97,109,101,115,32,105,110,32,116,104,101,32, + 108,105,115,116,115,32,97,114,101,32,106,117,115,116,32,110, + 97,109,101,115,44,32,119,105,116,104,32,110,111,32,112,97, + 116,104,32,99,111,109,112,111,110,101,110,116,115,46,10,84, + 111,32,103,101,116,32,97,32,102,117,108,108,32,112,97,116, + 104,32,40,119,104,105,99,104,32,98,101,103,105,110,115,32, + 119,105,116,104,32,116,111,112,41,32,116,111,32,97,32,102, + 105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121, + 32,105,110,10,100,105,114,112,97,116,104,44,32,100,111,32, + 111,115,46,112,97,116,104,46,106,111,105,110,40,100,105,114, + 112,97,116,104,44,32,110,97,109,101,41,46,10,10,73,102, + 32,111,112,116,105,111,110,97,108,32,97,114,103,32,39,116, + 111,112,100,111,119,110,39,32,105,115,32,116,114,117,101,32, + 111,114,32,110,111,116,32,115,112,101,99,105,102,105,101,100, + 44,32,116,104,101,32,116,114,105,112,108,101,32,102,111,114, + 32,97,10,100,105,114,101,99,116,111,114,121,32,105,115,32, + 103,101,110,101,114,97,116,101,100,32,98,101,102,111,114,101, + 32,116,104,101,32,116,114,105,112,108,101,115,32,102,111,114, + 32,97,110,121,32,111,102,32,105,116,115,32,115,117,98,100, + 105,114,101,99,116,111,114,105,101,115,10,40,100,105,114,101, + 99,116,111,114,105,101,115,32,97,114,101,32,103,101,110,101, + 114,97,116,101,100,32,116,111,112,32,100,111,119,110,41,46, + 32,32,73,102,32,116,111,112,100,111,119,110,32,105,115,32, + 102,97,108,115,101,44,32,116,104,101,32,116,114,105,112,108, + 101,10,102,111,114,32,97,32,100,105,114,101,99,116,111,114, + 121,32,105,115,32,103,101,110,101,114,97,116,101,100,32,97, + 102,116,101,114,32,116,104,101,32,116,114,105,112,108,101,115, + 32,102,111,114,32,97,108,108,32,111,102,32,105,116,115,10, + 115,117,98,100,105,114,101,99,116,111,114,105,101,115,32,40, + 100,105,114,101,99,116,111,114,105,101,115,32,97,114,101,32, + 103,101,110,101,114,97,116,101,100,32,98,111,116,116,111,109, + 32,117,112,41,46,10,10,87,104,101,110,32,116,111,112,100, + 111,119,110,32,105,115,32,116,114,117,101,44,32,116,104,101, + 32,99,97,108,108,101,114,32,99,97,110,32,109,111,100,105, + 102,121,32,116,104,101,32,100,105,114,110,97,109,101,115,32, + 108,105,115,116,32,105,110,45,112,108,97,99,101,10,40,101, + 46,103,46,44,32,118,105,97,32,100,101,108,32,111,114,32, + 115,108,105,99,101,32,97,115,115,105,103,110,109,101,110,116, + 41,44,32,97,110,100,32,119,97,108,107,32,119,105,108,108, + 32,111,110,108,121,32,114,101,99,117,114,115,101,32,105,110, + 116,111,32,116,104,101,10,115,117,98,100,105,114,101,99,116, + 111,114,105,101,115,32,119,104,111,115,101,32,110,97,109,101, + 115,32,114,101,109,97,105,110,32,105,110,32,100,105,114,110, + 97,109,101,115,59,32,116,104,105,115,32,99,97,110,32,98, + 101,32,117,115,101,100,32,116,111,32,112,114,117,110,101,32, + 116,104,101,10,115,101,97,114,99,104,44,32,111,114,32,116, + 111,32,105,109,112,111,115,101,32,97,32,115,112,101,99,105, + 102,105,99,32,111,114,100,101,114,32,111,102,32,118,105,115, + 105,116,105,110,103,46,32,32,77,111,100,105,102,121,105,110, + 103,32,100,105,114,110,97,109,101,115,32,119,104,101,110,10, + 116,111,112,100,111,119,110,32,105,115,32,102,97,108,115,101, + 32,104,97,115,32,110,111,32,101,102,102,101,99,116,32,111, + 110,32,116,104,101,32,98,101,104,97,118,105,111,114,32,111, + 102,32,111,115,46,119,97,108,107,40,41,44,32,115,105,110, + 99,101,32,116,104,101,10,100,105,114,101,99,116,111,114,105, + 101,115,32,105,110,32,100,105,114,110,97,109,101,115,32,104, + 97,118,101,32,97,108,114,101,97,100,121,32,98,101,101,110, + 32,103,101,110,101,114,97,116,101,100,32,98,121,32,116,104, + 101,32,116,105,109,101,32,100,105,114,110,97,109,101,115,10, + 105,116,115,101,108,102,32,105,115,32,103,101,110,101,114,97, + 116,101,100,46,32,78,111,32,109,97,116,116,101,114,32,116, + 104,101,32,118,97,108,117,101,32,111,102,32,116,111,112,100, + 111,119,110,44,32,116,104,101,32,108,105,115,116,32,111,102, + 10,115,117,98,100,105,114,101,99,116,111,114,105,101,115,32, + 105,115,32,114,101,116,114,105,101,118,101,100,32,98,101,102, + 111,114,101,32,116,104,101,32,116,117,112,108,101,115,32,102, + 111,114,32,116,104,101,32,100,105,114,101,99,116,111,114,121, + 32,97,110,100,32,105,116,115,10,115,117,98,100,105,114,101, + 99,116,111,114,105,101,115,32,97,114,101,32,103,101,110,101, + 114,97,116,101,100,46,10,10,66,121,32,100,101,102,97,117, + 108,116,32,101,114,114,111,114,115,32,102,114,111,109,32,116, + 104,101,32,111,115,46,115,99,97,110,100,105,114,40,41,32, + 99,97,108,108,32,97,114,101,32,105,103,110,111,114,101,100, + 46,32,32,73,102,10,111,112,116,105,111,110,97,108,32,97, + 114,103,32,39,111,110,101,114,114,111,114,39,32,105,115,32, + 115,112,101,99,105,102,105,101,100,44,32,105,116,32,115,104, + 111,117,108,100,32,98,101,32,97,32,102,117,110,99,116,105, + 111,110,59,32,105,116,10,119,105,108,108,32,98,101,32,99, + 97,108,108,101,100,32,119,105,116,104,32,111,110,101,32,97, + 114,103,117,109,101,110,116,44,32,97,110,32,79,83,69,114, + 114,111,114,32,105,110,115,116,97,110,99,101,46,32,32,73, + 116,32,99,97,110,10,114,101,112,111,114,116,32,116,104,101, + 32,101,114,114,111,114,32,116,111,32,99,111,110,116,105,110, + 117,101,32,119,105,116,104,32,116,104,101,32,119,97,108,107, + 44,32,111,114,32,114,97,105,115,101,32,116,104,101,32,101, + 120,99,101,112,116,105,111,110,10,116,111,32,97,98,111,114, + 116,32,116,104,101,32,119,97,108,107,46,32,32,78,111,116, + 101,32,116,104,97,116,32,116,104,101,32,102,105,108,101,110, + 97,109,101,32,105,115,32,97,118,97,105,108,97,98,108,101, + 32,97,115,32,116,104,101,10,102,105,108,101,110,97,109,101, + 32,97,116,116,114,105,98,117,116,101,32,111,102,32,116,104, + 101,32,101,120,99,101,112,116,105,111,110,32,111,98,106,101, + 99,116,46,10,10,66,121,32,100,101,102,97,117,108,116,44, + 32,111,115,46,119,97,108,107,32,100,111,101,115,32,110,111, + 116,32,102,111,108,108,111,119,32,115,121,109,98,111,108,105, + 99,32,108,105,110,107,115,32,116,111,32,115,117,98,100,105, + 114,101,99,116,111,114,105,101,115,32,111,110,10,115,121,115, + 116,101,109,115,32,116,104,97,116,32,115,117,112,112,111,114, + 116,32,116,104,101,109,46,32,32,73,110,32,111,114,100,101, + 114,32,116,111,32,103,101,116,32,116,104,105,115,32,102,117, + 110,99,116,105,111,110,97,108,105,116,121,44,32,115,101,116, + 32,116,104,101,10,111,112,116,105,111,110,97,108,32,97,114, + 103,117,109,101,110,116,32,39,102,111,108,108,111,119,108,105, + 110,107,115,39,32,116,111,32,116,114,117,101,46,10,10,67, + 97,117,116,105,111,110,58,32,32,105,102,32,121,111,117,32, + 112,97,115,115,32,97,32,114,101,108,97,116,105,118,101,32, + 112,97,116,104,110,97,109,101,32,102,111,114,32,116,111,112, + 44,32,100,111,110,39,116,32,99,104,97,110,103,101,32,116, + 104,101,10,99,117,114,114,101,110,116,32,119,111,114,107,105, + 110,103,32,100,105,114,101,99,116,111,114,121,32,98,101,116, + 119,101,101,110,32,114,101,115,117,109,112,116,105,111,110,115, + 32,111,102,32,119,97,108,107,46,32,32,119,97,108,107,32, + 110,101,118,101,114,10,99,104,97,110,103,101,115,32,116,104, + 101,32,99,117,114,114,101,110,116,32,100,105,114,101,99,116, + 111,114,121,44,32,97,110,100,32,97,115,115,117,109,101,115, + 32,116,104,97,116,32,116,104,101,32,99,108,105,101,110,116, + 32,100,111,101,115,110,39,116,10,101,105,116,104,101,114,46, + 10,10,69,120,97,109,112,108,101,58,10,10,105,109,112,111, + 114,116,32,111,115,10,102,114,111,109,32,111,115,46,112,97, + 116,104,32,105,109,112,111,114,116,32,106,111,105,110,44,32, + 103,101,116,115,105,122,101,10,102,111,114,32,114,111,111,116, + 44,32,100,105,114,115,44,32,102,105,108,101,115,32,105,110, + 32,111,115,46,119,97,108,107,40,39,112,121,116,104,111,110, + 47,76,105,98,47,120,109,108,39,41,58,10,32,32,32,32, + 112,114,105,110,116,40,114,111,111,116,44,32,34,99,111,110, + 115,117,109,101,115,32,34,41,10,32,32,32,32,112,114,105, + 110,116,40,115,117,109,40,103,101,116,115,105,122,101,40,106, + 111,105,110,40,114,111,111,116,44,32,110,97,109,101,41,41, 32,102,111,114,32,110,97,109,101,32,105,110,32,102,105,108, - 101,115,41,44,10,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,101,110,100,61,34,34,41,10,32, - 32,32,32,32,32,32,32,32,32,32,32,112,114,105,110,116, - 40,34,98,121,116,101,115,32,105,110,34,44,32,108,101,110, - 40,102,105,108,101,115,41,44,32,34,110,111,110,45,100,105, - 114,101,99,116,111,114,121,32,102,105,108,101,115,34,41,10, - 32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,39, - 95,95,112,121,99,97,99,104,101,95,95,39,32,105,110,32, - 100,105,114,115,58,10,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,100,105,114,115,46,114,101,109,111,118, - 101,40,39,95,95,112,121,99,97,99,104,101,95,95,39,41, - 32,32,35,32,100,111,110,39,116,32,118,105,115,105,116,32, - 95,95,112,121,99,97,99,104,101,95,95,32,100,105,114,101, - 99,116,111,114,105,101,115,10,32,32,32,32,32,32,32,32, - 122,8,111,115,46,102,119,97,108,107,84,78,41,10,114,132, - 0,0,0,114,133,0,0,0,114,134,0,0,0,218,11,95, - 102,119,97,108,107,95,119,97,108,107,114,115,0,0,0,114, - 116,0,0,0,218,6,95,102,119,97,108,107,114,137,0,0, - 0,218,12,95,102,119,97,108,107,95,99,108,111,115,101,218, - 5,99,108,111,115,101,41,9,114,147,0,0,0,114,148,0, - 0,0,114,149,0,0,0,114,131,0,0,0,114,164,0,0, - 0,114,151,0,0,0,218,7,105,115,98,121,116,101,115,218, - 6,97,99,116,105,111,110,218,5,118,97,108,117,101,115,9, - 0,0,0,32,32,32,32,32,32,32,32,32,114,25,0,0, - 0,218,5,102,119,97,108,107,114,173,0,0,0,188,1,0, - 0,115,198,0,0,0,232,0,248,128,0,244,66,1,0,9, - 12,143,9,137,9,144,42,152,99,160,55,168,71,176,95,192, - 102,212,8,77,220,14,20,144,83,139,107,136,3,220,18,29, - 160,4,160,102,168,99,176,51,184,4,208,31,61,208,17,62, - 208,16,63,136,5,220,18,28,152,83,164,37,211,18,40,136, - 7,240,2,8,9,33,217,18,23,220,27,33,160,37,168,23, - 176,39,184,55,192,79,211,27,84,215,16,84,208,16,84,242, - 3,0,19,24,241,8,0,19,24,216,32,37,167,9,161,9, - 163,11,145,13,144,6,152,5,216,19,25,156,92,210,19,41, - 220,20,25,152,37,148,76,244,7,0,19,24,240,7,0,17, - 85,1,249,241,6,0,19,24,216,32,37,167,9,161,9,163, - 11,145,13,144,6,152,5,216,19,25,156,92,210,19,41,220, - 20,25,152,37,148,76,244,7,0,19,24,252,115,60,0,0, - 0,130,65,4,67,5,1,193,7,20,66,19,0,193,27,1, - 66,17,4,193,28,6,66,19,0,193,35,43,67,5,1,194, - 15,2,67,5,1,194,17,1,66,19,0,194,19,44,67,2, - 3,195,0,2,67,2,3,195,2,3,67,5,1,99,5,0, - 0,0,0,0,0,0,0,0,0,0,10,0,0,0,35,0, - 0,0,243,196,4,0,0,135,18,135,19,75,0,1,0,151, - 0,124,0,106,1,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,92, - 2,0,0,125,5,125,6,124,5,116,2,0,0,0,0,0, - 0,0,0,107,40,0,0,114,12,116,5,0,0,0,0,0, - 0,0,0,124,6,171,1,0,0,0,0,0,0,1,0,121, - 0,124,5,116,6,0,0,0,0,0,0,0,0,107,40,0, - 0,114,5,124,6,150,1,151,1,1,0,121,0,124,5,116, - 8,0,0,0,0,0,0,0,0,107,40,0,0,115,2,74, - 0,130,1,124,6,92,5,0,0,125,7,125,8,138,19,125, - 9,125,10,9,0,124,4,115,35,124,10,128,15,116,11,0, - 0,0,0,0,0,0,0,124,9,100,1,124,8,172,2,171, - 3,0,0,0,0,0,0,125,11,110,18,124,10,106,11,0, + 101,115,41,44,32,101,110,100,61,34,32,34,41,10,32,32, + 32,32,112,114,105,110,116,40,34,98,121,116,101,115,32,105, + 110,34,44,32,108,101,110,40,102,105,108,101,115,41,44,32, + 34,110,111,110,45,100,105,114,101,99,116,111,114,121,32,102, + 105,108,101,115,34,41,10,32,32,32,32,105,102,32,39,95, + 95,112,121,99,97,99,104,101,95,95,39,32,105,110,32,100, + 105,114,115,58,10,32,32,32,32,32,32,32,32,100,105,114, + 115,46,114,101,109,111,118,101,40,39,95,95,112,121,99,97, + 99,104,101,95,95,39,41,32,32,35,32,100,111,110,39,116, + 32,118,105,115,105,116,32,95,95,112,121,99,97,99,104,101, + 95,95,32,100,105,114,101,99,116,111,114,105,101,115,10,10, + 122,7,111,115,46,119,97,108,107,78,70,84,169,1,218,15, + 102,111,108,108,111,119,95,115,121,109,108,105,110,107,115,41, + 20,218,3,115,121,115,218,5,97,117,100,105,116,218,6,102, + 115,112,97,116,104,114,12,0,0,0,218,6,105,115,108,105, + 110,107,218,4,106,111,105,110,218,3,112,111,112,114,116,0, + 0,0,218,5,116,117,112,108,101,114,89,0,0,0,114,118, + 0,0,0,218,4,110,101,120,116,218,13,83,116,111,112,73, + 116,101,114,97,116,105,111,110,218,23,95,119,97,108,107,95, + 115,121,109,108,105,110,107,115,95,97,115,95,102,105,108,101, + 115,218,6,105,115,95,100,105,114,218,11,105,115,95,106,117, + 110,99,116,105,111,110,218,6,97,112,112,101,110,100,114,11, + 0,0,0,218,10,105,115,95,115,121,109,108,105,110,107,218, + 8,114,101,118,101,114,115,101,100,41,19,218,3,116,111,112, + 218,7,116,111,112,100,111,119,110,218,7,111,110,101,114,114, + 111,114,218,11,102,111,108,108,111,119,108,105,110,107,115,218, + 5,115,116,97,99,107,114,136,0,0,0,114,137,0,0,0, + 218,4,100,105,114,115,218,7,110,111,110,100,105,114,115,218, + 9,119,97,108,107,95,100,105,114,115,218,10,115,99,97,110, + 100,105,114,95,105,116,218,5,101,114,114,111,114,218,4,99, + 111,110,116,218,5,101,110,116,114,121,114,143,0,0,0,218, + 9,119,97,108,107,95,105,110,116,111,114,146,0,0,0,218, + 7,100,105,114,110,97,109,101,218,8,110,101,119,95,112,97, + 116,104,115,19,0,0,0,32,32,32,32,32,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32,114,25,0,0,0,218, + 4,119,97,108,107,114,163,0,0,0,33,1,0,0,115,81, + 2,0,0,233,0,128,0,244,120,1,0,5,8,135,73,130, + 73,136,105,152,19,160,119,212,4,60,228,13,19,144,67,139, + 91,136,77,128,69,220,19,23,151,59,145,59,164,4,167,9, + 161,9,136,68,223,10,15,216,14,19,143,105,137,105,139,107, + 136,3,220,11,21,144,99,156,53,215,11,33,209,11,33,216, + 18,21,138,73,217,12,20,224,15,17,136,4,216,18,20,136, + 7,216,20,22,136,9,240,14,5,9,21,220,25,32,160,19, + 155,28,136,74,240,12,0,16,21,136,4,218,13,23,216,18, + 22,240,2,9,17,26,240,2,3,21,30,220,32,36,160,90, + 211,32,48,152,5,240,18,8,17,35,216,23,34,212,38,61, + 210,23,61,216,33,38,167,28,161,28,184,101,160,28,208,33, + 68,215,33,96,200,85,215,77,94,209,77,94,211,77,96,212, + 73,96,153,6,224,33,38,167,28,161,28,163,30,153,6,246, + 12,0,20,26,216,20,24,151,75,145,75,160,5,167,10,161, + 10,213,20,43,224,20,27,151,78,145,78,160,53,167,58,161, + 58,212,20,46,230,23,30,166,54,246,6,0,24,35,216,36, + 40,153,9,240,4,6,25,47,216,41,46,215,41,57,209,41, + 57,211,41,59,152,74,240,12,0,41,51,164,78,152,9,230, + 23,32,216,24,33,215,24,40,209,24,40,168,21,175,26,169, + 26,212,24,52,241,87,1,0,19,23,240,49,0,11,16,248, + 244,34,0,16,23,243,0,3,9,21,216,15,22,209,15,34, + 217,16,23,152,5,148,14,222,12,20,251,240,7,3,9,21, + 251,244,22,0,28,41,243,0,1,21,30,217,24,29,240,3, + 1,21,30,251,228,23,30,243,0,4,17,26,216,23,30,209, + 23,42,217,24,31,160,5,156,14,216,27,31,144,68,220,20, + 25,251,240,9,4,17,26,251,244,22,0,24,31,243,0,3, + 17,35,240,6,0,30,35,146,70,240,7,3,17,35,251,244, + 36,0,32,39,243,0,4,25,47,240,8,0,42,47,154,74, + 240,9,4,25,47,250,247,73,1,0,14,24,143,90,142,90, + 250,246,90,1,0,12,16,218,12,20,230,11,18,224,18,21, + 152,87,208,18,36,210,12,36,228,27,35,160,68,158,62,144, + 7,217,27,31,160,3,160,87,211,27,45,144,8,246,10,0, + 20,31,161,102,168,88,215,38,54,211,38,54,216,20,25,151, + 76,145,76,160,24,214,20,42,242,15,0,28,42,240,20,0, + 13,18,143,76,137,76,152,35,160,87,208,25,45,212,12,46, + 228,28,36,160,89,214,28,47,144,8,216,16,21,151,12,145, + 12,152,88,214,16,38,241,3,0,29,48,247,111,2,0,11, + 16,138,37,249,115,243,0,0,0,130,65,61,74,41,1,194, + 0,11,69,56,0,194,11,4,74,41,1,194,15,2,71,61, + 3,194,19,11,70,28,2,194,31,52,71,16,2,195,19,1, + 71,61,3,195,20,16,71,16,2,195,36,65,23,71,61,3, + 196,60,16,71,34,2,197,12,43,71,61,3,197,55,1,74, + 41,1,197,56,10,70,25,3,198,2,11,70,20,3,198,13, + 7,74,41,1,198,20,5,70,25,3,198,25,3,74,41,1, + 198,28,10,70,41,5,198,38,1,70,44,2,198,39,1,71, + 61,3,198,40,1,70,41,5,198,41,3,70,44,2,198,44, + 10,71,13,5,198,54,13,71,8,5,199,3,5,71,61,3, + 199,8,5,71,13,5,199,13,3,71,61,3,199,16,12,71, + 31,5,199,28,2,71,61,3,199,30,1,71,31,5,199,31, + 3,71,61,3,199,34,12,71,49,5,199,46,2,71,61,3, + 199,48,1,71,49,5,199,49,3,71,61,3,199,52,9,74, + 41,1,199,61,10,72,11,7,200,7,65,7,74,41,1,201, + 18,65,19,74,41,1,202,40,1,74,41,1,114,163,0,0, + 0,169,2,114,132,0,0,0,218,6,100,105,114,95,102,100, + 99,3,0,0,0,0,0,0,0,2,0,0,0,8,0,0, + 0,35,0,0,0,243,200,1,0,0,35,0,32,0,149,0, + 91,0,0,0,0,0,0,0,0,0,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 83,1,88,1,88,35,85,4,53,6,0,0,0,0,0,0, + 32,0,91,5,0,0,0,0,0,0,0,0,85,0,53,1, + 0,0,0,0,0,0,110,0,91,6,0,0,0,0,0,0, + 0,0,83,2,88,64,85,0,83,3,52,5,52,2,47,1, + 110,5,91,9,0,0,0,0,0,0,0,0,85,0,91,10, + 0,0,0,0,0,0,0,0,53,2,0,0,0,0,0,0, + 110,6,30,0,85,5,40,0,0,0,0,0,0,0,97,30, + 0,0,91,13,0,0,0,0,0,0,0,0,88,86,88,18, + 85,3,53,5,0,0,0,0,0,0,21,0,83,3,104,3, + 0,0,118,1,149,2,78,5,12,0,32,0,85,5,40,0, + 0,0,0,0,0,0,97,2,0,0,77,30,0,0,85,5, + 40,0,0,0,0,0,0,0,97,49,0,0,85,5,82,15, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,1,172,3,171,1,0,0,0,0,0,0,125,11,116, - 13,0,0,0,0,0,0,0,0,124,9,116,14,0,0,0, - 0,0,0,0,0,116,16,0,0,0,0,0,0,0,0,122, - 7,0,0,124,8,172,4,171,3,0,0,0,0,0,0,138, - 18,124,0,106,21,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,116,2,0,0,0,0,0,0,0, - 0,137,18,102,2,171,1,0,0,0,0,0,0,1,0,124, - 4,115,66,124,7,114,32,116,23,0,0,0,0,0,0,0, - 0,106,24,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,127,11,106,26,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,115,1,121,0,116,29,0,0,0,0,0,0,0, - 0,106,30,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,127,11,116,11,0,0,0,0,0,0,0, - 0,137,18,171,1,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,115,1,121,0,116,33,0,0,0,0,0,0,0, - 0,137,18,171,1,0,0,0,0,0,0,125,13,103,0,125, - 14,103,0,125,15,124,2,115,2,124,4,114,2,100,0,110, - 1,103,0,125,16,124,13,68,0,93,98,0,0,125,10,124, - 10,106,34,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,125,17,124,1,114,11,116,37,0,0,0, - 0,0,0,0,0,124,17,171,1,0,0,0,0,0,0,125, - 17,9,0,124,10,106,39,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,114,37,124,14,106,21,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,17,171,1,0,0,0, - 0,0,0,1,0,124,16,129,35,124,16,106,21,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 10,171,1,0,0,0,0,0,0,1,0,110,17,124,15,106, - 21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,17,171,1,0,0,0,0,0,0,1,0,140, - 100,4,0,124,2,114,9,137,19,124,14,124,15,137,18,102, - 4,150,1,151,1,1,0,110,27,124,0,106,21,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116, - 6,0,0,0,0,0,0,0,0,137,19,124,14,124,15,137, - 18,102,4,102,2,171,1,0,0,0,0,0,0,1,0,116, - 29,0,0,0,0,0,0,0,0,106,42,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,137,19,137, - 19,100,0,100,5,26,0,171,2,0,0,0,0,0,0,138, - 19,124,16,128,34,124,0,106,45,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,136,18,136,19,102, - 2,100,6,132,8,124,14,100,0,100,0,100,7,133,3,25, - 0,0,0,68,0,171,0,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,1,0,121,0,124,0,106,45,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136, - 18,136,19,102,2,100,8,132,8,116,47,0,0,0,0,0, - 0,0,0,124,14,100,0,100,0,100,7,133,3,25,0,0, - 0,124,16,100,0,100,0,100,7,133,3,25,0,0,0,171, - 2,0,0,0,0,0,0,68,0,171,0,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,1,0,121,0,35,0,116, - 18,0,0,0,0,0,0,0,0,36,0,114,23,125,12,124, - 7,114,1,130,0,124,3,129,8,2,0,124,3,124,12,171, - 1,0,0,0,0,0,0,1,0,89,0,100,0,125,12,126, - 12,121,0,100,0,125,12,126,12,119,1,119,0,120,3,89, - 0,119,1,35,0,116,18,0,0,0,0,0,0,0,0,36, - 0,114,54,1,0,9,0,124,10,106,41,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,114,17,124,15,106,21,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,17,171, - 1,0,0,0,0,0,0,1,0,110,15,35,0,116,18,0, - 0,0,0,0,0,0,0,36,0,114,3,1,0,89,0,110, - 4,119,0,120,3,89,0,119,1,89,0,144,1,140,91,119, - 0,120,3,89,0,119,1,173,3,119,1,41,9,78,70,114, - 163,0,0,0,114,130,0,0,0,41,1,114,164,0,0,0, - 114,2,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,7,0,0,0,51,0,0,0,243,62,0,0,0,149, - 2,75,0,1,0,151,0,124,0,93,20,0,0,125,1,116, - 0,0,0,0,0,0,0,0,0,100,0,137,2,137,3,124, - 1,122,0,0,0,124,1,100,1,102,5,102,2,150,1,151, - 1,1,0,140,22,4,0,121,1,173,3,119,1,169,2,70, - 78,169,1,114,166,0,0,0,41,4,218,2,46,48,114,11, - 0,0,0,218,5,116,111,112,102,100,218,7,116,111,112,112, - 97,116,104,115,4,0,0,0,32,32,128,128,114,25,0,0, - 0,218,9,60,103,101,110,101,120,112,114,62,122,25,95,102, - 119,97,108,107,46,60,108,111,99,97,108,115,62,46,60,103, - 101,110,101,120,112,114,62,50,2,0,0,115,45,0,0,0, - 248,232,0,248,128,0,240,0,2,25,40,225,28,38,144,68, - 244,3,0,18,29,152,117,160,101,168,87,176,116,169,94,184, - 84,192,52,208,30,72,212,16,73,217,28,38,249,115,4,0, - 0,0,131,26,29,1,233,255,255,255,255,99,1,0,0,0, - 0,0,0,0,0,0,0,0,7,0,0,0,51,0,0,0, - 243,68,0,0,0,149,2,75,0,1,0,151,0,124,0,93, - 23,0,0,92,2,0,0,125,1,125,2,116,0,0,0,0, - 0,0,0,0,0,100,0,137,3,137,4,124,1,122,0,0, - 0,124,1,124,2,102,5,102,2,150,1,151,1,1,0,140, - 25,4,0,121,1,173,3,119,1,114,176,0,0,0,114,177, - 0,0,0,41,5,114,178,0,0,0,114,11,0,0,0,114, - 158,0,0,0,114,179,0,0,0,114,180,0,0,0,115,5, - 0,0,0,32,32,32,128,128,114,25,0,0,0,114,181,0, - 0,0,122,25,95,102,119,97,108,107,46,60,108,111,99,97, - 108,115,62,46,60,103,101,110,101,120,112,114,62,54,2,0, - 0,115,50,0,0,0,248,232,0,248,128,0,240,0,2,25, - 67,1,225,35,65,145,75,144,68,152,37,244,3,0,18,29, - 152,117,160,101,168,87,176,116,169,94,184,84,192,53,208,30, - 73,212,16,74,217,35,65,249,115,4,0,0,0,131,29,32, - 1,41,24,114,137,0,0,0,114,168,0,0,0,114,169,0, - 0,0,218,12,95,102,119,97,108,107,95,121,105,101,108,100, - 114,166,0,0,0,114,57,0,0,0,114,69,0,0,0,218, - 8,79,95,82,68,79,78,76,89,218,10,79,95,78,79,78, - 66,76,79,67,75,114,117,0,0,0,114,144,0,0,0,218, - 2,115,116,218,7,83,95,73,83,68,73,82,218,7,115,116, - 95,109,111,100,101,114,12,0,0,0,218,8,115,97,109,101, - 115,116,97,116,114,86,0,0,0,114,11,0,0,0,114,17, - 0,0,0,114,142,0,0,0,114,145,0,0,0,114,136,0, - 0,0,218,6,101,120,116,101,110,100,218,3,122,105,112,41, - 20,114,151,0,0,0,114,170,0,0,0,114,148,0,0,0, - 114,149,0,0,0,114,131,0,0,0,114,171,0,0,0,114, - 172,0,0,0,218,6,105,115,114,111,111,116,218,5,100,105, - 114,102,100,218,7,116,111,112,110,97,109,101,114,158,0,0, - 0,218,7,111,114,105,103,95,115,116,218,3,101,114,114,114, - 155,0,0,0,114,152,0,0,0,114,153,0,0,0,218,7, - 101,110,116,114,105,101,115,114,11,0,0,0,114,179,0,0, - 0,114,180,0,0,0,115,20,0,0,0,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,64,64,114, - 25,0,0,0,114,167,0,0,0,114,167,0,0,0,240,1, - 0,0,115,84,2,0,0,249,232,0,248,128,0,240,10,0, - 25,30,159,9,153,9,155,11,137,13,136,6,144,5,216,11, - 17,148,92,210,11,33,220,12,17,144,37,140,76,216,12,18, - 216,13,19,148,124,210,13,35,216,18,23,138,75,216,12,18, - 216,15,21,156,27,210,15,36,208,8,36,208,15,36,216,49, - 54,209,8,46,136,6,144,5,144,119,160,7,168,21,240,2, - 14,9,19,217,19,34,240,6,0,20,25,144,61,220,30,34, - 160,55,184,69,200,37,212,30,80,145,71,224,30,35,159,106, - 153,106,184,21,152,106,211,30,63,144,71,220,20,24,152,23, - 164,40,172,90,209,34,55,192,5,212,20,70,136,69,240,14, - 0,9,14,143,12,137,12,148,108,160,69,208,21,42,212,8, - 43,217,15,30,217,15,21,156,98,159,106,153,106,168,23,175, - 31,169,31,212,30,57,216,16,22,220,19,23,151,61,145,61, - 160,23,172,36,168,117,171,43,212,19,54,216,16,22,228,21, - 28,152,85,147,94,136,10,216,15,17,136,4,216,18,20,136, - 7,217,26,33,161,95,145,36,184,34,136,7,219,21,31,136, - 69,216,19,24,151,58,145,58,136,68,217,15,22,220,23,31, - 160,4,147,126,144,4,240,2,13,13,25,216,19,24,151,60, - 145,60,148,62,216,20,24,151,75,145,75,160,4,212,20,37, - 216,23,30,208,23,42,216,24,31,159,14,153,14,160,117,213, - 24,45,224,20,27,151,78,145,78,160,52,212,20,40,248,240, - 21,0,22,32,241,38,0,12,19,216,18,25,152,52,160,23, - 168,37,208,18,47,211,12,47,224,12,17,143,76,137,76,156, - 44,168,23,176,36,184,7,192,21,208,40,71,208,25,72,212, - 12,73,228,18,22,151,41,145,41,152,71,160,87,168,82,168, - 97,160,91,211,18,49,136,7,216,11,18,136,63,216,12,17, - 143,76,137,76,244,0,2,25,40,224,28,32,161,20,160,50, - 160,20,154,74,243,5,2,25,40,245,0,2,13,40,240,8, - 0,13,18,143,76,137,76,244,0,2,25,67,1,228,35,38, - 160,116,169,68,168,98,168,68,161,122,176,55,185,52,184,82, - 184,52,177,61,212,35,65,243,5,2,25,67,1,245,0,2, - 13,67,1,248,244,95,1,0,16,23,242,0,5,9,19,217, - 15,21,216,16,21,216,15,22,208,15,34,217,16,23,152,3, - 148,12,220,12,18,251,240,11,5,9,19,251,244,56,0,20, - 27,242,0,6,13,25,240,2,5,17,25,224,23,28,215,23, - 39,209,23,39,212,23,41,216,24,31,159,14,153,14,160,116, - 212,24,44,249,220,23,30,242,0,1,17,25,217,20,24,240, - 3,1,17,25,253,240,11,6,13,25,252,115,123,0,0,0, - 132,65,10,73,32,1,193,15,62,71,59,0,194,13,66,16, - 73,32,1,196,30,65,6,72,30,2,197,36,66,23,73,32, - 1,199,59,9,72,27,3,200,4,13,72,22,3,200,17,5, - 73,32,1,200,22,5,72,27,3,200,27,3,73,32,1,200, - 30,9,73,29,5,200,40,33,73,10,4,201,9,1,73,29, - 5,201,10,9,73,22,7,201,19,2,73,29,5,201,21,1, - 73,22,7,201,22,3,73,29,5,201,25,3,73,32,1,201, - 28,1,73,29,5,201,29,3,73,32,1,114,173,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,7,0,0,0,243,28,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,124,0,124,1,171,2,0,0,0,0, - 0,0,1,0,121,1,41,2,122,112,101,120,101,99,108,40, - 102,105,108,101,44,32,42,97,114,103,115,41,10,10,32,32, - 32,32,69,120,101,99,117,116,101,32,116,104,101,32,101,120, - 101,99,117,116,97,98,108,101,32,102,105,108,101,32,119,105, - 116,104,32,97,114,103,117,109,101,110,116,32,108,105,115,116, - 32,97,114,103,115,44,32,114,101,112,108,97,99,105,110,103, - 32,116,104,101,10,32,32,32,32,99,117,114,114,101,110,116, - 32,112,114,111,99,101,115,115,46,32,78,41,1,218,5,101, - 120,101,99,118,169,2,218,4,102,105,108,101,218,4,97,114, - 103,115,115,2,0,0,0,32,32,114,25,0,0,0,218,5, - 101,120,101,99,108,114,204,0,0,0,60,2,0,0,115,14, - 0,0,0,128,0,244,10,0,5,10,136,36,144,4,213,4, - 21,114,27,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,6,0,0,0,7,0,0,0,243,46,0,0,0, - 151,0,124,1,100,1,25,0,0,0,125,2,116,1,0,0, - 0,0,0,0,0,0,124,0,124,1,100,2,100,1,26,0, - 124,2,171,3,0,0,0,0,0,0,1,0,121,2,41,3, - 122,138,101,120,101,99,108,101,40,102,105,108,101,44,32,42, - 97,114,103,115,44,32,101,110,118,41,10,10,32,32,32,32, - 69,120,101,99,117,116,101,32,116,104,101,32,101,120,101,99, - 117,116,97,98,108,101,32,102,105,108,101,32,119,105,116,104, - 32,97,114,103,117,109,101,110,116,32,108,105,115,116,32,97, - 114,103,115,32,97,110,100,10,32,32,32,32,101,110,118,105, - 114,111,110,109,101,110,116,32,101,110,118,44,32,114,101,112, - 108,97,99,105,110,103,32,116,104,101,32,99,117,114,114,101, - 110,116,32,112,114,111,99,101,115,115,46,32,114,182,0,0, - 0,78,41,1,114,88,0,0,0,169,3,114,202,0,0,0, - 114,203,0,0,0,218,3,101,110,118,115,3,0,0,0,32, - 32,32,114,25,0,0,0,218,6,101,120,101,99,108,101,114, - 208,0,0,0,67,2,0,0,115,31,0,0,0,128,0,240, - 10,0,11,15,136,114,137,40,128,67,220,4,10,136,52,144, - 20,144,99,144,114,144,25,152,67,213,4,32,114,27,0,0, - 0,99,1,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,7,0,0,0,243,28,0,0,0,151,0,116,1,0, - 0,0,0,0,0,0,0,124,0,124,1,171,2,0,0,0, - 0,0,0,1,0,121,1,41,2,122,149,101,120,101,99,108, - 112,40,102,105,108,101,44,32,42,97,114,103,115,41,10,10, - 32,32,32,32,69,120,101,99,117,116,101,32,116,104,101,32, - 101,120,101,99,117,116,97,98,108,101,32,102,105,108,101,32, - 40,119,104,105,99,104,32,105,115,32,115,101,97,114,99,104, - 101,100,32,102,111,114,32,97,108,111,110,103,32,36,80,65, - 84,72,41,10,32,32,32,32,119,105,116,104,32,97,114,103, - 117,109,101,110,116,32,108,105,115,116,32,97,114,103,115,44, - 32,114,101,112,108,97,99,105,110,103,32,116,104,101,32,99, - 117,114,114,101,110,116,32,112,114,111,99,101,115,115,46,32, - 78,41,1,218,6,101,120,101,99,118,112,114,201,0,0,0, - 115,2,0,0,0,32,32,114,25,0,0,0,218,6,101,120, - 101,99,108,112,114,211,0,0,0,75,2,0,0,115,14,0, - 0,0,128,0,244,10,0,5,11,136,52,144,20,213,4,22, - 114,27,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,6,0,0,0,7,0,0,0,243,46,0,0,0,151, - 0,124,1,100,1,25,0,0,0,125,2,116,1,0,0,0, - 0,0,0,0,0,124,0,124,1,100,2,100,1,26,0,124, - 2,171,3,0,0,0,0,0,0,1,0,121,2,41,3,122, - 179,101,120,101,99,108,112,101,40,102,105,108,101,44,32,42, - 97,114,103,115,44,32,101,110,118,41,10,10,32,32,32,32, - 69,120,101,99,117,116,101,32,116,104,101,32,101,120,101,99, - 117,116,97,98,108,101,32,102,105,108,101,32,40,119,104,105, - 99,104,32,105,115,32,115,101,97,114,99,104,101,100,32,102, - 111,114,32,97,108,111,110,103,32,36,80,65,84,72,41,10, - 32,32,32,32,119,105,116,104,32,97,114,103,117,109,101,110, - 116,32,108,105,115,116,32,97,114,103,115,32,97,110,100,32, - 101,110,118,105,114,111,110,109,101,110,116,32,101,110,118,44, - 32,114,101,112,108,97,99,105,110,103,32,116,104,101,32,99, - 117,114,114,101,110,116,10,32,32,32,32,112,114,111,99,101, - 115,115,46,32,114,182,0,0,0,78,41,1,218,7,101,120, - 101,99,118,112,101,114,206,0,0,0,115,3,0,0,0,32, - 32,32,114,25,0,0,0,218,7,101,120,101,99,108,112,101, - 114,214,0,0,0,82,2,0,0,115,31,0,0,0,128,0, - 240,12,0,11,15,136,114,137,40,128,67,220,4,11,136,68, - 144,36,144,115,152,2,144,41,152,83,213,4,33,114,27,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,28,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,124,0,124,1,171,2,0,0, - 0,0,0,0,1,0,121,1,41,2,122,192,101,120,101,99, - 118,112,40,102,105,108,101,44,32,97,114,103,115,41,10,10, - 32,32,32,32,69,120,101,99,117,116,101,32,116,104,101,32, - 101,120,101,99,117,116,97,98,108,101,32,102,105,108,101,32, - 40,119,104,105,99,104,32,105,115,32,115,101,97,114,99,104, - 101,100,32,102,111,114,32,97,108,111,110,103,32,36,80,65, - 84,72,41,10,32,32,32,32,119,105,116,104,32,97,114,103, - 117,109,101,110,116,32,108,105,115,116,32,97,114,103,115,44, - 32,114,101,112,108,97,99,105,110,103,32,116,104,101,32,99, - 117,114,114,101,110,116,32,112,114,111,99,101,115,115,46,10, - 32,32,32,32,97,114,103,115,32,109,97,121,32,98,101,32, - 97,32,108,105,115,116,32,111,114,32,116,117,112,108,101,32, - 111,102,32,115,116,114,105,110,103,115,46,32,78,169,1,218, - 8,95,101,120,101,99,118,112,101,114,201,0,0,0,115,2, - 0,0,0,32,32,114,25,0,0,0,114,210,0,0,0,114, - 210,0,0,0,91,2,0,0,115,14,0,0,0,128,0,244, - 12,0,5,13,136,84,144,52,213,4,24,114,27,0,0,0, - 99,3,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,3,0,0,0,243,30,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,124,0,124,1,124,2,171,3,0,0, - 0,0,0,0,1,0,121,1,41,2,122,222,101,120,101,99, - 118,112,101,40,102,105,108,101,44,32,97,114,103,115,44,32, - 101,110,118,41,10,10,32,32,32,32,69,120,101,99,117,116, - 101,32,116,104,101,32,101,120,101,99,117,116,97,98,108,101, - 32,102,105,108,101,32,40,119,104,105,99,104,32,105,115,32, - 115,101,97,114,99,104,101,100,32,102,111,114,32,97,108,111, - 110,103,32,36,80,65,84,72,41,10,32,32,32,32,119,105, - 116,104,32,97,114,103,117,109,101,110,116,32,108,105,115,116, - 32,97,114,103,115,32,97,110,100,32,101,110,118,105,114,111, - 110,109,101,110,116,32,101,110,118,44,32,114,101,112,108,97, - 99,105,110,103,32,116,104,101,10,32,32,32,32,99,117,114, - 114,101,110,116,32,112,114,111,99,101,115,115,46,10,32,32, - 32,32,97,114,103,115,32,109,97,121,32,98,101,32,97,32, - 108,105,115,116,32,111,114,32,116,117,112,108,101,32,111,102, - 32,115,116,114,105,110,103,115,46,32,78,114,216,0,0,0, - 114,206,0,0,0,115,3,0,0,0,32,32,32,114,25,0, - 0,0,114,213,0,0,0,114,213,0,0,0,99,2,0,0, - 115,16,0,0,0,128,0,244,14,0,5,13,136,84,144,52, - 152,19,213,4,29,114,27,0,0,0,41,6,114,204,0,0, - 0,114,208,0,0,0,114,211,0,0,0,114,214,0,0,0, - 114,210,0,0,0,114,213,0,0,0,99,3,0,0,0,0, - 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,243, - 158,1,0,0,151,0,124,2,129,11,116,0,0,0,0,0, - 0,0,0,0,125,3,124,1,124,2,102,2,125,4,110,15, - 116,2,0,0,0,0,0,0,0,0,125,3,124,1,102,1, - 125,4,116,4,0,0,0,0,0,0,0,0,125,2,116,7, - 0,0,0,0,0,0,0,0,106,8,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,114,10,2,0,124,3,124,0,103,1, - 124,4,162,1,173,6,142,0,1,0,121,0,100,0,125,5, - 116,11,0,0,0,0,0,0,0,0,124,2,171,1,0,0, - 0,0,0,0,125,6,116,12,0,0,0,0,0,0,0,0, - 100,1,107,55,0,0,114,27,116,15,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,0,116,17, - 0,0,0,0,0,0,0,0,116,14,0,0,0,0,0,0, - 0,0,124,6,171,2,0,0,0,0,0,0,125,6,124,6, - 68,0,93,34,0,0,125,7,116,7,0,0,0,0,0,0, - 0,0,106,18,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,7,124,0,171,2,0,0,0,0, - 0,0,125,8,9,0,2,0,124,3,124,8,103,1,124,4, - 162,1,173,6,142,0,1,0,140,36,4,0,124,5,129,2, - 124,5,130,1,127,10,130,1,35,0,116,20,0,0,0,0, - 0,0,0,0,116,22,0,0,0,0,0,0,0,0,102,2, - 36,0,114,12,125,9,124,9,125,10,89,0,100,0,125,9, - 126,9,140,65,100,0,125,9,126,9,119,1,116,24,0,0, - 0,0,0,0,0,0,36,0,114,16,125,9,124,9,125,10, - 124,5,128,2,124,9,125,5,89,0,100,0,125,9,126,9, - 140,88,100,0,125,9,126,9,119,1,119,0,120,3,89,0, - 119,1,41,2,78,114,42,0,0,0,41,13,114,88,0,0, - 0,114,200,0,0,0,218,7,101,110,118,105,114,111,110,114, - 12,0,0,0,114,160,0,0,0,114,19,0,0,0,114,11, - 0,0,0,114,17,0,0,0,218,3,109,97,112,114,136,0, - 0,0,218,17,70,105,108,101,78,111,116,70,111,117,110,100, - 69,114,114,111,114,218,18,78,111,116,65,68,105,114,101,99, - 116,111,114,121,69,114,114,111,114,114,117,0,0,0,41,11, - 114,202,0,0,0,114,203,0,0,0,114,207,0,0,0,218, - 9,101,120,101,99,95,102,117,110,99,218,7,97,114,103,114, - 101,115,116,218,9,115,97,118,101,100,95,101,120,99,218,9, - 112,97,116,104,95,108,105,115,116,114,33,0,0,0,218,8, - 102,117,108,108,110,97,109,101,218,1,101,218,8,108,97,115, - 116,95,101,120,99,115,11,0,0,0,32,32,32,32,32,32, - 32,32,32,32,32,114,25,0,0,0,114,217,0,0,0,114, - 217,0,0,0,110,2,0,0,115,226,0,0,0,128,0,216, - 7,10,128,127,220,20,26,136,9,216,19,23,152,19,144,43, - 137,7,228,20,25,136,9,216,19,23,144,39,136,7,220,14, - 21,136,3,228,7,11,135,124,129,124,144,68,212,7,25,217, - 8,17,144,36,208,8,33,152,23,211,8,33,216,8,14,216, - 16,20,128,73,220,16,29,152,99,211,16,34,128,73,220,7, - 11,136,116,130,124,220,15,23,152,4,139,126,136,4,220,20, - 23,156,8,160,41,211,20,44,136,9,219,15,24,136,3,220, - 19,23,151,57,145,57,152,83,160,36,211,19,39,136,8,240, - 2,7,9,30,217,12,21,144,104,208,12,41,160,23,212,12, - 41,240,7,0,16,25,240,20,0,8,17,208,7,28,216,14, - 23,136,15,216,10,18,128,78,248,244,17,0,17,34,212,35, - 53,208,15,54,242,0,1,9,25,216,23,24,141,72,251,220, - 15,22,242,0,3,9,30,216,23,24,136,72,216,15,24,208, - 15,32,216,28,29,144,9,255,248,240,7,3,9,30,250,115, - 36,0,0,0,194,9,9,66,26,2,194,26,15,67,12,5, - 194,41,2,66,48,5,194,48,12,67,12,5,194,60,6,67, - 7,5,195,7,5,67,12,5,99,1,0,0,0,0,0,0, - 0,0,0,0,0,6,0,0,0,3,0,0,0,243,170,1, - 0,0,151,0,100,1,100,2,108,0,125,1,124,0,128,6, - 116,2,0,0,0,0,0,0,0,0,125,0,124,1,106,5, + 0,0,53,0,0,0,0,0,0,0,117,2,0,0,112,120, + 85,7,91,16,0,0,0,0,0,0,0,0,58,88,0,0, + 97,11,0,0,91,19,0,0,0,0,0,0,0,0,85,8, + 53,1,0,0,0,0,0,0,32,0,85,5,40,0,0,0, + 0,0,0,0,97,2,0,0,77,48,0,0,103,3,103,3, + 8,0,78,70,33,0,85,5,40,0,0,0,0,0,0,0, + 97,49,0,0,85,5,82,15,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,117,2,0,0,112,120,85,7,91,16,0,0,0,0, + 0,0,0,0,58,88,0,0,97,11,0,0,91,19,0,0, + 0,0,0,0,0,0,85,8,53,1,0,0,0,0,0,0, + 32,0,85,5,40,0,0,0,0,0,0,0,97,2,0,0, + 77,48,0,0,102,0,102,0,61,3,31,0,102,1,55,3, + 102,1,41,4,97,96,4,0,0,68,105,114,101,99,116,111, + 114,121,32,116,114,101,101,32,103,101,110,101,114,97,116,111, + 114,46,10,10,84,104,105,115,32,98,101,104,97,118,101,115, + 32,101,120,97,99,116,108,121,32,108,105,107,101,32,119,97, + 108,107,40,41,44,32,101,120,99,101,112,116,32,116,104,97, + 116,32,105,116,32,121,105,101,108,100,115,32,97,32,52,45, + 116,117,112,108,101,10,10,32,32,32,32,100,105,114,112,97, + 116,104,44,32,100,105,114,110,97,109,101,115,44,32,102,105, + 108,101,110,97,109,101,115,44,32,100,105,114,102,100,10,10, + 96,100,105,114,112,97,116,104,96,44,32,96,100,105,114,110, + 97,109,101,115,96,32,97,110,100,32,96,102,105,108,101,110, + 97,109,101,115,96,32,97,114,101,32,105,100,101,110,116,105, + 99,97,108,32,116,111,32,119,97,108,107,40,41,32,111,117, + 116,112,117,116,44,10,97,110,100,32,96,100,105,114,102,100, + 96,32,105,115,32,97,32,102,105,108,101,32,100,101,115,99, + 114,105,112,116,111,114,32,114,101,102,101,114,114,105,110,103, + 32,116,111,32,116,104,101,32,100,105,114,101,99,116,111,114, + 121,32,96,100,105,114,112,97,116,104,96,46,10,10,84,104, + 101,32,97,100,118,97,110,116,97,103,101,32,111,102,32,102, + 119,97,108,107,40,41,32,111,118,101,114,32,119,97,108,107, + 40,41,32,105,115,32,116,104,97,116,32,105,116,39,115,32, + 115,97,102,101,32,97,103,97,105,110,115,116,32,115,121,109, + 108,105,110,107,10,114,97,99,101,115,32,40,119,104,101,110, + 32,102,111,108,108,111,119,95,115,121,109,108,105,110,107,115, + 32,105,115,32,70,97,108,115,101,41,46,10,10,73,102,32, + 100,105,114,95,102,100,32,105,115,32,110,111,116,32,78,111, + 110,101,44,32,105,116,32,115,104,111,117,108,100,32,98,101, + 32,97,32,102,105,108,101,32,100,101,115,99,114,105,112,116, + 111,114,32,111,112,101,110,32,116,111,32,97,32,100,105,114, + 101,99,116,111,114,121,44,10,32,32,97,110,100,32,116,111, + 112,32,115,104,111,117,108,100,32,98,101,32,114,101,108,97, + 116,105,118,101,59,32,116,111,112,32,119,105,108,108,32,116, + 104,101,110,32,98,101,32,114,101,108,97,116,105,118,101,32, + 116,111,32,116,104,97,116,32,100,105,114,101,99,116,111,114, + 121,46,10,32,32,40,100,105,114,95,102,100,32,105,115,32, + 97,108,119,97,121,115,32,115,117,112,112,111,114,116,101,100, + 32,102,111,114,32,102,119,97,108,107,46,41,10,10,67,97, + 117,116,105,111,110,58,10,83,105,110,99,101,32,102,119,97, + 108,107,40,41,32,121,105,101,108,100,115,32,102,105,108,101, + 32,100,101,115,99,114,105,112,116,111,114,115,44,32,116,104, + 111,115,101,32,97,114,101,32,111,110,108,121,32,118,97,108, + 105,100,32,117,110,116,105,108,32,116,104,101,10,110,101,120, + 116,32,105,116,101,114,97,116,105,111,110,32,115,116,101,112, + 44,32,115,111,32,121,111,117,32,115,104,111,117,108,100,32, + 100,117,112,40,41,32,116,104,101,109,32,105,102,32,121,111, + 117,32,119,97,110,116,32,116,111,32,107,101,101,112,32,116, + 104,101,109,10,102,111,114,32,97,32,108,111,110,103,101,114, + 32,112,101,114,105,111,100,46,10,10,69,120,97,109,112,108, + 101,58,10,10,105,109,112,111,114,116,32,111,115,10,102,111, + 114,32,114,111,111,116,44,32,100,105,114,115,44,32,102,105, + 108,101,115,44,32,114,111,111,116,102,100,32,105,110,32,111, + 115,46,102,119,97,108,107,40,39,112,121,116,104,111,110,47, + 76,105,98,47,120,109,108,39,41,58,10,32,32,32,32,112, + 114,105,110,116,40,114,111,111,116,44,32,34,99,111,110,115, + 117,109,101,115,34,44,32,101,110,100,61,34,34,41,10,32, + 32,32,32,112,114,105,110,116,40,115,117,109,40,111,115,46, + 115,116,97,116,40,110,97,109,101,44,32,100,105,114,95,102, + 100,61,114,111,111,116,102,100,41,46,115,116,95,115,105,122, + 101,32,102,111,114,32,110,97,109,101,32,105,110,32,102,105, + 108,101,115,41,44,10,32,32,32,32,32,32,32,32,32,32, + 101,110,100,61,34,34,41,10,32,32,32,32,112,114,105,110, + 116,40,34,98,121,116,101,115,32,105,110,34,44,32,108,101, + 110,40,102,105,108,101,115,41,44,32,34,110,111,110,45,100, + 105,114,101,99,116,111,114,121,32,102,105,108,101,115,34,41, + 10,32,32,32,32,105,102,32,39,95,95,112,121,99,97,99, + 104,101,95,95,39,32,105,110,32,100,105,114,115,58,10,32, + 32,32,32,32,32,32,32,100,105,114,115,46,114,101,109,111, + 118,101,40,39,95,95,112,121,99,97,99,104,101,95,95,39, + 41,32,32,35,32,100,111,110,39,116,32,118,105,115,105,116, + 32,95,95,112,121,99,97,99,104,101,95,95,32,100,105,114, + 101,99,116,111,114,105,101,115,10,122,8,111,115,46,102,119, + 97,108,107,84,78,41,10,114,133,0,0,0,114,134,0,0, + 0,114,135,0,0,0,218,11,95,102,119,97,108,107,95,119, + 97,108,107,114,116,0,0,0,114,117,0,0,0,218,6,95, + 102,119,97,108,107,114,138,0,0,0,218,12,95,102,119,97, + 108,107,95,99,108,111,115,101,218,5,99,108,111,115,101,41, + 9,114,148,0,0,0,114,149,0,0,0,114,150,0,0,0, + 114,132,0,0,0,114,165,0,0,0,114,152,0,0,0,218, + 7,105,115,98,121,116,101,115,218,6,97,99,116,105,111,110, + 218,5,118,97,108,117,101,115,9,0,0,0,32,32,32,32, + 32,32,32,32,32,114,25,0,0,0,218,5,102,119,97,108, + 107,114,174,0,0,0,191,1,0,0,115,189,0,0,0,233, + 0,128,0,244,66,1,0,9,12,143,9,138,9,144,42,152, + 99,168,71,192,102,212,8,77,220,14,20,144,83,139,107,136, + 3,220,18,29,160,4,160,102,176,51,184,4,208,31,61,208, + 17,62,208,16,63,136,5,220,18,28,152,83,164,37,211,18, + 40,136,7,240,2,8,9,33,222,18,23,220,27,33,160,37, + 176,39,192,79,211,27,84,215,16,84,208,16,84,247,3,0, + 19,24,144,37,246,8,0,19,24,216,32,37,167,9,161,9, + 163,11,145,13,144,6,216,19,25,156,92,211,19,41,220,20, + 25,152,37,148,76,247,7,0,19,24,146,37,241,7,0,17, + 85,1,248,246,6,0,19,24,216,32,37,167,9,161,9,163, + 11,145,13,144,6,216,19,25,156,92,211,19,41,220,20,25, + 152,37,148,76,247,7,0,19,24,146,37,252,115,60,0,0, + 0,130,65,2,67,34,1,193,5,23,66,37,0,193,28,1, + 66,35,4,193,29,11,66,37,0,193,42,53,67,34,1,194, + 33,2,67,34,1,194,35,1,66,37,0,194,37,54,67,31, + 3,195,29,2,67,31,3,195,31,3,67,34,1,99,5,0, + 0,0,0,0,0,0,0,0,0,0,10,0,0,0,35,0, + 0,0,243,86,5,0,0,94,18,94,19,35,0,32,0,149, + 0,85,0,82,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,117, + 2,0,0,112,86,85,5,91,2,0,0,0,0,0,0,0, + 0,58,88,0,0,97,12,0,0,91,5,0,0,0,0,0, + 0,0,0,85,6,53,1,0,0,0,0,0,0,32,0,103, + 0,85,5,91,6,0,0,0,0,0,0,0,0,58,88,0, + 0,97,5,0,0,85,6,118,0,149,5,32,0,103,0,85, + 5,91,8,0,0,0,0,0,0,0,0,58,88,0,0,100, + 2,0,0,23,0,101,1,85,6,117,5,0,0,112,120,109, + 19,112,154,30,0,85,4,40,0,0,0,0,0,0,0,100, + 30,0,0,85,10,99,12,0,0,91,11,0,0,0,0,0, + 0,0,0,85,9,83,1,85,8,83,2,57,3,110,11,79, + 15,85,10,82,11,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,83,1,83,3,57,1,110,11,91, + 13,0,0,0,0,0,0,0,0,85,9,91,14,0,0,0, + 0,0,0,0,0,91,16,0,0,0,0,0,0,0,0,45, + 7,0,0,85,8,83,4,57,3,109,18,85,0,82,21,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,53,0,1,0,124,1, - 106,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,3,116,8,0,0,0,0,0,0,0,0, - 171,2,0,0,0,0,0,0,1,0,9,0,124,0,106,11, + 0,91,2,0,0,0,0,0,0,0,0,84,18,52,2,53, + 1,0,0,0,0,0,0,32,0,85,4,40,0,0,0,0, + 0,0,0,100,83,0,0,85,7,40,0,0,0,0,0,0, + 0,97,38,0,0,91,22,0,0,0,0,0,0,0,0,82, + 24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,87,11,82,26,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,100,1,0,0,103, + 0,91,28,0,0,0,0,0,0,0,0,82,30,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,87,11,91,11,0,0,0,0,0,0,0,0,84,18,53, + 1,0,0,0,0,0,0,53,2,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,100,1,0,0,103,0,91,33,0, + 0,0,0,0,0,0,0,84,18,53,1,0,0,0,0,0, + 0,110,13,47,0,110,14,47,0,110,15,85,2,40,0,0, + 0,0,0,0,0,100,7,0,0,85,4,40,0,0,0,0, + 0,0,0,97,2,0,0,83,0,79,1,47,0,110,16,85, + 13,19,0,72,113,0,0,110,10,85,10,82,34,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110, + 17,85,1,40,0,0,0,0,0,0,0,97,11,0,0,91, + 37,0,0,0,0,0,0,0,0,85,17,53,1,0,0,0, + 0,0,0,110,17,30,0,85,10,82,39,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,41,0, + 0,85,14,82,21,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,17,53,1,0,0,0,0,0, + 0,32,0,85,16,98,19,0,0,85,16,82,21,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 10,53,1,0,0,0,0,0,0,32,0,77,94,0,0,77, + 96,0,0,85,15,82,21,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,17,53,1,0,0,0, + 0,0,0,32,0,77,115,0,0,11,0,32,0,85,2,40, + 0,0,0,0,0,0,0,97,8,0,0,84,19,88,239,84, + 18,52,4,118,0,149,5,32,0,79,26,85,0,82,21,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,4,171,1,0,0,0,0,0,0,125,2,116,14, - 0,0,0,0,0,0,0,0,114,50,9,0,124,0,100,5, - 25,0,0,0,125,3,124,2,129,11,116,17,0,0,0,0, - 0,0,0,0,100,6,171,1,0,0,0,0,0,0,130,1, - 124,3,125,2,124,2,129,27,116,21,0,0,0,0,0,0, - 0,0,124,2,116,22,0,0,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,114,11,116,25,0,0,0,0,0,0, - 0,0,124,2,171,1,0,0,0,0,0,0,125,2,100,2, - 100,2,100,2,171,2,0,0,0,0,0,0,1,0,127,2, - 128,6,116,26,0,0,0,0,0,0,0,0,125,2,124,2, - 106,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,116,30,0,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,83,0,35,0,116,12,0,0,0,0, - 0,0,0,0,36,0,114,5,1,0,100,2,125,2,89,0, - 140,106,119,0,120,3,89,0,119,1,35,0,116,18,0,0, - 0,0,0,0,0,0,116,12,0,0,0,0,0,0,0,0, - 102,2,36,0,114,3,1,0,89,0,140,100,119,0,120,3, - 89,0,119,1,35,0,49,0,115,1,119,2,1,0,89,0, - 1,0,1,0,140,76,120,3,89,0,119,1,41,7,122,243, + 0,91,6,0,0,0,0,0,0,0,0,84,19,88,239,84, + 18,52,4,52,2,53,1,0,0,0,0,0,0,32,0,91, + 28,0,0,0,0,0,0,0,0,82,42,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,84, + 19,84,19,83,0,83,5,4,0,53,2,0,0,0,0,0, + 0,109,19,85,16,99,35,0,0,85,0,82,45,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 18,85,19,52,2,83,6,26,0,106,8,85,14,83,0,83, + 0,83,7,50,3,5,0,0,0,19,0,53,0,0,0,0, + 0,0,0,53,1,0,0,0,0,0,0,32,0,103,0,85, + 0,82,45,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,18,85,19,52,2,83,8,26,0,106, + 8,91,47,0,0,0,0,0,0,0,0,85,14,83,0,83, + 0,83,7,50,3,5,0,0,0,85,16,83,0,83,0,83, + 7,50,3,5,0,0,0,53,2,0,0,0,0,0,0,19, + 0,53,0,0,0,0,0,0,0,53,1,0,0,0,0,0, + 0,32,0,103,0,33,0,91,18,0,0,0,0,0,0,0, + 0,7,0,97,29,0,0,110,12,85,7,40,0,0,0,0, + 0,0,0,97,1,0,0,101,0,85,3,98,8,0,0,85, + 3,34,0,85,12,53,1,0,0,0,0,0,0,32,0,31, + 0,83,0,110,12,65,12,103,0,83,0,110,12,65,12,102, + 1,102,0,61,3,31,0,102,1,33,0,91,18,0,0,0, + 0,0,0,0,0,7,0,97,67,0,0,32,0,30,0,85, + 10,82,41,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,97,21,0,0,85,15,82,21,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 17,53,1,0,0,0,0,0,0,32,0,31,0,71,1,77, + 112,0,0,31,0,71,1,77,116,0,0,33,0,91,18,0, + 0,0,0,0,0,0,0,7,0,97,6,0,0,32,0,31, + 0,31,0,71,1,77,131,0,0,102,0,61,3,31,0,102, + 1,102,0,61,3,31,0,102,1,55,3,102,1,41,9,78, + 70,114,164,0,0,0,114,131,0,0,0,41,1,114,165,0, + 0,0,114,2,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,7,0,0,0,51,0,0,0,243,68,0,0, + 0,62,2,35,0,32,0,149,0,85,0,19,0,72,21,0, + 0,110,1,91,0,0,0,0,0,0,0,0,0,83,0,84, + 2,84,3,85,1,45,0,0,0,85,1,83,1,52,5,52, + 2,118,0,149,5,32,0,77,23,0,0,11,0,32,0,103, + 1,55,3,102,1,169,2,70,78,169,1,114,167,0,0,0, + 41,4,218,2,46,48,114,11,0,0,0,218,5,116,111,112, + 102,100,218,7,116,111,112,112,97,116,104,115,4,0,0,0, + 32,32,128,128,114,25,0,0,0,218,9,60,103,101,110,101, + 120,112,114,62,218,25,95,102,119,97,108,107,46,60,108,111, + 99,97,108,115,62,46,60,103,101,110,101,120,112,114,62,53, + 2,0,0,115,44,0,0,0,248,233,0,128,0,240,0,2, + 25,40,226,28,38,144,68,244,3,0,18,29,152,117,160,101, + 168,87,176,116,169,94,184,84,192,52,208,30,72,213,16,73, + 218,28,38,249,115,4,0,0,0,131,29,32,1,233,255,255, + 255,255,99,1,0,0,0,0,0,0,0,0,0,0,0,7, + 0,0,0,51,0,0,0,243,70,0,0,0,62,2,35,0, + 32,0,149,0,85,0,19,0,72,22,0,0,117,2,0,0, + 112,18,91,0,0,0,0,0,0,0,0,0,83,0,84,3, + 84,4,85,1,45,0,0,0,88,18,52,5,52,2,118,0, + 149,5,32,0,77,24,0,0,11,0,32,0,103,1,55,3, + 102,1,114,177,0,0,0,114,178,0,0,0,41,5,114,179, + 0,0,0,114,11,0,0,0,114,159,0,0,0,114,180,0, + 0,0,114,181,0,0,0,115,5,0,0,0,32,32,32,128, + 128,114,25,0,0,0,114,182,0,0,0,114,183,0,0,0, + 57,2,0,0,115,45,0,0,0,248,233,0,128,0,240,0, + 2,25,67,1,226,35,65,145,75,144,68,244,3,0,18,29, + 152,117,160,101,168,87,176,116,169,94,184,84,208,30,73,213, + 16,74,218,35,65,249,115,4,0,0,0,131,30,33,1,41, + 24,114,138,0,0,0,114,169,0,0,0,114,170,0,0,0, + 218,12,95,102,119,97,108,107,95,121,105,101,108,100,114,167, + 0,0,0,114,57,0,0,0,114,71,0,0,0,218,8,79, + 95,82,68,79,78,76,89,218,10,79,95,78,79,78,66,76, + 79,67,75,114,118,0,0,0,114,145,0,0,0,218,2,115, + 116,218,7,83,95,73,83,68,73,82,218,7,115,116,95,109, + 111,100,101,114,12,0,0,0,218,8,115,97,109,101,115,116, + 97,116,114,89,0,0,0,114,11,0,0,0,114,17,0,0, + 0,114,143,0,0,0,114,146,0,0,0,114,137,0,0,0, + 218,6,101,120,116,101,110,100,218,3,122,105,112,41,20,114, + 152,0,0,0,114,171,0,0,0,114,149,0,0,0,114,150, + 0,0,0,114,132,0,0,0,114,172,0,0,0,114,173,0, + 0,0,218,6,105,115,114,111,111,116,218,5,100,105,114,102, + 100,218,7,116,111,112,110,97,109,101,114,159,0,0,0,218, + 7,111,114,105,103,95,115,116,218,3,101,114,114,114,156,0, + 0,0,114,153,0,0,0,114,154,0,0,0,218,7,101,110, + 116,114,105,101,115,114,11,0,0,0,114,180,0,0,0,114, + 181,0,0,0,115,20,0,0,0,32,32,32,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32,32,64,64,114,25,0, + 0,0,114,168,0,0,0,114,168,0,0,0,243,1,0,0, + 115,98,2,0,0,249,233,0,128,0,240,10,0,25,30,159, + 9,153,9,155,11,137,13,136,6,216,11,17,148,92,211,11, + 33,220,12,17,144,37,140,76,216,12,18,216,13,19,148,124, + 211,13,35,216,18,23,138,75,216,12,18,216,15,21,156,27, + 211,15,36,208,8,36,208,15,36,216,49,54,209,8,46,136, + 6,144,119,160,7,240,2,14,9,19,222,19,34,240,6,0, + 20,25,145,61,220,30,34,160,55,184,69,200,37,209,30,80, + 145,71,224,30,35,159,106,153,106,184,21,152,106,208,30,63, + 144,71,220,20,24,152,23,164,40,172,90,209,34,55,192,5, + 209,20,70,136,69,240,14,0,9,14,143,12,137,12,148,108, + 160,69,208,21,42,212,8,43,222,15,30,222,15,21,156,98, + 159,106,154,106,168,23,175,31,169,31,215,30,57,209,30,57, + 216,16,22,220,19,23,151,61,146,61,160,23,172,36,168,117, + 171,43,215,19,54,209,19,54,216,16,22,228,21,28,152,85, + 147,94,136,10,216,15,17,136,4,216,18,20,136,7,222,26, + 33,166,95,145,36,184,34,136,7,219,21,31,136,69,216,19, + 24,151,58,145,58,136,68,222,15,22,220,23,31,160,4,147, + 126,144,4,240,2,13,13,25,216,19,24,151,60,145,60,151, + 62,145,62,216,20,24,151,75,145,75,160,4,212,20,37,216, + 23,30,209,23,42,216,24,31,159,14,153,14,160,117,214,24, + 45,241,3,0,24,43,240,6,0,21,28,151,78,145,78,160, + 52,214,20,40,241,21,0,22,32,246,38,0,12,19,216,18, + 25,152,52,168,37,208,18,47,211,12,47,224,12,17,143,76, + 137,76,156,44,168,23,176,36,192,21,208,40,71,208,25,72, + 212,12,73,228,18,22,151,41,146,41,152,71,160,87,168,82, + 168,97,160,91,211,18,49,136,7,216,11,18,137,63,216,12, + 17,143,76,137,76,245,0,2,25,40,224,28,32,161,20,160, + 50,160,20,154,74,243,5,2,25,40,245,0,2,13,40,240, + 8,0,13,18,143,76,137,76,245,0,2,25,67,1,228,35, + 38,160,116,169,68,168,98,168,68,161,122,176,55,185,52,184, + 82,184,52,177,61,212,35,65,243,5,2,25,67,1,245,0, + 2,13,67,1,248,244,95,1,0,16,23,243,0,5,9,19, + 222,15,21,216,16,21,216,15,22,209,15,34,217,16,23,152, + 3,148,12,220,12,18,251,240,11,5,9,19,251,244,56,0, + 20,27,243,0,6,13,25,240,2,5,17,25,224,23,28,215, + 23,39,209,23,39,215,23,41,209,23,41,216,24,31,159,14, + 153,14,160,116,215,24,44,208,24,44,243,3,0,24,42,248, + 228,23,30,243,0,1,17,25,220,20,24,240,3,1,17,25, + 250,240,11,6,13,25,252,115,128,0,0,0,132,65,10,74, + 41,1,193,15,59,72,47,0,194,10,66,53,74,41,1,197, + 0,58,73,25,2,197,58,4,74,41,1,197,62,17,73,25, + 2,198,15,66,32,74,41,1,200,47,10,73,22,3,200,57, + 19,73,17,3,201,12,5,74,41,1,201,17,5,73,22,3, + 201,22,3,74,41,1,201,25,10,74,38,5,201,36,38,74, + 18,4,202,10,8,74,41,1,202,18,10,74,34,7,202,28, + 1,74,38,5,202,29,4,74,41,1,202,33,1,74,34,7, + 202,34,4,74,38,5,202,38,3,74,41,1,114,174,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,7,0,0,0,243,26,0,0,0,149,0,91,1,0, + 0,0,0,0,0,0,0,88,1,53,2,0,0,0,0,0, + 0,32,0,103,1,41,2,122,104,101,120,101,99,108,40,102, + 105,108,101,44,32,42,97,114,103,115,41,10,10,69,120,101, + 99,117,116,101,32,116,104,101,32,101,120,101,99,117,116,97, + 98,108,101,32,102,105,108,101,32,119,105,116,104,32,97,114, + 103,117,109,101,110,116,32,108,105,115,116,32,97,114,103,115, + 44,32,114,101,112,108,97,99,105,110,103,32,116,104,101,10, + 99,117,114,114,101,110,116,32,112,114,111,99,101,115,115,46, + 32,78,41,1,218,5,101,120,101,99,118,169,2,218,4,102, + 105,108,101,218,4,97,114,103,115,115,2,0,0,0,32,32, + 114,25,0,0,0,218,5,101,120,101,99,108,114,206,0,0, + 0,63,2,0,0,115,12,0,0,0,128,0,244,10,0,5, + 10,136,36,213,4,21,114,27,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,6,0,0,0,7,0,0,0, + 243,44,0,0,0,149,0,85,1,83,1,5,0,0,0,110, + 2,91,1,0,0,0,0,0,0,0,0,88,1,83,2,83, + 1,4,0,85,2,53,3,0,0,0,0,0,0,32,0,103, + 2,41,3,122,130,101,120,101,99,108,101,40,102,105,108,101, + 44,32,42,97,114,103,115,44,32,101,110,118,41,10,10,69, + 120,101,99,117,116,101,32,116,104,101,32,101,120,101,99,117, + 116,97,98,108,101,32,102,105,108,101,32,119,105,116,104,32, + 97,114,103,117,109,101,110,116,32,108,105,115,116,32,97,114, + 103,115,32,97,110,100,10,101,110,118,105,114,111,110,109,101, + 110,116,32,101,110,118,44,32,114,101,112,108,97,99,105,110, + 103,32,116,104,101,32,99,117,114,114,101,110,116,32,112,114, + 111,99,101,115,115,46,32,114,184,0,0,0,78,41,1,114, + 91,0,0,0,169,3,114,204,0,0,0,114,205,0,0,0, + 218,3,101,110,118,115,3,0,0,0,32,32,32,114,25,0, + 0,0,218,6,101,120,101,99,108,101,114,210,0,0,0,70, + 2,0,0,115,29,0,0,0,128,0,240,10,0,11,15,136, + 114,137,40,128,67,220,4,10,136,52,144,99,144,114,144,25, + 152,67,213,4,32,114,27,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,7,0,0,0,243, + 26,0,0,0,149,0,91,1,0,0,0,0,0,0,0,0, + 88,1,53,2,0,0,0,0,0,0,32,0,103,1,41,2, + 122,141,101,120,101,99,108,112,40,102,105,108,101,44,32,42, + 97,114,103,115,41,10,10,69,120,101,99,117,116,101,32,116, + 104,101,32,101,120,101,99,117,116,97,98,108,101,32,102,105, + 108,101,32,40,119,104,105,99,104,32,105,115,32,115,101,97, + 114,99,104,101,100,32,102,111,114,32,97,108,111,110,103,32, + 36,80,65,84,72,41,10,119,105,116,104,32,97,114,103,117, + 109,101,110,116,32,108,105,115,116,32,97,114,103,115,44,32, + 114,101,112,108,97,99,105,110,103,32,116,104,101,32,99,117, + 114,114,101,110,116,32,112,114,111,99,101,115,115,46,32,78, + 41,1,218,6,101,120,101,99,118,112,114,203,0,0,0,115, + 2,0,0,0,32,32,114,25,0,0,0,218,6,101,120,101, + 99,108,112,114,213,0,0,0,78,2,0,0,115,12,0,0, + 0,128,0,244,10,0,5,11,136,52,213,4,22,114,27,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,6, + 0,0,0,7,0,0,0,243,44,0,0,0,149,0,85,1, + 83,1,5,0,0,0,110,2,91,1,0,0,0,0,0,0, + 0,0,88,1,83,2,83,1,4,0,85,2,53,3,0,0, + 0,0,0,0,32,0,103,2,41,3,122,167,101,120,101,99, + 108,112,101,40,102,105,108,101,44,32,42,97,114,103,115,44, + 32,101,110,118,41,10,10,69,120,101,99,117,116,101,32,116, + 104,101,32,101,120,101,99,117,116,97,98,108,101,32,102,105, + 108,101,32,40,119,104,105,99,104,32,105,115,32,115,101,97, + 114,99,104,101,100,32,102,111,114,32,97,108,111,110,103,32, + 36,80,65,84,72,41,10,119,105,116,104,32,97,114,103,117, + 109,101,110,116,32,108,105,115,116,32,97,114,103,115,32,97, + 110,100,32,101,110,118,105,114,111,110,109,101,110,116,32,101, + 110,118,44,32,114,101,112,108,97,99,105,110,103,32,116,104, + 101,32,99,117,114,114,101,110,116,10,112,114,111,99,101,115, + 115,46,32,114,184,0,0,0,78,41,1,218,7,101,120,101, + 99,118,112,101,114,208,0,0,0,115,3,0,0,0,32,32, + 32,114,25,0,0,0,218,7,101,120,101,99,108,112,101,114, + 216,0,0,0,85,2,0,0,115,29,0,0,0,128,0,240, + 12,0,11,15,136,114,137,40,128,67,220,4,11,136,68,144, + 115,152,2,144,41,152,83,213,4,33,114,27,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,243,26,0,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,88,1,53,2,0,0,0,0,0,0,32, + 0,103,1,41,2,122,180,101,120,101,99,118,112,40,102,105, + 108,101,44,32,97,114,103,115,41,10,10,69,120,101,99,117, + 116,101,32,116,104,101,32,101,120,101,99,117,116,97,98,108, + 101,32,102,105,108,101,32,40,119,104,105,99,104,32,105,115, + 32,115,101,97,114,99,104,101,100,32,102,111,114,32,97,108, + 111,110,103,32,36,80,65,84,72,41,10,119,105,116,104,32, + 97,114,103,117,109,101,110,116,32,108,105,115,116,32,97,114, + 103,115,44,32,114,101,112,108,97,99,105,110,103,32,116,104, + 101,32,99,117,114,114,101,110,116,32,112,114,111,99,101,115, + 115,46,10,97,114,103,115,32,109,97,121,32,98,101,32,97, + 32,108,105,115,116,32,111,114,32,116,117,112,108,101,32,111, + 102,32,115,116,114,105,110,103,115,46,32,78,169,1,218,8, + 95,101,120,101,99,118,112,101,114,203,0,0,0,115,2,0, + 0,0,32,32,114,25,0,0,0,114,212,0,0,0,114,212, + 0,0,0,94,2,0,0,115,12,0,0,0,128,0,244,12, + 0,5,13,136,84,213,4,24,114,27,0,0,0,99,3,0, + 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, + 0,0,243,28,0,0,0,149,0,91,1,0,0,0,0,0, + 0,0,0,88,1,85,2,53,3,0,0,0,0,0,0,32, + 0,103,1,41,2,122,206,101,120,101,99,118,112,101,40,102, + 105,108,101,44,32,97,114,103,115,44,32,101,110,118,41,10, + 10,69,120,101,99,117,116,101,32,116,104,101,32,101,120,101, + 99,117,116,97,98,108,101,32,102,105,108,101,32,40,119,104, + 105,99,104,32,105,115,32,115,101,97,114,99,104,101,100,32, + 102,111,114,32,97,108,111,110,103,32,36,80,65,84,72,41, + 10,119,105,116,104,32,97,114,103,117,109,101,110,116,32,108, + 105,115,116,32,97,114,103,115,32,97,110,100,32,101,110,118, + 105,114,111,110,109,101,110,116,32,101,110,118,44,32,114,101, + 112,108,97,99,105,110,103,32,116,104,101,10,99,117,114,114, + 101,110,116,32,112,114,111,99,101,115,115,46,10,97,114,103, + 115,32,109,97,121,32,98,101,32,97,32,108,105,115,116,32, + 111,114,32,116,117,112,108,101,32,111,102,32,115,116,114,105, + 110,103,115,46,32,78,114,218,0,0,0,114,208,0,0,0, + 115,3,0,0,0,32,32,32,114,25,0,0,0,114,215,0, + 0,0,114,215,0,0,0,102,2,0,0,115,14,0,0,0, + 128,0,244,14,0,5,13,136,84,152,19,213,4,29,114,27, + 0,0,0,41,6,114,206,0,0,0,114,210,0,0,0,114, + 213,0,0,0,114,216,0,0,0,114,212,0,0,0,114,215, + 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,3,0,0,0,243,200,1,0,0,149,0,85, + 2,98,10,0,0,91,0,0,0,0,0,0,0,0,0,110, + 3,88,18,52,2,110,4,79,15,91,2,0,0,0,0,0, + 0,0,0,110,3,85,1,52,1,110,4,91,4,0,0,0, + 0,0,0,0,0,110,2,91,6,0,0,0,0,0,0,0, + 0,82,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,85,0,53,1,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,97,10,0,0,85,3,34, + 0,85,0,47,1,85,4,81,1,55,6,54,0,32,0,103, + 0,83,0,110,5,91,11,0,0,0,0,0,0,0,0,85, + 2,53,1,0,0,0,0,0,0,110,6,91,12,0,0,0, + 0,0,0,0,0,83,1,58,119,0,0,97,27,0,0,91, + 15,0,0,0,0,0,0,0,0,85,0,53,1,0,0,0, + 0,0,0,110,0,91,17,0,0,0,0,0,0,0,0,91, + 14,0,0,0,0,0,0,0,0,85,6,53,2,0,0,0, + 0,0,0,110,6,85,6,19,0,72,35,0,0,110,7,91, + 6,0,0,0,0,0,0,0,0,82,18,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,88, + 112,53,2,0,0,0,0,0,0,110,8,30,0,85,3,34, + 0,85,8,47,1,85,4,81,1,55,6,54,0,32,0,77, + 37,0,0,11,0,32,0,85,5,98,2,0,0,85,5,101, + 1,87,10,101,1,33,0,91,20,0,0,0,0,0,0,0, + 0,91,22,0,0,0,0,0,0,0,0,52,2,7,0,97, + 13,0,0,110,9,85,9,110,10,31,0,83,0,110,9,65, + 9,77,70,0,0,83,0,110,9,65,9,102,1,91,24,0, + 0,0,0,0,0,0,0,7,0,97,24,0,0,110,9,85, + 9,110,10,85,5,99,8,0,0,85,9,110,5,31,0,83, + 0,110,9,65,9,77,96,0,0,31,0,83,0,110,9,65, + 9,77,102,0,0,83,0,110,9,65,9,102,1,102,0,61, + 3,31,0,102,1,41,2,78,114,42,0,0,0,41,13,114, + 91,0,0,0,114,202,0,0,0,218,7,101,110,118,105,114, + 111,110,114,12,0,0,0,114,161,0,0,0,114,19,0,0, + 0,114,11,0,0,0,114,17,0,0,0,218,3,109,97,112, + 114,137,0,0,0,218,17,70,105,108,101,78,111,116,70,111, + 117,110,100,69,114,114,111,114,218,18,78,111,116,65,68,105, + 114,101,99,116,111,114,121,69,114,114,111,114,114,118,0,0, + 0,41,11,114,204,0,0,0,114,205,0,0,0,114,209,0, + 0,0,218,9,101,120,101,99,95,102,117,110,99,218,7,97, + 114,103,114,101,115,116,218,9,115,97,118,101,100,95,101,120, + 99,218,9,112,97,116,104,95,108,105,115,116,114,33,0,0, + 0,218,8,102,117,108,108,110,97,109,101,218,1,101,218,8, + 108,97,115,116,95,101,120,99,115,11,0,0,0,32,32,32, + 32,32,32,32,32,32,32,32,114,25,0,0,0,114,219,0, + 0,0,114,219,0,0,0,113,2,0,0,115,229,0,0,0, + 128,0,216,7,10,129,127,220,20,26,136,9,216,19,23,144, + 43,137,7,228,20,25,136,9,216,19,23,144,39,136,7,220, + 14,21,136,3,228,7,11,135,124,130,124,144,68,215,7,25, + 209,7,25,217,8,17,144,36,208,8,33,152,23,211,8,33, + 216,8,14,216,16,20,128,73,220,16,29,152,99,211,16,34, + 128,73,220,7,11,136,116,131,124,220,15,23,152,4,139,126, + 136,4,220,20,23,156,8,160,41,211,20,44,136,9,219,15, + 24,136,3,220,19,23,151,57,146,57,152,83,211,19,39,136, + 8,240,2,7,9,30,217,12,21,144,104,208,12,41,160,23, + 213,12,41,241,7,0,16,25,240,20,0,8,17,209,7,28, + 216,14,23,136,15,216,10,18,128,78,248,244,17,0,17,34, + 212,35,53,208,15,54,243,0,1,9,25,216,23,24,142,72, + 251,220,15,22,243,0,3,9,30,216,23,24,136,72,216,15, + 24,209,15,32,216,28,29,150,9,245,3,0,16,33,251,240, + 5,3,9,30,250,115,36,0,0,0,194,16,9,66,36,2, + 194,36,16,67,33,5,194,52,2,66,60,5,194,60,13,67, + 33,5,195,9,7,67,28,5,195,28,5,67,33,5,99,1, + 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,3, + 0,0,0,243,212,1,0,0,149,0,83,1,83,2,75,0, + 110,1,85,0,99,6,0,0,91,2,0,0,0,0,0,0, + 0,0,110,0,85,1,82,5,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,2,0,32,0,85,1,82,7,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,3,91,8, + 0,0,0,0,0,0,0,0,53,2,0,0,0,0,0,0, + 32,0,30,0,85,0,82,11,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,4,53,1,0,0, + 0,0,0,0,110,2,91,14,0,0,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,97,57,0,0,30,0,85,0, + 83,5,5,0,0,0,110,3,85,2,98,11,0,0,91,17, + 0,0,0,0,0,0,0,0,83,6,53,1,0,0,0,0, + 0,0,101,1,85,3,110,2,85,2,98,32,0,0,91,21, + 0,0,0,0,0,0,0,0,85,2,91,22,0,0,0,0, + 0,0,0,0,53,2,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,97,11,0,0,91,25,0,0,0,0,0,0, + 0,0,85,2,53,1,0,0,0,0,0,0,110,2,83,2, + 83,2,83,2,53,2,0,0,0,0,0,0,32,0,87,2, + 99,6,0,0,91,26,0,0,0,0,0,0,0,0,110,2, + 85,2,82,29,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,91,30,0,0,0,0,0,0,0,0, + 53,1,0,0,0,0,0,0,36,0,33,0,91,12,0,0, + 0,0,0,0,0,0,7,0,97,5,0,0,32,0,83,2, + 110,2,31,0,78,120,102,0,61,3,31,0,102,1,33,0, + 91,18,0,0,0,0,0,0,0,0,91,12,0,0,0,0, + 0,0,0,0,52,2,7,0,97,3,0,0,32,0,31,0, + 78,109,102,0,61,3,31,0,102,1,33,0,44,0,40,0, + 0,0,0,0,0,0,100,1,0,0,102,2,32,0,31,0, + 32,0,32,0,78,84,61,3,31,0,102,1,41,7,122,227, 82,101,116,117,114,110,115,32,116,104,101,32,115,101,113,117, 101,110,99,101,32,111,102,32,100,105,114,101,99,116,111,114, 105,101,115,32,116,104,97,116,32,119,105,108,108,32,98,101, 32,115,101,97,114,99,104,101,100,32,102,111,114,32,116,104, - 101,10,32,32,32,32,110,97,109,101,100,32,101,120,101,99, - 117,116,97,98,108,101,32,40,115,105,109,105,108,97,114,32, - 116,111,32,97,32,115,104,101,108,108,41,32,119,104,101,110, - 32,108,97,117,110,99,104,105,110,103,32,97,32,112,114,111, - 99,101,115,115,46,10,10,32,32,32,32,42,101,110,118,42, - 32,109,117,115,116,32,98,101,32,97,110,32,101,110,118,105, - 114,111,110,109,101,110,116,32,118,97,114,105,97,98,108,101, - 32,100,105,99,116,32,111,114,32,78,111,110,101,46,32,32, - 73,102,32,42,101,110,118,42,32,105,115,32,78,111,110,101, - 44,10,32,32,32,32,111,115,46,101,110,118,105,114,111,110, - 32,119,105,108,108,32,98,101,32,117,115,101,100,46,10,32, - 32,32,32,114,2,0,0,0,78,218,6,105,103,110,111,114, + 101,10,110,97,109,101,100,32,101,120,101,99,117,116,97,98, + 108,101,32,40,115,105,109,105,108,97,114,32,116,111,32,97, + 32,115,104,101,108,108,41,32,119,104,101,110,32,108,97,117, + 110,99,104,105,110,103,32,97,32,112,114,111,99,101,115,115, + 46,10,10,42,101,110,118,42,32,109,117,115,116,32,98,101, + 32,97,110,32,101,110,118,105,114,111,110,109,101,110,116,32, + 118,97,114,105,97,98,108,101,32,100,105,99,116,32,111,114, + 32,78,111,110,101,46,32,32,73,102,32,42,101,110,118,42, + 32,105,115,32,78,111,110,101,44,10,111,115,46,101,110,118, + 105,114,111,110,32,119,105,108,108,32,98,101,32,117,115,101, + 100,46,10,114,2,0,0,0,78,218,6,105,103,110,111,114, 101,218,4,80,65,84,72,115,4,0,0,0,80,65,84,72, 122,42,101,110,118,32,99,97,110,110,111,116,32,99,111,110, 116,97,105,110,32,39,80,65,84,72,39,32,97,110,100,32, 98,39,80,65,84,72,39,32,107,101,121,115,41,16,218,8, - 119,97,114,110,105,110,103,115,114,220,0,0,0,218,14,99, + 119,97,114,110,105,110,103,115,114,222,0,0,0,218,14,99, 97,116,99,104,95,119,97,114,110,105,110,103,115,218,12,115, 105,109,112,108,101,102,105,108,116,101,114,218,12,66,121,116, 101,115,87,97,114,110,105,110,103,218,3,103,101,116,218,9, 84,121,112,101,69,114,114,111,114,218,22,115,117,112,112,111, 114,116,115,95,98,121,116,101,115,95,101,110,118,105,114,111, 110,218,10,86,97,108,117,101,69,114,114,111,114,218,8,75, - 101,121,69,114,114,111,114,114,115,0,0,0,114,116,0,0, - 0,114,18,0,0,0,114,10,0,0,0,114,111,0,0,0, - 114,8,0,0,0,41,4,114,207,0,0,0,114,234,0,0, - 0,114,227,0,0,0,218,10,112,97,116,104,95,108,105,115, + 101,121,69,114,114,111,114,114,116,0,0,0,114,117,0,0, + 0,114,18,0,0,0,114,10,0,0,0,114,112,0,0,0, + 114,8,0,0,0,41,4,114,209,0,0,0,114,236,0,0, + 0,114,229,0,0,0,218,10,112,97,116,104,95,108,105,115, 116,98,115,4,0,0,0,32,32,32,32,114,25,0,0,0, - 114,19,0,0,0,114,19,0,0,0,142,2,0,0,115,228, - 0,0,0,128,0,243,20,0,5,20,224,7,10,128,123,220, + 114,19,0,0,0,114,19,0,0,0,145,2,0,0,115,234, + 0,0,0,128,0,243,20,0,5,20,224,7,10,129,123,220, 14,21,136,3,240,8,0,10,18,215,9,32,209,9,32,213, 9,34,216,8,16,215,8,29,209,8,29,152,104,172,12,212, 8,53,240,4,3,9,29,216,24,27,159,7,153,7,160,6, - 155,15,136,73,245,8,0,12,34,240,2,8,13,39,216,29, - 32,160,23,153,92,144,10,240,8,0,20,29,208,19,40,220, - 26,36,216,24,68,243,3,1,27,70,1,240,0,1,21,70, - 1,224,28,38,144,9,224,15,24,208,15,36,172,26,176,73, - 188,117,212,41,69,220,28,36,160,89,211,28,47,144,9,247, - 41,0,10,35,240,44,0,8,17,208,7,24,220,20,27,136, - 9,216,11,20,143,63,137,63,156,55,211,11,35,208,4,35, - 248,244,39,0,16,25,242,0,1,9,29,216,24,28,138,73, - 240,3,1,9,29,251,244,12,0,21,29,156,105,208,19,40, - 242,0,1,13,21,217,16,20,240,3,1,13,21,250,247,23, - 0,10,35,208,9,34,250,115,82,0,0,0,157,23,67,9, - 3,181,17,66,35,2,193,6,6,67,9,3,193,13,5,66, - 52,2,193,18,44,67,9,3,194,35,11,66,49,5,194,46, - 2,67,9,3,194,48,1,66,49,5,194,49,3,67,9,3, - 194,52,15,67,6,5,195,3,2,67,9,3,195,5,1,67, - 6,5,195,6,3,67,9,3,195,9,5,67,18,7,41,2, - 218,14,77,117,116,97,98,108,101,77,97,112,112,105,110,103, - 218,7,77,97,112,112,105,110,103,99,0,0,0,0,0,0, - 0,0,0,0,0,0,1,0,0,0,0,0,0,0,243,84, - 0,0,0,151,0,101,0,90,1,100,0,90,2,100,1,132, - 0,90,3,100,2,132,0,90,4,100,3,132,0,90,5,100, - 4,132,0,90,6,100,5,132,0,90,7,100,6,132,0,90, - 8,100,7,132,0,90,9,100,8,132,0,90,10,100,9,132, - 0,90,11,100,10,132,0,90,12,100,11,132,0,90,13,100, - 12,132,0,90,14,121,13,41,14,218,8,95,69,110,118,105, - 114,111,110,99,6,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,3,0,0,0,243,74,0,0,0,151,0,124, - 2,124,0,95,0,0,0,0,0,0,0,0,0,124,3,124, - 0,95,1,0,0,0,0,0,0,0,0,124,4,124,0,95, - 2,0,0,0,0,0,0,0,0,124,5,124,0,95,3,0, - 0,0,0,0,0,0,0,124,1,124,0,95,4,0,0,0, - 0,0,0,0,0,121,0,114,23,0,0,0,41,5,218,9, - 101,110,99,111,100,101,107,101,121,218,9,100,101,99,111,100, - 101,107,101,121,218,11,101,110,99,111,100,101,118,97,108,117, - 101,218,11,100,101,99,111,100,101,118,97,108,117,101,218,5, - 95,100,97,116,97,41,6,218,4,115,101,108,102,218,4,100, - 97,116,97,114,249,0,0,0,114,250,0,0,0,114,251,0, - 0,0,114,252,0,0,0,115,6,0,0,0,32,32,32,32, - 32,32,114,25,0,0,0,218,8,95,95,105,110,105,116,95, - 95,122,17,95,69,110,118,105,114,111,110,46,95,95,105,110, - 105,116,95,95,190,2,0,0,115,39,0,0,0,128,0,216, - 25,34,136,4,140,14,216,25,34,136,4,140,14,216,27,38, - 136,4,212,8,24,216,27,38,136,4,212,8,24,216,21,25, - 136,4,141,10,114,27,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,148, - 0,0,0,151,0,9,0,124,0,106,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,106, - 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,1,171,1,0,0,0,0,0,0,25,0,0, - 0,125,2,124,0,106,7,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,2,171,1,0,0,0, - 0,0,0,83,0,35,0,116,4,0,0,0,0,0,0,0, - 0,36,0,114,13,1,0,116,5,0,0,0,0,0,0,0, - 0,124,1,171,1,0,0,0,0,0,0,100,0,130,2,119, - 0,120,3,89,0,119,1,114,23,0,0,0,41,4,114,253, - 0,0,0,114,249,0,0,0,114,242,0,0,0,114,252,0, - 0,0,169,3,114,254,0,0,0,218,3,107,101,121,114,172, - 0,0,0,115,3,0,0,0,32,32,32,114,25,0,0,0, - 218,11,95,95,103,101,116,105,116,101,109,95,95,122,20,95, - 69,110,118,105,114,111,110,46,95,95,103,101,116,105,116,101, - 109,95,95,197,2,0,0,115,78,0,0,0,128,0,240,2, - 4,9,42,216,20,24,151,74,145,74,152,116,159,126,153,126, - 168,99,211,31,50,209,20,51,136,69,240,8,0,16,20,215, - 15,31,209,15,31,160,5,211,15,38,208,8,38,248,244,7, - 0,16,24,242,0,2,9,42,228,18,26,152,51,147,45,160, - 84,208,12,41,240,5,2,9,42,250,115,9,0,0,0,130, - 30,49,0,177,22,65,7,3,99,3,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,126,0, - 0,0,151,0,124,0,106,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,125,1,124,0,106,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,2,171,1, - 0,0,0,0,0,0,125,2,116,5,0,0,0,0,0,0, - 0,0,124,1,124,2,171,2,0,0,0,0,0,0,1,0, - 124,2,124,0,106,6,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,60,0,0,0,121,0, - 114,23,0,0,0,41,4,114,249,0,0,0,114,251,0,0, - 0,218,6,112,117,116,101,110,118,114,253,0,0,0,114,2, - 1,0,0,115,3,0,0,0,32,32,32,114,25,0,0,0, - 218,11,95,95,115,101,116,105,116,101,109,95,95,122,20,95, - 69,110,118,105,114,111,110,46,95,95,115,101,116,105,116,101, - 109,95,95,205,2,0,0,115,55,0,0,0,128,0,216,14, - 18,143,110,137,110,152,83,211,14,33,136,3,216,16,20,215, - 16,32,209,16,32,160,21,211,16,39,136,5,220,8,14,136, - 115,144,69,212,8,26,216,26,31,136,4,143,10,137,10,144, - 51,138,15,114,27,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,138,0, - 0,0,151,0,124,0,106,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,125,2,116,3,0,0,0,0,0,0,0,0, - 124,2,171,1,0,0,0,0,0,0,1,0,9,0,124,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,2,61,0,121,0,35,0,116,6,0,0, - 0,0,0,0,0,0,36,0,114,13,1,0,116,7,0,0, - 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 100,0,130,2,119,0,120,3,89,0,119,1,114,23,0,0, - 0,41,4,114,249,0,0,0,218,8,117,110,115,101,116,101, - 110,118,114,253,0,0,0,114,242,0,0,0,41,3,114,254, - 0,0,0,114,3,1,0,0,218,10,101,110,99,111,100,101, - 100,107,101,121,115,3,0,0,0,32,32,32,114,25,0,0, - 0,218,11,95,95,100,101,108,105,116,101,109,95,95,122,20, - 95,69,110,118,105,114,111,110,46,95,95,100,101,108,105,116, - 101,109,95,95,211,2,0,0,115,68,0,0,0,128,0,216, - 21,25,151,94,145,94,160,67,211,21,40,136,10,220,8,16, - 144,26,212,8,28,240,2,4,9,42,216,16,20,151,10,145, - 10,152,58,209,16,38,248,220,15,23,242,0,2,9,42,228, - 18,26,152,51,147,45,160,84,208,12,41,240,5,2,9,42, - 250,115,9,0,0,0,158,13,44,0,172,22,65,2,3,99, - 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 35,0,0,0,243,106,0,0,0,75,0,1,0,151,0,116, - 1,0,0,0,0,0,0,0,0,124,0,106,2,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,125,1,124,1,68,0,93,21,0, - 0,125,2,124,0,106,5,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,2,171,1,0,0,0, - 0,0,0,150,1,151,1,1,0,140,23,4,0,121,0,173, - 3,119,1,114,23,0,0,0,41,3,114,30,0,0,0,114, - 253,0,0,0,114,250,0,0,0,41,3,114,254,0,0,0, - 218,4,107,101,121,115,114,3,1,0,0,115,3,0,0,0, - 32,32,32,114,25,0,0,0,218,8,95,95,105,116,101,114, - 95,95,122,17,95,69,110,118,105,114,111,110,46,95,95,105, - 116,101,114,95,95,220,2,0,0,115,45,0,0,0,232,0, - 248,128,0,228,15,19,144,68,151,74,145,74,211,15,31,136, - 4,219,19,23,136,67,216,18,22,151,46,145,46,160,19,211, - 18,37,211,12,37,241,3,0,20,24,249,115,4,0,0,0, - 130,49,51,1,99,1,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,3,0,0,0,243,44,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,0,106,2,0,0, + 155,15,136,73,247,8,0,12,34,210,11,33,240,2,8,13, + 39,216,29,32,160,23,153,92,144,10,240,8,0,20,29,209, + 19,40,220,26,36,216,24,68,243,3,1,27,70,1,240,0, + 1,21,70,1,224,28,38,144,9,224,15,24,209,15,36,172, + 26,176,73,188,117,215,41,69,209,41,69,220,28,36,160,89, + 211,28,47,144,9,247,41,0,10,35,240,44,0,8,17,209, + 7,24,220,20,27,136,9,216,11,20,143,63,137,63,156,55, + 211,11,35,208,4,35,248,244,39,0,16,25,243,0,1,9, + 29,216,24,28,138,73,240,3,1,9,29,251,244,12,0,21, + 29,156,105,208,19,40,243,0,1,13,21,217,16,20,240,3, + 1,13,21,250,247,23,0,10,35,213,9,34,250,115,82,0, + 0,0,158,23,67,25,3,182,17,66,49,2,193,7,11,67, + 25,3,193,19,5,67,3,2,193,24,51,67,25,3,194,49, + 12,67,0,5,194,61,2,67,25,3,194,63,1,67,0,5, + 195,0,3,67,25,3,195,3,16,67,22,5,195,19,2,67, + 25,3,195,21,1,67,22,5,195,22,3,67,25,3,195,25, + 10,67,39,7,41,2,218,14,77,117,116,97,98,108,101,77, + 97,112,112,105,110,103,218,7,77,97,112,112,105,110,103,99, + 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 0,0,0,0,243,92,0,0,0,149,0,92,0,114,1,83, + 0,114,2,83,1,114,3,83,2,26,0,114,4,83,3,26, + 0,114,5,83,4,26,0,114,6,83,5,26,0,114,7,83, + 6,26,0,114,8,83,7,26,0,114,9,83,8,26,0,114, + 10,83,9,26,0,114,11,83,10,26,0,114,12,83,11,26, + 0,114,13,83,12,26,0,114,14,83,13,26,0,114,15,83, + 14,114,16,103,15,41,16,218,8,95,69,110,118,105,114,111, + 110,105,192,2,0,0,99,6,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,3,0,0,0,243,64,0,0,0, + 149,0,88,32,108,0,0,0,0,0,0,0,0,0,88,48, + 108,1,0,0,0,0,0,0,0,0,88,64,108,2,0,0, + 0,0,0,0,0,0,88,80,108,3,0,0,0,0,0,0, + 0,0,88,16,108,4,0,0,0,0,0,0,0,0,103,0, + 114,23,0,0,0,41,5,218,9,101,110,99,111,100,101,107, + 101,121,218,9,100,101,99,111,100,101,107,101,121,218,11,101, + 110,99,111,100,101,118,97,108,117,101,218,11,100,101,99,111, + 100,101,118,97,108,117,101,218,5,95,100,97,116,97,41,6, + 218,4,115,101,108,102,218,4,100,97,116,97,114,251,0,0, + 0,114,252,0,0,0,114,253,0,0,0,114,254,0,0,0, + 115,6,0,0,0,32,32,32,32,32,32,114,25,0,0,0, + 218,8,95,95,105,110,105,116,95,95,218,17,95,69,110,118, + 105,114,111,110,46,95,95,105,110,105,116,95,95,193,2,0, + 0,115,29,0,0,0,128,0,216,25,34,140,14,216,25,34, + 140,14,216,27,38,212,8,24,216,27,38,212,8,24,216,21, + 25,141,10,114,27,0,0,0,99,2,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,243,150,0, + 0,0,149,0,30,0,85,0,82,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,0,82,3, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,83,0,114,23,0,0,0,41, - 2,218,3,108,101,110,114,253,0,0,0,169,1,114,254,0, - 0,0,115,1,0,0,0,32,114,25,0,0,0,218,7,95, - 95,108,101,110,95,95,122,16,95,69,110,118,105,114,111,110, - 46,95,95,108,101,110,95,95,226,2,0,0,115,16,0,0, - 0,128,0,220,15,18,144,52,151,58,145,58,139,127,208,8, - 30,114,27,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,243,116,0,0,0, - 135,0,151,0,100,1,106,1,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,136,0,102,1,100,2, - 132,8,137,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,106,5,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,68,0,171,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,125,1,100,3,124,1,155,0,100,4, - 157,3,83,0,41,5,78,122,2,44,32,99,1,0,0,0, + 0,0,85,1,53,1,0,0,0,0,0,0,5,0,0,0, + 110,2,85,0,82,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,2,53,1,0,0,0,0, + 0,0,36,0,33,0,91,4,0,0,0,0,0,0,0,0, + 7,0,97,13,0,0,32,0,91,5,0,0,0,0,0,0, + 0,0,85,1,53,1,0,0,0,0,0,0,83,0,101,2, + 102,0,61,3,31,0,102,1,114,23,0,0,0,41,4,114, + 255,0,0,0,114,251,0,0,0,114,244,0,0,0,114,254, + 0,0,0,169,3,114,0,1,0,0,218,3,107,101,121,114, + 173,0,0,0,115,3,0,0,0,32,32,32,114,25,0,0, + 0,218,11,95,95,103,101,116,105,116,101,109,95,95,218,20, + 95,69,110,118,105,114,111,110,46,95,95,103,101,116,105,116, + 101,109,95,95,200,2,0,0,115,78,0,0,0,128,0,240, + 2,4,9,42,216,20,24,151,74,145,74,152,116,159,126,153, + 126,168,99,211,31,50,209,20,51,136,69,240,8,0,16,20, + 215,15,31,209,15,31,160,5,211,15,38,208,8,38,248,244, + 7,0,16,24,243,0,2,9,42,228,18,26,152,51,147,45, + 160,84,208,12,41,240,5,2,9,42,250,115,9,0,0,0, + 130,30,49,0,177,23,65,8,3,99,3,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,122, + 0,0,0,149,0,85,0,82,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,1,53,1,0, + 0,0,0,0,0,110,1,85,0,82,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,2,53, + 1,0,0,0,0,0,0,110,2,91,5,0,0,0,0,0, + 0,0,0,88,18,53,2,0,0,0,0,0,0,32,0,88, + 32,82,6,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,1,39,0,0,0,103,0,114,23,0, + 0,0,41,4,114,251,0,0,0,114,253,0,0,0,218,6, + 112,117,116,101,110,118,114,255,0,0,0,114,5,1,0,0, + 115,3,0,0,0,32,32,32,114,25,0,0,0,218,11,95, + 95,115,101,116,105,116,101,109,95,95,218,20,95,69,110,118, + 105,114,111,110,46,95,95,115,101,116,105,116,101,109,95,95, + 208,2,0,0,115,51,0,0,0,128,0,216,14,18,143,110, + 137,110,152,83,211,14,33,136,3,216,16,20,215,16,32,209, + 16,32,160,21,211,16,39,136,5,220,8,14,136,115,212,8, + 26,216,26,31,143,10,137,10,144,51,138,15,114,27,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,140,0,0,0,149,0,85,0,82, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,1,53,1,0,0,0,0,0,0,110,2,91, + 3,0,0,0,0,0,0,0,0,85,2,53,1,0,0,0, + 0,0,0,32,0,30,0,85,0,82,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,2,9, + 0,103,0,33,0,91,6,0,0,0,0,0,0,0,0,7, + 0,97,13,0,0,32,0,91,7,0,0,0,0,0,0,0, + 0,85,1,53,1,0,0,0,0,0,0,83,0,101,2,102, + 0,61,3,31,0,102,1,114,23,0,0,0,41,4,114,251, + 0,0,0,218,8,117,110,115,101,116,101,110,118,114,255,0, + 0,0,114,244,0,0,0,41,3,114,0,1,0,0,114,6, + 1,0,0,218,10,101,110,99,111,100,101,100,107,101,121,115, + 3,0,0,0,32,32,32,114,25,0,0,0,218,11,95,95, + 100,101,108,105,116,101,109,95,95,218,20,95,69,110,118,105, + 114,111,110,46,95,95,100,101,108,105,116,101,109,95,95,214, + 2,0,0,115,68,0,0,0,128,0,216,21,25,151,94,145, + 94,160,67,211,21,40,136,10,220,8,16,144,26,212,8,28, + 240,2,4,9,42,216,16,20,151,10,145,10,152,58,209,16, + 38,248,220,15,23,243,0,2,9,42,228,18,26,152,51,147, + 45,160,84,208,12,41,240,5,2,9,42,250,115,9,0,0, + 0,158,13,44,0,172,23,65,3,3,99,1,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,35,0,0,0,243, + 110,0,0,0,35,0,32,0,149,0,91,1,0,0,0,0, + 0,0,0,0,85,0,82,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,110,1,85,1,19,0,72,22,0,0,110,2,85,0, + 82,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,2,53,1,0,0,0,0,0,0,118,0, + 149,5,32,0,77,24,0,0,11,0,32,0,103,0,55,3, + 102,1,114,23,0,0,0,41,3,114,30,0,0,0,114,255, + 0,0,0,114,252,0,0,0,41,3,114,0,1,0,0,218, + 4,107,101,121,115,114,6,1,0,0,115,3,0,0,0,32, + 32,32,114,25,0,0,0,218,8,95,95,105,116,101,114,95, + 95,218,17,95,69,110,118,105,114,111,110,46,95,95,105,116, + 101,114,95,95,223,2,0,0,115,44,0,0,0,233,0,128, + 0,228,15,19,144,68,151,74,145,74,211,15,31,136,4,219, + 19,23,136,67,216,18,22,151,46,145,46,160,19,211,18,37, + 212,12,37,242,3,0,20,24,249,115,4,0,0,0,130,51, + 53,1,99,1,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,243,44,0,0,0,149,0,91,1, + 0,0,0,0,0,0,0,0,85,0,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,36,0,114,23,0,0,0,41,2,218, + 3,108,101,110,114,255,0,0,0,169,1,114,0,1,0,0, + 115,1,0,0,0,32,114,25,0,0,0,218,7,95,95,108, + 101,110,95,95,218,16,95,69,110,118,105,114,111,110,46,95, + 95,108,101,110,95,95,229,2,0,0,115,16,0,0,0,128, + 0,220,15,18,144,52,151,58,145,58,139,127,208,8,30,114, + 27,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,3,0,0,0,243,118,0,0,0,94,0, + 149,0,83,1,82,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,0,52,1,83,2,26,0, + 106,8,84,0,82,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,5,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,19,0,53,0,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,110,1,83,3,85,1,14,0,83,4, + 51,3,36,0,41,5,78,122,2,44,32,99,1,0,0,0, 0,0,0,0,0,0,0,0,6,0,0,0,51,0,0,0, - 243,110,0,0,0,149,1,75,0,1,0,151,0,124,0,93, - 44,0,0,92,2,0,0,125,1,125,2,137,3,106,1,0, + 243,118,0,0,0,62,1,35,0,32,0,149,0,85,0,19, + 0,72,46,0,0,117,2,0,0,112,18,84,3,82,1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,171,1,0,0,0,0,0,0,155,2,100,0,137, - 3,106,3,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,2,171,1,0,0,0,0,0,0,155, - 2,157,3,150,1,151,1,1,0,140,46,4,0,121,1,173, - 3,119,1,41,2,122,2,58,32,78,41,2,114,250,0,0, - 0,114,252,0,0,0,41,4,114,178,0,0,0,114,3,1, - 0,0,114,172,0,0,0,114,254,0,0,0,115,4,0,0, - 0,32,32,32,128,114,25,0,0,0,114,181,0,0,0,122, - 36,95,69,110,118,105,114,111,110,46,95,95,114,101,112,114, - 95,95,46,60,108,111,99,97,108,115,62,46,60,103,101,110, - 101,120,112,114,62,230,2,0,0,115,62,0,0,0,248,232, - 0,248,128,0,240,0,3,36,10,225,30,48,145,10,144,3, - 144,85,240,3,0,16,20,143,126,137,126,152,99,211,15,34, - 208,14,37,160,82,168,4,215,40,56,209,40,56,184,21,211, - 40,63,208,39,66,212,12,67,217,30,48,249,115,4,0,0, - 0,131,50,53,1,122,9,101,110,118,105,114,111,110,40,123, - 122,2,125,41,41,3,114,136,0,0,0,114,253,0,0,0, - 218,5,105,116,101,109,115,41,2,114,254,0,0,0,218,15, - 102,111,114,109,97,116,116,101,100,95,105,116,101,109,115,115, - 2,0,0,0,96,32,114,25,0,0,0,218,8,95,95,114, - 101,112,114,95,95,122,17,95,69,110,118,105,114,111,110,46, - 95,95,114,101,112,114,95,95,229,2,0,0,115,61,0,0, - 0,248,128,0,216,26,30,159,41,153,41,243,0,3,36,10, - 224,30,34,159,106,153,106,215,30,46,209,30,46,212,30,48, - 243,5,3,36,10,243,0,3,27,10,136,15,240,8,0,18, - 28,152,79,208,27,44,168,67,208,15,48,208,8,48,114,27, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,0,0,0,243,24,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,83,0,114,23,0,0,0,41,1,218,4,100,105, - 99,116,114,17,1,0,0,115,1,0,0,0,32,114,25,0, - 0,0,218,4,99,111,112,121,122,13,95,69,110,118,105,114, - 111,110,46,99,111,112,121,236,2,0,0,115,12,0,0,0, - 128,0,220,15,19,144,68,139,122,208,8,25,114,27,0,0, - 0,99,3,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,3,0,0,0,243,30,0,0,0,151,0,124,1,124, - 0,118,1,114,5,124,2,124,0,124,1,60,0,0,0,124, - 0,124,1,25,0,0,0,83,0,114,23,0,0,0,169,0, - 114,2,1,0,0,115,3,0,0,0,32,32,32,114,25,0, - 0,0,218,10,115,101,116,100,101,102,97,117,108,116,122,19, - 95,69,110,118,105,114,111,110,46,115,101,116,100,101,102,97, - 117,108,116,239,2,0,0,115,28,0,0,0,128,0,216,11, - 14,144,100,137,63,216,24,29,136,68,144,19,137,73,216,15, - 19,144,67,137,121,208,8,24,114,27,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,40,0,0,0,151,0,124,0,106,1,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,171,1,0,0,0,0,0,0,1,0,124,0,83,0,114, - 23,0,0,0,41,1,218,6,117,112,100,97,116,101,41,2, - 114,254,0,0,0,218,5,111,116,104,101,114,115,2,0,0, - 0,32,32,114,25,0,0,0,218,7,95,95,105,111,114,95, - 95,122,16,95,69,110,118,105,114,111,110,46,95,95,105,111, - 114,95,95,244,2,0,0,115,19,0,0,0,128,0,216,8, - 12,143,11,137,11,144,69,212,8,26,216,15,19,136,11,114, - 27,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,243,106,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,1,116,2,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,115,6, - 116,4,0,0,0,0,0,0,0,0,83,0,116,7,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 125,2,124,2,106,9,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,171,1,0,0,0,0, - 0,0,1,0,124,2,83,0,114,23,0,0,0,169,5,114, - 115,0,0,0,114,245,0,0,0,218,14,78,111,116,73,109, - 112,108,101,109,101,110,116,101,100,114,25,1,0,0,114,31, - 1,0,0,169,3,114,254,0,0,0,114,32,1,0,0,114, - 127,0,0,0,115,3,0,0,0,32,32,32,114,25,0,0, - 0,218,6,95,95,111,114,95,95,122,15,95,69,110,118,105, - 114,111,110,46,95,95,111,114,95,95,248,2,0,0,115,44, - 0,0,0,128,0,220,15,25,152,37,164,23,212,15,41,220, - 19,33,208,12,33,220,14,18,144,52,139,106,136,3,216,8, - 11,143,10,137,10,144,53,212,8,25,216,15,18,136,10,114, - 27,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,243,106,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,1,116,2,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,115,6, - 116,4,0,0,0,0,0,0,0,0,83,0,116,7,0,0, - 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 125,2,124,2,106,9,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,1,0,124,2,83,0,114,23,0,0,0,114,35,1, - 0,0,114,37,1,0,0,115,3,0,0,0,32,32,32,114, - 25,0,0,0,218,7,95,95,114,111,114,95,95,122,16,95, - 69,110,118,105,114,111,110,46,95,95,114,111,114,95,95,255, - 2,0,0,115,44,0,0,0,128,0,220,15,25,152,37,164, - 23,212,15,41,220,19,33,208,12,33,220,14,18,144,53,139, - 107,136,3,216,8,11,143,10,137,10,144,52,212,8,24,216, - 15,18,136,10,114,27,0,0,0,78,41,15,218,8,95,95, - 110,97,109,101,95,95,218,10,95,95,109,111,100,117,108,101, - 95,95,218,12,95,95,113,117,97,108,110,97,109,101,95,95, - 114,0,1,0,0,114,4,1,0,0,114,7,1,0,0,114, - 11,1,0,0,114,14,1,0,0,114,18,1,0,0,114,23, - 1,0,0,114,26,1,0,0,114,29,1,0,0,114,33,1, - 0,0,114,38,1,0,0,114,40,1,0,0,114,28,1,0, - 0,114,27,0,0,0,114,25,0,0,0,114,247,0,0,0, - 114,247,0,0,0,189,2,0,0,115,62,0,0,0,132,0, - 242,2,5,5,26,242,14,6,5,39,242,16,4,5,32,242, - 12,7,5,42,242,18,4,5,38,242,12,1,5,31,242,6, - 5,5,49,242,14,1,5,26,242,6,3,5,25,242,10,2, - 5,20,242,8,5,5,19,243,14,5,5,19,114,27,0,0, - 0,114,247,0,0,0,99,0,0,0,0,0,0,0,0,0, - 0,0,0,7,0,0,0,3,0,0,0,243,246,0,0,0, - 135,6,135,7,151,0,116,0,0,0,0,0,0,0,0,0, - 100,1,107,40,0,0,114,58,100,2,132,0,125,0,124,0, - 138,6,116,2,0,0,0,0,0,0,0,0,125,1,136,6, - 102,1,100,3,132,8,125,2,105,0,125,3,116,4,0,0, - 0,0,0,0,0,0,106,7,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,68,0,93,16,0,0,92,2,0,0,125,4,125,5, - 124,5,124,3,2,0,124,2,124,4,171,1,0,0,0,0, - 0,0,60,0,0,0,140,18,4,0,110,38,116,9,0,0, - 0,0,0,0,0,0,106,10,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,138,7,136,7,102,1,100,4,132,8,138,6,136,7, - 102,1,100,5,132,8,125,1,137,6,125,2,116,4,0,0, - 0,0,0,0,0,0,125,3,116,13,0,0,0,0,0,0, - 0,0,124,3,124,2,124,1,137,6,124,1,171,5,0,0, - 0,0,0,0,83,0,41,6,78,114,42,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,19, - 0,0,0,243,104,0,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,124,0,116,2,0,0,0,0,0,0,0,0, - 171,2,0,0,0,0,0,0,115,33,116,5,0,0,0,0, - 0,0,0,0,100,1,116,7,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,6, - 0,0,171,1,0,0,0,0,0,0,130,1,124,0,83,0, - 41,2,78,250,20,115,116,114,32,101,120,112,101,99,116,101, - 100,44,32,110,111,116,32,37,115,41,5,114,115,0,0,0, - 114,47,0,0,0,114,239,0,0,0,218,4,116,121,112,101, - 114,41,1,0,0,169,1,114,172,0,0,0,115,1,0,0, - 0,32,114,25,0,0,0,218,9,99,104,101,99,107,95,115, - 116,114,122,33,95,99,114,101,97,116,101,101,110,118,105,114, - 111,110,46,60,108,111,99,97,108,115,62,46,99,104,101,99, - 107,95,115,116,114,9,3,0,0,115,44,0,0,0,128,0, - 220,19,29,152,101,164,83,212,19,41,220,22,31,208,32,54, - 188,20,184,101,187,27,215,57,77,209,57,77,209,32,77,211, - 22,78,208,16,78,216,19,24,136,76,114,27,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 19,0,0,0,243,48,0,0,0,149,1,151,0,2,0,137, - 1,124,0,171,1,0,0,0,0,0,0,106,1,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,83,0,114,23,0,0,0,41,1, - 218,5,117,112,112,101,114,41,2,114,3,1,0,0,218,6, - 101,110,99,111,100,101,115,2,0,0,0,32,128,114,25,0, - 0,0,114,249,0,0,0,122,33,95,99,114,101,97,116,101, - 101,110,118,105,114,111,110,46,60,108,111,99,97,108,115,62, - 46,101,110,99,111,100,101,107,101,121,15,3,0,0,115,22, - 0,0,0,248,128,0,217,19,25,152,35,147,59,215,19,36, - 209,19,36,211,19,38,208,12,38,114,27,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,19, - 0,0,0,243,138,0,0,0,149,1,151,0,116,1,0,0, - 0,0,0,0,0,0,124,0,116,2,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,115,33,116,5,0,0, - 0,0,0,0,0,0,100,1,116,7,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,106,8,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 122,6,0,0,171,1,0,0,0,0,0,0,130,1,124,0, - 106,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,137,1,100,2,171,2,0,0,0,0,0,0, - 83,0,41,3,78,114,46,1,0,0,218,15,115,117,114,114, - 111,103,97,116,101,101,115,99,97,112,101,41,6,114,115,0, - 0,0,114,47,0,0,0,114,239,0,0,0,114,47,1,0, - 0,114,41,1,0,0,114,52,1,0,0,169,2,114,172,0, - 0,0,218,8,101,110,99,111,100,105,110,103,115,2,0,0, - 0,32,128,114,25,0,0,0,114,52,1,0,0,122,30,95, - 99,114,101,97,116,101,101,110,118,105,114,111,110,46,60,108, - 111,99,97,108,115,62,46,101,110,99,111,100,101,23,3,0, - 0,115,58,0,0,0,248,128,0,220,19,29,152,101,164,83, - 212,19,41,220,22,31,208,32,54,188,20,184,101,187,27,215, - 57,77,209,57,77,209,32,77,211,22,78,208,16,78,216,19, - 24,151,60,145,60,160,8,208,42,59,211,19,60,208,12,60, - 114,27,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,19,0,0,0,243,40,0,0,0,149, - 1,151,0,124,0,106,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,137,1,100,1,171,2,0, - 0,0,0,0,0,83,0,41,2,78,114,54,1,0,0,41, - 1,218,6,100,101,99,111,100,101,114,55,1,0,0,115,2, - 0,0,0,32,128,114,25,0,0,0,114,58,1,0,0,122, - 30,95,99,114,101,97,116,101,101,110,118,105,114,111,110,46, - 60,108,111,99,97,108,115,62,46,100,101,99,111,100,101,27, - 3,0,0,115,21,0,0,0,248,128,0,216,19,24,151,60, - 145,60,160,8,208,42,59,211,19,60,208,12,60,114,27,0, - 0,0,41,7,114,11,0,0,0,114,47,0,0,0,114,220, - 0,0,0,114,21,1,0,0,114,132,0,0,0,218,21,103, - 101,116,102,105,108,101,115,121,115,116,101,109,101,110,99,111, - 100,105,110,103,114,247,0,0,0,41,8,114,49,1,0,0, - 114,58,1,0,0,114,249,0,0,0,114,255,0,0,0,114, - 3,1,0,0,114,172,0,0,0,114,52,1,0,0,114,56, - 1,0,0,115,8,0,0,0,32,32,32,32,32,32,64,64, - 114,25,0,0,0,218,14,95,99,114,101,97,116,101,101,110, - 118,105,114,111,110,114,60,1,0,0,6,3,0,0,115,132, - 0,0,0,249,128,0,220,7,11,136,116,130,124,242,4,3, - 9,25,240,8,0,18,27,136,6,220,17,20,136,6,244,2, - 1,9,39,224,15,17,136,4,220,26,33,159,45,153,45,158, - 47,137,74,136,67,144,21,216,35,40,136,68,145,25,152,51, - 147,30,210,12,32,241,3,0,27,42,244,8,0,20,23,215, - 19,44,209,19,44,211,19,46,136,8,244,2,3,9,61,244, - 8,1,9,61,224,20,26,136,9,220,15,22,136,4,220,11, - 19,144,68,216,8,17,144,54,216,8,14,144,6,243,5,2, - 12,24,240,0,2,5,24,114,27,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,46,0,0,0,151,0,116,0,0,0,0,0,0,0, - 0,0,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,124,1,171,2,0,0,0,0, - 0,0,83,0,41,1,122,169,71,101,116,32,97,110,32,101, - 110,118,105,114,111,110,109,101,110,116,32,118,97,114,105,97, - 98,108,101,44,32,114,101,116,117,114,110,32,78,111,110,101, - 32,105,102,32,105,116,32,100,111,101,115,110,39,116,32,101, - 120,105,115,116,46,10,32,32,32,32,84,104,101,32,111,112, + 0,85,1,53,1,0,0,0,0,0,0,60,2,14,0,83, + 0,84,3,82,3,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,2,53,1,0,0,0,0,0, + 0,60,2,14,0,51,3,118,0,149,5,32,0,77,48,0, + 0,11,0,32,0,103,1,55,3,102,1,41,2,122,2,58, + 32,78,41,2,114,252,0,0,0,114,254,0,0,0,41,4, + 114,179,0,0,0,114,6,1,0,0,114,173,0,0,0,114, + 0,1,0,0,115,4,0,0,0,32,32,32,128,114,25,0, + 0,0,114,182,0,0,0,218,36,95,69,110,118,105,114,111, + 110,46,95,95,114,101,112,114,95,95,46,60,108,111,99,97, + 108,115,62,46,60,103,101,110,101,120,112,114,62,233,2,0, + 0,115,59,0,0,0,248,233,0,128,0,240,0,3,36,10, + 226,30,48,145,10,144,3,240,3,0,16,20,143,126,137,126, + 152,99,211,15,34,209,14,37,160,82,168,4,215,40,56,209, + 40,56,184,21,211,40,63,209,39,66,213,12,67,218,30,48, + 249,115,4,0,0,0,131,54,57,1,122,9,101,110,118,105, + 114,111,110,40,123,122,2,125,41,41,3,114,137,0,0,0, + 114,255,0,0,0,218,5,105,116,101,109,115,41,2,114,0, + 1,0,0,218,15,102,111,114,109,97,116,116,101,100,95,105, + 116,101,109,115,115,2,0,0,0,96,32,114,25,0,0,0, + 218,8,95,95,114,101,112,114,95,95,218,17,95,69,110,118, + 105,114,111,110,46,95,95,114,101,112,114,95,95,232,2,0, + 0,115,61,0,0,0,248,128,0,216,26,30,159,41,153,41, + 244,0,3,36,10,224,30,34,159,106,153,106,215,30,46,209, + 30,46,212,30,48,243,5,3,36,10,243,0,3,27,10,136, + 15,240,8,0,18,28,152,79,208,27,44,168,67,208,15,48, + 208,8,48,114,27,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,3,0,0,0,243,24,0, + 0,0,149,0,91,1,0,0,0,0,0,0,0,0,85,0, + 53,1,0,0,0,0,0,0,36,0,114,23,0,0,0,41, + 1,218,4,100,105,99,116,114,24,1,0,0,115,1,0,0, + 0,32,114,25,0,0,0,218,4,99,111,112,121,218,13,95, + 69,110,118,105,114,111,110,46,99,111,112,121,239,2,0,0, + 115,12,0,0,0,128,0,220,15,19,144,68,139,122,208,8, + 25,114,27,0,0,0,99,3,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,3,0,0,0,243,28,0,0,0, + 149,0,88,16,59,1,0,0,97,4,0,0,88,32,85,1, + 39,0,0,0,88,1,5,0,0,0,36,0,114,23,0,0, + 0,169,0,114,5,1,0,0,115,3,0,0,0,32,32,32, + 114,25,0,0,0,218,10,115,101,116,100,101,102,97,117,108, + 116,218,19,95,69,110,118,105,114,111,110,46,115,101,116,100, + 101,102,97,117,108,116,242,2,0,0,115,22,0,0,0,128, + 0,216,11,14,139,63,216,24,29,144,19,137,73,216,15,19, + 137,121,208,8,24,114,27,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 40,0,0,0,149,0,85,0,82,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,32,0,85,0,36,0,114,23,0,0, + 0,41,1,218,6,117,112,100,97,116,101,41,2,114,0,1, + 0,0,218,5,111,116,104,101,114,115,2,0,0,0,32,32, + 114,25,0,0,0,218,7,95,95,105,111,114,95,95,218,16, + 95,69,110,118,105,114,111,110,46,95,95,105,111,114,95,95, + 247,2,0,0,115,19,0,0,0,128,0,216,8,12,143,11, + 137,11,144,69,212,8,26,216,15,19,136,11,114,27,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,116,0,0,0,149,0,91,1,0, + 0,0,0,0,0,0,0,85,1,91,2,0,0,0,0,0, + 0,0,0,53,2,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,100,6,0,0,91,4,0,0,0,0,0,0,0, + 0,36,0,91,7,0,0,0,0,0,0,0,0,85,0,53, + 1,0,0,0,0,0,0,110,2,85,2,82,9,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 1,53,1,0,0,0,0,0,0,32,0,85,2,36,0,114, + 23,0,0,0,169,5,114,116,0,0,0,114,247,0,0,0, + 218,14,78,111,116,73,109,112,108,101,109,101,110,116,101,100, + 114,35,1,0,0,114,43,1,0,0,169,3,114,0,1,0, + 0,114,44,1,0,0,114,128,0,0,0,115,3,0,0,0, + 32,32,32,114,25,0,0,0,218,6,95,95,111,114,95,95, + 218,15,95,69,110,118,105,114,111,110,46,95,95,111,114,95, + 95,251,2,0,0,115,47,0,0,0,128,0,220,15,25,152, + 37,164,23,215,15,41,209,15,41,220,19,33,208,12,33,220, + 14,18,144,52,139,106,136,3,216,8,11,143,10,137,10,144, + 53,212,8,25,216,15,18,136,10,114,27,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,116,0,0,0,149,0,91,1,0,0,0,0, + 0,0,0,0,85,1,91,2,0,0,0,0,0,0,0,0, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 100,6,0,0,91,4,0,0,0,0,0,0,0,0,36,0, + 91,7,0,0,0,0,0,0,0,0,85,1,53,1,0,0, + 0,0,0,0,110,2,85,2,82,9,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,0,53,1, + 0,0,0,0,0,0,32,0,85,2,36,0,114,23,0,0, + 0,114,48,1,0,0,114,50,1,0,0,115,3,0,0,0, + 32,32,32,114,25,0,0,0,218,7,95,95,114,111,114,95, + 95,218,16,95,69,110,118,105,114,111,110,46,95,95,114,111, + 114,95,95,2,3,0,0,115,47,0,0,0,128,0,220,15, + 25,152,37,164,23,215,15,41,209,15,41,220,19,33,208,12, + 33,220,14,18,144,53,139,107,136,3,216,8,11,143,10,137, + 10,144,52,212,8,24,216,15,18,136,10,114,27,0,0,0, + 41,5,114,255,0,0,0,114,252,0,0,0,114,254,0,0, + 0,114,251,0,0,0,114,253,0,0,0,78,41,17,218,8, + 95,95,110,97,109,101,95,95,218,10,95,95,109,111,100,117, + 108,101,95,95,218,12,95,95,113,117,97,108,110,97,109,101, + 95,95,218,15,95,95,102,105,114,115,116,108,105,110,101,110, + 111,95,95,114,2,1,0,0,114,7,1,0,0,114,11,1, + 0,0,114,16,1,0,0,114,20,1,0,0,114,25,1,0, + 0,114,32,1,0,0,114,36,1,0,0,114,40,1,0,0, + 114,45,1,0,0,114,51,1,0,0,114,54,1,0,0,218, + 21,95,95,115,116,97,116,105,99,95,97,116,116,114,105,98, + 117,116,101,115,95,95,114,39,1,0,0,114,27,0,0,0, + 114,25,0,0,0,114,249,0,0,0,114,249,0,0,0,192, + 2,0,0,115,62,0,0,0,134,0,242,2,5,5,26,242, + 14,6,5,39,242,16,4,5,32,242,12,7,5,42,242,18, + 4,5,38,242,12,1,5,31,242,6,5,5,49,242,14,1, + 5,26,242,6,3,5,25,242,10,2,5,20,242,8,5,5, + 19,245,14,5,5,19,114,27,0,0,0,114,249,0,0,0, + 99,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0, + 0,3,0,0,0,243,254,0,0,0,94,6,94,7,149,0, + 91,0,0,0,0,0,0,0,0,0,83,1,58,88,0,0, + 97,59,0,0,83,2,26,0,110,0,85,0,109,6,91,2, + 0,0,0,0,0,0,0,0,110,1,85,6,52,1,83,3, + 26,0,106,8,110,2,48,0,110,3,91,4,0,0,0,0, + 0,0,0,0,82,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 19,0,72,15,0,0,117,2,0,0,112,69,88,83,85,2, + 34,0,85,4,53,1,0,0,0,0,0,0,39,0,0,0, + 77,17,0,0,11,0,32,0,79,41,91,8,0,0,0,0, + 0,0,0,0,82,10,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,53,0,0,0,0,0, + 0,0,109,7,85,7,52,1,83,4,26,0,106,8,109,6, + 85,7,52,1,83,5,26,0,106,8,110,1,84,6,110,2, + 91,4,0,0,0,0,0,0,0,0,110,3,91,13,0,0, + 0,0,0,0,0,0,85,3,88,33,84,6,85,1,53,5, + 0,0,0,0,0,0,36,0,41,6,78,114,42,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,6,0,0, + 0,19,0,0,0,243,114,0,0,0,149,0,91,1,0,0, + 0,0,0,0,0,0,85,0,91,2,0,0,0,0,0,0, + 0,0,53,2,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,100,33,0,0,91,5,0,0,0,0,0,0,0,0, + 83,1,91,7,0,0,0,0,0,0,0,0,85,0,53,1, + 0,0,0,0,0,0,82,8,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,45,6,0,0,53,1, + 0,0,0,0,0,0,101,1,85,0,36,0,41,2,78,250, + 20,115,116,114,32,101,120,112,101,99,116,101,100,44,32,110, + 111,116,32,37,115,41,5,114,116,0,0,0,114,47,0,0, + 0,114,241,0,0,0,218,4,116,121,112,101,114,56,1,0, + 0,169,1,114,173,0,0,0,115,1,0,0,0,32,114,25, + 0,0,0,218,9,99,104,101,99,107,95,115,116,114,218,33, + 95,99,114,101,97,116,101,101,110,118,105,114,111,110,46,60, + 108,111,99,97,108,115,62,46,99,104,101,99,107,95,115,116, + 114,12,3,0,0,115,47,0,0,0,128,0,220,19,29,152, + 101,164,83,215,19,41,209,19,41,220,22,31,208,32,54,188, + 20,184,101,187,27,215,57,77,209,57,77,209,32,77,211,22, + 78,208,16,78,216,19,24,136,76,114,27,0,0,0,99,1, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,19, + 0,0,0,243,48,0,0,0,62,1,149,0,84,1,34,0, + 85,0,53,1,0,0,0,0,0,0,82,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,36,0,114,23,0,0,0,41,1,218, + 5,117,112,112,101,114,41,2,114,6,1,0,0,218,6,101, + 110,99,111,100,101,115,2,0,0,0,32,128,114,25,0,0, + 0,114,251,0,0,0,218,33,95,99,114,101,97,116,101,101, + 110,118,105,114,111,110,46,60,108,111,99,97,108,115,62,46, + 101,110,99,111,100,101,107,101,121,18,3,0,0,115,22,0, + 0,0,248,128,0,217,19,25,152,35,147,59,215,19,36,209, + 19,36,211,19,38,208,12,38,114,27,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,6,0,0,0,19,0, + 0,0,243,148,0,0,0,62,1,149,0,91,1,0,0,0, + 0,0,0,0,0,85,0,91,2,0,0,0,0,0,0,0, + 0,53,2,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,100,33,0,0,91,5,0,0,0,0,0,0,0,0,83, + 1,91,7,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,82,8,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,45,6,0,0,53,1,0, + 0,0,0,0,0,101,1,85,0,82,11,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,84,1,83, + 2,53,2,0,0,0,0,0,0,36,0,41,3,78,114,63, + 1,0,0,218,15,115,117,114,114,111,103,97,116,101,101,115, + 99,97,112,101,41,6,114,116,0,0,0,114,47,0,0,0, + 114,241,0,0,0,114,64,1,0,0,114,56,1,0,0,114, + 70,1,0,0,169,2,114,173,0,0,0,218,8,101,110,99, + 111,100,105,110,103,115,2,0,0,0,32,128,114,25,0,0, + 0,114,70,1,0,0,218,30,95,99,114,101,97,116,101,101, + 110,118,105,114,111,110,46,60,108,111,99,97,108,115,62,46, + 101,110,99,111,100,101,26,3,0,0,115,61,0,0,0,248, + 128,0,220,19,29,152,101,164,83,215,19,41,209,19,41,220, + 22,31,208,32,54,188,20,184,101,187,27,215,57,77,209,57, + 77,209,32,77,211,22,78,208,16,78,216,19,24,151,60,145, + 60,160,8,208,42,59,211,19,60,208,12,60,114,27,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,19,0,0,0,243,40,0,0,0,62,1,149,0,85, + 0,82,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,84,1,83,1,53,2,0,0,0,0,0, + 0,36,0,41,2,78,114,73,1,0,0,41,1,218,6,100, + 101,99,111,100,101,114,74,1,0,0,115,2,0,0,0,32, + 128,114,25,0,0,0,114,78,1,0,0,218,30,95,99,114, + 101,97,116,101,101,110,118,105,114,111,110,46,60,108,111,99, + 97,108,115,62,46,100,101,99,111,100,101,30,3,0,0,115, + 21,0,0,0,248,128,0,216,19,24,151,60,145,60,160,8, + 208,42,59,211,19,60,208,12,60,114,27,0,0,0,41,7, + 114,11,0,0,0,114,47,0,0,0,114,222,0,0,0,114, + 30,1,0,0,114,133,0,0,0,218,21,103,101,116,102,105, + 108,101,115,121,115,116,101,109,101,110,99,111,100,105,110,103, + 114,249,0,0,0,41,8,114,66,1,0,0,114,78,1,0, + 0,114,251,0,0,0,114,1,1,0,0,114,6,1,0,0, + 114,173,0,0,0,114,70,1,0,0,114,75,1,0,0,115, + 8,0,0,0,32,32,32,32,32,32,64,64,114,25,0,0, + 0,218,14,95,99,114,101,97,116,101,101,110,118,105,114,111, + 110,114,81,1,0,0,9,3,0,0,115,126,0,0,0,249, + 128,0,220,7,11,136,116,131,124,242,4,3,9,25,240,8, + 0,18,27,136,6,220,17,20,136,6,245,2,1,9,39,224, + 15,17,136,4,220,26,33,159,45,153,45,158,47,137,74,136, + 67,216,35,40,145,25,152,51,147,30,211,12,32,242,3,0, + 27,42,244,8,0,20,23,215,19,44,210,19,44,211,19,46, + 136,8,245,2,3,9,61,245,8,1,9,61,224,20,26,136, + 9,220,15,22,136,4,220,11,19,144,68,216,8,17,216,8, + 14,144,6,243,5,2,12,24,240,0,2,5,24,114,27,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,243,44,0,0,0,149,0,91,0, + 0,0,0,0,0,0,0,0,82,3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,88,1,53,2, + 0,0,0,0,0,0,36,0,41,1,122,161,71,101,116,32, + 97,110,32,101,110,118,105,114,111,110,109,101,110,116,32,118, + 97,114,105,97,98,108,101,44,32,114,101,116,117,114,110,32, + 78,111,110,101,32,105,102,32,105,116,32,100,111,101,115,110, + 39,116,32,101,120,105,115,116,46,10,84,104,101,32,111,112, 116,105,111,110,97,108,32,115,101,99,111,110,100,32,97,114, 103,117,109,101,110,116,32,99,97,110,32,115,112,101,99,105, 102,121,32,97,110,32,97,108,116,101,114,110,97,116,101,32, - 100,101,102,97,117,108,116,46,10,32,32,32,32,107,101,121, - 44,32,100,101,102,97,117,108,116,32,97,110,100,32,116,104, - 101,32,114,101,115,117,108,116,32,97,114,101,32,115,116,114, - 46,41,2,114,220,0,0,0,114,238,0,0,0,169,2,114, - 3,1,0,0,218,7,100,101,102,97,117,108,116,115,2,0, - 0,0,32,32,114,25,0,0,0,218,6,103,101,116,101,110, - 118,114,64,1,0,0,40,3,0,0,115,21,0,0,0,128, - 0,244,8,0,12,19,143,59,137,59,144,115,152,71,211,11, - 36,208,4,36,114,27,0,0,0,41,2,114,64,1,0,0, - 114,240,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,6,0,0,0,3,0,0,0,243,104,0,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,124,0,116,2,0, - 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,115, - 33,116,5,0,0,0,0,0,0,0,0,100,1,116,7,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,106,8,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,122,6,0,0,171,1,0,0,0,0,0, - 0,130,1,124,0,83,0,41,2,78,122,22,98,121,116,101, - 115,32,101,120,112,101,99,116,101,100,44,32,110,111,116,32, - 37,115,41,5,114,115,0,0,0,114,116,0,0,0,114,239, - 0,0,0,114,47,1,0,0,114,41,1,0,0,114,48,1, - 0,0,115,1,0,0,0,32,114,25,0,0,0,218,12,95, - 99,104,101,99,107,95,98,121,116,101,115,114,66,1,0,0, - 50,3,0,0,115,44,0,0,0,128,0,220,15,25,152,37, - 164,21,212,15,39,220,18,27,208,28,52,180,116,184,69,179, - 123,215,55,75,209,55,75,209,28,75,211,18,76,208,12,76, - 216,15,20,136,12,114,27,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, - 46,0,0,0,151,0,116,0,0,0,0,0,0,0,0,0, - 106,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,124,1,171,2,0,0,0,0,0,0, - 83,0,41,1,122,179,71,101,116,32,97,110,32,101,110,118, - 105,114,111,110,109,101,110,116,32,118,97,114,105,97,98,108, - 101,44,32,114,101,116,117,114,110,32,78,111,110,101,32,105, - 102,32,105,116,32,100,111,101,115,110,39,116,32,101,120,105, - 115,116,46,10,32,32,32,32,32,32,32,32,84,104,101,32, - 111,112,116,105,111,110,97,108,32,115,101,99,111,110,100,32, - 97,114,103,117,109,101,110,116,32,99,97,110,32,115,112,101, - 99,105,102,121,32,97,110,32,97,108,116,101,114,110,97,116, - 101,32,100,101,102,97,117,108,116,46,10,32,32,32,32,32, - 32,32,32,107,101,121,44,32,100,101,102,97,117,108,116,32, - 97,110,100,32,116,104,101,32,114,101,115,117,108,116,32,97, - 114,101,32,98,121,116,101,115,46,41,2,218,8,101,110,118, - 105,114,111,110,98,114,238,0,0,0,114,62,1,0,0,115, - 2,0,0,0,32,32,114,25,0,0,0,218,7,103,101,116, - 101,110,118,98,114,69,1,0,0,61,3,0,0,115,21,0, - 0,0,128,0,244,8,0,16,24,143,124,137,124,152,67,160, - 23,211,15,41,208,8,41,114,27,0,0,0,41,2,114,68, - 1,0,0,114,69,1,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,3,0,0,0,243,118,0, - 0,0,135,2,135,3,151,0,116,1,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,138,2, - 116,1,0,0,0,0,0,0,0,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,138,3,136,2,136,3,102,2,100,1, - 132,8,125,0,136,2,136,3,102,2,100,2,132,8,125,1, - 124,0,124,1,102,2,83,0,41,3,78,99,1,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,19,0,0,0, - 243,98,0,0,0,149,2,151,0,116,1,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,125,0,116, - 3,0,0,0,0,0,0,0,0,124,0,116,4,0,0,0, - 0,0,0,0,0,171,2,0,0,0,0,0,0,114,18,124, - 0,106,7,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,137,1,137,2,171,2,0,0,0,0,0, - 0,83,0,124,0,83,0,41,1,97,23,1,0,0,69,110, + 100,101,102,97,117,108,116,46,10,107,101,121,44,32,100,101, + 102,97,117,108,116,32,97,110,100,32,116,104,101,32,114,101, + 115,117,108,116,32,97,114,101,32,115,116,114,46,41,2,114, + 222,0,0,0,114,240,0,0,0,169,2,114,6,1,0,0, + 218,7,100,101,102,97,117,108,116,115,2,0,0,0,32,32, + 114,25,0,0,0,218,6,103,101,116,101,110,118,114,85,1, + 0,0,43,3,0,0,115,19,0,0,0,128,0,244,8,0, + 12,19,143,59,137,59,144,115,211,11,36,208,4,36,114,27, + 0,0,0,41,2,114,85,1,0,0,114,242,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, + 3,0,0,0,243,114,0,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,85,0,91,2,0,0,0,0,0,0,0, + 0,53,2,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,100,33,0,0,91,5,0,0,0,0,0,0,0,0,83, + 1,91,7,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,82,8,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,45,6,0,0,53,1,0, + 0,0,0,0,0,101,1,85,0,36,0,41,2,78,122,22, + 98,121,116,101,115,32,101,120,112,101,99,116,101,100,44,32, + 110,111,116,32,37,115,41,5,114,116,0,0,0,114,117,0, + 0,0,114,241,0,0,0,114,64,1,0,0,114,56,1,0, + 0,114,65,1,0,0,115,1,0,0,0,32,114,25,0,0, + 0,218,12,95,99,104,101,99,107,95,98,121,116,101,115,114, + 87,1,0,0,53,3,0,0,115,47,0,0,0,128,0,220, + 15,25,152,37,164,21,215,15,39,209,15,39,220,18,27,208, + 28,52,180,116,184,69,179,123,215,55,75,209,55,75,209,28, + 75,211,18,76,208,12,76,216,15,20,136,12,114,27,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,44,0,0,0,149,0,91,0,0, + 0,0,0,0,0,0,0,82,3,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,88,1,53,2,0, + 0,0,0,0,0,36,0,41,1,122,163,71,101,116,32,97, + 110,32,101,110,118,105,114,111,110,109,101,110,116,32,118,97, + 114,105,97,98,108,101,44,32,114,101,116,117,114,110,32,78, + 111,110,101,32,105,102,32,105,116,32,100,111,101,115,110,39, + 116,32,101,120,105,115,116,46,10,84,104,101,32,111,112,116, + 105,111,110,97,108,32,115,101,99,111,110,100,32,97,114,103, + 117,109,101,110,116,32,99,97,110,32,115,112,101,99,105,102, + 121,32,97,110,32,97,108,116,101,114,110,97,116,101,32,100, + 101,102,97,117,108,116,46,10,107,101,121,44,32,100,101,102, + 97,117,108,116,32,97,110,100,32,116,104,101,32,114,101,115, + 117,108,116,32,97,114,101,32,98,121,116,101,115,46,41,2, + 218,8,101,110,118,105,114,111,110,98,114,240,0,0,0,114, + 83,1,0,0,115,2,0,0,0,32,32,114,25,0,0,0, + 218,7,103,101,116,101,110,118,98,114,90,1,0,0,64,3, + 0,0,115,19,0,0,0,128,0,244,8,0,16,24,143,124, + 137,124,152,67,211,15,41,208,8,41,114,27,0,0,0,41, + 2,114,89,1,0,0,114,90,1,0,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, + 243,124,0,0,0,94,2,94,3,149,0,91,0,0,0,0, + 0,0,0,0,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,53,0,0,0,0, + 0,0,0,109,2,91,0,0,0,0,0,0,0,0,0,82, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,53,0,0,0,0,0,0,0,109,3,85, + 2,85,3,52,2,83,1,26,0,106,8,110,0,85,2,85, + 3,52,2,83,2,26,0,106,8,110,1,88,1,52,2,36, + 0,41,3,78,99,1,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,19,0,0,0,243,108,0,0,0,62,2, + 149,0,91,1,0,0,0,0,0,0,0,0,85,0,53,1, + 0,0,0,0,0,0,110,0,91,3,0,0,0,0,0,0, + 0,0,85,0,91,4,0,0,0,0,0,0,0,0,53,2, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,97,18, + 0,0,85,0,82,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,84,1,84,2,53,2,0,0, + 0,0,0,0,36,0,85,0,36,0,41,1,122,247,69,110, 99,111,100,101,32,102,105,108,101,110,97,109,101,32,40,97, 110,32,111,115,46,80,97,116,104,76,105,107,101,44,32,98, 121,116,101,115,44,32,111,114,32,115,116,114,41,32,116,111, 32,116,104,101,32,102,105,108,101,115,121,115,116,101,109,10, - 32,32,32,32,32,32,32,32,101,110,99,111,100,105,110,103, - 32,119,105,116,104,32,39,115,117,114,114,111,103,97,116,101, - 101,115,99,97,112,101,39,32,101,114,114,111,114,32,104,97, - 110,100,108,101,114,44,32,114,101,116,117,114,110,32,98,121, - 116,101,115,32,117,110,99,104,97,110,103,101,100,46,10,32, - 32,32,32,32,32,32,32,79,110,32,87,105,110,100,111,119, + 101,110,99,111,100,105,110,103,32,119,105,116,104,32,39,115, + 117,114,114,111,103,97,116,101,101,115,99,97,112,101,39,32, + 101,114,114,111,114,32,104,97,110,100,108,101,114,44,32,114, + 101,116,117,114,110,32,98,121,116,101,115,32,117,110,99,104, + 97,110,103,101,100,46,10,79,110,32,87,105,110,100,111,119, 115,44,32,117,115,101,32,39,115,116,114,105,99,116,39,32, 101,114,114,111,114,32,104,97,110,100,108,101,114,32,105,102, 32,116,104,101,32,102,105,108,101,32,115,121,115,116,101,109, - 32,101,110,99,111,100,105,110,103,32,105,115,10,32,32,32, - 32,32,32,32,32,39,109,98,99,115,39,32,40,119,104,105, - 99,104,32,105,115,32,116,104,101,32,100,101,102,97,117,108, - 116,32,101,110,99,111,100,105,110,103,41,46,10,32,32,32, - 32,32,32,32,32,41,4,114,134,0,0,0,114,115,0,0, - 0,114,47,0,0,0,114,52,1,0,0,169,3,218,8,102, - 105,108,101,110,97,109,101,114,56,1,0,0,218,6,101,114, + 32,101,110,99,111,100,105,110,103,32,105,115,10,39,109,98, + 99,115,39,32,40,119,104,105,99,104,32,105,115,32,116,104, + 101,32,100,101,102,97,117,108,116,32,101,110,99,111,100,105, + 110,103,41,46,10,41,4,114,135,0,0,0,114,116,0,0, + 0,114,47,0,0,0,114,70,1,0,0,169,3,218,8,102, + 105,108,101,110,97,109,101,114,75,1,0,0,218,6,101,114, 114,111,114,115,115,3,0,0,0,32,128,128,114,25,0,0, - 0,114,17,0,0,0,122,26,95,102,115,99,111,100,101,99, + 0,114,17,0,0,0,218,26,95,102,115,99,111,100,101,99, 46,60,108,111,99,97,108,115,62,46,102,115,101,110,99,111, - 100,101,73,3,0,0,115,47,0,0,0,248,128,0,244,12, - 0,20,26,152,40,211,19,35,136,8,220,11,21,144,104,164, - 3,212,11,36,216,19,27,151,63,145,63,160,56,168,86,211, - 19,52,208,12,52,224,19,27,136,79,114,27,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 19,0,0,0,243,98,0,0,0,149,2,151,0,116,1,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,125,0,116,3,0,0,0,0,0,0,0,0,124,0,116, - 4,0,0,0,0,0,0,0,0,171,2,0,0,0,0,0, - 0,114,18,124,0,106,7,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,137,1,137,2,171,2,0, - 0,0,0,0,0,83,0,124,0,83,0,41,1,97,23,1, - 0,0,68,101,99,111,100,101,32,102,105,108,101,110,97,109, - 101,32,40,97,110,32,111,115,46,80,97,116,104,76,105,107, - 101,44,32,98,121,116,101,115,44,32,111,114,32,115,116,114, - 41,32,102,114,111,109,32,116,104,101,32,102,105,108,101,115, - 121,115,116,101,109,10,32,32,32,32,32,32,32,32,101,110, - 99,111,100,105,110,103,32,119,105,116,104,32,39,115,117,114, - 114,111,103,97,116,101,101,115,99,97,112,101,39,32,101,114, - 114,111,114,32,104,97,110,100,108,101,114,44,32,114,101,116, - 117,114,110,32,115,116,114,32,117,110,99,104,97,110,103,101, - 100,46,32,79,110,10,32,32,32,32,32,32,32,32,87,105, - 110,100,111,119,115,44,32,117,115,101,32,39,115,116,114,105, - 99,116,39,32,101,114,114,111,114,32,104,97,110,100,108,101, - 114,32,105,102,32,116,104,101,32,102,105,108,101,32,115,121, - 115,116,101,109,32,101,110,99,111,100,105,110,103,32,105,115, - 10,32,32,32,32,32,32,32,32,39,109,98,99,115,39,32, - 40,119,104,105,99,104,32,105,115,32,116,104,101,32,100,101, - 102,97,117,108,116,32,101,110,99,111,100,105,110,103,41,46, - 10,32,32,32,32,32,32,32,32,41,4,114,134,0,0,0, - 114,115,0,0,0,114,116,0,0,0,114,58,1,0,0,114, - 72,1,0,0,115,3,0,0,0,32,128,128,114,25,0,0, - 0,114,18,0,0,0,122,26,95,102,115,99,111,100,101,99, - 46,60,108,111,99,97,108,115,62,46,102,115,100,101,99,111, - 100,101,85,3,0,0,115,47,0,0,0,248,128,0,244,12, + 100,101,76,3,0,0,115,50,0,0,0,248,128,0,244,12, 0,20,26,152,40,211,19,35,136,8,220,11,21,144,104,164, - 5,212,11,38,216,19,27,151,63,145,63,160,56,168,86,211, - 19,52,208,12,52,224,19,27,136,79,114,27,0,0,0,41, - 3,114,132,0,0,0,114,59,1,0,0,218,25,103,101,116, - 102,105,108,101,115,121,115,116,101,109,101,110,99,111,100,101, - 101,114,114,111,114,115,41,4,114,17,0,0,0,114,18,0, - 0,0,114,56,1,0,0,114,74,1,0,0,115,4,0,0, - 0,32,32,64,64,114,25,0,0,0,218,8,95,102,115,99, - 111,100,101,99,114,77,1,0,0,69,3,0,0,115,54,0, - 0,0,249,128,0,220,15,18,215,15,40,209,15,40,211,15, - 42,128,72,220,13,16,215,13,42,209,13,42,211,13,44,128, - 70,245,4,10,5,28,245,24,10,5,28,240,24,0,12,20, - 144,88,208,11,29,208,4,29,114,27,0,0,0,218,4,102, - 111,114,107,218,6,115,112,97,119,110,118,114,200,0,0,0, - 41,3,218,6,80,95,87,65,73,84,218,8,80,95,78,79, - 87,65,73,84,218,9,80,95,78,79,87,65,73,84,79,99, - 5,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 3,0,0,0,243,58,1,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,2,116,2,0,0,0,0,0,0,0, - 0,116,4,0,0,0,0,0,0,0,0,102,2,171,2,0, - 0,0,0,0,0,115,11,116,7,0,0,0,0,0,0,0, - 0,100,1,171,1,0,0,0,0,0,0,130,1,124,2,114, - 5,124,2,100,2,25,0,0,0,115,11,116,9,0,0,0, - 0,0,0,0,0,100,3,171,1,0,0,0,0,0,0,130, - 1,116,11,0,0,0,0,0,0,0,0,171,0,0,0,0, - 0,0,0,125,5,124,5,115,25,9,0,124,3,128,10,2, - 0,124,4,124,1,124,2,171,2,0,0,0,0,0,0,1, - 0,110,11,2,0,124,4,124,1,124,2,124,3,171,3,0, - 0,0,0,0,0,1,0,121,0,121,0,124,0,116,14,0, - 0,0,0,0,0,0,0,107,40,0,0,114,2,124,5,83, - 0,9,0,116,17,0,0,0,0,0,0,0,0,124,5,100, - 2,171,2,0,0,0,0,0,0,92,2,0,0,125,6,125, - 7,116,19,0,0,0,0,0,0,0,0,124,7,171,1,0, - 0,0,0,0,0,114,1,140,28,116,21,0,0,0,0,0, - 0,0,0,124,7,171,1,0,0,0,0,0,0,83,0,35, - 0,1,0,116,13,0,0,0,0,0,0,0,0,100,4,171, - 1,0,0,0,0,0,0,1,0,89,0,121,0,120,3,89, - 0,119,1,41,5,78,122,30,97,114,103,118,32,109,117,115, - 116,32,98,101,32,97,32,116,117,112,108,101,32,111,114,32, - 97,32,108,105,115,116,114,2,0,0,0,122,34,97,114,103, - 118,32,102,105,114,115,116,32,101,108,101,109,101,110,116,32, - 99,97,110,110,111,116,32,98,101,32,101,109,112,116,121,233, - 127,0,0,0,41,11,114,115,0,0,0,114,138,0,0,0, - 114,30,0,0,0,114,239,0,0,0,114,241,0,0,0,114, - 78,1,0,0,114,40,0,0,0,114,81,1,0,0,218,7, - 119,97,105,116,112,105,100,218,10,87,73,70,83,84,79,80, - 80,69,68,218,22,119,97,105,116,115,116,97,116,117,115,95, - 116,111,95,101,120,105,116,99,111,100,101,41,8,114,119,0, - 0,0,114,202,0,0,0,114,203,0,0,0,114,207,0,0, - 0,218,4,102,117,110,99,218,3,112,105,100,218,4,119,112, - 105,100,218,3,115,116,115,115,8,0,0,0,32,32,32,32, - 32,32,32,32,114,25,0,0,0,218,9,95,115,112,97,119, - 110,118,101,102,114,92,1,0,0,114,3,0,0,115,164,0, - 0,0,128,0,228,15,25,152,36,164,21,172,4,160,13,212, - 15,46,220,18,27,208,28,60,211,18,61,208,12,61,217,15, - 19,152,52,160,1,154,55,220,18,28,208,29,65,211,18,66, - 208,12,66,220,14,18,139,102,136,3,217,15,18,240,4,6, - 13,27,216,19,22,144,59,217,20,24,152,20,152,116,213,20, - 36,225,20,24,152,20,152,116,160,83,213,20,41,240,5,0, - 21,37,240,14,0,16,20,148,120,210,15,31,216,23,26,144, - 10,216,18,19,220,28,35,160,67,168,17,155,79,145,9,144, - 4,144,99,220,19,29,152,99,148,63,216,20,28,228,23,45, - 168,99,211,23,50,208,16,50,248,240,23,1,13,27,220,16, - 21,144,99,150,10,250,115,12,0,0,0,193,1,22,66,11, - 0,194,11,13,66,26,3,99,3,0,0,0,0,0,0,0, - 0,0,0,0,7,0,0,0,3,0,0,0,243,40,0,0, - 0,151,0,116,1,0,0,0,0,0,0,0,0,124,0,124, - 1,124,2,100,1,116,2,0,0,0,0,0,0,0,0,171, - 5,0,0,0,0,0,0,83,0,41,2,97,21,1,0,0, - 115,112,97,119,110,118,40,109,111,100,101,44,32,102,105,108, - 101,44,32,97,114,103,115,41,32,45,62,32,105,110,116,101, - 103,101,114,10,10,69,120,101,99,117,116,101,32,102,105,108, - 101,32,119,105,116,104,32,97,114,103,117,109,101,110,116,115, - 32,102,114,111,109,32,97,114,103,115,32,105,110,32,97,32, - 115,117,98,112,114,111,99,101,115,115,46,10,73,102,32,109, + 3,215,11,36,209,11,36,216,19,27,151,63,145,63,160,56, + 168,86,211,19,52,208,12,52,224,19,27,136,79,114,27,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,19,0,0,0,243,108,0,0,0,62,2,149,0, + 91,1,0,0,0,0,0,0,0,0,85,0,53,1,0,0, + 0,0,0,0,110,0,91,3,0,0,0,0,0,0,0,0, + 85,0,91,4,0,0,0,0,0,0,0,0,53,2,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,97,18,0,0, + 85,0,82,7,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,84,1,84,2,53,2,0,0,0,0, + 0,0,36,0,85,0,36,0,41,1,122,247,68,101,99,111, + 100,101,32,102,105,108,101,110,97,109,101,32,40,97,110,32, + 111,115,46,80,97,116,104,76,105,107,101,44,32,98,121,116, + 101,115,44,32,111,114,32,115,116,114,41,32,102,114,111,109, + 32,116,104,101,32,102,105,108,101,115,121,115,116,101,109,10, + 101,110,99,111,100,105,110,103,32,119,105,116,104,32,39,115, + 117,114,114,111,103,97,116,101,101,115,99,97,112,101,39,32, + 101,114,114,111,114,32,104,97,110,100,108,101,114,44,32,114, + 101,116,117,114,110,32,115,116,114,32,117,110,99,104,97,110, + 103,101,100,46,32,79,110,10,87,105,110,100,111,119,115,44, + 32,117,115,101,32,39,115,116,114,105,99,116,39,32,101,114, + 114,111,114,32,104,97,110,100,108,101,114,32,105,102,32,116, + 104,101,32,102,105,108,101,32,115,121,115,116,101,109,32,101, + 110,99,111,100,105,110,103,32,105,115,10,39,109,98,99,115, + 39,32,40,119,104,105,99,104,32,105,115,32,116,104,101,32, + 100,101,102,97,117,108,116,32,101,110,99,111,100,105,110,103, + 41,46,10,41,4,114,135,0,0,0,114,116,0,0,0,114, + 117,0,0,0,114,78,1,0,0,114,93,1,0,0,115,3, + 0,0,0,32,128,128,114,25,0,0,0,114,18,0,0,0, + 218,26,95,102,115,99,111,100,101,99,46,60,108,111,99,97, + 108,115,62,46,102,115,100,101,99,111,100,101,88,3,0,0, + 115,50,0,0,0,248,128,0,244,12,0,20,26,152,40,211, + 19,35,136,8,220,11,21,144,104,164,5,215,11,38,209,11, + 38,216,19,27,151,63,145,63,160,56,168,86,211,19,52,208, + 12,52,224,19,27,136,79,114,27,0,0,0,41,3,114,133, + 0,0,0,114,80,1,0,0,218,25,103,101,116,102,105,108, + 101,115,121,115,116,101,109,101,110,99,111,100,101,101,114,114, + 111,114,115,41,4,114,17,0,0,0,114,18,0,0,0,114, + 75,1,0,0,114,95,1,0,0,115,4,0,0,0,32,32, + 64,64,114,25,0,0,0,218,8,95,102,115,99,111,100,101, + 99,114,100,1,0,0,72,3,0,0,115,52,0,0,0,249, + 128,0,220,15,18,215,15,40,210,15,40,211,15,42,128,72, + 220,13,16,215,13,42,210,13,42,211,13,44,128,70,246,4, + 10,5,28,246,24,10,5,28,240,24,0,12,20,208,11,29, + 208,4,29,114,27,0,0,0,218,4,102,111,114,107,218,6, + 115,112,97,119,110,118,114,202,0,0,0,41,3,218,6,80, + 95,87,65,73,84,218,8,80,95,78,79,87,65,73,84,218, + 9,80,95,78,79,87,65,73,84,79,99,5,0,0,0,0, + 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,243, + 106,1,0,0,149,0,91,1,0,0,0,0,0,0,0,0, + 85,2,91,2,0,0,0,0,0,0,0,0,91,4,0,0, + 0,0,0,0,0,0,52,2,53,2,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,100,11,0,0,91,7,0,0, + 0,0,0,0,0,0,83,1,53,1,0,0,0,0,0,0, + 101,1,85,2,40,0,0,0,0,0,0,0,97,10,0,0, + 85,2,83,2,5,0,0,0,40,0,0,0,0,0,0,0, + 100,11,0,0,91,9,0,0,0,0,0,0,0,0,83,3, + 53,1,0,0,0,0,0,0,101,1,91,11,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,110,5,85,5, + 40,0,0,0,0,0,0,0,100,23,0,0,30,0,85,3, + 99,9,0,0,85,4,34,0,88,18,53,2,0,0,0,0, + 0,0,32,0,103,0,85,4,34,0,88,18,85,3,53,3, + 0,0,0,0,0,0,32,0,103,0,85,0,91,14,0,0, + 0,0,0,0,0,0,58,88,0,0,97,2,0,0,85,5, + 36,0,30,0,91,17,0,0,0,0,0,0,0,0,85,5, + 83,2,53,2,0,0,0,0,0,0,117,2,0,0,112,103, + 91,19,0,0,0,0,0,0,0,0,85,7,53,1,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,97,2,0,0, + 77,33,0,0,91,21,0,0,0,0,0,0,0,0,85,7, + 53,1,0,0,0,0,0,0,36,0,33,0,32,0,91,13, + 0,0,0,0,0,0,0,0,83,4,53,1,0,0,0,0, + 0,0,32,0,31,0,103,0,61,3,31,0,102,1,41,5, + 78,122,30,97,114,103,118,32,109,117,115,116,32,98,101,32, + 97,32,116,117,112,108,101,32,111,114,32,97,32,108,105,115, + 116,114,2,0,0,0,122,34,97,114,103,118,32,102,105,114, + 115,116,32,101,108,101,109,101,110,116,32,99,97,110,110,111, + 116,32,98,101,32,101,109,112,116,121,233,127,0,0,0,41, + 11,114,116,0,0,0,114,139,0,0,0,114,30,0,0,0, + 114,241,0,0,0,114,243,0,0,0,114,101,1,0,0,114, + 40,0,0,0,114,104,1,0,0,218,7,119,97,105,116,112, + 105,100,218,10,87,73,70,83,84,79,80,80,69,68,218,22, + 119,97,105,116,115,116,97,116,117,115,95,116,111,95,101,120, + 105,116,99,111,100,101,41,8,114,120,0,0,0,114,204,0, + 0,0,114,205,0,0,0,114,209,0,0,0,218,4,102,117, + 110,99,218,3,112,105,100,218,4,119,112,105,100,218,3,115, + 116,115,115,8,0,0,0,32,32,32,32,32,32,32,32,114, + 25,0,0,0,218,9,95,115,112,97,119,110,118,101,102,114, + 115,1,0,0,117,3,0,0,115,158,0,0,0,128,0,228, + 15,25,152,36,164,21,172,4,160,13,215,15,46,209,15,46, + 220,18,27,208,28,60,211,18,61,208,12,61,222,15,19,152, + 52,160,1,159,55,220,18,28,208,29,65,211,18,66,208,12, + 66,220,14,18,139,102,136,3,222,15,18,240,4,6,13,27, + 216,19,22,145,59,217,20,24,152,20,213,20,36,225,20,24, + 152,20,160,83,213,20,41,240,10,0,16,20,148,120,211,15, + 31,216,23,26,144,10,216,18,19,220,28,35,160,67,168,17, + 155,79,145,9,144,4,220,19,29,152,99,151,63,145,63,217, + 20,28,228,23,45,168,99,211,23,50,208,16,50,248,240,23, + 1,13,27,220,16,21,144,99,150,10,250,115,18,0,0,0, + 193,21,11,66,35,0,193,33,9,66,35,0,194,35,13,66, + 50,3,99,3,0,0,0,0,0,0,0,0,0,0,0,7, + 0,0,0,3,0,0,0,243,38,0,0,0,149,0,91,1, + 0,0,0,0,0,0,0,0,88,1,85,2,83,1,91,2, + 0,0,0,0,0,0,0,0,53,5,0,0,0,0,0,0, + 36,0,41,2,97,21,1,0,0,115,112,97,119,110,118,40, + 109,111,100,101,44,32,102,105,108,101,44,32,97,114,103,115, + 41,32,45,62,32,105,110,116,101,103,101,114,10,10,69,120, + 101,99,117,116,101,32,102,105,108,101,32,119,105,116,104,32, + 97,114,103,117,109,101,110,116,115,32,102,114,111,109,32,97, + 114,103,115,32,105,110,32,97,32,115,117,98,112,114,111,99, + 101,115,115,46,10,73,102,32,109,111,100,101,32,61,61,32, + 80,95,78,79,87,65,73,84,32,114,101,116,117,114,110,32, + 116,104,101,32,112,105,100,32,111,102,32,116,104,101,32,112, + 114,111,99,101,115,115,46,10,73,102,32,109,111,100,101,32, + 61,61,32,80,95,87,65,73,84,32,114,101,116,117,114,110, + 32,116,104,101,32,112,114,111,99,101,115,115,39,115,32,101, + 120,105,116,32,99,111,100,101,32,105,102,32,105,116,32,101, + 120,105,116,115,32,110,111,114,109,97,108,108,121,59,10,111, + 116,104,101,114,119,105,115,101,32,114,101,116,117,114,110,32, + 45,83,73,71,44,32,119,104,101,114,101,32,83,73,71,32, + 105,115,32,116,104,101,32,115,105,103,110,97,108,32,116,104, + 97,116,32,107,105,108,108,101,100,32,105,116,46,32,78,41, + 2,114,115,1,0,0,114,202,0,0,0,169,3,114,120,0, + 0,0,114,204,0,0,0,114,205,0,0,0,115,3,0,0, + 0,32,32,32,114,25,0,0,0,114,102,1,0,0,114,102, + 1,0,0,144,3,0,0,115,21,0,0,0,128,0,244,14, + 0,16,25,152,20,160,84,168,52,180,21,211,15,55,208,8, + 55,114,27,0,0,0,99,4,0,0,0,0,0,0,0,0, + 0,0,0,7,0,0,0,3,0,0,0,243,36,0,0,0, + 149,0,91,1,0,0,0,0,0,0,0,0,88,1,88,35, + 91,2,0,0,0,0,0,0,0,0,53,5,0,0,0,0, + 0,0,36,0,41,1,97,58,1,0,0,115,112,97,119,110, + 118,101,40,109,111,100,101,44,32,102,105,108,101,44,32,97, + 114,103,115,44,32,101,110,118,41,32,45,62,32,105,110,116, + 101,103,101,114,10,10,69,120,101,99,117,116,101,32,102,105, + 108,101,32,119,105,116,104,32,97,114,103,117,109,101,110,116, + 115,32,102,114,111,109,32,97,114,103,115,32,105,110,32,97, + 32,115,117,98,112,114,111,99,101,115,115,32,119,105,116,104, + 32,116,104,101,10,115,112,101,99,105,102,105,101,100,32,101, + 110,118,105,114,111,110,109,101,110,116,46,10,73,102,32,109, 111,100,101,32,61,61,32,80,95,78,79,87,65,73,84,32, 114,101,116,117,114,110,32,116,104,101,32,112,105,100,32,111, 102,32,116,104,101,32,112,114,111,99,101,115,115,46,10,73, @@ -2009,55 +2068,112 @@ const unsigned char _Py_M__os[] = { 114,101,116,117,114,110,32,45,83,73,71,44,32,119,104,101, 114,101,32,83,73,71,32,105,115,32,116,104,101,32,115,105, 103,110,97,108,32,116,104,97,116,32,107,105,108,108,101,100, - 32,105,116,46,32,78,41,2,114,92,1,0,0,114,200,0, - 0,0,169,3,114,119,0,0,0,114,202,0,0,0,114,203, - 0,0,0,115,3,0,0,0,32,32,32,114,25,0,0,0, - 114,79,1,0,0,114,79,1,0,0,141,3,0,0,115,23, - 0,0,0,128,0,244,14,0,16,25,152,20,152,116,160,84, - 168,52,180,21,211,15,55,208,8,55,114,27,0,0,0,99, - 4,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0, - 3,0,0,0,243,40,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,124,1,124,2,124,3,116,2,0, - 0,0,0,0,0,0,0,171,5,0,0,0,0,0,0,83, - 0,41,1,97,58,1,0,0,115,112,97,119,110,118,101,40, - 109,111,100,101,44,32,102,105,108,101,44,32,97,114,103,115, - 44,32,101,110,118,41,32,45,62,32,105,110,116,101,103,101, - 114,10,10,69,120,101,99,117,116,101,32,102,105,108,101,32, + 32,105,116,46,32,41,2,114,115,1,0,0,114,91,0,0, + 0,169,4,114,120,0,0,0,114,204,0,0,0,114,205,0, + 0,0,114,209,0,0,0,115,4,0,0,0,32,32,32,32, + 114,25,0,0,0,218,7,115,112,97,119,110,118,101,114,120, + 1,0,0,153,3,0,0,115,19,0,0,0,128,0,244,16, + 0,16,25,152,20,160,84,180,6,211,15,55,208,8,55,114, + 27,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, + 0,7,0,0,0,3,0,0,0,243,38,0,0,0,149,0, + 91,1,0,0,0,0,0,0,0,0,88,1,85,2,83,1, + 91,2,0,0,0,0,0,0,0,0,53,5,0,0,0,0, + 0,0,36,0,41,2,97,56,1,0,0,115,112,97,119,110, + 118,112,40,109,111,100,101,44,32,102,105,108,101,44,32,97, + 114,103,115,41,32,45,62,32,105,110,116,101,103,101,114,10, + 10,69,120,101,99,117,116,101,32,102,105,108,101,32,40,119, + 104,105,99,104,32,105,115,32,108,111,111,107,101,100,32,102, + 111,114,32,97,108,111,110,103,32,36,80,65,84,72,41,32, 119,105,116,104,32,97,114,103,117,109,101,110,116,115,32,102, - 114,111,109,32,97,114,103,115,32,105,110,32,97,32,115,117, - 98,112,114,111,99,101,115,115,32,119,105,116,104,32,116,104, - 101,10,115,112,101,99,105,102,105,101,100,32,101,110,118,105, - 114,111,110,109,101,110,116,46,10,73,102,32,109,111,100,101, - 32,61,61,32,80,95,78,79,87,65,73,84,32,114,101,116, - 117,114,110,32,116,104,101,32,112,105,100,32,111,102,32,116, - 104,101,32,112,114,111,99,101,115,115,46,10,73,102,32,109, - 111,100,101,32,61,61,32,80,95,87,65,73,84,32,114,101, - 116,117,114,110,32,116,104,101,32,112,114,111,99,101,115,115, - 39,115,32,101,120,105,116,32,99,111,100,101,32,105,102,32, - 105,116,32,101,120,105,116,115,32,110,111,114,109,97,108,108, - 121,59,10,111,116,104,101,114,119,105,115,101,32,114,101,116, - 117,114,110,32,45,83,73,71,44,32,119,104,101,114,101,32, - 83,73,71,32,105,115,32,116,104,101,32,115,105,103,110,97, - 108,32,116,104,97,116,32,107,105,108,108,101,100,32,105,116, - 46,32,41,2,114,92,1,0,0,114,88,0,0,0,169,4, - 114,119,0,0,0,114,202,0,0,0,114,203,0,0,0,114, - 207,0,0,0,115,4,0,0,0,32,32,32,32,114,25,0, - 0,0,218,7,115,112,97,119,110,118,101,114,97,1,0,0, - 150,3,0,0,115,23,0,0,0,128,0,244,16,0,16,25, - 152,20,152,116,160,84,168,51,180,6,211,15,55,208,8,55, - 114,27,0,0,0,99,3,0,0,0,0,0,0,0,0,0, - 0,0,7,0,0,0,3,0,0,0,243,40,0,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,124,0,124,1,124, - 2,100,1,116,2,0,0,0,0,0,0,0,0,171,5,0, - 0,0,0,0,0,83,0,41,2,97,56,1,0,0,115,112, - 97,119,110,118,112,40,109,111,100,101,44,32,102,105,108,101, - 44,32,97,114,103,115,41,32,45,62,32,105,110,116,101,103, + 114,111,109,10,97,114,103,115,32,105,110,32,97,32,115,117, + 98,112,114,111,99,101,115,115,46,10,73,102,32,109,111,100, + 101,32,61,61,32,80,95,78,79,87,65,73,84,32,114,101, + 116,117,114,110,32,116,104,101,32,112,105,100,32,111,102,32, + 116,104,101,32,112,114,111,99,101,115,115,46,10,73,102,32, + 109,111,100,101,32,61,61,32,80,95,87,65,73,84,32,114, + 101,116,117,114,110,32,116,104,101,32,112,114,111,99,101,115, + 115,39,115,32,101,120,105,116,32,99,111,100,101,32,105,102, + 32,105,116,32,101,120,105,116,115,32,110,111,114,109,97,108, + 108,121,59,10,111,116,104,101,114,119,105,115,101,32,114,101, + 116,117,114,110,32,45,83,73,71,44,32,119,104,101,114,101, + 32,83,73,71,32,105,115,32,116,104,101,32,115,105,103,110, + 97,108,32,116,104,97,116,32,107,105,108,108,101,100,32,105, + 116,46,32,78,41,2,114,115,1,0,0,114,212,0,0,0, + 114,117,1,0,0,115,3,0,0,0,32,32,32,114,25,0, + 0,0,218,7,115,112,97,119,110,118,112,114,122,1,0,0, + 165,3,0,0,115,21,0,0,0,128,0,244,16,0,16,25, + 152,20,160,84,168,52,180,22,211,15,56,208,8,56,114,27, + 0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,0, + 7,0,0,0,3,0,0,0,243,36,0,0,0,149,0,91, + 1,0,0,0,0,0,0,0,0,88,1,88,35,91,2,0, + 0,0,0,0,0,0,0,53,5,0,0,0,0,0,0,36, + 0,41,1,97,92,1,0,0,115,112,97,119,110,118,112,101, + 40,109,111,100,101,44,32,102,105,108,101,44,32,97,114,103, + 115,44,32,101,110,118,41,32,45,62,32,105,110,116,101,103, 101,114,10,10,69,120,101,99,117,116,101,32,102,105,108,101, 32,40,119,104,105,99,104,32,105,115,32,108,111,111,107,101, 100,32,102,111,114,32,97,108,111,110,103,32,36,80,65,84, 72,41,32,119,105,116,104,32,97,114,103,117,109,101,110,116, 115,32,102,114,111,109,10,97,114,103,115,32,105,110,32,97, - 32,115,117,98,112,114,111,99,101,115,115,46,10,73,102,32, + 32,115,117,98,112,114,111,99,101,115,115,32,119,105,116,104, + 32,116,104,101,32,115,117,112,112,108,105,101,100,32,101,110, + 118,105,114,111,110,109,101,110,116,46,10,73,102,32,109,111, + 100,101,32,61,61,32,80,95,78,79,87,65,73,84,32,114, + 101,116,117,114,110,32,116,104,101,32,112,105,100,32,111,102, + 32,116,104,101,32,112,114,111,99,101,115,115,46,10,73,102, + 32,109,111,100,101,32,61,61,32,80,95,87,65,73,84,32, + 114,101,116,117,114,110,32,116,104,101,32,112,114,111,99,101, + 115,115,39,115,32,101,120,105,116,32,99,111,100,101,32,105, + 102,32,105,116,32,101,120,105,116,115,32,110,111,114,109,97, + 108,108,121,59,10,111,116,104,101,114,119,105,115,101,32,114, + 101,116,117,114,110,32,45,83,73,71,44,32,119,104,101,114, + 101,32,83,73,71,32,105,115,32,116,104,101,32,115,105,103, + 110,97,108,32,116,104,97,116,32,107,105,108,108,101,100,32, + 105,116,46,32,41,2,114,115,1,0,0,114,215,0,0,0, + 114,119,1,0,0,115,4,0,0,0,32,32,32,32,114,25, + 0,0,0,218,8,115,112,97,119,110,118,112,101,114,124,1, + 0,0,175,3,0,0,115,19,0,0,0,128,0,244,16,0, + 16,25,152,20,160,84,180,7,211,15,56,208,8,56,114,27, + 0,0,0,41,4,114,102,1,0,0,114,120,1,0,0,114, + 122,1,0,0,114,124,1,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,7,0,0,0,243,26, + 0,0,0,149,0,91,1,0,0,0,0,0,0,0,0,88, + 1,85,2,53,3,0,0,0,0,0,0,36,0,41,1,97, + 22,1,0,0,115,112,97,119,110,108,40,109,111,100,101,44, + 32,102,105,108,101,44,32,42,97,114,103,115,41,32,45,62, + 32,105,110,116,101,103,101,114,10,10,69,120,101,99,117,116, + 101,32,102,105,108,101,32,119,105,116,104,32,97,114,103,117, + 109,101,110,116,115,32,102,114,111,109,32,97,114,103,115,32, + 105,110,32,97,32,115,117,98,112,114,111,99,101,115,115,46, + 10,73,102,32,109,111,100,101,32,61,61,32,80,95,78,79, + 87,65,73,84,32,114,101,116,117,114,110,32,116,104,101,32, + 112,105,100,32,111,102,32,116,104,101,32,112,114,111,99,101, + 115,115,46,10,73,102,32,109,111,100,101,32,61,61,32,80, + 95,87,65,73,84,32,114,101,116,117,114,110,32,116,104,101, + 32,112,114,111,99,101,115,115,39,115,32,101,120,105,116,32, + 99,111,100,101,32,105,102,32,105,116,32,101,120,105,116,115, + 32,110,111,114,109,97,108,108,121,59,10,111,116,104,101,114, + 119,105,115,101,32,114,101,116,117,114,110,32,45,83,73,71, + 44,32,119,104,101,114,101,32,83,73,71,32,105,115,32,116, + 104,101,32,115,105,103,110,97,108,32,116,104,97,116,32,107, + 105,108,108,101,100,32,105,116,46,32,41,1,114,102,1,0, + 0,114,117,1,0,0,115,3,0,0,0,32,32,32,114,25, + 0,0,0,218,6,115,112,97,119,110,108,114,126,1,0,0, + 193,3,0,0,115,17,0,0,0,128,0,244,14,0,16,22, + 144,100,160,36,211,15,39,208,8,39,114,27,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0, + 7,0,0,0,243,44,0,0,0,149,0,85,2,83,1,5, + 0,0,0,110,3,91,1,0,0,0,0,0,0,0,0,88, + 1,85,2,83,2,83,1,4,0,85,3,53,4,0,0,0, + 0,0,0,36,0,41,3,97,58,1,0,0,115,112,97,119, + 110,108,101,40,109,111,100,101,44,32,102,105,108,101,44,32, + 42,97,114,103,115,44,32,101,110,118,41,32,45,62,32,105, + 110,116,101,103,101,114,10,10,69,120,101,99,117,116,101,32, + 102,105,108,101,32,119,105,116,104,32,97,114,103,117,109,101, + 110,116,115,32,102,114,111,109,32,97,114,103,115,32,105,110, + 32,97,32,115,117,98,112,114,111,99,101,115,115,32,119,105, + 116,104,32,116,104,101,10,115,117,112,112,108,105,101,100,32, + 101,110,118,105,114,111,110,109,101,110,116,46,10,73,102,32, 109,111,100,101,32,61,61,32,80,95,78,79,87,65,73,84, 32,114,101,116,117,114,110,32,116,104,101,32,112,105,100,32, 111,102,32,116,104,101,32,112,114,111,99,101,115,115,46,10, @@ -2069,725 +2185,683 @@ const unsigned char _Py_M__os[] = { 32,114,101,116,117,114,110,32,45,83,73,71,44,32,119,104, 101,114,101,32,83,73,71,32,105,115,32,116,104,101,32,115, 105,103,110,97,108,32,116,104,97,116,32,107,105,108,108,101, - 100,32,105,116,46,32,78,41,2,114,92,1,0,0,114,210, - 0,0,0,114,94,1,0,0,115,3,0,0,0,32,32,32, - 114,25,0,0,0,218,7,115,112,97,119,110,118,112,114,99, - 1,0,0,162,3,0,0,115,23,0,0,0,128,0,244,16, - 0,16,25,152,20,152,116,160,84,168,52,180,22,211,15,56, - 208,8,56,114,27,0,0,0,99,4,0,0,0,0,0,0, - 0,0,0,0,0,7,0,0,0,3,0,0,0,243,40,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, - 124,1,124,2,124,3,116,2,0,0,0,0,0,0,0,0, - 171,5,0,0,0,0,0,0,83,0,41,1,97,92,1,0, - 0,115,112,97,119,110,118,112,101,40,109,111,100,101,44,32, - 102,105,108,101,44,32,97,114,103,115,44,32,101,110,118,41, - 32,45,62,32,105,110,116,101,103,101,114,10,10,69,120,101, - 99,117,116,101,32,102,105,108,101,32,40,119,104,105,99,104, - 32,105,115,32,108,111,111,107,101,100,32,102,111,114,32,97, - 108,111,110,103,32,36,80,65,84,72,41,32,119,105,116,104, - 32,97,114,103,117,109,101,110,116,115,32,102,114,111,109,10, - 97,114,103,115,32,105,110,32,97,32,115,117,98,112,114,111, - 99,101,115,115,32,119,105,116,104,32,116,104,101,32,115,117, - 112,112,108,105,101,100,32,101,110,118,105,114,111,110,109,101, - 110,116,46,10,73,102,32,109,111,100,101,32,61,61,32,80, - 95,78,79,87,65,73,84,32,114,101,116,117,114,110,32,116, - 104,101,32,112,105,100,32,111,102,32,116,104,101,32,112,114, - 111,99,101,115,115,46,10,73,102,32,109,111,100,101,32,61, - 61,32,80,95,87,65,73,84,32,114,101,116,117,114,110,32, - 116,104,101,32,112,114,111,99,101,115,115,39,115,32,101,120, - 105,116,32,99,111,100,101,32,105,102,32,105,116,32,101,120, - 105,116,115,32,110,111,114,109,97,108,108,121,59,10,111,116, - 104,101,114,119,105,115,101,32,114,101,116,117,114,110,32,45, - 83,73,71,44,32,119,104,101,114,101,32,83,73,71,32,105, - 115,32,116,104,101,32,115,105,103,110,97,108,32,116,104,97, - 116,32,107,105,108,108,101,100,32,105,116,46,32,41,2,114, - 92,1,0,0,114,213,0,0,0,114,96,1,0,0,115,4, - 0,0,0,32,32,32,32,114,25,0,0,0,218,8,115,112, - 97,119,110,118,112,101,114,101,1,0,0,172,3,0,0,115, - 23,0,0,0,128,0,244,16,0,16,25,152,20,152,116,160, - 84,168,51,180,7,211,15,56,208,8,56,114,27,0,0,0, - 41,4,114,79,1,0,0,114,97,1,0,0,114,99,1,0, - 0,114,101,1,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,7,0,0,0,243,28,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,124,0,124,1, - 124,2,171,3,0,0,0,0,0,0,83,0,41,1,97,22, - 1,0,0,115,112,97,119,110,108,40,109,111,100,101,44,32, - 102,105,108,101,44,32,42,97,114,103,115,41,32,45,62,32, - 105,110,116,101,103,101,114,10,10,69,120,101,99,117,116,101, - 32,102,105,108,101,32,119,105,116,104,32,97,114,103,117,109, - 101,110,116,115,32,102,114,111,109,32,97,114,103,115,32,105, - 110,32,97,32,115,117,98,112,114,111,99,101,115,115,46,10, - 73,102,32,109,111,100,101,32,61,61,32,80,95,78,79,87, - 65,73,84,32,114,101,116,117,114,110,32,116,104,101,32,112, - 105,100,32,111,102,32,116,104,101,32,112,114,111,99,101,115, - 115,46,10,73,102,32,109,111,100,101,32,61,61,32,80,95, - 87,65,73,84,32,114,101,116,117,114,110,32,116,104,101,32, - 112,114,111,99,101,115,115,39,115,32,101,120,105,116,32,99, - 111,100,101,32,105,102,32,105,116,32,101,120,105,116,115,32, - 110,111,114,109,97,108,108,121,59,10,111,116,104,101,114,119, - 105,115,101,32,114,101,116,117,114,110,32,45,83,73,71,44, - 32,119,104,101,114,101,32,83,73,71,32,105,115,32,116,104, - 101,32,115,105,103,110,97,108,32,116,104,97,116,32,107,105, - 108,108,101,100,32,105,116,46,32,41,1,114,79,1,0,0, - 114,94,1,0,0,115,3,0,0,0,32,32,32,114,25,0, - 0,0,218,6,115,112,97,119,110,108,114,103,1,0,0,190, - 3,0,0,115,19,0,0,0,128,0,244,14,0,16,22,144, - 100,152,68,160,36,211,15,39,208,8,39,114,27,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,7,0,0, - 0,7,0,0,0,243,46,0,0,0,151,0,124,2,100,1, - 25,0,0,0,125,3,116,1,0,0,0,0,0,0,0,0, - 124,0,124,1,124,2,100,2,100,1,26,0,124,3,171,4, - 0,0,0,0,0,0,83,0,41,3,97,58,1,0,0,115, - 112,97,119,110,108,101,40,109,111,100,101,44,32,102,105,108, - 101,44,32,42,97,114,103,115,44,32,101,110,118,41,32,45, - 62,32,105,110,116,101,103,101,114,10,10,69,120,101,99,117, - 116,101,32,102,105,108,101,32,119,105,116,104,32,97,114,103, - 117,109,101,110,116,115,32,102,114,111,109,32,97,114,103,115, - 32,105,110,32,97,32,115,117,98,112,114,111,99,101,115,115, - 32,119,105,116,104,32,116,104,101,10,115,117,112,112,108,105, - 101,100,32,101,110,118,105,114,111,110,109,101,110,116,46,10, - 73,102,32,109,111,100,101,32,61,61,32,80,95,78,79,87, - 65,73,84,32,114,101,116,117,114,110,32,116,104,101,32,112, - 105,100,32,111,102,32,116,104,101,32,112,114,111,99,101,115, - 115,46,10,73,102,32,109,111,100,101,32,61,61,32,80,95, - 87,65,73,84,32,114,101,116,117,114,110,32,116,104,101,32, - 112,114,111,99,101,115,115,39,115,32,101,120,105,116,32,99, - 111,100,101,32,105,102,32,105,116,32,101,120,105,116,115,32, - 110,111,114,109,97,108,108,121,59,10,111,116,104,101,114,119, - 105,115,101,32,114,101,116,117,114,110,32,45,83,73,71,44, - 32,119,104,101,114,101,32,83,73,71,32,105,115,32,116,104, - 101,32,115,105,103,110,97,108,32,116,104,97,116,32,107,105, - 108,108,101,100,32,105,116,46,32,114,182,0,0,0,78,41, - 1,114,97,1,0,0,114,96,1,0,0,115,4,0,0,0, - 32,32,32,32,114,25,0,0,0,218,7,115,112,97,119,110, - 108,101,114,105,1,0,0,199,3,0,0,115,36,0,0,0, - 128,0,240,16,0,15,19,144,50,137,104,136,3,220,15,22, - 144,116,152,84,160,52,168,3,168,18,160,57,168,99,211,15, - 50,208,8,50,114,27,0,0,0,114,103,1,0,0,114,105, - 1,0,0,114,99,1,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,7,0,0,0,243,28,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, - 124,1,124,2,171,3,0,0,0,0,0,0,83,0,41,1, - 97,87,1,0,0,115,112,97,119,110,108,112,40,109,111,100, - 101,44,32,102,105,108,101,44,32,42,97,114,103,115,41,32, - 45,62,32,105,110,116,101,103,101,114,10,10,69,120,101,99, - 117,116,101,32,102,105,108,101,32,40,119,104,105,99,104,32, - 105,115,32,108,111,111,107,101,100,32,102,111,114,32,97,108, - 111,110,103,32,36,80,65,84,72,41,32,119,105,116,104,32, - 97,114,103,117,109,101,110,116,115,32,102,114,111,109,10,97, - 114,103,115,32,105,110,32,97,32,115,117,98,112,114,111,99, - 101,115,115,32,119,105,116,104,32,116,104,101,32,115,117,112, - 112,108,105,101,100,32,101,110,118,105,114,111,110,109,101,110, - 116,46,10,73,102,32,109,111,100,101,32,61,61,32,80,95, - 78,79,87,65,73,84,32,114,101,116,117,114,110,32,116,104, - 101,32,112,105,100,32,111,102,32,116,104,101,32,112,114,111, - 99,101,115,115,46,10,73,102,32,109,111,100,101,32,61,61, - 32,80,95,87,65,73,84,32,114,101,116,117,114,110,32,116, - 104,101,32,112,114,111,99,101,115,115,39,115,32,101,120,105, - 116,32,99,111,100,101,32,105,102,32,105,116,32,101,120,105, - 116,115,32,110,111,114,109,97,108,108,121,59,10,111,116,104, - 101,114,119,105,115,101,32,114,101,116,117,114,110,32,45,83, - 73,71,44,32,119,104,101,114,101,32,83,73,71,32,105,115, - 32,116,104,101,32,115,105,103,110,97,108,32,116,104,97,116, - 32,107,105,108,108,101,100,32,105,116,46,32,41,1,114,99, - 1,0,0,114,94,1,0,0,115,3,0,0,0,32,32,32, - 114,25,0,0,0,218,7,115,112,97,119,110,108,112,114,107, - 1,0,0,217,3,0,0,115,19,0,0,0,128,0,244,16, - 0,16,23,144,116,152,84,160,52,211,15,40,208,8,40,114, - 27,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,7,0,0,0,7,0,0,0,243,46,0,0,0,151,0, - 124,2,100,1,25,0,0,0,125,3,116,1,0,0,0,0, - 0,0,0,0,124,0,124,1,124,2,100,2,100,1,26,0, - 124,3,171,4,0,0,0,0,0,0,83,0,41,3,97,93, - 1,0,0,115,112,97,119,110,108,112,101,40,109,111,100,101, - 44,32,102,105,108,101,44,32,42,97,114,103,115,44,32,101, - 110,118,41,32,45,62,32,105,110,116,101,103,101,114,10,10, - 69,120,101,99,117,116,101,32,102,105,108,101,32,40,119,104, - 105,99,104,32,105,115,32,108,111,111,107,101,100,32,102,111, - 114,32,97,108,111,110,103,32,36,80,65,84,72,41,32,119, - 105,116,104,32,97,114,103,117,109,101,110,116,115,32,102,114, - 111,109,10,97,114,103,115,32,105,110,32,97,32,115,117,98, - 112,114,111,99,101,115,115,32,119,105,116,104,32,116,104,101, - 32,115,117,112,112,108,105,101,100,32,101,110,118,105,114,111, - 110,109,101,110,116,46,10,73,102,32,109,111,100,101,32,61, - 61,32,80,95,78,79,87,65,73,84,32,114,101,116,117,114, - 110,32,116,104,101,32,112,105,100,32,111,102,32,116,104,101, - 32,112,114,111,99,101,115,115,46,10,73,102,32,109,111,100, - 101,32,61,61,32,80,95,87,65,73,84,32,114,101,116,117, - 114,110,32,116,104,101,32,112,114,111,99,101,115,115,39,115, - 32,101,120,105,116,32,99,111,100,101,32,105,102,32,105,116, - 32,101,120,105,116,115,32,110,111,114,109,97,108,108,121,59, - 10,111,116,104,101,114,119,105,115,101,32,114,101,116,117,114, - 110,32,45,83,73,71,44,32,119,104,101,114,101,32,83,73, - 71,32,105,115,32,116,104,101,32,115,105,103,110,97,108,32, - 116,104,97,116,32,107,105,108,108,101,100,32,105,116,46,32, - 114,182,0,0,0,78,41,1,114,101,1,0,0,114,96,1, - 0,0,115,4,0,0,0,32,32,32,32,114,25,0,0,0, - 218,8,115,112,97,119,110,108,112,101,114,109,1,0,0,227, - 3,0,0,115,36,0,0,0,128,0,240,16,0,15,19,144, - 50,137,104,136,3,220,15,23,152,4,152,100,160,68,168,19, - 168,34,160,73,168,115,211,15,51,208,8,51,114,27,0,0, - 0,114,107,1,0,0,114,109,1,0,0,218,7,118,120,119, - 111,114,107,115,99,3,0,0,0,0,0,0,0,0,0,0, - 0,7,0,0,0,3,0,0,0,243,130,1,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,0,116,2,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,115,23, - 116,5,0,0,0,0,0,0,0,0,100,1,116,7,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 122,6,0,0,171,1,0,0,0,0,0,0,130,1,124,1, - 100,2,118,1,114,14,116,9,0,0,0,0,0,0,0,0, - 100,3,124,1,122,6,0,0,171,1,0,0,0,0,0,0, - 130,1,124,2,100,4,107,40,0,0,115,2,124,2,128,11, - 116,9,0,0,0,0,0,0,0,0,100,5,171,1,0,0, - 0,0,0,0,130,1,100,4,100,0,108,5,125,3,124,1, - 100,6,107,40,0,0,114,54,124,3,106,13,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 100,7,100,7,124,3,106,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,2,172,8,171,5, - 0,0,0,0,0,0,125,4,116,17,0,0,0,0,0,0, - 0,0,124,4,106,18,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,4,171,2,0,0,0,0, - 0,0,83,0,124,3,106,13,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,100,7,100,7, - 124,3,106,14,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,172,9,171,5,0,0,0,0, - 0,0,125,4,116,17,0,0,0,0,0,0,0,0,124,4, - 106,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,4,171,2,0,0,0,0,0,0,83,0, - 41,10,78,122,38,105,110,118,97,108,105,100,32,99,109,100, - 32,116,121,112,101,32,40,37,115,44,32,101,120,112,101,99, - 116,101,100,32,115,116,114,105,110,103,41,41,2,218,1,114, - 218,1,119,122,15,105,110,118,97,108,105,100,32,109,111,100, - 101,32,37,114,114,2,0,0,0,122,43,112,111,112,101,110, - 40,41,32,100,111,101,115,32,110,111,116,32,115,117,112,112, - 111,114,116,32,117,110,98,117,102,102,101,114,101,100,32,115, - 116,114,101,97,109,115,114,112,1,0,0,84,41,4,218,5, - 115,104,101,108,108,218,4,116,101,120,116,218,6,115,116,100, - 111,117,116,218,7,98,117,102,115,105,122,101,41,4,114,114, - 1,0,0,114,115,1,0,0,218,5,115,116,100,105,110,114, - 117,1,0,0,41,11,114,115,0,0,0,114,47,0,0,0, - 114,239,0,0,0,114,47,1,0,0,114,241,0,0,0,218, - 10,115,117,98,112,114,111,99,101,115,115,218,5,80,111,112, - 101,110,218,4,80,73,80,69,218,11,95,119,114,97,112,95, - 99,108,111,115,101,114,116,1,0,0,114,118,1,0,0,41, - 5,218,3,99,109,100,114,119,0,0,0,218,9,98,117,102, - 102,101,114,105,110,103,114,119,1,0,0,218,4,112,114,111, - 99,115,5,0,0,0,32,32,32,32,32,114,25,0,0,0, - 218,5,112,111,112,101,110,114,126,1,0,0,245,3,0,0, - 115,206,0,0,0,128,0,220,15,25,152,35,156,115,212,15, - 35,220,18,27,208,28,68,196,116,200,67,195,121,209,28,80, - 211,18,81,208,12,81,216,11,15,144,122,209,11,33,220,18, - 28,208,29,46,176,20,209,29,53,211,18,54,208,12,54,216, - 11,20,152,1,138,62,152,89,208,29,46,220,18,28,208,29, - 74,211,18,75,208,12,75,219,8,25,216,11,15,144,51,138, - 59,216,19,29,215,19,35,209,19,35,160,67,216,42,46,176, - 84,216,43,53,175,63,169,63,216,44,53,240,7,0,20,36, - 243,0,3,20,55,136,68,244,8,0,20,31,152,116,159,123, - 153,123,168,68,211,19,49,208,12,49,224,19,29,215,19,35, - 209,19,35,160,67,216,42,46,176,84,216,42,52,175,47,169, - 47,216,44,53,240,7,0,20,36,243,0,3,20,55,136,68, - 244,8,0,20,31,152,116,159,122,153,122,168,52,211,19,48, - 208,12,48,114,27,0,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,243,48,0, - 0,0,151,0,101,0,90,1,100,0,90,2,100,1,132,0, - 90,3,100,2,132,0,90,4,100,3,132,0,90,5,100,4, - 132,0,90,6,100,5,132,0,90,7,100,6,132,0,90,8, - 121,7,41,8,114,122,1,0,0,99,3,0,0,0,0,0, - 0,0,0,0,0,0,2,0,0,0,3,0,0,0,243,32, - 0,0,0,151,0,124,1,124,0,95,0,0,0,0,0,0, - 0,0,0,124,2,124,0,95,1,0,0,0,0,0,0,0, - 0,121,0,114,23,0,0,0,41,2,218,7,95,115,116,114, - 101,97,109,218,5,95,112,114,111,99,41,3,114,254,0,0, - 0,218,6,115,116,114,101,97,109,114,125,1,0,0,115,3, - 0,0,0,32,32,32,114,25,0,0,0,114,0,1,0,0, - 122,20,95,119,114,97,112,95,99,108,111,115,101,46,95,95, - 105,110,105,116,95,95,12,4,0,0,115,16,0,0,0,128, - 0,216,27,33,136,68,140,76,216,25,29,136,68,141,74,114, - 27,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,3,0,0,0,243,150,0,0,0,151,0, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,106,3,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,1,0,124,0,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,7,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,125,1,124,1,100,1,107,40,0,0, - 114,1,121,0,116,8,0,0,0,0,0,0,0,0,100,2, - 107,40,0,0,114,2,124,1,83,0,124,1,100,3,122,3, - 0,0,83,0,41,4,78,114,2,0,0,0,114,42,0,0, - 0,233,8,0,0,0,41,5,114,129,1,0,0,114,169,0, - 0,0,114,130,1,0,0,218,4,119,97,105,116,114,11,0, - 0,0,41,2,114,254,0,0,0,218,10,114,101,116,117,114, - 110,99,111,100,101,115,2,0,0,0,32,32,114,25,0,0, - 0,114,169,0,0,0,122,17,95,119,114,97,112,95,99,108, - 111,115,101,46,99,108,111,115,101,15,4,0,0,115,67,0, - 0,0,128,0,216,12,16,143,76,137,76,215,12,30,209,12, - 30,212,12,32,216,25,29,159,26,153,26,159,31,153,31,211, - 25,42,136,74,216,15,25,152,81,138,127,216,23,27,220,15, - 19,144,116,138,124,216,23,33,208,16,33,224,23,33,160,81, - 145,127,208,16,38,114,27,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,243, - 6,0,0,0,151,0,124,0,83,0,114,23,0,0,0,114, - 28,1,0,0,114,17,1,0,0,115,1,0,0,0,32,114, - 25,0,0,0,218,9,95,95,101,110,116,101,114,95,95,122, - 21,95,119,114,97,112,95,99,108,111,115,101,46,95,95,101, - 110,116,101,114,95,95,24,4,0,0,243,7,0,0,0,128, - 0,216,19,23,136,75,114,27,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,7,0,0,0, - 243,36,0,0,0,151,0,124,0,106,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,1,0,121,0,114,23,0,0,0,169,1, - 114,169,0,0,0,169,2,114,254,0,0,0,114,203,0,0, - 0,115,2,0,0,0,32,32,114,25,0,0,0,218,8,95, - 95,101,120,105,116,95,95,122,20,95,119,114,97,112,95,99, - 108,111,115,101,46,95,95,101,120,105,116,95,95,26,4,0, - 0,243,11,0,0,0,128,0,216,12,16,143,74,137,74,141, - 76,114,27,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,46,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,124,0,106,2, + 100,32,105,116,46,32,114,184,0,0,0,78,41,1,114,120, + 1,0,0,114,119,1,0,0,115,4,0,0,0,32,32,32, + 32,114,25,0,0,0,218,7,115,112,97,119,110,108,101,114, + 128,1,0,0,202,3,0,0,115,34,0,0,0,128,0,240, + 16,0,15,19,144,50,137,104,136,3,220,15,22,144,116,160, + 52,168,3,168,18,160,57,168,99,211,15,50,208,8,50,114, + 27,0,0,0,114,126,1,0,0,114,128,1,0,0,114,122, + 1,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,7,0,0,0,243,26,0,0,0,149,0,91, + 1,0,0,0,0,0,0,0,0,88,1,85,2,53,3,0, + 0,0,0,0,0,36,0,41,1,97,87,1,0,0,115,112, + 97,119,110,108,112,40,109,111,100,101,44,32,102,105,108,101, + 44,32,42,97,114,103,115,41,32,45,62,32,105,110,116,101, + 103,101,114,10,10,69,120,101,99,117,116,101,32,102,105,108, + 101,32,40,119,104,105,99,104,32,105,115,32,108,111,111,107, + 101,100,32,102,111,114,32,97,108,111,110,103,32,36,80,65, + 84,72,41,32,119,105,116,104,32,97,114,103,117,109,101,110, + 116,115,32,102,114,111,109,10,97,114,103,115,32,105,110,32, + 97,32,115,117,98,112,114,111,99,101,115,115,32,119,105,116, + 104,32,116,104,101,32,115,117,112,112,108,105,101,100,32,101, + 110,118,105,114,111,110,109,101,110,116,46,10,73,102,32,109, + 111,100,101,32,61,61,32,80,95,78,79,87,65,73,84,32, + 114,101,116,117,114,110,32,116,104,101,32,112,105,100,32,111, + 102,32,116,104,101,32,112,114,111,99,101,115,115,46,10,73, + 102,32,109,111,100,101,32,61,61,32,80,95,87,65,73,84, + 32,114,101,116,117,114,110,32,116,104,101,32,112,114,111,99, + 101,115,115,39,115,32,101,120,105,116,32,99,111,100,101,32, + 105,102,32,105,116,32,101,120,105,116,115,32,110,111,114,109, + 97,108,108,121,59,10,111,116,104,101,114,119,105,115,101,32, + 114,101,116,117,114,110,32,45,83,73,71,44,32,119,104,101, + 114,101,32,83,73,71,32,105,115,32,116,104,101,32,115,105, + 103,110,97,108,32,116,104,97,116,32,107,105,108,108,101,100, + 32,105,116,46,32,41,1,114,122,1,0,0,114,117,1,0, + 0,115,3,0,0,0,32,32,32,114,25,0,0,0,218,7, + 115,112,97,119,110,108,112,114,130,1,0,0,220,3,0,0, + 115,17,0,0,0,128,0,244,16,0,16,23,144,116,160,52, + 211,15,40,208,8,40,114,27,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0, + 243,44,0,0,0,149,0,85,2,83,1,5,0,0,0,110, + 3,91,1,0,0,0,0,0,0,0,0,88,1,85,2,83, + 2,83,1,4,0,85,3,53,4,0,0,0,0,0,0,36, + 0,41,3,97,93,1,0,0,115,112,97,119,110,108,112,101, + 40,109,111,100,101,44,32,102,105,108,101,44,32,42,97,114, + 103,115,44,32,101,110,118,41,32,45,62,32,105,110,116,101, + 103,101,114,10,10,69,120,101,99,117,116,101,32,102,105,108, + 101,32,40,119,104,105,99,104,32,105,115,32,108,111,111,107, + 101,100,32,102,111,114,32,97,108,111,110,103,32,36,80,65, + 84,72,41,32,119,105,116,104,32,97,114,103,117,109,101,110, + 116,115,32,102,114,111,109,10,97,114,103,115,32,105,110,32, + 97,32,115,117,98,112,114,111,99,101,115,115,32,119,105,116, + 104,32,116,104,101,32,115,117,112,112,108,105,101,100,32,101, + 110,118,105,114,111,110,109,101,110,116,46,10,73,102,32,109, + 111,100,101,32,61,61,32,80,95,78,79,87,65,73,84,32, + 114,101,116,117,114,110,32,116,104,101,32,112,105,100,32,111, + 102,32,116,104,101,32,112,114,111,99,101,115,115,46,10,73, + 102,32,109,111,100,101,32,61,61,32,80,95,87,65,73,84, + 32,114,101,116,117,114,110,32,116,104,101,32,112,114,111,99, + 101,115,115,39,115,32,101,120,105,116,32,99,111,100,101,32, + 105,102,32,105,116,32,101,120,105,116,115,32,110,111,114,109, + 97,108,108,121,59,10,111,116,104,101,114,119,105,115,101,32, + 114,101,116,117,114,110,32,45,83,73,71,44,32,119,104,101, + 114,101,32,83,73,71,32,105,115,32,116,104,101,32,115,105, + 103,110,97,108,32,116,104,97,116,32,107,105,108,108,101,100, + 32,105,116,46,32,114,184,0,0,0,78,41,1,114,124,1, + 0,0,114,119,1,0,0,115,4,0,0,0,32,32,32,32, + 114,25,0,0,0,218,8,115,112,97,119,110,108,112,101,114, + 132,1,0,0,230,3,0,0,115,34,0,0,0,128,0,240, + 16,0,15,19,144,50,137,104,136,3,220,15,23,152,4,160, + 68,168,19,168,34,160,73,168,115,211,15,51,208,8,51,114, + 27,0,0,0,114,130,1,0,0,114,132,1,0,0,218,7, + 118,120,119,111,114,107,115,99,3,0,0,0,0,0,0,0, + 0,0,0,0,8,0,0,0,3,0,0,0,243,138,1,0, + 0,149,0,91,1,0,0,0,0,0,0,0,0,85,0,91, + 2,0,0,0,0,0,0,0,0,53,2,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,100,23,0,0,91,5,0, + 0,0,0,0,0,0,0,83,1,91,7,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,45,6,0, + 0,53,1,0,0,0,0,0,0,101,1,85,1,83,2,59, + 1,0,0,97,14,0,0,91,9,0,0,0,0,0,0,0, + 0,83,3,85,1,45,6,0,0,53,1,0,0,0,0,0, + 0,101,1,85,2,83,4,58,88,0,0,100,3,0,0,85, + 2,99,11,0,0,91,9,0,0,0,0,0,0,0,0,83, + 5,53,1,0,0,0,0,0,0,101,1,83,4,83,0,75, + 5,110,3,85,1,83,6,58,88,0,0,97,51,0,0,85, + 3,82,13,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,0,83,7,83,7,85,3,82,14,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,2,83,8,57,5,110,4,91,17,0,0,0,0,0, + 0,0,0,85,4,82,18,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,4,53,2,0,0,0, + 0,0,0,36,0,85,3,82,13,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,0,83,7,83, + 7,85,3,82,14,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,2,83,9,57,5,110,4,91, + 17,0,0,0,0,0,0,0,0,85,4,82,20,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 4,53,2,0,0,0,0,0,0,36,0,41,10,78,122,38, + 105,110,118,97,108,105,100,32,99,109,100,32,116,121,112,101, + 32,40,37,115,44,32,101,120,112,101,99,116,101,100,32,115, + 116,114,105,110,103,41,41,2,218,1,114,218,1,119,122,15, + 105,110,118,97,108,105,100,32,109,111,100,101,32,37,114,114, + 2,0,0,0,122,43,112,111,112,101,110,40,41,32,100,111, + 101,115,32,110,111,116,32,115,117,112,112,111,114,116,32,117, + 110,98,117,102,102,101,114,101,100,32,115,116,114,101,97,109, + 115,114,135,1,0,0,84,41,4,218,5,115,104,101,108,108, + 218,4,116,101,120,116,218,6,115,116,100,111,117,116,218,7, + 98,117,102,115,105,122,101,41,4,114,137,1,0,0,114,138, + 1,0,0,218,5,115,116,100,105,110,114,140,1,0,0,41, + 11,114,116,0,0,0,114,47,0,0,0,114,241,0,0,0, + 114,64,1,0,0,114,243,0,0,0,218,10,115,117,98,112, + 114,111,99,101,115,115,218,5,80,111,112,101,110,218,4,80, + 73,80,69,218,11,95,119,114,97,112,95,99,108,111,115,101, + 114,139,1,0,0,114,141,1,0,0,41,5,218,3,99,109, + 100,114,120,0,0,0,218,9,98,117,102,102,101,114,105,110, + 103,114,142,1,0,0,218,4,112,114,111,99,115,5,0,0, + 0,32,32,32,32,32,114,25,0,0,0,218,5,112,111,112, + 101,110,114,149,1,0,0,248,3,0,0,115,209,0,0,0, + 128,0,220,15,25,152,35,156,115,215,15,35,209,15,35,220, + 18,27,208,28,68,196,116,200,67,195,121,209,28,80,211,18, + 81,208,12,81,216,11,15,144,122,211,11,33,220,18,28,208, + 29,46,176,20,209,29,53,211,18,54,208,12,54,216,11,20, + 152,1,139,62,152,89,209,29,46,220,18,28,208,29,74,211, + 18,75,208,12,75,219,8,25,216,11,15,144,51,139,59,216, + 19,29,215,19,35,209,19,35,160,67,216,42,46,176,84,216, + 43,53,175,63,169,63,216,44,53,240,7,0,20,36,240,0, + 3,20,55,136,68,244,8,0,20,31,152,116,159,123,153,123, + 168,68,211,19,49,208,12,49,224,19,29,215,19,35,209,19, + 35,160,67,216,42,46,176,84,216,42,52,175,47,169,47,216, + 44,53,240,7,0,20,36,240,0,3,20,55,136,68,244,8, + 0,20,31,152,116,159,122,153,122,168,52,211,19,48,208,12, + 48,114,27,0,0,0,99,0,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,0,0,0,0,243,56,0,0,0, + 149,0,92,0,114,1,83,0,114,2,83,1,114,3,83,2, + 26,0,114,4,83,3,26,0,114,5,83,4,26,0,114,6, + 83,5,26,0,114,7,83,6,26,0,114,8,83,7,26,0, + 114,9,83,8,114,10,103,9,41,10,114,145,1,0,0,105, + 14,4,0,0,99,3,0,0,0,0,0,0,0,0,0,0, + 0,2,0,0,0,3,0,0,0,243,28,0,0,0,149,0, + 88,16,108,0,0,0,0,0,0,0,0,0,88,32,108,1, + 0,0,0,0,0,0,0,0,103,0,114,23,0,0,0,41, + 2,218,7,95,115,116,114,101,97,109,218,5,95,112,114,111, + 99,41,3,114,0,1,0,0,218,6,115,116,114,101,97,109, + 114,148,1,0,0,115,3,0,0,0,32,32,32,114,25,0, + 0,0,114,2,1,0,0,218,20,95,119,114,97,112,95,99, + 108,111,115,101,46,95,95,105,110,105,116,95,95,15,4,0, + 0,115,12,0,0,0,128,0,216,27,33,140,76,216,25,29, + 141,74,114,27,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,3,0,0,0,243,154,0,0, + 0,149,0,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,3,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,32,0,85,0,82,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,7,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,53,0,0,0,0,0,0,0,110,1,85,1,83,1,58, + 88,0,0,97,1,0,0,103,0,91,8,0,0,0,0,0, + 0,0,0,83,2,58,88,0,0,97,2,0,0,85,1,36, + 0,85,1,83,3,45,3,0,0,36,0,41,4,78,114,2, + 0,0,0,114,42,0,0,0,233,8,0,0,0,41,5,114, + 152,1,0,0,114,170,0,0,0,114,153,1,0,0,218,4, + 119,97,105,116,114,11,0,0,0,41,2,114,0,1,0,0, + 218,10,114,101,116,117,114,110,99,111,100,101,115,2,0,0, + 0,32,32,114,25,0,0,0,114,170,0,0,0,218,17,95, + 119,114,97,112,95,99,108,111,115,101,46,99,108,111,115,101, + 18,4,0,0,115,67,0,0,0,128,0,216,12,16,143,76, + 137,76,215,12,30,209,12,30,212,12,32,216,25,29,159,26, + 153,26,159,31,153,31,211,25,42,136,74,216,15,25,152,81, + 139,127,216,23,27,220,15,19,144,116,139,124,216,23,33,208, + 16,33,224,23,33,160,81,145,127,208,16,38,114,27,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,3,0,0,0,243,6,0,0,0,149,0,85,0,36, + 0,114,23,0,0,0,114,39,1,0,0,114,24,1,0,0, + 115,1,0,0,0,32,114,25,0,0,0,218,9,95,95,101, + 110,116,101,114,95,95,218,21,95,119,114,97,112,95,99,108, + 111,115,101,46,95,95,101,110,116,101,114,95,95,27,4,0, + 0,243,7,0,0,0,128,0,216,19,23,136,75,114,27,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,7,0,0,0,243,36,0,0,0,149,0,85,0, + 82,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,32,0,103,0, + 114,23,0,0,0,169,1,114,170,0,0,0,169,2,114,0, + 1,0,0,114,205,0,0,0,115,2,0,0,0,32,32,114, + 25,0,0,0,218,8,95,95,101,120,105,116,95,95,218,20, + 95,119,114,97,112,95,99,108,111,115,101,46,95,95,101,120, + 105,116,95,95,29,4,0,0,243,11,0,0,0,128,0,216, + 12,16,143,74,137,74,141,76,114,27,0,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, + 0,0,243,46,0,0,0,149,0,91,1,0,0,0,0,0, + 0,0,0,85,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,1,53,2,0,0,0, + 0,0,0,36,0,114,23,0,0,0,41,2,218,7,103,101, + 116,97,116,116,114,114,152,1,0,0,41,2,114,0,1,0, + 0,114,11,0,0,0,115,2,0,0,0,32,32,114,25,0, + 0,0,218,11,95,95,103,101,116,97,116,116,114,95,95,218, + 23,95,119,114,97,112,95,99,108,111,115,101,46,95,95,103, + 101,116,97,116,116,114,95,95,31,4,0,0,115,19,0,0, + 0,128,0,220,19,26,152,52,159,60,153,60,168,20,211,19, + 46,208,12,46,114,27,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,44, + 0,0,0,149,0,91,1,0,0,0,0,0,0,0,0,85, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,1,0,0,0,0,0,0,36,0,114, + 23,0,0,0,41,2,218,4,105,116,101,114,114,152,1,0, + 0,114,24,1,0,0,115,1,0,0,0,32,114,25,0,0, + 0,114,20,1,0,0,218,20,95,119,114,97,112,95,99,108, + 111,115,101,46,95,95,105,116,101,114,95,95,33,4,0,0, + 115,17,0,0,0,128,0,220,19,23,152,4,159,12,153,12, + 211,19,37,208,12,37,114,27,0,0,0,41,2,114,153,1, + 0,0,114,152,1,0,0,78,41,11,114,56,1,0,0,114, + 57,1,0,0,114,58,1,0,0,114,59,1,0,0,114,2, + 1,0,0,114,170,0,0,0,114,162,1,0,0,114,168,1, + 0,0,114,173,1,0,0,114,20,1,0,0,114,60,1,0, + 0,114,39,1,0,0,114,27,0,0,0,114,25,0,0,0, + 114,145,1,0,0,114,145,1,0,0,14,4,0,0,115,32, + 0,0,0,134,0,242,2,2,9,30,242,6,8,9,39,242, + 18,1,9,24,242,4,1,9,25,242,4,1,9,47,245,4, + 1,9,38,114,27,0,0,0,114,145,1,0,0,114,149,1, + 0,0,99,4,0,0,0,0,0,0,0,0,0,0,0,6, + 0,0,0,15,0,0,0,243,190,0,0,0,149,0,91,1, + 0,0,0,0,0,0,0,0,85,0,91,2,0,0,0,0, + 0,0,0,0,53,2,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,100,23,0,0,91,5,0,0,0,0,0,0, + 0,0,83,1,91,7,0,0,0,0,0,0,0,0,85,0, + 53,1,0,0,0,0,0,0,45,6,0,0,53,1,0,0, + 0,0,0,0,101,1,83,2,83,0,75,4,110,6,83,3, + 85,1,59,1,0,0,97,17,0,0,85,6,82,11,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,3,53,1,0,0,0,0,0,0,110,3,85,6,82,12, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,1,171,2,0,0,0,0,0,0,83,0,114,23, - 0,0,0,41,2,218,7,103,101,116,97,116,116,114,114,129, - 1,0,0,41,2,114,254,0,0,0,114,11,0,0,0,115, - 2,0,0,0,32,32,114,25,0,0,0,218,11,95,95,103, - 101,116,97,116,116,114,95,95,122,23,95,119,114,97,112,95, - 99,108,111,115,101,46,95,95,103,101,116,97,116,116,114,95, - 95,28,4,0,0,115,19,0,0,0,128,0,220,19,26,152, - 52,159,60,153,60,168,20,211,19,46,208,12,46,114,27,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,44,0,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,124,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,1, - 0,0,0,0,0,0,83,0,114,23,0,0,0,41,2,218, - 4,105,116,101,114,114,129,1,0,0,114,17,1,0,0,115, - 1,0,0,0,32,114,25,0,0,0,114,14,1,0,0,122, - 20,95,119,114,97,112,95,99,108,111,115,101,46,95,95,105, - 116,101,114,95,95,30,4,0,0,115,17,0,0,0,128,0, - 220,19,23,152,4,159,12,153,12,211,19,37,208,12,37,114, - 27,0,0,0,78,41,9,114,41,1,0,0,114,42,1,0, - 0,114,43,1,0,0,114,0,1,0,0,114,169,0,0,0, - 114,137,1,0,0,114,142,1,0,0,114,146,1,0,0,114, - 14,1,0,0,114,28,1,0,0,114,27,0,0,0,114,25, - 0,0,0,114,122,1,0,0,114,122,1,0,0,11,4,0, - 0,115,32,0,0,0,132,0,242,2,2,9,30,242,6,8, - 9,39,242,18,1,9,24,242,4,1,9,25,242,4,1,9, - 47,243,4,1,9,38,114,27,0,0,0,114,122,1,0,0, - 114,126,1,0,0,99,4,0,0,0,0,0,0,0,0,0, - 0,0,6,0,0,0,15,0,0,0,243,180,0,0,0,151, - 0,116,1,0,0,0,0,0,0,0,0,124,0,116,2,0, - 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,115, - 23,116,5,0,0,0,0,0,0,0,0,100,1,116,7,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,122,6,0,0,171,1,0,0,0,0,0,0,130,1,100, - 2,100,0,108,4,125,6,100,3,124,1,118,1,114,17,124, - 6,106,11,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,3,171,1,0,0,0,0,0,0,125, - 3,2,0,124,6,106,12,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,124,1,124,2,124, - 3,103,4,124,4,162,1,173,6,105,0,124,5,164,1,142, - 1,83,0,41,4,78,122,38,105,110,118,97,108,105,100,32, - 102,100,32,116,121,112,101,32,40,37,115,44,32,101,120,112, - 101,99,116,101,100,32,105,110,116,101,103,101,114,41,114,2, - 0,0,0,218,1,98,41,7,114,115,0,0,0,218,3,105, - 110,116,114,239,0,0,0,114,47,1,0,0,218,2,105,111, - 218,13,116,101,120,116,95,101,110,99,111,100,105,110,103,114, - 69,0,0,0,41,7,218,2,102,100,114,119,0,0,0,114, - 124,1,0,0,114,56,1,0,0,114,203,0,0,0,218,6, - 107,119,97,114,103,115,114,152,1,0,0,115,7,0,0,0, - 32,32,32,32,32,32,32,114,25,0,0,0,114,20,0,0, - 0,114,20,0,0,0,36,4,0,0,115,92,0,0,0,128, - 0,220,11,21,144,98,156,35,212,11,30,220,14,23,208,24, - 64,196,52,200,2,195,56,209,24,75,211,14,76,208,8,76, - 219,4,13,216,7,10,144,36,129,127,216,19,21,215,19,35, - 209,19,35,160,72,211,19,45,136,8,216,11,18,136,50,143, - 55,137,55,144,50,144,116,152,89,168,8,208,11,66,176,52, - 210,11,66,184,54,209,11,66,208,4,66,114,27,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,8,0,0, - 0,3,0,0,0,243,112,1,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,124,0,116,2,0,0,0,0,0,0, - 0,0,116,4,0,0,0,0,0,0,0,0,102,2,171,2, - 0,0,0,0,0,0,114,2,124,0,83,0,116,7,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 125,1,9,0,124,1,106,9,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,125,2,116,1,0,0,0,0,0,0,0,0, - 124,2,116,2,0,0,0,0,0,0,0,0,116,4,0,0, - 0,0,0,0,0,0,102,2,171,2,0,0,0,0,0,0, - 114,2,124,2,83,0,116,15,0,0,0,0,0,0,0,0, - 100,3,106,19,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,106,16,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,7,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 106,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,2,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,130,1,35,0,116,10,0,0,0,0,0,0, - 0,0,36,0,114,38,1,0,116,13,0,0,0,0,0,0, - 0,0,124,1,100,1,171,2,0,0,0,0,0,0,114,1, - 130,0,116,15,0,0,0,0,0,0,0,0,100,2,124,1, - 106,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,122,0,0,0,171,1,0,0,0,0,0,0, - 130,1,119,0,120,3,89,0,119,1,41,4,97,97,1,0, - 0,82,101,116,117,114,110,32,116,104,101,32,112,97,116,104, - 32,114,101,112,114,101,115,101,110,116,97,116,105,111,110,32, - 111,102,32,97,32,112,97,116,104,45,108,105,107,101,32,111, - 98,106,101,99,116,46,10,10,32,32,32,32,73,102,32,115, + 0,0,34,0,88,1,88,35,47,4,85,4,81,1,55,6, + 48,0,85,5,68,1,54,1,36,0,41,4,78,122,38,105, + 110,118,97,108,105,100,32,102,100,32,116,121,112,101,32,40, + 37,115,44,32,101,120,112,101,99,116,101,100,32,105,110,116, + 101,103,101,114,41,114,2,0,0,0,218,1,98,41,7,114, + 116,0,0,0,218,3,105,110,116,114,241,0,0,0,114,64, + 1,0,0,218,2,105,111,218,13,116,101,120,116,95,101,110, + 99,111,100,105,110,103,114,71,0,0,0,41,7,218,2,102, + 100,114,120,0,0,0,114,147,1,0,0,114,75,1,0,0, + 114,205,0,0,0,218,6,107,119,97,114,103,115,114,181,1, + 0,0,115,7,0,0,0,32,32,32,32,32,32,32,114,25, + 0,0,0,114,20,0,0,0,114,20,0,0,0,39,4,0, + 0,115,89,0,0,0,128,0,220,11,21,144,98,156,35,215, + 11,30,209,11,30,220,14,23,208,24,64,196,52,200,2,195, + 56,209,24,75,211,14,76,208,8,76,219,4,13,216,7,10, + 144,36,131,127,216,19,21,215,19,35,209,19,35,160,72,211, + 19,45,136,8,216,11,13,143,55,138,55,144,50,152,89,208, + 11,66,176,52,210,11,66,184,54,209,11,66,208,4,66,114, + 27,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,8,0,0,0,3,0,0,0,243,240,1,0,0,149,0, + 91,1,0,0,0,0,0,0,0,0,85,0,91,2,0,0, + 0,0,0,0,0,0,91,4,0,0,0,0,0,0,0,0, + 52,2,53,2,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,97,2,0,0,85,0,36,0,91,7,0,0,0,0, + 0,0,0,0,85,0,53,1,0,0,0,0,0,0,110,1, + 30,0,85,1,82,9,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,0,53,1,0,0,0,0, + 0,0,110,2,91,1,0,0,0,0,0,0,0,0,85,2, + 91,2,0,0,0,0,0,0,0,0,91,4,0,0,0,0, + 0,0,0,0,52,2,53,2,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,97,2,0,0,85,2,36,0,91,15, + 0,0,0,0,0,0,0,0,83,4,82,19,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,1, + 82,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,91,7,0,0,0,0,0,0,0,0,85,2, + 53,1,0,0,0,0,0,0,82,16,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,2,0,0, + 0,0,0,0,53,1,0,0,0,0,0,0,101,1,33,0, + 91,10,0,0,0,0,0,0,0,0,7,0,97,43,0,0, + 32,0,91,13,0,0,0,0,0,0,0,0,85,1,83,1, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 97,1,0,0,101,0,91,15,0,0,0,0,0,0,0,0, + 83,2,85,1,82,16,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,45,0,0,0,53,1,0,0, + 0,0,0,0,101,1,91,14,0,0,0,0,0,0,0,0, + 7,0,97,40,0,0,32,0,85,1,82,8,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,25, + 0,0,91,15,0,0,0,0,0,0,0,0,83,2,85,1, + 82,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,45,0,0,0,53,1,0,0,0,0,0,0, + 83,3,101,2,101,0,102,0,61,3,31,0,102,1,41,5, + 97,77,1,0,0,82,101,116,117,114,110,32,116,104,101,32, + 112,97,116,104,32,114,101,112,114,101,115,101,110,116,97,116, + 105,111,110,32,111,102,32,97,32,112,97,116,104,45,108,105, + 107,101,32,111,98,106,101,99,116,46,10,10,73,102,32,115, 116,114,32,111,114,32,98,121,116,101,115,32,105,115,32,112, 97,115,115,101,100,32,105,110,44,32,105,116,32,105,115,32, 114,101,116,117,114,110,101,100,32,117,110,99,104,97,110,103, 101,100,46,32,79,116,104,101,114,119,105,115,101,32,116,104, - 101,10,32,32,32,32,111,115,46,80,97,116,104,76,105,107, - 101,32,105,110,116,101,114,102,97,99,101,32,105,115,32,117, - 115,101,100,32,116,111,32,103,101,116,32,116,104,101,32,112, - 97,116,104,32,114,101,112,114,101,115,101,110,116,97,116,105, - 111,110,46,32,73,102,32,116,104,101,10,32,32,32,32,112, - 97,116,104,32,114,101,112,114,101,115,101,110,116,97,116,105, - 111,110,32,105,115,32,110,111,116,32,115,116,114,32,111,114, - 32,98,121,116,101,115,44,32,84,121,112,101,69,114,114,111, - 114,32,105,115,32,114,97,105,115,101,100,46,32,73,102,32, - 116,104,101,10,32,32,32,32,112,114,111,118,105,100,101,100, - 32,112,97,116,104,32,105,115,32,110,111,116,32,115,116,114, - 44,32,98,121,116,101,115,44,32,111,114,32,111,115,46,80, - 97,116,104,76,105,107,101,44,32,84,121,112,101,69,114,114, - 111,114,32,105,115,32,114,97,105,115,101,100,46,10,32,32, - 32,32,218,10,95,95,102,115,112,97,116,104,95,95,122,47, + 101,10,111,115,46,80,97,116,104,76,105,107,101,32,105,110, + 116,101,114,102,97,99,101,32,105,115,32,117,115,101,100,32, + 116,111,32,103,101,116,32,116,104,101,32,112,97,116,104,32, + 114,101,112,114,101,115,101,110,116,97,116,105,111,110,46,32, + 73,102,32,116,104,101,10,112,97,116,104,32,114,101,112,114, + 101,115,101,110,116,97,116,105,111,110,32,105,115,32,110,111, + 116,32,115,116,114,32,111,114,32,98,121,116,101,115,44,32, + 84,121,112,101,69,114,114,111,114,32,105,115,32,114,97,105, + 115,101,100,46,32,73,102,32,116,104,101,10,112,114,111,118, + 105,100,101,100,32,112,97,116,104,32,105,115,32,110,111,116, + 32,115,116,114,44,32,98,121,116,101,115,44,32,111,114,32, + 111,115,46,80,97,116,104,76,105,107,101,44,32,84,121,112, + 101,69,114,114,111,114,32,105,115,32,114,97,105,115,101,100, + 46,10,218,10,95,95,102,115,112,97,116,104,95,95,122,47, 101,120,112,101,99,116,101,100,32,115,116,114,44,32,98,121, 116,101,115,32,111,114,32,111,115,46,80,97,116,104,76,105, - 107,101,32,111,98,106,101,99,116,44,32,110,111,116,32,122, - 55,101,120,112,101,99,116,101,100,32,123,125,46,95,95,102, - 115,112,97,116,104,95,95,40,41,32,116,111,32,114,101,116, - 117,114,110,32,115,116,114,32,111,114,32,98,121,116,101,115, - 44,32,110,111,116,32,123,125,41,10,114,115,0,0,0,114, - 47,0,0,0,114,116,0,0,0,114,47,1,0,0,114,157, - 1,0,0,114,32,0,0,0,218,7,104,97,115,97,116,116, - 114,114,239,0,0,0,114,41,1,0,0,218,6,102,111,114, - 109,97,116,41,3,114,12,0,0,0,218,9,112,97,116,104, - 95,116,121,112,101,218,9,112,97,116,104,95,114,101,112,114, - 115,3,0,0,0,32,32,32,114,25,0,0,0,218,7,95, - 102,115,112,97,116,104,114,162,1,0,0,47,4,0,0,115, - 191,0,0,0,128,0,244,16,0,8,18,144,36,156,19,156, - 101,152,12,212,7,37,216,15,19,136,11,244,8,0,17,21, - 144,84,147,10,128,73,240,2,7,5,57,216,20,29,215,20, - 40,209,20,40,168,20,211,20,46,136,9,244,14,0,8,18, - 144,41,156,99,164,53,152,92,212,7,42,216,15,24,208,8, - 24,228,14,23,240,0,1,25,33,223,33,39,161,22,168,9, - 215,40,58,209,40,58,220,40,44,168,89,171,15,215,40,64, - 209,40,64,243,3,1,34,66,1,243,3,2,15,67,1,240, - 0,2,9,67,1,248,244,19,0,12,26,242,0,5,5,57, - 220,11,18,144,57,152,108,212,11,43,216,12,17,228,18,27, - 240,0,1,29,35,216,37,46,215,37,55,209,37,55,241,3, - 1,29,56,243,0,1,19,57,240,0,1,13,57,240,9,5, - 5,57,250,115,11,0,0,0,165,17,66,6,0,194,6,47, - 66,53,3,114,134,0,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,0,0,0,0,243,84,0, - 0,0,151,0,101,0,90,1,100,0,90,2,100,1,90,3, - 101,4,106,10,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,2,132,0,171,0,0,0,0,0, - 0,0,90,6,101,7,100,3,132,0,171,0,0,0,0,0, - 0,0,90,8,2,0,101,7,101,9,171,1,0,0,0,0, - 0,0,90,10,121,4,41,5,218,8,80,97,116,104,76,105, - 107,101,122,67,65,98,115,116,114,97,99,116,32,98,97,115, - 101,32,99,108,97,115,115,32,102,111,114,32,105,109,112,108, - 101,109,101,110,116,105,110,103,32,116,104,101,32,102,105,108, - 101,32,115,121,115,116,101,109,32,112,97,116,104,32,112,114, - 111,116,111,99,111,108,46,99,1,0,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,3,0,0,0,243,14,0,0, - 0,151,0,116,0,0,0,0,0,0,0,0,0,130,1,41, - 1,122,57,82,101,116,117,114,110,32,116,104,101,32,102,105, - 108,101,32,115,121,115,116,101,109,32,112,97,116,104,32,114, - 101,112,114,101,115,101,110,116,97,116,105,111,110,32,111,102, - 32,116,104,101,32,111,98,106,101,99,116,46,41,1,218,19, - 78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,114, - 114,111,114,114,17,1,0,0,115,1,0,0,0,32,114,25, - 0,0,0,114,157,1,0,0,122,19,80,97,116,104,76,105, - 107,101,46,95,95,102,115,112,97,116,104,95,95,87,4,0, - 0,115,10,0,0,0,128,0,244,6,0,15,34,208,8,33, - 114,27,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,243,54,0,0,0,151, - 0,124,0,116,0,0,0,0,0,0,0,0,0,117,0,114, - 12,116,3,0,0,0,0,0,0,0,0,124,1,100,1,171, - 2,0,0,0,0,0,0,83,0,116,4,0,0,0,0,0, - 0,0,0,83,0,41,2,78,114,157,1,0,0,41,3,114, - 164,1,0,0,114,3,0,0,0,114,36,1,0,0,41,2, + 107,101,32,111,98,106,101,99,116,44,32,110,111,116,32,78, + 122,55,101,120,112,101,99,116,101,100,32,123,125,46,95,95, + 102,115,112,97,116,104,95,95,40,41,32,116,111,32,114,101, + 116,117,114,110,32,115,116,114,32,111,114,32,98,121,116,101, + 115,44,32,110,111,116,32,123,125,41,10,114,116,0,0,0, + 114,47,0,0,0,114,117,0,0,0,114,64,1,0,0,114, + 186,1,0,0,114,32,0,0,0,218,7,104,97,115,97,116, + 116,114,114,241,0,0,0,114,56,1,0,0,218,6,102,111, + 114,109,97,116,41,3,114,12,0,0,0,218,9,112,97,116, + 104,95,116,121,112,101,218,9,112,97,116,104,95,114,101,112, + 114,115,3,0,0,0,32,32,32,114,25,0,0,0,218,7, + 95,102,115,112,97,116,104,114,191,1,0,0,50,4,0,0, + 115,5,1,0,0,128,0,244,16,0,8,18,144,36,156,19, + 156,101,152,12,215,7,37,209,7,37,216,15,19,136,11,244, + 8,0,17,21,144,84,147,10,128,73,240,2,13,5,18,216, + 20,29,215,20,40,209,20,40,168,20,211,20,46,136,9,244, + 26,0,8,18,144,41,156,99,164,53,152,92,215,7,42,209, + 7,42,216,15,24,208,8,24,228,14,23,240,0,1,25,33, + 223,33,39,161,22,168,9,215,40,58,209,40,58,220,40,44, + 168,89,171,15,215,40,64,209,40,64,243,3,1,34,66,1, + 243,3,2,15,67,1,240,0,2,9,67,1,248,244,31,0, + 12,26,243,0,5,5,57,220,11,18,144,57,152,108,215,11, + 43,209,11,43,216,12,17,228,18,27,240,0,1,29,35,216, + 37,46,215,37,55,209,37,55,241,3,1,29,56,243,0,1, + 19,57,240,0,1,13,57,228,11,20,243,0,5,5,18,216, + 11,20,215,11,31,209,11,31,209,11,39,220,18,27,240,0, + 1,29,35,216,37,46,215,37,55,209,37,55,241,3,1,29, + 56,243,0,1,19,57,216,62,66,240,3,1,13,67,1,240, + 6,0,13,18,240,11,5,5,18,250,115,12,0,0,0,170, + 17,66,16,0,194,16,65,37,67,53,3,114,135,0,0,0, + 99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,0,0,0,0,243,96,0,0,0,149,0,92,0,114,1, + 83,0,114,2,83,1,114,3,83,2,114,4,83,3,114,5, + 92,6,82,14,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,4,26,0,53,0,0,0,0,0, + 0,0,114,8,92,9,83,5,26,0,53,0,0,0,0,0, + 0,0,114,10,92,9,34,0,92,11,53,1,0,0,0,0, + 0,0,114,12,83,3,114,13,103,6,41,7,218,8,80,97, + 116,104,76,105,107,101,105,92,4,0,0,122,67,65,98,115, + 116,114,97,99,116,32,98,97,115,101,32,99,108,97,115,115, + 32,102,111,114,32,105,109,112,108,101,109,101,110,116,105,110, + 103,32,116,104,101,32,102,105,108,101,32,115,121,115,116,101, + 109,32,112,97,116,104,32,112,114,111,116,111,99,111,108,46, + 114,39,1,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,243,14,0,0,0,149, + 0,91,0,0,0,0,0,0,0,0,0,101,1,41,1,122, + 57,82,101,116,117,114,110,32,116,104,101,32,102,105,108,101, + 32,115,121,115,116,101,109,32,112,97,116,104,32,114,101,112, + 114,101,115,101,110,116,97,116,105,111,110,32,111,102,32,116, + 104,101,32,111,98,106,101,99,116,46,41,1,218,19,78,111, + 116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111, + 114,114,24,1,0,0,115,1,0,0,0,32,114,25,0,0, + 0,114,186,1,0,0,218,19,80,97,116,104,76,105,107,101, + 46,95,95,102,115,112,97,116,104,95,95,98,4,0,0,115, + 10,0,0,0,128,0,244,6,0,15,34,208,8,33,114,27, + 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,3,0,0,0,243,56,0,0,0,149,0,85, + 0,91,0,0,0,0,0,0,0,0,0,76,0,97,12,0, + 0,91,3,0,0,0,0,0,0,0,0,85,1,83,1,53, + 2,0,0,0,0,0,0,36,0,91,4,0,0,0,0,0, + 0,0,0,36,0,41,2,78,114,186,1,0,0,41,3,114, + 193,1,0,0,114,3,0,0,0,114,49,1,0,0,41,2, 218,3,99,108,115,218,8,115,117,98,99,108,97,115,115,115, 2,0,0,0,32,32,114,25,0,0,0,218,16,95,95,115, - 117,98,99,108,97,115,115,104,111,111,107,95,95,122,25,80, + 117,98,99,108,97,115,115,104,111,111,107,95,95,218,25,80, 97,116,104,76,105,107,101,46,95,95,115,117,98,99,108,97, - 115,115,104,111,111,107,95,95,92,4,0,0,115,28,0,0, - 0,128,0,224,11,14,148,40,137,63,220,19,33,160,40,168, + 115,115,104,111,111,107,95,95,103,4,0,0,115,28,0,0, + 0,128,0,224,11,14,148,40,138,63,220,19,33,160,40,168, 76,211,19,57,208,12,57,220,15,29,208,8,29,114,27,0, - 0,0,78,41,11,114,41,1,0,0,114,42,1,0,0,114, - 43,1,0,0,218,7,95,95,100,111,99,95,95,218,3,97, + 0,0,78,41,14,114,56,1,0,0,114,57,1,0,0,114, + 58,1,0,0,114,59,1,0,0,218,7,95,95,100,111,99, + 95,95,218,9,95,95,115,108,111,116,115,95,95,218,3,97, 98,99,218,14,97,98,115,116,114,97,99,116,109,101,116,104, - 111,100,114,157,1,0,0,218,11,99,108,97,115,115,109,101, - 116,104,111,100,114,170,1,0,0,218,12,71,101,110,101,114, + 111,100,114,186,1,0,0,218,11,99,108,97,115,115,109,101, + 116,104,111,100,114,200,1,0,0,218,12,71,101,110,101,114, 105,99,65,108,105,97,115,218,17,95,95,99,108,97,115,115, - 95,103,101,116,105,116,101,109,95,95,114,28,1,0,0,114, - 27,0,0,0,114,25,0,0,0,114,164,1,0,0,114,164, - 1,0,0,83,4,0,0,115,62,0,0,0,132,0,225,4, - 77,224,5,8,215,5,23,209,5,23,241,2,2,5,34,243, - 3,0,6,24,240,2,2,5,34,240,8,0,6,17,241,2, - 3,5,30,243,3,0,6,17,240,2,3,5,30,241,10,0, - 25,36,160,76,211,24,49,209,4,21,114,27,0,0,0,114, - 164,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,1,0,0,0,0,0,0,0,243,42,0,0,0,151,0, - 101,0,90,1,100,0,90,2,100,1,132,0,90,3,100,2, - 132,0,90,4,100,3,132,0,90,5,100,4,132,0,90,6, - 100,5,132,0,90,7,121,6,41,7,218,18,95,65,100,100, - 101,100,68,108,108,68,105,114,101,99,116,111,114,121,99,4, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,243,46,0,0,0,151,0,124,1,124,0,95,0, - 0,0,0,0,0,0,0,0,124,2,124,0,95,1,0,0, - 0,0,0,0,0,0,124,3,124,0,95,2,0,0,0,0, - 0,0,0,0,121,0,114,23,0,0,0,41,3,114,12,0, - 0,0,218,7,95,99,111,111,107,105,101,218,21,95,114,101, - 109,111,118,101,95,100,108,108,95,100,105,114,101,99,116,111, - 114,121,41,4,114,254,0,0,0,114,12,0,0,0,218,6, - 99,111,111,107,105,101,218,20,114,101,109,111,118,101,95,100, - 108,108,95,100,105,114,101,99,116,111,114,121,115,4,0,0, - 0,32,32,32,32,114,25,0,0,0,114,0,1,0,0,122, - 27,95,65,100,100,101,100,68,108,108,68,105,114,101,99,116, - 111,114,121,46,95,95,105,110,105,116,95,95,103,4,0,0, - 115,24,0,0,0,128,0,216,24,28,136,68,140,73,216,27, - 33,136,68,140,76,216,41,61,136,68,213,12,38,114,27,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,72,0,0,0,151,0,124,0, - 106,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,1,0,100,0,124,0,95,2,0,0,0,0,0,0, - 0,0,121,0,114,23,0,0,0,41,3,114,181,1,0,0, - 114,180,1,0,0,114,12,0,0,0,114,17,1,0,0,115, - 1,0,0,0,32,114,25,0,0,0,114,169,0,0,0,122, - 24,95,65,100,100,101,100,68,108,108,68,105,114,101,99,116, - 111,114,121,46,99,108,111,115,101,107,4,0,0,115,27,0, - 0,0,128,0,216,12,16,215,12,38,209,12,38,160,116,167, - 124,161,124,212,12,52,216,24,28,136,68,141,73,114,27,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,1, - 0,0,0,3,0,0,0,243,6,0,0,0,151,0,124,0, - 83,0,114,23,0,0,0,114,28,1,0,0,114,17,1,0, - 0,115,1,0,0,0,32,114,25,0,0,0,114,137,1,0, - 0,122,28,95,65,100,100,101,100,68,108,108,68,105,114,101, - 99,116,111,114,121,46,95,95,101,110,116,101,114,95,95,110, - 4,0,0,114,138,1,0,0,114,27,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,7,0, - 0,0,243,36,0,0,0,151,0,124,0,106,1,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,1,0,121,0,114,23,0,0,0, - 114,140,1,0,0,114,141,1,0,0,115,2,0,0,0,32, - 32,114,25,0,0,0,114,142,1,0,0,122,27,95,65,100, - 100,101,100,68,108,108,68,105,114,101,99,116,111,114,121,46, - 95,95,101,120,105,116,95,95,112,4,0,0,114,143,1,0, - 0,114,27,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,243,82,0,0,0, - 151,0,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,114,27,100,1,106,3,0,0, + 95,103,101,116,105,116,101,109,95,95,114,60,1,0,0,114, + 39,1,0,0,114,27,0,0,0,114,25,0,0,0,114,193, + 1,0,0,114,193,1,0,0,92,4,0,0,115,67,0,0, + 0,134,0,225,4,77,224,16,18,128,73,224,5,8,215,5, + 23,209,5,23,241,2,2,5,34,243,3,0,6,24,240,2, + 2,5,34,240,8,0,6,17,241,2,3,5,30,243,3,0, + 6,17,240,2,3,5,30,241,10,0,25,36,160,76,211,24, + 49,211,4,21,114,27,0,0,0,114,193,1,0,0,99,0, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, + 0,0,0,243,50,0,0,0,149,0,92,0,114,1,83,0, + 114,2,83,1,114,3,83,2,26,0,114,4,83,3,26,0, + 114,5,83,4,26,0,114,6,83,5,26,0,114,7,83,6, + 26,0,114,8,83,7,114,9,103,8,41,9,218,18,95,65, + 100,100,101,100,68,108,108,68,105,114,101,99,116,111,114,121, + 105,113,4,0,0,99,4,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,3,0,0,0,243,40,0,0,0,149, + 0,88,16,108,0,0,0,0,0,0,0,0,0,88,32,108, + 1,0,0,0,0,0,0,0,0,88,48,108,2,0,0,0, + 0,0,0,0,0,103,0,114,23,0,0,0,41,3,114,12, + 0,0,0,218,7,95,99,111,111,107,105,101,218,21,95,114, + 101,109,111,118,101,95,100,108,108,95,100,105,114,101,99,116, + 111,114,121,41,4,114,0,1,0,0,114,12,0,0,0,218, + 6,99,111,111,107,105,101,218,20,114,101,109,111,118,101,95, + 100,108,108,95,100,105,114,101,99,116,111,114,121,115,4,0, + 0,0,32,32,32,32,114,25,0,0,0,114,2,1,0,0, + 218,27,95,65,100,100,101,100,68,108,108,68,105,114,101,99, + 116,111,114,121,46,95,95,105,110,105,116,95,95,114,4,0, + 0,115,18,0,0,0,128,0,216,24,28,140,73,216,27,33, + 140,76,216,41,61,213,12,38,114,27,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, + 0,0,243,72,0,0,0,149,0,85,0,82,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,1,0,0,0,0,0,0,32,0,83, + 0,85,0,108,2,0,0,0,0,0,0,0,0,103,0,114, + 23,0,0,0,41,3,114,213,1,0,0,114,212,1,0,0, + 114,12,0,0,0,114,24,1,0,0,115,1,0,0,0,32, + 114,25,0,0,0,114,170,0,0,0,218,24,95,65,100,100, + 101,100,68,108,108,68,105,114,101,99,116,111,114,121,46,99, + 108,111,115,101,118,4,0,0,115,27,0,0,0,128,0,216, + 12,16,215,12,38,209,12,38,160,116,167,124,161,124,212,12, + 52,216,24,28,136,68,141,73,114,27,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, + 0,0,243,6,0,0,0,149,0,85,0,36,0,114,23,0, + 0,0,114,39,1,0,0,114,24,1,0,0,115,1,0,0, + 0,32,114,25,0,0,0,114,162,1,0,0,218,28,95,65, + 100,100,101,100,68,108,108,68,105,114,101,99,116,111,114,121, + 46,95,95,101,110,116,101,114,95,95,121,4,0,0,114,164, + 1,0,0,114,27,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,7,0,0,0,243,36,0, + 0,0,149,0,85,0,82,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,32,0,103,0,114,23,0,0,0,114,166,1,0,0, + 114,167,1,0,0,115,2,0,0,0,32,32,114,25,0,0, + 0,114,168,1,0,0,218,27,95,65,100,100,101,100,68,108, + 108,68,105,114,101,99,116,111,114,121,46,95,95,101,120,105, + 116,95,95,123,4,0,0,114,170,1,0,0,114,27,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,3,0,0,0,243,92,0,0,0,149,0,85,0,82, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,1,0,0,0,0,0,0,83,0, - 121,2,41,3,78,122,25,60,65,100,100,101,100,68,108,108, - 68,105,114,101,99,116,111,114,121,40,123,33,114,125,41,62, - 122,21,60,65,100,100,101,100,68,108,108,68,105,114,101,99, - 116,111,114,121,40,41,62,41,2,114,12,0,0,0,114,159, - 1,0,0,114,17,1,0,0,115,1,0,0,0,32,114,25, - 0,0,0,114,23,1,0,0,122,27,95,65,100,100,101,100, - 68,108,108,68,105,114,101,99,116,111,114,121,46,95,95,114, - 101,112,114,95,95,114,4,0,0,115,33,0,0,0,128,0, - 216,15,19,143,121,138,121,216,23,50,215,23,57,209,23,57, - 184,36,191,41,185,41,211,23,68,208,16,68,216,19,42,114, - 27,0,0,0,78,41,8,114,41,1,0,0,114,42,1,0, - 0,114,43,1,0,0,114,0,1,0,0,114,169,0,0,0, - 114,137,1,0,0,114,142,1,0,0,114,23,1,0,0,114, - 28,1,0,0,114,27,0,0,0,114,25,0,0,0,114,178, - 1,0,0,114,178,1,0,0,102,4,0,0,115,27,0,0, - 0,132,0,242,2,3,9,62,242,8,2,9,29,242,6,1, - 9,24,242,4,1,9,25,243,4,3,9,43,114,27,0,0, - 0,114,178,1,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,97,27,0,0,83, + 1,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,0,82,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,36,0,103,2,41,3,78,122,25,60,65,100,100, + 101,100,68,108,108,68,105,114,101,99,116,111,114,121,40,123, + 33,114,125,41,62,122,21,60,65,100,100,101,100,68,108,108, + 68,105,114,101,99,116,111,114,121,40,41,62,41,2,114,12, + 0,0,0,114,188,1,0,0,114,24,1,0,0,115,1,0, + 0,0,32,114,25,0,0,0,114,32,1,0,0,218,27,95, + 65,100,100,101,100,68,108,108,68,105,114,101,99,116,111,114, + 121,46,95,95,114,101,112,114,95,95,125,4,0,0,115,33, + 0,0,0,128,0,216,15,19,143,121,143,121,216,23,50,215, + 23,57,209,23,57,184,36,191,41,185,41,211,23,68,208,16, + 68,216,19,42,114,27,0,0,0,41,3,114,212,1,0,0, + 114,213,1,0,0,114,12,0,0,0,78,41,10,114,56,1, + 0,0,114,57,1,0,0,114,58,1,0,0,114,59,1,0, + 0,114,2,1,0,0,114,170,0,0,0,114,162,1,0,0, + 114,168,1,0,0,114,32,1,0,0,114,60,1,0,0,114, + 39,1,0,0,114,27,0,0,0,114,25,0,0,0,114,210, + 1,0,0,114,210,1,0,0,113,4,0,0,115,27,0,0, + 0,134,0,242,2,3,9,62,242,8,2,9,29,242,6,1, + 9,24,242,4,1,9,25,245,4,3,9,43,114,27,0,0, + 0,114,210,1,0,0,99,1,0,0,0,0,0,0,0,0, 0,0,0,5,0,0,0,3,0,0,0,243,92,0,0,0, - 151,0,100,1,100,2,108,0,125,1,2,0,124,1,106,2, + 149,0,83,1,83,2,75,0,110,1,85,1,82,2,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,2,116,5, - 0,0,0,0,0,0,0,0,124,0,124,2,124,1,106,6, + 34,0,85,0,53,1,0,0,0,0,0,0,110,2,91,5, + 0,0,0,0,0,0,0,0,85,0,85,2,85,1,82,6, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,3,0,0,0,0,0,0,83,0,41,3,97,79, + 0,0,53,3,0,0,0,0,0,0,36,0,41,3,97,31, 1,0,0,65,100,100,32,97,32,112,97,116,104,32,116,111, 32,116,104,101,32,68,76,76,32,115,101,97,114,99,104,32, - 112,97,116,104,46,10,10,32,32,32,32,32,32,32,32,84, - 104,105,115,32,115,101,97,114,99,104,32,112,97,116,104,32, - 105,115,32,117,115,101,100,32,119,104,101,110,32,114,101,115, - 111,108,118,105,110,103,32,100,101,112,101,110,100,101,110,99, - 105,101,115,32,102,111,114,32,105,109,112,111,114,116,101,100, - 10,32,32,32,32,32,32,32,32,101,120,116,101,110,115,105, + 112,97,116,104,46,10,10,84,104,105,115,32,115,101,97,114, + 99,104,32,112,97,116,104,32,105,115,32,117,115,101,100,32, + 119,104,101,110,32,114,101,115,111,108,118,105,110,103,32,100, + 101,112,101,110,100,101,110,99,105,101,115,32,102,111,114,32, + 105,109,112,111,114,116,101,100,10,101,120,116,101,110,115,105, 111,110,32,109,111,100,117,108,101,115,32,40,116,104,101,32, 109,111,100,117,108,101,32,105,116,115,101,108,102,32,105,115, 32,114,101,115,111,108,118,101,100,32,116,104,114,111,117,103, - 104,32,115,121,115,46,112,97,116,104,41,44,10,32,32,32, - 32,32,32,32,32,97,110,100,32,97,108,115,111,32,98,121, - 32,99,116,121,112,101,115,46,10,10,32,32,32,32,32,32, - 32,32,82,101,109,111,118,101,32,116,104,101,32,100,105,114, + 104,32,115,121,115,46,112,97,116,104,41,44,10,97,110,100, + 32,97,108,115,111,32,98,121,32,99,116,121,112,101,115,46, + 10,10,82,101,109,111,118,101,32,116,104,101,32,100,105,114, 101,99,116,111,114,121,32,98,121,32,99,97,108,108,105,110, 103,32,99,108,111,115,101,40,41,32,111,110,32,116,104,101, 32,114,101,116,117,114,110,101,100,32,111,98,106,101,99,116, - 32,111,114,10,32,32,32,32,32,32,32,32,117,115,105,110, - 103,32,105,116,32,105,110,32,97,32,119,105,116,104,32,115, - 116,97,116,101,109,101,110,116,46,10,32,32,32,32,32,32, - 32,32,114,2,0,0,0,78,41,4,114,42,0,0,0,218, + 32,111,114,10,117,115,105,110,103,32,105,116,32,105,110,32, + 97,32,119,105,116,104,32,115,116,97,116,101,109,101,110,116, + 46,10,114,2,0,0,0,78,41,4,114,42,0,0,0,218, 18,95,97,100,100,95,100,108,108,95,100,105,114,101,99,116, - 111,114,121,114,178,1,0,0,114,181,1,0,0,41,3,114, - 12,0,0,0,114,42,0,0,0,114,182,1,0,0,115,3, + 111,114,121,114,210,1,0,0,114,213,1,0,0,41,3,114, + 12,0,0,0,114,42,0,0,0,114,214,1,0,0,115,3, 0,0,0,32,32,32,114,25,0,0,0,218,17,97,100,100, - 95,100,108,108,95,100,105,114,101,99,116,111,114,121,114,190, - 1,0,0,119,4,0,0,115,53,0,0,0,128,0,243,20, - 0,9,18,216,17,38,144,18,215,17,38,209,17,38,160,116, - 211,17,44,136,6,220,15,33,216,12,16,216,12,18,216,12, - 14,215,12,36,209,12,36,243,7,4,16,10,240,0,4,9, - 10,114,27,0,0,0,41,2,105,255,1,0,0,70,41,3, - 84,78,70,41,3,218,1,46,84,78,114,23,0,0,0,41, - 2,114,112,1,0,0,114,182,0,0,0,41,3,114,112,1, - 0,0,114,182,0,0,0,78,41,110,114,171,1,0,0,114, - 172,1,0,0,114,132,0,0,0,114,57,0,0,0,114,187, - 0,0,0,218,16,95,99,111,108,108,101,99,116,105,111,110, - 115,95,97,98,99,114,3,0,0,0,114,47,1,0,0,114, - 30,0,0,0,114,151,1,0,0,114,175,1,0,0,218,20, - 98,117,105,108,116,105,110,95,109,111,100,117,108,101,95,110, - 97,109,101,115,218,6,95,110,97,109,101,115,114,31,0,0, - 0,114,26,0,0,0,114,36,0,0,0,114,11,0,0,0, - 114,9,0,0,0,114,37,0,0,0,114,40,0,0,0,114, - 144,0,0,0,218,11,73,109,112,111,114,116,69,114,114,111, - 114,218,9,112,111,115,105,120,112,97,116,104,114,12,0,0, - 0,114,41,0,0,0,114,191,0,0,0,114,42,0,0,0, - 218,6,110,116,112,97,116,104,218,7,109,111,100,117,108,101, - 115,218,7,111,115,46,112,97,116,104,114,5,0,0,0,114, - 6,0,0,0,114,7,0,0,0,114,8,0,0,0,114,10, - 0,0,0,114,21,0,0,0,114,4,0,0,0,114,13,0, - 0,0,114,24,0,0,0,114,44,0,0,0,114,49,0,0, - 0,218,3,115,101,116,114,45,0,0,0,218,15,115,117,112, - 112,111,114,116,115,95,100,105,114,95,102,100,218,22,115,117, - 112,112,111,114,116,115,95,101,102,102,101,99,116,105,118,101, - 95,105,100,115,114,46,0,0,0,218,11,115,117,112,112,111, - 114,116,115,95,102,100,218,24,115,117,112,112,111,114,116,115, - 95,102,111,108,108,111,119,95,115,121,109,108,105,110,107,115, - 114,14,0,0,0,114,15,0,0,0,114,16,0,0,0,114, - 113,0,0,0,114,124,0,0,0,114,128,0,0,0,218,6, - 111,98,106,101,99,116,114,141,0,0,0,114,162,0,0,0, - 114,69,0,0,0,114,86,0,0,0,114,173,0,0,0,114, - 166,0,0,0,114,184,0,0,0,114,168,0,0,0,114,167, - 0,0,0,114,204,0,0,0,114,208,0,0,0,114,211,0, - 0,0,114,214,0,0,0,114,210,0,0,0,114,213,0,0, - 0,114,217,0,0,0,114,19,0,0,0,114,244,0,0,0, - 114,245,0,0,0,114,247,0,0,0,114,60,1,0,0,114, - 220,0,0,0,114,64,1,0,0,114,240,0,0,0,114,66, - 1,0,0,114,253,0,0,0,114,116,0,0,0,114,68,1, - 0,0,114,69,1,0,0,114,77,1,0,0,114,17,0,0, - 0,114,18,0,0,0,114,80,1,0,0,114,81,1,0,0, - 114,82,1,0,0,114,92,1,0,0,114,79,1,0,0,114, - 97,1,0,0,114,99,1,0,0,114,101,1,0,0,114,103, - 1,0,0,114,105,1,0,0,114,107,1,0,0,114,109,1, - 0,0,218,8,112,108,97,116,102,111,114,109,114,126,1,0, - 0,114,122,1,0,0,114,20,0,0,0,114,162,1,0,0, - 114,134,0,0,0,114,41,1,0,0,218,3,65,66,67,114, - 164,1,0,0,114,178,1,0,0,114,190,1,0,0,114,28, - 1,0,0,114,27,0,0,0,114,25,0,0,0,218,8,60, - 109,111,100,117,108,101,62,114,208,1,0,0,1,0,0,0, - 115,5,6,0,0,240,3,1,1,1,241,2,21,1,4,243, - 48,0,1,11,219,0,10,219,0,17,229,0,43,225,15,19, - 144,68,152,19,145,73,139,127,128,12,224,9,12,215,9,33, - 209,9,33,128,6,242,6,3,11,21,128,7,242,10,1,1, - 29,242,6,4,1,55,240,16,0,4,11,136,102,209,3,20, - 216,11,18,128,68,216,14,18,128,71,220,4,23,240,2,4, - 5,13,221,8,31,216,8,15,143,14,137,14,144,119,212,8, - 31,243,6,0,5,29,240,4,3,5,13,221,8,41,243,8, - 0,5,17,216,4,11,135,78,129,78,209,19,36,160,85,211, - 19,43,212,4,44,217,8,13,224,5,9,136,86,129,94,216, - 11,15,128,68,216,14,20,128,71,220,4,20,240,2,4,5, - 13,221,8,28,216,8,15,143,14,137,14,144,119,212,8,31, - 243,6,0,5,26,227,4,13,216,4,11,135,78,129,78,209, - 19,36,160,82,211,19,40,212,4,41,216,8,10,240,4,3, - 5,13,222,8,38,241,10,0,11,22,208,22,51,211,10,52, - 208,4,52,224,25,29,128,3,135,11,129,11,136,73,209,0, - 22,247,2,1,1,13,247,0,1,1,13,243,0,1,1,13, - 240,6,0,5,11,241,6,0,4,11,208,11,28,213,3,29, - 217,15,22,139,121,128,72,242,2,2,5,35,241,8,0,12, - 15,139,53,128,68,217,4,8,208,9,25,152,72,212,4,37, - 217,4,8,136,31,152,71,212,4,36,217,4,8,136,31,152, - 71,212,4,36,217,4,8,136,30,152,70,212,4,35,217,4, - 8,208,9,25,152,71,212,4,36,217,4,8,136,29,152,70, - 212,4,35,217,4,8,136,30,152,71,212,4,36,217,4,8, - 136,31,152,72,212,4,37,217,4,8,136,30,152,71,212,4, - 36,217,4,8,136,29,152,70,212,4,35,217,4,8,208,9, - 26,152,74,212,4,39,217,4,8,136,31,152,72,212,4,37, - 217,4,8,208,9,25,152,73,212,4,38,217,4,8,136,31, + 95,100,108,108,95,100,105,114,101,99,116,111,114,121,114,227, + 1,0,0,130,4,0,0,115,51,0,0,0,128,0,243,20, + 0,9,18,216,17,19,215,17,38,210,17,38,160,116,211,17, + 44,136,6,220,15,33,216,12,16,216,12,18,216,12,14,215, + 12,36,209,12,36,243,7,4,16,10,240,0,4,9,10,114, + 27,0,0,0,218,17,115,99,104,101,100,95,103,101,116,97, + 102,102,105,110,105,116,121,99,0,0,0,0,0,0,0,0, + 0,0,0,0,5,0,0,0,3,0,0,0,243,42,0,0, + 0,149,0,91,1,0,0,0,0,0,0,0,0,91,3,0, + 0,0,0,0,0,0,0,83,1,53,1,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,36,0,41,2,122,167,10, + 71,101,116,32,116,104,101,32,110,117,109,98,101,114,32,111, + 102,32,67,80,85,115,32,111,102,32,116,104,101,32,99,117, + 114,114,101,110,116,32,112,114,111,99,101,115,115,46,10,10, + 82,101,116,117,114,110,32,116,104,101,32,110,117,109,98,101, + 114,32,111,102,32,108,111,103,105,99,97,108,32,67,80,85, + 115,32,117,115,97,98,108,101,32,98,121,32,116,104,101,32, + 99,97,108,108,105,110,103,32,116,104,114,101,97,100,32,111, + 102,32,116,104,101,10,99,117,114,114,101,110,116,32,112,114, + 111,99,101,115,115,46,32,82,101,116,117,114,110,32,78,111, + 110,101,32,105,102,32,105,110,100,101,116,101,114,109,105,110, + 97,98,108,101,46,10,114,2,0,0,0,41,2,114,23,1, + 0,0,114,228,1,0,0,114,39,1,0,0,114,27,0,0, + 0,114,25,0,0,0,218,17,112,114,111,99,101,115,115,95, + 99,112,117,95,99,111,117,110,116,114,230,1,0,0,150,4, + 0,0,115,21,0,0,0,128,0,244,14,0,16,19,212,19, + 36,160,81,211,19,39,211,15,40,208,8,40,114,27,0,0, + 0,41,2,105,255,1,0,0,70,41,3,84,78,70,41,3, + 218,1,46,84,78,114,23,0,0,0,41,2,114,135,1,0, + 0,114,184,0,0,0,41,3,114,135,1,0,0,114,184,0, + 0,0,78,41,113,114,202,1,0,0,114,204,1,0,0,114, + 133,0,0,0,114,57,0,0,0,114,189,0,0,0,218,16, + 95,99,111,108,108,101,99,116,105,111,110,115,95,97,98,99, + 114,3,0,0,0,114,64,1,0,0,114,30,0,0,0,114, + 180,1,0,0,114,207,1,0,0,218,20,98,117,105,108,116, + 105,110,95,109,111,100,117,108,101,95,110,97,109,101,115,218, + 6,95,110,97,109,101,115,114,31,0,0,0,114,26,0,0, + 0,114,36,0,0,0,114,11,0,0,0,114,9,0,0,0, + 114,37,0,0,0,114,40,0,0,0,114,145,0,0,0,218, + 11,73,109,112,111,114,116,69,114,114,111,114,218,9,112,111, + 115,105,120,112,97,116,104,114,12,0,0,0,114,41,0,0, + 0,114,193,0,0,0,114,42,0,0,0,218,6,110,116,112, + 97,116,104,218,7,109,111,100,117,108,101,115,218,7,111,115, + 46,112,97,116,104,114,5,0,0,0,114,6,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,10,0,0,0,114,21, + 0,0,0,114,4,0,0,0,114,13,0,0,0,114,24,0, + 0,0,114,44,0,0,0,114,49,0,0,0,218,3,115,101, + 116,114,45,0,0,0,218,15,115,117,112,112,111,114,116,115, + 95,100,105,114,95,102,100,218,22,115,117,112,112,111,114,116, + 115,95,101,102,102,101,99,116,105,118,101,95,105,100,115,114, + 46,0,0,0,218,11,115,117,112,112,111,114,116,115,95,102, + 100,218,24,115,117,112,112,111,114,116,115,95,102,111,108,108, + 111,119,95,115,121,109,108,105,110,107,115,114,14,0,0,0, + 114,15,0,0,0,114,16,0,0,0,114,114,0,0,0,114, + 125,0,0,0,114,129,0,0,0,218,6,111,98,106,101,99, + 116,114,142,0,0,0,114,163,0,0,0,114,71,0,0,0, + 114,89,0,0,0,114,174,0,0,0,114,167,0,0,0,114, + 186,0,0,0,114,169,0,0,0,114,168,0,0,0,114,206, + 0,0,0,114,210,0,0,0,114,213,0,0,0,114,216,0, + 0,0,114,212,0,0,0,114,215,0,0,0,114,219,0,0, + 0,114,19,0,0,0,114,246,0,0,0,114,247,0,0,0, + 114,249,0,0,0,114,81,1,0,0,114,222,0,0,0,114, + 85,1,0,0,114,242,0,0,0,114,87,1,0,0,114,255, + 0,0,0,114,117,0,0,0,114,89,1,0,0,114,90,1, + 0,0,114,100,1,0,0,114,17,0,0,0,114,18,0,0, + 0,114,103,1,0,0,114,104,1,0,0,114,105,1,0,0, + 114,115,1,0,0,114,102,1,0,0,114,120,1,0,0,114, + 122,1,0,0,114,124,1,0,0,114,126,1,0,0,114,128, + 1,0,0,114,130,1,0,0,114,132,1,0,0,218,8,112, + 108,97,116,102,111,114,109,114,149,1,0,0,114,145,1,0, + 0,114,20,0,0,0,114,191,1,0,0,114,135,0,0,0, + 114,56,1,0,0,218,3,65,66,67,114,193,1,0,0,114, + 210,1,0,0,114,227,1,0,0,218,21,95,103,101,116,95, + 99,112,117,95,99,111,117,110,116,95,99,111,110,102,105,103, + 114,230,1,0,0,218,9,99,112,117,95,99,111,117,110,116, + 114,39,1,0,0,114,27,0,0,0,114,25,0,0,0,218, + 8,60,109,111,100,117,108,101,62,114,250,1,0,0,1,0, + 0,0,115,103,6,0,0,240,3,1,1,1,241,2,21,1, + 4,243,48,0,1,11,219,0,10,219,0,17,229,0,43,225, + 15,19,144,68,152,19,145,73,139,127,128,12,224,9,12,215, + 9,33,209,9,33,128,6,242,6,3,11,21,128,7,242,10, + 1,1,29,242,6,4,1,55,240,16,0,4,11,136,102,211, + 3,20,216,11,18,128,68,216,14,18,128,71,220,4,23,240, + 2,4,5,13,221,8,31,216,8,15,143,14,137,14,144,119, + 212,8,31,243,6,0,5,29,240,4,3,5,13,221,8,41, + 243,8,0,5,17,216,4,11,135,78,129,78,209,19,36,160, + 85,211,19,43,212,4,44,217,8,13,224,5,9,136,86,131, + 94,216,11,15,128,68,216,14,20,128,71,220,4,20,240,2, + 4,5,13,221,8,28,216,8,15,143,14,137,14,144,119,212, + 8,31,243,6,0,5,26,227,4,13,216,4,11,135,78,129, + 78,209,19,36,160,82,211,19,40,212,4,41,216,8,10,240, + 4,3,5,13,222,8,38,241,10,0,11,22,208,22,51,211, + 10,52,208,4,52,224,25,29,128,3,135,11,129,11,136,73, + 209,0,22,247,2,1,1,13,247,0,1,1,13,243,0,1, + 1,13,240,6,0,5,11,241,6,0,4,11,208,11,28,215, + 3,29,210,3,29,217,15,22,139,121,128,72,242,2,2,5, + 35,241,8,0,12,15,139,53,128,68,217,4,8,208,9,25, 152,72,212,4,37,217,4,8,136,31,152,71,212,4,36,217, - 4,8,208,9,25,152,71,212,4,36,216,22,26,128,79,225, - 11,14,139,53,128,68,217,4,8,208,9,25,152,72,212,4, - 37,216,29,33,208,4,26,225,11,14,139,53,128,68,217,4, - 8,136,29,152,71,212,4,36,217,4,8,136,29,152,71,212, - 4,36,217,4,8,136,29,152,71,212,4,36,217,4,8,208, - 9,25,152,73,212,4,38,217,4,8,208,9,25,152,73,212, - 4,38,217,4,8,136,30,152,72,212,4,37,216,4,8,135, - 72,129,72,136,84,132,78,217,4,8,208,9,25,152,74,212, - 4,39,217,4,8,136,31,152,71,212,4,36,217,4,8,136, - 30,152,71,212,4,36,217,4,8,208,9,25,152,74,212,4, - 39,217,7,14,136,121,212,7,25,153,103,160,106,212,30,49, - 217,8,12,136,95,152,105,212,8,40,216,18,22,128,75,225, - 11,14,139,53,128,68,217,4,8,208,9,25,152,72,212,4, - 37,241,44,0,5,9,136,31,152,71,212,4,36,217,4,8, - 136,30,152,70,212,4,35,217,4,8,136,31,152,73,212,4, - 38,217,4,8,136,29,152,71,212,4,36,217,7,14,136,120, - 212,7,24,217,8,12,136,93,152,71,212,8,36,217,4,8, - 136,29,152,70,212,4,35,217,4,8,136,30,152,71,212,4, - 36,217,4,8,136,28,152,70,212,4,35,217,4,8,136,30, - 152,70,212,4,35,217,4,8,208,9,25,152,71,212,4,36, - 217,4,8,136,28,152,70,212,4,35,216,31,35,208,4,28, - 224,8,12,216,8,23,216,8,16,216,8,12,240,12,0,12, - 13,128,8,216,11,12,128,8,216,11,12,128,8,243,10,30, - 1,18,242,64,1,20,1,38,242,44,24,1,17,240,52,0, - 1,8,135,14,129,14,210,15,52,212,0,53,241,8,0,27, - 33,155,40,208,0,23,243,4,88,2,1,39,240,116,4,0, - 1,8,135,14,129,14,136,118,212,0,22,224,4,8,136,36, - 128,60,144,63,210,3,34,168,7,176,20,160,127,184,43,210, - 39,69,240,4,45,5,33,192,101,208,84,88,244,0,45,5, - 33,240,96,1,0,19,20,128,75,216,19,20,128,76,216,19, - 20,128,76,242,4,72,1,5,67,1,240,84,2,0,5,12, - 135,78,129,78,144,55,212,4,27,242,4,5,1,22,242,14, - 6,1,33,242,16,5,1,23,242,14,7,1,34,242,18,6, - 1,25,242,16,7,1,30,240,18,0,1,8,135,14,129,14, - 210,15,71,212,0,72,243,4,29,1,19,243,64,1,41,1, - 36,247,90,1,0,1,53,244,4,71,1,1,19,136,126,244, - 0,71,1,1,19,242,82,2,27,1,24,241,60,0,11,25, - 211,10,26,128,7,216,4,18,243,6,4,1,37,240,12,0, - 27,31,160,36,153,44,208,0,22,216,0,7,135,14,129,14, - 208,15,51,212,0,52,225,3,25,242,2,3,5,21,241,12, - 0,16,24,152,7,159,13,153,13,216,8,20,144,101,216,8, - 20,144,101,243,5,2,16,29,128,72,240,6,0,9,21,243, - 4,4,5,42,240,12,0,5,12,135,78,129,78,208,19,42, - 212,4,43,242,4,28,1,30,241,60,0,22,30,147,90,209, - 0,18,128,8,136,40,216,4,12,241,6,0,4,11,136,54, - 132,63,153,55,160,56,212,27,44,177,23,184,23,212,49,65, - 224,13,14,128,70,216,27,28,208,4,28,128,72,136,121,224, - 4,11,135,78,129,78,210,19,54,212,4,55,242,12,25,5, - 51,242,54,7,5,56,242,18,8,5,56,242,24,8,5,57, - 242,20,8,5,57,240,22,0,5,12,135,78,129,78,210,19, - 63,212,4,64,241,6,0,4,11,136,56,212,3,20,242,8, - 7,5,40,242,18,9,5,51,240,24,0,5,12,135,78,129, - 78,144,72,152,105,208,19,40,212,4,41,241,6,0,4,11, - 136,57,212,3,21,242,6,8,5,41,242,20,9,5,52,240, - 24,0,5,12,135,78,129,78,144,73,152,122,208,19,42,212, - 4,43,240,8,0,4,7,135,60,129,60,144,57,210,3,28, - 243,4,19,5,49,247,44,20,5,38,241,0,20,5,38,240, - 44,0,5,12,135,78,129,78,144,55,212,4,27,243,6,6, - 1,67,1,242,22,27,1,67,1,241,62,0,8,15,136,120, - 212,7,24,216,13,20,128,70,216,22,30,128,70,132,79,244, - 6,15,1,50,136,115,143,119,137,119,244,0,15,1,50,240, - 36,0,4,8,136,52,130,60,247,2,15,5,43,241,0,15, - 5,43,243,34,16,5,10,240,37,0,4,16,248,240,85,33, - 0,12,23,242,0,1,5,13,218,8,12,240,3,1,5,13, - 251,240,12,0,12,23,242,0,1,5,13,218,8,12,240,3, - 1,5,13,251,240,28,0,12,23,242,0,1,5,13,218,8, - 12,240,3,1,5,13,251,240,20,0,12,23,242,0,1,5, - 13,218,8,12,240,3,1,5,13,250,115,72,0,0,0,193, - 4,23,83,31,0,193,32,6,83,43,0,194,17,23,83,55, - 0,195,9,6,84,3,0,211,31,5,83,40,3,211,39,1, - 83,40,3,211,43,5,83,52,3,211,51,1,83,52,3,211, - 55,5,84,0,3,211,63,1,84,0,3,212,3,5,84,12, - 3,212,11,1,84,12,3, + 4,8,136,31,152,71,212,4,36,217,4,8,136,30,152,70, + 212,4,35,217,4,8,136,28,152,71,212,4,36,217,4,8, + 208,9,25,152,71,212,4,36,217,4,8,136,29,152,70,212, + 4,35,217,4,8,136,30,152,71,212,4,36,217,4,8,136, + 31,152,72,212,4,37,217,4,8,136,30,152,71,212,4,36, + 217,4,8,136,29,152,70,212,4,35,217,4,8,208,9,26, + 152,74,212,4,39,217,4,8,136,31,152,72,212,4,37,217, + 4,8,208,9,25,152,73,212,4,38,217,4,8,136,31,152, + 72,212,4,37,217,4,8,136,31,152,71,212,4,36,217,4, + 8,208,9,25,152,71,212,4,36,216,22,26,128,79,225,11, + 14,139,53,128,68,217,4,8,208,9,25,152,72,212,4,37, + 216,29,33,208,4,26,225,11,14,139,53,128,68,217,4,8, + 136,29,152,71,212,4,36,217,4,8,136,29,152,71,212,4, + 36,217,4,8,136,28,152,71,212,4,36,217,4,8,136,29, + 152,71,212,4,36,217,4,8,208,9,25,152,73,212,4,38, + 217,4,8,208,9,25,152,73,212,4,38,217,4,8,136,30, + 152,72,212,4,37,216,4,8,135,72,129,72,136,84,132,78, + 217,4,8,208,9,25,152,74,212,4,39,217,4,8,136,31, + 152,71,212,4,36,217,4,8,136,30,152,71,212,4,36,217, + 4,8,208,9,25,152,74,212,4,39,217,7,14,136,121,215, + 7,25,209,7,25,153,103,160,106,215,30,49,209,30,49,217, + 8,12,136,95,152,105,212,8,40,216,18,22,128,75,225,11, + 14,139,53,128,68,217,4,8,208,9,25,152,72,212,4,37, + 241,44,0,5,9,136,31,152,71,212,4,36,217,4,8,136, + 30,152,70,212,4,35,217,4,8,136,31,152,73,212,4,38, + 217,4,8,136,29,152,71,212,4,36,217,4,8,136,28,152, + 71,212,4,36,217,7,14,136,120,215,7,24,209,7,24,217, + 8,12,136,93,152,71,212,8,36,217,4,8,136,29,152,70, + 212,4,35,217,4,8,136,30,152,71,212,4,36,217,4,8, + 136,28,152,70,212,4,35,217,4,8,136,30,152,70,212,4, + 35,217,4,8,208,9,25,152,71,212,4,36,217,4,8,136, + 28,152,70,212,4,35,216,31,35,208,4,28,224,8,12,216, + 8,23,216,8,16,216,8,12,240,12,0,12,13,128,8,216, + 11,12,128,8,216,11,12,128,8,244,10,30,1,18,242,64, + 1,20,1,38,242,44,24,1,17,240,52,0,1,8,135,14, + 129,14,210,15,52,212,0,53,241,8,0,27,33,155,40,208, + 0,23,244,4,88,2,1,39,240,116,4,0,1,8,135,14, + 129,14,136,118,212,0,22,224,4,8,136,36,128,60,144,63, + 211,3,34,168,7,176,20,160,127,184,43,211,39,69,240,4, + 45,5,33,192,101,208,84,88,246,0,45,5,33,240,96,1, + 0,19,20,128,75,216,19,20,128,76,216,19,20,128,76,242, + 4,72,1,5,67,1,240,84,2,0,5,12,135,78,129,78, + 144,55,212,4,27,242,4,5,1,22,242,14,6,1,33,242, + 16,5,1,23,242,14,7,1,34,242,18,6,1,25,242,16, + 7,1,30,240,18,0,1,8,135,14,129,14,210,15,71,212, + 0,72,244,4,29,1,19,244,64,1,41,1,36,247,90,1, + 0,1,53,244,4,71,1,1,19,136,126,244,0,71,1,1, + 19,242,82,2,27,1,24,241,60,0,11,25,211,10,26,128, + 7,216,4,18,244,6,4,1,37,240,12,0,27,31,160,36, + 153,44,208,0,22,216,0,7,135,14,129,14,208,15,51,212, + 0,52,230,3,25,242,2,3,5,21,241,12,0,16,24,152, + 7,159,13,153,13,216,8,20,144,101,216,8,20,144,101,243, + 5,2,16,29,128,72,240,6,0,9,21,244,4,4,5,42, + 240,12,0,5,12,135,78,129,78,208,19,42,212,4,43,242, + 4,28,1,30,241,60,0,22,30,147,90,209,0,18,128,8, + 136,40,216,4,12,241,6,0,4,11,136,54,135,63,129,63, + 153,55,160,56,215,27,44,209,27,44,177,23,184,23,215,49, + 65,209,49,65,224,13,14,128,70,216,27,28,208,4,28,128, + 72,136,121,224,4,11,135,78,129,78,210,19,54,212,4,55, + 242,12,25,5,51,242,54,7,5,56,242,18,8,5,56,242, + 24,8,5,57,242,20,8,5,57,240,22,0,5,12,135,78, + 129,78,210,19,63,212,4,64,241,6,0,4,11,136,56,215, + 3,20,209,3,20,242,8,7,5,40,242,18,9,5,51,240, + 24,0,5,12,135,78,129,78,144,72,152,105,208,19,40,212, + 4,41,241,6,0,4,11,136,57,215,3,21,209,3,21,242, + 6,8,5,41,242,20,9,5,52,240,24,0,5,12,135,78, + 129,78,144,73,152,122,208,19,42,212,4,43,240,8,0,4, + 7,135,60,129,60,144,57,211,3,28,244,4,19,5,49,247, + 44,20,5,38,241,0,20,5,38,240,44,0,5,12,135,78, + 129,78,144,55,212,4,27,244,6,6,1,67,1,242,22,33, + 1,67,1,241,74,1,0,8,15,136,120,215,7,24,209,7, + 24,216,13,20,128,70,216,22,30,128,70,132,79,244,6,17, + 1,50,136,115,143,119,137,119,244,0,17,1,50,240,40,0, + 4,8,136,52,131,60,247,2,15,5,43,241,0,15,5,43, + 242,34,16,5,10,241,38,0,4,11,208,11,30,215,3,31, + 209,3,31,160,67,215,36,61,210,36,61,211,36,63,192,33, + 211,36,67,243,2,7,5,41,240,20,0,25,34,209,4,21, + 248,240,75,35,0,12,23,243,0,1,5,13,218,8,12,240, + 3,1,5,13,251,240,12,0,12,23,243,0,1,5,13,218, + 8,12,240,3,1,5,13,251,240,28,0,12,23,243,0,1, + 5,13,218,8,12,240,3,1,5,13,251,240,20,0,12,23, + 243,0,1,5,13,218,8,12,240,3,1,5,13,250,115,72, + 0,0,0,193,6,23,85,42,0,193,34,6,85,55,0,194, + 21,23,86,4,0,195,13,6,86,17,0,213,42,6,85,52, + 3,213,51,1,85,52,3,213,55,6,86,1,3,214,0,1, + 86,1,3,214,4,6,86,14,3,214,13,1,86,14,3,214, + 17,6,86,27,3,214,26,1,86,27,3, }; diff --git a/contrib/tools/python3/Python/frozen_modules/posixpath.h b/contrib/tools/python3/Python/frozen_modules/posixpath.h index 3e49572c561..e448c3d3ea6 100644 --- a/contrib/tools/python3/Python/frozen_modules/posixpath.h +++ b/contrib/tools/python3/Python/frozen_modules/posixpath.h @@ -1,1115 +1,1134 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__posixpath[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,0,0,0,0,243,96,1,0,0,151,0,100,0,90,0, - 100,1,90,1,100,2,90,2,100,1,90,3,100,3,90,4, - 100,4,90,5,100,5,90,6,100,6,90,7,100,7,90,8, - 100,8,100,6,108,9,90,9,100,8,100,6,108,10,90,10, - 100,8,100,6,108,11,90,11,100,8,100,6,108,12,90,12, - 100,8,100,9,108,12,173,2,1,0,103,0,100,10,162,1, - 90,13,100,11,132,0,90,14,100,12,132,0,90,15,100,13, - 132,0,90,16,100,14,132,0,90,17,100,15,132,0,90,18, - 100,16,132,0,90,19,101,12,106,40,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,0,0,0, + 0,0,0,0,0,243,134,1,0,0,149,0,83,0,114,0, + 83,1,114,1,83,2,114,2,83,1,114,3,83,3,114,4, + 83,4,114,5,83,5,114,6,83,6,114,7,83,7,114,8, + 83,8,83,6,75,9,114,9,83,8,83,6,75,10,114,10, + 83,8,83,6,75,11,114,11,83,8,83,6,75,12,114,12, + 83,8,83,6,75,13,114,13,83,8,83,9,75,13,55,2, + 32,0,47,0,83,10,81,1,114,14,83,11,26,0,114,15, + 83,12,26,0,114,16,83,13,26,0,114,17,83,14,26,0, + 114,18,83,15,26,0,114,19,83,16,26,0,114,20,92,13, + 82,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,82,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,92,20,108,0,0,0,0,0, + 0,0,0,0,83,17,26,0,114,22,30,0,83,8,83,18, + 75,23,74,24,114,25,32,0,83,20,26,0,114,27,83,21, + 26,0,114,28,83,22,26,0,114,29,83,23,26,0,114,30, + 83,24,114,31,83,6,113,32,83,6,113,33,83,25,26,0, + 114,34,30,0,83,8,83,26,75,23,74,35,114,36,32,0, + 83,28,26,0,114,37,83,29,83,30,46,1,83,31,26,0, + 106,2,114,38,92,11,82,78,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,32,58,72,0,0, + 114,40,83,35,83,33,26,0,106,1,114,41,83,34,26,0, + 114,42,103,6,33,0,92,26,7,0,97,6,0,0,32,0, + 83,19,26,0,114,25,31,0,78,73,102,0,61,3,31,0, + 102,1,33,0,92,26,7,0,97,6,0,0,32,0,83,27, + 26,0,114,36,31,0,78,60,102,0,61,3,31,0,102,1, + 41,36,97,217,1,0,0,67,111,109,109,111,110,32,111,112, + 101,114,97,116,105,111,110,115,32,111,110,32,80,111,115,105, + 120,32,112,97,116,104,110,97,109,101,115,46,10,10,73,110, + 115,116,101,97,100,32,111,102,32,105,109,112,111,114,116,105, + 110,103,32,116,104,105,115,32,109,111,100,117,108,101,32,100, + 105,114,101,99,116,108,121,44,32,105,109,112,111,114,116,32, + 111,115,32,97,110,100,32,114,101,102,101,114,32,116,111,10, + 116,104,105,115,32,109,111,100,117,108,101,32,97,115,32,111, + 115,46,112,97,116,104,46,32,32,84,104,101,32,34,111,115, + 46,112,97,116,104,34,32,110,97,109,101,32,105,115,32,97, + 110,32,97,108,105,97,115,32,102,111,114,32,116,104,105,115, + 10,109,111,100,117,108,101,32,111,110,32,80,111,115,105,120, + 32,115,121,115,116,101,109,115,59,32,111,110,32,111,116,104, + 101,114,32,115,121,115,116,101,109,115,32,40,101,46,103,46, + 32,87,105,110,100,111,119,115,41,44,10,111,115,46,112,97, + 116,104,32,112,114,111,118,105,100,101,115,32,116,104,101,32, + 115,97,109,101,32,111,112,101,114,97,116,105,111,110,115,32, + 105,110,32,97,32,109,97,110,110,101,114,32,115,112,101,99, + 105,102,105,99,32,116,111,32,116,104,97,116,10,112,108,97, + 116,102,111,114,109,44,32,97,110,100,32,105,115,32,97,110, + 32,97,108,105,97,115,32,116,111,32,97,110,111,116,104,101, + 114,32,109,111,100,117,108,101,32,40,101,46,103,46,32,110, + 116,112,97,116,104,41,46,10,10,83,111,109,101,32,111,102, + 32,116,104,105,115,32,99,97,110,32,97,99,116,117,97,108, + 108,121,32,98,101,32,117,115,101,102,117,108,32,111,110,32, + 110,111,110,45,80,111,115,105,120,32,115,121,115,116,101,109, + 115,32,116,111,111,44,32,101,46,103,46,10,102,111,114,32, + 109,97,110,105,112,117,108,97,116,105,111,110,32,111,102,32, + 116,104,101,32,112,97,116,104,110,97,109,101,32,99,111,109, + 112,111,110,101,110,116,32,111,102,32,85,82,76,115,46,10, + 218,1,46,250,2,46,46,218,1,47,218,1,58,122,13,47, + 98,105,110,58,47,117,115,114,47,98,105,110,78,122,9,47, + 100,101,118,47,110,117,108,108,233,0,0,0,0,41,1,218, + 1,42,41,42,218,8,110,111,114,109,99,97,115,101,218,5, + 105,115,97,98,115,218,4,106,111,105,110,218,10,115,112,108, + 105,116,100,114,105,118,101,218,9,115,112,108,105,116,114,111, + 111,116,218,5,115,112,108,105,116,218,8,115,112,108,105,116, + 101,120,116,218,8,98,97,115,101,110,97,109,101,218,7,100, + 105,114,110,97,109,101,218,12,99,111,109,109,111,110,112,114, + 101,102,105,120,218,7,103,101,116,115,105,122,101,218,8,103, + 101,116,109,116,105,109,101,218,8,103,101,116,97,116,105,109, + 101,218,8,103,101,116,99,116,105,109,101,218,6,105,115,108, + 105,110,107,218,6,101,120,105,115,116,115,218,7,108,101,120, + 105,115,116,115,218,5,105,115,100,105,114,218,6,105,115,102, + 105,108,101,218,7,105,115,109,111,117,110,116,218,10,101,120, + 112,97,110,100,117,115,101,114,218,10,101,120,112,97,110,100, + 118,97,114,115,218,8,110,111,114,109,112,97,116,104,218,7, + 97,98,115,112,97,116,104,218,8,115,97,109,101,102,105,108, + 101,218,12,115,97,109,101,111,112,101,110,102,105,108,101,218, + 8,115,97,109,101,115,116,97,116,218,6,99,117,114,100,105, + 114,218,6,112,97,114,100,105,114,218,3,115,101,112,218,7, + 112,97,116,104,115,101,112,218,7,100,101,102,112,97,116,104, + 218,6,97,108,116,115,101,112,218,6,101,120,116,115,101,112, + 218,7,100,101,118,110,117,108,108,218,8,114,101,97,108,112, + 97,116,104,218,26,115,117,112,112,111,114,116,115,95,117,110, + 105,99,111,100,101,95,102,105,108,101,110,97,109,101,115,218, + 7,114,101,108,112,97,116,104,218,10,99,111,109,109,111,110, + 112,97,116,104,218,10,105,115,106,117,110,99,116,105,111,110, + 218,10,105,115,100,101,118,100,114,105,118,101,218,13,65,76, + 76,79,87,95,77,73,83,83,73,78,71,99,1,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 243,48,0,0,0,149,0,91,1,0,0,0,0,0,0,0, + 0,85,0,91,2,0,0,0,0,0,0,0,0,53,2,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,1,0, + 0,103,1,103,2,41,3,78,243,1,0,0,0,47,114,4, + 0,0,0,41,2,218,10,105,115,105,110,115,116,97,110,99, + 101,218,5,98,121,116,101,115,169,1,218,4,112,97,116,104, + 115,1,0,0,0,32,218,18,60,102,114,111,122,101,110,32, + 112,111,115,105,120,112,97,116,104,62,218,8,95,103,101,116, + 95,115,101,112,114,57,0,0,0,42,0,0,0,115,21,0, + 0,0,128,0,220,7,17,144,36,156,5,215,7,30,209,7, + 30,216,15,19,224,15,18,243,0,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,243,46,0,0,0,149,0,91,0,0,0,0,0,0,0, + 0,0,82,2,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,85,0,53,1,0,0,0,0, + 0,0,36,0,41,1,122,54,78,111,114,109,97,108,105,122, + 101,32,99,97,115,101,32,111,102,32,112,97,116,104,110,97, + 109,101,46,32,32,72,97,115,32,110,111,32,101,102,102,101, + 99,116,32,117,110,100,101,114,32,80,111,115,105,120,169,2, + 218,2,111,115,218,6,102,115,112,97,116,104,41,1,218,1, + 115,115,1,0,0,0,32,114,56,0,0,0,114,8,0,0, + 0,114,8,0,0,0,53,0,0,0,115,16,0,0,0,128, + 0,228,11,13,143,57,138,57,144,81,139,60,208,4,23,114, + 58,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,243,102,0,0,0,149,0, + 91,0,0,0,0,0,0,0,0,0,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 85,0,53,1,0,0,0,0,0,0,110,0,91,5,0,0, + 0,0,0,0,0,0,85,0,53,1,0,0,0,0,0,0, + 110,1,85,0,82,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,1,53,1,0,0,0,0, + 0,0,36,0,41,1,122,31,84,101,115,116,32,119,104,101, + 116,104,101,114,32,97,32,112,97,116,104,32,105,115,32,97, + 98,115,111,108,117,116,101,41,4,114,61,0,0,0,114,62, + 0,0,0,114,57,0,0,0,218,10,115,116,97,114,116,115, + 119,105,116,104,41,2,114,63,0,0,0,114,37,0,0,0, + 115,2,0,0,0,32,32,114,56,0,0,0,114,9,0,0, + 0,114,9,0,0,0,61,0,0,0,115,39,0,0,0,128, + 0,228,8,10,143,9,138,9,144,33,139,12,128,65,220,10, + 18,144,49,139,43,128,67,216,11,12,143,60,137,60,152,3, + 211,11,28,208,4,28,114,58,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,7,0,0,0, + 243,120,1,0,0,149,0,91,0,0,0,0,0,0,0,0, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,85,0,53,1,0,0,0,0,0, + 0,110,0,91,5,0,0,0,0,0,0,0,0,85,0,53, + 1,0,0,0,0,0,0,110,2,85,0,110,3,30,0,85, + 1,19,0,72,93,0,0,110,4,91,0,0,0,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,85,4,53,1,0,0,0, + 0,0,0,110,4,85,4,82,7,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,2,53,1,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,100,7,0, + 0,85,3,40,0,0,0,0,0,0,0,100,4,0,0,85, + 4,110,3,77,58,0,0,85,3,82,9,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,2,53, + 1,0,0,0,0,0,0,40,0,0,0,0,0,0,0,97, + 6,0,0,88,52,45,13,0,0,110,3,77,86,0,0,88, + 50,85,4,45,0,0,0,45,13,0,0,110,3,77,95,0, + 0,11,0,32,0,85,3,36,0,33,0,91,10,0,0,0, + 0,0,0,0,0,91,12,0,0,0,0,0,0,0,0,91, + 14,0,0,0,0,0,0,0,0,52,3,7,0,97,26,0, + 0,32,0,91,16,0,0,0,0,0,0,0,0,82,18,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 101,19,95,0,0,0,0,0,0,0,0,0,100,17,132,0, - 90,21,100,18,132,0,90,22,100,19,132,0,90,23,100,20, - 132,0,90,24,100,21,132,0,90,25,100,22,132,0,90,26, - 100,23,132,0,90,27,100,24,132,0,90,28,100,6,97,29, - 100,6,97,30,100,25,132,0,90,31,9,0,100,8,100,26, - 108,32,109,33,90,34,1,0,100,28,132,0,90,36,100,29, - 100,30,156,1,100,31,132,2,90,37,100,32,132,0,90,38, - 101,10,106,78,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,33,107,40,0,0,90,40,100,36, - 100,34,132,1,90,41,100,35,132,0,90,42,121,6,35,0, - 101,35,36,0,114,6,1,0,100,27,132,0,90,34,89,0, - 140,45,119,0,120,3,89,0,119,1,41,37,97,217,1,0, - 0,67,111,109,109,111,110,32,111,112,101,114,97,116,105,111, - 110,115,32,111,110,32,80,111,115,105,120,32,112,97,116,104, - 110,97,109,101,115,46,10,10,73,110,115,116,101,97,100,32, - 111,102,32,105,109,112,111,114,116,105,110,103,32,116,104,105, - 115,32,109,111,100,117,108,101,32,100,105,114,101,99,116,108, - 121,44,32,105,109,112,111,114,116,32,111,115,32,97,110,100, - 32,114,101,102,101,114,32,116,111,10,116,104,105,115,32,109, - 111,100,117,108,101,32,97,115,32,111,115,46,112,97,116,104, - 46,32,32,84,104,101,32,34,111,115,46,112,97,116,104,34, - 32,110,97,109,101,32,105,115,32,97,110,32,97,108,105,97, - 115,32,102,111,114,32,116,104,105,115,10,109,111,100,117,108, - 101,32,111,110,32,80,111,115,105,120,32,115,121,115,116,101, - 109,115,59,32,111,110,32,111,116,104,101,114,32,115,121,115, - 116,101,109,115,32,40,101,46,103,46,32,87,105,110,100,111, - 119,115,41,44,10,111,115,46,112,97,116,104,32,112,114,111, - 118,105,100,101,115,32,116,104,101,32,115,97,109,101,32,111, - 112,101,114,97,116,105,111,110,115,32,105,110,32,97,32,109, - 97,110,110,101,114,32,115,112,101,99,105,102,105,99,32,116, - 111,32,116,104,97,116,10,112,108,97,116,102,111,114,109,44, - 32,97,110,100,32,105,115,32,97,110,32,97,108,105,97,115, - 32,116,111,32,97,110,111,116,104,101,114,32,109,111,100,117, - 108,101,32,40,101,46,103,46,32,110,116,112,97,116,104,41, - 46,10,10,83,111,109,101,32,111,102,32,116,104,105,115,32, - 99,97,110,32,97,99,116,117,97,108,108,121,32,98,101,32, - 117,115,101,102,117,108,32,111,110,32,110,111,110,45,80,111, - 115,105,120,32,115,121,115,116,101,109,115,32,116,111,111,44, - 32,101,46,103,46,10,102,111,114,32,109,97,110,105,112,117, - 108,97,116,105,111,110,32,111,102,32,116,104,101,32,112,97, - 116,104,110,97,109,101,32,99,111,109,112,111,110,101,110,116, - 32,111,102,32,85,82,76,115,46,10,218,1,46,250,2,46, - 46,218,1,47,218,1,58,122,13,47,98,105,110,58,47,117, - 115,114,47,98,105,110,78,122,9,47,100,101,118,47,110,117, - 108,108,233,0,0,0,0,41,1,218,1,42,41,41,218,8, - 110,111,114,109,99,97,115,101,218,5,105,115,97,98,115,218, - 4,106,111,105,110,218,10,115,112,108,105,116,100,114,105,118, - 101,218,9,115,112,108,105,116,114,111,111,116,218,5,115,112, - 108,105,116,218,8,115,112,108,105,116,101,120,116,218,8,98, - 97,115,101,110,97,109,101,218,7,100,105,114,110,97,109,101, - 218,12,99,111,109,109,111,110,112,114,101,102,105,120,218,7, - 103,101,116,115,105,122,101,218,8,103,101,116,109,116,105,109, - 101,218,8,103,101,116,97,116,105,109,101,218,8,103,101,116, - 99,116,105,109,101,218,6,105,115,108,105,110,107,218,6,101, - 120,105,115,116,115,218,7,108,101,120,105,115,116,115,218,5, - 105,115,100,105,114,218,6,105,115,102,105,108,101,218,7,105, - 115,109,111,117,110,116,218,10,101,120,112,97,110,100,117,115, - 101,114,218,10,101,120,112,97,110,100,118,97,114,115,218,8, - 110,111,114,109,112,97,116,104,218,7,97,98,115,112,97,116, - 104,218,8,115,97,109,101,102,105,108,101,218,12,115,97,109, - 101,111,112,101,110,102,105,108,101,218,8,115,97,109,101,115, - 116,97,116,218,6,99,117,114,100,105,114,218,6,112,97,114, - 100,105,114,218,3,115,101,112,218,7,112,97,116,104,115,101, - 112,218,7,100,101,102,112,97,116,104,218,6,97,108,116,115, - 101,112,218,6,101,120,116,115,101,112,218,7,100,101,118,110, - 117,108,108,218,8,114,101,97,108,112,97,116,104,218,26,115, - 117,112,112,111,114,116,115,95,117,110,105,99,111,100,101,95, - 102,105,108,101,110,97,109,101,115,218,7,114,101,108,112,97, - 116,104,218,10,99,111,109,109,111,110,112,97,116,104,218,10, - 105,115,106,117,110,99,116,105,111,110,218,13,65,76,76,79, - 87,95,77,73,83,83,73,78,71,99,1,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,38, - 0,0,0,151,0,116,1,0,0,0,0,0,0,0,0,124, - 0,116,2,0,0,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,114,1,121,1,121,2,41,3,78,243,1,0,0, - 0,47,114,4,0,0,0,41,2,218,10,105,115,105,110,115, - 116,97,110,99,101,218,5,98,121,116,101,115,169,1,218,4, - 112,97,116,104,115,1,0,0,0,32,250,18,60,102,114,111, - 122,101,110,32,112,111,115,105,120,112,97,116,104,62,218,8, - 95,103,101,116,95,115,101,112,114,56,0,0,0,41,0,0, - 0,115,18,0,0,0,128,0,220,7,17,144,36,156,5,212, - 7,30,216,15,19,224,15,18,243,0,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,44,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,83,0,41,1,122,54,78,111,114,109,97,108,105,122,101, - 32,99,97,115,101,32,111,102,32,112,97,116,104,110,97,109, - 101,46,32,32,72,97,115,32,110,111,32,101,102,102,101,99, - 116,32,117,110,100,101,114,32,80,111,115,105,120,169,2,218, - 2,111,115,218,6,102,115,112,97,116,104,41,1,218,1,115, - 115,1,0,0,0,32,114,55,0,0,0,114,8,0,0,0, - 114,8,0,0,0,52,0,0,0,115,16,0,0,0,128,0, - 228,11,13,143,57,137,57,144,81,139,60,208,4,23,114,57, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,0,0,0,243,100,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,125,0,116,5,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,125,1,124, - 0,106,7,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,1,171,1,0,0,0,0,0,0,83, - 0,41,1,122,31,84,101,115,116,32,119,104,101,116,104,101, - 114,32,97,32,112,97,116,104,32,105,115,32,97,98,115,111, - 108,117,116,101,41,4,114,60,0,0,0,114,61,0,0,0, - 114,56,0,0,0,218,10,115,116,97,114,116,115,119,105,116, - 104,41,2,114,62,0,0,0,114,37,0,0,0,115,2,0, - 0,0,32,32,114,55,0,0,0,114,9,0,0,0,114,9, - 0,0,0,60,0,0,0,115,39,0,0,0,128,0,228,8, - 10,143,9,137,9,144,33,139,12,128,65,220,10,18,144,49, - 139,43,128,67,216,11,12,143,60,137,60,152,3,211,11,28, - 208,4,28,114,57,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,7,0,0,0,243,106,1, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,0,116,5, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,125,2,124,0,125,3,9,0,124,1,115,8,124,3, - 100,1,100,2,26,0,124,2,122,0,0,0,1,0,116,7, - 0,0,0,0,0,0,0,0,116,0,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,171,2,0,0,0,0,0,0, - 68,0,93,55,0,0,125,4,124,4,106,9,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, - 171,1,0,0,0,0,0,0,114,3,124,4,125,3,140,23, - 124,3,114,17,124,3,106,11,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,2,171,1,0,0, - 0,0,0,0,114,6,124,3,124,4,122,13,0,0,125,3, - 140,48,124,3,124,2,124,4,122,0,0,0,122,13,0,0, - 125,3,140,57,4,0,9,0,124,3,83,0,35,0,116,12, - 0,0,0,0,0,0,0,0,116,14,0,0,0,0,0,0, - 0,0,116,16,0,0,0,0,0,0,0,0,102,3,36,0, - 114,25,1,0,116,19,0,0,0,0,0,0,0,0,106,20, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,3,124,0,103,2,124,1,162,1,173,6,142,0, - 1,0,130,0,119,0,120,3,89,0,119,1,41,4,122,230, - 74,111,105,110,32,116,119,111,32,111,114,32,109,111,114,101, - 32,112,97,116,104,110,97,109,101,32,99,111,109,112,111,110, - 101,110,116,115,44,32,105,110,115,101,114,116,105,110,103,32, - 39,47,39,32,97,115,32,110,101,101,100,101,100,46,10,32, - 32,32,32,73,102,32,97,110,121,32,99,111,109,112,111,110, - 101,110,116,32,105,115,32,97,110,32,97,98,115,111,108,117, - 116,101,32,112,97,116,104,44,32,97,108,108,32,112,114,101, - 118,105,111,117,115,32,112,97,116,104,32,99,111,109,112,111, - 110,101,110,116,115,10,32,32,32,32,119,105,108,108,32,98, - 101,32,100,105,115,99,97,114,100,101,100,46,32,32,65,110, - 32,101,109,112,116,121,32,108,97,115,116,32,112,97,114,116, - 32,119,105,108,108,32,114,101,115,117,108,116,32,105,110,32, - 97,32,112,97,116,104,32,116,104,97,116,10,32,32,32,32, - 101,110,100,115,32,119,105,116,104,32,97,32,115,101,112,97, - 114,97,116,111,114,46,78,114,6,0,0,0,114,10,0,0, - 0,41,11,114,60,0,0,0,114,61,0,0,0,114,56,0, - 0,0,218,3,109,97,112,114,64,0,0,0,218,8,101,110, - 100,115,119,105,116,104,218,9,84,121,112,101,69,114,114,111, - 114,218,14,65,116,116,114,105,98,117,116,101,69,114,114,111, - 114,218,12,66,121,116,101,115,87,97,114,110,105,110,103,218, - 11,103,101,110,101,114,105,99,112,97,116,104,218,16,95,99, - 104,101,99,107,95,97,114,103,95,116,121,112,101,115,41,5, - 218,1,97,218,1,112,114,37,0,0,0,114,54,0,0,0, - 218,1,98,115,5,0,0,0,32,32,32,32,32,114,55,0, - 0,0,114,10,0,0,0,114,10,0,0,0,71,0,0,0, - 115,181,0,0,0,128,0,244,10,0,9,11,143,9,137,9, - 144,33,139,12,128,65,220,10,18,144,49,139,43,128,67,216, - 11,12,128,68,240,2,12,5,14,217,15,16,216,12,16,144, - 18,144,33,136,72,144,115,138,78,220,17,20,148,82,151,89, - 145,89,160,1,214,17,34,136,65,216,15,16,143,124,137,124, - 152,67,212,15,32,216,23,24,145,4,217,21,25,152,84,159, - 93,153,93,168,51,212,29,47,216,16,20,152,1,145,9,145, - 4,224,16,20,152,3,152,97,153,7,145,15,145,4,241,13, - 0,18,35,240,20,0,12,16,128,75,248,244,7,0,13,22, - 148,126,164,124,208,11,52,242,0,2,5,14,220,8,19,215, - 8,36,209,8,36,160,86,168,81,208,8,51,176,17,211,8, - 51,216,8,13,240,5,2,5,14,250,115,12,0,0,0,164, - 65,30,66,5,0,194,5,45,66,50,3,99,1,0,0,0, - 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, - 243,206,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,125, - 0,116,5,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,125,1,124,0,106,7,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,171, - 1,0,0,0,0,0,0,100,1,122,0,0,0,125,2,124, - 0,100,2,124,2,26,0,124,0,124,2,100,2,26,0,125, - 4,125,3,124,3,114,34,124,3,124,1,116,9,0,0,0, - 0,0,0,0,0,124,3,171,1,0,0,0,0,0,0,122, - 5,0,0,107,55,0,0,114,17,124,3,106,11,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 1,171,1,0,0,0,0,0,0,125,3,124,3,124,4,102, - 2,83,0,41,3,122,128,83,112,108,105,116,32,97,32,112, - 97,116,104,110,97,109,101,46,32,32,82,101,116,117,114,110, - 115,32,116,117,112,108,101,32,34,40,104,101,97,100,44,32, - 116,97,105,108,41,34,32,119,104,101,114,101,32,34,116,97, - 105,108,34,32,105,115,10,32,32,32,32,101,118,101,114,121, + 0,34,0,83,1,85,0,47,2,85,1,81,1,55,6,54, + 0,32,0,101,0,102,0,61,3,31,0,102,1,41,2,122, + 218,74,111,105,110,32,116,119,111,32,111,114,32,109,111,114, + 101,32,112,97,116,104,110,97,109,101,32,99,111,109,112,111, + 110,101,110,116,115,44,32,105,110,115,101,114,116,105,110,103, + 32,39,47,39,32,97,115,32,110,101,101,100,101,100,46,10, + 73,102,32,97,110,121,32,99,111,109,112,111,110,101,110,116, + 32,105,115,32,97,110,32,97,98,115,111,108,117,116,101,32, + 112,97,116,104,44,32,97,108,108,32,112,114,101,118,105,111, + 117,115,32,112,97,116,104,32,99,111,109,112,111,110,101,110, + 116,115,10,119,105,108,108,32,98,101,32,100,105,115,99,97, + 114,100,101,100,46,32,32,65,110,32,101,109,112,116,121,32, + 108,97,115,116,32,112,97,114,116,32,119,105,108,108,32,114, + 101,115,117,108,116,32,105,110,32,97,32,112,97,116,104,32, + 116,104,97,116,10,101,110,100,115,32,119,105,116,104,32,97, + 32,115,101,112,97,114,97,116,111,114,46,114,10,0,0,0, + 41,10,114,61,0,0,0,114,62,0,0,0,114,57,0,0, + 0,114,65,0,0,0,218,8,101,110,100,115,119,105,116,104, + 218,9,84,121,112,101,69,114,114,111,114,218,14,65,116,116, + 114,105,98,117,116,101,69,114,114,111,114,218,12,66,121,116, + 101,115,87,97,114,110,105,110,103,218,11,103,101,110,101,114, + 105,99,112,97,116,104,218,16,95,99,104,101,99,107,95,97, + 114,103,95,116,121,112,101,115,41,5,218,1,97,218,1,112, + 114,37,0,0,0,114,55,0,0,0,218,1,98,115,5,0, + 0,0,32,32,32,32,32,114,56,0,0,0,114,10,0,0, + 0,114,10,0,0,0,72,0,0,0,115,169,0,0,0,128, + 0,244,10,0,9,11,143,9,138,9,144,33,139,12,128,65, + 220,10,18,144,49,139,43,128,67,216,11,12,128,68,240,2, + 11,5,14,219,17,18,136,65,220,16,18,151,9,146,9,152, + 33,147,12,136,65,216,15,16,143,124,137,124,152,67,215,15, + 32,209,15,32,174,4,216,23,24,146,4,216,17,21,151,29, + 145,29,152,115,215,17,35,209,17,35,216,16,20,145,9,146, + 4,224,16,20,152,97,153,7,145,15,146,4,241,15,0,18, + 19,240,22,0,12,16,128,75,248,244,7,0,13,22,148,126, + 164,124,208,11,52,243,0,2,5,14,220,8,19,215,8,36, + 210,8,36,160,86,168,81,208,8,51,176,17,211,8,51,216, + 8,13,240,5,2,5,14,250,115,12,0,0,0,165,65,35, + 66,10,0,194,10,47,66,57,3,99,1,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,212, + 0,0,0,149,0,91,0,0,0,0,0,0,0,0,0,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,85,0,53,1,0,0,0,0,0,0,110, + 0,91,5,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,110,1,85,0,82,7,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,53, + 1,0,0,0,0,0,0,83,1,45,0,0,0,110,2,85, + 0,83,2,85,2,4,0,88,2,83,2,4,0,112,67,85, + 3,40,0,0,0,0,0,0,0,97,34,0,0,88,49,91, + 9,0,0,0,0,0,0,0,0,85,3,53,1,0,0,0, + 0,0,0,45,5,0,0,58,119,0,0,97,17,0,0,85, + 3,82,11,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,1,53,1,0,0,0,0,0,0,110, + 3,88,52,52,2,36,0,41,3,122,124,83,112,108,105,116, + 32,97,32,112,97,116,104,110,97,109,101,46,32,32,82,101, + 116,117,114,110,115,32,116,117,112,108,101,32,34,40,104,101, + 97,100,44,32,116,97,105,108,41,34,32,119,104,101,114,101, + 32,34,116,97,105,108,34,32,105,115,10,101,118,101,114,121, 116,104,105,110,103,32,97,102,116,101,114,32,116,104,101,32, 102,105,110,97,108,32,115,108,97,115,104,46,32,32,69,105, 116,104,101,114,32,112,97,114,116,32,109,97,121,32,98,101, 32,101,109,112,116,121,46,233,1,0,0,0,78,169,6,114, - 60,0,0,0,114,61,0,0,0,114,56,0,0,0,218,5, + 61,0,0,0,114,62,0,0,0,114,57,0,0,0,218,5, 114,102,105,110,100,218,3,108,101,110,218,6,114,115,116,114, 105,112,41,5,114,74,0,0,0,114,37,0,0,0,218,1, 105,218,4,104,101,97,100,218,4,116,97,105,108,115,5,0, - 0,0,32,32,32,32,32,114,55,0,0,0,114,13,0,0, - 0,114,13,0,0,0,100,0,0,0,115,107,0,0,0,128, - 0,244,6,0,9,11,143,9,137,9,144,33,139,12,128,65, + 0,0,32,32,32,32,32,114,56,0,0,0,114,13,0,0, + 0,114,13,0,0,0,100,0,0,0,115,99,0,0,0,128, + 0,244,6,0,9,11,143,9,138,9,144,33,139,12,128,65, 220,10,18,144,49,139,43,128,67,216,8,9,143,7,137,7, 144,3,139,12,144,113,209,8,24,128,65,216,17,18,144,50, - 144,65,144,21,152,1,152,33,152,34,152,5,136,36,128,68, - 217,7,11,144,4,152,3,156,67,160,4,155,73,153,13,210, - 16,37,216,15,19,143,123,137,123,152,51,211,15,31,136,4, - 216,11,15,144,20,136,58,208,4,21,114,57,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, - 3,0,0,0,243,142,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,125,0,116,5,0,0,0,0,0,0,0,0,124, - 0,116,6,0,0,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,114,5,100,1,125,1,100,2,125,2,110,4,100, - 3,125,1,100,4,125,2,116,9,0,0,0,0,0,0,0, - 0,106,10,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,124,1,100,0,124,2,171,4,0, - 0,0,0,0,0,83,0,41,5,78,114,50,0,0,0,243, - 1,0,0,0,46,114,4,0,0,0,114,2,0,0,0,41, - 6,114,60,0,0,0,114,61,0,0,0,114,51,0,0,0, - 114,52,0,0,0,114,71,0,0,0,218,9,95,115,112,108, - 105,116,101,120,116,41,3,114,74,0,0,0,114,37,0,0, - 0,114,41,0,0,0,115,3,0,0,0,32,32,32,114,55, - 0,0,0,114,14,0,0,0,114,14,0,0,0,117,0,0, - 0,115,68,0,0,0,128,0,220,8,10,143,9,137,9,144, - 33,139,12,128,65,220,7,17,144,33,148,85,212,7,27,216, - 14,18,136,3,216,17,21,137,6,224,14,17,136,3,216,17, - 20,136,6,220,11,22,215,11,32,209,11,32,160,17,160,67, - 168,20,168,118,211,11,54,208,4,54,114,57,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,58,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,125,0,124,0,100,1,100,2,26,0,124,0,102, - 2,83,0,41,3,122,74,83,112,108,105,116,32,97,32,112, - 97,116,104,110,97,109,101,32,105,110,116,111,32,100,114,105, - 118,101,32,97,110,100,32,112,97,116,104,46,32,79,110,32, - 80,111,115,105,120,44,32,100,114,105,118,101,32,105,115,32, - 97,108,119,97,121,115,10,32,32,32,32,101,109,112,116,121, - 46,78,114,6,0,0,0,114,59,0,0,0,41,1,114,74, - 0,0,0,115,1,0,0,0,32,114,55,0,0,0,114,11, - 0,0,0,114,11,0,0,0,131,0,0,0,115,32,0,0, - 0,128,0,244,6,0,9,11,143,9,137,9,144,33,139,12, - 128,65,216,11,12,136,82,136,97,136,53,144,33,136,56,128, - 79,114,57,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,243,190,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,106,2,0,0, + 144,65,144,21,152,1,152,34,152,5,136,36,222,7,11,144, + 4,156,67,160,4,155,73,153,13,211,16,37,216,15,19,143, + 123,137,123,152,51,211,15,31,136,4,216,11,15,136,58,208, + 4,21,114,58,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,6,0,0,0,3,0,0,0,243,154,0,0, + 0,149,0,91,0,0,0,0,0,0,0,0,0,82,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,125,0,116,5,0,0, - 0,0,0,0,0,0,124,0,116,6,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,114,5,100,1,125,1, - 100,2,125,2,110,4,100,3,125,1,100,4,125,2,124,0, - 100,5,100,6,26,0,124,1,107,55,0,0,114,5,124,2, - 124,2,124,0,102,3,83,0,124,0,100,6,100,7,26,0, - 124,1,107,55,0,0,115,8,124,0,100,7,100,8,26,0, - 124,1,107,40,0,0,114,8,124,2,124,1,124,0,100,6, - 100,5,26,0,102,3,83,0,124,2,124,0,100,5,100,7, - 26,0,124,0,100,7,100,5,26,0,102,3,83,0,41,9, - 97,165,1,0,0,83,112,108,105,116,32,97,32,112,97,116, - 104,110,97,109,101,32,105,110,116,111,32,100,114,105,118,101, - 44,32,114,111,111,116,32,97,110,100,32,116,97,105,108,46, - 32,79,110,32,80,111,115,105,120,44,32,100,114,105,118,101, - 32,105,115,32,97,108,119,97,121,115,10,32,32,32,32,101, - 109,112,116,121,59,32,116,104,101,32,114,111,111,116,32,109, - 97,121,32,98,101,32,101,109,112,116,121,44,32,97,32,115, - 105,110,103,108,101,32,115,108,97,115,104,44,32,111,114,32, - 116,119,111,32,115,108,97,115,104,101,115,46,32,84,104,101, - 32,116,97,105,108,10,32,32,32,32,99,111,110,116,97,105, - 110,115,32,97,110,121,116,104,105,110,103,32,97,102,116,101, - 114,32,116,104,101,32,114,111,111,116,46,32,70,111,114,32, - 101,120,97,109,112,108,101,58,10,10,32,32,32,32,32,32, - 32,32,115,112,108,105,116,114,111,111,116,40,39,102,111,111, - 47,98,97,114,39,41,32,61,61,32,40,39,39,44,32,39, - 39,44,32,39,102,111,111,47,98,97,114,39,41,10,32,32, - 32,32,32,32,32,32,115,112,108,105,116,114,111,111,116,40, - 39,47,102,111,111,47,98,97,114,39,41,32,61,61,32,40, - 39,39,44,32,39,47,39,44,32,39,102,111,111,47,98,97, - 114,39,41,10,32,32,32,32,32,32,32,32,115,112,108,105, - 116,114,111,111,116,40,39,47,47,102,111,111,47,98,97,114, - 39,41,32,61,61,32,40,39,39,44,32,39,47,47,39,44, - 32,39,102,111,111,47,98,97,114,39,41,10,32,32,32,32, - 32,32,32,32,115,112,108,105,116,114,111,111,116,40,39,47, - 47,47,102,111,111,47,98,97,114,39,41,32,61,61,32,40, - 39,39,44,32,39,47,39,44,32,39,47,47,102,111,111,47, - 98,97,114,39,41,10,32,32,32,32,114,50,0,0,0,114, - 57,0,0,0,114,4,0,0,0,218,0,78,114,77,0,0, - 0,233,2,0,0,0,233,3,0,0,0,41,4,114,60,0, - 0,0,114,61,0,0,0,114,51,0,0,0,114,52,0,0, - 0,41,3,114,74,0,0,0,114,37,0,0,0,218,5,101, - 109,112,116,121,115,3,0,0,0,32,32,32,114,55,0,0, - 0,114,12,0,0,0,114,12,0,0,0,138,0,0,0,115, - 143,0,0,0,128,0,244,20,0,9,11,143,9,137,9,144, - 33,139,12,128,65,220,7,17,144,33,148,85,212,7,27,216, - 14,18,136,3,216,16,19,137,5,224,14,17,136,3,216,16, - 18,136,5,216,7,8,136,18,136,33,128,117,144,3,130,124, - 224,15,20,144,101,152,81,136,127,208,8,30,216,9,10,136, - 49,136,81,136,22,144,51,138,29,152,33,152,65,152,97,152, - 38,160,67,154,45,224,15,20,144,99,152,49,152,81,152,82, - 152,53,208,15,32,208,8,32,240,8,0,16,21,144,97,152, - 2,152,17,144,101,152,81,152,113,152,114,152,85,208,15,34, - 208,8,34,114,57,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,3,0,0,0,243,116,0, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,106,2, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,0,116,5, - 0,0,0,0,0,0,0,0,124,0,171,1,0,0,0,0, - 0,0,125,1,124,0,106,7,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,100,1,122,0,0,0,125,2,124,0,124,2, - 100,2,26,0,83,0,41,3,122,41,82,101,116,117,114,110, - 115,32,116,104,101,32,102,105,110,97,108,32,99,111,109,112, - 111,110,101,110,116,32,111,102,32,97,32,112,97,116,104,110, - 97,109,101,114,77,0,0,0,78,41,4,114,60,0,0,0, - 114,61,0,0,0,114,56,0,0,0,114,79,0,0,0,41, - 3,114,74,0,0,0,114,37,0,0,0,114,82,0,0,0, - 115,3,0,0,0,32,32,32,114,55,0,0,0,114,15,0, - 0,0,114,15,0,0,0,169,0,0,0,115,53,0,0,0, - 128,0,228,8,10,143,9,137,9,144,33,139,12,128,65,220, - 10,18,144,49,139,43,128,67,216,8,9,143,7,137,7,144, - 3,139,12,144,113,209,8,24,128,65,216,11,12,136,81,136, - 82,136,53,128,76,114,57,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,243, - 192,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,125,0, - 116,5,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,125,1,124,0,106,7,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,1,171,1, - 0,0,0,0,0,0,100,1,122,0,0,0,125,2,124,0, - 100,2,124,2,26,0,125,3,124,3,114,34,124,3,124,1, - 116,9,0,0,0,0,0,0,0,0,124,3,171,1,0,0, - 0,0,0,0,122,5,0,0,107,55,0,0,114,17,124,3, - 106,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,125,3, - 124,3,83,0,41,3,122,45,82,101,116,117,114,110,115,32, - 116,104,101,32,100,105,114,101,99,116,111,114,121,32,99,111, - 109,112,111,110,101,110,116,32,111,102,32,97,32,112,97,116, - 104,110,97,109,101,114,77,0,0,0,78,114,78,0,0,0, - 41,4,114,74,0,0,0,114,37,0,0,0,114,82,0,0, - 0,114,83,0,0,0,115,4,0,0,0,32,32,32,32,114, - 55,0,0,0,114,16,0,0,0,114,16,0,0,0,179,0, - 0,0,115,90,0,0,0,128,0,228,8,10,143,9,137,9, - 144,33,139,12,128,65,220,10,18,144,49,139,43,128,67,216, - 8,9,143,7,137,7,144,3,139,12,144,113,209,8,24,128, - 65,216,11,12,136,82,136,97,136,53,128,68,217,7,11,144, - 4,152,3,156,67,160,4,155,73,153,13,210,16,37,216,15, - 19,143,123,137,123,152,51,211,15,31,136,4,216,11,15,128, - 75,114,57,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,243,46,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,106,2,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,1,0,121,1,41,2, - 122,81,84,101,115,116,32,119,104,101,116,104,101,114,32,97, - 32,112,97,116,104,32,105,115,32,97,32,106,117,110,99,116, - 105,111,110,10,32,32,32,32,74,117,110,99,116,105,111,110, - 115,32,97,114,101,32,110,111,116,32,97,32,112,97,114,116, - 32,111,102,32,112,111,115,105,120,32,115,101,109,97,110,116, - 105,99,115,70,114,59,0,0,0,114,53,0,0,0,115,1, - 0,0,0,32,114,55,0,0,0,114,47,0,0,0,114,47, - 0,0,0,192,0,0,0,115,18,0,0,0,128,0,244,6, - 0,5,7,135,73,129,73,136,100,132,79,216,11,16,114,57, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,90,0,0,0,151,0,9, - 0,116,1,0,0,0,0,0,0,0,0,106,2,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,1,0,121,2,35,0,116, - 4,0,0,0,0,0,0,0,0,116,6,0,0,0,0,0, - 0,0,0,102,2,36,0,114,3,1,0,89,0,121,1,119, - 0,120,3,89,0,119,1,41,3,122,67,84,101,115,116,32, - 119,104,101,116,104,101,114,32,97,32,112,97,116,104,32,101, - 120,105,115,116,115,46,32,32,82,101,116,117,114,110,115,32, - 84,114,117,101,32,102,111,114,32,98,114,111,107,101,110,32, - 115,121,109,98,111,108,105,99,32,108,105,110,107,115,70,84, - 41,4,114,60,0,0,0,218,5,108,115,116,97,116,218,7, - 79,83,69,114,114,111,114,218,10,86,97,108,117,101,69,114, - 114,111,114,114,53,0,0,0,115,1,0,0,0,32,114,55, - 0,0,0,114,24,0,0,0,114,24,0,0,0,201,0,0, - 0,115,48,0,0,0,128,0,240,4,3,5,21,220,8,10, - 143,8,137,8,144,20,140,14,240,6,0,12,16,248,244,5, - 0,13,20,148,90,208,11,32,242,0,1,5,21,217,15,20, - 240,3,1,5,21,250,115,12,0,0,0,130,21,24,0,152, - 15,42,3,169,1,42,3,99,1,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,3,0,0,0,243,250,1,0, - 0,151,0,9,0,116,1,0,0,0,0,0,0,0,0,106, + 0,34,0,85,0,53,1,0,0,0,0,0,0,110,0,91, + 5,0,0,0,0,0,0,0,0,85,0,91,6,0,0,0, + 0,0,0,0,0,53,2,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,97,5,0,0,83,1,110,1,83,2,110, + 2,79,4,83,3,110,1,83,4,110,2,91,8,0,0,0, + 0,0,0,0,0,82,10,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,88,1,83,0,85, + 2,53,4,0,0,0,0,0,0,36,0,41,5,78,114,51, + 0,0,0,243,1,0,0,0,46,114,4,0,0,0,114,2, + 0,0,0,41,6,114,61,0,0,0,114,62,0,0,0,114, + 52,0,0,0,114,53,0,0,0,114,71,0,0,0,218,9, + 95,115,112,108,105,116,101,120,116,41,3,114,74,0,0,0, + 114,37,0,0,0,114,41,0,0,0,115,3,0,0,0,32, + 32,32,114,56,0,0,0,114,14,0,0,0,114,14,0,0, + 0,117,0,0,0,115,69,0,0,0,128,0,220,8,10,143, + 9,138,9,144,33,139,12,128,65,220,7,17,144,33,148,85, + 215,7,27,209,7,27,216,14,18,136,3,216,17,21,137,6, + 224,14,17,136,3,216,17,20,136,6,220,11,22,215,11,32, + 210,11,32,160,17,168,20,168,118,211,11,54,208,4,54,114, + 58,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,243,60,0,0,0,149,0, + 91,0,0,0,0,0,0,0,0,0,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 85,0,53,1,0,0,0,0,0,0,110,0,85,0,83,1, + 83,2,4,0,85,0,52,2,36,0,41,3,122,70,83,112, + 108,105,116,32,97,32,112,97,116,104,110,97,109,101,32,105, + 110,116,111,32,100,114,105,118,101,32,97,110,100,32,112,97, + 116,104,46,32,79,110,32,80,111,115,105,120,44,32,100,114, + 105,118,101,32,105,115,32,97,108,119,97,121,115,10,101,109, + 112,116,121,46,78,114,6,0,0,0,114,60,0,0,0,41, + 1,114,74,0,0,0,115,1,0,0,0,32,114,56,0,0, + 0,114,11,0,0,0,114,11,0,0,0,131,0,0,0,115, + 32,0,0,0,128,0,244,6,0,9,11,143,9,138,9,144, + 33,139,12,128,65,216,11,12,136,82,136,97,136,53,144,33, + 136,56,128,79,114,58,0,0,0,41,1,218,18,95,112,97, + 116,104,95,115,112,108,105,116,114,111,111,116,95,101,120,99, + 1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, + 3,0,0,0,243,202,0,0,0,149,0,91,0,0,0,0, + 0,0,0,0,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,85,0,53,1,0, + 0,0,0,0,0,110,0,91,5,0,0,0,0,0,0,0, + 0,85,0,91,6,0,0,0,0,0,0,0,0,53,2,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,5,0, + 0,83,1,110,1,83,2,110,2,79,4,83,3,110,1,83, + 4,110,2,85,0,83,5,83,6,4,0,85,1,58,119,0, + 0,97,4,0,0,88,34,85,0,52,3,36,0,85,0,83, + 6,83,7,4,0,85,1,58,119,0,0,100,9,0,0,85, + 0,83,7,83,8,4,0,85,1,58,88,0,0,97,7,0, + 0,88,33,85,0,83,6,83,5,4,0,52,3,36,0,88, + 32,83,5,83,7,4,0,85,0,83,7,83,5,4,0,52, + 3,36,0,41,9,122,87,83,112,108,105,116,32,97,32,112, + 97,116,104,110,97,109,101,32,105,110,116,111,32,100,114,105, + 118,101,44,32,114,111,111,116,32,97,110,100,32,116,97,105, + 108,46,10,10,84,104,101,32,116,97,105,108,32,99,111,110, + 116,97,105,110,115,32,97,110,121,116,104,105,110,103,32,97, + 102,116,101,114,32,116,104,101,32,114,111,111,116,46,114,51, + 0,0,0,114,58,0,0,0,114,4,0,0,0,218,0,78, + 114,77,0,0,0,233,2,0,0,0,233,3,0,0,0,41, + 4,114,61,0,0,0,114,62,0,0,0,114,52,0,0,0, + 114,53,0,0,0,41,3,114,74,0,0,0,114,37,0,0, + 0,218,5,101,109,112,116,121,115,3,0,0,0,32,32,32, + 114,56,0,0,0,114,12,0,0,0,114,12,0,0,0,141, + 0,0,0,115,140,0,0,0,128,0,244,8,0,13,15,143, + 73,138,73,144,97,139,76,136,1,220,11,21,144,97,156,21, + 215,11,31,209,11,31,216,18,22,136,67,216,20,23,137,69, + 224,18,21,136,67,216,20,22,136,69,216,11,12,136,82,136, + 97,136,53,144,67,139,60,224,19,24,160,17,144,63,208,12, + 34,216,13,14,136,113,144,17,136,86,144,115,139,93,152,97, + 160,1,160,33,152,102,168,3,155,109,224,19,24,152,113,160, + 17,160,18,152,117,208,19,36,208,12,36,240,8,0,20,25, + 152,66,152,81,152,37,160,17,160,49,160,50,160,21,208,19, + 38,208,12,38,114,58,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,116, + 0,0,0,149,0,91,0,0,0,0,0,0,0,0,0,82, 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,125,1,116, - 5,0,0,0,0,0,0,0,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,106, - 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,1,0,0,0,0,0,0,114,1,121,1,116, - 1,0,0,0,0,0,0,0,0,106,14,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,125,0,116,17,0,0,0,0,0, - 0,0,0,124,0,116,18,0,0,0,0,0,0,0,0,171, - 2,0,0,0,0,0,0,114,13,116,21,0,0,0,0,0, - 0,0,0,124,0,100,2,171,2,0,0,0,0,0,0,125, - 2,110,12,116,21,0,0,0,0,0,0,0,0,124,0,100, - 3,171,2,0,0,0,0,0,0,125,2,116,23,0,0,0, - 0,0,0,0,0,124,2,171,1,0,0,0,0,0,0,125, - 2,9,0,116,1,0,0,0,0,0,0,0,0,106,2,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,2,171,1,0,0,0,0,0,0,125,3,124,1,106, + 0,0,0,34,0,85,0,53,1,0,0,0,0,0,0,110, + 0,91,5,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,110,1,85,0,82,7,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,53, + 1,0,0,0,0,0,0,83,1,45,0,0,0,110,2,88, + 2,83,2,4,0,36,0,41,3,122,41,82,101,116,117,114, + 110,115,32,116,104,101,32,102,105,110,97,108,32,99,111,109, + 112,111,110,101,110,116,32,111,102,32,97,32,112,97,116,104, + 110,97,109,101,114,77,0,0,0,78,41,4,114,61,0,0, + 0,114,62,0,0,0,114,57,0,0,0,114,79,0,0,0, + 41,3,114,74,0,0,0,114,37,0,0,0,114,82,0,0, + 0,115,3,0,0,0,32,32,32,114,56,0,0,0,114,15, + 0,0,0,114,15,0,0,0,166,0,0,0,115,51,0,0, + 0,128,0,228,8,10,143,9,138,9,144,33,139,12,128,65, + 220,10,18,144,49,139,43,128,67,216,8,9,143,7,137,7, + 144,3,139,12,144,113,209,8,24,128,65,216,11,12,136,82, + 136,53,128,76,114,58,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,204, + 0,0,0,149,0,91,0,0,0,0,0,0,0,0,0,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,85,0,53,1,0,0,0,0,0,0,110, + 0,91,5,0,0,0,0,0,0,0,0,85,0,53,1,0, + 0,0,0,0,0,110,1,85,0,82,7,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,53, + 1,0,0,0,0,0,0,83,1,45,0,0,0,110,2,85, + 0,83,2,85,2,4,0,110,3,85,3,40,0,0,0,0, + 0,0,0,97,34,0,0,88,49,91,9,0,0,0,0,0, + 0,0,0,85,3,53,1,0,0,0,0,0,0,45,5,0, + 0,58,119,0,0,97,17,0,0,85,3,82,11,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 1,53,1,0,0,0,0,0,0,110,3,85,3,36,0,41, + 3,122,45,82,101,116,117,114,110,115,32,116,104,101,32,100, + 105,114,101,99,116,111,114,121,32,99,111,109,112,111,110,101, + 110,116,32,111,102,32,97,32,112,97,116,104,110,97,109,101, + 114,77,0,0,0,78,114,78,0,0,0,41,4,114,74,0, + 0,0,114,37,0,0,0,114,82,0,0,0,114,83,0,0, + 0,115,4,0,0,0,32,32,32,32,114,56,0,0,0,114, + 16,0,0,0,114,16,0,0,0,176,0,0,0,115,88,0, + 0,0,128,0,228,8,10,143,9,138,9,144,33,139,12,128, + 65,220,10,18,144,49,139,43,128,67,216,8,9,143,7,137, + 7,144,3,139,12,144,113,209,8,24,128,65,216,11,12,136, + 82,136,97,136,53,128,68,222,7,11,144,4,156,67,160,4, + 155,73,153,13,211,16,37,216,15,19,143,123,137,123,152,51, + 211,15,31,136,4,216,11,15,128,75,114,58,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, + 3,0,0,0,243,88,2,0,0,149,0,30,0,91,0,0, + 0,0,0,0,0,0,0,82,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,34,0,85,0,53, + 1,0,0,0,0,0,0,110,1,91,4,0,0,0,0,0, + 0,0,0,82,6,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,85,1,82,8,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 1,0,0,0,0,0,0,40,0,0,0,0,0,0,0,97, + 1,0,0,103,1,30,0,91,0,0,0,0,0,0,0,0, + 0,82,14,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,85,0,53,1,0,0,0,0,0, + 0,110,0,91,17,0,0,0,0,0,0,0,0,85,0,91, + 18,0,0,0,0,0,0,0,0,53,2,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,97,13,0,0,91,21,0, + 0,0,0,0,0,0,0,85,0,83,2,53,2,0,0,0, + 0,0,0,110,2,79,12,91,21,0,0,0,0,0,0,0, + 0,85,0,83,3,53,2,0,0,0,0,0,0,110,2,30, + 0,91,0,0,0,0,0,0,0,0,0,82,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,85,2,53,1,0,0,0,0,0,0,110,3,85,1,82, 24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,125,4,124,3,106,24,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,125,5,124,4,124, - 5,107,55,0,0,114,1,121,4,124,1,106,26,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125, - 6,124,3,106,26,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,125,7,124,6,124,7,107,40,0, - 0,114,1,121,4,121,1,35,0,116,10,0,0,0,0,0, - 0,0,0,116,12,0,0,0,0,0,0,0,0,102,2,36, - 0,114,3,1,0,89,0,121,1,119,0,120,3,89,0,119, - 1,35,0,116,10,0,0,0,0,0,0,0,0,116,12,0, - 0,0,0,0,0,0,0,102,2,36,0,114,3,1,0,89, - 0,121,1,119,0,120,3,89,0,119,1,41,5,122,36,84, - 101,115,116,32,119,104,101,116,104,101,114,32,97,32,112,97, - 116,104,32,105,115,32,97,32,109,111,117,110,116,32,112,111, - 105,110,116,70,243,2,0,0,0,46,46,114,3,0,0,0, - 84,41,14,114,60,0,0,0,114,98,0,0,0,218,4,115, - 116,97,116,218,7,83,95,73,83,76,78,75,218,7,115,116, - 95,109,111,100,101,114,99,0,0,0,114,100,0,0,0,114, - 61,0,0,0,114,51,0,0,0,114,52,0,0,0,114,10, - 0,0,0,114,43,0,0,0,218,6,115,116,95,100,101,118, - 218,6,115,116,95,105,110,111,41,8,114,54,0,0,0,218, - 2,115,49,218,6,112,97,114,101,110,116,218,2,115,50,218, - 4,100,101,118,49,218,4,100,101,118,50,218,4,105,110,111, - 49,218,4,105,110,111,50,115,8,0,0,0,32,32,32,32, - 32,32,32,32,114,55,0,0,0,114,27,0,0,0,114,27, - 0,0,0,213,0,0,0,115,227,0,0,0,128,0,240,4, - 8,5,25,220,13,15,143,88,137,88,144,100,139,94,136,2, - 244,12,0,12,16,143,60,137,60,152,2,159,10,153,10,212, - 11,35,216,19,24,228,11,13,143,57,137,57,144,84,139,63, - 128,68,220,7,17,144,36,156,5,212,7,30,220,17,21,144, - 100,152,69,211,17,34,137,6,228,17,21,144,100,152,68,211, - 17,33,136,6,220,13,21,144,102,211,13,29,128,70,240,2, - 3,5,21,220,13,15,143,88,137,88,144,102,211,13,29,136, - 2,240,8,0,12,14,143,57,137,57,128,68,216,11,13,143, - 57,137,57,128,68,216,7,11,136,116,130,124,216,15,19,216, - 11,13,143,57,137,57,128,68,216,11,13,143,57,137,57,128, - 68,216,7,11,136,116,130,124,216,15,19,216,11,16,248,244, - 55,0,13,20,148,90,208,11,32,242,0,2,5,21,225,15, - 20,240,5,2,5,21,251,244,32,0,13,20,148,90,208,11, - 32,242,0,1,5,21,217,15,20,240,3,1,5,21,250,115, - 35,0,0,0,130,21,67,19,0,194,1,21,67,40,0,195, - 19,15,67,37,3,195,36,1,67,37,3,195,40,15,67,58, - 3,195,57,1,67,58,3,99,1,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,3,0,0,0,243,114,3,0, - 0,151,0,116,1,0,0,0,0,0,0,0,0,106,2,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,125,0,116,5,0, - 0,0,0,0,0,0,0,124,0,116,6,0,0,0,0,0, - 0,0,0,171,2,0,0,0,0,0,0,114,3,100,1,125, - 1,110,2,100,2,125,1,124,0,106,9,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,1,171, - 1,0,0,0,0,0,0,115,2,124,0,83,0,116,11,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,125,2,124,0,106,13,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,2,100,3,171,2,0, - 0,0,0,0,0,125,3,124,3,100,4,107,2,0,0,114, - 11,116,15,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,125,3,124,3,100,3,107,40,0,0,114, - 90,100,5,116,0,0,0,0,0,0,0,0,0,106,16,0, + 0,0,0,85,3,82,24,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,58,103,0,0,61,1,40, + 0,0,0,0,0,0,0,100,25,0,0,32,0,85,1,82, + 26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,3,82,26,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,58,72,0,0,36,0,33, + 0,91,10,0,0,0,0,0,0,0,0,91,12,0,0,0, + 0,0,0,0,0,52,2,7,0,97,3,0,0,32,0,31, + 0,103,1,102,0,61,3,31,0,102,1,33,0,91,10,0, + 0,0,0,0,0,0,0,7,0,97,54,0,0,32,0,91, + 23,0,0,0,0,0,0,0,0,85,2,53,1,0,0,0, + 0,0,0,110,2,30,0,91,0,0,0,0,0,0,0,0, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,85,2,53,1,0,0,0,0,0, + 0,110,3,31,0,78,125,33,0,91,10,0,0,0,0,0, + 0,0,0,7,0,97,4,0,0,32,0,31,0,31,0,103, + 1,102,0,61,3,31,0,102,1,102,0,61,3,31,0,102, + 1,41,4,122,36,84,101,115,116,32,119,104,101,116,104,101, + 114,32,97,32,112,97,116,104,32,105,115,32,97,32,109,111, + 117,110,116,32,112,111,105,110,116,70,243,2,0,0,0,46, + 46,114,3,0,0,0,41,14,114,61,0,0,0,218,5,108, + 115,116,97,116,218,4,115,116,97,116,218,7,83,95,73,83, + 76,78,75,218,7,115,116,95,109,111,100,101,218,7,79,83, + 69,114,114,111,114,218,10,86,97,108,117,101,69,114,114,111, + 114,114,62,0,0,0,114,52,0,0,0,114,53,0,0,0, + 114,10,0,0,0,114,43,0,0,0,218,6,115,116,95,100, + 101,118,218,6,115,116,95,105,110,111,41,4,114,55,0,0, + 0,218,2,115,49,218,6,112,97,114,101,110,116,218,2,115, + 50,115,4,0,0,0,32,32,32,32,114,56,0,0,0,114, + 27,0,0,0,114,27,0,0,0,190,0,0,0,115,247,0, + 0,0,128,0,240,4,8,5,25,220,13,15,143,88,138,88, + 144,100,139,94,136,2,244,12,0,12,16,143,60,138,60,152, + 2,159,10,153,10,215,11,35,209,11,35,216,19,24,240,3, + 0,12,36,244,6,0,12,14,143,57,138,57,144,84,139,63, + 128,68,220,7,17,144,36,156,5,215,7,30,209,7,30,220, + 17,21,144,100,152,69,211,17,34,137,6,228,17,21,144,100, + 152,68,211,17,33,136,6,240,2,7,5,25,220,13,15,143, + 88,138,88,144,102,211,13,29,136,2,240,18,0,12,14,143, + 57,137,57,152,2,159,9,153,9,209,11,33,215,11,59,160, + 82,167,89,161,89,176,34,183,41,177,41,209,37,59,208,4, + 59,248,244,47,0,13,20,148,90,208,11,32,243,0,2,5, + 21,225,15,20,240,5,2,5,21,251,244,30,0,12,19,243, + 0,5,5,25,220,17,25,152,38,211,17,33,136,6,240,2, + 3,9,25,220,17,19,151,24,146,24,152,38,211,17,33,138, + 66,248,220,15,22,243,0,1,9,25,218,19,24,240,3,1, + 9,25,250,240,9,5,5,25,250,115,59,0,0,0,130,22, + 67,19,0,194,4,22,67,41,0,195,19,16,67,38,3,195, + 37,1,67,38,3,195,41,21,68,41,3,195,63,22,68,23, + 2,196,23,10,68,37,5,196,33,1,68,41,3,196,36,1, + 68,37,5,196,37,4,68,41,3,99,1,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,243,180, + 3,0,0,149,0,91,0,0,0,0,0,0,0,0,0,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,85,0,53,1,0,0,0,0,0,0,110, + 0,91,5,0,0,0,0,0,0,0,0,85,0,91,6,0, + 0,0,0,0,0,0,0,53,2,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,97,3,0,0,83,1,110,1,79, + 2,83,2,110,1,85,0,82,9,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,1,53,1,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,100,2,0, + 0,85,0,36,0,91,11,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,110,2,85,0,82,13,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,118,1,114,52,9,0,100,4,100,6,108,9,125,4,9, - 0,124,4,106,23,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,116,1,0,0,0,0,0,0,0, - 0,106,24,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,106,26,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,125,5,110,97,116,0,0, - 0,0,0,0,0,0,0,106,16,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,5,25,0,0, - 0,125,5,110,77,9,0,100,4,100,6,108,9,125,4,124, - 0,100,3,124,3,26,0,125,6,116,5,0,0,0,0,0, - 0,0,0,124,6,116,6,0,0,0,0,0,0,0,0,171, - 2,0,0,0,0,0,0,114,21,116,1,0,0,0,0,0, - 0,0,0,106,30,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,6,171,1,0,0,0,0,0, - 0,125,6,9,0,124,4,106,33,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,6,171,1,0, - 0,0,0,0,0,125,7,124,7,106,26,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,125,5,124, - 5,128,21,116,34,0,0,0,0,0,0,0,0,106,36,0, + 0,85,2,83,3,53,2,0,0,0,0,0,0,110,3,85, + 3,83,4,58,18,0,0,97,11,0,0,91,15,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,110, + 3,85,3,83,3,58,88,0,0,97,93,0,0,83,5,91, + 0,0,0,0,0,0,0,0,0,82,16,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,59,1,0, + 0,97,53,0,0,30,0,83,4,83,6,75,9,110,4,30, + 0,85,4,82,23,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,91,0,0,0,0,0,0,0,0, + 0,82,24,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,53,0,0,0,0,0,0,0,53, + 1,0,0,0,0,0,0,82,26,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,110,5,79,103,91, + 0,0,0,0,0,0,0,0,0,82,16,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,5,5, + 0,0,0,110,5,79,83,30,0,83,4,83,6,75,9,110, + 4,85,0,83,3,85,3,4,0,110,6,91,5,0,0,0, + 0,0,0,0,0,85,6,91,6,0,0,0,0,0,0,0, + 0,53,2,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,22,0,0,91,0,0,0,0,0,0,0,0,0,82, + 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,85,6,53,1,0,0,0,0,0,0,110, + 6,30,0,85,4,82,33,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,6,53,1,0,0,0, + 0,0,0,110,7,85,7,82,26,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,110,5,85,5,99, + 22,0,0,91,34,0,0,0,0,0,0,0,0,82,36,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,7,107,40,0,0,114,2,124,0,83,0,116,5,0, - 0,0,0,0,0,0,0,124,0,116,6,0,0,0,0,0, - 0,0,0,171,2,0,0,0,0,0,0,114,24,116,1,0, - 0,0,0,0,0,0,0,106,38,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,5,171,1,0, - 0,0,0,0,0,125,5,100,8,125,8,110,2,100,9,125, - 8,124,5,106,41,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,8,171,1,0,0,0,0,0, - 0,125,5,124,5,124,0,124,3,100,6,26,0,122,0,0, - 0,120,1,115,2,1,0,124,8,83,0,35,0,116,20,0, - 0,0,0,0,0,0,0,36,0,114,5,1,0,124,0,99, - 2,89,0,83,0,119,0,120,3,89,0,119,1,35,0,116, - 28,0,0,0,0,0,0,0,0,36,0,114,5,1,0,124, - 0,99,2,89,0,83,0,119,0,120,3,89,0,119,1,35, - 0,116,20,0,0,0,0,0,0,0,0,36,0,114,5,1, - 0,124,0,99,2,89,0,83,0,119,0,120,3,89,0,119, - 1,35,0,116,28,0,0,0,0,0,0,0,0,36,0,114, - 5,1,0,124,0,99,2,89,0,83,0,119,0,120,3,89, - 0,119,1,41,10,122,79,69,120,112,97,110,100,32,126,32, - 97,110,100,32,126,117,115,101,114,32,99,111,110,115,116,114, - 117,99,116,105,111,110,115,46,32,32,73,102,32,117,115,101, - 114,32,111,114,32,36,72,79,77,69,32,105,115,32,117,110, - 107,110,111,119,110,44,10,32,32,32,32,100,111,32,110,111, + 0,83,7,58,88,0,0,97,2,0,0,85,0,36,0,91, + 5,0,0,0,0,0,0,0,0,85,0,91,6,0,0,0, + 0,0,0,0,0,53,2,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,97,22,0,0,91,0,0,0,0,0,0, + 0,0,0,82,38,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,85,5,53,1,0,0,0, + 0,0,0,110,5,85,5,82,41,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,2,53,1,0, + 0,0,0,0,0,110,5,88,80,85,3,83,6,4,0,45, + 0,0,0,61,1,40,0,0,0,0,0,0,0,100,2,0, + 0,32,0,85,2,36,0,33,0,91,20,0,0,0,0,0, + 0,0,0,7,0,97,5,0,0,32,0,85,0,115,2,31, + 0,36,0,102,0,61,3,31,0,102,1,33,0,91,28,0, + 0,0,0,0,0,0,0,7,0,97,5,0,0,32,0,85, + 0,115,2,31,0,36,0,102,0,61,3,31,0,102,1,33, + 0,91,20,0,0,0,0,0,0,0,0,7,0,97,5,0, + 0,32,0,85,0,115,2,31,0,36,0,102,0,61,3,31, + 0,102,1,33,0,91,28,0,0,0,0,0,0,0,0,7, + 0,97,5,0,0,32,0,85,0,115,2,31,0,36,0,102, + 0,61,3,31,0,102,1,41,8,122,75,69,120,112,97,110, + 100,32,126,32,97,110,100,32,126,117,115,101,114,32,99,111, + 110,115,116,114,117,99,116,105,111,110,115,46,32,32,73,102, + 32,117,115,101,114,32,111,114,32,36,72,79,77,69,32,105, + 115,32,117,110,107,110,111,119,110,44,10,100,111,32,110,111, 116,104,105,110,103,46,243,1,0,0,0,126,218,1,126,114, 77,0,0,0,114,6,0,0,0,218,4,72,79,77,69,78, - 218,7,118,120,119,111,114,107,115,114,50,0,0,0,114,4, - 0,0,0,41,21,114,60,0,0,0,114,61,0,0,0,114, - 51,0,0,0,114,52,0,0,0,114,64,0,0,0,114,56, - 0,0,0,218,4,102,105,110,100,114,80,0,0,0,218,7, - 101,110,118,105,114,111,110,218,3,112,119,100,218,11,73,109, - 112,111,114,116,69,114,114,111,114,218,8,103,101,116,112,119, - 117,105,100,218,6,103,101,116,117,105,100,218,6,112,119,95, - 100,105,114,218,8,75,101,121,69,114,114,111,114,218,8,102, - 115,100,101,99,111,100,101,218,8,103,101,116,112,119,110,97, - 109,218,3,115,121,115,218,8,112,108,97,116,102,111,114,109, - 218,8,102,115,101,110,99,111,100,101,114,81,0,0,0,41, - 9,114,54,0,0,0,218,5,116,105,108,100,101,114,37,0, - 0,0,114,82,0,0,0,114,122,0,0,0,218,8,117,115, - 101,114,104,111,109,101,218,4,110,97,109,101,218,5,112,119, - 101,110,116,218,4,114,111,111,116,115,9,0,0,0,32,32, - 32,32,32,32,32,32,32,114,55,0,0,0,114,28,0,0, - 0,114,28,0,0,0,0,1,0,0,115,170,1,0,0,128, - 0,244,6,0,12,14,143,57,137,57,144,84,139,63,128,68, - 220,7,17,144,36,156,5,212,7,30,216,16,20,137,5,224, - 16,19,136,5,216,11,15,143,63,137,63,152,53,212,11,33, - 216,15,19,136,11,220,10,18,144,52,139,46,128,67,216,8, - 12,143,9,137,9,144,35,144,113,211,8,25,128,65,216,7, - 8,136,49,130,117,220,12,15,144,4,139,73,136,1,216,7, - 8,136,65,130,118,216,11,17,156,18,159,26,153,26,209,11, - 35,240,2,4,13,28,219,16,26,240,8,5,13,28,216,27, - 30,159,60,153,60,172,2,175,9,169,9,171,11,211,27,52, - 215,27,59,209,27,59,145,8,244,12,0,24,26,151,122,145, - 122,160,38,209,23,41,137,72,240,4,4,9,24,219,12,22, - 240,8,0,16,20,144,65,144,97,136,121,136,4,220,11,21, - 144,100,156,69,212,11,34,220,19,21,151,59,145,59,152,116, - 211,19,36,136,68,240,2,5,9,24,216,20,23,151,76,145, - 76,160,20,211,20,38,136,69,240,10,0,20,25,151,60,145, - 60,136,8,224,7,15,208,7,23,156,67,159,76,153,76,168, - 73,210,28,53,216,15,19,136,11,220,7,17,144,36,156,5, - 212,7,30,220,19,21,151,59,145,59,152,120,211,19,40,136, - 8,216,15,19,137,4,224,15,18,136,4,216,15,23,143,127, - 137,127,152,116,211,15,36,128,72,216,12,20,144,116,152,65, - 152,66,144,120,209,12,31,210,11,40,160,68,208,4,40,248, - 244,73,1,0,20,31,242,0,2,13,28,224,23,27,146,11, - 240,5,2,13,28,251,244,10,0,20,28,242,0,3,13,28, - 240,6,0,24,28,146,11,240,7,3,13,28,251,244,18,0, - 16,27,242,0,2,9,24,224,19,23,138,75,240,5,2,9, - 24,251,244,16,0,16,24,242,0,3,9,24,240,6,0,20, - 24,138,75,240,7,3,9,24,250,115,72,0,0,0,194,3, - 4,69,53,0,194,8,45,70,6,0,195,11,4,70,23,0, - 195,58,17,70,40,0,197,53,11,70,3,3,198,2,1,70, - 3,3,198,6,11,70,20,3,198,19,1,70,20,3,198,23, - 11,70,37,3,198,36,1,70,37,3,198,40,11,70,54,3, - 198,53,1,70,54,3,99,1,0,0,0,0,0,0,0,0, - 0,0,0,6,0,0,0,3,0,0,0,243,44,3,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,106,2,0,0, + 218,7,118,120,119,111,114,107,115,41,21,114,61,0,0,0, + 114,62,0,0,0,114,52,0,0,0,114,53,0,0,0,114, + 65,0,0,0,114,57,0,0,0,218,4,102,105,110,100,114, + 80,0,0,0,218,7,101,110,118,105,114,111,110,218,3,112, + 119,100,218,11,73,109,112,111,114,116,69,114,114,111,114,218, + 8,103,101,116,112,119,117,105,100,218,6,103,101,116,117,105, + 100,218,6,112,119,95,100,105,114,218,8,75,101,121,69,114, + 114,111,114,218,8,102,115,100,101,99,111,100,101,218,8,103, + 101,116,112,119,110,97,109,218,3,115,121,115,218,8,112,108, + 97,116,102,111,114,109,218,8,102,115,101,110,99,111,100,101, + 114,81,0,0,0,41,8,114,55,0,0,0,218,5,116,105, + 108,100,101,114,37,0,0,0,114,82,0,0,0,114,117,0, + 0,0,218,8,117,115,101,114,104,111,109,101,218,4,110,97, + 109,101,218,5,112,119,101,110,116,115,8,0,0,0,32,32, + 32,32,32,32,32,32,114,56,0,0,0,114,28,0,0,0, + 114,28,0,0,0,229,0,0,0,115,170,1,0,0,128,0, + 244,6,0,12,14,143,57,138,57,144,84,139,63,128,68,220, + 7,17,144,36,156,5,215,7,30,209,7,30,216,16,20,137, + 5,224,16,19,136,5,216,11,15,143,63,137,63,152,53,215, + 11,33,209,11,33,216,15,19,136,11,220,10,18,144,52,139, + 46,128,67,216,8,12,143,9,137,9,144,35,144,113,211,8, + 25,128,65,216,7,8,136,49,131,117,220,12,15,144,4,139, + 73,136,1,216,7,8,136,65,131,118,216,11,17,156,18,159, + 26,153,26,211,11,35,240,2,4,13,28,219,16,26,240,8, + 5,13,28,216,27,30,159,60,153,60,172,2,175,9,170,9, + 171,11,211,27,52,215,27,59,209,27,59,145,8,244,12,0, + 24,26,151,122,145,122,160,38,209,23,41,137,72,240,4,4, + 9,24,219,12,22,240,8,0,16,20,144,65,144,97,136,121, + 136,4,220,11,21,144,100,156,69,215,11,34,209,11,34,220, + 19,21,151,59,146,59,152,116,211,19,36,136,68,240,2,5, + 9,24,216,20,23,151,76,145,76,160,20,211,20,38,136,69, + 240,10,0,20,25,151,60,145,60,136,8,224,7,15,209,7, + 23,156,67,159,76,153,76,168,73,211,28,53,216,15,19,136, + 11,220,7,17,144,36,156,5,215,7,30,209,7,30,220,19, + 21,151,59,146,59,152,120,211,19,40,136,8,216,15,23,143, + 127,137,127,152,115,211,15,35,128,72,216,12,20,152,65,152, + 66,144,120,209,12,31,215,11,39,160,67,208,4,39,248,244, + 67,1,0,20,31,243,0,2,13,28,224,23,27,146,11,240, + 5,2,13,28,251,244,10,0,20,28,243,0,3,13,28,240, + 6,0,24,28,146,11,240,7,3,13,28,251,244,18,0,16, + 27,243,0,2,9,24,224,19,23,138,75,240,5,2,9,24, + 251,244,16,0,16,24,243,0,3,9,24,240,6,0,20,24, + 138,75,240,7,3,9,24,250,115,72,0,0,0,194,18,4, + 70,18,0,194,23,46,70,36,0,195,27,4,70,54,0,196, + 16,17,71,8,0,198,18,12,70,33,3,198,32,1,70,33, + 3,198,36,12,70,51,3,198,50,1,70,51,3,198,54,12, + 71,5,3,199,4,1,71,5,3,199,8,12,71,23,3,199, + 22,1,71,23,3,122,18,92,36,40,92,119,43,124,92,123, + 91,94,125,93,42,92,125,63,41,99,1,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,10, + 2,0,0,94,4,94,5,94,6,149,0,91,0,0,0,0, + 0,0,0,0,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,85,0,53,1,0, + 0,0,0,0,0,110,0,91,5,0,0,0,0,0,0,0, + 0,85,0,91,6,0,0,0,0,0,0,0,0,53,2,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,107,0, + 0,83,1,85,0,59,1,0,0,97,2,0,0,85,0,36, + 0,91,8,0,0,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,100,60,0,0,83,2,83,3,75,5,110,1,85, + 1,82,13,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,91,14,0,0,0,0,0,0,0,0,82, + 17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,53,0,0,0,0,0,0,0,85,1,82,18,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,125,0,116,5,0,0, - 0,0,0,0,0,0,124,0,116,6,0,0,0,0,0,0, - 0,0,171,2,0,0,0,0,0,0,114,82,100,1,124,0, - 118,1,114,2,124,0,83,0,116,8,0,0,0,0,0,0, - 0,0,115,32,100,2,100,3,108,5,125,1,124,1,106,13, + 0,53,2,0,0,0,0,0,0,82,20,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,113,4,91, + 8,0,0,0,0,0,0,0,0,110,2,83,4,109,6,83, + 5,109,4,91,23,0,0,0,0,0,0,0,0,91,0,0, + 0,0,0,0,0,0,0,83,6,83,3,53,3,0,0,0, + 0,0,0,109,5,79,91,83,7,85,0,59,1,0,0,97, + 2,0,0,85,0,36,0,91,24,0,0,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,100,46,0,0,83,2,83, + 3,75,5,110,1,85,1,82,13,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,91,14,0,0,0, + 0,0,0,0,0,85,1,82,18,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,2,0,0,0, + 0,0,0,82,20,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,113,12,91,24,0,0,0,0,0, + 0,0,0,110,2,83,8,109,6,83,9,109,4,91,0,0, + 0,0,0,0,0,0,0,82,26,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,109,5,85,4,85, + 5,85,6,52,3,83,10,26,0,106,8,110,3,85,2,34, + 0,88,48,53,2,0,0,0,0,0,0,36,0,41,11,122, + 86,69,120,112,97,110,100,32,115,104,101,108,108,32,118,97, + 114,105,97,98,108,101,115,32,111,102,32,102,111,114,109,32, + 36,118,97,114,32,97,110,100,32,36,123,118,97,114,125,46, + 32,32,85,110,107,110,111,119,110,32,118,97,114,105,97,98, + 108,101,115,10,97,114,101,32,108,101,102,116,32,117,110,99, + 104,97,110,103,101,100,46,243,1,0,0,0,36,114,6,0, + 0,0,78,243,1,0,0,0,123,243,1,0,0,0,125,218, + 8,101,110,118,105,114,111,110,98,218,1,36,218,1,123,218, + 1,125,99,1,0,0,0,0,0,0,0,0,0,0,0,6, + 0,0,0,19,0,0,0,243,54,1,0,0,62,3,149,0, + 85,0,83,1,5,0,0,0,110,1,85,1,82,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,4,124,1,106,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,97,4,116,8,0,0,0,0,0,0,0,0,106,16, + 84,5,53,1,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,97,32,0,0,85,1,82,3,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,84,3,53,1, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,100,5, + 0,0,85,0,83,2,5,0,0,0,36,0,85,1,83,1, + 83,3,4,0,110,1,30,0,84,4,99,61,0,0,91,4, + 0,0,0,0,0,0,0,0,82,6,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,91,4, + 0,0,0,0,0,0,0,0,82,8,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,91,4,0,0, + 0,0,0,0,0,0,82,10,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,34,0,85,1,53,1, + 0,0,0,0,0,0,5,0,0,0,53,1,0,0,0,0, + 0,0,110,2,85,2,36,0,84,4,85,1,5,0,0,0, + 110,2,30,0,85,2,36,0,33,0,91,12,0,0,0,0, + 0,0,0,0,7,0,97,8,0,0,32,0,85,0,83,2, + 5,0,0,0,115,2,31,0,36,0,102,0,61,3,31,0, + 102,1,41,4,78,114,77,0,0,0,114,6,0,0,0,233, + 255,255,255,255,41,7,114,65,0,0,0,114,67,0,0,0, + 114,61,0,0,0,114,127,0,0,0,114,116,0,0,0,114, + 123,0,0,0,114,122,0,0,0,41,6,218,1,109,114,130, + 0,0,0,218,5,118,97,108,117,101,218,3,101,110,100,114, + 116,0,0,0,218,5,115,116,97,114,116,115,6,0,0,0, + 32,32,32,128,128,128,114,56,0,0,0,218,4,114,101,112, + 108,218,24,101,120,112,97,110,100,118,97,114,115,46,60,108, + 111,99,97,108,115,62,46,114,101,112,108,61,1,0,0,115, + 155,0,0,0,248,128,0,216,15,16,144,17,137,116,136,4, + 216,11,15,143,63,137,63,152,53,215,11,33,209,11,33,216, + 19,23,151,61,145,61,160,19,215,19,37,209,19,37,216,23, + 24,152,17,145,116,144,11,216,19,23,152,1,152,34,144,58, + 136,68,240,2,8,9,25,216,15,22,137,127,220,24,26,159, + 11,154,11,164,66,167,74,161,74,172,114,175,123,170,123,184, + 52,211,47,64,209,36,65,211,24,66,144,5,240,12,0,20, + 25,136,76,240,9,0,25,32,160,4,153,13,145,5,240,8, + 0,20,25,136,76,248,244,7,0,16,24,243,0,1,9,24, + 216,19,20,144,81,145,52,138,75,240,3,1,9,24,250,115, + 23,0,0,0,190,62,66,6,0,193,62,5,66,6,0,194, + 6,15,66,24,3,194,23,1,66,24,3,41,14,114,61,0, + 0,0,114,62,0,0,0,114,52,0,0,0,114,53,0,0, + 0,218,8,95,118,97,114,115,117,98,98,218,2,114,101,218, + 7,99,111,109,112,105,108,101,218,11,95,118,97,114,112,97, + 116,116,101,114,110,218,6,101,110,99,111,100,101,218,5,65, + 83,67,73,73,218,3,115,117,98,218,7,103,101,116,97,116, + 116,114,218,7,95,118,97,114,115,117,98,114,116,0,0,0, + 41,7,114,55,0,0,0,114,149,0,0,0,114,154,0,0, + 0,114,146,0,0,0,114,144,0,0,0,114,116,0,0,0, + 114,145,0,0,0,115,7,0,0,0,32,32,32,32,64,64, + 64,114,56,0,0,0,114,29,0,0,0,114,29,0,0,0, + 35,1,0,0,115,203,0,0,0,250,128,0,244,6,0,12, + 14,143,57,138,57,144,84,139,63,128,68,228,7,17,144,36, + 156,5,215,7,30,209,7,30,216,11,15,144,116,211,11,27, + 216,19,23,136,75,223,15,23,138,120,219,12,21,216,23,25, + 151,122,145,122,164,43,215,34,52,209,34,52,211,34,54,184, + 2,191,8,185,8,211,23,65,215,23,69,209,23,69,136,72, + 220,14,22,136,3,216,16,20,136,5,216,14,18,136,3,220, + 18,25,156,34,152,106,168,36,211,18,47,137,7,224,11,14, + 144,100,139,63,216,19,23,136,75,223,15,22,138,119,219,12, + 21,216,22,24,151,106,145,106,164,27,168,98,175,104,169,104, + 211,22,55,215,22,59,209,22,59,136,71,220,14,21,136,3, + 216,16,19,136,5,216,14,17,136,3,220,18,20,151,42,145, + 42,136,7,247,4,14,5,25,241,32,0,12,15,136,116,139, + 63,208,4,26,114,58,0,0,0,41,1,218,14,95,112,97, + 116,104,95,110,111,114,109,112,97,116,104,99,1,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 243,210,1,0,0,149,0,91,0,0,0,0,0,0,0,0, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,85,0,53,1,0,0,0,0,0, + 0,110,0,91,5,0,0,0,0,0,0,0,0,85,0,91, + 6,0,0,0,0,0,0,0,0,53,2,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,97,7,0,0,83,1,110, + 1,83,2,110,2,83,3,110,3,79,6,83,4,110,1,83, + 5,110,2,83,6,110,3,85,0,40,0,0,0,0,0,0, + 0,100,2,0,0,85,2,36,0,91,9,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,117,3,0, + 0,112,69,110,0,85,0,82,11,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,1,53,1,0, + 0,0,0,0,0,110,6,47,0,110,7,85,6,19,0,72, + 96,0,0,110,8,85,8,40,0,0,0,0,0,0,0,97, + 5,0,0,88,130,58,88,0,0,97,2,0,0,77,17,0, + 0,88,131,58,119,0,0,100,30,0,0,85,5,40,0,0, + 0,0,0,0,0,100,7,0,0,85,7,40,0,0,0,0, + 0,0,0,97,16,0,0,85,7,40,0,0,0,0,0,0, + 0,97,28,0,0,85,7,83,7,5,0,0,0,85,3,58, + 88,0,0,97,19,0,0,85,7,82,13,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,8,53, + 1,0,0,0,0,0,0,32,0,77,71,0,0,85,7,40, + 0,0,0,0,0,0,0,100,2,0,0,77,80,0,0,85, + 7,82,15,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,32,0,77, + 98,0,0,11,0,32,0,85,7,110,6,88,81,82,17,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,125,2,100,5,125,3,100,6,125,4,116,19,0,0, - 0,0,0,0,0,0,116,0,0,0,0,0,0,0,0,0, - 100,7,100,3,171,3,0,0,0,0,0,0,125,5,110,80, - 100,8,124,0,118,1,114,2,124,0,83,0,116,20,0,0, - 0,0,0,0,0,0,115,32,100,2,100,3,108,5,125,1, - 124,1,106,13,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,9,124,1,106,14,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,97,10,116,20,0,0,0,0,0,0, - 0,0,106,16,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,125,2,100,10,125,3,100,11,125,4, - 116,0,0,0,0,0,0,0,0,0,106,22,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,5, - 100,2,125,6,9,0,2,0,124,2,124,0,124,6,171,2, - 0,0,0,0,0,0,125,7,124,7,115,3,9,0,124,0, - 83,0,124,7,106,25,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,2,171,1,0,0,0,0, - 0,0,92,2,0,0,125,6,125,8,124,7,106,27,0,0, + 0,85,6,53,1,0,0,0,0,0,0,45,0,0,0,110, + 0,85,0,61,1,40,0,0,0,0,0,0,0,100,2,0, + 0,32,0,85,2,36,0,41,8,122,48,78,111,114,109,97, + 108,105,122,101,32,112,97,116,104,44,32,101,108,105,109,105, + 110,97,116,105,110,103,32,100,111,117,98,108,101,32,115,108, + 97,115,104,101,115,44,32,101,116,99,46,114,51,0,0,0, + 114,86,0,0,0,114,98,0,0,0,114,4,0,0,0,114, + 2,0,0,0,114,3,0,0,0,114,141,0,0,0,41,9, + 114,61,0,0,0,114,62,0,0,0,114,52,0,0,0,114, + 53,0,0,0,114,12,0,0,0,114,13,0,0,0,218,6, + 97,112,112,101,110,100,218,3,112,111,112,114,10,0,0,0, + 41,9,114,55,0,0,0,114,37,0,0,0,218,3,100,111, + 116,218,6,100,111,116,100,111,116,218,1,95,218,15,105,110, + 105,116,105,97,108,95,115,108,97,115,104,101,115,218,5,99, + 111,109,112,115,218,9,110,101,119,95,99,111,109,112,115,218, + 4,99,111,109,112,115,9,0,0,0,32,32,32,32,32,32, + 32,32,32,114,56,0,0,0,114,30,0,0,0,114,30,0, + 0,0,88,1,0,0,115,202,0,0,0,128,0,228,15,17, + 143,121,138,121,152,20,139,127,136,4,220,11,21,144,100,156, + 69,215,11,34,209,11,34,216,18,22,136,67,216,18,22,136, + 67,216,21,26,137,70,224,18,21,136,67,216,18,21,136,67, + 216,21,25,136,70,222,15,19,216,19,22,136,74,220,35,44, + 168,84,163,63,209,8,32,136,1,152,68,216,16,20,151,10, + 145,10,152,51,147,15,136,5,216,20,22,136,9,219,20,25, + 136,68,222,19,23,152,52,155,59,217,16,24,216,16,20,147, + 14,166,127,190,121,222,18,27,160,9,168,34,161,13,176,22, + 211,32,55,216,16,25,215,16,32,209,16,32,160,20,214,16, + 38,223,17,26,144,25,216,16,25,151,13,145,13,150,15,241, + 15,0,21,26,240,16,0,17,26,136,5,216,15,30,167,24, + 161,24,168,37,163,31,209,15,48,136,4,216,15,19,143,123, + 144,115,208,8,26,114,58,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 68,1,0,0,149,0,91,0,0,0,0,0,0,0,0,0, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,34,0,85,0,53,1,0,0,0,0,0,0, + 110,0,91,5,0,0,0,0,0,0,0,0,85,0,91,6, + 0,0,0,0,0,0,0,0,53,2,0,0,0,0,0,0, + 40,0,0,0,0,0,0,0,97,54,0,0,85,0,82,9, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,12,171,1,0,0,0,0,0,0,125,9,124,9,106,29, + 0,0,83,1,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,100,31,0,0,91,11,0,0,0,0,0,0, + 0,0,91,0,0,0,0,0,0,0,0,0,82,12,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,3,171,1,0,0,0,0,0,0,114,22,124,9, - 106,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,4,171,1,0,0,0,0,0,0,114,5, - 124,9,100,12,100,13,26,0,125,9,9,0,124,5,128,58, - 116,1,0,0,0,0,0,0,0,0,106,32,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,0, - 0,0,0,0,0,0,0,0,106,22,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,1,0,0, - 0,0,0,0,0,0,106,34,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,9,171,1,0,0, - 0,0,0,0,25,0,0,0,171,1,0,0,0,0,0,0, - 125,10,110,5,124,5,124,9,25,0,0,0,125,10,124,0, - 124,8,100,3,26,0,125,11,124,0,100,3,124,6,26,0, - 124,10,122,0,0,0,125,0,116,37,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,6,124,0, - 124,11,122,13,0,0,125,0,140,186,35,0,116,38,0,0, - 0,0,0,0,0,0,36,0,114,5,1,0,124,8,125,6, - 89,0,140,14,119,0,120,3,89,0,119,1,41,14,122,90, - 69,120,112,97,110,100,32,115,104,101,108,108,32,118,97,114, - 105,97,98,108,101,115,32,111,102,32,102,111,114,109,32,36, - 118,97,114,32,97,110,100,32,36,123,118,97,114,125,46,32, - 32,85,110,107,110,111,119,110,32,118,97,114,105,97,98,108, - 101,115,10,32,32,32,32,97,114,101,32,108,101,102,116,32, - 117,110,99,104,97,110,103,101,100,46,243,1,0,0,0,36, - 114,6,0,0,0,78,115,17,0,0,0,92,36,40,92,119, - 43,124,92,123,91,94,125,93,42,92,125,41,243,1,0,0, - 0,123,243,1,0,0,0,125,218,8,101,110,118,105,114,111, - 110,98,218,1,36,122,17,92,36,40,92,119,43,124,92,123, - 91,94,125,93,42,92,125,41,218,1,123,218,1,125,114,77, - 0,0,0,233,255,255,255,255,41,20,114,60,0,0,0,114, - 61,0,0,0,114,51,0,0,0,114,52,0,0,0,218,9, - 95,118,97,114,112,114,111,103,98,218,2,114,101,218,7,99, - 111,109,112,105,108,101,218,5,65,83,67,73,73,218,6,115, - 101,97,114,99,104,218,7,103,101,116,97,116,116,114,218,8, - 95,118,97,114,112,114,111,103,114,121,0,0,0,218,4,115, - 112,97,110,218,5,103,114,111,117,112,114,64,0,0,0,114, - 67,0,0,0,114,132,0,0,0,114,128,0,0,0,114,80, - 0,0,0,114,127,0,0,0,41,12,114,54,0,0,0,114, - 148,0,0,0,114,151,0,0,0,218,5,115,116,97,114,116, - 218,3,101,110,100,114,121,0,0,0,114,82,0,0,0,218, - 1,109,218,1,106,114,135,0,0,0,218,5,118,97,108,117, - 101,114,84,0,0,0,115,12,0,0,0,32,32,32,32,32, - 32,32,32,32,32,32,32,114,55,0,0,0,114,29,0,0, - 0,114,29,0,0,0,64,1,0,0,115,136,1,0,0,128, - 0,244,6,0,12,14,143,57,137,57,144,84,139,63,128,68, - 228,7,17,144,36,156,5,212,7,30,216,11,15,144,116,209, - 11,27,216,19,23,136,75,221,15,24,219,12,21,216,24,26, - 159,10,153,10,208,35,56,184,34,191,40,185,40,211,24,67, - 136,73,220,17,26,215,17,33,209,17,33,136,6,216,16,20, - 136,5,216,14,18,136,3,220,18,25,156,34,152,106,168,36, - 211,18,47,137,7,224,11,14,144,100,137,63,216,19,23,136, - 75,221,15,23,219,12,21,216,23,25,151,122,145,122,208,34, - 54,184,2,191,8,185,8,211,23,65,136,72,220,17,25,151, - 31,145,31,136,6,216,16,19,136,5,216,14,17,136,3,220, - 18,20,151,42,145,42,136,7,216,8,9,128,65,216,10,14, - 217,12,18,144,52,152,17,139,79,136,1,217,15,16,216,12, - 17,240,34,0,12,16,128,75,240,33,0,16,17,143,118,137, - 118,144,97,139,121,137,4,136,1,136,49,216,15,16,143,119, - 137,119,144,113,139,122,136,4,216,11,15,143,63,137,63,152, - 53,212,11,33,160,100,167,109,161,109,176,67,212,38,56,216, - 19,23,152,1,152,34,144,58,136,68,240,2,11,9,25,216, - 15,22,136,127,220,24,26,159,11,153,11,164,66,167,74,161, - 74,172,114,175,123,169,123,184,52,211,47,64,209,36,65,211, - 24,66,145,5,224,24,31,160,4,153,13,144,5,240,8,0, - 20,24,152,1,152,2,144,56,136,68,216,19,23,152,2,152, - 17,144,56,152,101,209,19,35,136,68,220,16,19,144,68,147, - 9,136,65,216,12,16,144,68,137,76,136,68,240,39,0,11, - 15,248,244,26,0,16,24,242,0,1,9,18,216,16,17,138, - 65,240,3,1,9,18,250,115,19,0,0,0,196,38,65,1, - 70,5,0,198,5,11,70,19,3,198,18,1,70,19,3,41, - 1,218,14,95,112,97,116,104,95,110,111,114,109,112,97,116, - 104,99,1,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,243,132,1,0,0,151,0,116,1,0, - 0,0,0,0,0,0,0,106,2,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,171,1,0, - 0,0,0,0,0,125,0,116,5,0,0,0,0,0,0,0, - 0,124,0,116,6,0,0,0,0,0,0,0,0,171,2,0, - 0,0,0,0,0,114,9,100,1,125,1,100,2,125,2,100, - 3,125,3,100,4,125,4,110,8,100,5,125,1,100,6,125, - 2,100,7,125,3,100,8,125,4,124,0,124,2,107,40,0, - 0,114,2,124,3,83,0,116,9,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,92,3,0,0,125, - 5,125,6,125,0,124,0,106,11,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,171,1,0, - 0,0,0,0,0,125,7,103,0,125,8,124,7,68,0,93, - 65,0,0,125,9,124,9,124,2,124,3,102,2,118,0,114, - 1,140,10,124,9,124,4,107,55,0,0,115,14,124,6,115, - 2,124,8,114,10,124,8,114,26,124,8,100,9,25,0,0, - 0,124,4,107,40,0,0,114,18,124,8,106,13,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 9,171,1,0,0,0,0,0,0,1,0,140,47,124,8,115, - 1,140,50,124,8,106,15,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,1,0,140,67,4,0,124,8,125,7,124,6,124,1,106, - 17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,7,171,1,0,0,0,0,0,0,122,0,0, - 0,125,0,124,0,120,1,115,2,1,0,124,3,83,0,41, - 10,122,48,78,111,114,109,97,108,105,122,101,32,112,97,116, - 104,44,32,101,108,105,109,105,110,97,116,105,110,103,32,100, - 111,117,98,108,101,32,115,108,97,115,104,101,115,44,32,101, - 116,99,46,114,50,0,0,0,114,57,0,0,0,114,86,0, - 0,0,114,102,0,0,0,114,4,0,0,0,114,90,0,0, - 0,114,2,0,0,0,114,3,0,0,0,114,146,0,0,0, - 41,9,114,60,0,0,0,114,61,0,0,0,114,51,0,0, - 0,114,52,0,0,0,114,12,0,0,0,114,13,0,0,0, - 218,6,97,112,112,101,110,100,218,3,112,111,112,114,10,0, - 0,0,41,10,114,54,0,0,0,114,37,0,0,0,114,93, - 0,0,0,218,3,100,111,116,218,6,100,111,116,100,111,116, - 218,1,95,218,15,105,110,105,116,105,97,108,95,115,108,97, - 115,104,101,115,218,5,99,111,109,112,115,218,9,110,101,119, - 95,99,111,109,112,115,218,4,99,111,109,112,115,10,0,0, - 0,32,32,32,32,32,32,32,32,32,32,114,55,0,0,0, - 114,30,0,0,0,114,30,0,0,0,121,1,0,0,115,222, - 0,0,0,128,0,228,15,17,143,121,137,121,152,20,139,127, - 136,4,220,11,21,144,100,156,69,212,11,34,216,18,22,136, - 67,216,20,23,136,69,216,18,22,136,67,216,21,26,137,70, - 224,18,21,136,67,216,20,22,136,69,216,18,21,136,67,216, - 21,25,136,70,216,11,15,144,53,138,61,216,19,22,136,74, - 220,35,44,168,84,163,63,209,8,32,136,1,136,63,152,68, - 216,16,20,151,10,145,10,152,51,147,15,136,5,216,20,22, - 136,9,219,20,25,136,68,216,15,19,152,5,152,115,144,124, - 209,15,35,216,16,24,216,16,20,152,6,146,14,161,127,185, - 121,217,18,27,160,9,168,34,161,13,176,22,210,32,55,216, - 16,25,215,16,32,209,16,32,160,20,213,16,38,218,17,26, - 216,16,25,151,13,145,13,149,15,240,15,0,21,26,240,16, - 0,17,26,136,5,216,15,30,160,19,167,24,161,24,168,37, - 163,31,209,15,48,136,4,216,15,19,138,123,144,115,208,8, - 26,114,57,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,226,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,106,2,0,0, + 34,0,53,0,0,0,0,0,0,0,85,0,53,2,0,0, + 0,0,0,0,110,0,79,53,85,0,82,9,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,2, + 53,1,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 100,31,0,0,91,11,0,0,0,0,0,0,0,0,91,0, + 0,0,0,0,0,0,0,0,82,14,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,53,0, + 0,0,0,0,0,0,85,0,53,2,0,0,0,0,0,0, + 110,0,91,17,0,0,0,0,0,0,0,0,85,0,53,1, + 0,0,0,0,0,0,36,0,41,3,122,24,82,101,116,117, + 114,110,32,97,110,32,97,98,115,111,108,117,116,101,32,112, + 97,116,104,46,114,51,0,0,0,114,4,0,0,0,41,9, + 114,61,0,0,0,114,62,0,0,0,114,52,0,0,0,114, + 53,0,0,0,114,65,0,0,0,114,10,0,0,0,218,7, + 103,101,116,99,119,100,98,218,6,103,101,116,99,119,100,114, + 30,0,0,0,114,54,0,0,0,115,1,0,0,0,32,114, + 56,0,0,0,114,31,0,0,0,114,31,0,0,0,117,1, + 0,0,115,105,0,0,0,128,0,228,11,13,143,57,138,57, + 144,84,139,63,128,68,220,7,17,144,36,156,5,215,7,30, + 209,7,30,216,15,19,143,127,137,127,152,116,215,15,36,209, + 15,36,220,19,23,156,2,159,10,154,10,155,12,160,100,211, + 19,43,136,68,248,224,15,19,143,127,137,127,152,115,215,15, + 35,209,15,35,220,19,23,156,2,159,9,154,9,155,11,160, + 84,211,19,42,136,68,220,11,19,144,68,139,62,208,4,25, + 114,58,0,0,0,70,41,1,218,6,115,116,114,105,99,116, + 99,1,0,0,0,0,0,0,0,1,0,0,0,6,0,0, + 0,3,0,0,0,243,116,5,0,0,149,0,91,0,0,0, + 0,0,0,0,0,0,82,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,34,0,85,0,53,1, + 0,0,0,0,0,0,110,0,91,5,0,0,0,0,0,0, + 0,0,85,0,91,6,0,0,0,0,0,0,0,0,53,2, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,97,23, + 0,0,83,1,110,2,83,2,110,3,83,3,110,4,91,0, + 0,0,0,0,0,0,0,0,82,8,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,110,5,79,22, + 83,4,110,2,83,5,110,3,83,6,110,4,91,0,0,0, + 0,0,0,0,0,0,82,10,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,110,5,85,1,91,12, + 0,0,0,0,0,0,0,0,76,0,97,9,0,0,91,14, + 0,0,0,0,0,0,0,0,110,6,83,7,110,1,79,16, + 85,1,40,0,0,0,0,0,0,0,97,3,0,0,83,8, + 110,6,79,6,91,16,0,0,0,0,0,0,0,0,110,6, + 83,9,110,7,85,0,82,19,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,2,53,1,0,0, + 0,0,0,0,83,9,83,9,83,10,50,3,5,0,0,0, + 110,8,91,21,0,0,0,0,0,0,0,0,85,8,53,1, + 0,0,0,0,0,0,110,9,85,0,82,23,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,2, + 53,1,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 97,2,0,0,85,2,79,6,85,5,34,0,53,0,0,0, + 0,0,0,0,110,10,48,0,110,11,85,9,40,0,0,0, + 0,0,0,0,71,1,97,215,0,0,85,8,82,25,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,125,0,116,5,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 115,69,116,7,0,0,0,0,0,0,0,0,124,0,116,8, - 0,0,0,0,0,0,0,0,171,2,0,0,0,0,0,0, - 114,21,116,1,0,0,0,0,0,0,0,0,106,10,0,0, + 53,0,0,0,0,0,0,0,110,12,85,12,99,20,0,0, + 88,171,85,8,82,25,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 39,0,0,0,77,47,0,0,85,9,83,11,45,23,0,0, + 110,9,85,12,40,0,0,0,0,0,0,0,97,5,0,0, + 88,195,58,88,0,0,97,2,0,0,77,66,0,0,88,196, + 58,88,0,0,97,31,0,0,85,10,83,9,85,10,82,27, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,125,1,110,20,116,1,0,0, - 0,0,0,0,0,0,106,12,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,125,1,116,15,0,0,0,0,0,0,0,0,124,1, - 124,0,171,2,0,0,0,0,0,0,125,0,116,17,0,0, - 0,0,0,0,0,0,124,0,171,1,0,0,0,0,0,0, - 83,0,41,1,122,24,82,101,116,117,114,110,32,97,110,32, - 97,98,115,111,108,117,116,101,32,112,97,116,104,46,41,9, - 114,60,0,0,0,114,61,0,0,0,114,9,0,0,0,114, - 51,0,0,0,114,52,0,0,0,218,7,103,101,116,99,119, - 100,98,218,6,103,101,116,99,119,100,114,10,0,0,0,114, - 30,0,0,0,41,2,114,54,0,0,0,218,3,99,119,100, - 115,2,0,0,0,32,32,114,55,0,0,0,114,31,0,0, - 0,114,31,0,0,0,152,1,0,0,115,75,0,0,0,128, - 0,228,11,13,143,57,137,57,144,84,139,63,128,68,220,11, - 16,144,20,140,59,220,11,21,144,100,156,69,212,11,34,220, - 18,20,151,42,145,42,147,44,137,67,228,18,20,151,41,145, - 41,147,43,136,67,220,15,19,144,67,152,20,139,127,136,4, - 220,11,19,144,68,139,62,208,4,25,114,57,0,0,0,70, - 41,1,218,6,115,116,114,105,99,116,99,1,0,0,0,0, - 0,0,0,1,0,0,0,6,0,0,0,3,0,0,0,243, - 106,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,125,0, - 116,5,0,0,0,0,0,0,0,0,124,0,100,1,100,2, - 26,0,124,0,124,1,105,0,171,4,0,0,0,0,0,0, - 92,2,0,0,125,2,125,3,116,7,0,0,0,0,0,0, - 0,0,124,2,171,1,0,0,0,0,0,0,83,0,41,3, + 0,0,85,2,53,1,0,0,0,0,0,0,4,0,61,1, + 40,0,0,0,0,0,0,0,100,2,0,0,32,0,85,2, + 110,10,77,102,0,0,88,162,58,88,0,0,97,5,0,0, + 88,172,45,0,0,0,110,13,79,7,88,162,45,0,0,0, + 85,12,45,0,0,0,110,13,30,0,91,0,0,0,0,0, + 0,0,0,0,82,28,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,85,13,53,1,0,0, + 0,0,0,0,82,30,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,110,14,91,32,0,0,0,0, + 0,0,0,0,82,34,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,85,14,53,1,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,100,107,0,0, + 85,1,40,0,0,0,0,0,0,0,97,95,0,0,85,9, + 40,0,0,0,0,0,0,0,97,88,0,0,91,32,0,0, + 0,0,0,0,0,0,82,36,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,34,0,85,14,53,1, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,100,61, + 0,0,91,17,0,0,0,0,0,0,0,0,91,38,0,0, + 0,0,0,0,0,0,82,40,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,91,0,0,0,0,0, + 0,0,0,0,82,42,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,91,38,0,0,0,0, + 0,0,0,0,82,40,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 85,13,53,3,0,0,0,0,0,0,101,1,85,13,110,10, + 71,1,77,30,0,0,88,219,59,0,0,0,97,44,0,0, + 88,189,5,0,0,0,110,10,85,10,98,3,0,0,71,1, + 77,45,0,0,85,1,40,0,0,0,0,0,0,0,97,22, + 0,0,91,0,0,0,0,0,0,0,0,0,82,32,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 34,0,85,13,53,1,0,0,0,0,0,0,32,0,85,13, + 110,10,71,1,77,79,0,0,91,0,0,0,0,0,0,0, + 0,0,82,44,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,85,13,53,1,0,0,0,0, + 0,0,110,15,85,15,82,23,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,2,53,1,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,97,2,0,0, + 85,2,110,10,85,7,99,38,0,0,83,9,88,189,39,0, + 0,0,85,8,82,47,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,13,53,1,0,0,0,0, + 0,0,32,0,85,8,82,47,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,9,53,1,0,0, + 0,0,0,0,32,0,85,15,82,19,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,2,53,1, + 0,0,0,0,0,0,83,9,83,9,83,10,50,3,5,0, + 0,0,110,16,85,8,82,49,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,16,53,1,0,0, + 0,0,0,0,32,0,85,9,91,21,0,0,0,0,0,0, + 0,0,85,16,53,1,0,0,0,0,0,0,45,13,0,0, + 110,9,71,1,77,223,0,0,85,10,36,0,33,0,85,6, + 7,0,97,3,0,0,32,0,31,0,79,4,102,0,61,3, + 31,0,102,1,85,13,110,10,85,9,40,0,0,0,0,0, + 0,0,97,3,0,0,71,1,77,241,0,0,78,27,41,12, 122,108,82,101,116,117,114,110,32,116,104,101,32,99,97,110, 111,110,105,99,97,108,32,112,97,116,104,32,111,102,32,116, 104,101,32,115,112,101,99,105,102,105,101,100,32,102,105,108, 101,110,97,109,101,44,32,101,108,105,109,105,110,97,116,105, 110,103,32,97,110,121,10,115,121,109,98,111,108,105,99,32, 108,105,110,107,115,32,101,110,99,111,117,110,116,101,114,101, - 100,32,105,110,32,116,104,101,32,112,97,116,104,46,78,114, - 6,0,0,0,41,4,114,60,0,0,0,114,61,0,0,0, - 218,13,95,106,111,105,110,114,101,97,108,112,97,116,104,114, - 31,0,0,0,41,4,218,8,102,105,108,101,110,97,109,101, - 114,176,0,0,0,114,54,0,0,0,218,2,111,107,115,4, - 0,0,0,32,32,32,32,114,55,0,0,0,114,43,0,0, - 0,114,43,0,0,0,167,1,0,0,115,54,0,0,0,128, - 0,244,6,0,16,18,143,121,137,121,152,24,211,15,34,128, - 72,220,15,28,152,88,160,98,160,113,152,92,168,56,176,86, - 184,82,211,15,64,129,72,128,68,136,34,220,11,18,144,52, - 139,61,208,4,24,114,57,0,0,0,99,4,0,0,0,0, - 0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,243, - 228,2,0,0,151,0,116,1,0,0,0,0,0,0,0,0, - 124,0,116,2,0,0,0,0,0,0,0,0,171,2,0,0, - 0,0,0,0,114,7,100,1,125,4,100,2,125,5,100,3, - 125,6,110,22,100,4,125,4,100,5,125,5,100,6,125,6, - 116,4,0,0,0,0,0,0,0,0,106,6,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,7, - 124,2,116,8,0,0,0,0,0,0,0,0,117,0,114,7, - 116,10,0,0,0,0,0,0,0,0,125,8,110,11,124,2, - 114,3,100,7,125,8,110,6,116,12,0,0,0,0,0,0, - 0,0,125,8,100,0,125,9,116,15,0,0,0,0,0,0, - 0,0,124,1,171,1,0,0,0,0,0,0,114,7,124,1, - 100,8,100,0,26,0,125,1,124,4,125,0,124,1,144,1, - 114,2,124,1,106,17,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,4,171,1,0,0,0,0, - 0,0,92,3,0,0,125,10,125,11,125,1,124,10,114,5, - 124,10,124,5,107,40,0,0,114,1,140,32,124,10,124,6, - 107,40,0,0,114,38,124,0,114,33,116,19,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,92,2, - 0,0,125,0,125,10,124,10,124,6,107,40,0,0,114,16, - 116,21,0,0,0,0,0,0,0,0,124,0,124,6,124,6, - 171,3,0,0,0,0,0,0,125,0,110,2,124,6,125,0, - 140,75,116,21,0,0,0,0,0,0,0,0,124,0,124,10, - 171,2,0,0,0,0,0,0,125,12,9,0,116,5,0,0, - 0,0,0,0,0,0,106,22,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,12,171,1,0,0, - 0,0,0,0,125,13,116,25,0,0,0,0,0,0,0,0, - 106,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,13,106,28,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,125,14,124,14,115,3,124,12,125,0,140,145,124,12, - 124,3,118,0,114,46,124,3,124,12,25,0,0,0,125,0, - 124,0,129,1,140,157,124,2,114,22,116,5,0,0,0,0, - 0,0,0,0,106,24,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,12,171,1,0,0,0,0, - 0,0,1,0,110,14,116,21,0,0,0,0,0,0,0,0, - 124,12,124,1,171,2,0,0,0,0,0,0,100,9,102,2, - 83,0,100,0,124,3,124,12,60,0,0,0,116,31,0,0, - 0,0,0,0,0,0,124,0,116,5,0,0,0,0,0,0, - 0,0,106,32,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,12,171,1,0,0,0,0,0,0, - 124,2,124,3,171,4,0,0,0,0,0,0,92,2,0,0, - 125,0,125,15,124,15,115,14,116,21,0,0,0,0,0,0, - 0,0,124,0,124,1,171,2,0,0,0,0,0,0,100,9, - 102,2,83,0,124,0,124,3,124,12,60,0,0,0,124,1, - 114,2,144,1,140,2,124,0,100,10,102,2,83,0,35,0, - 124,8,36,0,114,5,1,0,100,9,125,14,89,0,140,134, - 119,0,120,3,89,0,119,1,41,11,78,114,50,0,0,0, - 114,86,0,0,0,114,102,0,0,0,114,4,0,0,0,114, - 2,0,0,0,114,3,0,0,0,169,0,114,77,0,0,0, - 70,84,41,17,114,51,0,0,0,114,52,0,0,0,114,60, - 0,0,0,114,174,0,0,0,114,48,0,0,0,218,17,70, - 105,108,101,78,111,116,70,111,117,110,100,69,114,114,111,114, - 114,99,0,0,0,114,9,0,0,0,218,9,112,97,114,116, - 105,116,105,111,110,114,13,0,0,0,114,10,0,0,0,114, - 98,0,0,0,114,103,0,0,0,114,104,0,0,0,114,105, - 0,0,0,114,178,0,0,0,218,8,114,101,97,100,108,105, - 110,107,41,16,114,54,0,0,0,218,4,114,101,115,116,114, - 176,0,0,0,218,4,115,101,101,110,114,37,0,0,0,114, - 35,0,0,0,114,36,0,0,0,114,174,0,0,0,218,13, - 105,103,110,111,114,101,100,95,101,114,114,111,114,218,8,109, - 97,120,108,105,110,107,115,114,135,0,0,0,114,167,0,0, - 0,218,7,110,101,119,112,97,116,104,218,2,115,116,218,7, - 105,115,95,108,105,110,107,114,180,0,0,0,115,16,0,0, - 0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,114,55,0,0,0,114,178,0,0,0,114,178,0,0,0, - 176,1,0,0,115,167,1,0,0,128,0,220,7,17,144,36, - 156,5,212,7,30,216,14,18,136,3,216,17,21,136,6,216, - 17,22,137,6,224,14,17,136,3,216,17,20,136,6,216,17, - 21,136,6,220,17,19,151,25,145,25,136,6,216,7,13,148, - 29,209,7,30,220,24,41,137,13,217,9,15,216,24,26,137, - 13,228,24,31,136,13,224,15,19,128,72,228,7,12,136,84, - 132,123,216,15,19,144,65,144,66,136,120,136,4,216,15,18, - 136,4,226,10,14,216,24,28,159,14,153,14,160,115,211,24, - 43,137,13,136,4,136,97,144,20,217,15,19,144,116,152,118, - 146,126,224,12,20,216,11,15,144,54,138,62,225,15,19,220, - 29,34,160,52,155,91,145,10,144,4,144,100,216,19,23,152, - 54,146,62,220,27,31,160,4,160,102,168,102,211,27,53,145, - 68,224,23,29,144,4,216,12,20,220,18,22,144,116,152,84, - 211,18,34,136,7,240,2,5,9,47,220,17,19,151,24,145, - 24,152,39,211,17,34,136,66,244,8,0,23,27,151,108,145, - 108,160,50,167,58,161,58,211,22,46,136,71,217,15,22,216, - 19,26,136,68,216,12,20,224,11,18,144,100,137,63,224,19, - 23,152,7,145,61,136,68,216,15,19,208,15,31,224,16,24, - 225,15,21,228,16,18,151,7,145,7,152,7,213,16,32,244, - 6,0,24,28,152,71,160,84,211,23,42,168,69,208,23,49, - 208,16,49,216,24,28,136,4,136,87,137,13,220,19,32,160, - 20,164,114,167,123,161,123,176,55,211,39,59,184,86,192,84, - 211,19,74,137,8,136,4,136,98,217,15,17,220,19,23,152, - 4,152,100,211,19,35,160,85,208,19,42,208,12,42,216,24, - 28,136,4,136,87,137,13,243,85,1,0,11,15,240,88,1, - 0,12,16,144,20,136,58,208,4,21,248,240,55,0,16,29, - 242,0,1,9,28,216,22,27,138,71,240,3,1,9,28,250, - 115,18,0,0,0,194,52,21,69,37,0,197,37,7,69,47, - 3,197,46,1,69,47,3,218,6,100,97,114,119,105,110,99, - 2,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, - 3,0,0,0,243,80,2,0,0,151,0,124,0,115,11,116, - 1,0,0,0,0,0,0,0,0,100,1,171,1,0,0,0, - 0,0,0,130,1,116,3,0,0,0,0,0,0,0,0,106, - 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,125,0,116, - 7,0,0,0,0,0,0,0,0,124,0,116,8,0,0,0, - 0,0,0,0,0,171,2,0,0,0,0,0,0,114,7,100, - 2,125,2,100,3,125,3,100,4,125,4,110,6,100,5,125, - 2,100,6,125,3,100,7,125,4,124,1,128,3,124,2,125, - 1,110,21,116,3,0,0,0,0,0,0,0,0,106,4,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,1,171,1,0,0,0,0,0,0,125,1,9,0,116, - 11,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,106,13,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,124,3,171,1,0,0,0,0,0, - 0,68,0,143,5,99,2,103,0,99,2,93,7,0,0,125, - 5,124,5,115,1,140,6,124,5,145,2,140,9,4,0,125, - 6,125,5,116,11,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,106,13,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,3,171,1,0, - 0,0,0,0,0,68,0,143,5,99,2,103,0,99,2,93, - 7,0,0,125,5,124,5,115,1,140,6,124,5,145,2,140, - 9,4,0,125,7,125,5,116,15,0,0,0,0,0,0,0, - 0,116,17,0,0,0,0,0,0,0,0,124,6,124,7,103, - 2,171,1,0,0,0,0,0,0,171,1,0,0,0,0,0, - 0,125,8,124,4,103,1,116,15,0,0,0,0,0,0,0, - 0,124,6,171,1,0,0,0,0,0,0,124,8,122,10,0, - 0,122,5,0,0,124,7,124,8,100,8,26,0,122,0,0, - 0,125,9,124,9,115,2,124,2,83,0,116,19,0,0,0, - 0,0,0,0,0,124,9,142,0,83,0,99,2,1,0,99, - 2,125,5,119,0,99,2,1,0,99,2,125,5,119,0,35, - 0,116,20,0,0,0,0,0,0,0,0,116,22,0,0,0, - 0,0,0,0,0,116,24,0,0,0,0,0,0,0,0,116, - 26,0,0,0,0,0,0,0,0,102,4,36,0,114,25,1, - 0,116,29,0,0,0,0,0,0,0,0,106,30,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100, - 9,124,0,124,1,171,3,0,0,0,0,0,0,1,0,130, - 0,119,0,120,3,89,0,119,1,41,10,122,35,82,101,116, - 117,114,110,32,97,32,114,101,108,97,116,105,118,101,32,118, - 101,114,115,105,111,110,32,111,102,32,97,32,112,97,116,104, - 122,17,110,111,32,112,97,116,104,32,115,112,101,99,105,102, - 105,101,100,114,86,0,0,0,114,50,0,0,0,114,102,0, - 0,0,114,2,0,0,0,114,4,0,0,0,114,3,0,0, - 0,78,114,45,0,0,0,41,16,114,100,0,0,0,114,60, - 0,0,0,114,61,0,0,0,114,51,0,0,0,114,52,0, - 0,0,114,31,0,0,0,114,13,0,0,0,114,80,0,0, - 0,114,17,0,0,0,114,10,0,0,0,114,68,0,0,0, - 114,69,0,0,0,114,70,0,0,0,218,18,68,101,112,114, - 101,99,97,116,105,111,110,87,97,114,110,105,110,103,114,71, - 0,0,0,114,72,0,0,0,41,10,114,54,0,0,0,114, - 156,0,0,0,114,35,0,0,0,114,37,0,0,0,114,36, - 0,0,0,218,1,120,218,10,115,116,97,114,116,95,108,105, - 115,116,218,9,112,97,116,104,95,108,105,115,116,114,82,0, - 0,0,218,8,114,101,108,95,108,105,115,116,115,10,0,0, - 0,32,32,32,32,32,32,32,32,32,32,114,55,0,0,0, - 114,45,0,0,0,114,45,0,0,0,248,1,0,0,115,50, - 1,0,0,128,0,241,6,0,12,16,220,14,24,208,25,44, - 211,14,45,208,8,45,228,11,13,143,57,137,57,144,84,139, - 63,128,68,220,7,17,144,36,156,5,212,7,30,216,17,21, - 136,6,216,14,18,136,3,216,17,22,137,6,224,17,20,136, - 6,216,14,17,136,3,216,17,21,136,6,224,7,12,128,125, - 216,16,22,137,5,228,16,18,151,9,145,9,152,37,211,16, - 32,136,5,240,4,12,5,14,220,33,40,168,21,163,30,215, - 33,53,209,33,53,176,99,212,33,58,211,21,64,209,33,58, - 152,65,186,97,146,97,208,33,58,136,10,208,21,64,220,32, - 39,168,4,163,13,215,32,51,209,32,51,176,67,212,32,56, - 211,20,62,209,32,56,152,49,186,65,146,81,208,32,56,136, - 9,208,20,62,228,12,15,148,12,152,106,168,41,208,29,52, - 211,16,53,211,12,54,136,1,224,20,26,144,56,156,115,160, - 58,155,127,168,113,209,31,48,209,19,49,176,73,184,97,184, - 98,176,77,209,19,65,136,8,217,15,23,216,19,25,136,77, - 220,15,19,144,88,136,127,208,8,30,249,242,17,0,22,65, - 1,249,218,20,62,248,244,16,0,13,22,148,126,164,124,212, - 53,71,208,11,72,242,0,2,5,14,220,8,19,215,8,36, - 209,8,36,160,89,176,4,176,101,212,8,60,216,8,13,240, - 5,2,5,14,250,115,60,0,0,0,193,27,28,67,51,0, - 193,55,7,67,41,4,193,63,4,67,41,4,194,3,30,67, - 51,0,194,33,7,67,46,4,194,41,4,67,46,4,194,45, - 51,67,51,0,195,33,7,67,51,0,195,41,10,67,51,0, - 195,51,50,68,37,3,99,1,0,0,0,0,0,0,0,0, - 0,0,0,9,0,0,0,3,0,0,0,243,172,2,0,0, - 135,12,151,0,124,0,115,11,116,1,0,0,0,0,0,0, - 0,0,100,1,171,1,0,0,0,0,0,0,130,1,116,3, - 0,0,0,0,0,0,0,0,116,5,0,0,0,0,0,0, - 0,0,116,6,0,0,0,0,0,0,0,0,106,8,0,0, + 100,32,105,110,32,116,104,101,32,112,97,116,104,46,114,51, + 0,0,0,114,86,0,0,0,114,98,0,0,0,114,4,0, + 0,0,114,2,0,0,0,114,3,0,0,0,84,169,0,78, + 114,141,0,0,0,114,77,0,0,0,41,25,114,61,0,0, + 0,114,62,0,0,0,114,52,0,0,0,114,53,0,0,0, + 114,169,0,0,0,114,170,0,0,0,114,49,0,0,0,218, + 17,70,105,108,101,78,111,116,70,111,117,110,100,69,114,114, + 111,114,114,103,0,0,0,114,13,0,0,0,114,80,0,0, + 0,114,65,0,0,0,114,160,0,0,0,218,6,114,105,110, + 100,101,120,114,99,0,0,0,114,102,0,0,0,114,100,0, + 0,0,114,101,0,0,0,218,7,83,95,73,83,68,73,82, + 218,5,101,114,114,110,111,218,7,69,78,79,84,68,73,82, + 218,8,115,116,114,101,114,114,111,114,218,8,114,101,97,100, + 108,105,110,107,114,159,0,0,0,218,6,101,120,116,101,110, + 100,41,17,218,8,102,105,108,101,110,97,109,101,114,171,0, + 0,0,114,37,0,0,0,114,35,0,0,0,114,36,0,0, + 0,114,170,0,0,0,218,13,105,103,110,111,114,101,100,95, + 101,114,114,111,114,218,8,109,97,120,108,105,110,107,115,218, + 4,114,101,115,116,218,10,112,97,114,116,95,99,111,117,110, + 116,114,55,0,0,0,218,4,115,101,101,110,114,130,0,0, + 0,218,7,110,101,119,112,97,116,104,114,102,0,0,0,218, + 6,116,97,114,103,101,116,218,12,116,97,114,103,101,116,95, + 112,97,114,116,115,115,17,0,0,0,32,32,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32,32,114,56,0,0,0, + 114,43,0,0,0,114,43,0,0,0,132,1,0,0,115,107, + 2,0,0,128,0,244,6,0,16,18,143,121,138,121,152,24, + 211,15,34,128,72,220,7,17,144,40,156,69,215,7,34,209, + 7,34,216,14,18,136,3,216,17,21,136,6,216,17,22,136, + 6,220,17,19,151,26,145,26,137,6,224,14,17,136,3,216, + 17,20,136,6,216,17,21,136,6,220,17,19,151,25,145,25, + 136,6,216,7,13,148,29,210,7,30,220,24,41,136,13,216, + 17,21,137,6,222,9,15,216,24,26,137,13,228,24,31,136, + 13,224,15,19,128,72,240,12,0,12,20,143,62,137,62,152, + 35,211,11,30,153,116,160,18,152,116,209,11,36,128,68,244, + 8,0,18,21,144,84,147,25,128,74,240,8,0,19,27,215, + 18,37,209,18,37,160,99,215,18,42,209,18,42,137,51,177, + 6,179,8,128,68,240,12,0,12,14,128,68,231,10,20,216, + 15,19,143,120,137,120,139,122,136,4,216,11,15,137,60,224, + 31,35,144,20,151,24,145,24,147,26,209,12,28,217,12,20, + 216,8,18,144,97,137,15,136,10,222,15,19,144,116,147,126, + 225,12,20,216,11,15,139,62,224,19,23,208,24,41,152,20, + 159,27,153,27,160,83,211,25,41,208,19,42,215,19,49,168, + 99,136,68,217,12,20,216,11,15,139,59,216,22,26,145,107, + 137,71,224,22,26,145,106,160,52,209,22,39,136,71,240,2, + 40,9,21,220,22,24,151,104,146,104,152,119,211,22,39,215, + 22,47,209,22,47,136,71,220,19,23,151,60,146,60,160,7, + 215,19,40,209,19,40,222,19,25,158,106,180,20,183,28,178, + 28,184,103,215,49,70,209,49,70,220,26,33,164,37,167,45, + 161,45,180,18,183,27,178,27,188,85,191,93,185,93,211,49, + 75,216,34,41,243,3,1,27,43,240,0,1,21,43,224,23, + 30,144,4,218,16,24,216,15,22,139,127,224,23,27,145,125, + 144,4,216,19,23,209,19,35,226,20,28,230,19,25,228,20, + 22,151,71,146,71,152,71,212,20,36,216,23,30,144,4,218, + 16,24,220,21,23,151,91,146,91,160,23,211,21,41,136,70, + 240,10,0,16,22,215,15,32,209,15,32,160,19,215,15,37, + 209,15,37,224,23,26,144,4,216,15,23,209,15,31,224,32, + 36,144,4,145,13,240,8,0,17,21,151,11,145,11,152,71, + 212,16,36,216,16,20,151,11,145,11,152,68,212,16,33,224, + 27,33,159,60,153,60,168,3,211,27,44,169,84,168,114,168, + 84,209,27,50,136,76,216,12,16,143,75,137,75,152,12,212, + 12,37,216,12,22,156,35,152,108,211,26,43,209,12,43,136, + 74,218,12,20,240,8,0,12,16,128,75,248,240,47,0,16, + 29,243,0,1,9,17,217,12,16,240,3,1,9,17,250,240, + 42,0,16,23,136,4,247,121,1,0,11,21,138,42,115,37, + 0,0,0,196,56,66,35,74,33,0,199,30,12,74,33,0, + 199,45,31,74,33,0,200,15,22,74,33,0,202,33,6,74, + 42,3,202,41,1,74,42,3,218,6,100,97,114,119,105,110, + 99,2,0,0,0,0,0,0,0,0,0,0,0,6,0,0, + 0,3,0,0,0,243,152,2,0,0,149,0,91,0,0,0, + 0,0,0,0,0,0,82,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,34,0,85,0,53,1, + 0,0,0,0,0,0,110,0,85,0,40,0,0,0,0,0, + 0,0,100,11,0,0,91,5,0,0,0,0,0,0,0,0, + 83,1,53,1,0,0,0,0,0,0,101,1,91,7,0,0, + 0,0,0,0,0,0,85,0,91,8,0,0,0,0,0,0, + 0,0,53,2,0,0,0,0,0,0,40,0,0,0,0,0, + 0,0,97,7,0,0,83,2,110,2,83,3,110,3,83,4, + 110,4,79,6,83,5,110,2,83,6,110,3,83,7,110,4, + 85,1,99,3,0,0,85,2,110,1,79,22,91,0,0,0, + 0,0,0,0,0,0,82,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,34,0,85,1,53,1, + 0,0,0,0,0,0,110,1,30,0,91,11,0,0,0,0, + 0,0,0,0,85,1,53,1,0,0,0,0,0,0,82,13, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,171,2,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,125,0,116,11,0,0,0,0,0,0,0,0,124,0, - 100,2,25,0,0,0,116,12,0,0,0,0,0,0,0,0, - 171,2,0,0,0,0,0,0,114,5,100,3,138,12,100,4, - 125,1,110,4,100,5,138,12,100,6,125,1,9,0,124,0, - 68,0,143,2,99,2,103,0,99,2,93,19,0,0,125,2, - 124,2,106,15,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,137,12,171,1,0,0,0,0,0,0, - 145,2,140,21,4,0,125,3,125,2,9,0,116,17,0,0, - 0,0,0,0,0,0,136,12,102,1,100,7,132,8,124,0, - 68,0,171,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,92,1,0,0,125,4,124,3,68,0,143,5,143,6, - 99,3,103,0,99,2,93,27,0,0,125,5,124,5,68,0, - 143,6,99,2,103,0,99,2,93,13,0,0,125,6,124,6, - 115,1,140,6,124,6,124,1,107,55,0,0,115,1,140,12, - 124,6,145,2,140,15,4,0,99,2,125,6,145,2,140,29, - 4,0,125,3,125,5,125,6,116,19,0,0,0,0,0,0, - 0,0,124,3,171,1,0,0,0,0,0,0,125,7,116,21, - 0,0,0,0,0,0,0,0,124,3,171,1,0,0,0,0, - 0,0,125,8,124,7,125,9,116,23,0,0,0,0,0,0, - 0,0,124,7,171,1,0,0,0,0,0,0,68,0,93,20, - 0,0,92,2,0,0,125,10,125,6,124,6,124,8,124,10, - 25,0,0,0,107,55,0,0,115,1,140,15,124,7,100,9, - 124,10,26,0,125,9,1,0,110,1,4,0,124,4,114,2, - 137,12,110,4,137,12,100,9,100,2,26,0,125,11,124,11, - 137,12,106,25,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,9,171,1,0,0,0,0,0,0, - 122,0,0,0,83,0,99,2,1,0,99,2,125,2,119,0, - 35,0,116,0,0,0,0,0,0,0,0,0,36,0,114,13, - 1,0,116,1,0,0,0,0,0,0,0,0,100,8,171,1, - 0,0,0,0,0,0,100,9,130,2,119,0,120,3,89,0, - 119,1,99,2,1,0,99,2,125,6,119,0,99,2,1,0, - 99,3,125,6,125,5,119,0,35,0,116,26,0,0,0,0, - 0,0,0,0,116,28,0,0,0,0,0,0,0,0,102,2, - 36,0,114,24,1,0,116,31,0,0,0,0,0,0,0,0, - 106,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,10,103,1,124,0,162,1,173,6,142,0, - 1,0,130,0,119,0,120,3,89,0,119,1,41,11,122,68, - 71,105,118,101,110,32,97,32,115,101,113,117,101,110,99,101, - 32,111,102,32,112,97,116,104,32,110,97,109,101,115,44,32, - 114,101,116,117,114,110,115,32,116,104,101,32,108,111,110,103, - 101,115,116,32,99,111,109,109,111,110,32,115,117,98,45,112, - 97,116,104,46,122,37,99,111,109,109,111,110,112,97,116,104, - 40,41,32,97,114,103,32,105,115,32,97,110,32,101,109,112, - 116,121,32,115,101,113,117,101,110,99,101,114,6,0,0,0, - 114,50,0,0,0,114,86,0,0,0,114,4,0,0,0,114, - 2,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,51,0,0,0,243,46,0,0,0,149,1, - 75,0,1,0,151,0,124,0,93,12,0,0,125,1,124,1, - 100,0,100,1,26,0,137,2,107,40,0,0,150,1,151,1, - 1,0,140,14,4,0,121,0,173,3,119,1,41,2,78,114, - 77,0,0,0,114,182,0,0,0,41,3,218,2,46,48,114, - 74,0,0,0,114,37,0,0,0,115,3,0,0,0,32,32, - 128,114,55,0,0,0,218,9,60,103,101,110,101,120,112,114, - 62,122,29,99,111,109,109,111,110,112,97,116,104,46,60,108, - 111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,62, - 51,2,0,0,115,28,0,0,0,248,232,0,248,128,0,208, - 24,53,169,117,168,33,152,17,152,50,152,65,152,21,160,35, - 157,28,169,117,249,115,4,0,0,0,131,18,21,1,122,37, - 67,97,110,39,116,32,109,105,120,32,97,98,115,111,108,117, - 116,101,32,97,110,100,32,114,101,108,97,116,105,118,101,32, - 112,97,116,104,115,78,114,46,0,0,0,41,17,114,100,0, - 0,0,218,5,116,117,112,108,101,114,66,0,0,0,114,60, - 0,0,0,114,61,0,0,0,114,51,0,0,0,114,52,0, - 0,0,114,13,0,0,0,218,3,115,101,116,218,3,109,105, - 110,218,3,109,97,120,218,9,101,110,117,109,101,114,97,116, - 101,114,10,0,0,0,114,68,0,0,0,114,69,0,0,0, - 114,71,0,0,0,114,72,0,0,0,41,13,218,5,112,97, - 116,104,115,114,35,0,0,0,114,54,0,0,0,218,11,115, - 112,108,105,116,95,112,97,116,104,115,114,9,0,0,0,114, - 62,0,0,0,218,1,99,114,108,0,0,0,114,110,0,0, - 0,218,6,99,111,109,109,111,110,114,82,0,0,0,218,6, - 112,114,101,102,105,120,114,37,0,0,0,115,13,0,0,0, - 32,32,32,32,32,32,32,32,32,32,32,32,64,114,55,0, - 0,0,114,46,0,0,0,114,46,0,0,0,33,2,0,0, - 115,117,1,0,0,248,128,0,241,6,0,12,17,220,14,24, - 208,25,64,211,14,65,208,8,65,228,12,17,148,35,148,98, - 151,105,145,105,160,21,211,18,39,211,12,40,128,69,220,7, - 17,144,37,152,1,145,40,156,69,212,7,34,216,14,18,136, - 3,216,17,21,137,6,224,14,17,136,3,216,17,20,136,6, - 240,4,21,5,14,217,51,56,211,22,57,177,53,168,52,144, - 116,151,122,145,122,160,35,149,127,176,53,136,11,208,22,57, - 240,4,3,9,80,1,220,21,24,211,24,53,169,117,211,24, - 53,211,21,53,137,70,136,69,241,8,0,69,1,80,1,212, - 22,80,193,75,184,113,161,49,211,23,58,161,49,152,97,170, - 1,168,97,176,54,171,107,154,1,160,49,211,23,58,192,75, - 136,11,209,22,80,220,13,16,144,27,211,13,29,136,2,220, - 13,16,144,27,211,13,29,136,2,216,17,19,136,6,220,20, - 29,152,98,150,77,137,68,136,65,136,113,216,15,16,144,66, - 144,113,145,69,139,122,216,25,27,152,66,152,81,152,22,144, - 6,217,16,21,240,7,0,21,34,241,10,0,25,30,145,19, - 160,51,160,114,168,1,160,55,136,6,216,15,21,152,3,159, - 8,153,8,160,22,211,24,40,209,15,40,208,8,40,249,242, - 35,0,23,58,248,244,8,0,16,26,242,0,1,9,80,1, - 220,18,28,208,29,68,211,18,69,200,52,208,12,79,240,3, - 1,9,80,1,252,242,6,0,24,59,249,211,22,80,248,244, - 22,0,13,22,148,126,208,11,38,242,0,2,5,14,220,8, - 19,215,8,36,209,8,36,160,92,208,8,58,176,69,211,8, - 58,216,8,13,240,5,2,5,14,250,115,108,0,0,0,193, - 15,4,68,44,0,193,19,24,68,3,4,193,43,2,68,44, - 0,193,46,22,68,8,0,194,4,5,68,44,0,194,9,9, - 68,38,6,194,18,7,68,33,12,194,26,5,68,33,12,194, - 32,4,68,33,12,194,36,5,68,38,6,194,41,52,68,44, - 0,195,30,36,68,44,0,196,3,5,68,44,0,196,8,22, - 68,30,3,196,30,3,68,44,0,196,33,5,68,38,6,196, - 38,6,68,44,0,196,44,39,69,19,3,41,1,78,41,43, - 218,7,95,95,100,111,99,95,95,114,35,0,0,0,114,36, - 0,0,0,114,41,0,0,0,114,37,0,0,0,114,38,0, - 0,0,114,39,0,0,0,114,40,0,0,0,114,42,0,0, - 0,114,60,0,0,0,114,130,0,0,0,114,103,0,0,0, - 114,71,0,0,0,218,7,95,95,97,108,108,95,95,114,56, - 0,0,0,114,8,0,0,0,114,9,0,0,0,114,10,0, - 0,0,114,13,0,0,0,114,14,0,0,0,114,87,0,0, - 0,114,11,0,0,0,114,12,0,0,0,114,15,0,0,0, - 114,16,0,0,0,114,47,0,0,0,114,24,0,0,0,114, - 27,0,0,0,114,28,0,0,0,114,153,0,0,0,114,147, - 0,0,0,114,29,0,0,0,218,5,112,111,115,105,120,114, - 161,0,0,0,114,30,0,0,0,114,123,0,0,0,114,31, - 0,0,0,114,43,0,0,0,114,178,0,0,0,114,131,0, - 0,0,114,44,0,0,0,114,45,0,0,0,114,46,0,0, - 0,114,182,0,0,0,114,57,0,0,0,114,55,0,0,0, - 218,8,60,109,111,100,117,108,101,62,114,217,0,0,0,1, - 0,0,0,115,12,1,0,0,240,3,1,1,1,241,2,10, - 1,4,240,30,0,10,13,128,6,216,9,13,128,6,216,9, - 12,128,6,216,6,9,128,3,216,10,13,128,7,216,10,25, - 128,7,216,9,13,128,6,216,10,21,128,7,227,0,9,219, - 0,10,219,0,11,219,0,18,220,0,25,242,4,7,11,56, - 128,7,242,20,4,1,19,242,22,2,1,24,242,16,4,1, - 29,242,22,21,1,16,242,58,9,1,22,242,34,8,1,55, - 240,18,0,20,31,215,19,40,209,19,40,215,19,48,209,19, - 48,128,8,212,0,16,242,10,4,1,20,242,14,26,1,35, - 242,62,5,1,17,242,20,8,1,16,242,26,4,1,17,242, - 18,6,1,16,242,24,31,1,17,242,86,1,54,1,41,240, - 122,1,0,12,16,128,8,216,12,16,128,9,242,4,46,1, - 16,240,106,1,32,1,27,221,4,48,242,68,1,9,1,26, - 240,30,0,34,39,244,0,5,1,25,242,18,67,1,1,22, - 240,76,2,0,31,34,159,108,153,108,168,104,209,30,54,208, - 0,26,243,4,33,1,14,243,82,1,35,1,14,248,240,83, - 5,0,8,19,242,0,29,1,27,244,2,28,5,27,240,3, - 29,1,27,250,115,18,0,0,0,193,57,6,66,34,0,194, - 34,8,66,45,3,194,44,1,66,45,3, + 0,0,85,3,53,1,0,0,0,0,0,0,110,5,91,11, + 0,0,0,0,0,0,0,0,85,0,53,1,0,0,0,0, + 0,0,82,13,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,3,53,1,0,0,0,0,0,0, + 110,6,85,5,40,0,0,0,0,0,0,0,97,17,0,0, + 85,5,82,15,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,3,53,1,0,0,0,0,0,0, + 79,1,47,0,110,7,85,6,40,0,0,0,0,0,0,0, + 97,17,0,0,85,6,82,15,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,3,53,1,0,0, + 0,0,0,0,79,1,47,0,110,8,91,17,0,0,0,0, + 0,0,0,0,91,19,0,0,0,0,0,0,0,0,88,120, + 47,2,53,1,0,0,0,0,0,0,53,1,0,0,0,0, + 0,0,110,9,85,4,47,1,91,17,0,0,0,0,0,0, + 0,0,85,7,53,1,0,0,0,0,0,0,85,9,45,10, + 0,0,45,5,0,0,88,137,83,8,4,0,45,0,0,0, + 110,10,85,10,40,0,0,0,0,0,0,0,100,2,0,0, + 85,2,36,0,85,3,82,21,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,10,53,1,0,0, + 0,0,0,0,36,0,33,0,91,22,0,0,0,0,0,0, + 0,0,91,24,0,0,0,0,0,0,0,0,91,26,0,0, + 0,0,0,0,0,0,91,28,0,0,0,0,0,0,0,0, + 52,4,7,0,97,25,0,0,32,0,91,30,0,0,0,0, + 0,0,0,0,82,32,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,83,9,88,1,53,3, + 0,0,0,0,0,0,32,0,101,0,102,0,61,3,31,0, + 102,1,41,10,122,35,82,101,116,117,114,110,32,97,32,114, + 101,108,97,116,105,118,101,32,118,101,114,115,105,111,110,32, + 111,102,32,97,32,112,97,116,104,122,17,110,111,32,112,97, + 116,104,32,115,112,101,99,105,102,105,101,100,114,86,0,0, + 0,114,51,0,0,0,114,98,0,0,0,114,2,0,0,0, + 114,4,0,0,0,114,3,0,0,0,78,114,45,0,0,0, + 41,17,114,61,0,0,0,114,62,0,0,0,114,104,0,0, + 0,114,52,0,0,0,114,53,0,0,0,114,31,0,0,0, + 218,6,108,115,116,114,105,112,114,13,0,0,0,114,80,0, + 0,0,114,17,0,0,0,114,10,0,0,0,114,68,0,0, + 0,114,69,0,0,0,114,70,0,0,0,218,18,68,101,112, + 114,101,99,97,116,105,111,110,87,97,114,110,105,110,103,114, + 71,0,0,0,114,72,0,0,0,41,11,114,55,0,0,0, + 114,145,0,0,0,114,35,0,0,0,114,37,0,0,0,114, + 36,0,0,0,218,10,115,116,97,114,116,95,116,97,105,108, + 218,9,112,97,116,104,95,116,97,105,108,218,10,115,116,97, + 114,116,95,108,105,115,116,218,9,112,97,116,104,95,108,105, + 115,116,114,82,0,0,0,218,8,114,101,108,95,108,105,115, + 116,115,11,0,0,0,32,32,32,32,32,32,32,32,32,32, + 32,114,56,0,0,0,114,45,0,0,0,114,45,0,0,0, + 243,1,0,0,115,41,1,0,0,128,0,244,6,0,12,14, + 143,57,138,57,144,84,139,63,128,68,222,11,15,220,14,24, + 208,25,44,211,14,45,208,8,45,228,7,17,144,36,156,5, + 215,7,30,209,7,30,216,17,21,136,6,216,14,18,136,3, + 216,17,22,137,6,224,17,20,136,6,216,14,17,136,3,216, + 17,21,136,6,224,7,12,129,125,216,16,22,137,5,228,16, + 18,151,9,146,9,152,37,211,16,32,136,5,240,4,14,5, + 14,220,21,28,152,85,147,94,215,21,42,209,21,42,168,51, + 211,21,47,136,10,220,20,27,152,68,147,77,215,20,40,209, + 20,40,168,19,211,20,45,136,9,222,46,56,144,90,215,21, + 37,209,21,37,160,99,212,21,42,184,98,136,10,222,44,53, + 144,73,151,79,145,79,160,67,212,20,40,184,50,136,9,228, + 12,15,148,12,152,106,208,29,52,211,16,53,211,12,54,136, + 1,224,20,26,144,56,156,115,160,58,155,127,168,113,209,31, + 48,209,19,49,176,73,184,98,176,77,209,19,65,136,8,222, + 15,23,216,19,25,136,77,216,15,18,143,120,137,120,152,8, + 211,15,33,208,8,33,248,220,12,21,148,126,164,124,212,53, + 71,208,11,72,243,0,2,5,14,220,8,19,215,8,36,210, + 8,36,160,89,176,4,212,8,60,216,8,13,240,5,2,5, + 14,250,115,19,0,0,0,193,40,66,28,68,22,0,196,5, + 16,68,22,0,196,22,51,69,9,3,99,1,0,0,0,0, + 0,0,0,0,0,0,0,9,0,0,0,3,0,0,0,243, + 12,3,0,0,149,0,91,1,0,0,0,0,0,0,0,0, + 91,3,0,0,0,0,0,0,0,0,91,4,0,0,0,0, + 0,0,0,0,82,6,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,0,53,2,0,0,0,0, + 0,0,53,1,0,0,0,0,0,0,110,0,85,0,40,0, + 0,0,0,0,0,0,100,11,0,0,91,9,0,0,0,0, + 0,0,0,0,83,1,53,1,0,0,0,0,0,0,101,1, + 91,11,0,0,0,0,0,0,0,0,85,0,83,2,5,0, + 0,0,91,12,0,0,0,0,0,0,0,0,53,2,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,97,5,0,0, + 83,3,110,1,83,4,110,2,79,4,83,5,110,1,83,6, + 110,2,30,0,85,0,19,0,86,3,115,2,47,0,115,2, + 19,0,72,19,0,0,111,51,82,15,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,80,2,77,21,0,0,11,0,32,0, + 110,4,110,3,30,0,85,0,19,0,86,5,115,2,49,0, + 115,2,19,0,72,19,0,0,111,85,82,17,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,1, + 53,1,0,0,0,0,0,0,105,2,77,21,0,0,11,0, + 32,0,115,2,110,5,117,1,0,0,110,6,85,4,19,0, + 86,7,86,8,115,3,47,0,115,2,19,0,72,36,0,0, + 111,119,19,0,86,8,115,2,47,0,115,2,19,0,72,20, + 0,0,111,136,40,0,0,0,0,0,0,0,100,2,0,0, + 77,11,0,0,88,130,58,119,0,0,100,2,0,0,77,18, + 0,0,85,8,80,2,77,22,0,0,11,0,32,0,115,2, + 110,8,80,2,77,38,0,0,11,0,32,0,110,4,110,7, + 110,8,91,19,0,0,0,0,0,0,0,0,85,4,53,1, + 0,0,0,0,0,0,110,9,91,21,0,0,0,0,0,0, + 0,0,85,4,53,1,0,0,0,0,0,0,110,10,85,9, + 110,11,91,23,0,0,0,0,0,0,0,0,85,9,53,1, + 0,0,0,0,0,0,19,0,72,20,0,0,117,2,0,0, + 112,200,88,138,85,12,5,0,0,0,58,119,0,0,100,2, + 0,0,77,15,0,0,85,9,83,8,85,12,4,0,110,11, + 32,0,79,2,11,0,32,0,85,6,40,0,0,0,0,0, + 0,0,97,2,0,0,85,1,79,4,85,1,83,8,83,2, + 4,0,110,13,88,209,82,25,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,11,53,1,0,0, + 0,0,0,0,45,0,0,0,36,0,115,2,32,0,115,2, + 110,3,102,0,115,2,32,0,115,2,110,5,102,0,33,0, + 91,8,0,0,0,0,0,0,0,0,7,0,97,13,0,0, + 32,0,91,9,0,0,0,0,0,0,0,0,83,7,53,1, + 0,0,0,0,0,0,83,8,101,2,102,0,61,3,31,0, + 102,1,115,2,32,0,115,2,110,8,102,0,115,2,32,0, + 115,3,110,8,110,7,102,0,33,0,91,26,0,0,0,0, + 0,0,0,0,91,28,0,0,0,0,0,0,0,0,52,2, + 7,0,97,25,0,0,32,0,91,30,0,0,0,0,0,0, + 0,0,82,32,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,83,9,47,1,85,0,81,1, + 55,6,54,0,32,0,101,0,102,0,61,3,31,0,102,1, + 41,10,122,68,71,105,118,101,110,32,97,32,115,101,113,117, + 101,110,99,101,32,111,102,32,112,97,116,104,32,110,97,109, + 101,115,44,32,114,101,116,117,114,110,115,32,116,104,101,32, + 108,111,110,103,101,115,116,32,99,111,109,109,111,110,32,115, + 117,98,45,112,97,116,104,46,122,37,99,111,109,109,111,110, + 112,97,116,104,40,41,32,97,114,103,32,105,115,32,97,110, + 32,101,109,112,116,121,32,115,101,113,117,101,110,99,101,114, + 6,0,0,0,114,51,0,0,0,114,86,0,0,0,114,4, + 0,0,0,114,2,0,0,0,122,37,67,97,110,39,116,32, + 109,105,120,32,97,98,115,111,108,117,116,101,32,97,110,100, + 32,114,101,108,97,116,105,118,101,32,112,97,116,104,115,78, + 114,46,0,0,0,41,17,218,5,116,117,112,108,101,218,3, + 109,97,112,114,61,0,0,0,114,62,0,0,0,114,104,0, + 0,0,114,52,0,0,0,114,53,0,0,0,114,13,0,0, + 0,114,65,0,0,0,218,3,109,105,110,218,3,109,97,120, + 218,9,101,110,117,109,101,114,97,116,101,114,10,0,0,0, + 114,68,0,0,0,114,69,0,0,0,114,71,0,0,0,114, + 72,0,0,0,41,14,218,5,112,97,116,104,115,114,37,0, + 0,0,114,35,0,0,0,114,55,0,0,0,218,11,115,112, + 108,105,116,95,112,97,116,104,115,114,74,0,0,0,114,9, + 0,0,0,114,63,0,0,0,218,1,99,114,107,0,0,0, + 114,109,0,0,0,218,6,99,111,109,109,111,110,114,82,0, + 0,0,218,6,112,114,101,102,105,120,115,14,0,0,0,32, + 32,32,32,32,32,32,32,32,32,32,32,32,32,114,56,0, + 0,0,114,46,0,0,0,114,46,0,0,0,30,2,0,0, + 115,125,1,0,0,128,0,244,6,0,13,18,148,35,148,98, + 151,105,145,105,160,21,211,18,39,211,12,40,128,69,230,11, + 16,220,14,24,208,25,64,211,14,65,208,8,65,228,7,17, + 144,37,152,1,145,40,156,69,215,7,34,209,7,34,216,14, + 18,136,3,216,17,21,137,6,224,14,17,136,3,216,17,20, + 136,6,240,4,21,5,14,217,51,56,211,22,57,178,53,168, + 52,151,122,145,122,160,35,150,127,177,53,136,11,208,22,57, + 240,4,3,9,80,1,217,49,54,211,21,55,178,21,168,65, + 151,108,145,108,160,51,214,22,39,177,21,209,21,55,137,70, + 136,69,241,8,0,69,1,80,1,212,22,80,194,75,184,113, + 160,49,211,23,58,162,49,152,97,171,1,155,1,168,97,169, + 107,159,1,161,49,212,23,58,193,75,136,11,209,22,80,220, + 13,16,144,27,211,13,29,136,2,220,13,16,144,27,211,13, + 29,136,2,216,17,19,136,6,220,20,29,152,98,150,77,137, + 68,136,65,216,15,16,144,113,145,69,141,122,216,25,27,152, + 66,152,81,152,22,144,6,217,16,21,241,7,0,21,34,246, + 10,0,25,30,145,19,160,51,160,114,168,1,160,55,136,6, + 216,15,21,159,8,153,8,160,22,211,24,40,209,15,40,208, + 8,40,249,242,35,0,23,58,249,242,6,0,22,56,248,220, + 15,25,243,0,1,9,80,1,220,18,28,208,29,68,211,18, + 69,200,52,208,12,79,240,3,1,9,80,1,252,242,6,0, + 24,59,249,211,22,80,248,244,22,0,13,22,148,126,208,11, + 38,243,0,2,5,14,220,8,19,215,8,36,210,8,36,160, + 92,208,8,58,176,69,211,8,58,216,8,13,240,5,2,5, + 14,250,115,126,0,0,0,193,24,4,69,26,0,193,28,26, + 68,43,4,193,54,2,69,26,0,193,57,4,68,53,0,193, + 61,26,68,48,4,194,23,5,68,53,0,194,28,5,69,26, + 0,194,33,9,69,20,6,194,42,10,69,15,12,194,56,3, + 69,15,12,194,63,6,69,15,12,195,5,7,69,20,6,195, + 12,49,69,26,0,196,1,41,69,26,0,196,43,5,69,26, + 0,196,48,5,68,53,0,196,53,23,69,12,3,197,12,3, + 69,26,0,197,15,5,69,20,6,197,20,6,69,26,0,197, + 26,41,70,3,3,41,1,78,41,43,218,7,95,95,100,111, + 99,95,95,114,35,0,0,0,114,36,0,0,0,114,41,0, + 0,0,114,37,0,0,0,114,38,0,0,0,114,39,0,0, + 0,114,40,0,0,0,114,42,0,0,0,114,177,0,0,0, + 114,61,0,0,0,114,125,0,0,0,114,100,0,0,0,114, + 71,0,0,0,218,7,95,95,97,108,108,95,95,114,57,0, + 0,0,114,8,0,0,0,114,9,0,0,0,114,10,0,0, + 0,114,13,0,0,0,114,14,0,0,0,114,87,0,0,0, + 114,11,0,0,0,218,5,112,111,115,105,120,114,89,0,0, + 0,114,12,0,0,0,114,118,0,0,0,114,15,0,0,0, + 114,16,0,0,0,114,27,0,0,0,114,28,0,0,0,114, + 151,0,0,0,114,156,0,0,0,114,148,0,0,0,114,29, + 0,0,0,114,157,0,0,0,114,30,0,0,0,114,31,0, + 0,0,114,43,0,0,0,114,126,0,0,0,114,44,0,0, + 0,114,45,0,0,0,114,46,0,0,0,114,173,0,0,0, + 114,58,0,0,0,114,56,0,0,0,218,8,60,109,111,100, + 117,108,101,62,114,214,0,0,0,1,0,0,0,115,31,1, + 0,0,240,3,1,1,1,241,2,10,1,4,240,30,0,10, + 13,128,6,216,9,13,128,6,216,9,12,128,6,216,6,9, + 128,3,216,10,13,128,7,216,10,25,128,7,216,9,13,128, + 6,216,10,21,128,7,227,0,12,219,0,9,219,0,10,219, + 0,11,219,0,18,220,0,25,242,4,7,11,68,1,128,7, + 242,20,4,1,19,242,22,2,1,24,242,16,4,1,29,242, + 22,20,1,16,242,56,9,1,22,242,34,8,1,55,240,18, + 0,20,31,215,19,40,209,19,40,215,19,48,209,19,48,128, + 8,212,0,16,242,10,4,1,20,240,14,23,1,39,221,4, + 53,242,54,5,1,17,242,20,8,1,16,242,28,27,1,60, + 242,78,1,51,1,40,240,116,1,0,15,36,128,11,216,10, + 14,128,7,216,11,15,128,8,242,4,42,1,27,240,98,1, + 30,1,27,221,4,48,242,64,1,9,1,26,240,30,0,34, + 39,245,0,106,1,1,16,240,90,3,0,31,34,159,108,153, + 108,168,104,209,30,54,208,0,26,244,4,35,1,14,243,86, + 1,36,1,14,248,240,101,12,0,8,19,243,0,21,1,39, + 244,2,20,5,39,240,3,21,1,39,251,240,86,6,0,8, + 19,243,0,27,1,27,244,2,26,5,27,240,3,27,1,27, + 250,115,36,0,0,0,193,33,6,66,37,0,193,61,6,66, + 52,0,194,37,9,66,49,3,194,48,1,66,49,3,194,52, + 9,67,0,3,194,63,1,67,0,3, }; diff --git a/contrib/tools/python3/Python/frozen_modules/runpy.h b/contrib/tools/python3/Python/frozen_modules/runpy.h index aab279eec8b..b950789260a 100644 --- a/contrib/tools/python3/Python/frozen_modules/runpy.h +++ b/contrib/tools/python3/Python/frozen_modules/runpy.h @@ -1,895 +1,901 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__runpy[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,0,0,0,0,243,128,1,0,0,151,0,100,0,90,0, - 100,1,100,2,108,1,90,1,100,1,100,2,108,2,90,3, - 100,1,100,2,108,4,90,3,100,1,100,2,108,5,90,5, - 100,1,100,2,108,6,90,6,100,3,100,4,103,2,90,7, - 2,0,101,8,101,1,171,1,0,0,0,0,0,0,90,9, - 2,0,71,0,100,5,132,0,100,6,101,10,171,3,0,0, - 0,0,0,0,90,11,2,0,71,0,100,7,132,0,100,8, - 101,10,171,3,0,0,0,0,0,0,90,12,9,0,9,0, - 9,0,100,23,100,9,132,1,90,13,9,0,9,0,9,0, - 100,23,100,10,132,1,90,14,101,15,102,1,100,11,132,1, - 90,16,2,0,71,0,100,12,132,0,100,13,101,17,171,3, - 0,0,0,0,0,0,90,18,100,24,100,14,132,1,90,19, - 9,0,9,0,100,25,100,15,132,1,90,20,101,15,102,1, - 100,16,132,1,90,21,100,17,132,0,90,22,100,26,100,18, - 132,1,90,23,101,24,100,19,107,40,0,0,114,77,2,0, - 101,25,101,1,106,52,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 100,20,107,2,0,0,114,21,2,0,101,27,100,21,101,1, - 106,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,172,22,171,2,0,0,0,0,0,0,1,0, - 121,2,101,1,106,52,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,1,61,0,2,0,101,19, - 101,1,106,52,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,1,25,0,0,0,171,1,0,0, - 0,0,0,0,1,0,121,2,121,2,41,27,97,90,1,0, - 0,114,117,110,112,121,46,112,121,32,45,32,108,111,99,97, - 116,105,110,103,32,97,110,100,32,114,117,110,110,105,110,103, - 32,80,121,116,104,111,110,32,99,111,100,101,32,117,115,105, - 110,103,32,116,104,101,32,109,111,100,117,108,101,32,110,97, - 109,101,115,112,97,99,101,10,10,80,114,111,118,105,100,101, - 115,32,115,117,112,112,111,114,116,32,102,111,114,32,108,111, - 99,97,116,105,110,103,32,97,110,100,32,114,117,110,110,105, - 110,103,32,80,121,116,104,111,110,32,115,99,114,105,112,116, - 115,32,117,115,105,110,103,32,116,104,101,32,80,121,116,104, - 111,110,10,109,111,100,117,108,101,32,110,97,109,101,115,112, - 97,99,101,32,105,110,115,116,101,97,100,32,111,102,32,116, - 104,101,32,110,97,116,105,118,101,32,102,105,108,101,115,121, - 115,116,101,109,46,10,10,84,104,105,115,32,97,108,108,111, - 119,115,32,80,121,116,104,111,110,32,99,111,100,101,32,116, - 111,32,112,108,97,121,32,110,105,99,101,108,121,32,119,105, - 116,104,32,110,111,110,45,102,105,108,101,115,121,115,116,101, - 109,32,98,97,115,101,100,32,80,69,80,32,51,48,50,10, - 105,109,112,111,114,116,101,114,115,32,119,104,101,110,32,108, - 111,99,97,116,105,110,103,32,115,117,112,112,111,114,116,32, - 115,99,114,105,112,116,115,32,97,115,32,119,101,108,108,32, - 97,115,32,119,104,101,110,32,105,109,112,111,114,116,105,110, - 103,32,109,111,100,117,108,101,115,46,10,233,0,0,0,0, - 78,218,10,114,117,110,95,109,111,100,117,108,101,218,8,114, - 117,110,95,112,97,116,104,99,0,0,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,0,0,0,0,243,34,0,0, - 0,151,0,101,0,90,1,100,0,90,2,100,1,90,3,100, - 2,132,0,90,4,100,3,132,0,90,5,100,4,132,0,90, - 6,121,5,41,6,218,11,95,84,101,109,112,77,111,100,117, - 108,101,122,67,84,101,109,112,111,114,97,114,105,108,121,32, - 114,101,112,108,97,99,101,32,97,32,109,111,100,117,108,101, - 32,105,110,32,115,121,115,46,109,111,100,117,108,101,115,32, - 119,105,116,104,32,97,110,32,101,109,112,116,121,32,110,97, - 109,101,115,112,97,99,101,99,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,243,64,0,0, - 0,151,0,124,1,124,0,95,0,0,0,0,0,0,0,0, - 0,116,3,0,0,0,0,0,0,0,0,124,1,171,1,0, - 0,0,0,0,0,124,0,95,2,0,0,0,0,0,0,0, - 0,103,0,124,0,95,3,0,0,0,0,0,0,0,0,121, - 0,169,1,78,41,4,218,8,109,111,100,95,110,97,109,101, - 218,10,77,111,100,117,108,101,84,121,112,101,218,6,109,111, - 100,117,108,101,218,13,95,115,97,118,101,100,95,109,111,100, - 117,108,101,169,2,218,4,115,101,108,102,114,9,0,0,0, - 115,2,0,0,0,32,32,250,14,60,102,114,111,122,101,110, - 32,114,117,110,112,121,62,218,8,95,95,105,110,105,116,95, - 95,122,20,95,84,101,109,112,77,111,100,117,108,101,46,95, - 95,105,110,105,116,95,95,28,0,0,0,115,29,0,0,0, - 128,0,216,24,32,136,4,140,13,220,22,32,160,24,211,22, - 42,136,4,140,11,216,29,31,136,4,213,8,26,243,0,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,208,0,0,0,151,0,124,0, - 106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,125,1,9,0,124,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,5, + 0,0,0,0,0,243,140,1,0,0,149,0,83,0,114,0, + 83,1,83,2,75,1,114,1,83,1,83,2,75,2,114,3, + 83,1,83,2,75,4,114,3,83,1,83,2,75,5,114,5, + 83,1,83,2,75,6,114,6,83,3,83,4,47,2,114,7, + 92,8,34,0,92,1,53,1,0,0,0,0,0,0,114,9, + 24,0,34,0,83,5,26,0,83,6,92,10,53,3,0,0, + 0,0,0,0,114,11,24,0,34,0,83,7,26,0,83,8, + 92,10,53,3,0,0,0,0,0,0,114,12,30,0,30,0, + 30,0,83,23,83,9,26,0,106,1,114,13,30,0,30,0, + 30,0,83,23,83,10,26,0,106,1,114,14,92,15,52,1, + 83,11,26,0,106,1,114,16,24,0,34,0,83,12,26,0, + 83,13,92,17,53,3,0,0,0,0,0,0,114,18,83,24, + 83,14,26,0,106,1,114,19,30,0,30,0,83,25,83,15, + 26,0,106,1,114,20,92,15,52,1,83,16,26,0,106,1, + 114,21,83,17,26,0,114,22,83,26,83,18,26,0,106,1, + 114,23,92,24,83,19,58,88,0,0,97,75,0,0,92,25, + 34,0,92,1,82,52,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 83,20,58,18,0,0,97,18,0,0,92,27,34,0,83,21, + 92,1,82,56,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,22,57,2,32,0,103,2,92,1, + 82,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,1,9,0,92,19,34,0,92,1,82,52, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,6,0,0,0,0,0,0,0,0,106,8,0,0, + 0,0,83,1,5,0,0,0,53,1,0,0,0,0,0,0, + 32,0,103,2,103,2,41,27,97,90,1,0,0,114,117,110, + 112,121,46,112,121,32,45,32,108,111,99,97,116,105,110,103, + 32,97,110,100,32,114,117,110,110,105,110,103,32,80,121,116, + 104,111,110,32,99,111,100,101,32,117,115,105,110,103,32,116, + 104,101,32,109,111,100,117,108,101,32,110,97,109,101,115,112, + 97,99,101,10,10,80,114,111,118,105,100,101,115,32,115,117, + 112,112,111,114,116,32,102,111,114,32,108,111,99,97,116,105, + 110,103,32,97,110,100,32,114,117,110,110,105,110,103,32,80, + 121,116,104,111,110,32,115,99,114,105,112,116,115,32,117,115, + 105,110,103,32,116,104,101,32,80,121,116,104,111,110,10,109, + 111,100,117,108,101,32,110,97,109,101,115,112,97,99,101,32, + 105,110,115,116,101,97,100,32,111,102,32,116,104,101,32,110, + 97,116,105,118,101,32,102,105,108,101,115,121,115,116,101,109, + 46,10,10,84,104,105,115,32,97,108,108,111,119,115,32,80, + 121,116,104,111,110,32,99,111,100,101,32,116,111,32,112,108, + 97,121,32,110,105,99,101,108,121,32,119,105,116,104,32,110, + 111,110,45,102,105,108,101,115,121,115,116,101,109,32,98,97, + 115,101,100,32,80,69,80,32,51,48,50,10,105,109,112,111, + 114,116,101,114,115,32,119,104,101,110,32,108,111,99,97,116, + 105,110,103,32,115,117,112,112,111,114,116,32,115,99,114,105, + 112,116,115,32,97,115,32,119,101,108,108,32,97,115,32,119, + 104,101,110,32,105,109,112,111,114,116,105,110,103,32,109,111, + 100,117,108,101,115,46,10,233,0,0,0,0,78,218,10,114, + 117,110,95,109,111,100,117,108,101,218,8,114,117,110,95,112, + 97,116,104,99,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,243,42,0,0,0,149,0,92, + 0,114,1,83,0,114,2,83,1,114,3,83,2,114,4,83, + 3,26,0,114,5,83,4,26,0,114,6,83,5,26,0,114, + 7,83,6,114,8,103,7,41,8,218,11,95,84,101,109,112, + 77,111,100,117,108,101,233,26,0,0,0,122,67,84,101,109, + 112,111,114,97,114,105,108,121,32,114,101,112,108,97,99,101, + 32,97,32,109,111,100,117,108,101,32,105,110,32,115,121,115, + 46,109,111,100,117,108,101,115,32,119,105,116,104,32,97,110, + 32,101,109,112,116,121,32,110,97,109,101,115,112,97,99,101, + 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,3,0,0,0,243,62,0,0,0,149,0,88,16,108,0, + 0,0,0,0,0,0,0,0,91,3,0,0,0,0,0,0, + 0,0,85,1,53,1,0,0,0,0,0,0,85,0,108,2, + 0,0,0,0,0,0,0,0,47,0,85,0,108,3,0,0, + 0,0,0,0,0,0,103,0,169,1,78,41,4,218,8,109, + 111,100,95,110,97,109,101,218,10,77,111,100,117,108,101,84, + 121,112,101,218,6,109,111,100,117,108,101,218,13,95,115,97, + 118,101,100,95,109,111,100,117,108,101,169,2,218,4,115,101, + 108,102,114,10,0,0,0,115,2,0,0,0,32,32,218,14, + 60,102,114,111,122,101,110,32,114,117,110,112,121,62,218,8, + 95,95,105,110,105,116,95,95,218,20,95,84,101,109,112,77, + 111,100,117,108,101,46,95,95,105,110,105,116,95,95,28,0, + 0,0,115,27,0,0,0,128,0,216,24,32,140,13,220,22, + 32,160,24,211,22,42,136,4,140,11,216,29,31,136,4,213, + 8,26,243,0,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,243,210,0,0, + 0,149,0,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,110,1,30,0,85,0,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,82,5,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,91,6,0,0,0,0,0,0,0, + 0,82,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,1,5,0,0,0,53,1,0,0,0, + 0,0,0,32,0,85,0,82,12,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,91,6,0,0,0, + 0,0,0,0,0,82,8,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,1,39,0,0,0,85, + 0,36,0,33,0,91,10,0,0,0,0,0,0,0,0,7, + 0,97,3,0,0,32,0,31,0,78,43,102,0,61,3,31, + 0,102,1,114,9,0,0,0,41,7,114,10,0,0,0,114, + 13,0,0,0,218,6,97,112,112,101,110,100,218,3,115,121, + 115,218,7,109,111,100,117,108,101,115,218,8,75,101,121,69, + 114,114,111,114,114,12,0,0,0,114,14,0,0,0,115,2, + 0,0,0,32,32,114,16,0,0,0,218,9,95,95,101,110, + 116,101,114,95,95,218,21,95,84,101,109,112,77,111,100,117, + 108,101,46,95,95,101,110,116,101,114,95,95,33,0,0,0, + 115,90,0,0,0,128,0,216,19,23,151,61,145,61,136,8, + 240,2,3,9,17,216,12,16,215,12,30,209,12,30,215,12, + 37,209,12,37,164,99,167,107,161,107,176,40,209,38,59,212, + 12,60,240,6,0,33,37,167,11,161,11,140,3,143,11,137, + 11,144,72,209,8,29,216,15,19,136,11,248,244,7,0,16, + 24,243,0,1,9,17,217,12,16,240,3,1,9,17,250,115, + 17,0,0,0,142,44,65,25,0,193,25,10,65,38,3,193, + 37,1,65,38,3,99,1,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,7,0,0,0,243,192,0,0,0,149, + 0,85,0,82,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,97, + 43,0,0,85,0,82,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,1,5,0,0,0,91, + 2,0,0,0,0,0,0,0,0,82,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,82, + 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,39,0,0,0,79,27,91,2,0,0,0,0,0, + 0,0,0,82,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,0,82,6,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,47, + 0,85,0,108,0,0,0,0,0,0,0,0,0,103,0,169, + 2,78,114,2,0,0,0,41,4,114,13,0,0,0,114,22, + 0,0,0,114,23,0,0,0,114,10,0,0,0,169,2,114, + 15,0,0,0,218,4,97,114,103,115,115,2,0,0,0,32, + 32,114,16,0,0,0,218,8,95,95,101,120,105,116,95,95, + 218,20,95,84,101,109,112,77,111,100,117,108,101,46,95,95, + 101,120,105,116,95,95,42,0,0,0,115,64,0,0,0,128, + 0,216,11,15,215,11,29,215,11,29,216,41,45,215,41,59, + 209,41,59,184,65,209,41,62,140,67,143,75,137,75,152,4, + 159,13,153,13,210,12,38,228,16,19,151,11,145,11,152,68, + 159,77,153,77,208,16,42,216,29,31,136,4,213,8,26,114, + 19,0,0,0,41,3,114,13,0,0,0,114,10,0,0,0, + 114,12,0,0,0,78,41,9,218,8,95,95,110,97,109,101, + 95,95,218,10,95,95,109,111,100,117,108,101,95,95,218,12, + 95,95,113,117,97,108,110,97,109,101,95,95,218,15,95,95, + 102,105,114,115,116,108,105,110,101,110,111,95,95,218,7,95, + 95,100,111,99,95,95,114,17,0,0,0,114,25,0,0,0, + 114,31,0,0,0,218,21,95,95,115,116,97,116,105,99,95, + 97,116,116,114,105,98,117,116,101,115,95,95,169,0,114,19, + 0,0,0,114,16,0,0,0,114,6,0,0,0,114,6,0, + 0,0,26,0,0,0,115,20,0,0,0,134,0,217,4,77, + 242,2,3,5,32,242,10,7,5,20,245,18,5,5,32,114, + 19,0,0,0,114,6,0,0,0,99,0,0,0,0,0,0, + 0,0,0,0,0,0,1,0,0,0,0,0,0,0,243,38, + 0,0,0,149,0,92,0,114,1,83,0,114,2,83,1,114, + 3,83,2,26,0,114,4,83,3,26,0,114,5,83,4,26, + 0,114,6,83,5,114,7,103,6,41,7,218,14,95,77,111, + 100,105,102,105,101,100,65,114,103,118,48,233,49,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,3,0,0,0,243,60,0,0,0,149,0,88,16,108,0, + 0,0,0,0,0,0,0,0,91,3,0,0,0,0,0,0, + 0,0,53,0,0,0,0,0,0,0,61,1,85,0,108,2, + 0,0,0,0,0,0,0,0,85,0,108,3,0,0,0,0, + 0,0,0,0,103,0,114,9,0,0,0,41,4,218,5,118, + 97,108,117,101,218,6,111,98,106,101,99,116,218,12,95,115, + 97,118,101,100,95,118,97,108,117,101,218,9,95,115,101,110, + 116,105,110,101,108,41,2,114,15,0,0,0,114,44,0,0, + 0,115,2,0,0,0,32,32,114,16,0,0,0,114,17,0, + 0,0,218,23,95,77,111,100,105,102,105,101,100,65,114,103, + 118,48,46,95,95,105,110,105,116,95,95,50,0,0,0,115, + 24,0,0,0,128,0,216,21,26,140,10,220,45,51,171,88, + 208,8,53,136,4,212,8,25,152,68,157,78,114,19,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,3,0,0,0,243,182,0,0,0,149,0,85,0,82, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,25,0,0,0,171,1,0,0,0,0,0,0,1,0, - 124,0,106,12,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,116,6,0,0,0,0,0,0,0,0, - 106,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,60,0,0,0,124,0,83,0,35,0, - 116,10,0,0,0,0,0,0,0,0,36,0,114,3,1,0, - 89,0,140,42,119,0,120,3,89,0,119,1,114,8,0,0, - 0,41,7,114,9,0,0,0,114,12,0,0,0,218,6,97, - 112,112,101,110,100,218,3,115,121,115,218,7,109,111,100,117, - 108,101,115,218,8,75,101,121,69,114,114,111,114,114,11,0, - 0,0,114,13,0,0,0,115,2,0,0,0,32,32,114,15, - 0,0,0,218,9,95,95,101,110,116,101,114,95,95,122,21, - 95,84,101,109,112,77,111,100,117,108,101,46,95,95,101,110, - 116,101,114,95,95,33,0,0,0,115,90,0,0,0,128,0, - 216,19,23,151,61,145,61,136,8,240,2,3,9,17,216,12, - 16,215,12,30,209,12,30,215,12,37,209,12,37,164,99,167, - 107,161,107,176,40,209,38,59,212,12,60,240,6,0,33,37, - 167,11,161,11,140,3,143,11,137,11,144,72,209,8,29,216, - 15,19,136,11,248,244,7,0,16,24,242,0,1,9,17,217, - 12,16,240,3,1,9,17,250,115,17,0,0,0,142,44,65, - 25,0,193,25,9,65,37,3,193,36,1,65,37,3,99,1, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,7, - 0,0,0,243,196,0,0,0,151,0,124,0,106,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 114,50,124,0,106,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,1,25,0,0,0,116,2, - 0,0,0,0,0,0,0,0,106,4,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,106,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,60,0,0,0,103,0,124,0,95,0,0,0,0,0, - 0,0,0,0,121,0,116,2,0,0,0,0,0,0,0,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,106,6,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,61,0,103,0,124,0, - 95,0,0,0,0,0,0,0,0,0,121,0,169,2,78,114, - 2,0,0,0,41,4,114,12,0,0,0,114,20,0,0,0, - 114,21,0,0,0,114,9,0,0,0,169,2,114,14,0,0, - 0,218,4,97,114,103,115,115,2,0,0,0,32,32,114,15, - 0,0,0,218,8,95,95,101,120,105,116,95,95,122,20,95, - 84,101,109,112,77,111,100,117,108,101,46,95,95,101,120,105, - 116,95,95,42,0,0,0,115,76,0,0,0,128,0,216,11, - 15,215,11,29,210,11,29,216,41,45,215,41,59,209,41,59, - 184,65,209,41,62,140,67,143,75,137,75,152,4,159,13,153, - 13,209,12,38,240,6,0,30,32,136,4,213,8,26,244,3, - 0,17,20,151,11,145,11,152,68,159,77,153,77,208,16,42, - 216,29,31,136,4,213,8,26,114,17,0,0,0,78,41,7, - 218,8,95,95,110,97,109,101,95,95,218,10,95,95,109,111, - 100,117,108,101,95,95,218,12,95,95,113,117,97,108,110,97, - 109,101,95,95,218,7,95,95,100,111,99,95,95,114,16,0, - 0,0,114,23,0,0,0,114,28,0,0,0,169,0,114,17, - 0,0,0,114,15,0,0,0,114,6,0,0,0,114,6,0, - 0,0,26,0,0,0,115,20,0,0,0,132,0,217,4,77, - 242,2,3,5,32,242,10,7,5,20,243,18,5,5,32,114, - 17,0,0,0,114,6,0,0,0,99,0,0,0,0,0,0, - 0,0,0,0,0,0,1,0,0,0,0,0,0,0,243,30, - 0,0,0,151,0,101,0,90,1,100,0,90,2,100,1,132, - 0,90,3,100,2,132,0,90,4,100,3,132,0,90,5,121, - 4,41,5,218,14,95,77,111,100,105,102,105,101,100,65,114, - 103,118,48,99,2,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,0,0,0,243,62,0,0,0,151,0,124, - 1,124,0,95,0,0,0,0,0,0,0,0,0,116,3,0, - 0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,120, - 1,124,0,95,2,0,0,0,0,0,0,0,0,124,0,95, - 3,0,0,0,0,0,0,0,0,121,0,114,8,0,0,0, - 41,4,218,5,118,97,108,117,101,218,6,111,98,106,101,99, - 116,218,12,95,115,97,118,101,100,95,118,97,108,117,101,218, - 9,95,115,101,110,116,105,110,101,108,41,2,114,14,0,0, - 0,114,37,0,0,0,115,2,0,0,0,32,32,114,15,0, - 0,0,114,16,0,0,0,122,23,95,77,111,100,105,102,105, - 101,100,65,114,103,118,48,46,95,95,105,110,105,116,95,95, - 50,0,0,0,115,26,0,0,0,128,0,216,21,26,136,4, - 140,10,220,45,51,171,88,208,8,53,136,4,212,8,25,152, - 68,157,78,114,17,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,3,0,0,0,243,180,0, - 0,0,151,0,124,0,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,106,2,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 117,1,114,11,116,5,0,0,0,0,0,0,0,0,100,1, - 171,1,0,0,0,0,0,0,130,1,116,6,0,0,0,0, - 0,0,0,0,106,8,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,2,25,0,0,0,124,0, - 95,0,0,0,0,0,0,0,0,0,124,0,106,10,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,6,0,0,0,0,0,0,0,0,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,2, - 60,0,0,0,121,0,41,3,78,122,30,65,108,114,101,97, - 100,121,32,112,114,101,115,101,114,118,105,110,103,32,115,97, - 118,101,100,32,118,97,108,117,101,114,2,0,0,0,41,6, - 114,39,0,0,0,114,40,0,0,0,218,12,82,117,110,116, - 105,109,101,69,114,114,111,114,114,20,0,0,0,218,4,97, - 114,103,118,114,37,0,0,0,41,1,114,14,0,0,0,115, - 1,0,0,0,32,114,15,0,0,0,114,23,0,0,0,122, - 24,95,77,111,100,105,102,105,101,100,65,114,103,118,48,46, - 95,95,101,110,116,101,114,95,95,54,0,0,0,115,65,0, - 0,0,128,0,216,11,15,215,11,28,209,11,28,160,68,167, - 78,161,78,209,11,50,220,18,30,208,31,63,211,18,64,208, - 12,64,220,28,31,159,72,153,72,160,81,153,75,136,4,212, - 8,25,216,22,26,151,106,145,106,140,3,143,8,137,8,144, - 17,138,11,114,17,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,7,0,0,0,243,96,0, - 0,0,151,0,124,0,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,95,1,0,0, - 0,0,0,0,0,0,124,0,106,4,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,6,0,0, - 0,0,0,0,0,0,106,8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,1,60,0,0,0, - 121,0,114,25,0,0,0,41,5,114,40,0,0,0,114,37, - 0,0,0,114,39,0,0,0,114,20,0,0,0,114,43,0, - 0,0,114,26,0,0,0,115,2,0,0,0,32,32,114,15, - 0,0,0,114,28,0,0,0,122,23,95,77,111,100,105,102, - 105,101,100,65,114,103,118,48,46,95,95,101,120,105,116,95, - 95,60,0,0,0,115,32,0,0,0,128,0,216,21,25,151, - 94,145,94,136,4,140,10,216,22,26,215,22,39,209,22,39, - 140,3,143,8,137,8,144,17,138,11,114,17,0,0,0,78, - 41,6,114,29,0,0,0,114,30,0,0,0,114,31,0,0, - 0,114,16,0,0,0,114,23,0,0,0,114,28,0,0,0, - 114,33,0,0,0,114,17,0,0,0,114,15,0,0,0,114, - 35,0,0,0,114,35,0,0,0,49,0,0,0,115,17,0, - 0,0,132,0,242,2,2,5,54,242,8,4,5,33,243,12, - 2,5,40,114,17,0,0,0,114,35,0,0,0,99,7,0, - 0,0,0,0,0,0,0,0,0,0,9,0,0,0,3,0, - 0,0,243,234,0,0,0,151,0,124,2,129,17,124,1,106, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,2,171,1,0,0,0,0,0,0,1,0,124, - 4,128,7,100,1,125,7,124,6,125,8,100,1,125,9,110, - 50,124,4,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,125,7,124,4,106,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125, - 8,124,4,106,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,125,9,124,5,128,12,124,4,106, + 0,0,0,85,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,76,1,97,11,0,0,91, + 5,0,0,0,0,0,0,0,0,83,1,53,1,0,0,0, + 0,0,0,101,1,91,6,0,0,0,0,0,0,0,0,82, 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,125,5,124,1,106,1,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,3,124,8,124, - 9,100,1,124,7,124,5,124,4,172,2,171,7,0,0,0, - 0,0,0,1,0,116,11,0,0,0,0,0,0,0,0,124, - 0,124,1,171,2,0,0,0,0,0,0,1,0,124,1,83, - 0,41,3,122,41,72,101,108,112,101,114,32,116,111,32,114, - 117,110,32,99,111,100,101,32,105,110,32,110,111,109,105,110, - 97,116,101,100,32,110,97,109,101,115,112,97,99,101,78,41, - 7,114,29,0,0,0,218,8,95,95,102,105,108,101,95,95, - 218,10,95,95,99,97,99,104,101,100,95,95,114,32,0,0, - 0,218,10,95,95,108,111,97,100,101,114,95,95,218,11,95, - 95,112,97,99,107,97,103,101,95,95,218,8,95,95,115,112, - 101,99,95,95,41,6,218,6,117,112,100,97,116,101,218,6, - 108,111,97,100,101,114,218,6,111,114,105,103,105,110,218,6, - 99,97,99,104,101,100,218,6,112,97,114,101,110,116,218,4, - 101,120,101,99,41,10,218,4,99,111,100,101,218,11,114,117, - 110,95,103,108,111,98,97,108,115,218,12,105,110,105,116,95, - 103,108,111,98,97,108,115,114,9,0,0,0,218,8,109,111, - 100,95,115,112,101,99,218,8,112,107,103,95,110,97,109,101, - 218,11,115,99,114,105,112,116,95,110,97,109,101,114,52,0, - 0,0,218,5,102,110,97,109,101,114,54,0,0,0,115,10, - 0,0,0,32,32,32,32,32,32,32,32,32,32,114,15,0, - 0,0,218,9,95,114,117,110,95,99,111,100,101,114,64,0, - 0,0,65,0,0,0,115,144,0,0,0,128,0,240,8,0, - 8,20,208,7,31,216,8,19,215,8,26,209,8,26,152,60, - 212,8,40,216,7,15,208,7,23,216,17,21,136,6,216,16, - 27,136,5,216,17,21,137,6,224,17,25,151,31,145,31,136, - 6,216,16,24,151,15,145,15,136,5,216,17,25,151,31,145, - 31,136,6,216,11,19,208,11,27,216,23,31,151,127,145,127, - 136,72,216,4,15,215,4,22,209,4,22,160,40,216,34,39, - 216,36,42,216,33,37,216,36,42,216,37,45,216,34,42,240, - 13,0,5,23,244,0,6,5,44,244,14,0,5,9,136,20, - 136,123,212,4,27,216,11,22,208,4,22,114,17,0,0,0, - 99,6,0,0,0,0,0,0,0,0,0,0,0,11,0,0, - 0,3,0,0,0,243,46,1,0,0,151,0,124,3,128,2, - 124,5,110,11,124,3,106,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,125,6,116,3,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 53,0,125,7,116,5,0,0,0,0,0,0,0,0,124,6, - 171,1,0,0,0,0,0,0,53,0,1,0,124,7,106,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,8,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,125,8,116,11,0,0,0,0,0,0, - 0,0,124,0,124,8,124,1,124,2,124,3,124,4,124,5, - 171,7,0,0,0,0,0,0,1,0,100,1,100,1,100,1, - 171,2,0,0,0,0,0,0,1,0,100,1,100,1,100,1, - 171,2,0,0,0,0,0,0,1,0,127,8,106,13,0,0, + 0,0,0,83,2,5,0,0,0,85,0,108,0,0,0,0, + 0,0,0,0,0,85,0,82,10,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,91,6,0,0,0, + 0,0,0,0,0,82,8,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,2,39,0,0,0,103, + 0,41,3,78,122,30,65,108,114,101,97,100,121,32,112,114, + 101,115,101,114,118,105,110,103,32,115,97,118,101,100,32,118, + 97,108,117,101,114,2,0,0,0,41,6,114,46,0,0,0, + 114,47,0,0,0,218,12,82,117,110,116,105,109,101,69,114, + 114,111,114,114,22,0,0,0,218,4,97,114,103,118,114,44, + 0,0,0,41,1,114,15,0,0,0,115,1,0,0,0,32, + 114,16,0,0,0,114,25,0,0,0,218,24,95,77,111,100, + 105,102,105,101,100,65,114,103,118,48,46,95,95,101,110,116, + 101,114,95,95,54,0,0,0,115,65,0,0,0,128,0,216, + 11,15,215,11,28,209,11,28,160,68,167,78,161,78,210,11, + 50,220,18,30,208,31,63,211,18,64,208,12,64,220,28,31, + 159,72,153,72,160,81,153,75,136,4,212,8,25,216,22,26, + 151,106,145,106,140,3,143,8,137,8,144,17,138,11,114,19, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,7,0,0,0,243,96,0,0,0,149,0,85, + 0,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,0,108,1,0,0,0,0,0,0,0, + 0,85,0,82,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,91,6,0,0,0,0,0,0,0, + 0,82,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,1,39,0,0,0,103,0,114,28,0, + 0,0,41,5,114,47,0,0,0,114,44,0,0,0,114,46, + 0,0,0,114,22,0,0,0,114,51,0,0,0,114,29,0, + 0,0,115,2,0,0,0,32,32,114,16,0,0,0,114,31, + 0,0,0,218,23,95,77,111,100,105,102,105,101,100,65,114, + 103,118,48,46,95,95,101,120,105,116,95,95,60,0,0,0, + 115,32,0,0,0,128,0,216,21,25,151,94,145,94,136,4, + 140,10,216,22,26,215,22,39,209,22,39,140,3,143,8,137, + 8,144,17,138,11,114,19,0,0,0,41,3,114,46,0,0, + 0,114,47,0,0,0,114,44,0,0,0,78,41,8,114,33, + 0,0,0,114,34,0,0,0,114,35,0,0,0,114,36,0, + 0,0,114,17,0,0,0,114,25,0,0,0,114,31,0,0, + 0,114,38,0,0,0,114,39,0,0,0,114,19,0,0,0, + 114,16,0,0,0,114,41,0,0,0,114,41,0,0,0,49, + 0,0,0,115,17,0,0,0,134,0,242,2,2,5,54,242, + 8,4,5,33,245,12,2,5,40,114,19,0,0,0,114,41, + 0,0,0,99,7,0,0,0,0,0,0,0,0,0,0,0, + 10,0,0,0,3,0,0,0,243,232,0,0,0,149,0,85, + 2,98,17,0,0,85,1,82,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,2,53,1,0, + 0,0,0,0,0,32,0,85,4,99,7,0,0,83,1,110, + 7,85,6,110,8,83,1,110,9,79,51,85,4,82,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,83,0,35,0,49,0,115,1, - 119,2,1,0,89,0,1,0,1,0,140,33,120,3,89,0, - 119,1,35,0,49,0,115,1,119,2,1,0,89,0,1,0, - 1,0,127,8,106,13,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, - 83,0,120,3,89,0,119,1,41,2,122,53,72,101,108,112, - 101,114,32,116,111,32,114,117,110,32,99,111,100,101,32,105, - 110,32,110,101,119,32,110,97,109,101,115,112,97,99,101,32, - 119,105,116,104,32,115,121,115,32,109,111,100,105,102,105,101, - 100,78,41,7,114,53,0,0,0,114,6,0,0,0,114,35, - 0,0,0,114,11,0,0,0,218,8,95,95,100,105,99,116, - 95,95,114,64,0,0,0,218,4,99,111,112,121,41,9,114, - 57,0,0,0,114,59,0,0,0,114,9,0,0,0,114,60, - 0,0,0,114,61,0,0,0,114,62,0,0,0,114,63,0, - 0,0,218,11,116,101,109,112,95,109,111,100,117,108,101,218, - 11,109,111,100,95,103,108,111,98,97,108,115,115,9,0,0, - 0,32,32,32,32,32,32,32,32,32,114,15,0,0,0,218, - 16,95,114,117,110,95,109,111,100,117,108,101,95,99,111,100, - 101,114,70,0,0,0,91,0,0,0,115,134,0,0,0,128, - 0,240,8,0,28,36,208,27,43,137,75,176,24,183,31,177, - 31,128,69,220,9,20,144,88,212,9,30,160,43,172,126,184, - 101,213,47,68,216,22,33,215,22,40,209,22,40,215,22,49, - 209,22,49,136,11,220,8,17,144,36,152,11,160,92,216,18, - 26,152,72,160,104,176,11,244,3,1,9,61,247,5,0,48, - 69,1,215,9,30,240,12,0,12,23,215,11,27,209,11,27, - 211,11,29,208,4,29,247,13,0,48,69,1,208,47,68,250, - 215,9,30,240,12,0,12,23,215,11,27,209,11,27,211,11, - 29,208,4,29,250,115,34,0,0,0,156,12,65,60,3,168, - 40,65,48,5,193,16,8,65,60,3,193,48,5,65,57,9, - 193,53,7,65,60,3,193,60,5,66,20,7,99,2,0,0, - 0,0,0,0,0,0,0,0,0,9,0,0,0,3,0,0, - 0,243,152,4,0,0,151,0,124,0,106,1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, - 171,1,0,0,0,0,0,0,114,8,2,0,124,1,100,2, - 171,1,0,0,0,0,0,0,130,1,124,0,106,3,0,0, + 0,110,7,85,4,82,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,110,8,85,4,82,6,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,1,171,1,0,0,0,0,0,0,92,3,0,0,125,2, - 125,3,125,3,124,2,114,99,9,0,116,5,0,0,0,0, - 0,0,0,0,124,2,171,1,0,0,0,0,0,0,1,0, - 116,10,0,0,0,0,0,0,0,0,106,12,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,15, + 0,110,9,85,5,99,12,0,0,85,4,82,8,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110, + 5,85,1,82,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,3,85,8,85,9,83,1,85, + 7,85,5,85,4,83,2,57,7,32,0,91,11,0,0,0, + 0,0,0,0,0,88,1,53,2,0,0,0,0,0,0,32, + 0,85,1,36,0,41,3,122,41,72,101,108,112,101,114,32, + 116,111,32,114,117,110,32,99,111,100,101,32,105,110,32,110, + 111,109,105,110,97,116,101,100,32,110,97,109,101,115,112,97, + 99,101,78,41,7,114,33,0,0,0,218,8,95,95,102,105, + 108,101,95,95,218,10,95,95,99,97,99,104,101,100,95,95, + 114,37,0,0,0,218,10,95,95,108,111,97,100,101,114,95, + 95,218,11,95,95,112,97,99,107,97,103,101,95,95,218,8, + 95,95,115,112,101,99,95,95,41,6,218,6,117,112,100,97, + 116,101,218,6,108,111,97,100,101,114,218,6,111,114,105,103, + 105,110,218,6,99,97,99,104,101,100,218,6,112,97,114,101, + 110,116,218,4,101,120,101,99,41,10,218,4,99,111,100,101, + 218,11,114,117,110,95,103,108,111,98,97,108,115,218,12,105, + 110,105,116,95,103,108,111,98,97,108,115,114,10,0,0,0, + 218,8,109,111,100,95,115,112,101,99,218,8,112,107,103,95, + 110,97,109,101,218,11,115,99,114,105,112,116,95,110,97,109, + 101,114,62,0,0,0,218,5,102,110,97,109,101,114,64,0, + 0,0,115,10,0,0,0,32,32,32,32,32,32,32,32,32, + 32,114,16,0,0,0,218,9,95,114,117,110,95,99,111,100, + 101,114,74,0,0,0,65,0,0,0,115,142,0,0,0,128, + 0,240,8,0,8,20,209,7,31,216,8,19,215,8,26,209, + 8,26,152,60,212,8,40,216,7,15,209,7,23,216,17,21, + 136,6,216,16,27,136,5,216,17,21,137,6,224,17,25,151, + 31,145,31,136,6,216,16,24,151,15,145,15,136,5,216,17, + 25,151,31,145,31,136,6,216,11,19,209,11,27,216,23,31, + 151,127,145,127,136,72,216,4,15,215,4,22,209,4,22,160, + 40,216,34,39,216,36,42,216,33,37,216,36,42,216,37,45, + 216,34,42,240,13,0,5,23,241,0,6,5,44,244,14,0, + 5,9,136,20,212,4,27,216,11,22,208,4,22,114,19,0, + 0,0,99,6,0,0,0,0,0,0,0,0,0,0,0,11, + 0,0,0,3,0,0,0,243,62,1,0,0,149,0,85,3, + 99,2,0,0,85,5,79,11,85,3,82,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,6, + 91,3,0,0,0,0,0,0,0,0,85,2,53,1,0,0, + 0,0,0,0,2,0,110,7,91,5,0,0,0,0,0,0, + 0,0,85,6,53,1,0,0,0,0,0,0,2,0,32,0, + 85,7,82,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,82,8,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,110,8,91,11,0,0, + 0,0,0,0,0,0,88,8,85,1,88,35,88,69,53,7, + 0,0,0,0,0,0,32,0,83,1,83,1,83,1,53,2, + 0,0,0,0,0,0,32,0,83,1,83,1,83,1,53,2, + 0,0,0,0,0,0,32,0,87,8,82,13,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,36,0,33,0,44,0,40,0,0,0, + 0,0,0,0,100,1,0,0,102,2,32,0,31,0,32,0, + 32,0,78,38,61,3,31,0,102,1,33,0,44,0,40,0, + 0,0,0,0,0,0,100,1,0,0,102,2,32,0,31,0, + 32,0,32,0,87,8,82,13,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,36,0,61,3,31,0,102,1,41,2,122,53,72,101, + 108,112,101,114,32,116,111,32,114,117,110,32,99,111,100,101, + 32,105,110,32,110,101,119,32,110,97,109,101,115,112,97,99, + 101,32,119,105,116,104,32,115,121,115,32,109,111,100,105,102, + 105,101,100,78,41,7,114,63,0,0,0,114,6,0,0,0, + 114,41,0,0,0,114,12,0,0,0,218,8,95,95,100,105, + 99,116,95,95,114,74,0,0,0,218,4,99,111,112,121,41, + 9,114,67,0,0,0,114,69,0,0,0,114,10,0,0,0, + 114,70,0,0,0,114,71,0,0,0,114,72,0,0,0,114, + 73,0,0,0,218,11,116,101,109,112,95,109,111,100,117,108, + 101,218,11,109,111,100,95,103,108,111,98,97,108,115,115,9, + 0,0,0,32,32,32,32,32,32,32,32,32,114,16,0,0, + 0,218,16,95,114,117,110,95,109,111,100,117,108,101,95,99, + 111,100,101,114,80,0,0,0,91,0,0,0,115,131,0,0, + 0,128,0,240,8,0,28,36,209,27,43,137,75,176,24,183, + 31,177,31,128,69,220,9,20,144,88,212,9,30,160,43,172, + 126,184,101,213,47,68,216,22,33,215,22,40,209,22,40,215, + 22,49,209,22,49,136,11,220,8,17,144,36,160,92,216,18, + 26,160,104,244,3,1,9,61,247,5,0,48,69,1,215,9, + 30,240,12,0,12,23,215,11,27,209,11,27,211,11,29,208, + 4,29,247,13,0,48,69,1,213,47,68,250,215,9,30,212, + 9,30,240,12,0,12,23,215,11,27,209,11,27,211,11,29, + 208,4,29,250,115,34,0,0,0,157,12,65,63,3,169,37, + 65,46,5,193,14,8,65,63,3,193,46,10,65,60,9,193, + 56,7,65,63,3,193,63,10,66,28,7,99,2,0,0,0, + 0,0,0,0,0,0,0,0,9,0,0,0,3,0,0,0, + 243,232,4,0,0,149,0,85,0,82,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,1,53, + 1,0,0,0,0,0,0,40,0,0,0,0,0,0,0,97, + 8,0,0,85,1,34,0,83,2,53,1,0,0,0,0,0, + 0,101,1,85,0,82,3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,1,53,1,0,0,0, + 0,0,0,117,3,0,0,110,2,32,0,110,3,85,2,40, + 0,0,0,0,0,0,0,97,101,0,0,30,0,91,5,0, + 0,0,0,0,0,0,0,85,2,53,1,0,0,0,0,0, + 0,32,0,91,10,0,0,0,0,0,0,0,0,82,12,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,5,124,5, - 129,54,116,17,0,0,0,0,0,0,0,0,124,5,100,3, - 171,2,0,0,0,0,0,0,115,42,100,4,100,5,108,9, - 109,10,125,6,1,0,100,6,106,23,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,124,2, - 172,7,171,2,0,0,0,0,0,0,125,7,2,0,124,6, - 116,25,0,0,0,0,0,0,0,0,124,7,171,1,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,1,0,9,0, - 116,26,0,0,0,0,0,0,0,0,106,28,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,31, + 0,82,15,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,0,53,1,0,0,0,0,0,0,110, + 5,85,5,98,55,0,0,91,17,0,0,0,0,0,0,0, + 0,85,5,83,3,53,2,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,100,38,0,0,83,4,83,5,75,9,74, + 10,110,6,32,0,83,6,82,23,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,88,2,83,7,57, + 2,110,7,85,6,34,0,91,25,0,0,0,0,0,0,0, + 0,85,7,53,1,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,32,0,30,0,91,26,0,0,0,0,0,0,0, + 0,82,28,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,82,31,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,0,53,1,0,0,0, + 0,0,0,110,8,85,8,99,11,0,0,85,1,34,0,83, + 14,85,0,45,6,0,0,53,1,0,0,0,0,0,0,101, + 1,85,8,82,44,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,98,53,0,0,85,0,83,15,58, + 88,0,0,100,22,0,0,85,0,82,39,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,16,53, + 1,0,0,0,0,0,0,40,0,0,0,0,0,0,0,97, + 8,0,0,85,1,34,0,83,17,53,1,0,0,0,0,0, + 0,101,1,30,0,85,0,83,16,45,0,0,0,110,10,91, + 47,0,0,0,0,0,0,0,0,88,161,53,2,0,0,0, + 0,0,0,36,0,85,8,82,48,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,110,11,85,11,99, + 11,0,0,85,1,34,0,83,20,85,0,45,6,0,0,53, + 1,0,0,0,0,0,0,101,1,30,0,85,11,82,51,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,8,124,8, - 128,11,2,0,124,1,100,14,124,0,122,6,0,0,171,1, - 0,0,0,0,0,0,130,1,124,8,106,44,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,48, - 124,0,100,15,107,40,0,0,115,17,124,0,106,39,0,0, + 0,85,0,53,1,0,0,0,0,0,0,110,12,85,12,99, + 11,0,0,85,1,34,0,83,21,85,0,45,6,0,0,53, + 1,0,0,0,0,0,0,101,1,88,8,85,12,52,3,36, + 0,33,0,91,6,0,0,0,0,0,0,0,0,7,0,97, + 76,0,0,110,4,85,4,82,8,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,98,51,0,0,85, + 4,82,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,2,58,119,0,0,97,36,0,0,85, + 2,82,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,4,82,8,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,1,45,0,0, + 0,53,1,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,100,1,0,0,101,0,31,0,83,0,110,4,65,4,71, + 1,78,88,83,0,110,4,65,4,102,1,102,0,61,3,31, + 0,102,1,33,0,91,6,0,0,0,0,0,0,0,0,91, + 32,0,0,0,0,0,0,0,0,91,34,0,0,0,0,0, + 0,0,0,91,36,0,0,0,0,0,0,0,0,52,4,7, + 0,97,89,0,0,110,9,83,8,110,7,85,0,82,39,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,16,171,1,0,0,0,0,0,0,114,8,2,0,124,1, - 100,17,171,1,0,0,0,0,0,0,130,1,9,0,124,0, - 100,16,122,0,0,0,125,10,116,47,0,0,0,0,0,0, - 0,0,124,10,124,1,171,2,0,0,0,0,0,0,83,0, - 124,8,106,48,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,125,11,124,11,128,11,2,0,124,1, - 100,20,124,0,122,6,0,0,171,1,0,0,0,0,0,0, - 130,1,9,0,124,11,106,51,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,125,12,124,12,128,11,2,0,124,1,100,21, - 124,0,122,6,0,0,171,1,0,0,0,0,0,0,130,1, - 124,0,124,8,124,12,102,3,83,0,35,0,116,6,0,0, - 0,0,0,0,0,0,36,0,114,69,125,4,124,4,106,8, + 0,83,9,53,1,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,97,15,0,0,85,7,83,10,85,0,83,0,83, + 11,4,0,14,0,83,12,85,0,14,0,83,13,51,5,45, + 13,0,0,110,7,85,1,34,0,85,7,82,23,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 0,91,41,0,0,0,0,0,0,0,0,85,9,53,1,0, + 0,0,0,0,0,82,42,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,9,53,3,0,0,0, + 0,0,0,53,1,0,0,0,0,0,0,85,9,101,2,83, + 0,110,9,65,9,102,1,102,0,61,3,31,0,102,1,33, + 0,85,1,7,0,97,42,0,0,110,4,85,0,91,10,0, + 0,0,0,0,0,0,0,82,12,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,59,1,0,0,97, + 1,0,0,101,0,85,1,34,0,85,4,60,1,14,0,83, + 18,85,0,60,2,14,0,83,19,51,4,53,1,0,0,0, + 0,0,0,101,1,83,0,110,4,65,4,102,1,102,0,61, + 3,31,0,102,1,33,0,91,6,0,0,0,0,0,0,0, + 0,7,0,97,23,0,0,110,4,85,1,34,0,91,23,0, + 0,0,0,0,0,0,0,85,4,53,1,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,85,4,101,2,83,0,110, + 4,65,4,102,1,102,0,61,3,31,0,102,1,41,22,78, + 218,1,46,122,35,82,101,108,97,116,105,118,101,32,109,111, + 100,117,108,101,32,110,97,109,101,115,32,110,111,116,32,115, + 117,112,112,111,114,116,101,100,218,8,95,95,112,97,116,104, + 95,95,114,2,0,0,0,41,1,218,4,119,97,114,110,122, + 154,123,109,111,100,95,110,97,109,101,33,114,125,32,102,111, + 117,110,100,32,105,110,32,115,121,115,46,109,111,100,117,108, + 101,115,32,97,102,116,101,114,32,105,109,112,111,114,116,32, + 111,102,32,112,97,99,107,97,103,101,32,123,112,107,103,95, + 110,97,109,101,33,114,125,44,32,98,117,116,32,112,114,105, + 111,114,32,116,111,32,101,120,101,99,117,116,105,111,110,32, + 111,102,32,123,109,111,100,95,110,97,109,101,33,114,125,59, + 32,116,104,105,115,32,109,97,121,32,114,101,115,117,108,116, + 32,105,110,32,117,110,112,114,101,100,105,99,116,97,98,108, + 101,32,98,101,104,97,118,105,111,117,114,41,2,114,10,0, + 0,0,114,71,0,0,0,122,58,69,114,114,111,114,32,119, + 104,105,108,101,32,102,105,110,100,105,110,103,32,109,111,100, + 117,108,101,32,115,112,101,99,105,102,105,99,97,116,105,111, + 110,32,102,111,114,32,123,33,114,125,32,40,123,125,58,32, + 123,125,41,122,3,46,112,121,122,13,46,32,84,114,121,32, + 117,115,105,110,103,32,39,233,253,255,255,255,122,14,39,32, + 105,110,115,116,101,97,100,32,111,102,32,39,122,21,39,32, + 97,115,32,116,104,101,32,109,111,100,117,108,101,32,110,97, + 109,101,46,122,18,78,111,32,109,111,100,117,108,101,32,110, + 97,109,101,100,32,37,115,218,8,95,95,109,97,105,110,95, + 95,122,9,46,95,95,109,97,105,110,95,95,122,37,67,97, + 110,110,111,116,32,117,115,101,32,112,97,99,107,97,103,101, + 32,97,115,32,95,95,109,97,105,110,95,95,32,109,111,100, + 117,108,101,122,2,59,32,122,45,32,105,115,32,97,32,112, + 97,99,107,97,103,101,32,97,110,100,32,99,97,110,110,111, + 116,32,98,101,32,100,105,114,101,99,116,108,121,32,101,120, + 101,99,117,116,101,100,122,48,37,114,32,105,115,32,97,32, + 110,97,109,101,115,112,97,99,101,32,112,97,99,107,97,103, + 101,32,97,110,100,32,99,97,110,110,111,116,32,98,101,32, + 101,120,101,99,117,116,101,100,122,31,78,111,32,99,111,100, + 101,32,111,98,106,101,99,116,32,97,118,97,105,108,97,98, + 108,101,32,102,111,114,32,37,115,41,26,218,10,115,116,97, + 114,116,115,119,105,116,104,218,10,114,112,97,114,116,105,116, + 105,111,110,218,10,95,95,105,109,112,111,114,116,95,95,218, + 11,73,109,112,111,114,116,69,114,114,111,114,218,4,110,97, + 109,101,114,22,0,0,0,114,23,0,0,0,218,3,103,101, + 116,218,7,104,97,115,97,116,116,114,218,8,119,97,114,110, + 105,110,103,115,114,84,0,0,0,218,6,102,111,114,109,97, + 116,218,14,82,117,110,116,105,109,101,87,97,114,110,105,110, + 103,218,9,105,109,112,111,114,116,108,105,98,218,4,117,116, + 105,108,218,9,102,105,110,100,95,115,112,101,99,218,14,65, + 116,116,114,105,98,117,116,101,69,114,114,111,114,218,9,84, + 121,112,101,69,114,114,111,114,218,10,86,97,108,117,101,69, + 114,114,111,114,218,8,101,110,100,115,119,105,116,104,218,4, + 116,121,112,101,114,33,0,0,0,218,26,115,117,98,109,111, + 100,117,108,101,95,115,101,97,114,99,104,95,108,111,99,97, + 116,105,111,110,115,218,19,95,103,101,116,95,109,111,100,117, + 108,101,95,100,101,116,97,105,108,115,114,62,0,0,0,218, + 8,103,101,116,95,99,111,100,101,41,13,114,10,0,0,0, + 218,5,101,114,114,111,114,114,71,0,0,0,218,1,95,218, + 1,101,218,8,101,120,105,115,116,105,110,103,114,84,0,0, + 0,218,3,109,115,103,218,4,115,112,101,99,218,2,101,120, + 218,13,112,107,103,95,109,97,105,110,95,110,97,109,101,114, + 62,0,0,0,114,67,0,0,0,115,13,0,0,0,32,32, + 32,32,32,32,32,32,32,32,32,32,32,114,16,0,0,0, + 114,106,0,0,0,114,106,0,0,0,105,0,0,0,115,152, + 2,0,0,128,0,216,7,15,215,7,26,209,7,26,152,51, + 215,7,31,209,7,31,217,14,19,208,20,57,211,14,58,208, + 8,58,216,21,29,215,21,40,209,21,40,168,19,211,21,45, + 129,78,128,72,136,97,144,17,222,7,15,240,4,8,9,22, + 220,12,22,144,120,212,12,32,244,18,0,20,23,151,59,145, + 59,151,63,145,63,160,56,211,19,44,136,8,216,11,19,209, + 11,31,172,7,176,8,184,42,215,40,69,209,40,69,221,12, + 37,240,2,3,19,28,247,6,0,29,35,153,70,168,72,152, + 70,208,28,72,240,7,0,13,16,241,8,0,13,17,148,30, + 160,3,211,17,36,212,12,37,240,4,10,5,73,1,220,15, + 24,143,126,137,126,215,15,39,209,15,39,168,8,211,15,49, + 136,4,240,20,0,8,12,129,124,217,14,19,208,20,40,168, + 56,209,20,51,211,14,52,208,8,52,216,7,11,215,7,38, + 209,7,38,209,7,50,216,11,19,144,122,211,11,33,160,88, + 215,37,54,209,37,54,176,123,215,37,67,209,37,67,217,18, + 23,208,24,63,211,18,64,208,12,64,240,2,7,9,71,1, + 216,28,36,160,123,209,28,50,136,77,220,19,38,160,125,211, + 19,60,208,12,60,240,12,0,14,18,143,91,137,91,128,70, + 216,7,13,129,126,217,14,19,208,20,70,216,67,75,241,3, + 1,21,76,1,243,0,1,15,77,1,240,0,1,9,77,1, + 240,4,3,5,38,216,15,21,143,127,137,127,152,120,211,15, + 40,136,4,240,6,0,8,12,129,124,217,14,19,208,20,53, + 184,8,209,20,64,211,14,65,208,8,65,216,11,19,152,52, + 208,11,31,208,4,31,248,244,103,1,0,16,27,243,0,6, + 9,22,240,8,0,16,17,143,118,137,118,137,126,160,33,167, + 38,161,38,168,72,211,34,52,216,24,32,215,24,43,209,24, + 43,168,65,175,70,169,70,176,83,169,76,215,24,57,209,24, + 57,216,16,21,255,249,240,13,6,9,22,251,244,38,0,13, + 24,156,30,172,25,180,74,208,11,63,243,0,8,5,73,1, + 240,8,0,15,75,1,136,3,216,11,19,215,11,28,209,11, + 28,152,85,215,11,35,209,11,35,216,12,15,144,109,160,72, + 168,83,168,98,160,77,160,63,240,0,1,51,24,216,24,32, + 144,122,208,33,54,240,3,1,21,56,241,0,1,13,57,136, + 67,225,14,19,144,67,151,74,145,74,152,120,172,20,168,98, + 171,24,215,41,58,209,41,58,184,66,211,20,63,211,14,64, + 192,98,208,8,72,251,240,17,8,5,73,1,251,240,34,0, + 16,21,243,0,4,9,71,1,216,15,23,156,115,159,123,153, + 123,211,15,42,216,16,21,217,18,23,219,57,58,187,72,240, + 3,1,25,70,1,243,0,1,19,71,1,240,0,1,13,71, + 1,251,240,7,4,9,71,1,251,244,22,0,12,23,243,0, + 1,5,38,217,14,19,148,70,152,49,147,73,211,14,30,160, + 65,208,8,37,251,240,3,1,5,38,250,115,97,0,0,0, + 188,11,69,14,0,194,33,31,70,39,0,196,0,15,72,29, + 0,196,43,17,73,16,0,197,14,10,70,36,3,197,24,65, + 1,70,31,3,198,31,5,70,36,3,198,39,26,72,26,3, + 199,1,65,20,72,21,3,200,21,5,72,26,3,200,29,6, + 73,13,3,200,35,37,73,8,3,201,8,5,73,13,3,201, + 16,10,73,49,3,201,26,18,73,44,3,201,44,5,73,49, + 3,99,0,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,0,0,0,0,243,24,0,0,0,149,0,92,0,114, + 1,83,0,114,2,83,1,114,3,83,2,114,4,83,3,114, + 5,103,4,41,5,218,6,95,69,114,114,111,114,233,166,0, + 0,0,122,66,69,114,114,111,114,32,116,104,97,116,32,95, + 114,117,110,95,109,111,100,117,108,101,95,97,115,95,109,97, + 105,110,40,41,32,115,104,111,117,108,100,32,114,101,112,111, + 114,116,32,119,105,116,104,111,117,116,32,97,32,116,114,97, + 99,101,98,97,99,107,114,39,0,0,0,78,41,6,114,33, + 0,0,0,114,34,0,0,0,114,35,0,0,0,114,36,0, + 0,0,114,37,0,0,0,114,38,0,0,0,114,39,0,0, + 0,114,19,0,0,0,114,16,0,0,0,114,117,0,0,0, + 114,117,0,0,0,166,0,0,0,115,5,0,0,0,134,0, + 220,4,76,114,19,0,0,0,114,117,0,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,7,0,0,0,3,0, + 0,0,243,148,1,0,0,149,0,30,0,85,1,40,0,0, + 0,0,0,0,0,100,6,0,0,85,0,83,1,58,119,0, + 0,97,20,0,0,91,1,0,0,0,0,0,0,0,0,85, + 0,91,2,0,0,0,0,0,0,0,0,53,2,0,0,0, + 0,0,0,117,3,0,0,112,2,110,3,79,19,91,5,0, + 0,0,0,0,0,0,0,91,2,0,0,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,117,3,0,0,112,2,110, + 3,30,0,91,6,0,0,0,0,0,0,0,0,82,12,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,129,45,124,4,106,8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,2,107,55,0,0, - 114,31,124,2,106,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,4,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, - 122,0,0,0,171,1,0,0,0,0,0,0,115,1,130,0, - 89,0,100,0,125,4,126,4,144,1,140,70,100,0,125,4, - 126,4,119,1,119,0,120,3,89,0,119,1,35,0,116,6, - 0,0,0,0,0,0,0,0,116,32,0,0,0,0,0,0, - 0,0,116,34,0,0,0,0,0,0,0,0,116,36,0,0, - 0,0,0,0,0,0,102,4,36,0,114,84,125,9,100,8, - 125,7,124,0,106,39,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,9,171,1,0,0,0,0, - 0,0,114,15,124,7,100,10,124,0,100,0,100,11,26,0, - 155,0,100,12,124,0,155,0,100,13,157,5,122,13,0,0, - 125,7,2,0,124,1,124,7,106,23,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,116,41, - 0,0,0,0,0,0,0,0,124,9,171,1,0,0,0,0, - 0,0,106,42,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,9,171,3,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,124,9,130,2,100,0,125,9, - 126,9,119,1,119,0,120,3,89,0,119,1,35,0,124,1, - 36,0,114,38,125,4,124,0,116,10,0,0,0,0,0,0, - 0,0,106,12,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,118,1,114,1,130,0,2,0,124,1, - 124,4,155,1,100,18,124,0,155,2,100,19,157,4,171,1, - 0,0,0,0,0,0,130,1,100,0,125,4,126,4,119,1, - 119,0,120,3,89,0,119,1,35,0,116,6,0,0,0,0, - 0,0,0,0,36,0,114,23,125,4,2,0,124,1,116,23, - 0,0,0,0,0,0,0,0,124,4,171,1,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,124,4,130,2,100,0, - 125,4,126,4,119,1,119,0,120,3,89,0,119,1,41,22, - 78,218,1,46,122,35,82,101,108,97,116,105,118,101,32,109, - 111,100,117,108,101,32,110,97,109,101,115,32,110,111,116,32, - 115,117,112,112,111,114,116,101,100,218,8,95,95,112,97,116, - 104,95,95,114,2,0,0,0,41,1,218,4,119,97,114,110, - 122,154,123,109,111,100,95,110,97,109,101,33,114,125,32,102, - 111,117,110,100,32,105,110,32,115,121,115,46,109,111,100,117, - 108,101,115,32,97,102,116,101,114,32,105,109,112,111,114,116, - 32,111,102,32,112,97,99,107,97,103,101,32,123,112,107,103, - 95,110,97,109,101,33,114,125,44,32,98,117,116,32,112,114, - 105,111,114,32,116,111,32,101,120,101,99,117,116,105,111,110, - 32,111,102,32,123,109,111,100,95,110,97,109,101,33,114,125, - 59,32,116,104,105,115,32,109,97,121,32,114,101,115,117,108, - 116,32,105,110,32,117,110,112,114,101,100,105,99,116,97,98, - 108,101,32,98,101,104,97,118,105,111,117,114,41,2,114,9, - 0,0,0,114,61,0,0,0,122,58,69,114,114,111,114,32, - 119,104,105,108,101,32,102,105,110,100,105,110,103,32,109,111, - 100,117,108,101,32,115,112,101,99,105,102,105,99,97,116,105, - 111,110,32,102,111,114,32,123,33,114,125,32,40,123,125,58, - 32,123,125,41,122,3,46,112,121,122,13,46,32,84,114,121, - 32,117,115,105,110,103,32,39,233,253,255,255,255,122,14,39, - 32,105,110,115,116,101,97,100,32,111,102,32,39,122,21,39, - 32,97,115,32,116,104,101,32,109,111,100,117,108,101,32,110, - 97,109,101,46,122,18,78,111,32,109,111,100,117,108,101,32, - 110,97,109,101,100,32,37,115,218,8,95,95,109,97,105,110, - 95,95,122,9,46,95,95,109,97,105,110,95,95,122,37,67, - 97,110,110,111,116,32,117,115,101,32,112,97,99,107,97,103, - 101,32,97,115,32,95,95,109,97,105,110,95,95,32,109,111, - 100,117,108,101,122,2,59,32,122,45,32,105,115,32,97,32, - 112,97,99,107,97,103,101,32,97,110,100,32,99,97,110,110, - 111,116,32,98,101,32,100,105,114,101,99,116,108,121,32,101, - 120,101,99,117,116,101,100,122,48,37,114,32,105,115,32,97, - 32,110,97,109,101,115,112,97,99,101,32,112,97,99,107,97, - 103,101,32,97,110,100,32,99,97,110,110,111,116,32,98,101, - 32,101,120,101,99,117,116,101,100,122,31,78,111,32,99,111, - 100,101,32,111,98,106,101,99,116,32,97,118,97,105,108,97, - 98,108,101,32,102,111,114,32,37,115,41,26,218,10,115,116, - 97,114,116,115,119,105,116,104,218,10,114,112,97,114,116,105, - 116,105,111,110,218,10,95,95,105,109,112,111,114,116,95,95, - 218,11,73,109,112,111,114,116,69,114,114,111,114,218,4,110, - 97,109,101,114,20,0,0,0,114,21,0,0,0,218,3,103, - 101,116,218,7,104,97,115,97,116,116,114,218,8,119,97,114, - 110,105,110,103,115,114,74,0,0,0,218,6,102,111,114,109, - 97,116,218,14,82,117,110,116,105,109,101,87,97,114,110,105, - 110,103,218,9,105,109,112,111,114,116,108,105,98,218,4,117, - 116,105,108,218,9,102,105,110,100,95,115,112,101,99,218,14, - 65,116,116,114,105,98,117,116,101,69,114,114,111,114,218,9, - 84,121,112,101,69,114,114,111,114,218,10,86,97,108,117,101, - 69,114,114,111,114,218,8,101,110,100,115,119,105,116,104,218, - 4,116,121,112,101,114,29,0,0,0,218,26,115,117,98,109, - 111,100,117,108,101,95,115,101,97,114,99,104,95,108,111,99, - 97,116,105,111,110,115,218,19,95,103,101,116,95,109,111,100, - 117,108,101,95,100,101,116,97,105,108,115,114,52,0,0,0, - 218,8,103,101,116,95,99,111,100,101,41,13,114,9,0,0, - 0,218,5,101,114,114,111,114,114,61,0,0,0,218,1,95, - 218,1,101,218,8,101,120,105,115,116,105,110,103,114,74,0, - 0,0,218,3,109,115,103,218,4,115,112,101,99,218,2,101, - 120,218,13,112,107,103,95,109,97,105,110,95,110,97,109,101, - 114,52,0,0,0,114,57,0,0,0,115,13,0,0,0,32, - 32,32,32,32,32,32,32,32,32,32,32,32,114,15,0,0, - 0,114,96,0,0,0,114,96,0,0,0,105,0,0,0,115, - 143,2,0,0,128,0,216,7,15,215,7,26,209,7,26,152, - 51,212,7,31,217,14,19,208,20,57,211,14,58,208,8,58, - 216,21,29,215,21,40,209,21,40,168,19,211,21,45,129,78, - 128,72,136,97,144,17,217,7,15,240,4,8,9,22,220,12, - 22,144,120,212,12,32,244,18,0,20,23,151,59,145,59,151, - 63,145,63,160,56,211,19,44,136,8,216,11,19,208,11,31, - 172,7,176,8,184,42,212,40,69,221,12,37,240,2,3,19, - 28,247,6,0,29,35,153,70,168,72,184,120,152,70,211,28, - 72,240,7,0,13,16,241,8,0,13,17,148,30,160,3,211, - 17,36,212,12,37,240,4,10,5,73,1,220,15,24,143,126, - 137,126,215,15,39,209,15,39,168,8,211,15,49,136,4,240, - 20,0,8,12,128,124,217,14,19,208,20,40,168,56,209,20, - 51,211,14,52,208,8,52,216,7,11,215,7,38,209,7,38, - 208,7,50,216,11,19,144,122,210,11,33,160,88,215,37,54, - 209,37,54,176,123,212,37,67,217,18,23,208,24,63,211,18, - 64,208,12,64,240,2,7,9,71,1,216,28,36,160,123,209, - 28,50,136,77,220,19,38,160,125,176,101,211,19,60,208,12, - 60,240,12,0,14,18,143,91,137,91,128,70,216,7,13,128, - 126,217,14,19,208,20,70,216,67,75,241,3,1,21,76,1, - 243,0,1,15,77,1,240,0,1,9,77,1,240,4,3,5, - 38,216,15,21,143,127,137,127,152,120,211,15,40,136,4,240, - 6,0,8,12,128,124,217,14,19,208,20,53,184,8,209,20, - 64,211,14,65,208,8,65,216,11,19,144,84,152,52,208,11, - 31,208,4,31,248,244,103,1,0,16,27,242,0,6,9,22, - 240,8,0,16,17,143,118,137,118,136,126,160,33,167,38,161, - 38,168,72,210,34,52,216,24,32,215,24,43,209,24,43,168, - 65,175,70,169,70,176,83,169,76,212,24,57,216,16,21,255, - 249,240,13,6,9,22,251,244,38,0,13,24,156,30,172,25, - 180,74,208,11,63,242,0,8,5,73,1,240,8,0,15,75, - 1,136,3,216,11,19,215,11,28,209,11,28,152,85,212,11, - 35,216,12,15,144,109,160,72,168,83,168,98,160,77,160,63, - 240,0,1,51,24,216,24,32,144,122,208,33,54,240,3,1, - 21,56,241,0,1,13,57,136,67,225,14,19,144,67,151,74, - 145,74,152,120,172,20,168,98,171,24,215,41,58,209,41,58, - 184,66,211,20,63,211,14,64,192,98,208,8,72,251,240,17, - 8,5,73,1,251,240,34,0,16,21,242,0,4,9,71,1, - 216,15,23,156,115,159,123,153,123,209,15,42,216,16,21,217, - 18,23,218,57,58,186,72,240,3,1,25,70,1,243,0,1, - 19,71,1,240,0,1,13,71,1,251,240,7,4,9,71,1, - 251,244,22,0,12,23,242,0,1,5,38,217,14,19,148,70, - 152,49,147,73,211,14,30,160,65,208,8,37,251,240,3,1, - 5,38,250,115,96,0,0,0,178,11,68,58,0,194,21,31, - 70,11,0,195,44,16,71,59,0,196,23,17,72,41,0,196, - 58,9,70,8,3,197,3,58,70,3,3,198,3,5,70,8, - 3,198,11,25,71,56,3,198,36,65,15,71,51,3,199,51, - 5,71,56,3,199,59,5,72,38,3,200,0,33,72,33,3, - 200,33,5,72,38,3,200,41,9,73,9,3,200,50,18,73, - 4,3,201,4,5,73,9,3,99,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,243,16,0, - 0,0,151,0,101,0,90,1,100,0,90,2,100,1,90,3, - 121,2,41,3,218,6,95,69,114,114,111,114,122,66,69,114, - 114,111,114,32,116,104,97,116,32,95,114,117,110,95,109,111, - 100,117,108,101,95,97,115,95,109,97,105,110,40,41,32,115, - 104,111,117,108,100,32,114,101,112,111,114,116,32,119,105,116, - 104,111,117,116,32,97,32,116,114,97,99,101,98,97,99,107, - 78,41,4,114,29,0,0,0,114,30,0,0,0,114,31,0, - 0,0,114,32,0,0,0,114,33,0,0,0,114,17,0,0, - 0,114,15,0,0,0,114,107,0,0,0,114,107,0,0,0, - 166,0,0,0,115,5,0,0,0,132,0,218,4,76,114,17, - 0,0,0,114,107,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,7,0,0,0,3,0,0,0,243,120,1, - 0,0,151,0,9,0,124,1,115,5,124,0,100,1,107,55, - 0,0,114,21,116,1,0,0,0,0,0,0,0,0,124,0, - 116,2,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,92,3,0,0,125,0,125,2,125,3,110,19,116,5, - 0,0,0,0,0,0,0,0,116,2,0,0,0,0,0,0, - 0,0,171,1,0,0,0,0,0,0,92,3,0,0,125,0, - 125,2,125,3,116,6,0,0,0,0,0,0,0,0,106,12, + 0,83,1,5,0,0,0,82,14,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,110,6,85,1,40, + 0,0,0,0,0,0,0,97,29,0,0,87,2,82,16,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,1,25,0,0,0,106,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,125,6,124,1, - 114,29,127,2,106,16,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,6,0,0,0,0,0,0, - 0,0,106,18,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,4,60,0,0,0,116,21,0,0, - 0,0,0,0,0,0,127,3,124,6,100,3,100,1,127,2, - 171,5,0,0,0,0,0,0,83,0,35,0,116,2,0,0, - 0,0,0,0,0,0,36,0,114,52,125,4,116,6,0,0, - 0,0,0,0,0,0,106,8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,155,1,100,2,124,4, - 155,1,157,3,125,5,116,7,0,0,0,0,0,0,0,0, - 106,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,5,171,1,0,0,0,0,0,0,1,0, - 89,0,100,3,125,4,126,4,140,131,100,3,125,4,126,4, - 119,1,119,0,120,3,89,0,119,1,41,5,97,197,1,0, - 0,82,117,110,115,32,116,104,101,32,100,101,115,105,103,110, - 97,116,101,100,32,109,111,100,117,108,101,32,105,110,32,116, - 104,101,32,95,95,109,97,105,110,95,95,32,110,97,109,101, - 115,112,97,99,101,10,10,32,32,32,32,32,32,32,78,111, - 116,101,32,116,104,97,116,32,116,104,101,32,101,120,101,99, - 117,116,101,100,32,109,111,100,117,108,101,32,119,105,108,108, - 32,104,97,118,101,32,102,117,108,108,32,97,99,99,101,115, - 115,32,116,111,32,116,104,101,10,32,32,32,32,32,32,32, - 95,95,109,97,105,110,95,95,32,110,97,109,101,115,112,97, - 99,101,46,32,73,102,32,116,104,105,115,32,105,115,32,110, - 111,116,32,100,101,115,105,114,97,98,108,101,44,32,116,104, - 101,32,114,117,110,95,109,111,100,117,108,101,40,41,10,32, - 32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,115, - 104,111,117,108,100,32,98,101,32,117,115,101,100,32,116,111, - 32,114,117,110,32,116,104,101,32,109,111,100,117,108,101,32, - 99,111,100,101,32,105,110,32,97,32,102,114,101,115,104,32, - 110,97,109,101,115,112,97,99,101,46,10,10,32,32,32,32, - 32,32,32,65,116,32,116,104,101,32,118,101,114,121,32,108, - 101,97,115,116,44,32,116,104,101,115,101,32,118,97,114,105, - 97,98,108,101,115,32,105,110,32,95,95,109,97,105,110,95, - 95,32,119,105,108,108,32,98,101,32,111,118,101,114,119,114, - 105,116,116,101,110,58,10,32,32,32,32,32,32,32,32,32, - 32,32,95,95,110,97,109,101,95,95,10,32,32,32,32,32, - 32,32,32,32,32,32,95,95,102,105,108,101,95,95,10,32, - 32,32,32,32,32,32,32,32,32,32,95,95,99,97,99,104, - 101,100,95,95,10,32,32,32,32,32,32,32,32,32,32,32, - 95,95,108,111,97,100,101,114,95,95,10,32,32,32,32,32, - 32,32,32,32,32,32,95,95,112,97,99,107,97,103,101,95, - 95,10,32,32,32,32,114,76,0,0,0,122,2,58,32,78, - 114,2,0,0,0,41,11,114,96,0,0,0,114,107,0,0, - 0,218,24,95,103,101,116,95,109,97,105,110,95,109,111,100, - 117,108,101,95,100,101,116,97,105,108,115,114,20,0,0,0, - 218,10,101,120,101,99,117,116,97,98,108,101,218,4,101,120, - 105,116,114,21,0,0,0,114,66,0,0,0,114,53,0,0, - 0,114,43,0,0,0,114,64,0,0,0,41,7,114,9,0, - 0,0,218,10,97,108,116,101,114,95,97,114,103,118,114,60, - 0,0,0,114,57,0,0,0,218,3,101,120,99,114,102,0, - 0,0,218,12,109,97,105,110,95,103,108,111,98,97,108,115, - 115,7,0,0,0,32,32,32,32,32,32,32,114,15,0,0, - 0,218,19,95,114,117,110,95,109,111,100,117,108,101,95,97, - 115,95,109,97,105,110,114,115,0,0,0,173,0,0,0,115, - 164,0,0,0,128,0,240,28,7,5,22,217,11,21,152,24, - 160,90,210,25,47,220,39,58,184,56,196,86,211,39,76,209, - 12,36,136,72,144,104,161,4,228,39,63,196,6,211,39,71, - 209,12,36,136,72,144,104,160,4,244,8,0,20,23,151,59, - 145,59,152,122,209,19,42,215,19,51,209,19,51,128,76,217, - 7,17,216,22,30,151,111,145,111,140,3,143,8,137,8,144, - 17,137,11,220,11,20,144,84,152,60,168,20,216,21,31,160, - 24,243,3,1,12,43,240,0,1,5,43,248,244,13,0,12, - 18,242,0,2,5,22,220,26,29,159,46,155,46,169,35,208, - 14,46,136,3,220,8,11,143,8,137,8,144,19,143,13,137, - 13,251,240,5,2,5,22,250,115,23,0,0,0,130,47,65, - 60,0,193,60,9,66,57,3,194,5,42,66,52,3,194,52, - 5,66,57,3,99,4,0,0,0,0,0,0,0,0,0,0, - 0,7,0,0,0,3,0,0,0,243,102,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,92,3,0,0,125,0,125,4,125,5,124,2, - 128,2,124,0,125,2,124,3,114,14,116,3,0,0,0,0, - 0,0,0,0,124,5,124,1,124,2,124,4,171,4,0,0, - 0,0,0,0,83,0,116,5,0,0,0,0,0,0,0,0, - 124,5,105,0,124,1,124,2,124,4,171,5,0,0,0,0, - 0,0,83,0,41,1,117,34,3,0,0,69,120,101,99,117, - 116,101,32,97,32,109,111,100,117,108,101,39,115,32,99,111, - 100,101,32,119,105,116,104,111,117,116,32,105,109,112,111,114, - 116,105,110,103,32,105,116,46,10,10,32,32,32,32,32,32, - 32,109,111,100,95,110,97,109,101,32,45,45,32,97,110,32, - 97,98,115,111,108,117,116,101,32,109,111,100,117,108,101,32, - 110,97,109,101,32,111,114,32,112,97,99,107,97,103,101,32, - 110,97,109,101,46,10,10,32,32,32,32,32,32,32,79,112, - 116,105,111,110,97,108,32,97,114,103,117,109,101,110,116,115, - 58,10,32,32,32,32,32,32,32,105,110,105,116,95,103,108, - 111,98,97,108,115,32,45,45,32,100,105,99,116,105,111,110, - 97,114,121,32,117,115,101,100,32,116,111,32,112,114,101,45, - 112,111,112,117,108,97,116,101,32,116,104,101,32,109,111,100, - 117,108,101,226,128,153,115,10,32,32,32,32,32,32,32,103, - 108,111,98,97,108,115,32,100,105,99,116,105,111,110,97,114, - 121,32,98,101,102,111,114,101,32,116,104,101,32,99,111,100, - 101,32,105,115,32,101,120,101,99,117,116,101,100,46,10,10, - 32,32,32,32,32,32,32,114,117,110,95,110,97,109,101,32, + 0,91,6,0,0,0,0,0,0,0,0,82,18,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, + 4,39,0,0,0,91,21,0,0,0,0,0,0,0,0,87, + 3,85,6,83,3,83,1,87,2,53,5,0,0,0,0,0, + 0,36,0,33,0,91,2,0,0,0,0,0,0,0,0,7, + 0,97,55,0,0,110,4,91,6,0,0,0,0,0,0,0, + 0,82,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,60,1,14,0,83,2,85,4,60,1,14, + 0,51,3,110,5,91,6,0,0,0,0,0,0,0,0,82, + 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,85,5,53,1,0,0,0,0,0,0,32, + 0,31,0,83,3,110,4,65,4,78,140,83,3,110,4,65, + 4,102,1,102,0,61,3,31,0,102,1,41,5,97,130,1, + 0,0,82,117,110,115,32,116,104,101,32,100,101,115,105,103, + 110,97,116,101,100,32,109,111,100,117,108,101,32,105,110,32, + 116,104,101,32,95,95,109,97,105,110,95,95,32,110,97,109, + 101,115,112,97,99,101,10,10,78,111,116,101,32,116,104,97, + 116,32,116,104,101,32,101,120,101,99,117,116,101,100,32,109, + 111,100,117,108,101,32,119,105,108,108,32,104,97,118,101,32, + 102,117,108,108,32,97,99,99,101,115,115,32,116,111,32,116, + 104,101,10,95,95,109,97,105,110,95,95,32,110,97,109,101, + 115,112,97,99,101,46,32,73,102,32,116,104,105,115,32,105, + 115,32,110,111,116,32,100,101,115,105,114,97,98,108,101,44, + 32,116,104,101,32,114,117,110,95,109,111,100,117,108,101,40, + 41,10,102,117,110,99,116,105,111,110,32,115,104,111,117,108, + 100,32,98,101,32,117,115,101,100,32,116,111,32,114,117,110, + 32,116,104,101,32,109,111,100,117,108,101,32,99,111,100,101, + 32,105,110,32,97,32,102,114,101,115,104,32,110,97,109,101, + 115,112,97,99,101,46,10,10,65,116,32,116,104,101,32,118, + 101,114,121,32,108,101,97,115,116,44,32,116,104,101,115,101, + 32,118,97,114,105,97,98,108,101,115,32,105,110,32,95,95, + 109,97,105,110,95,95,32,119,105,108,108,32,98,101,32,111, + 118,101,114,119,114,105,116,116,101,110,58,10,32,32,32,32, + 95,95,110,97,109,101,95,95,10,32,32,32,32,95,95,102, + 105,108,101,95,95,10,32,32,32,32,95,95,99,97,99,104, + 101,100,95,95,10,32,32,32,32,95,95,108,111,97,100,101, + 114,95,95,10,32,32,32,32,95,95,112,97,99,107,97,103, + 101,95,95,10,114,86,0,0,0,122,2,58,32,78,114,2, + 0,0,0,41,11,114,106,0,0,0,114,117,0,0,0,218, + 24,95,103,101,116,95,109,97,105,110,95,109,111,100,117,108, + 101,95,100,101,116,97,105,108,115,114,22,0,0,0,218,10, + 101,120,101,99,117,116,97,98,108,101,218,4,101,120,105,116, + 114,23,0,0,0,114,76,0,0,0,114,63,0,0,0,114, + 51,0,0,0,114,74,0,0,0,41,7,114,10,0,0,0, + 218,10,97,108,116,101,114,95,97,114,103,118,114,70,0,0, + 0,114,67,0,0,0,218,3,101,120,99,114,112,0,0,0, + 218,12,109,97,105,110,95,103,108,111,98,97,108,115,115,7, + 0,0,0,32,32,32,32,32,32,32,114,16,0,0,0,218, + 19,95,114,117,110,95,109,111,100,117,108,101,95,97,115,95, + 109,97,105,110,114,126,0,0,0,173,0,0,0,115,160,0, + 0,0,128,0,240,28,7,5,22,222,11,21,152,24,160,90, + 211,25,47,220,39,58,184,56,196,86,211,39,76,209,12,36, + 136,72,161,4,228,39,63,196,6,211,39,71,209,12,36,136, + 72,161,4,244,8,0,20,23,151,59,145,59,152,122,209,19, + 42,215,19,51,209,19,51,128,76,222,7,17,216,22,30,151, + 111,145,111,140,3,143,8,137,8,144,17,137,11,220,11,20, + 144,84,152,60,168,20,216,21,31,160,24,243,3,1,12,43, + 240,0,1,5,43,248,244,13,0,12,18,243,0,2,5,22, + 220,26,29,159,46,156,46,170,35,208,14,46,136,3,220,8, + 11,143,8,138,8,144,19,143,13,137,13,251,240,5,2,5, + 22,250,115,28,0,0,0,130,32,66,6,0,163,18,66,6, + 0,194,6,10,67,7,3,194,16,45,67,2,3,195,2,5, + 67,7,3,99,4,0,0,0,0,0,0,0,0,0,0,0, + 7,0,0,0,3,0,0,0,243,106,0,0,0,149,0,91, + 1,0,0,0,0,0,0,0,0,85,0,53,1,0,0,0, + 0,0,0,117,3,0,0,112,4,110,5,85,2,99,2,0, + 0,85,0,110,2,85,3,40,0,0,0,0,0,0,0,97, + 12,0,0,91,3,0,0,0,0,0,0,0,0,88,81,88, + 36,53,4,0,0,0,0,0,0,36,0,91,5,0,0,0, + 0,0,0,0,0,85,5,48,0,88,18,85,4,53,5,0, + 0,0,0,0,0,36,0,41,1,117,202,2,0,0,69,120, + 101,99,117,116,101,32,97,32,109,111,100,117,108,101,39,115, + 32,99,111,100,101,32,119,105,116,104,111,117,116,32,105,109, + 112,111,114,116,105,110,103,32,105,116,46,10,10,109,111,100, + 95,110,97,109,101,32,45,45,32,97,110,32,97,98,115,111, + 108,117,116,101,32,109,111,100,117,108,101,32,110,97,109,101, + 32,111,114,32,112,97,99,107,97,103,101,32,110,97,109,101, + 46,10,10,79,112,116,105,111,110,97,108,32,97,114,103,117, + 109,101,110,116,115,58,10,105,110,105,116,95,103,108,111,98, + 97,108,115,32,45,45,32,100,105,99,116,105,111,110,97,114, + 121,32,117,115,101,100,32,116,111,32,112,114,101,45,112,111, + 112,117,108,97,116,101,32,116,104,101,32,109,111,100,117,108, + 101,226,128,153,115,10,103,108,111,98,97,108,115,32,100,105, + 99,116,105,111,110,97,114,121,32,98,101,102,111,114,101,32, + 116,104,101,32,99,111,100,101,32,105,115,32,101,120,101,99, + 117,116,101,100,46,10,10,114,117,110,95,110,97,109,101,32, 45,45,32,105,102,32,110,111,116,32,78,111,110,101,44,32, 116,104,105,115,32,119,105,108,108,32,98,101,32,117,115,101, 100,32,102,111,114,32,115,101,116,116,105,110,103,32,95,95, - 110,97,109,101,95,95,59,10,32,32,32,32,32,32,32,111, - 116,104,101,114,119,105,115,101,44,32,95,95,110,97,109,101, - 95,95,32,119,105,108,108,32,98,101,32,115,101,116,32,116, - 111,32,109,111,100,95,110,97,109,101,32,43,32,39,95,95, - 109,97,105,110,95,95,39,32,105,102,32,116,104,101,10,32, - 32,32,32,32,32,32,110,97,109,101,100,32,109,111,100,117, - 108,101,32,105,115,32,97,32,112,97,99,107,97,103,101,32, - 97,110,100,32,116,111,32,106,117,115,116,32,109,111,100,95, - 110,97,109,101,32,111,116,104,101,114,119,105,115,101,46,10, - 10,32,32,32,32,32,32,32,97,108,116,101,114,95,115,121, - 115,32,45,45,32,105,102,32,84,114,117,101,44,32,115,121, - 115,46,97,114,103,118,91,48,93,32,105,115,32,117,112,100, - 97,116,101,100,32,119,105,116,104,32,116,104,101,32,118,97, - 108,117,101,32,111,102,10,32,32,32,32,32,32,32,95,95, - 102,105,108,101,95,95,32,97,110,100,32,115,121,115,46,109, - 111,100,117,108,101,115,91,95,95,110,97,109,101,95,95,93, - 32,105,115,32,117,112,100,97,116,101,100,32,119,105,116,104, - 32,97,32,116,101,109,112,111,114,97,114,121,10,32,32,32, - 32,32,32,32,109,111,100,117,108,101,32,111,98,106,101,99, - 116,32,102,111,114,32,116,104,101,32,109,111,100,117,108,101, - 32,98,101,105,110,103,32,101,120,101,99,117,116,101,100,46, - 32,66,111,116,104,32,97,114,101,10,32,32,32,32,32,32, - 32,114,101,115,116,111,114,101,100,32,116,111,32,116,104,101, - 105,114,32,111,114,105,103,105,110,97,108,32,118,97,108,117, - 101,115,32,98,101,102,111,114,101,32,116,104,101,32,102,117, - 110,99,116,105,111,110,32,114,101,116,117,114,110,115,46,10, - 10,32,32,32,32,32,32,32,82,101,116,117,114,110,115,32, - 116,104,101,32,114,101,115,117,108,116,105,110,103,32,109,111, - 100,117,108,101,32,103,108,111,98,97,108,115,32,100,105,99, - 116,105,111,110,97,114,121,46,10,32,32,32,32,41,3,114, - 96,0,0,0,114,70,0,0,0,114,64,0,0,0,41,6, - 114,9,0,0,0,114,59,0,0,0,218,8,114,117,110,95, - 110,97,109,101,218,9,97,108,116,101,114,95,115,121,115,114, - 60,0,0,0,114,57,0,0,0,115,6,0,0,0,32,32, - 32,32,32,32,114,15,0,0,0,114,3,0,0,0,114,3, - 0,0,0,201,0,0,0,115,73,0,0,0,128,0,244,42, - 0,32,51,176,56,211,31,60,209,4,28,128,72,136,104,152, - 4,216,7,15,208,7,23,216,19,27,136,8,217,7,16,220, - 15,31,160,4,160,108,176,72,184,104,211,15,71,208,8,71, - 244,6,0,16,25,152,20,152,114,160,60,176,24,184,56,211, - 15,68,208,8,68,114,17,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,243, - 58,1,0,0,151,0,100,1,125,1,116,0,0,0,0,0, - 0,0,0,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,25,0,0,0,125,2, - 116,0,0,0,0,0,0,0,0,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,1, - 61,0,9,0,116,5,0,0,0,0,0,0,0,0,124,1, - 171,1,0,0,0,0,0,0,124,2,116,0,0,0,0,0, - 0,0,0,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,60,0,0,0,83,0, - 35,0,116,6,0,0,0,0,0,0,0,0,36,0,114,51, - 125,3,124,1,116,9,0,0,0,0,0,0,0,0,124,3, - 171,1,0,0,0,0,0,0,118,0,114,32,2,0,124,0, - 100,2,124,1,155,2,100,3,116,0,0,0,0,0,0,0, - 0,0,106,10,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,4,25,0,0,0,155,2,157,4, - 171,1,0,0,0,0,0,0,124,3,130,2,130,0,100,0, - 125,3,126,3,119,1,119,0,120,3,89,0,119,1,35,0, - 124,2,116,0,0,0,0,0,0,0,0,0,106,2,0,0, + 110,97,109,101,95,95,59,10,111,116,104,101,114,119,105,115, + 101,44,32,95,95,110,97,109,101,95,95,32,119,105,108,108, + 32,98,101,32,115,101,116,32,116,111,32,109,111,100,95,110, + 97,109,101,32,43,32,39,95,95,109,97,105,110,95,95,39, + 32,105,102,32,116,104,101,10,110,97,109,101,100,32,109,111, + 100,117,108,101,32,105,115,32,97,32,112,97,99,107,97,103, + 101,32,97,110,100,32,116,111,32,106,117,115,116,32,109,111, + 100,95,110,97,109,101,32,111,116,104,101,114,119,105,115,101, + 46,10,10,97,108,116,101,114,95,115,121,115,32,45,45,32, + 105,102,32,84,114,117,101,44,32,115,121,115,46,97,114,103, + 118,91,48,93,32,105,115,32,117,112,100,97,116,101,100,32, + 119,105,116,104,32,116,104,101,32,118,97,108,117,101,32,111, + 102,10,95,95,102,105,108,101,95,95,32,97,110,100,32,115, + 121,115,46,109,111,100,117,108,101,115,91,95,95,110,97,109, + 101,95,95,93,32,105,115,32,117,112,100,97,116,101,100,32, + 119,105,116,104,32,97,32,116,101,109,112,111,114,97,114,121, + 10,109,111,100,117,108,101,32,111,98,106,101,99,116,32,102, + 111,114,32,116,104,101,32,109,111,100,117,108,101,32,98,101, + 105,110,103,32,101,120,101,99,117,116,101,100,46,32,66,111, + 116,104,32,97,114,101,10,114,101,115,116,111,114,101,100,32, + 116,111,32,116,104,101,105,114,32,111,114,105,103,105,110,97, + 108,32,118,97,108,117,101,115,32,98,101,102,111,114,101,32, + 116,104,101,32,102,117,110,99,116,105,111,110,32,114,101,116, + 117,114,110,115,46,10,10,82,101,116,117,114,110,115,32,116, + 104,101,32,114,101,115,117,108,116,105,110,103,32,109,111,100, + 117,108,101,32,103,108,111,98,97,108,115,32,100,105,99,116, + 105,111,110,97,114,121,46,10,41,3,114,106,0,0,0,114, + 80,0,0,0,114,74,0,0,0,41,6,114,10,0,0,0, + 114,69,0,0,0,218,8,114,117,110,95,110,97,109,101,218, + 9,97,108,116,101,114,95,115,121,115,114,70,0,0,0,114, + 67,0,0,0,115,6,0,0,0,32,32,32,32,32,32,114, + 16,0,0,0,114,3,0,0,0,114,3,0,0,0,201,0, + 0,0,115,65,0,0,0,128,0,244,42,0,32,51,176,56, + 211,31,60,209,4,28,128,72,152,4,216,7,15,209,7,23, + 216,19,27,136,8,222,7,16,220,15,31,160,4,176,72,211, + 15,71,208,8,71,244,6,0,16,25,152,20,152,114,160,60, + 184,56,211,15,68,208,8,68,114,19,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,8,0,0,0,3,0, + 0,0,243,68,1,0,0,149,0,83,1,110,1,91,0,0, + 0,0,0,0,0,0,0,82,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,1,5,0,0, + 0,110,2,91,0,0,0,0,0,0,0,0,0,82,2,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,1,9,0,30,0,91,5,0,0,0,0,0,0,0, + 0,85,1,53,1,0,0,0,0,0,0,85,2,91,0,0, + 0,0,0,0,0,0,0,82,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,1,39,0,0, + 0,36,0,33,0,91,6,0,0,0,0,0,0,0,0,7, + 0,97,55,0,0,110,3,85,1,91,9,0,0,0,0,0, + 0,0,0,85,3,53,1,0,0,0,0,0,0,59,0,0, + 0,97,34,0,0,85,0,34,0,83,2,85,1,60,2,14, + 0,83,3,91,0,0,0,0,0,0,0,0,0,82,10,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,60,0,0,0,119,0,120,3,89,0,119,1,41,5, - 78,114,76,0,0,0,122,11,99,97,110,39,116,32,102,105, - 110,100,32,122,11,32,109,111,100,117,108,101,32,105,110,32, - 114,2,0,0,0,41,6,114,20,0,0,0,114,21,0,0, - 0,114,96,0,0,0,114,80,0,0,0,218,3,115,116,114, - 218,4,112,97,116,104,41,4,114,98,0,0,0,218,9,109, - 97,105,110,95,110,97,109,101,218,10,115,97,118,101,100,95, - 109,97,105,110,114,113,0,0,0,115,4,0,0,0,32,32, - 32,32,114,15,0,0,0,114,109,0,0,0,114,109,0,0, - 0,231,0,0,0,115,149,0,0,0,128,0,240,10,0,17, - 27,128,73,220,17,20,151,27,145,27,152,89,209,17,39,128, - 74,220,8,11,143,11,137,11,144,73,208,8,30,240,2,8, - 5,44,220,15,34,160,57,211,15,45,240,14,0,34,44,140, - 3,143,11,137,11,144,73,210,8,30,248,244,13,0,12,23, - 242,0,4,5,14,216,11,20,156,3,152,67,155,8,209,11, - 32,218,18,23,218,31,40,172,35,175,40,169,40,176,49,170, - 43,240,3,1,25,55,243,0,1,19,56,216,61,64,240,3, - 1,13,65,1,224,8,13,251,240,9,4,5,14,251,240,12, - 0,34,44,140,3,143,11,137,11,144,73,210,8,30,250,115, - 35,0,0,0,168,10,65,6,0,193,6,9,66,2,3,193, - 15,46,65,61,3,193,61,5,66,2,3,194,2,3,66,5, - 0,194,5,21,66,26,3,99,1,0,0,0,0,0,0,0, - 0,0,0,0,6,0,0,0,3,0,0,0,243,72,1,0, - 0,151,0,100,1,100,2,108,0,109,1,125,1,1,0,116, - 4,0,0,0,0,0,0,0,0,106,6,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,9,0, + 0,83,4,5,0,0,0,60,2,14,0,51,4,53,1,0, + 0,0,0,0,0,85,3,101,2,101,0,83,0,110,3,65, + 3,102,1,102,0,61,3,31,0,102,1,33,0,85,2,91, + 0,0,0,0,0,0,0,0,0,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,39, + 0,0,0,102,0,61,3,31,0,102,1,41,5,78,114,86, + 0,0,0,122,11,99,97,110,39,116,32,102,105,110,100,32, + 122,11,32,109,111,100,117,108,101,32,105,110,32,114,2,0, + 0,0,41,6,114,22,0,0,0,114,23,0,0,0,114,106, + 0,0,0,114,90,0,0,0,218,3,115,116,114,218,4,112, + 97,116,104,41,4,114,108,0,0,0,218,9,109,97,105,110, + 95,110,97,109,101,218,10,115,97,118,101,100,95,109,97,105, + 110,114,124,0,0,0,115,4,0,0,0,32,32,32,32,114, + 16,0,0,0,114,120,0,0,0,114,120,0,0,0,231,0, + 0,0,115,149,0,0,0,128,0,240,10,0,17,27,128,73, + 220,17,20,151,27,145,27,152,89,209,17,39,128,74,220,8, + 11,143,11,137,11,144,73,208,8,30,240,2,8,5,44,220, + 15,34,160,57,211,15,45,240,14,0,34,44,140,3,143,11, + 137,11,144,73,210,8,30,248,244,13,0,12,23,243,0,4, + 5,14,216,11,20,156,3,152,67,155,8,211,11,32,218,18, + 23,219,31,40,172,35,175,40,169,40,176,49,171,43,240,3, + 1,25,55,243,0,1,19,56,216,61,64,240,3,1,13,65, + 1,224,8,13,251,240,9,4,5,14,251,240,12,0,34,44, + 140,3,143,11,137,11,144,73,210,8,30,250,115,35,0,0, + 0,168,10,65,6,0,193,6,10,66,7,3,193,16,50,66, + 2,3,194,2,5,66,7,3,194,7,3,66,10,0,194,10, + 21,66,31,3,99,1,0,0,0,0,0,0,0,0,0,0, + 0,6,0,0,0,3,0,0,0,243,98,1,0,0,149,0, + 83,1,83,2,75,0,74,1,110,1,32,0,91,4,0,0, + 0,0,0,0,0,0,82,6,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,82,9,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0, + 53,1,0,0,0,0,0,0,110,2,91,10,0,0,0,0, + 0,0,0,0,82,12,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,85,2,53,1,0,0, + 0,0,0,0,2,0,110,3,85,1,34,0,85,3,53,1, + 0,0,0,0,0,0,110,4,83,0,83,0,83,0,53,2, + 0,0,0,0,0,0,32,0,87,4,99,60,0,0,91,10, + 0,0,0,0,0,0,0,0,82,12,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,85,2, + 53,1,0,0,0,0,0,0,2,0,110,3,91,15,0,0, + 0,0,0,0,0,0,85,3,82,17,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,85,0,83,3,53,3,0,0,0,0,0,0, + 110,4,83,0,83,0,83,0,53,2,0,0,0,0,0,0, + 32,0,85,4,36,0,85,4,36,0,33,0,44,0,40,0, + 0,0,0,0,0,0,100,1,0,0,102,2,32,0,31,0, + 32,0,32,0,78,79,61,3,31,0,102,1,33,0,44,0, + 40,0,0,0,0,0,0,0,100,1,0,0,102,2,32,0, + 31,0,32,0,32,0,85,4,36,0,61,3,31,0,102,1, + 41,4,78,114,2,0,0,0,41,1,218,9,114,101,97,100, + 95,99,111,100,101,114,66,0,0,0,41,9,218,7,112,107, + 103,117,116,105,108,114,136,0,0,0,218,2,111,115,114,132, + 0,0,0,218,7,97,98,115,112,97,116,104,218,2,105,111, + 218,9,111,112,101,110,95,99,111,100,101,218,7,99,111,109, + 112,105,108,101,218,4,114,101,97,100,41,5,114,73,0,0, + 0,114,136,0,0,0,218,9,99,111,100,101,95,112,97,116, + 104,218,1,102,114,67,0,0,0,115,5,0,0,0,32,32, + 32,32,32,114,16,0,0,0,218,19,95,103,101,116,95,99, + 111,100,101,95,102,114,111,109,95,102,105,108,101,114,146,0, + 0,0,250,0,0,0,115,127,0,0,0,128,0,229,4,33, + 220,16,18,151,7,145,7,151,15,145,15,160,5,211,16,38, + 128,73,220,9,11,143,28,138,28,144,105,212,9,32,160,65, + 217,15,24,152,17,139,124,136,4,247,3,0,10,33,224,7, + 11,129,124,228,13,15,143,92,138,92,152,41,212,13,36,168, + 1,220,19,26,152,49,159,54,153,54,155,56,160,85,168,70, + 211,19,51,136,68,247,3,0,14,37,224,11,15,128,75,136, + 52,128,75,247,13,0,10,33,213,9,32,250,247,8,0,14, + 37,212,13,36,224,11,15,128,75,250,115,23,0,0,0,188, + 9,66,14,3,193,38,28,66,31,3,194,14,10,66,28,7, + 194,31,10,66,46,7,99,3,0,0,0,0,0,0,0,0, + 0,0,0,10,0,0,0,3,0,0,0,243,116,3,0,0, + 149,0,85,2,99,2,0,0,83,2,110,2,85,2,82,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,125,2,116,11,0, - 0,0,0,0,0,0,0,106,12,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,2,171,1,0, - 0,0,0,0,0,53,0,125,3,2,0,124,1,124,3,171, - 1,0,0,0,0,0,0,125,4,100,0,100,0,100,0,171, - 2,0,0,0,0,0,0,1,0,127,4,128,59,116,11,0, - 0,0,0,0,0,0,0,106,12,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,2,171,1,0, - 0,0,0,0,0,53,0,125,3,116,15,0,0,0,0,0, - 0,0,0,124,3,106,17,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,124,0,100,3,171,3,0,0,0,0,0,0,125,4,100, - 0,100,0,100,0,171,2,0,0,0,0,0,0,1,0,124, - 4,83,0,124,4,83,0,35,0,49,0,115,1,119,2,1, - 0,89,0,1,0,1,0,140,72,120,3,89,0,119,1,35, - 0,49,0,115,1,119,2,1,0,89,0,1,0,1,0,124, - 4,83,0,120,3,89,0,119,1,41,4,78,114,2,0,0, - 0,41,1,218,9,114,101,97,100,95,99,111,100,101,114,56, - 0,0,0,41,9,218,7,112,107,103,117,116,105,108,114,125, - 0,0,0,218,2,111,115,114,121,0,0,0,218,7,97,98, - 115,112,97,116,104,218,2,105,111,218,9,111,112,101,110,95, - 99,111,100,101,218,7,99,111,109,112,105,108,101,218,4,114, - 101,97,100,41,5,114,63,0,0,0,114,125,0,0,0,218, - 9,99,111,100,101,95,112,97,116,104,218,1,102,114,57,0, - 0,0,115,5,0,0,0,32,32,32,32,32,114,15,0,0, - 0,218,19,95,103,101,116,95,99,111,100,101,95,102,114,111, - 109,95,102,105,108,101,114,135,0,0,0,250,0,0,0,115, - 124,0,0,0,128,0,229,4,33,220,16,18,151,7,145,7, - 151,15,145,15,160,5,211,16,38,128,73,220,9,11,143,28, - 137,28,144,105,212,9,32,160,65,217,15,24,152,17,139,124, - 136,4,247,3,0,10,33,224,7,11,128,124,228,13,15,143, - 92,137,92,152,41,212,13,36,168,1,220,19,26,152,49,159, - 54,153,54,155,56,160,85,168,70,211,19,51,136,68,247,3, - 0,14,37,224,11,15,128,75,136,52,128,75,247,13,0,10, - 33,208,9,32,250,247,8,0,14,37,224,11,15,128,75,250, - 115,23,0,0,0,187,9,66,11,3,193,35,28,66,23,3, - 194,11,5,66,20,7,194,23,5,66,33,7,99,3,0,0, - 0,0,0,0,0,0,0,0,0,10,0,0,0,3,0,0, - 0,243,92,3,0,0,151,0,124,2,128,2,100,2,125,2, - 124,2,106,1,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,3,171,1,0,0,0,0,0,0, - 100,4,25,0,0,0,125,3,100,4,100,5,108,1,109,2, - 125,4,1,0,2,0,124,4,124,0,171,1,0,0,0,0, - 0,0,125,5,116,7,0,0,0,0,0,0,0,0,106,8, + 0,0,83,3,53,1,0,0,0,0,0,0,83,4,5,0, + 0,0,110,3,83,4,83,5,75,1,74,2,110,4,32,0, + 85,4,34,0,85,0,53,1,0,0,0,0,0,0,110,5, + 91,6,0,0,0,0,0,0,0,0,82,8,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 85,0,53,1,0,0,0,0,0,0,110,0,91,11,0,0, + 0,0,0,0,0,0,85,5,91,13,0,0,0,0,0,0, + 0,0,83,1,53,1,0,0,0,0,0,0,53,2,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,97,22,0,0, + 91,15,0,0,0,0,0,0,0,0,85,0,53,1,0,0, + 0,0,0,0,110,6,91,17,0,0,0,0,0,0,0,0, + 88,97,85,2,88,48,83,6,57,5,36,0,91,18,0,0, + 0,0,0,0,0,0,82,20,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,82,23,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,4, + 85,0,53,2,0,0,0,0,0,0,32,0,30,0,91,25, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 117,3,0,0,112,120,110,6,91,27,0,0,0,0,0,0, + 0,0,85,2,53,1,0,0,0,0,0,0,2,0,110,9, + 91,29,0,0,0,0,0,0,0,0,85,0,53,1,0,0, + 0,0,0,0,2,0,32,0,85,9,82,30,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,32, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,0,116,11, - 0,0,0,0,0,0,0,0,124,5,116,13,0,0,0,0, - 0,0,0,0,100,1,171,1,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,114,27,116,15,0,0,0,0,0,0, - 0,0,124,0,171,1,0,0,0,0,0,0,125,6,116,17, - 0,0,0,0,0,0,0,0,124,6,124,1,124,2,124,3, - 124,0,172,6,171,5,0,0,0,0,0,0,83,0,116,18, - 0,0,0,0,0,0,0,0,106,20,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,23,0,0, + 0,0,110,10,91,35,0,0,0,0,0,0,0,0,88,106, + 85,1,88,40,85,3,53,6,0,0,0,0,0,0,82,37, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,4,124,0,171,2,0,0,0,0,0,0,1,0,9,0, - 116,25,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,92,3,0,0,125,7,125,8,125,6,116,27,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 53,0,125,9,116,29,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,53,0,1,0,124,9,106,30, + 0,0,53,0,0,0,0,0,0,0,115,2,83,1,83,1, + 83,1,53,2,0,0,0,0,0,0,32,0,115,2,83,1, + 83,1,83,1,53,2,0,0,0,0,0,0,32,0,30,0, + 91,18,0,0,0,0,0,0,0,0,82,20,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,39, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,32,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,125,10,116,35,0,0,0,0,0,0, - 0,0,124,6,124,10,124,1,124,2,124,8,124,3,171,6, - 0,0,0,0,0,0,106,37,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,99,2,100,1,100,1,100,1,171,2,0,0,0,0, - 0,0,1,0,99,2,100,1,100,1,100,1,171,2,0,0, - 0,0,0,0,1,0,9,0,116,18,0,0,0,0,0,0, - 0,0,106,20,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,106,39,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,171,1,0,0, - 0,0,0,0,1,0,83,0,35,0,116,40,0,0,0,0, - 0,0,0,0,36,0,114,3,1,0,89,0,83,0,119,0, - 120,3,89,0,119,1,35,0,49,0,115,1,119,2,1,0, - 89,0,1,0,1,0,110,3,120,3,89,0,119,1,9,0, - 100,1,100,1,100,1,171,2,0,0,0,0,0,0,1,0, - 110,12,35,0,49,0,115,1,119,2,1,0,89,0,1,0, - 1,0,110,3,120,3,89,0,119,1,9,0,116,18,0,0, - 0,0,0,0,0,0,106,20,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,39,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 171,1,0,0,0,0,0,0,1,0,121,1,35,0,116,40, - 0,0,0,0,0,0,0,0,36,0,114,3,1,0,89,0, - 121,1,119,0,120,3,89,0,119,1,35,0,9,0,116,18, - 0,0,0,0,0,0,0,0,106,20,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,39,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,32,0,36,0, + 33,0,91,40,0,0,0,0,0,0,0,0,7,0,97,3, + 0,0,32,0,31,0,36,0,102,0,61,3,31,0,102,1, + 33,0,44,0,40,0,0,0,0,0,0,0,100,1,0,0, + 102,2,32,0,31,0,32,0,32,0,79,3,61,3,31,0, + 102,1,30,0,83,1,83,1,83,1,53,2,0,0,0,0, + 0,0,32,0,79,17,33,0,44,0,40,0,0,0,0,0, + 0,0,100,1,0,0,102,2,32,0,31,0,32,0,32,0, + 79,3,61,3,31,0,102,1,30,0,91,18,0,0,0,0, + 0,0,0,0,82,20,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,39,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,0,53,1, + 0,0,0,0,0,0,32,0,103,1,33,0,91,40,0,0, + 0,0,0,0,0,0,7,0,97,3,0,0,32,0,31,0, + 103,1,102,0,61,3,31,0,102,1,33,0,30,0,91,18, + 0,0,0,0,0,0,0,0,82,20,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,82,39,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,0,171,1,0,0,0,0,0,0,1,0,119,0,35,0, - 116,40,0,0,0,0,0,0,0,0,36,0,114,3,1,0, - 89,0,119,0,119,0,120,3,89,0,119,1,120,3,89,0, - 119,1,41,7,117,20,2,0,0,69,120,101,99,117,116,101, - 32,99,111,100,101,32,108,111,99,97,116,101,100,32,97,116, - 32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,102, - 105,108,101,115,121,115,116,101,109,32,108,111,99,97,116,105, - 111,110,46,10,10,32,32,32,32,32,32,32,112,97,116,104, - 95,110,97,109,101,32,45,45,32,102,105,108,101,115,121,115, - 116,101,109,32,108,111,99,97,116,105,111,110,32,111,102,32, - 97,32,80,121,116,104,111,110,32,115,99,114,105,112,116,44, - 32,122,105,112,102,105,108,101,44,10,32,32,32,32,32,32, - 32,111,114,32,100,105,114,101,99,116,111,114,121,32,99,111, - 110,116,97,105,110,105,110,103,32,97,32,116,111,112,32,108, - 101,118,101,108,32,95,95,109,97,105,110,95,95,46,112,121, - 32,115,99,114,105,112,116,46,10,10,32,32,32,32,32,32, - 32,79,112,116,105,111,110,97,108,32,97,114,103,117,109,101, - 110,116,115,58,10,32,32,32,32,32,32,32,105,110,105,116, - 95,103,108,111,98,97,108,115,32,45,45,32,100,105,99,116, - 105,111,110,97,114,121,32,117,115,101,100,32,116,111,32,112, - 114,101,45,112,111,112,117,108,97,116,101,32,116,104,101,32, - 109,111,100,117,108,101,226,128,153,115,10,32,32,32,32,32, - 32,32,103,108,111,98,97,108,115,32,100,105,99,116,105,111, - 110,97,114,121,32,98,101,102,111,114,101,32,116,104,101,32, - 99,111,100,101,32,105,115,32,101,120,101,99,117,116,101,100, - 46,10,10,32,32,32,32,32,32,32,114,117,110,95,110,97, - 109,101,32,45,45,32,105,102,32,110,111,116,32,78,111,110, - 101,44,32,116,104,105,115,32,119,105,108,108,32,98,101,32, - 117,115,101,100,32,116,111,32,115,101,116,32,95,95,110,97, - 109,101,95,95,59,10,32,32,32,32,32,32,32,111,116,104, - 101,114,119,105,115,101,44,32,39,60,114,117,110,95,112,97, - 116,104,62,39,32,119,105,108,108,32,98,101,32,117,115,101, - 100,32,102,111,114,32,95,95,110,97,109,101,95,95,46,10, - 10,32,32,32,32,32,32,32,82,101,116,117,114,110,115,32, - 116,104,101,32,114,101,115,117,108,116,105,110,103,32,109,111, - 100,117,108,101,32,103,108,111,98,97,108,115,32,100,105,99, - 116,105,111,110,97,114,121,46,10,32,32,32,32,78,122,10, - 60,114,117,110,95,112,97,116,104,62,114,72,0,0,0,114, - 2,0,0,0,41,1,218,12,103,101,116,95,105,109,112,111, - 114,116,101,114,41,2,114,61,0,0,0,114,62,0,0,0, - 41,21,114,78,0,0,0,114,126,0,0,0,114,137,0,0, - 0,114,127,0,0,0,218,8,102,115,100,101,99,111,100,101, - 218,10,105,115,105,110,115,116,97,110,99,101,114,94,0,0, - 0,114,135,0,0,0,114,70,0,0,0,114,20,0,0,0, - 114,121,0,0,0,218,6,105,110,115,101,114,116,114,109,0, - 0,0,114,6,0,0,0,114,35,0,0,0,114,11,0,0, - 0,114,66,0,0,0,114,64,0,0,0,114,67,0,0,0, - 218,6,114,101,109,111,118,101,114,92,0,0,0,41,11,218, - 9,112,97,116,104,95,110,97,109,101,114,59,0,0,0,114, - 117,0,0,0,114,61,0,0,0,114,137,0,0,0,218,8, - 105,109,112,111,114,116,101,114,114,57,0,0,0,114,9,0, - 0,0,114,60,0,0,0,114,68,0,0,0,114,69,0,0, - 0,115,11,0,0,0,32,32,32,32,32,32,32,32,32,32, - 32,114,15,0,0,0,114,4,0,0,0,114,4,0,0,0, - 6,1,0,0,115,123,1,0,0,128,0,240,30,0,8,16, - 208,7,23,216,19,31,136,8,216,15,23,215,15,34,209,15, - 34,160,51,211,15,39,168,1,209,15,42,128,72,221,4,36, - 217,15,27,152,73,211,15,38,128,72,220,16,18,151,11,145, - 11,152,73,211,16,38,128,73,220,7,17,144,40,156,68,160, - 20,155,74,212,7,39,244,6,0,16,35,160,57,211,15,45, - 136,4,220,15,31,160,4,160,108,176,72,216,41,49,184,121, - 244,3,1,16,74,1,240,0,1,9,74,1,244,10,0,9, - 12,143,8,137,8,143,15,137,15,152,1,152,57,212,8,37, - 240,2,17,9,21,244,14,0,40,64,1,211,39,65,209,12, - 36,136,72,144,104,160,4,220,17,28,152,88,212,17,38,168, - 43,220,17,31,160,9,213,17,42,216,30,41,215,30,48,209, - 30,48,215,30,57,209,30,57,144,11,220,23,32,160,20,160, - 123,176,76,216,36,44,168,104,184,8,243,3,1,24,66,1, - 223,66,70,193,36,195,38,247,7,0,18,43,208,17,42,247, - 3,0,18,39,208,17,38,240,12,3,13,21,220,16,19,151, - 8,145,8,151,15,145,15,160,9,213,16,42,248,220,19,29, - 242,0,1,13,21,217,16,20,240,3,1,13,21,250,247,15, - 0,18,43,208,17,42,250,208,17,42,247,3,0,18,39,215, - 17,38,209,17,38,250,240,12,3,13,21,220,16,19,151,8, - 145,8,151,15,145,15,160,9,213,16,42,248,220,19,29,242, - 0,1,13,21,217,16,20,240,3,1,13,21,251,240,5,3, - 13,21,220,16,19,151,8,145,8,151,15,145,15,160,9,213, - 16,42,248,220,19,29,242,0,1,13,21,217,16,20,240,3, - 1,13,21,253,115,138,0,0,0,194,13,25,69,58,0,194, - 38,12,68,62,3,194,50,52,68,40,5,195,38,9,68,62, - 3,195,47,9,69,58,0,195,57,31,68,25,2,196,25,9, - 68,37,5,196,36,1,68,37,5,196,40,5,68,49,9,196, - 45,7,68,62,3,196,53,9,69,58,0,196,62,5,69,7, - 7,197,3,7,69,58,0,197,11,31,69,43,0,197,43,9, - 69,55,3,197,54,1,69,55,3,197,58,1,70,43,3,197, - 60,31,70,28,4,198,27,1,70,43,3,198,28,9,70,40, - 7,198,37,2,70,43,3,198,39,1,70,40,7,198,40,3, - 70,43,3,114,76,0,0,0,233,2,0,0,0,122,33,78, - 111,32,109,111,100,117,108,101,32,115,112,101,99,105,102,105, - 101,100,32,102,111,114,32,101,120,101,99,117,116,105,111,110, - 41,1,218,4,102,105,108,101,41,5,78,78,78,78,78,41, - 1,84,41,3,78,78,70,41,2,78,78,41,29,114,32,0, - 0,0,114,20,0,0,0,218,19,105,109,112,111,114,116,108, - 105,98,46,109,97,99,104,105,110,101,114,121,114,87,0,0, - 0,218,14,105,109,112,111,114,116,108,105,98,46,117,116,105, - 108,114,129,0,0,0,114,127,0,0,0,218,7,95,95,97, - 108,108,95,95,114,94,0,0,0,114,10,0,0,0,114,38, - 0,0,0,114,6,0,0,0,114,35,0,0,0,114,64,0, - 0,0,114,70,0,0,0,114,80,0,0,0,114,96,0,0, - 0,218,9,69,120,99,101,112,116,105,111,110,114,107,0,0, - 0,114,115,0,0,0,114,3,0,0,0,114,109,0,0,0, - 114,135,0,0,0,114,4,0,0,0,114,29,0,0,0,218, - 3,108,101,110,114,43,0,0,0,218,5,112,114,105,110,116, - 218,6,115,116,100,101,114,114,114,33,0,0,0,114,17,0, - 0,0,114,15,0,0,0,218,8,60,109,111,100,117,108,101, - 62,114,153,0,0,0,1,0,0,0,115,246,0,0,0,240, - 3,1,1,1,241,2,7,1,4,243,24,0,1,11,219,0, - 26,219,0,21,219,0,9,219,0,9,240,6,0,5,17,144, - 42,240,3,2,11,2,128,7,241,10,0,14,18,144,35,139, - 89,128,10,244,4,21,1,32,144,38,244,0,21,1,32,244, - 46,13,1,40,144,86,244,0,13,1,40,240,32,0,47,51, - 216,38,42,216,41,45,243,5,24,1,23,240,52,0,41,45, - 216,44,48,216,47,51,243,5,11,1,30,240,28,0,41,52, - 243,0,59,1,32,244,122,1,1,1,77,1,136,89,244,0, - 1,1,77,1,243,14,26,1,43,240,56,0,39,43,216,40, - 45,243,3,28,1,69,1,240,60,0,36,47,243,0,16,1, - 44,242,38,10,1,16,243,24,48,1,21,240,102,1,0,4, - 12,136,122,210,3,25,225,7,10,136,51,143,56,137,56,131, - 125,144,113,210,7,24,217,8,13,208,14,49,184,3,191,10, - 185,10,214,8,67,224,12,15,143,72,137,72,144,81,136,75, - 217,8,27,152,67,159,72,153,72,160,81,153,75,213,8,40, - 240,13,0,4,26,114,17,0,0,0, + 85,0,53,1,0,0,0,0,0,0,32,0,102,0,33,0, + 91,40,0,0,0,0,0,0,0,0,7,0,97,3,0,0, + 32,0,31,0,102,0,102,0,61,3,31,0,102,1,61,3, + 31,0,102,1,41,7,117,216,1,0,0,69,120,101,99,117, + 116,101,32,99,111,100,101,32,108,111,99,97,116,101,100,32, + 97,116,32,116,104,101,32,115,112,101,99,105,102,105,101,100, + 32,102,105,108,101,115,121,115,116,101,109,32,108,111,99,97, + 116,105,111,110,46,10,10,112,97,116,104,95,110,97,109,101, + 32,45,45,32,102,105,108,101,115,121,115,116,101,109,32,108, + 111,99,97,116,105,111,110,32,111,102,32,97,32,80,121,116, + 104,111,110,32,115,99,114,105,112,116,44,32,122,105,112,102, + 105,108,101,44,10,111,114,32,100,105,114,101,99,116,111,114, + 121,32,99,111,110,116,97,105,110,105,110,103,32,97,32,116, + 111,112,32,108,101,118,101,108,32,95,95,109,97,105,110,95, + 95,46,112,121,32,115,99,114,105,112,116,46,10,10,79,112, + 116,105,111,110,97,108,32,97,114,103,117,109,101,110,116,115, + 58,10,105,110,105,116,95,103,108,111,98,97,108,115,32,45, + 45,32,100,105,99,116,105,111,110,97,114,121,32,117,115,101, + 100,32,116,111,32,112,114,101,45,112,111,112,117,108,97,116, + 101,32,116,104,101,32,109,111,100,117,108,101,226,128,153,115, + 10,103,108,111,98,97,108,115,32,100,105,99,116,105,111,110, + 97,114,121,32,98,101,102,111,114,101,32,116,104,101,32,99, + 111,100,101,32,105,115,32,101,120,101,99,117,116,101,100,46, + 10,10,114,117,110,95,110,97,109,101,32,45,45,32,105,102, + 32,110,111,116,32,78,111,110,101,44,32,116,104,105,115,32, + 119,105,108,108,32,98,101,32,117,115,101,100,32,116,111,32, + 115,101,116,32,95,95,110,97,109,101,95,95,59,10,111,116, + 104,101,114,119,105,115,101,44,32,39,60,114,117,110,95,112, + 97,116,104,62,39,32,119,105,108,108,32,98,101,32,117,115, + 101,100,32,102,111,114,32,95,95,110,97,109,101,95,95,46, + 10,10,82,101,116,117,114,110,115,32,116,104,101,32,114,101, + 115,117,108,116,105,110,103,32,109,111,100,117,108,101,32,103, + 108,111,98,97,108,115,32,100,105,99,116,105,111,110,97,114, + 121,46,10,78,122,10,60,114,117,110,95,112,97,116,104,62, + 114,82,0,0,0,114,2,0,0,0,41,1,218,12,103,101, + 116,95,105,109,112,111,114,116,101,114,41,2,114,71,0,0, + 0,114,72,0,0,0,41,21,114,88,0,0,0,114,137,0, + 0,0,114,148,0,0,0,114,138,0,0,0,218,8,102,115, + 100,101,99,111,100,101,218,10,105,115,105,110,115,116,97,110, + 99,101,114,104,0,0,0,114,146,0,0,0,114,80,0,0, + 0,114,22,0,0,0,114,132,0,0,0,218,6,105,110,115, + 101,114,116,114,120,0,0,0,114,6,0,0,0,114,41,0, + 0,0,114,12,0,0,0,114,76,0,0,0,114,74,0,0, + 0,114,77,0,0,0,218,6,114,101,109,111,118,101,114,102, + 0,0,0,41,11,218,9,112,97,116,104,95,110,97,109,101, + 114,69,0,0,0,114,128,0,0,0,114,71,0,0,0,114, + 148,0,0,0,218,8,105,109,112,111,114,116,101,114,114,67, + 0,0,0,114,10,0,0,0,114,70,0,0,0,114,78,0, + 0,0,114,79,0,0,0,115,11,0,0,0,32,32,32,32, + 32,32,32,32,32,32,32,114,16,0,0,0,114,4,0,0, + 0,114,4,0,0,0,6,1,0,0,115,116,1,0,0,128, + 0,240,30,0,8,16,209,7,23,216,19,31,136,8,216,15, + 23,215,15,34,209,15,34,160,51,211,15,39,168,1,209,15, + 42,128,72,221,4,36,217,15,27,152,73,211,15,38,128,72, + 220,16,18,151,11,146,11,152,73,211,16,38,128,73,220,7, + 17,144,40,156,68,160,20,155,74,215,7,39,209,7,39,244, + 6,0,16,35,160,57,211,15,45,136,4,220,15,31,160,4, + 176,72,216,41,49,241,3,1,16,74,1,240,0,1,9,74, + 1,244,10,0,9,12,143,8,137,8,143,15,137,15,152,1, + 152,57,212,8,37,240,2,17,9,21,244,14,0,40,64,1, + 211,39,65,209,12,36,136,72,160,4,220,17,28,152,88,212, + 17,38,168,43,220,17,31,160,9,213,17,42,216,30,41,215, + 30,48,209,30,48,215,30,57,209,30,57,144,11,220,23,32, + 160,20,176,76,216,36,44,184,8,243,3,1,24,66,1,223, + 66,70,193,36,195,38,247,7,0,18,43,208,17,42,247,3, + 0,18,39,208,17,38,240,12,3,13,21,220,16,19,151,8, + 145,8,151,15,145,15,160,9,213,16,42,248,220,19,29,243, + 0,1,13,21,217,16,20,240,3,1,13,21,250,247,15,0, + 18,43,213,17,42,250,208,17,42,247,3,0,18,39,215,17, + 38,214,17,38,250,240,12,3,13,21,220,16,19,151,8,145, + 8,151,15,145,15,160,9,213,16,42,248,220,19,29,243,0, + 1,13,21,217,16,20,240,3,1,13,21,251,240,5,3,13, + 21,220,16,19,151,8,145,8,151,15,145,15,160,9,213,16, + 42,248,220,19,29,243,0,1,13,21,217,16,20,240,3,1, + 13,21,253,115,138,0,0,0,194,15,24,70,5,0,194,39, + 12,69,3,3,194,51,50,68,40,5,195,37,9,69,3,3, + 195,46,9,70,5,0,195,56,31,68,24,2,196,24,10,68, + 37,5,196,36,1,68,37,5,196,40,10,68,54,9,196,50, + 7,69,3,3,196,58,9,70,5,0,197,3,10,69,17,7, + 197,13,7,70,5,0,197,21,31,69,53,0,197,53,10,70, + 2,3,198,1,1,70,2,3,198,5,1,70,55,3,198,7, + 31,70,39,4,198,38,1,70,55,3,198,39,10,70,52,7, + 198,49,2,70,55,3,198,51,1,70,52,7,198,52,3,70, + 55,3,114,86,0,0,0,233,2,0,0,0,122,33,78,111, + 32,109,111,100,117,108,101,32,115,112,101,99,105,102,105,101, + 100,32,102,111,114,32,101,120,101,99,117,116,105,111,110,41, + 1,218,4,102,105,108,101,41,5,78,78,78,78,78,41,1, + 84,41,3,78,78,70,41,2,78,78,41,29,114,37,0,0, + 0,114,22,0,0,0,218,19,105,109,112,111,114,116,108,105, + 98,46,109,97,99,104,105,110,101,114,121,114,97,0,0,0, + 218,14,105,109,112,111,114,116,108,105,98,46,117,116,105,108, + 114,140,0,0,0,114,138,0,0,0,218,7,95,95,97,108, + 108,95,95,114,104,0,0,0,114,11,0,0,0,114,45,0, + 0,0,114,6,0,0,0,114,41,0,0,0,114,74,0,0, + 0,114,80,0,0,0,114,90,0,0,0,114,106,0,0,0, + 218,9,69,120,99,101,112,116,105,111,110,114,117,0,0,0, + 114,126,0,0,0,114,3,0,0,0,114,120,0,0,0,114, + 146,0,0,0,114,4,0,0,0,114,33,0,0,0,218,3, + 108,101,110,114,51,0,0,0,218,5,112,114,105,110,116,218, + 6,115,116,100,101,114,114,114,39,0,0,0,114,19,0,0, + 0,114,16,0,0,0,218,8,60,109,111,100,117,108,101,62, + 114,164,0,0,0,1,0,0,0,115,246,0,0,0,240,3, + 1,1,1,241,2,7,1,4,243,24,0,1,11,219,0,26, + 219,0,21,219,0,9,219,0,9,240,6,0,5,17,144,42, + 240,3,2,11,2,128,7,241,10,0,14,18,144,35,139,89, + 128,10,244,4,21,1,32,144,38,244,0,21,1,32,244,46, + 13,1,40,144,86,244,0,13,1,40,240,32,0,47,51,216, + 38,42,216,41,45,244,5,24,1,23,240,52,0,41,45,216, + 44,48,216,47,51,244,5,11,1,30,240,28,0,41,52,244, + 0,59,1,32,244,122,1,1,1,77,1,136,89,244,0,1, + 1,77,1,244,14,26,1,43,240,56,0,39,43,216,40,45, + 244,3,28,1,69,1,240,60,0,36,47,244,0,16,1,44, + 242,38,10,1,16,244,24,48,1,21,240,102,1,0,4,12, + 136,122,211,3,25,225,7,10,136,51,143,56,137,56,131,125, + 144,113,211,7,24,217,8,13,208,14,49,184,3,191,10,185, + 10,211,8,67,224,12,15,143,72,137,72,144,81,136,75,217, + 8,27,152,67,159,72,153,72,160,81,153,75,213,8,40,240, + 13,0,4,26,114,19,0,0,0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/site.h b/contrib/tools/python3/Python/frozen_modules/site.h index b91a82ef21c..512a582016e 100644 --- a/contrib/tools/python3/Python/frozen_modules/site.h +++ b/contrib/tools/python3/Python/frozen_modules/site.h @@ -1,1402 +1,1595 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__site[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,0,0,0,0,243,94,1,0,0,151,0,100,0,90,0, - 100,1,100,2,108,1,90,1,100,1,100,2,108,2,90,2, - 100,1,100,2,108,3,90,3,100,1,100,2,108,4,90,4, - 100,1,100,2,108,5,90,5,100,1,100,2,108,6,90,6, - 101,1,106,14,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,101,1,106,16,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,103,2,97,9, - 100,2,97,10,100,2,97,11,100,2,97,12,100,3,132,0, - 90,13,100,4,132,0,90,14,100,5,132,0,90,15,100,6, - 132,0,90,16,100,7,132,0,90,17,100,8,132,0,90,18, - 100,28,100,9,132,1,90,19,100,10,132,0,90,20,100,11, - 132,0,90,21,100,12,132,0,90,22,100,13,132,0,90,23, - 100,14,132,0,90,24,100,15,132,0,90,25,100,28,100,16, - 132,1,90,26,100,28,100,17,132,1,90,27,100,18,132,0, - 90,28,100,19,132,0,90,29,100,20,132,0,90,30,100,21, - 132,0,90,31,100,22,132,0,90,32,100,23,132,0,90,33, - 100,24,132,0,90,34,100,25,132,0,90,35,101,1,106,72, + 0,0,0,0,0,243,138,1,0,0,149,0,83,0,114,0, + 83,1,83,2,75,1,114,1,83,1,83,2,75,2,114,2, + 83,1,83,2,75,3,114,3,83,1,83,2,75,4,114,4, + 83,1,83,2,75,5,114,5,83,1,83,2,75,6,114,6, + 83,1,83,2,75,7,114,7,92,1,82,16,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,1, + 82,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,47,2,113,10,83,2,113,11,83,2,113,12, + 83,2,113,13,83,3,26,0,114,14,83,4,26,0,114,15, + 83,5,26,0,114,16,83,6,26,0,114,17,83,7,26,0, + 114,18,83,8,26,0,114,19,83,31,83,9,26,0,106,1, + 114,20,83,10,26,0,114,21,83,11,26,0,114,22,83,12, + 26,0,114,23,83,13,26,0,114,24,83,14,26,0,114,25, + 83,15,26,0,114,26,83,16,26,0,114,27,83,31,83,17, + 26,0,106,1,114,28,83,31,83,18,26,0,106,1,114,29, + 83,19,26,0,114,30,83,20,26,0,114,31,83,21,26,0, + 114,32,83,22,26,0,114,33,83,23,26,0,114,34,83,24, + 26,0,114,35,83,25,26,0,114,36,83,26,26,0,114,37, + 83,27,26,0,114,38,83,28,26,0,114,39,92,1,82,80, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,74,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,115,7,2,0,101,35,171,0,0,0, - 0,0,0,0,1,0,100,26,132,0,90,38,101,39,100,27, - 107,40,0,0,114,8,2,0,101,38,171,0,0,0,0,0, - 0,0,1,0,121,2,121,2,41,29,97,182,11,0,0,65, - 112,112,101,110,100,32,109,111,100,117,108,101,32,115,101,97, - 114,99,104,32,112,97,116,104,115,32,102,111,114,32,116,104, - 105,114,100,45,112,97,114,116,121,32,112,97,99,107,97,103, - 101,115,32,116,111,32,115,121,115,46,112,97,116,104,46,10, - 10,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42, + 0,0,82,82,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,100,7, + 0,0,92,39,34,0,53,0,0,0,0,0,0,0,32,0, + 83,29,26,0,114,42,92,43,83,30,58,88,0,0,97,8, + 0,0,92,42,34,0,53,0,0,0,0,0,0,0,32,0, + 103,2,103,2,41,32,97,182,11,0,0,65,112,112,101,110, + 100,32,109,111,100,117,108,101,32,115,101,97,114,99,104,32, + 112,97,116,104,115,32,102,111,114,32,116,104,105,114,100,45, + 112,97,114,116,121,32,112,97,99,107,97,103,101,115,32,116, + 111,32,115,121,115,46,112,97,116,104,46,10,10,42,42,42, 42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42, 42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42, 42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42, - 42,10,42,32,84,104,105,115,32,109,111,100,117,108,101,32, - 105,115,32,97,117,116,111,109,97,116,105,99,97,108,108,121, - 32,105,109,112,111,114,116,101,100,32,100,117,114,105,110,103, - 32,105,110,105,116,105,97,108,105,122,97,116,105,111,110,46, - 32,42,10,42,42,42,42,42,42,42,42,42,42,42,42,42, + 42,42,42,42,42,42,42,42,42,42,42,42,42,10,42,32, + 84,104,105,115,32,109,111,100,117,108,101,32,105,115,32,97, + 117,116,111,109,97,116,105,99,97,108,108,121,32,105,109,112, + 111,114,116,101,100,32,100,117,114,105,110,103,32,105,110,105, + 116,105,97,108,105,122,97,116,105,111,110,46,32,42,10,42, 42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42, 42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42, 42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42, - 42,42,42,10,10,84,104,105,115,32,119,105,108,108,32,97, - 112,112,101,110,100,32,115,105,116,101,45,115,112,101,99,105, - 102,105,99,32,112,97,116,104,115,32,116,111,32,116,104,101, - 32,109,111,100,117,108,101,32,115,101,97,114,99,104,32,112, - 97,116,104,46,32,32,79,110,10,85,110,105,120,32,40,105, - 110,99,108,117,100,105,110,103,32,77,97,99,32,79,83,88, - 41,44,32,105,116,32,115,116,97,114,116,115,32,119,105,116, - 104,32,115,121,115,46,112,114,101,102,105,120,32,97,110,100, - 10,115,121,115,46,101,120,101,99,95,112,114,101,102,105,120, - 32,40,105,102,32,100,105,102,102,101,114,101,110,116,41,32, - 97,110,100,32,97,112,112,101,110,100,115,10,108,105,98,47, - 112,121,116,104,111,110,60,118,101,114,115,105,111,110,62,47, - 115,105,116,101,45,112,97,99,107,97,103,101,115,46,10,79, - 110,32,111,116,104,101,114,32,112,108,97,116,102,111,114,109, - 115,32,40,115,117,99,104,32,97,115,32,87,105,110,100,111, - 119,115,41,44,32,105,116,32,116,114,105,101,115,32,101,97, - 99,104,32,111,102,32,116,104,101,10,112,114,101,102,105,120, - 101,115,32,100,105,114,101,99,116,108,121,44,32,97,115,32, - 119,101,108,108,32,97,115,32,119,105,116,104,32,108,105,98, - 47,115,105,116,101,45,112,97,99,107,97,103,101,115,32,97, - 112,112,101,110,100,101,100,46,32,32,84,104,101,10,114,101, - 115,117,108,116,105,110,103,32,100,105,114,101,99,116,111,114, - 105,101,115,44,32,105,102,32,116,104,101,121,32,101,120,105, - 115,116,44,32,97,114,101,32,97,112,112,101,110,100,101,100, - 32,116,111,32,115,121,115,46,112,97,116,104,44,32,97,110, - 100,10,97,108,115,111,32,105,110,115,112,101,99,116,101,100, - 32,102,111,114,32,112,97,116,104,32,99,111,110,102,105,103, - 117,114,97,116,105,111,110,32,102,105,108,101,115,46,10,10, - 73,102,32,97,32,102,105,108,101,32,110,97,109,101,100,32, - 34,112,121,118,101,110,118,46,99,102,103,34,32,101,120,105, - 115,116,115,32,111,110,101,32,100,105,114,101,99,116,111,114, - 121,32,97,98,111,118,101,32,115,121,115,46,101,120,101,99, - 117,116,97,98,108,101,44,10,115,121,115,46,112,114,101,102, - 105,120,32,97,110,100,32,115,121,115,46,101,120,101,99,95, - 112,114,101,102,105,120,32,97,114,101,32,115,101,116,32,116, - 111,32,116,104,97,116,32,100,105,114,101,99,116,111,114,121, - 32,97,110,100,10,105,116,32,105,115,32,97,108,115,111,32, - 99,104,101,99,107,101,100,32,102,111,114,32,115,105,116,101, - 45,112,97,99,107,97,103,101,115,32,40,115,121,115,46,98, - 97,115,101,95,112,114,101,102,105,120,32,97,110,100,10,115, - 121,115,46,98,97,115,101,95,101,120,101,99,95,112,114,101, - 102,105,120,32,119,105,108,108,32,97,108,119,97,121,115,32, - 98,101,32,116,104,101,32,34,114,101,97,108,34,32,112,114, - 101,102,105,120,101,115,32,111,102,32,116,104,101,32,80,121, - 116,104,111,110,10,105,110,115,116,97,108,108,97,116,105,111, - 110,41,46,32,73,102,32,34,112,121,118,101,110,118,46,99, - 102,103,34,32,40,97,32,98,111,111,116,115,116,114,97,112, - 32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,102, - 105,108,101,41,32,99,111,110,116,97,105,110,115,10,116,104, - 101,32,107,101,121,32,34,105,110,99,108,117,100,101,45,115, - 121,115,116,101,109,45,115,105,116,101,45,112,97,99,107,97, - 103,101,115,34,32,115,101,116,32,116,111,32,97,110,121,116, - 104,105,110,103,32,111,116,104,101,114,32,116,104,97,110,32, - 34,102,97,108,115,101,34,10,40,99,97,115,101,45,105,110, - 115,101,110,115,105,116,105,118,101,41,44,32,116,104,101,32, - 115,121,115,116,101,109,45,108,101,118,101,108,32,112,114,101, - 102,105,120,101,115,32,119,105,108,108,32,115,116,105,108,108, - 32,97,108,115,111,32,98,101,10,115,101,97,114,99,104,101, - 100,32,102,111,114,32,115,105,116,101,45,112,97,99,107,97, - 103,101,115,59,32,111,116,104,101,114,119,105,115,101,32,116, - 104,101,121,32,119,111,110,39,116,46,10,10,65,108,108,32, - 111,102,32,116,104,101,32,114,101,115,117,108,116,105,110,103, - 32,115,105,116,101,45,115,112,101,99,105,102,105,99,32,100, - 105,114,101,99,116,111,114,105,101,115,44,32,105,102,32,116, - 104,101,121,32,101,120,105,115,116,44,32,97,114,101,10,97, - 112,112,101,110,100,101,100,32,116,111,32,115,121,115,46,112, - 97,116,104,44,32,97,110,100,32,97,108,115,111,32,105,110, - 115,112,101,99,116,101,100,32,102,111,114,32,112,97,116,104, - 32,99,111,110,102,105,103,117,114,97,116,105,111,110,10,102, - 105,108,101,115,46,10,10,65,32,112,97,116,104,32,99,111, - 110,102,105,103,117,114,97,116,105,111,110,32,102,105,108,101, - 32,105,115,32,97,32,102,105,108,101,32,119,104,111,115,101, - 32,110,97,109,101,32,104,97,115,32,116,104,101,32,102,111, - 114,109,10,60,112,97,99,107,97,103,101,62,46,112,116,104, - 59,32,105,116,115,32,99,111,110,116,101,110,116,115,32,97, - 114,101,32,97,100,100,105,116,105,111,110,97,108,32,100,105, - 114,101,99,116,111,114,105,101,115,32,40,111,110,101,32,112, - 101,114,32,108,105,110,101,41,10,116,111,32,98,101,32,97, - 100,100,101,100,32,116,111,32,115,121,115,46,112,97,116,104, - 46,32,32,78,111,110,45,101,120,105,115,116,105,110,103,32, - 100,105,114,101,99,116,111,114,105,101,115,32,40,111,114,10, - 110,111,110,45,100,105,114,101,99,116,111,114,105,101,115,41, - 32,97,114,101,32,110,101,118,101,114,32,97,100,100,101,100, - 32,116,111,32,115,121,115,46,112,97,116,104,59,32,110,111, - 32,100,105,114,101,99,116,111,114,121,32,105,115,32,97,100, - 100,101,100,32,116,111,10,115,121,115,46,112,97,116,104,32, - 109,111,114,101,32,116,104,97,110,32,111,110,99,101,46,32, - 32,66,108,97,110,107,32,108,105,110,101,115,32,97,110,100, - 32,108,105,110,101,115,32,98,101,103,105,110,110,105,110,103, - 32,119,105,116,104,10,39,35,39,32,97,114,101,32,115,107, - 105,112,112,101,100,46,32,76,105,110,101,115,32,115,116,97, - 114,116,105,110,103,32,119,105,116,104,32,39,105,109,112,111, - 114,116,39,32,97,114,101,32,101,120,101,99,117,116,101,100, - 46,10,10,70,111,114,32,101,120,97,109,112,108,101,44,32, - 115,117,112,112,111,115,101,32,115,121,115,46,112,114,101,102, - 105,120,32,97,110,100,32,115,121,115,46,101,120,101,99,95, - 112,114,101,102,105,120,32,97,114,101,32,115,101,116,32,116, - 111,10,47,117,115,114,47,108,111,99,97,108,32,97,110,100, - 32,116,104,101,114,101,32,105,115,32,97,32,100,105,114,101, - 99,116,111,114,121,32,47,117,115,114,47,108,111,99,97,108, - 47,108,105,98,47,112,121,116,104,111,110,50,46,53,47,115, - 105,116,101,45,112,97,99,107,97,103,101,115,10,119,105,116, - 104,32,116,104,114,101,101,32,115,117,98,100,105,114,101,99, - 116,111,114,105,101,115,44,32,102,111,111,44,32,98,97,114, - 32,97,110,100,32,115,112,97,109,44,32,97,110,100,32,116, - 119,111,32,112,97,116,104,10,99,111,110,102,105,103,117,114, - 97,116,105,111,110,32,102,105,108,101,115,44,32,102,111,111, - 46,112,116,104,32,97,110,100,32,98,97,114,46,112,116,104, - 46,32,32,65,115,115,117,109,101,32,102,111,111,46,112,116, - 104,32,99,111,110,116,97,105,110,115,32,116,104,101,10,102, - 111,108,108,111,119,105,110,103,58,10,10,32,32,35,32,102, - 111,111,32,112,97,99,107,97,103,101,32,99,111,110,102,105, - 103,117,114,97,116,105,111,110,10,32,32,102,111,111,10,32, - 32,98,97,114,10,32,32,98,108,101,116,99,104,10,10,97, - 110,100,32,98,97,114,46,112,116,104,32,99,111,110,116,97, - 105,110,115,58,10,10,32,32,35,32,98,97,114,32,112,97, - 99,107,97,103,101,32,99,111,110,102,105,103,117,114,97,116, - 105,111,110,10,32,32,98,97,114,10,10,84,104,101,110,32, - 116,104,101,32,102,111,108,108,111,119,105,110,103,32,100,105, - 114,101,99,116,111,114,105,101,115,32,97,114,101,32,97,100, + 42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,10, + 10,84,104,105,115,32,119,105,108,108,32,97,112,112,101,110, + 100,32,115,105,116,101,45,115,112,101,99,105,102,105,99,32, + 112,97,116,104,115,32,116,111,32,116,104,101,32,109,111,100, + 117,108,101,32,115,101,97,114,99,104,32,112,97,116,104,46, + 32,32,79,110,10,85,110,105,120,32,40,105,110,99,108,117, + 100,105,110,103,32,77,97,99,32,79,83,88,41,44,32,105, + 116,32,115,116,97,114,116,115,32,119,105,116,104,32,115,121, + 115,46,112,114,101,102,105,120,32,97,110,100,10,115,121,115, + 46,101,120,101,99,95,112,114,101,102,105,120,32,40,105,102, + 32,100,105,102,102,101,114,101,110,116,41,32,97,110,100,32, + 97,112,112,101,110,100,115,10,108,105,98,47,112,121,116,104, + 111,110,60,118,101,114,115,105,111,110,62,47,115,105,116,101, + 45,112,97,99,107,97,103,101,115,46,10,79,110,32,111,116, + 104,101,114,32,112,108,97,116,102,111,114,109,115,32,40,115, + 117,99,104,32,97,115,32,87,105,110,100,111,119,115,41,44, + 32,105,116,32,116,114,105,101,115,32,101,97,99,104,32,111, + 102,32,116,104,101,10,112,114,101,102,105,120,101,115,32,100, + 105,114,101,99,116,108,121,44,32,97,115,32,119,101,108,108, + 32,97,115,32,119,105,116,104,32,108,105,98,47,115,105,116, + 101,45,112,97,99,107,97,103,101,115,32,97,112,112,101,110, + 100,101,100,46,32,32,84,104,101,10,114,101,115,117,108,116, + 105,110,103,32,100,105,114,101,99,116,111,114,105,101,115,44, + 32,105,102,32,116,104,101,121,32,101,120,105,115,116,44,32, + 97,114,101,32,97,112,112,101,110,100,101,100,32,116,111,32, + 115,121,115,46,112,97,116,104,44,32,97,110,100,10,97,108, + 115,111,32,105,110,115,112,101,99,116,101,100,32,102,111,114, + 32,112,97,116,104,32,99,111,110,102,105,103,117,114,97,116, + 105,111,110,32,102,105,108,101,115,46,10,10,73,102,32,97, + 32,102,105,108,101,32,110,97,109,101,100,32,34,112,121,118, + 101,110,118,46,99,102,103,34,32,101,120,105,115,116,115,32, + 111,110,101,32,100,105,114,101,99,116,111,114,121,32,97,98, + 111,118,101,32,115,121,115,46,101,120,101,99,117,116,97,98, + 108,101,44,10,115,121,115,46,112,114,101,102,105,120,32,97, + 110,100,32,115,121,115,46,101,120,101,99,95,112,114,101,102, + 105,120,32,97,114,101,32,115,101,116,32,116,111,32,116,104, + 97,116,32,100,105,114,101,99,116,111,114,121,32,97,110,100, + 10,105,116,32,105,115,32,97,108,115,111,32,99,104,101,99, + 107,101,100,32,102,111,114,32,115,105,116,101,45,112,97,99, + 107,97,103,101,115,32,40,115,121,115,46,98,97,115,101,95, + 112,114,101,102,105,120,32,97,110,100,10,115,121,115,46,98, + 97,115,101,95,101,120,101,99,95,112,114,101,102,105,120,32, + 119,105,108,108,32,97,108,119,97,121,115,32,98,101,32,116, + 104,101,32,34,114,101,97,108,34,32,112,114,101,102,105,120, + 101,115,32,111,102,32,116,104,101,32,80,121,116,104,111,110, + 10,105,110,115,116,97,108,108,97,116,105,111,110,41,46,32, + 73,102,32,34,112,121,118,101,110,118,46,99,102,103,34,32, + 40,97,32,98,111,111,116,115,116,114,97,112,32,99,111,110, + 102,105,103,117,114,97,116,105,111,110,32,102,105,108,101,41, + 32,99,111,110,116,97,105,110,115,10,116,104,101,32,107,101, + 121,32,34,105,110,99,108,117,100,101,45,115,121,115,116,101, + 109,45,115,105,116,101,45,112,97,99,107,97,103,101,115,34, + 32,115,101,116,32,116,111,32,97,110,121,116,104,105,110,103, + 32,111,116,104,101,114,32,116,104,97,110,32,34,102,97,108, + 115,101,34,10,40,99,97,115,101,45,105,110,115,101,110,115, + 105,116,105,118,101,41,44,32,116,104,101,32,115,121,115,116, + 101,109,45,108,101,118,101,108,32,112,114,101,102,105,120,101, + 115,32,119,105,108,108,32,115,116,105,108,108,32,97,108,115, + 111,32,98,101,10,115,101,97,114,99,104,101,100,32,102,111, + 114,32,115,105,116,101,45,112,97,99,107,97,103,101,115,59, + 32,111,116,104,101,114,119,105,115,101,32,116,104,101,121,32, + 119,111,110,39,116,46,10,10,65,108,108,32,111,102,32,116, + 104,101,32,114,101,115,117,108,116,105,110,103,32,115,105,116, + 101,45,115,112,101,99,105,102,105,99,32,100,105,114,101,99, + 116,111,114,105,101,115,44,32,105,102,32,116,104,101,121,32, + 101,120,105,115,116,44,32,97,114,101,10,97,112,112,101,110, 100,101,100,32,116,111,32,115,121,115,46,112,97,116,104,44, - 32,105,110,32,116,104,105,115,32,111,114,100,101,114,58,10, - 10,32,32,47,117,115,114,47,108,111,99,97,108,47,108,105, - 98,47,112,121,116,104,111,110,50,46,53,47,115,105,116,101, - 45,112,97,99,107,97,103,101,115,47,98,97,114,10,32,32, - 47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,112, - 121,116,104,111,110,50,46,53,47,115,105,116,101,45,112,97, - 99,107,97,103,101,115,47,102,111,111,10,10,78,111,116,101, - 32,116,104,97,116,32,98,108,101,116,99,104,32,105,115,32, + 32,97,110,100,32,97,108,115,111,32,105,110,115,112,101,99, + 116,101,100,32,102,111,114,32,112,97,116,104,32,99,111,110, + 102,105,103,117,114,97,116,105,111,110,10,102,105,108,101,115, + 46,10,10,65,32,112,97,116,104,32,99,111,110,102,105,103, + 117,114,97,116,105,111,110,32,102,105,108,101,32,105,115,32, + 97,32,102,105,108,101,32,119,104,111,115,101,32,110,97,109, + 101,32,104,97,115,32,116,104,101,32,102,111,114,109,10,60, + 112,97,99,107,97,103,101,62,46,112,116,104,59,32,105,116, + 115,32,99,111,110,116,101,110,116,115,32,97,114,101,32,97, + 100,100,105,116,105,111,110,97,108,32,100,105,114,101,99,116, + 111,114,105,101,115,32,40,111,110,101,32,112,101,114,32,108, + 105,110,101,41,10,116,111,32,98,101,32,97,100,100,101,100, + 32,116,111,32,115,121,115,46,112,97,116,104,46,32,32,78, + 111,110,45,101,120,105,115,116,105,110,103,32,100,105,114,101, + 99,116,111,114,105,101,115,32,40,111,114,10,110,111,110,45, + 100,105,114,101,99,116,111,114,105,101,115,41,32,97,114,101, + 32,110,101,118,101,114,32,97,100,100,101,100,32,116,111,32, + 115,121,115,46,112,97,116,104,59,32,110,111,32,100,105,114, + 101,99,116,111,114,121,32,105,115,32,97,100,100,101,100,32, + 116,111,10,115,121,115,46,112,97,116,104,32,109,111,114,101, + 32,116,104,97,110,32,111,110,99,101,46,32,32,66,108,97, + 110,107,32,108,105,110,101,115,32,97,110,100,32,108,105,110, + 101,115,32,98,101,103,105,110,110,105,110,103,32,119,105,116, + 104,10,39,35,39,32,97,114,101,32,115,107,105,112,112,101, + 100,46,32,76,105,110,101,115,32,115,116,97,114,116,105,110, + 103,32,119,105,116,104,32,39,105,109,112,111,114,116,39,32, + 97,114,101,32,101,120,101,99,117,116,101,100,46,10,10,70, + 111,114,32,101,120,97,109,112,108,101,44,32,115,117,112,112, + 111,115,101,32,115,121,115,46,112,114,101,102,105,120,32,97, + 110,100,32,115,121,115,46,101,120,101,99,95,112,114,101,102, + 105,120,32,97,114,101,32,115,101,116,32,116,111,10,47,117, + 115,114,47,108,111,99,97,108,32,97,110,100,32,116,104,101, + 114,101,32,105,115,32,97,32,100,105,114,101,99,116,111,114, + 121,32,47,117,115,114,47,108,111,99,97,108,47,108,105,98, + 47,112,121,116,104,111,110,50,46,53,47,115,105,116,101,45, + 112,97,99,107,97,103,101,115,10,119,105,116,104,32,116,104, + 114,101,101,32,115,117,98,100,105,114,101,99,116,111,114,105, + 101,115,44,32,102,111,111,44,32,98,97,114,32,97,110,100, + 32,115,112,97,109,44,32,97,110,100,32,116,119,111,32,112, + 97,116,104,10,99,111,110,102,105,103,117,114,97,116,105,111, + 110,32,102,105,108,101,115,44,32,102,111,111,46,112,116,104, + 32,97,110,100,32,98,97,114,46,112,116,104,46,32,32,65, + 115,115,117,109,101,32,102,111,111,46,112,116,104,32,99,111, + 110,116,97,105,110,115,32,116,104,101,10,102,111,108,108,111, + 119,105,110,103,58,10,10,32,32,35,32,102,111,111,32,112, + 97,99,107,97,103,101,32,99,111,110,102,105,103,117,114,97, + 116,105,111,110,10,32,32,102,111,111,10,32,32,98,97,114, + 10,32,32,98,108,101,116,99,104,10,10,97,110,100,32,98, + 97,114,46,112,116,104,32,99,111,110,116,97,105,110,115,58, + 10,10,32,32,35,32,98,97,114,32,112,97,99,107,97,103, + 101,32,99,111,110,102,105,103,117,114,97,116,105,111,110,10, + 32,32,98,97,114,10,10,84,104,101,110,32,116,104,101,32, + 102,111,108,108,111,119,105,110,103,32,100,105,114,101,99,116, + 111,114,105,101,115,32,97,114,101,32,97,100,100,101,100,32, + 116,111,32,115,121,115,46,112,97,116,104,44,32,105,110,32, + 116,104,105,115,32,111,114,100,101,114,58,10,10,32,32,47, + 117,115,114,47,108,111,99,97,108,47,108,105,98,47,112,121, + 116,104,111,110,50,46,53,47,115,105,116,101,45,112,97,99, + 107,97,103,101,115,47,98,97,114,10,32,32,47,117,115,114, + 47,108,111,99,97,108,47,108,105,98,47,112,121,116,104,111, + 110,50,46,53,47,115,105,116,101,45,112,97,99,107,97,103, + 101,115,47,102,111,111,10,10,78,111,116,101,32,116,104,97, + 116,32,98,108,101,116,99,104,32,105,115,32,111,109,105,116, + 116,101,100,32,98,101,99,97,117,115,101,32,105,116,32,100, + 111,101,115,110,39,116,32,101,120,105,115,116,59,32,98,97, + 114,32,112,114,101,99,101,100,101,115,32,102,111,111,10,98, + 101,99,97,117,115,101,32,98,97,114,46,112,116,104,32,99, + 111,109,101,115,32,97,108,112,104,97,98,101,116,105,99,97, + 108,108,121,32,98,101,102,111,114,101,32,102,111,111,46,112, + 116,104,59,32,97,110,100,32,115,112,97,109,32,105,115,10, 111,109,105,116,116,101,100,32,98,101,99,97,117,115,101,32, - 105,116,32,100,111,101,115,110,39,116,32,101,120,105,115,116, - 59,32,98,97,114,32,112,114,101,99,101,100,101,115,32,102, - 111,111,10,98,101,99,97,117,115,101,32,98,97,114,46,112, - 116,104,32,99,111,109,101,115,32,97,108,112,104,97,98,101, - 116,105,99,97,108,108,121,32,98,101,102,111,114,101,32,102, - 111,111,46,112,116,104,59,32,97,110,100,32,115,112,97,109, - 32,105,115,10,111,109,105,116,116,101,100,32,98,101,99,97, - 117,115,101,32,105,116,32,105,115,32,110,111,116,32,109,101, - 110,116,105,111,110,101,100,32,105,110,32,101,105,116,104,101, - 114,32,112,97,116,104,32,99,111,110,102,105,103,117,114,97, - 116,105,111,110,32,102,105,108,101,46,10,10,84,104,101,32, - 114,101,97,100,108,105,110,101,32,109,111,100,117,108,101,32, - 105,115,32,97,108,115,111,32,97,117,116,111,109,97,116,105, - 99,97,108,108,121,32,99,111,110,102,105,103,117,114,101,100, - 32,116,111,32,101,110,97,98,108,101,10,99,111,109,112,108, - 101,116,105,111,110,32,102,111,114,32,115,121,115,116,101,109, - 115,32,116,104,97,116,32,115,117,112,112,111,114,116,32,105, - 116,46,32,32,84,104,105,115,32,99,97,110,32,98,101,32, - 111,118,101,114,114,105,100,100,101,110,32,105,110,10,115,105, - 116,101,99,117,115,116,111,109,105,122,101,44,32,117,115,101, - 114,99,117,115,116,111,109,105,122,101,32,111,114,32,80,89, - 84,72,79,78,83,84,65,82,84,85,80,46,32,32,83,116, - 97,114,116,105,110,103,32,80,121,116,104,111,110,32,105,110, - 10,105,115,111,108,97,116,101,100,32,109,111,100,101,32,40, - 45,73,41,32,100,105,115,97,98,108,101,115,32,97,117,116, - 111,109,97,116,105,99,32,114,101,97,100,108,105,110,101,32, - 99,111,110,102,105,103,117,114,97,116,105,111,110,46,10,10, - 65,102,116,101,114,32,116,104,101,115,101,32,111,112,101,114, - 97,116,105,111,110,115,44,32,97,110,32,97,116,116,101,109, - 112,116,32,105,115,32,109,97,100,101,32,116,111,32,105,109, - 112,111,114,116,32,97,32,109,111,100,117,108,101,10,110,97, - 109,101,100,32,115,105,116,101,99,117,115,116,111,109,105,122, - 101,44,32,119,104,105,99,104,32,99,97,110,32,112,101,114, - 102,111,114,109,32,97,114,98,105,116,114,97,114,121,32,97, - 100,100,105,116,105,111,110,97,108,10,115,105,116,101,45,115, - 112,101,99,105,102,105,99,32,99,117,115,116,111,109,105,122, - 97,116,105,111,110,115,46,32,32,73,102,32,116,104,105,115, - 32,105,109,112,111,114,116,32,102,97,105,108,115,32,119,105, - 116,104,32,97,110,10,73,109,112,111,114,116,69,114,114,111, - 114,32,101,120,99,101,112,116,105,111,110,44,32,105,116,32, - 105,115,32,115,105,108,101,110,116,108,121,32,105,103,110,111, - 114,101,100,46,10,233,0,0,0,0,78,99,1,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,112,0,0,0,151,0,116,0,0,0,0,0,0,0,0, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,106,4,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,114,28,116,7,0,0,0, - 0,0,0,0,0,124,0,116,0,0,0,0,0,0,0,0, - 0,106,8,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,172,1,171,2,0,0,0,0,0,0,1, - 0,121,0,121,0,41,2,78,169,1,218,4,102,105,108,101, + 105,116,32,105,115,32,110,111,116,32,109,101,110,116,105,111, + 110,101,100,32,105,110,32,101,105,116,104,101,114,32,112,97, + 116,104,32,99,111,110,102,105,103,117,114,97,116,105,111,110, + 32,102,105,108,101,46,10,10,84,104,101,32,114,101,97,100, + 108,105,110,101,32,109,111,100,117,108,101,32,105,115,32,97, + 108,115,111,32,97,117,116,111,109,97,116,105,99,97,108,108, + 121,32,99,111,110,102,105,103,117,114,101,100,32,116,111,32, + 101,110,97,98,108,101,10,99,111,109,112,108,101,116,105,111, + 110,32,102,111,114,32,115,121,115,116,101,109,115,32,116,104, + 97,116,32,115,117,112,112,111,114,116,32,105,116,46,32,32, + 84,104,105,115,32,99,97,110,32,98,101,32,111,118,101,114, + 114,105,100,100,101,110,32,105,110,10,115,105,116,101,99,117, + 115,116,111,109,105,122,101,44,32,117,115,101,114,99,117,115, + 116,111,109,105,122,101,32,111,114,32,80,89,84,72,79,78, + 83,84,65,82,84,85,80,46,32,32,83,116,97,114,116,105, + 110,103,32,80,121,116,104,111,110,32,105,110,10,105,115,111, + 108,97,116,101,100,32,109,111,100,101,32,40,45,73,41,32, + 100,105,115,97,98,108,101,115,32,97,117,116,111,109,97,116, + 105,99,32,114,101,97,100,108,105,110,101,32,99,111,110,102, + 105,103,117,114,97,116,105,111,110,46,10,10,65,102,116,101, + 114,32,116,104,101,115,101,32,111,112,101,114,97,116,105,111, + 110,115,44,32,97,110,32,97,116,116,101,109,112,116,32,105, + 115,32,109,97,100,101,32,116,111,32,105,109,112,111,114,116, + 32,97,32,109,111,100,117,108,101,10,110,97,109,101,100,32, + 115,105,116,101,99,117,115,116,111,109,105,122,101,44,32,119, + 104,105,99,104,32,99,97,110,32,112,101,114,102,111,114,109, + 32,97,114,98,105,116,114,97,114,121,32,97,100,100,105,116, + 105,111,110,97,108,10,115,105,116,101,45,115,112,101,99,105, + 102,105,99,32,99,117,115,116,111,109,105,122,97,116,105,111, + 110,115,46,32,32,73,102,32,116,104,105,115,32,105,109,112, + 111,114,116,32,102,97,105,108,115,32,119,105,116,104,32,97, + 110,10,73,109,112,111,114,116,69,114,114,111,114,32,101,120, + 99,101,112,116,105,111,110,44,32,105,116,32,105,115,32,115, + 105,108,101,110,116,108,121,32,105,103,110,111,114,101,100,46, + 10,233,0,0,0,0,78,99,1,0,0,0,0,0,0,0, + 0,0,0,0,5,0,0,0,3,0,0,0,243,116,0,0, + 0,149,0,91,0,0,0,0,0,0,0,0,0,82,2,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,25,0, + 0,91,7,0,0,0,0,0,0,0,0,85,0,91,0,0, + 0,0,0,0,0,0,0,82,8,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,1,57,2,32, + 0,103,0,103,0,41,2,78,169,1,218,4,102,105,108,101, 41,5,218,3,115,121,115,218,5,102,108,97,103,115,218,7, 118,101,114,98,111,115,101,218,5,112,114,105,110,116,218,6, 115,116,100,101,114,114,41,1,218,7,109,101,115,115,97,103, - 101,115,1,0,0,0,32,250,13,60,102,114,111,122,101,110, + 101,115,1,0,0,0,32,218,13,60,102,114,111,122,101,110, 32,115,105,116,101,62,218,6,95,116,114,97,99,101,114,13, - 0,0,0,92,0,0,0,115,34,0,0,0,128,0,220,7, - 10,135,121,129,121,215,7,24,210,7,24,220,8,13,136,103, - 156,67,159,74,153,74,214,8,39,240,3,0,8,25,243,0, + 0,0,0,93,0,0,0,115,34,0,0,0,128,0,220,7, + 10,135,121,129,121,215,7,24,215,7,24,220,8,13,136,103, + 156,67,159,74,153,74,211,8,39,240,3,0,8,25,243,0, 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,7,0,0,0,243,218,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,4,0, + 4,0,0,0,7,0,0,0,243,222,0,0,0,149,0,91, + 0,0,0,0,0,0,0,0,0,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,0,142,0,125,1,9,0,116,0,0,0,0,0,0, - 0,0,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,7,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,171,1,0, - 0,0,0,0,0,125,1,124,1,116,0,0,0,0,0,0, - 0,0,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,11,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,171,1,0, - 0,0,0,0,0,102,2,83,0,35,0,116,8,0,0,0, - 0,0,0,0,0,36,0,114,3,1,0,89,0,140,44,119, - 0,120,3,89,0,119,1,169,1,78,41,6,218,2,111,115, - 218,4,112,97,116,104,218,4,106,111,105,110,218,7,97,98, - 115,112,97,116,104,218,7,79,83,69,114,114,111,114,218,8, - 110,111,114,109,99,97,115,101,41,2,218,5,112,97,116,104, - 115,218,3,100,105,114,115,2,0,0,0,32,32,114,12,0, - 0,0,218,8,109,97,107,101,112,97,116,104,114,25,0,0, - 0,97,0,0,0,115,91,0,0,0,128,0,220,10,12,143, - 39,137,39,143,44,137,44,152,5,208,10,30,128,67,240,2, - 3,5,13,220,14,16,143,103,137,103,143,111,137,111,152,99, - 211,14,34,136,3,240,6,0,12,15,148,2,151,7,145,7, - 215,16,32,209,16,32,160,19,211,16,37,208,11,37,208,4, - 37,248,244,5,0,12,19,242,0,1,5,13,217,8,12,240, - 3,1,5,13,250,115,17,0,0,0,158,31,65,30,0,193, - 30,9,65,42,3,193,41,1,65,42,3,99,0,0,0,0, - 0,0,0,0,0,0,0,0,6,0,0,0,3,0,0,0, - 243,60,2,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,116,2,0,0,0,0,0,0,0,0,106,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,171,1,0,0,0, - 0,0,0,68,0,93,126,0,0,125,0,100,1,125,1,9, - 0,124,0,106,8,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,10,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,125,1,124,1,100, - 2,118,1,114,1,140,33,9,0,116,18,0,0,0,0,0, - 0,0,0,106,20,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,23,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,0,106,24,0, + 0,34,0,85,0,54,0,110,1,30,0,91,0,0,0,0, + 0,0,0,0,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,7,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,53, + 1,0,0,0,0,0,0,110,1,85,1,91,0,0,0,0, + 0,0,0,0,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,11,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,53, + 1,0,0,0,0,0,0,52,2,36,0,33,0,91,8,0, + 0,0,0,0,0,0,0,7,0,97,3,0,0,32,0,31, + 0,78,45,102,0,61,3,31,0,102,1,169,1,78,41,6, + 218,2,111,115,218,4,112,97,116,104,218,4,106,111,105,110, + 218,7,97,98,115,112,97,116,104,218,7,79,83,69,114,114, + 111,114,218,8,110,111,114,109,99,97,115,101,41,2,218,5, + 112,97,116,104,115,218,3,100,105,114,115,2,0,0,0,32, + 32,114,12,0,0,0,218,8,109,97,107,101,112,97,116,104, + 114,25,0,0,0,98,0,0,0,115,91,0,0,0,128,0, + 220,10,12,143,39,137,39,143,44,138,44,152,5,208,10,30, + 128,67,240,2,3,5,13,220,14,16,143,103,137,103,143,111, + 137,111,152,99,211,14,34,136,3,240,6,0,12,15,148,2, + 151,7,145,7,215,16,32,209,16,32,160,19,211,16,37,208, + 11,37,208,4,37,248,244,5,0,12,19,243,0,1,5,13, + 217,8,12,240,3,1,5,13,250,115,17,0,0,0,159,31, + 65,31,0,193,31,10,65,44,3,193,43,1,65,44,3,99, + 0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, + 3,0,0,0,243,80,2,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,91,2,0,0,0,0,0,0,0,0,82, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,82,7,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,53, + 1,0,0,0,0,0,0,19,0,72,130,0,0,110,0,83, + 1,110,1,30,0,85,0,82,8,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,82,10,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110, + 1,85,1,83,2,59,1,0,0,97,2,0,0,77,36,0, + 0,30,0,91,18,0,0,0,0,0,0,0,0,82,20,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,124,0,95,12,0,0,0, - 0,0,0,0,0,9,0,116,18,0,0,0,0,0,0,0, - 0,106,20,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,106,23,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,106,30,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,124,0,95,15,0,0,0,0,0, - 0,0,0,140,128,4,0,121,1,35,0,116,12,0,0,0, - 0,0,0,0,0,36,0,114,52,1,0,9,0,124,0,106, + 0,82,23,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,0,82,24,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,85,0,108,12,0,0,0,0,0,0,0,0,30, + 0,91,18,0,0,0,0,0,0,0,0,82,20,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82, + 23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,0,82,30,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,53,1,0,0,0,0,0, + 0,85,0,108,15,0,0,0,0,0,0,0,0,77,132,0, + 0,11,0,32,0,103,1,33,0,91,12,0,0,0,0,0, + 0,0,0,7,0,97,53,0,0,32,0,30,0,85,0,82, 14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,16,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,10,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,125,1,110,15,35, - 0,116,12,0,0,0,0,0,0,0,0,36,0,114,3,1, - 0,89,0,110,4,119,0,120,3,89,0,119,1,89,0,140, - 162,119,0,120,3,89,0,119,1,35,0,116,12,0,0,0, - 0,0,0,0,0,116,26,0,0,0,0,0,0,0,0,116, - 28,0,0,0,0,0,0,0,0,102,3,36,0,114,3,1, - 0,89,0,140,136,119,0,120,3,89,0,119,1,35,0,116, - 12,0,0,0,0,0,0,0,0,116,26,0,0,0,0,0, - 0,0,0,116,28,0,0,0,0,0,0,0,0,102,3,36, - 0,114,3,1,0,89,0,140,242,119,0,120,3,89,0,119, - 1,41,3,122,69,83,101,116,32,97,108,108,32,109,111,100, - 117,108,101,32,95,95,102,105,108,101,95,95,32,97,110,100, - 32,95,95,99,97,99,104,101,100,95,95,32,97,116,116,114, - 105,98,117,116,101,115,32,116,111,32,97,110,32,97,98,115, - 111,108,117,116,101,32,112,97,116,104,78,62,2,0,0,0, - 218,17,95,102,114,111,122,101,110,95,105,109,112,111,114,116, - 108,105,98,218,26,95,102,114,111,122,101,110,95,105,109,112, - 111,114,116,108,105,98,95,101,120,116,101,114,110,97,108,41, - 16,218,3,115,101,116,114,6,0,0,0,218,7,109,111,100, - 117,108,101,115,218,6,118,97,108,117,101,115,218,10,95,95, - 108,111,97,100,101,114,95,95,218,10,95,95,109,111,100,117, - 108,101,95,95,218,14,65,116,116,114,105,98,117,116,101,69, - 114,114,111,114,218,8,95,95,115,112,101,99,95,95,218,6, - 108,111,97,100,101,114,114,17,0,0,0,114,18,0,0,0, - 114,20,0,0,0,218,8,95,95,102,105,108,101,95,95,114, - 21,0,0,0,218,9,84,121,112,101,69,114,114,111,114,218, - 10,95,95,99,97,99,104,101,100,95,95,41,2,218,1,109, - 218,13,108,111,97,100,101,114,95,109,111,100,117,108,101,115, - 2,0,0,0,32,32,114,12,0,0,0,218,9,97,98,115, - 95,112,97,116,104,115,114,42,0,0,0,106,0,0,0,115, - 240,0,0,0,128,0,228,13,16,148,19,151,27,145,27,215, - 17,35,209,17,35,211,17,37,214,13,38,136,1,216,24,28, - 136,13,240,2,6,9,21,216,28,29,159,76,153,76,215,28, - 51,209,28,51,136,77,240,12,0,12,25,208,32,83,209,11, - 83,216,12,20,240,2,3,9,17,220,25,27,159,23,153,23, - 159,31,153,31,168,17,175,26,169,26,211,25,52,136,65,140, - 74,240,6,3,9,17,220,27,29,159,55,153,55,159,63,153, - 63,168,49,175,60,169,60,211,27,56,136,65,141,76,241,33, - 0,14,39,248,244,8,0,16,30,242,0,4,9,21,240,2, - 3,13,21,216,32,33,167,10,161,10,215,32,49,209,32,49, - 215,32,60,209,32,60,145,13,248,220,19,33,242,0,1,13, - 21,217,16,20,240,3,1,13,21,252,240,7,4,9,21,251, - 244,18,0,17,31,164,7,172,25,208,15,51,242,0,1,9, - 17,217,12,16,240,3,1,9,17,251,244,8,0,17,31,164, - 7,172,25,208,15,51,242,0,1,9,17,217,12,16,240,3, - 1,9,17,250,115,89,0,0,0,174,22,66,42,2,193,10, - 46,67,42,2,193,57,46,68,4,2,194,42,9,67,39,5, - 194,52,32,67,21,4,195,20,1,67,39,5,195,21,9,67, - 33,7,195,30,2,67,39,5,195,32,1,67,33,7,195,33, - 3,67,39,5,195,38,1,67,39,5,195,42,20,68,1,5, - 196,0,1,68,1,5,196,4,20,68,27,5,196,26,1,68, - 27,5,99,0,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,243,216,0,0,0,151,0,103,0, - 125,0,116,1,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,125,1,116,2,0,0,0,0,0,0,0,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,68,0,93,55,0,0,125,2,116,7,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 92,2,0,0,125,2,125,3,124,3,124,1,118,1,115,1, - 140,22,124,0,106,9,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,2,171,1,0,0,0,0, - 0,0,1,0,124,1,106,11,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,3,171,1,0,0, - 0,0,0,0,1,0,140,57,4,0,124,0,116,2,0,0, - 0,0,0,0,0,0,106,4,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,1,100,1,27,0, - 124,1,83,0,41,2,122,75,32,82,101,109,111,118,101,32, - 100,117,112,108,105,99,97,116,101,32,101,110,116,114,105,101, - 115,32,102,114,111,109,32,115,121,115,46,112,97,116,104,32, - 97,108,111,110,103,32,119,105,116,104,32,109,97,107,105,110, - 103,32,116,104,101,109,10,32,32,32,32,97,98,115,111,108, - 117,116,101,78,41,6,114,29,0,0,0,114,6,0,0,0, - 114,18,0,0,0,114,25,0,0,0,218,6,97,112,112,101, - 110,100,218,3,97,100,100,41,4,218,1,76,218,11,107,110, - 111,119,110,95,112,97,116,104,115,114,24,0,0,0,218,7, - 100,105,114,99,97,115,101,115,4,0,0,0,32,32,32,32, - 114,12,0,0,0,218,14,114,101,109,111,118,101,100,117,112, - 112,97,116,104,115,114,49,0,0,0,129,0,0,0,115,97, - 0,0,0,128,0,240,10,0,9,11,128,65,220,18,21,147, - 37,128,75,220,15,18,143,120,140,120,136,3,244,8,0,24, - 32,160,3,147,125,137,12,136,3,136,87,216,11,18,152,43, - 210,11,37,216,12,13,143,72,137,72,144,83,140,77,216,12, - 23,143,79,137,79,152,71,213,12,36,240,15,0,16,24,240, - 16,0,19,20,132,67,135,72,129,72,137,81,128,75,216,11, - 22,208,4,22,114,14,0,0,0,99,0,0,0,0,0,0, - 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,224, - 0,0,0,151,0,116,1,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,125,0,116,2,0,0,0,0,0, - 0,0,0,106,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,68,0,93,65,0,0,125,1,9, - 0,116,6,0,0,0,0,0,0,0,0,106,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,1,171,1,0,0,0,0,0,0,114,31,116, - 11,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,92,2,0,0,125,2,125,3,124,0,106,13,0, + 0,0,0,82,16,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,82,10,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,110,1,31,0,78, + 152,33,0,91,12,0,0,0,0,0,0,0,0,7,0,97, + 4,0,0,32,0,31,0,31,0,78,165,102,0,61,3,31, + 0,102,1,102,0,61,3,31,0,102,1,33,0,91,12,0, + 0,0,0,0,0,0,0,91,26,0,0,0,0,0,0,0, + 0,91,28,0,0,0,0,0,0,0,0,52,3,7,0,97, + 3,0,0,32,0,31,0,78,141,102,0,61,3,31,0,102, + 1,33,0,91,12,0,0,0,0,0,0,0,0,91,26,0, + 0,0,0,0,0,0,0,91,28,0,0,0,0,0,0,0, + 0,52,3,7,0,97,4,0,0,32,0,31,0,77,252,0, + 0,102,0,61,3,31,0,102,1,41,3,122,69,83,101,116, + 32,97,108,108,32,109,111,100,117,108,101,32,95,95,102,105, + 108,101,95,95,32,97,110,100,32,95,95,99,97,99,104,101, + 100,95,95,32,97,116,116,114,105,98,117,116,101,115,32,116, + 111,32,97,110,32,97,98,115,111,108,117,116,101,32,112,97, + 116,104,78,62,2,0,0,0,218,17,95,102,114,111,122,101, + 110,95,105,109,112,111,114,116,108,105,98,218,26,95,102,114, + 111,122,101,110,95,105,109,112,111,114,116,108,105,98,95,101, + 120,116,101,114,110,97,108,41,16,218,3,115,101,116,114,6, + 0,0,0,218,7,109,111,100,117,108,101,115,218,6,118,97, + 108,117,101,115,218,10,95,95,108,111,97,100,101,114,95,95, + 218,10,95,95,109,111,100,117,108,101,95,95,218,14,65,116, + 116,114,105,98,117,116,101,69,114,114,111,114,218,8,95,95, + 115,112,101,99,95,95,218,6,108,111,97,100,101,114,114,17, + 0,0,0,114,18,0,0,0,114,20,0,0,0,218,8,95, + 95,102,105,108,101,95,95,114,21,0,0,0,218,9,84,121, + 112,101,69,114,114,111,114,218,10,95,95,99,97,99,104,101, + 100,95,95,41,2,218,1,109,218,13,108,111,97,100,101,114, + 95,109,111,100,117,108,101,115,2,0,0,0,32,32,114,12, + 0,0,0,218,9,97,98,115,95,112,97,116,104,115,114,42, + 0,0,0,107,0,0,0,115,240,0,0,0,128,0,228,13, + 16,148,19,151,27,145,27,215,17,35,209,17,35,211,17,37, + 214,13,38,136,1,216,24,28,136,13,240,2,6,9,21,216, + 28,29,159,76,153,76,215,28,51,209,28,51,136,77,240,12, + 0,12,25,208,32,83,211,11,83,217,12,20,240,2,3,9, + 17,220,25,27,159,23,153,23,159,31,153,31,168,17,175,26, + 169,26,211,25,52,136,65,140,74,240,6,3,9,17,220,27, + 29,159,55,153,55,159,63,153,63,168,49,175,60,169,60,211, + 27,56,136,65,142,76,242,33,0,14,39,248,244,8,0,16, + 30,243,0,4,9,21,240,2,3,13,21,216,32,33,167,10, + 161,10,215,32,49,209,32,49,215,32,60,209,32,60,146,13, + 248,220,19,33,243,0,1,13,21,218,16,20,240,3,1,13, + 21,250,240,7,4,9,21,251,244,18,0,17,31,164,7,172, + 25,208,15,51,243,0,1,9,17,217,12,16,240,3,1,9, + 17,251,244,8,0,17,31,164,7,172,25,208,15,51,243,0, + 1,9,17,218,12,16,240,3,1,9,17,250,115,77,0,0, + 0,174,22,66,47,2,193,13,46,67,49,2,193,60,46,68, + 12,2,194,47,10,67,46,5,194,58,32,67,28,4,195,28, + 10,67,42,7,195,38,1,67,46,5,195,41,1,67,42,7, + 195,42,4,67,46,5,195,49,21,68,9,5,196,8,1,68, + 9,5,196,12,21,68,37,5,196,36,1,68,37,5,99,0, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,243,222,0,0,0,149,0,47,0,110,0,91,1, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 110,1,91,2,0,0,0,0,0,0,0,0,82,4,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,3,171,1,0,0,0,0,0,0,1,0,140,67,4, - 0,124,0,83,0,35,0,116,14,0,0,0,0,0,0,0, - 0,36,0,114,3,1,0,89,0,140,81,119,0,120,3,89, - 0,119,1,41,1,122,69,82,101,116,117,114,110,32,97,32, - 115,101,116,32,99,111,110,116,97,105,110,105,110,103,32,97, - 108,108,32,101,120,105,115,116,105,110,103,32,102,105,108,101, - 32,115,121,115,116,101,109,32,105,116,101,109,115,32,102,114, - 111,109,32,115,121,115,46,112,97,116,104,46,41,8,114,29, - 0,0,0,114,6,0,0,0,114,18,0,0,0,114,17,0, - 0,0,218,6,101,120,105,115,116,115,114,25,0,0,0,114, - 45,0,0,0,114,38,0,0,0,41,4,218,1,100,218,4, - 105,116,101,109,218,1,95,218,8,105,116,101,109,99,97,115, - 101,115,4,0,0,0,32,32,32,32,114,12,0,0,0,218, - 14,95,105,110,105,116,95,112,97,116,104,105,110,102,111,114, - 56,0,0,0,148,0,0,0,115,96,0,0,0,128,0,228, - 8,11,139,5,128,65,220,16,19,151,8,148,8,136,4,240, - 2,5,9,21,220,15,17,143,119,137,119,143,126,137,126,152, - 100,212,15,35,220,30,38,160,116,155,110,145,11,144,1,144, - 56,216,16,17,151,5,145,5,144,104,148,15,248,240,9,0, - 17,25,240,14,0,12,13,128,72,248,244,5,0,16,25,242, - 0,1,9,21,217,12,20,240,3,1,9,21,250,115,17,0, - 0,0,159,62,65,33,2,193,33,9,65,45,5,193,44,1, - 65,45,5,99,3,0,0,0,0,0,0,0,0,0,0,0, - 9,0,0,0,3,0,0,0,243,192,5,0,0,151,0,124, - 2,128,13,116,1,0,0,0,0,0,0,0,0,171,0,0, - 0,0,0,0,0,125,2,100,2,125,3,110,2,100,3,125, - 3,116,2,0,0,0,0,0,0,0,0,106,4,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,124,1,171,2,0,0,0,0,0,0,125, - 4,9,0,116,3,0,0,0,0,0,0,0,0,106,8,0, + 19,0,72,57,0,0,110,2,91,7,0,0,0,0,0,0, + 0,0,85,2,53,1,0,0,0,0,0,0,117,2,0,0, + 112,35,88,49,59,1,0,0,100,2,0,0,77,23,0,0, + 85,0,82,9,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,2,53,1,0,0,0,0,0,0, + 32,0,85,1,82,11,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,3,53,1,0,0,0,0, + 0,0,32,0,77,59,0,0,11,0,32,0,85,0,91,2, + 0,0,0,0,0,0,0,0,82,4,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,1,83,1, + 38,0,85,1,36,0,41,2,122,70,82,101,109,111,118,101, + 32,100,117,112,108,105,99,97,116,101,32,101,110,116,114,105, + 101,115,32,102,114,111,109,32,115,121,115,46,112,97,116,104, + 32,97,108,111,110,103,32,119,105,116,104,32,109,97,107,105, + 110,103,32,116,104,101,109,10,97,98,115,111,108,117,116,101, + 78,41,6,114,29,0,0,0,114,6,0,0,0,114,18,0, + 0,0,114,25,0,0,0,218,6,97,112,112,101,110,100,218, + 3,97,100,100,41,4,218,1,76,218,11,107,110,111,119,110, + 95,112,97,116,104,115,114,24,0,0,0,218,7,100,105,114, + 99,97,115,101,115,4,0,0,0,32,32,32,32,114,12,0, + 0,0,218,14,114,101,109,111,118,101,100,117,112,112,97,116, + 104,115,114,49,0,0,0,130,0,0,0,115,93,0,0,0, + 128,0,240,10,0,9,11,128,65,220,18,21,147,37,128,75, + 220,15,18,143,120,140,120,136,3,244,8,0,24,32,160,3, + 147,125,137,12,136,3,216,11,18,213,11,37,216,12,13,143, + 72,137,72,144,83,140,77,216,12,23,143,79,137,79,152,71, + 214,12,36,241,15,0,16,24,240,16,0,19,20,132,67,135, + 72,129,72,137,81,128,75,216,11,22,208,4,22,114,14,0, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,5, + 0,0,0,3,0,0,0,243,244,0,0,0,149,0,91,1, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 110,0,91,2,0,0,0,0,0,0,0,0,82,4,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,4,171,1,0,0,0,0,0,0,125,5,116,13,0, - 0,0,0,0,0,0,0,124,5,100,4,100,5,171,3,0, - 0,0,0,0,0,116,14,0,0,0,0,0,0,0,0,106, - 16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,122,1,0,0,115,30,116,13,0,0,0,0,0, - 0,0,0,124,5,100,6,100,5,171,3,0,0,0,0,0, - 0,116,14,0,0,0,0,0,0,0,0,106,18,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122, - 1,0,0,114,15,116,21,0,0,0,0,0,0,0,0,100, - 7,124,4,155,2,157,2,171,1,0,0,0,0,0,0,1, - 0,121,1,116,21,0,0,0,0,0,0,0,0,100,8,124, - 4,155,2,157,2,171,1,0,0,0,0,0,0,1,0,9, - 0,116,23,0,0,0,0,0,0,0,0,106,24,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 4,171,1,0,0,0,0,0,0,53,0,125,6,124,6,106, - 27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,125,7,100,1,100, - 1,100,1,171,2,0,0,0,0,0,0,1,0,9,0,127, - 7,106,29,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,9,171,1,0,0,0,0,0,0,125, - 7,116,37,0,0,0,0,0,0,0,0,124,7,106,39,0, + 19,0,72,72,0,0,110,1,30,0,91,6,0,0,0,0, + 0,0,0,0,82,4,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,82,9,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,97,32, + 0,0,91,11,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,117,2,0,0,112,35,85,0,82,13, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,100,12,171,2,0,0,0, - 0,0,0,68,0,93,187,0,0,92,2,0,0,125,9,125, - 10,124,10,106,41,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,13,171,1,0,0,0,0,0, - 0,114,1,140,24,124,10,106,43,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0, - 0,0,0,100,14,107,40,0,0,114,1,140,44,9,0,124, - 10,106,41,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,15,171,1,0,0,0,0,0,0,114, - 12,116,45,0,0,0,0,0,0,0,0,124,10,171,1,0, - 0,0,0,0,0,1,0,140,74,124,10,106,47,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,125,10,116,49,0,0,0,0,0, - 0,0,0,124,0,124,10,171,2,0,0,0,0,0,0,92, - 2,0,0,125,11,125,12,124,12,124,2,118,1,114,79,116, - 2,0,0,0,0,0,0,0,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,51,0, + 0,0,85,3,53,1,0,0,0,0,0,0,32,0,77,72, + 0,0,77,74,0,0,11,0,32,0,85,0,36,0,33,0, + 91,14,0,0,0,0,0,0,0,0,7,0,97,4,0,0, + 32,0,31,0,77,91,0,0,102,0,61,3,31,0,102,1, + 41,1,122,69,82,101,116,117,114,110,32,97,32,115,101,116, + 32,99,111,110,116,97,105,110,105,110,103,32,97,108,108,32, + 101,120,105,115,116,105,110,103,32,102,105,108,101,32,115,121, + 115,116,101,109,32,105,116,101,109,115,32,102,114,111,109,32, + 115,121,115,46,112,97,116,104,46,41,8,114,29,0,0,0, + 114,6,0,0,0,114,18,0,0,0,114,17,0,0,0,218, + 6,101,120,105,115,116,115,114,25,0,0,0,114,45,0,0, + 0,114,38,0,0,0,41,4,218,1,100,218,4,105,116,101, + 109,218,1,95,218,8,105,116,101,109,99,97,115,101,115,4, + 0,0,0,32,32,32,32,114,12,0,0,0,218,14,95,105, + 110,105,116,95,112,97,116,104,105,110,102,111,114,56,0,0, + 0,149,0,0,0,115,101,0,0,0,128,0,228,8,11,139, + 5,128,65,220,16,19,151,8,148,8,136,4,240,2,5,9, + 21,220,15,17,143,119,137,119,143,126,137,126,152,100,215,15, + 35,209,15,35,220,30,38,160,116,155,110,145,11,144,1,216, + 16,17,151,5,145,5,144,104,150,15,241,5,0,16,36,241, + 5,0,17,25,240,14,0,12,13,128,72,248,244,5,0,16, + 25,243,0,1,9,21,218,12,20,240,3,1,9,21,250,115, + 18,0,0,0,159,65,2,65,41,2,193,41,10,65,55,5, + 193,54,1,65,55,5,99,3,0,0,0,0,0,0,0,0, + 0,0,0,9,0,0,0,3,0,0,0,243,34,6,0,0, + 149,0,85,2,99,13,0,0,91,1,0,0,0,0,0,0, + 0,0,53,0,0,0,0,0,0,0,110,2,83,2,110,3, + 79,2,83,3,110,3,91,2,0,0,0,0,0,0,0,0, + 82,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,82,7,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,88,1,53,2,0,0,0,0, + 0,0,110,4,30,0,91,2,0,0,0,0,0,0,0,0, + 82,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,34,0,85,4,53,1,0,0,0,0,0,0, + 110,5,91,13,0,0,0,0,0,0,0,0,85,5,83,4, + 83,5,53,3,0,0,0,0,0,0,91,14,0,0,0,0, + 0,0,0,0,82,16,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,45,1,0,0,40,0,0,0, + 0,0,0,0,100,35,0,0,91,13,0,0,0,0,0,0, + 0,0,85,5,83,6,83,5,53,3,0,0,0,0,0,0, + 91,14,0,0,0,0,0,0,0,0,82,18,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,1, + 0,0,40,0,0,0,0,0,0,0,97,16,0,0,91,21, + 0,0,0,0,0,0,0,0,83,7,85,4,60,2,14,0, + 51,2,53,1,0,0,0,0,0,0,32,0,103,1,91,21, + 0,0,0,0,0,0,0,0,83,8,85,4,60,2,14,0, + 51,2,53,1,0,0,0,0,0,0,32,0,30,0,91,22, + 0,0,0,0,0,0,0,0,82,24,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,85,4, + 53,1,0,0,0,0,0,0,2,0,110,6,85,6,82,27, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,11,171,1,0,0,0,0,0,0,114,48,116,52,0, - 0,0,0,0,0,0,0,106,4,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,106,55,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 11,171,1,0,0,0,0,0,0,1,0,124,2,106,57,0, + 0,0,53,0,0,0,0,0,0,0,110,7,83,1,83,1, + 83,1,53,2,0,0,0,0,0,0,32,0,30,0,87,7, + 82,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,9,53,1,0,0,0,0,0,0,110,7, + 91,37,0,0,0,0,0,0,0,0,85,7,82,39,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,12,171,1,0,0,0,0,0,0,1,0,140,189,4, - 0,124,3,114,2,100,1,125,2,124,2,83,0,35,0,116, - 10,0,0,0,0,0,0,0,0,36,0,114,3,1,0,89, - 0,121,1,119,0,120,3,89,0,119,1,35,0,49,0,115, - 1,119,2,1,0,89,0,1,0,1,0,144,1,140,9,120, - 3,89,0,119,1,35,0,116,10,0,0,0,0,0,0,0, - 0,36,0,114,3,1,0,89,0,121,1,119,0,120,3,89, - 0,119,1,35,0,116,30,0,0,0,0,0,0,0,0,36, - 0,114,70,1,0,100,5,100,1,108,16,125,8,127,7,106, - 29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,8,106,35,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,171,1,0,0,0,0,0,0,125,7,116,21,0,0,0, - 0,0,0,0,0,100,10,124,4,155,2,100,11,124,8,106, - 35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,155,2,157,4,171, - 1,0,0,0,0,0,0,1,0,89,0,144,1,140,87,119, - 0,120,3,89,0,119,1,35,0,116,58,0,0,0,0,0, - 0,0,0,36,0,114,151,125,13,116,61,0,0,0,0,0, - 0,0,0,100,16,124,9,100,17,155,4,100,18,124,4,155, - 0,100,19,157,5,116,52,0,0,0,0,0,0,0,0,106, - 62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,172,20,171,2,0,0,0,0,0,0,1,0,100, - 5,100,1,108,32,125,14,124,14,106,67,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,13,171, - 1,0,0,0,0,0,0,68,0,93,53,0,0,125,15,124, - 15,106,39,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,68,0,93, - 32,0,0,125,10,116,61,0,0,0,0,0,0,0,0,100, - 21,124,10,122,0,0,0,116,52,0,0,0,0,0,0,0, - 0,106,62,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,172,20,171,2,0,0,0,0,0,0,1, - 0,140,34,4,0,140,55,4,0,116,61,0,0,0,0,0, - 0,0,0,100,22,116,52,0,0,0,0,0,0,0,0,106, - 62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,172,20,171,2,0,0,0,0,0,0,1,0,89, - 0,100,1,125,13,126,13,1,0,144,1,140,30,100,1,125, - 13,126,13,119,1,119,0,120,3,89,0,119,1,41,23,122, - 214,80,114,111,99,101,115,115,32,97,32,46,112,116,104,32, - 102,105,108,101,32,119,105,116,104,105,110,32,116,104,101,32, - 115,105,116,101,45,112,97,99,107,97,103,101,115,32,100,105, - 114,101,99,116,111,114,121,58,10,32,32,32,32,32,32,32, - 70,111,114,32,101,97,99,104,32,108,105,110,101,32,105,110, - 32,116,104,101,32,102,105,108,101,44,32,101,105,116,104,101, - 114,32,99,111,109,98,105,110,101,32,105,116,32,119,105,116, - 104,32,115,105,116,101,100,105,114,32,116,111,32,97,32,112, - 97,116,104,10,32,32,32,32,32,32,32,97,110,100,32,97, - 100,100,32,116,104,97,116,32,116,111,32,107,110,111,119,110, - 95,112,97,116,104,115,44,32,111,114,32,101,120,101,99,117, - 116,101,32,105,116,32,105,102,32,105,116,32,115,116,97,114, - 116,115,32,119,105,116,104,32,39,105,109,112,111,114,116,32, - 39,46,10,32,32,32,32,78,84,70,218,8,115,116,95,102, - 108,97,103,115,114,2,0,0,0,218,18,115,116,95,102,105, - 108,101,95,97,116,116,114,105,98,117,116,101,115,122,27,83, - 107,105,112,112,105,110,103,32,104,105,100,100,101,110,32,46, - 112,116,104,32,102,105,108,101,58,32,122,22,80,114,111,99, - 101,115,115,105,110,103,32,46,112,116,104,32,102,105,108,101, - 58,32,122,9,117,116,102,45,56,45,115,105,103,122,12,67, - 97,110,110,111,116,32,114,101,97,100,32,122,35,32,97,115, - 32,85,84,70,45,56,46,32,85,115,105,110,103,32,102,97, - 108,108,98,97,99,107,32,101,110,99,111,100,105,110,103,32, - 233,1,0,0,0,218,1,35,218,0,41,2,122,7,105,109, - 112,111,114,116,32,122,7,105,109,112,111,114,116,9,122,22, - 69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103, - 32,108,105,110,101,32,114,52,0,0,0,122,4,32,111,102, - 32,122,2,58,10,114,4,0,0,0,122,2,32,32,122,26, - 10,82,101,109,97,105,110,100,101,114,32,111,102,32,102,105, - 108,101,32,105,103,110,111,114,101,100,41,34,114,56,0,0, - 0,114,17,0,0,0,114,18,0,0,0,114,19,0,0,0, - 218,5,108,115,116,97,116,114,21,0,0,0,218,7,103,101, - 116,97,116,116,114,218,4,115,116,97,116,218,9,85,70,95, - 72,73,68,68,69,78,218,21,70,73,76,69,95,65,84,84, - 82,73,66,85,84,69,95,72,73,68,68,69,78,114,13,0, - 0,0,218,2,105,111,218,9,111,112,101,110,95,99,111,100, - 101,218,4,114,101,97,100,218,6,100,101,99,111,100,101,218, - 18,85,110,105,99,111,100,101,68,101,99,111,100,101,69,114, - 114,111,114,218,6,108,111,99,97,108,101,218,11,103,101,116, - 101,110,99,111,100,105,110,103,218,9,101,110,117,109,101,114, - 97,116,101,218,10,115,112,108,105,116,108,105,110,101,115,218, - 10,115,116,97,114,116,115,119,105,116,104,218,5,115,116,114, - 105,112,218,4,101,120,101,99,218,6,114,115,116,114,105,112, - 114,25,0,0,0,114,51,0,0,0,114,6,0,0,0,114, - 44,0,0,0,114,45,0,0,0,218,9,69,120,99,101,112, - 116,105,111,110,114,9,0,0,0,114,10,0,0,0,218,9, - 116,114,97,99,101,98,97,99,107,218,16,102,111,114,109,97, - 116,95,101,120,99,101,112,116,105,111,110,41,16,218,7,115, - 105,116,101,100,105,114,218,4,110,97,109,101,114,47,0,0, - 0,218,5,114,101,115,101,116,218,8,102,117,108,108,110,97, - 109,101,218,2,115,116,218,1,102,218,11,112,116,104,95,99, - 111,110,116,101,110,116,114,73,0,0,0,218,1,110,218,4, - 108,105,110,101,114,24,0,0,0,114,48,0,0,0,218,3, - 101,120,99,114,82,0,0,0,218,6,114,101,99,111,114,100, - 115,16,0,0,0,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,114,12,0,0,0,218,10,97,100,100,112, - 97,99,107,97,103,101,114,95,0,0,0,161,0,0,0,115, - 152,2,0,0,128,0,240,10,0,8,19,208,7,26,220,22, - 36,211,22,38,136,11,216,16,20,137,5,224,16,21,136,5, - 220,15,17,143,119,137,119,143,124,137,124,152,71,160,84,211, - 15,42,128,72,240,2,3,5,15,220,13,15,143,88,137,88, - 144,104,211,13,31,136,2,244,6,0,10,17,144,18,144,90, - 160,17,211,9,35,164,100,167,110,161,110,210,9,52,220,9, - 16,144,18,208,21,41,168,49,211,9,45,180,4,215,48,74, - 209,48,74,210,9,74,220,8,14,208,17,44,168,88,168,76, - 208,15,57,212,8,58,216,8,14,220,4,10,208,13,35,160, - 72,160,60,208,11,48,212,4,49,240,2,4,5,15,220,13, - 15,143,92,137,92,152,40,212,13,35,160,113,216,26,27,159, - 38,153,38,155,40,136,75,247,3,0,14,36,240,10,10,5, - 68,1,240,6,0,23,34,215,22,40,209,22,40,168,27,211, - 22,53,136,11,244,18,0,20,29,152,91,215,29,51,209,29, - 51,211,29,53,176,113,214,19,57,137,7,136,1,136,52,216, - 11,15,143,63,137,63,152,51,212,11,31,216,12,20,216,11, - 15,143,58,137,58,139,60,152,50,210,11,29,216,12,20,240, - 2,17,9,18,216,15,19,143,127,137,127,208,31,54,212,15, - 55,220,16,20,144,84,148,10,216,16,24,216,19,23,151,59, - 145,59,147,61,136,68,220,27,35,160,71,168,84,211,27,50, - 137,76,136,67,144,23,216,15,22,152,107,209,15,41,172,98, - 175,103,169,103,175,110,169,110,184,83,212,46,65,220,16,19, - 151,8,145,8,151,15,145,15,160,3,212,16,36,216,16,27, - 151,15,145,15,160,7,212,16,40,248,240,27,0,20,58,241, - 46,0,8,13,216,22,26,136,11,216,11,22,208,4,22,248, - 244,101,1,0,12,19,242,0,1,5,15,217,8,14,240,3, - 1,5,15,250,247,16,0,14,36,209,13,35,251,228,11,18, - 242,0,1,5,15,217,8,14,240,3,1,5,15,251,244,14, - 0,12,30,242,0,6,5,68,1,243,6,0,9,22,216,22, - 33,215,22,40,209,22,40,168,22,215,41,59,209,41,59,211, - 41,61,211,22,62,136,11,220,8,14,144,28,152,104,152,92, - 240,0,1,42,42,216,42,48,215,42,60,209,42,60,211,42, - 62,208,41,65,240,3,1,16,67,1,247,0,1,9,68,1, - 240,11,6,5,68,1,251,244,44,0,16,25,242,0,8,9, - 18,220,12,17,208,20,42,168,49,168,81,168,37,168,116,176, - 72,176,58,184,83,208,18,65,220,23,26,151,122,145,122,245, - 3,1,13,35,227,12,28,216,26,35,215,26,52,209,26,52, - 176,83,214,26,57,144,6,216,28,34,215,28,45,209,28,45, - 214,28,47,144,68,220,20,25,152,36,152,116,153,41,172,35, - 175,42,169,42,214,20,53,241,3,0,29,48,240,3,0,27, - 58,244,6,0,13,18,208,18,47,180,99,183,106,177,106,213, - 12,65,222,12,17,251,240,17,8,9,18,250,115,110,0,0, - 0,179,21,71,0,0,194,34,21,71,28,0,194,55,17,71, - 15,3,195,8,8,71,28,0,195,17,17,71,43,0,196,41, - 28,72,61,2,197,6,65,50,72,61,2,199,0,9,71,12, - 3,199,11,1,71,12,3,199,15,5,71,25,7,199,20,8, - 71,28,0,199,28,9,71,40,3,199,39,1,71,40,3,199, - 43,65,11,72,58,3,200,57,1,72,58,3,200,61,9,75, - 29,5,201,6,66,11,75,24,5,203,24,5,75,29,5,99, + 53,0,0,0,0,0,0,0,83,12,53,2,0,0,0,0, + 0,0,19,0,72,209,0,0,117,2,0,0,112,154,85,10, + 82,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,13,53,1,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,97,2,0,0,77,29,0,0,85,10, + 82,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,83,14,58,88, + 0,0,97,2,0,0,77,51,0,0,30,0,85,10,82,41, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,83,15,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,97,13,0,0,91,45,0,0,0,0,0,0, + 0,0,85,10,53,1,0,0,0,0,0,0,32,0,77,87, + 0,0,85,10,82,47,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0, + 110,10,91,49,0,0,0,0,0,0,0,0,88,10,53,2, + 0,0,0,0,0,0,117,2,0,0,112,188,88,194,59,1, + 0,0,97,88,0,0,91,2,0,0,0,0,0,0,0,0, + 82,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,82,51,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,11,53,1,0,0,0,0, + 0,0,40,0,0,0,0,0,0,0,97,50,0,0,91,52, + 0,0,0,0,0,0,0,0,82,4,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,82,55,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 85,11,53,1,0,0,0,0,0,0,32,0,85,2,82,57, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,85,12,53,1,0,0,0,0,0,0,32,0,77,207, + 0,0,77,209,0,0,77,211,0,0,11,0,32,0,85,3, + 40,0,0,0,0,0,0,0,97,2,0,0,83,1,110,2, + 85,2,36,0,33,0,91,10,0,0,0,0,0,0,0,0, + 7,0,97,3,0,0,32,0,31,0,103,1,102,0,61,3, + 31,0,102,1,33,0,44,0,40,0,0,0,0,0,0,0, + 100,1,0,0,102,2,32,0,31,0,32,0,32,0,71,1, + 78,43,61,3,31,0,102,1,33,0,91,10,0,0,0,0, + 0,0,0,0,7,0,97,3,0,0,32,0,31,0,103,1, + 102,0,61,3,31,0,102,1,33,0,91,30,0,0,0,0, + 0,0,0,0,7,0,97,72,0,0,32,0,83,5,83,1, + 75,16,110,8,87,7,82,29,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,8,82,35,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 53,0,0,0,0,0,0,0,53,1,0,0,0,0,0,0, + 110,7,91,21,0,0,0,0,0,0,0,0,83,10,85,4, + 60,2,14,0,83,11,85,8,82,35,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,60,2,14,0,51,4,53,1,0,0,0,0, + 0,0,32,0,31,0,71,1,78,125,102,0,61,3,31,0, + 102,1,33,0,91,58,0,0,0,0,0,0,0,0,7,0, + 97,147,0,0,110,13,91,61,0,0,0,0,0,0,0,0, + 83,16,85,9,83,17,15,0,83,18,85,4,14,0,83,19, + 51,5,91,52,0,0,0,0,0,0,0,0,82,62,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 83,20,57,2,32,0,83,5,83,1,75,32,110,14,85,14, + 82,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,13,53,1,0,0,0,0,0,0,19,0, + 72,53,0,0,110,15,85,15,82,39,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,19,0,72,30,0,0,110,10,91,61,0,0, + 0,0,0,0,0,0,83,21,85,10,45,0,0,0,91,52, + 0,0,0,0,0,0,0,0,82,62,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,20,57,2, + 32,0,77,32,0,0,11,0,32,0,77,55,0,0,11,0, + 32,0,91,61,0,0,0,0,0,0,0,0,83,22,91,52, + 0,0,0,0,0,0,0,0,82,62,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,20,57,2, + 32,0,31,0,83,1,110,13,65,13,32,0,71,1,77,42, + 0,0,83,1,110,13,65,13,102,1,102,0,61,3,31,0, + 102,1,41,23,122,196,80,114,111,99,101,115,115,32,97,32, + 46,112,116,104,32,102,105,108,101,32,119,105,116,104,105,110, + 32,116,104,101,32,115,105,116,101,45,112,97,99,107,97,103, + 101,115,32,100,105,114,101,99,116,111,114,121,58,10,70,111, + 114,32,101,97,99,104,32,108,105,110,101,32,105,110,32,116, + 104,101,32,102,105,108,101,44,32,101,105,116,104,101,114,32, + 99,111,109,98,105,110,101,32,105,116,32,119,105,116,104,32, + 115,105,116,101,100,105,114,32,116,111,32,97,32,112,97,116, + 104,10,97,110,100,32,97,100,100,32,116,104,97,116,32,116, + 111,32,107,110,111,119,110,95,112,97,116,104,115,44,32,111, + 114,32,101,120,101,99,117,116,101,32,105,116,32,105,102,32, + 105,116,32,115,116,97,114,116,115,32,119,105,116,104,32,39, + 105,109,112,111,114,116,32,39,46,10,78,84,70,218,8,115, + 116,95,102,108,97,103,115,114,2,0,0,0,218,18,115,116, + 95,102,105,108,101,95,97,116,116,114,105,98,117,116,101,115, + 122,27,83,107,105,112,112,105,110,103,32,104,105,100,100,101, + 110,32,46,112,116,104,32,102,105,108,101,58,32,122,22,80, + 114,111,99,101,115,115,105,110,103,32,46,112,116,104,32,102, + 105,108,101,58,32,122,9,117,116,102,45,56,45,115,105,103, + 122,12,67,97,110,110,111,116,32,114,101,97,100,32,122,35, + 32,97,115,32,85,84,70,45,56,46,32,85,115,105,110,103, + 32,102,97,108,108,98,97,99,107,32,101,110,99,111,100,105, + 110,103,32,233,1,0,0,0,218,1,35,218,0,41,2,122, + 7,105,109,112,111,114,116,32,122,7,105,109,112,111,114,116, + 9,122,22,69,114,114,111,114,32,112,114,111,99,101,115,115, + 105,110,103,32,108,105,110,101,32,114,52,0,0,0,122,4, + 32,111,102,32,122,2,58,10,114,4,0,0,0,122,2,32, + 32,122,26,10,82,101,109,97,105,110,100,101,114,32,111,102, + 32,102,105,108,101,32,105,103,110,111,114,101,100,41,34,114, + 56,0,0,0,114,17,0,0,0,114,18,0,0,0,114,19, + 0,0,0,218,5,108,115,116,97,116,114,21,0,0,0,218, + 7,103,101,116,97,116,116,114,218,4,115,116,97,116,218,9, + 85,70,95,72,73,68,68,69,78,218,21,70,73,76,69,95, + 65,84,84,82,73,66,85,84,69,95,72,73,68,68,69,78, + 114,13,0,0,0,218,2,105,111,218,9,111,112,101,110,95, + 99,111,100,101,218,4,114,101,97,100,218,6,100,101,99,111, + 100,101,218,18,85,110,105,99,111,100,101,68,101,99,111,100, + 101,69,114,114,111,114,218,6,108,111,99,97,108,101,218,11, + 103,101,116,101,110,99,111,100,105,110,103,218,9,101,110,117, + 109,101,114,97,116,101,218,10,115,112,108,105,116,108,105,110, + 101,115,218,10,115,116,97,114,116,115,119,105,116,104,218,5, + 115,116,114,105,112,218,4,101,120,101,99,218,6,114,115,116, + 114,105,112,114,25,0,0,0,114,51,0,0,0,114,6,0, + 0,0,114,44,0,0,0,114,45,0,0,0,218,9,69,120, + 99,101,112,116,105,111,110,114,9,0,0,0,114,10,0,0, + 0,218,9,116,114,97,99,101,98,97,99,107,218,16,102,111, + 114,109,97,116,95,101,120,99,101,112,116,105,111,110,41,16, + 218,7,115,105,116,101,100,105,114,218,4,110,97,109,101,114, + 47,0,0,0,218,5,114,101,115,101,116,218,8,102,117,108, + 108,110,97,109,101,218,2,115,116,218,1,102,218,11,112,116, + 104,95,99,111,110,116,101,110,116,114,73,0,0,0,218,1, + 110,218,4,108,105,110,101,114,24,0,0,0,114,48,0,0, + 0,218,3,101,120,99,114,82,0,0,0,218,6,114,101,99, + 111,114,100,115,16,0,0,0,32,32,32,32,32,32,32,32, + 32,32,32,32,32,32,32,32,114,12,0,0,0,218,10,97, + 100,100,112,97,99,107,97,103,101,114,95,0,0,0,162,0, + 0,0,115,159,2,0,0,128,0,240,10,0,8,19,209,7, + 26,220,22,36,211,22,38,136,11,216,16,20,137,5,224,16, + 21,136,5,220,15,17,143,119,137,119,143,124,137,124,152,71, + 211,15,42,128,72,240,2,3,5,15,220,13,15,143,88,138, + 88,144,104,211,13,31,136,2,244,6,0,10,17,144,18,144, + 90,160,17,211,9,35,164,100,167,110,161,110,215,9,52,220, + 9,16,144,18,208,21,41,168,49,211,9,45,180,4,215,48, + 74,209,48,74,215,9,74,220,8,14,208,17,44,168,88,169, + 76,208,15,57,212,8,58,216,8,14,220,4,10,208,13,35, + 160,72,161,60,208,11,48,212,4,49,240,2,4,5,15,220, + 13,15,143,92,138,92,152,40,212,13,35,160,113,216,26,27, + 159,38,153,38,155,40,136,75,247,3,0,14,36,240,10,10, + 5,68,1,240,6,0,23,34,215,22,40,209,22,40,168,27, + 211,22,53,136,11,244,18,0,20,29,152,91,215,29,51,209, + 29,51,211,29,53,176,113,214,19,57,137,7,136,1,216,11, + 15,143,63,137,63,152,51,215,11,31,209,11,31,217,12,20, + 216,11,15,143,58,137,58,139,60,152,50,211,11,29,217,12, + 20,240,2,17,9,18,216,15,19,143,127,137,127,208,31,54, + 215,15,55,209,15,55,220,16,20,144,84,148,10,217,16,24, + 216,19,23,151,59,145,59,147,61,136,68,220,27,35,160,71, + 211,27,50,137,76,136,67,216,15,22,211,15,41,172,98,175, + 103,169,103,175,110,169,110,184,83,215,46,65,209,46,65,220, + 16,19,151,8,145,8,151,15,145,15,160,3,212,16,36,216, + 16,27,151,15,145,15,160,7,214,16,40,241,5,0,47,66, + 1,209,15,41,241,23,0,20,58,246,46,0,8,13,216,22, + 26,136,11,216,11,22,208,4,22,248,244,101,1,0,12,19, + 243,0,1,5,15,217,8,14,240,3,1,5,15,250,247,16, + 0,14,36,214,13,35,251,228,11,18,243,0,1,5,15,217, + 8,14,240,3,1,5,15,251,244,14,0,12,30,243,0,6, + 5,68,1,243,6,0,9,22,216,22,33,215,22,40,209,22, + 40,168,22,215,41,59,209,41,59,211,41,61,211,22,62,136, + 11,220,8,14,144,28,152,104,153,92,240,0,1,42,42,216, + 42,48,215,42,60,209,42,60,211,42,62,209,41,65,240,3, + 1,16,67,1,247,0,1,9,68,1,240,11,6,5,68,1, + 251,244,44,0,16,25,243,0,8,9,18,220,12,17,208,20, + 42,168,49,168,81,168,37,168,116,176,72,176,58,184,83,208, + 18,65,220,23,26,151,122,145,122,242,3,1,13,35,227,12, + 28,216,26,35,215,26,52,209,26,52,176,83,214,26,57,144, + 6,216,28,34,215,28,45,209,28,45,214,28,47,144,68,220, + 20,25,152,36,152,116,153,41,172,35,175,42,169,42,212,20, + 53,243,3,0,29,48,241,3,0,27,58,244,6,0,13,18, + 208,18,47,180,99,183,106,177,106,210,12,65,223,12,17,251, + 240,17,8,9,18,250,115,116,0,0,0,179,22,71,42,0, + 194,47,22,72,12,0,195,5,17,71,58,3,195,22,8,72, + 12,0,195,31,17,72,28,0,196,62,33,73,49,2,197,33, + 65,54,73,49,2,199,42,10,71,55,3,199,54,1,71,55, + 3,199,58,10,72,9,7,200,4,3,72,12,0,200,9,3, + 72,12,0,200,12,10,72,25,3,200,24,1,72,25,3,200, + 28,65,14,73,46,3,201,45,1,73,46,3,201,49,10,76, + 14,5,201,59,66,6,76,9,5,204,9,5,76,14,5,99, 2,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, - 3,0,0,0,243,192,1,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,100,1,124,0,155,2,157,2,171,1,0, - 0,0,0,0,0,1,0,124,1,128,13,116,3,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,125,1,100, - 3,125,2,110,2,100,4,125,2,116,5,0,0,0,0,0, - 0,0,0,124,0,171,1,0,0,0,0,0,0,92,2,0, - 0,125,0,125,3,124,3,124,1,118,1,114,48,116,6,0, - 0,0,0,0,0,0,0,106,8,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,106,11,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 0,171,1,0,0,0,0,0,0,1,0,124,1,106,13,0, + 3,0,0,0,243,246,1,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,83,1,85,0,60,2,14,0,51,2,53, + 1,0,0,0,0,0,0,32,0,85,1,99,13,0,0,91, + 3,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0, + 0,110,1,83,3,110,2,79,2,83,4,110,2,91,5,0, + 0,0,0,0,0,0,0,85,0,53,1,0,0,0,0,0, + 0,117,2,0,0,112,3,88,49,59,1,0,0,97,48,0, + 0,91,6,0,0,0,0,0,0,0,0,82,8,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82, + 11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,32,0,85, + 1,82,13,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,3,53,1,0,0,0,0,0,0,32, + 0,30,0,91,14,0,0,0,0,0,0,0,0,82,16,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,3,171,1,0,0,0,0,0,0,1,0,9,0,116, - 15,0,0,0,0,0,0,0,0,106,16,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,125,4,124,4,68,0,143,5,99, - 2,103,0,99,2,93,38,0,0,125,5,124,5,106,21,0, + 0,34,0,85,0,53,1,0,0,0,0,0,0,110,4,85, + 4,19,0,86,5,115,2,47,0,115,2,19,0,72,53,0, + 0,110,5,85,5,82,21,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,5,53,1,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,100,2,0,0,77, + 27,0,0,85,5,82,23,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,6,53,1,0,0,0, + 0,0,0,40,0,0,0,0,0,0,0,97,2,0,0,77, + 51,0,0,85,5,80,2,77,55,0,0,11,0,32,0,110, + 4,110,5,91,25,0,0,0,0,0,0,0,0,85,4,53, + 1,0,0,0,0,0,0,19,0,72,15,0,0,110,5,91, + 27,0,0,0,0,0,0,0,0,88,5,85,1,53,3,0, + 0,0,0,0,0,32,0,77,17,0,0,11,0,32,0,85, + 2,40,0,0,0,0,0,0,0,97,2,0,0,83,2,110, + 1,85,1,36,0,33,0,91,18,0,0,0,0,0,0,0, + 0,7,0,97,3,0,0,32,0,31,0,103,2,102,0,61, + 3,31,0,102,1,115,2,32,0,115,2,110,5,102,0,41, + 7,122,80,65,100,100,32,39,115,105,116,101,100,105,114,39, + 32,97,114,103,117,109,101,110,116,32,116,111,32,115,121,115, + 46,112,97,116,104,32,105,102,32,109,105,115,115,105,110,103, + 32,97,110,100,32,104,97,110,100,108,101,32,46,112,116,104, + 32,102,105,108,101,115,32,105,110,10,39,115,105,116,101,100, + 105,114,39,122,18,65,100,100,105,110,103,32,100,105,114,101, + 99,116,111,114,121,58,32,78,84,70,122,4,46,112,116,104, + 218,1,46,41,14,114,13,0,0,0,114,56,0,0,0,114, + 25,0,0,0,114,6,0,0,0,114,18,0,0,0,114,44, + 0,0,0,114,45,0,0,0,114,17,0,0,0,218,7,108, + 105,115,116,100,105,114,114,21,0,0,0,218,8,101,110,100, + 115,119,105,116,104,114,77,0,0,0,218,6,115,111,114,116, + 101,100,114,95,0,0,0,41,6,114,84,0,0,0,114,47, + 0,0,0,114,86,0,0,0,218,11,115,105,116,101,100,105, + 114,99,97,115,101,218,5,110,97,109,101,115,114,85,0,0, + 0,115,6,0,0,0,32,32,32,32,32,32,114,12,0,0, + 0,218,10,97,100,100,115,105,116,101,100,105,114,114,103,0, + 0,0,228,0,0,0,115,233,0,0,0,128,0,244,6,0, + 5,11,208,13,31,160,7,153,123,208,11,43,212,4,44,216, + 7,18,209,7,26,220,22,36,211,22,38,136,11,216,16,20, + 137,5,224,16,21,136,5,220,27,35,160,71,211,27,44,209, + 4,24,128,71,216,11,22,211,11,37,220,8,11,143,8,137, + 8,143,15,137,15,152,7,212,8,32,216,8,19,143,15,137, + 15,152,11,212,8,36,240,2,3,5,15,220,16,18,151,10, + 146,10,152,55,211,16,35,136,5,241,6,0,31,36,243,0, + 1,13,68,1,154,101,144,100,216,16,20,151,13,145,13,152, + 102,215,16,37,243,3,0,14,18,216,46,50,175,111,169,111, + 184,99,215,46,66,247,3,0,14,18,153,101,128,69,240,0, + 1,13,68,1,228,16,22,144,117,150,13,136,4,220,8,18, + 144,55,160,43,214,8,46,241,3,0,17,30,230,7,12,216, + 22,26,136,11,216,11,22,208,4,22,248,244,17,0,12,19, + 243,0,1,5,15,217,8,14,240,3,1,5,15,252,242,4, + 1,13,68,1,115,36,0,0,0,193,37,22,67,38,0,193, + 63,26,67,54,4,194,29,20,67,54,4,194,53,6,67,54, + 4,195,38,10,67,51,3,195,50,1,67,51,3,99,0,0, + 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, + 0,0,243,160,1,0,0,149,0,91,0,0,0,0,0,0, + 0,0,0,82,2,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,82,4,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,97,1,0,0,103,1,91,7,0,0,0,0,0, + 0,0,0,91,8,0,0,0,0,0,0,0,0,83,2,53, + 2,0,0,0,0,0,0,40,0,0,0,0,0,0,0,97, + 66,0,0,91,7,0,0,0,0,0,0,0,0,91,8,0, + 0,0,0,0,0,0,0,83,3,53,2,0,0,0,0,0, + 0,40,0,0,0,0,0,0,0,97,45,0,0,91,8,0, + 0,0,0,0,0,0,0,82,10,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,34,0,53,0,0, + 0,0,0,0,0,91,8,0,0,0,0,0,0,0,0,82, + 12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,53,0,0,0,0,0,0,0,58,119,0, + 0,97,1,0,0,103,4,91,7,0,0,0,0,0,0,0, + 0,91,8,0,0,0,0,0,0,0,0,83,5,53,2,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,66,0, + 0,91,7,0,0,0,0,0,0,0,0,91,8,0,0,0, + 0,0,0,0,0,83,6,53,2,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,97,45,0,0,91,8,0,0,0, + 0,0,0,0,0,82,14,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,53,0,0,0,0, + 0,0,0,91,8,0,0,0,0,0,0,0,0,82,16,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,5,171,1,0,0,0,0,0,0,114,19,124,5,106, - 23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,6,171,1,0,0,0,0,0,0,115,2,124, - 5,145,2,140,40,4,0,125,4,125,5,116,25,0,0,0, - 0,0,0,0,0,124,4,171,1,0,0,0,0,0,0,68, - 0,93,15,0,0,125,5,116,27,0,0,0,0,0,0,0, - 0,124,0,124,5,124,1,171,3,0,0,0,0,0,0,1, - 0,140,17,4,0,124,2,114,2,100,2,125,1,124,1,83, - 0,35,0,116,18,0,0,0,0,0,0,0,0,36,0,114, - 3,1,0,89,0,121,2,119,0,120,3,89,0,119,1,99, - 2,1,0,99,2,125,5,119,0,41,7,122,84,65,100,100, - 32,39,115,105,116,101,100,105,114,39,32,97,114,103,117,109, - 101,110,116,32,116,111,32,115,121,115,46,112,97,116,104,32, - 105,102,32,109,105,115,115,105,110,103,32,97,110,100,32,104, - 97,110,100,108,101,32,46,112,116,104,32,102,105,108,101,115, - 32,105,110,10,32,32,32,32,39,115,105,116,101,100,105,114, - 39,122,18,65,100,100,105,110,103,32,100,105,114,101,99,116, - 111,114,121,58,32,78,84,70,122,4,46,112,116,104,218,1, - 46,41,14,114,13,0,0,0,114,56,0,0,0,114,25,0, - 0,0,114,6,0,0,0,114,18,0,0,0,114,44,0,0, - 0,114,45,0,0,0,114,17,0,0,0,218,7,108,105,115, - 116,100,105,114,114,21,0,0,0,218,8,101,110,100,115,119, - 105,116,104,114,77,0,0,0,218,6,115,111,114,116,101,100, - 114,95,0,0,0,41,6,114,84,0,0,0,114,47,0,0, - 0,114,86,0,0,0,218,11,115,105,116,101,100,105,114,99, - 97,115,101,218,5,110,97,109,101,115,114,85,0,0,0,115, - 6,0,0,0,32,32,32,32,32,32,114,12,0,0,0,218, - 10,97,100,100,115,105,116,101,100,105,114,114,103,0,0,0, - 227,0,0,0,115,233,0,0,0,128,0,244,6,0,5,11, - 208,13,31,160,7,152,123,208,11,43,212,4,44,216,7,18, - 208,7,26,220,22,36,211,22,38,136,11,216,16,20,137,5, - 224,16,21,136,5,220,27,35,160,71,211,27,44,209,4,24, - 128,71,136,91,216,11,22,152,43,209,11,37,220,8,11,143, - 8,137,8,143,15,137,15,152,7,212,8,32,216,8,19,143, - 15,137,15,152,11,212,8,36,240,2,3,5,15,220,16,18, - 151,10,145,10,152,55,211,16,35,136,5,241,6,0,31,36, - 243,0,1,13,68,1,153,101,144,100,216,16,20,151,13,145, - 13,152,102,212,16,37,168,100,175,111,169,111,184,99,212,46, - 66,242,3,0,14,18,152,101,128,69,240,0,1,13,68,1, - 228,16,22,144,117,150,13,136,4,220,8,18,144,55,152,68, - 160,43,213,8,46,240,3,0,17,30,225,7,12,216,22,26, - 136,11,216,11,22,208,4,22,248,244,17,0,12,19,242,0, - 1,5,15,217,8,14,240,3,1,5,15,252,242,4,1,13, - 68,1,115,24,0,0,0,193,35,21,67,12,0,193,60,43, - 67,27,4,195,12,9,67,24,3,195,23,1,67,24,3,99, - 0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,98,1,0,0,151,0,116,0,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,114,1,121, - 1,116,7,0,0,0,0,0,0,0,0,116,8,0,0,0, - 0,0,0,0,0,100,2,171,2,0,0,0,0,0,0,114, - 58,116,7,0,0,0,0,0,0,0,0,116,8,0,0,0, - 0,0,0,0,0,100,3,171,2,0,0,0,0,0,0,114, - 42,116,9,0,0,0,0,0,0,0,0,106,10,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 0,0,0,0,0,0,0,116,9,0,0,0,0,0,0,0, - 0,106,12,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,107,55,0, - 0,114,1,121,4,116,7,0,0,0,0,0,0,0,0,116, - 8,0,0,0,0,0,0,0,0,100,5,171,2,0,0,0, - 0,0,0,114,58,116,7,0,0,0,0,0,0,0,0,116, - 8,0,0,0,0,0,0,0,0,100,6,171,2,0,0,0, - 0,0,0,114,42,116,9,0,0,0,0,0,0,0,0,106, - 14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,116,9,0,0,0, - 0,0,0,0,0,106,16,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,107,55,0,0,114,1,121,4,121,7,41,8,97,44,1, - 0,0,67,104,101,99,107,32,105,102,32,117,115,101,114,32, - 115,105,116,101,32,100,105,114,101,99,116,111,114,121,32,105, - 115,32,115,97,102,101,32,102,111,114,32,105,110,99,108,117, - 115,105,111,110,10,10,32,32,32,32,84,104,101,32,102,117, - 110,99,116,105,111,110,32,116,101,115,116,115,32,102,111,114, - 32,116,104,101,32,99,111,109,109,97,110,100,32,108,105,110, - 101,32,102,108,97,103,32,40,105,110,99,108,117,100,105,110, - 103,32,101,110,118,105,114,111,110,109,101,110,116,32,118,97, - 114,41,44,10,32,32,32,32,112,114,111,99,101,115,115,32, - 117,105,100,47,103,105,100,32,101,113,117,97,108,32,116,111, - 32,101,102,102,101,99,116,105,118,101,32,117,105,100,47,103, - 105,100,46,10,10,32,32,32,32,78,111,110,101,58,32,68, + 0,34,0,53,0,0,0,0,0,0,0,58,119,0,0,97, + 1,0,0,103,4,103,7,41,8,97,20,1,0,0,67,104, + 101,99,107,32,105,102,32,117,115,101,114,32,115,105,116,101, + 32,100,105,114,101,99,116,111,114,121,32,105,115,32,115,97, + 102,101,32,102,111,114,32,105,110,99,108,117,115,105,111,110, + 10,10,84,104,101,32,102,117,110,99,116,105,111,110,32,116, + 101,115,116,115,32,102,111,114,32,116,104,101,32,99,111,109, + 109,97,110,100,32,108,105,110,101,32,102,108,97,103,32,40, + 105,110,99,108,117,100,105,110,103,32,101,110,118,105,114,111, + 110,109,101,110,116,32,118,97,114,41,44,10,112,114,111,99, + 101,115,115,32,117,105,100,47,103,105,100,32,101,113,117,97, + 108,32,116,111,32,101,102,102,101,99,116,105,118,101,32,117, + 105,100,47,103,105,100,46,10,10,78,111,110,101,58,32,68, 105,115,97,98,108,101,100,32,102,111,114,32,115,101,99,117, - 114,105,116,121,32,114,101,97,115,111,110,115,10,32,32,32, - 32,70,97,108,115,101,58,32,68,105,115,97,98,108,101,100, - 32,98,121,32,117,115,101,114,32,40,99,111,109,109,97,110, - 100,32,108,105,110,101,32,111,112,116,105,111,110,41,10,32, - 32,32,32,84,114,117,101,58,32,83,97,102,101,32,97,110, - 100,32,101,110,97,98,108,101,100,10,32,32,32,32,70,218, - 6,103,101,116,117,105,100,218,7,103,101,116,101,117,105,100, - 78,218,6,103,101,116,103,105,100,218,7,103,101,116,101,103, - 105,100,84,41,9,114,6,0,0,0,114,7,0,0,0,218, - 12,110,111,95,117,115,101,114,95,115,105,116,101,218,7,104, - 97,115,97,116,116,114,114,17,0,0,0,114,106,0,0,0, - 114,105,0,0,0,114,108,0,0,0,114,107,0,0,0,169, - 0,114,14,0,0,0,114,12,0,0,0,218,20,99,104,101, - 99,107,95,101,110,97,98,108,101,117,115,101,114,115,105,116, - 101,114,112,0,0,0,253,0,0,0,115,107,0,0,0,128, - 0,244,20,0,8,11,135,121,129,121,215,7,29,210,7,29, - 216,15,20,228,7,14,140,114,144,56,212,7,28,164,23,172, - 18,168,89,212,33,55,228,11,13,143,58,137,58,139,60,156, - 50,159,57,153,57,155,59,210,11,38,216,19,23,220,7,14, - 140,114,144,56,212,7,28,164,23,172,18,168,89,212,33,55, - 228,11,13,143,58,137,58,139,60,156,50,159,57,153,57,155, - 59,210,11,38,216,19,23,224,11,15,114,14,0,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0, - 3,0,0,0,243,166,1,0,0,151,0,116,0,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,5,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,100, - 0,171,2,0,0,0,0,0,0,125,0,124,0,114,2,124, - 0,83,0,116,6,0,0,0,0,0,0,0,0,106,8,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,2,118,0,114,1,121,0,100,3,132,0,125,1,116, - 0,0,0,0,0,0,0,0,0,106,10,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,4,107, - 40,0,0,114,44,116,0,0,0,0,0,0,0,0,0,106, + 114,105,116,121,32,114,101,97,115,111,110,115,10,70,97,108, + 115,101,58,32,68,105,115,97,98,108,101,100,32,98,121,32, + 117,115,101,114,32,40,99,111,109,109,97,110,100,32,108,105, + 110,101,32,111,112,116,105,111,110,41,10,84,114,117,101,58, + 32,83,97,102,101,32,97,110,100,32,101,110,97,98,108,101, + 100,10,70,218,6,103,101,116,117,105,100,218,7,103,101,116, + 101,117,105,100,78,218,6,103,101,116,103,105,100,218,7,103, + 101,116,101,103,105,100,84,41,9,114,6,0,0,0,114,7, + 0,0,0,218,12,110,111,95,117,115,101,114,95,115,105,116, + 101,218,7,104,97,115,97,116,116,114,114,17,0,0,0,114, + 106,0,0,0,114,105,0,0,0,114,108,0,0,0,114,107, + 0,0,0,169,0,114,14,0,0,0,114,12,0,0,0,218, + 20,99,104,101,99,107,95,101,110,97,98,108,101,117,115,101, + 114,115,105,116,101,114,112,0,0,0,254,0,0,0,115,119, + 0,0,0,128,0,244,20,0,8,11,135,121,129,121,215,7, + 29,215,7,29,216,15,20,228,7,14,140,114,144,56,215,7, + 28,209,7,28,164,23,172,18,168,89,215,33,55,209,33,55, + 228,11,13,143,58,138,58,139,60,156,50,159,57,154,57,155, + 59,211,11,38,216,19,23,220,7,14,140,114,144,56,215,7, + 28,209,7,28,164,23,172,18,168,89,215,33,55,209,33,55, + 228,11,13,143,58,138,58,139,60,156,50,159,57,154,57,155, + 59,211,11,38,216,19,23,224,11,15,114,14,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 3,0,0,0,243,4,0,0,0,149,0,103,1,41,2,78, + 218,6,80,121,116,104,111,110,114,111,0,0,0,114,111,0, + 0,0,114,14,0,0,0,114,12,0,0,0,218,19,95,103, + 101,116,95,105,109,112,108,101,109,101,110,116,97,116,105,111, + 110,114,115,0,0,0,30,1,0,0,115,5,0,0,0,128, + 0,216,11,19,114,14,0,0,0,99,0,0,0,0,0,0, + 0,0,0,0,0,0,9,0,0,0,3,0,0,0,243,220, + 1,0,0,149,0,91,0,0,0,0,0,0,0,0,0,82, 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,106,5,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,5,171,1,0,0,0,0,0, - 0,120,1,115,2,1,0,100,6,125,2,2,0,124,1,124, - 2,100,7,171,2,0,0,0,0,0,0,83,0,116,6,0, - 0,0,0,0,0,0,0,106,8,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,8,107,40,0, - 0,114,61,116,6,0,0,0,0,0,0,0,0,106,12,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,114,45,2,0,124,1,100,6,100,9,116,6,0,0,0, - 0,0,0,0,0,106,12,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,10,116,6,0,0,0, - 0,0,0,0,0,106,14,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,0,100,11,26,0,122, - 6,0,0,171,4,0,0,0,0,0,0,83,0,2,0,124, - 1,100,6,100,12,171,2,0,0,0,0,0,0,83,0,41, - 13,78,218,14,80,89,84,72,79,78,85,83,69,82,66,65, - 83,69,62,3,0,0,0,218,4,119,97,115,105,218,7,118, - 120,119,111,114,107,115,218,10,101,109,115,99,114,105,112,116, - 101,110,99,0,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,23,0,0,0,243,116,0,0,0,151,0,116,0, - 0,0,0,0,0,0,0,0,106,2,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,5,0,0, + 0,0,0,82,5,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,83,1,83,0,53,2,0,0,0, + 0,0,0,110,0,85,0,40,0,0,0,0,0,0,0,97, + 2,0,0,85,0,36,0,91,6,0,0,0,0,0,0,0, + 0,82,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,2,59,0,0,0,97,1,0,0,103, + 0,83,3,26,0,110,1,91,0,0,0,0,0,0,0,0, + 0,82,10,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,4,58,88,0,0,97,57,0,0,91, + 0,0,0,0,0,0,0,0,0,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,5,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,1,0,0,0,0,0,0,0,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,6, + 0,83,5,53,1,0,0,0,0,0,0,61,1,40,0,0, + 0,0,0,0,0,100,2,0,0,32,0,83,6,110,2,85, + 1,34,0,85,2,91,13,0,0,0,0,0,0,0,0,53, + 0,0,0,0,0,0,0,53,2,0,0,0,0,0,0,36, + 0,91,6,0,0,0,0,0,0,0,0,82,8,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, + 7,58,88,0,0,97,66,0,0,91,6,0,0,0,0,0, + 0,0,0,82,14,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,97, + 45,0,0,85,1,34,0,83,6,83,8,91,6,0,0,0, + 0,0,0,0,0,82,14,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,9,91,6,0,0,0, + 0,0,0,0,0,82,16,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,83,0,83,10,4,0,45, + 6,0,0,53,4,0,0,0,0,0,0,36,0,85,1,34, + 0,83,6,83,11,53,2,0,0,0,0,0,0,36,0,41, + 12,78,218,14,80,89,84,72,79,78,85,83,69,82,66,65, + 83,69,62,6,0,0,0,218,3,105,111,115,218,4,116,118, + 111,115,218,4,119,97,115,105,218,7,118,120,119,111,114,107, + 115,218,7,119,97,116,99,104,111,115,218,10,101,109,115,99, + 114,105,112,116,101,110,99,0,0,0,0,0,0,0,0,0, + 0,0,0,5,0,0,0,23,0,0,0,243,118,0,0,0, + 149,0,91,0,0,0,0,0,0,0,0,0,82,2,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,142,0,171,1,0,0,0,0,0,0,83,0, - 114,16,0,0,0,41,4,114,17,0,0,0,114,18,0,0, - 0,218,10,101,120,112,97,110,100,117,115,101,114,114,19,0, - 0,0,41,1,218,4,97,114,103,115,115,1,0,0,0,32, - 114,12,0,0,0,218,8,106,111,105,110,117,115,101,114,122, - 30,95,103,101,116,117,115,101,114,98,97,115,101,46,60,108, - 111,99,97,108,115,62,46,106,111,105,110,117,115,101,114,38, - 1,0,0,115,36,0,0,0,128,0,220,15,17,143,119,137, - 119,215,15,33,209,15,33,164,34,167,39,161,39,167,44,161, - 44,176,4,208,34,53,211,15,54,208,8,54,114,14,0,0, - 0,218,2,110,116,218,7,65,80,80,68,65,84,65,218,1, - 126,218,6,80,121,116,104,111,110,218,6,100,97,114,119,105, - 110,218,7,76,105,98,114,97,114,121,122,5,37,100,46,37, - 100,233,2,0,0,0,122,6,46,108,111,99,97,108,41,8, - 114,17,0,0,0,218,7,101,110,118,105,114,111,110,218,3, - 103,101,116,114,6,0,0,0,218,8,112,108,97,116,102,111, - 114,109,114,85,0,0,0,218,10,95,102,114,97,109,101,119, - 111,114,107,218,12,118,101,114,115,105,111,110,95,105,110,102, - 111,41,3,218,8,101,110,118,95,98,97,115,101,114,121,0, - 0,0,218,4,98,97,115,101,115,3,0,0,0,32,32,32, - 114,12,0,0,0,218,12,95,103,101,116,117,115,101,114,98, - 97,115,101,114,136,0,0,0,29,1,0,0,115,180,0,0, - 0,128,0,220,15,17,143,122,137,122,143,126,137,126,208,30, - 46,176,4,211,15,53,128,72,217,7,15,216,15,23,136,15, - 244,6,0,8,11,135,124,129,124,208,23,56,209,7,56,216, - 15,19,242,4,1,5,55,244,6,0,8,10,135,119,129,119, - 144,36,130,127,220,15,17,143,122,137,122,143,126,137,126,152, - 105,211,15,40,210,15,47,168,67,136,4,217,15,23,152,4, - 152,104,211,15,39,208,8,39,228,7,10,135,124,129,124,144, - 120,210,7,31,164,67,167,78,162,78,217,15,23,152,3,152, - 89,172,3,175,14,169,14,216,24,31,164,35,215,34,50,209, - 34,50,176,50,176,65,208,34,54,209,24,54,243,3,1,16, - 56,240,0,1,9,56,241,6,0,12,20,144,67,152,24,211, - 11,34,208,4,34,114,14,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,243, - 10,1,0,0,151,0,116,0,0,0,0,0,0,0,0,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,125,1,116,4,0,0,0,0,0,0,0,0, - 106,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,1,107,40,0,0,114,40,116,0,0,0, - 0,0,0,0,0,0,106,8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,11,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,2, - 100,3,171,2,0,0,0,0,0,0,125,2,124,0,155,0, - 100,4,124,2,155,0,100,5,157,4,83,0,116,0,0,0, - 0,0,0,0,0,0,106,12,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,6,107,40,0,0, - 114,21,116,0,0,0,0,0,0,0,0,0,106,14,0,0, + 82,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,91,0,0,0,0,0,0,0,0,0,82,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 114,5,124,0,155,0,100,7,157,2,83,0,124,0,155,0, - 100,8,124,1,100,9,25,0,0,0,155,0,100,2,124,1, - 100,10,25,0,0,0,155,0,100,11,157,6,83,0,41,12, - 78,114,122,0,0,0,114,97,0,0,0,114,62,0,0,0, - 122,7,92,80,121,116,104,111,110,122,14,92,115,105,116,101, - 45,112,97,99,107,97,103,101,115,114,126,0,0,0,122,25, - 47,108,105,98,47,112,121,116,104,111,110,47,115,105,116,101, - 45,112,97,99,107,97,103,101,115,122,11,47,108,105,98,47, - 112,121,116,104,111,110,114,2,0,0,0,114,60,0,0,0, - 122,14,47,115,105,116,101,45,112,97,99,107,97,103,101,115, - 41,8,114,6,0,0,0,114,133,0,0,0,114,17,0,0, - 0,114,85,0,0,0,218,6,119,105,110,118,101,114,218,7, - 114,101,112,108,97,99,101,114,131,0,0,0,114,132,0,0, - 0,41,3,218,8,117,115,101,114,98,97,115,101,218,7,118, - 101,114,115,105,111,110,218,9,118,101,114,95,110,111,100,111, - 116,115,3,0,0,0,32,32,32,114,12,0,0,0,218,9, - 95,103,101,116,95,112,97,116,104,114,143,0,0,0,53,1, - 0,0,115,130,0,0,0,128,0,220,14,17,215,14,30,209, - 14,30,128,71,228,7,9,135,119,129,119,144,36,130,127,220, - 20,23,151,74,145,74,215,20,38,209,20,38,160,115,168,66, - 211,20,47,136,9,216,18,26,144,26,152,56,160,73,160,59, - 168,111,208,15,62,208,8,62,228,7,10,135,124,129,124,144, - 120,210,7,31,164,67,167,78,162,78,216,18,26,144,26,208, - 27,52,208,15,53,208,8,53,224,14,22,136,90,144,123,160, - 55,168,49,161,58,160,44,168,97,176,7,184,1,177,10,168, - 124,184,62,208,11,74,208,4,74,114,14,0,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,243,46,0,0,0,151,0,116,0,0,0,0,0, - 0,0,0,0,128,10,116,3,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,97,0,116,0,0,0,0,0, - 0,0,0,0,83,0,41,1,122,203,82,101,116,117,114,110, - 115,32,116,104,101,32,96,117,115,101,114,32,98,97,115,101, - 96,32,100,105,114,101,99,116,111,114,121,32,112,97,116,104, - 46,10,10,32,32,32,32,84,104,101,32,96,117,115,101,114, - 32,98,97,115,101,96,32,100,105,114,101,99,116,111,114,121, - 32,99,97,110,32,98,101,32,117,115,101,100,32,116,111,32, - 115,116,111,114,101,32,100,97,116,97,46,32,73,102,32,116, - 104,101,32,103,108,111,98,97,108,10,32,32,32,32,118,97, - 114,105,97,98,108,101,32,96,96,85,83,69,82,95,66,65, - 83,69,96,96,32,105,115,32,110,111,116,32,105,110,105,116, - 105,97,108,105,122,101,100,32,121,101,116,44,32,116,104,105, - 115,32,102,117,110,99,116,105,111,110,32,119,105,108,108,32, - 97,108,115,111,32,115,101,116,10,32,32,32,32,105,116,46, - 10,32,32,32,32,41,2,218,9,85,83,69,82,95,66,65, - 83,69,114,136,0,0,0,114,111,0,0,0,114,14,0,0, - 0,114,12,0,0,0,218,11,103,101,116,117,115,101,114,98, - 97,115,101,114,146,0,0,0,66,1,0,0,115,23,0,0, - 0,128,0,244,16,0,8,17,208,7,24,220,20,32,147,78, - 136,9,220,11,20,208,4,20,114,14,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,243,88,0,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,125,0,116,2,0, - 0,0,0,0,0,0,0,128,21,124,0,128,8,100,1,97, - 2,116,2,0,0,0,0,0,0,0,0,83,0,116,7,0, - 0,0,0,0,0,0,0,124,0,171,1,0,0,0,0,0, - 0,97,1,116,2,0,0,0,0,0,0,0,0,83,0,41, - 2,122,162,82,101,116,117,114,110,115,32,116,104,101,32,117, + 0,0,82,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,85,0,54,0,53,1,0,0, + 0,0,0,0,36,0,114,16,0,0,0,41,4,114,17,0, + 0,0,114,18,0,0,0,218,10,101,120,112,97,110,100,117, + 115,101,114,114,19,0,0,0,41,1,218,4,97,114,103,115, + 115,1,0,0,0,32,114,12,0,0,0,218,8,106,111,105, + 110,117,115,101,114,218,30,95,103,101,116,117,115,101,114,98, + 97,115,101,46,60,108,111,99,97,108,115,62,46,106,111,105, + 110,117,115,101,114,43,1,0,0,115,36,0,0,0,128,0, + 220,15,17,143,119,137,119,215,15,33,209,15,33,164,34,167, + 39,161,39,167,44,162,44,176,4,208,34,53,211,15,54,208, + 8,54,114,14,0,0,0,218,2,110,116,218,7,65,80,80, + 68,65,84,65,218,1,126,218,6,100,97,114,119,105,110,218, + 7,76,105,98,114,97,114,121,122,5,37,100,46,37,100,233, + 2,0,0,0,122,6,46,108,111,99,97,108,41,9,114,17, + 0,0,0,218,7,101,110,118,105,114,111,110,218,3,103,101, + 116,114,6,0,0,0,218,8,112,108,97,116,102,111,114,109, + 114,85,0,0,0,114,115,0,0,0,218,10,95,102,114,97, + 109,101,119,111,114,107,218,12,118,101,114,115,105,111,110,95, + 105,110,102,111,41,3,218,8,101,110,118,95,98,97,115,101, + 114,127,0,0,0,218,4,98,97,115,101,115,3,0,0,0, + 32,32,32,114,12,0,0,0,218,12,95,103,101,116,117,115, + 101,114,98,97,115,101,114,142,0,0,0,34,1,0,0,115, + 184,0,0,0,128,0,220,15,17,143,122,137,122,143,126,137, + 126,208,30,46,176,4,211,15,53,128,72,222,7,15,216,15, + 23,136,15,244,6,0,8,11,135,124,129,124,208,23,82,211, + 7,82,216,15,19,242,4,1,5,55,244,6,0,8,10,135, + 119,129,119,144,36,131,127,220,15,17,143,122,137,122,143,126, + 137,126,152,105,211,15,40,215,15,47,168,67,136,4,217,15, + 23,152,4,212,30,49,211,30,51,211,15,52,208,8,52,228, + 7,10,135,124,129,124,144,120,211,7,31,164,67,167,78,167, + 78,217,15,23,152,3,152,89,172,3,175,14,169,14,216,24, + 31,164,35,215,34,50,209,34,50,176,50,176,65,208,34,54, + 209,24,54,243,3,1,16,56,240,0,1,9,56,241,6,0, + 12,20,144,67,152,24,211,11,34,208,4,34,114,14,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,7,0, + 0,0,3,0,0,0,243,182,1,0,0,149,0,91,0,0, + 0,0,0,0,0,0,0,82,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,110,1,91,5,0, + 0,0,0,0,0,0,0,91,0,0,0,0,0,0,0,0, + 0,83,1,53,2,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,97,23,0,0,83,2,91,0,0,0,0,0,0, + 0,0,0,82,6,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,59,0,0,0,97,3,0,0,83, + 2,110,2,79,2,83,3,110,2,91,9,0,0,0,0,0, + 0,0,0,53,0,0,0,0,0,0,0,110,3,85,3,82, + 11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,53,0,0,0,0,0,0,0,110,4,91,12,0, + 0,0,0,0,0,0,0,82,14,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,4,58,88,0, + 0,97,42,0,0,91,0,0,0,0,0,0,0,0,0,82, + 16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,82,19,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,83,5,83,3,53,2,0,0,0, + 0,0,0,110,5,85,0,14,0,83,6,85,3,14,0,85, + 5,14,0,83,7,51,5,36,0,91,0,0,0,0,0,0, + 0,0,0,82,20,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,83,8,58,88,0,0,97,29,0, + 0,91,0,0,0,0,0,0,0,0,0,82,22,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,97,8,0,0,85,0,14,0,83, + 9,85,4,14,0,83,10,51,4,36,0,85,0,14,0,83, + 11,85,1,83,12,5,0,0,0,14,0,83,5,85,1,83, + 13,5,0,0,0,14,0,85,2,14,0,83,10,51,7,36, + 0,41,14,78,218,8,97,98,105,102,108,97,103,115,218,1, + 116,114,62,0,0,0,114,129,0,0,0,114,97,0,0,0, + 218,1,92,122,14,92,115,105,116,101,45,112,97,99,107,97, + 103,101,115,114,132,0,0,0,122,5,47,108,105,98,47,122, + 14,47,115,105,116,101,45,112,97,99,107,97,103,101,115,122, + 11,47,108,105,98,47,112,121,116,104,111,110,114,2,0,0, + 0,114,60,0,0,0,41,12,114,6,0,0,0,114,139,0, + 0,0,114,110,0,0,0,114,144,0,0,0,114,115,0,0, + 0,218,5,108,111,119,101,114,114,17,0,0,0,114,85,0, + 0,0,218,6,119,105,110,118,101,114,218,7,114,101,112,108, + 97,99,101,114,137,0,0,0,114,138,0,0,0,41,6,218, + 8,117,115,101,114,98,97,115,101,218,7,118,101,114,115,105, + 111,110,218,10,97,98,105,95,116,104,114,101,97,100,218,14, + 105,109,112,108,101,109,101,110,116,97,116,105,111,110,218,20, + 105,109,112,108,101,109,101,110,116,97,116,105,111,110,95,108, + 111,119,101,114,218,9,118,101,114,95,110,111,100,111,116,115, + 6,0,0,0,32,32,32,32,32,32,114,12,0,0,0,218, + 9,95,103,101,116,95,112,97,116,104,114,156,0,0,0,58, + 1,0,0,115,203,0,0,0,128,0,220,14,17,215,14,30, + 209,14,30,128,71,220,7,14,140,115,144,74,215,7,31,209, + 7,31,160,67,172,51,175,60,169,60,211,36,55,216,21,24, + 137,10,224,21,23,136,10,228,21,40,211,21,42,128,78,216, + 27,41,215,27,47,209,27,47,211,27,49,208,4,24,220,7, + 9,135,119,129,119,144,36,131,127,220,20,23,151,74,145,74, + 215,20,38,209,20,38,160,115,168,66,211,20,47,136,9,216, + 18,26,144,26,152,50,152,110,208,29,45,168,105,168,91,184, + 15,208,15,72,208,8,72,228,7,10,135,124,129,124,144,120, + 211,7,31,164,67,167,78,167,78,216,18,26,144,26,152,53, + 208,33,53,208,32,54,176,110,208,15,69,208,8,69,224,14, + 22,136,90,144,123,160,55,168,49,161,58,160,44,168,97,176, + 7,184,1,177,10,168,124,184,74,184,60,192,126,208,11,86, + 208,4,86,114,14,0,0,0,99,0,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,3,0,0,0,243,48,0, + 0,0,149,0,91,0,0,0,0,0,0,0,0,0,99,10, + 0,0,91,3,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,113,0,91,0,0,0,0,0,0,0,0,0, + 36,0,41,1,122,187,82,101,116,117,114,110,115,32,116,104, + 101,32,96,117,115,101,114,32,98,97,115,101,96,32,100,105, + 114,101,99,116,111,114,121,32,112,97,116,104,46,10,10,84, + 104,101,32,96,117,115,101,114,32,98,97,115,101,96,32,100, + 105,114,101,99,116,111,114,121,32,99,97,110,32,98,101,32, + 117,115,101,100,32,116,111,32,115,116,111,114,101,32,100,97, + 116,97,46,32,73,102,32,116,104,101,32,103,108,111,98,97, + 108,10,118,97,114,105,97,98,108,101,32,96,96,85,83,69, + 82,95,66,65,83,69,96,96,32,105,115,32,110,111,116,32, + 105,110,105,116,105,97,108,105,122,101,100,32,121,101,116,44, + 32,116,104,105,115,32,102,117,110,99,116,105,111,110,32,119, + 105,108,108,32,97,108,115,111,32,115,101,116,10,105,116,46, + 10,41,2,218,9,85,83,69,82,95,66,65,83,69,114,142, + 0,0,0,114,111,0,0,0,114,14,0,0,0,114,12,0, + 0,0,218,11,103,101,116,117,115,101,114,98,97,115,101,114, + 159,0,0,0,77,1,0,0,115,23,0,0,0,128,0,244, + 16,0,8,17,209,7,24,220,20,32,147,78,136,9,220,11, + 20,208,4,20,114,14,0,0,0,99,0,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,92, + 0,0,0,149,0,91,1,0,0,0,0,0,0,0,0,53, + 0,0,0,0,0,0,0,110,0,91,2,0,0,0,0,0, + 0,0,0,99,22,0,0,85,0,99,8,0,0,83,1,113, + 2,91,2,0,0,0,0,0,0,0,0,36,0,91,7,0, + 0,0,0,0,0,0,0,85,0,53,1,0,0,0,0,0, + 0,113,1,91,2,0,0,0,0,0,0,0,0,36,0,41, + 2,122,150,82,101,116,117,114,110,115,32,116,104,101,32,117, 115,101,114,45,115,112,101,99,105,102,105,99,32,115,105,116, 101,45,112,97,99,107,97,103,101,115,32,100,105,114,101,99, - 116,111,114,121,32,112,97,116,104,46,10,10,32,32,32,32, - 73,102,32,116,104,101,32,103,108,111,98,97,108,32,118,97, - 114,105,97,98,108,101,32,96,96,85,83,69,82,95,83,73, - 84,69,96,96,32,105,115,32,110,111,116,32,105,110,105,116, - 105,97,108,105,122,101,100,32,121,101,116,44,32,116,104,105, - 115,10,32,32,32,32,102,117,110,99,116,105,111,110,32,119, - 105,108,108,32,97,108,115,111,32,115,101,116,32,105,116,46, - 10,32,32,32,32,70,41,4,114,146,0,0,0,218,9,85, - 83,69,82,95,83,73,84,69,218,16,69,78,65,66,76,69, - 95,85,83,69,82,95,83,73,84,69,114,143,0,0,0,41, - 1,114,140,0,0,0,115,1,0,0,0,32,114,12,0,0, - 0,218,19,103,101,116,117,115,101,114,115,105,116,101,112,97, - 99,107,97,103,101,115,114,150,0,0,0,79,1,0,0,115, - 55,0,0,0,128,0,244,14,0,16,27,139,125,128,72,228, - 7,16,208,7,24,216,11,19,208,11,27,216,31,36,208,12, - 28,244,8,0,12,21,208,4,20,244,5,0,25,34,160,40, - 211,24,43,136,73,228,11,20,208,4,20,114,14,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,243,146,0,0,0,151,0,116,1,0,0, - 0,0,0,0,0,0,100,1,171,1,0,0,0,0,0,0, - 1,0,116,3,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,125,1,116,4,0,0,0,0,0,0,0,0, - 114,43,116,6,0,0,0,0,0,0,0,0,106,8,0,0, + 116,111,114,121,32,112,97,116,104,46,10,10,73,102,32,116, + 104,101,32,103,108,111,98,97,108,32,118,97,114,105,97,98, + 108,101,32,96,96,85,83,69,82,95,83,73,84,69,96,96, + 32,105,115,32,110,111,116,32,105,110,105,116,105,97,108,105, + 122,101,100,32,121,101,116,44,32,116,104,105,115,10,102,117, + 110,99,116,105,111,110,32,119,105,108,108,32,97,108,115,111, + 32,115,101,116,32,105,116,46,10,70,41,4,114,159,0,0, + 0,218,9,85,83,69,82,95,83,73,84,69,218,16,69,78, + 65,66,76,69,95,85,83,69,82,95,83,73,84,69,114,156, + 0,0,0,41,1,114,150,0,0,0,115,1,0,0,0,32, + 114,12,0,0,0,218,19,103,101,116,117,115,101,114,115,105, + 116,101,112,97,99,107,97,103,101,115,114,163,0,0,0,90, + 1,0,0,115,55,0,0,0,128,0,244,14,0,16,27,139, + 125,128,72,228,7,16,209,7,24,216,11,19,209,11,27,216, + 31,36,208,12,28,244,8,0,12,21,208,4,20,244,5,0, + 25,34,160,40,211,24,43,136,73,228,11,20,208,4,20,114, + 14,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,243,164,0,0,0,149,0, + 91,1,0,0,0,0,0,0,0,0,83,1,53,1,0,0, + 0,0,0,0,32,0,91,3,0,0,0,0,0,0,0,0, + 53,0,0,0,0,0,0,0,110,1,91,4,0,0,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,97,47,0,0, + 91,6,0,0,0,0,0,0,0,0,82,8,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,11, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,114,12, - 116,13,0,0,0,0,0,0,0,0,124,1,124,0,171,2, - 0,0,0,0,0,0,1,0,124,0,83,0,41,2,122,134, - 65,100,100,32,97,32,112,101,114,32,117,115,101,114,32,115, - 105,116,101,45,112,97,99,107,97,103,101,32,116,111,32,115, - 121,115,46,112,97,116,104,10,10,32,32,32,32,69,97,99, - 104,32,117,115,101,114,32,104,97,115,32,105,116,115,32,111, - 119,110,32,112,121,116,104,111,110,32,100,105,114,101,99,116, - 111,114,121,32,119,105,116,104,32,115,105,116,101,45,112,97, - 99,107,97,103,101,115,32,105,110,32,116,104,101,10,32,32, - 32,32,104,111,109,101,32,100,105,114,101,99,116,111,114,121, - 46,10,32,32,32,32,122,29,80,114,111,99,101,115,115,105, - 110,103,32,117,115,101,114,32,115,105,116,101,45,112,97,99, - 107,97,103,101,115,41,7,114,13,0,0,0,114,150,0,0, - 0,114,149,0,0,0,114,17,0,0,0,114,18,0,0,0, - 218,5,105,115,100,105,114,114,103,0,0,0,41,2,114,47, - 0,0,0,218,9,117,115,101,114,95,115,105,116,101,115,2, - 0,0,0,32,32,114,12,0,0,0,218,19,97,100,100,117, - 115,101,114,115,105,116,101,112,97,99,107,97,103,101,115,114, - 154,0,0,0,96,1,0,0,115,55,0,0,0,128,0,244, - 16,0,5,11,208,11,42,212,4,43,220,16,35,211,16,37, - 128,73,229,7,23,156,66,159,71,153,71,159,77,153,77,168, - 41,212,28,52,220,8,18,144,57,152,107,212,8,42,216,11, - 22,208,4,22,114,14,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,10,0,0,0,3,0,0,0,243,28, - 2,0,0,151,0,103,0,125,1,116,1,0,0,0,0,0, - 0,0,0,171,0,0,0,0,0,0,0,125,2,124,0,128, - 6,116,2,0,0,0,0,0,0,0,0,125,0,124,0,68, - 0,93,242,0,0,125,3,124,3,114,4,124,3,124,2,118, - 0,114,1,140,10,124,2,106,5,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,3,171,1,0, - 0,0,0,0,0,1,0,116,6,0,0,0,0,0,0,0, - 0,106,8,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,2,107,40,0,0,114,132,116,10,0, - 0,0,0,0,0,0,0,106,12,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,103,1,125,4,116, - 10,0,0,0,0,0,0,0,0,106,12,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,3,107, - 55,0,0,114,17,124,4,106,15,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,100,3,171,1,0, - 0,0,0,0,0,1,0,124,4,68,0,93,73,0,0,125, - 5,116,6,0,0,0,0,0,0,0,0,106,16,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,3,124,5,100,4,116,10,0,0,0,0,0, - 0,0,0,106,20,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,1,100,5,26,0,122,6,0, - 0,100,6,171,4,0,0,0,0,0,0,125,6,124,1,106, - 15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,6,171,1,0,0,0,0,0,0,1,0,140, - 75,4,0,140,178,124,1,106,15,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,3,171,1,0, - 0,0,0,0,0,1,0,124,1,106,15,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,116,6,0, - 0,0,0,0,0,0,0,106,16,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,106,19,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 3,100,7,100,6,171,3,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,1,0,140,244,4,0,124,1,83,0,41, - 8,97,30,1,0,0,82,101,116,117,114,110,115,32,97,32, - 108,105,115,116,32,99,111,110,116,97,105,110,105,110,103,32, - 97,108,108,32,103,108,111,98,97,108,32,115,105,116,101,45, - 112,97,99,107,97,103,101,115,32,100,105,114,101,99,116,111, - 114,105,101,115,46,10,10,32,32,32,32,70,111,114,32,101, - 97,99,104,32,100,105,114,101,99,116,111,114,121,32,112,114, - 101,115,101,110,116,32,105,110,32,96,96,112,114,101,102,105, - 120,101,115,96,96,32,40,111,114,32,116,104,101,32,103,108, - 111,98,97,108,32,96,96,80,82,69,70,73,88,69,83,96, - 96,41,44,10,32,32,32,32,116,104,105,115,32,102,117,110, - 99,116,105,111,110,32,119,105,108,108,32,102,105,110,100,32, - 105,116,115,32,96,115,105,116,101,45,112,97,99,107,97,103, - 101,115,96,32,115,117,98,100,105,114,101,99,116,111,114,121, - 32,100,101,112,101,110,100,105,110,103,32,111,110,32,116,104, - 101,10,32,32,32,32,115,121,115,116,101,109,32,101,110,118, - 105,114,111,110,109,101,110,116,44,32,97,110,100,32,119,105, - 108,108,32,114,101,116,117,114,110,32,97,32,108,105,115,116, - 32,111,102,32,102,117,108,108,32,112,97,116,104,115,46,10, - 32,32,32,32,78,218,1,47,218,3,108,105,98,122,11,112, - 121,116,104,111,110,37,100,46,37,100,114,128,0,0,0,122, - 13,115,105,116,101,45,112,97,99,107,97,103,101,115,218,3, - 76,105,98,41,11,114,29,0,0,0,218,8,80,82,69,70, - 73,88,69,83,114,45,0,0,0,114,17,0,0,0,218,3, - 115,101,112,114,6,0,0,0,218,10,112,108,97,116,108,105, - 98,100,105,114,114,44,0,0,0,114,18,0,0,0,114,19, - 0,0,0,114,133,0,0,0,41,7,218,8,112,114,101,102, - 105,120,101,115,218,12,115,105,116,101,112,97,99,107,97,103, - 101,115,218,4,115,101,101,110,218,6,112,114,101,102,105,120, + 0,0,85,1,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,97,11,0,0,91,13,0,0,0,0,0,0, + 0,0,88,16,53,2,0,0,0,0,0,0,32,0,85,0, + 36,0,41,2,122,122,65,100,100,32,97,32,112,101,114,32, + 117,115,101,114,32,115,105,116,101,45,112,97,99,107,97,103, + 101,32,116,111,32,115,121,115,46,112,97,116,104,10,10,69, + 97,99,104,32,117,115,101,114,32,104,97,115,32,105,116,115, + 32,111,119,110,32,112,121,116,104,111,110,32,100,105,114,101, + 99,116,111,114,121,32,119,105,116,104,32,115,105,116,101,45, + 112,97,99,107,97,103,101,115,32,105,110,32,116,104,101,10, + 104,111,109,101,32,100,105,114,101,99,116,111,114,121,46,10, + 122,29,80,114,111,99,101,115,115,105,110,103,32,117,115,101, + 114,32,115,105,116,101,45,112,97,99,107,97,103,101,115,41, + 7,114,13,0,0,0,114,163,0,0,0,114,162,0,0,0, + 114,17,0,0,0,114,18,0,0,0,218,5,105,115,100,105, + 114,114,103,0,0,0,41,2,114,47,0,0,0,218,9,117, + 115,101,114,95,115,105,116,101,115,2,0,0,0,32,32,114, + 12,0,0,0,218,19,97,100,100,117,115,101,114,115,105,116, + 101,112,97,99,107,97,103,101,115,114,167,0,0,0,107,1, + 0,0,115,59,0,0,0,128,0,244,16,0,5,11,208,11, + 42,212,4,43,220,16,35,211,16,37,128,73,231,7,23,210, + 7,23,156,66,159,71,153,71,159,77,153,77,168,41,215,28, + 52,209,28,52,220,8,18,144,57,212,8,42,216,11,22,208, + 4,22,114,14,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,11,0,0,0,3,0,0,0,243,224,2,0, + 0,149,0,47,0,110,1,91,1,0,0,0,0,0,0,0, + 0,53,0,0,0,0,0,0,0,110,2,85,0,99,6,0, + 0,91,2,0,0,0,0,0,0,0,0,110,0,85,0,19, + 0,71,1,72,81,0,0,110,3,85,3,40,0,0,0,0, + 0,0,0,97,5,0,0,88,50,59,0,0,0,97,2,0, + 0,77,18,0,0,85,2,82,5,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,3,53,1,0, + 0,0,0,0,0,32,0,91,7,0,0,0,0,0,0,0, + 0,53,0,0,0,0,0,0,0,82,9,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,110,4,91,10,0,0,0,0,0,0,0, + 0,82,12,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,110,5,91,15,0,0,0,0,0,0,0, + 0,91,10,0,0,0,0,0,0,0,0,83,1,53,2,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,23,0, + 0,83,2,91,10,0,0,0,0,0,0,0,0,82,16,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,59,0,0,0,97,3,0,0,83,2,110,6,79,2,83, + 3,110,6,91,18,0,0,0,0,0,0,0,0,82,20,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,83,4,58,88,0,0,97,131,0,0,91,10,0,0,0, + 0,0,0,0,0,82,22,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,47,1,110,7,91,10,0, + 0,0,0,0,0,0,0,82,22,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,5,58,119,0, + 0,97,17,0,0,85,7,82,25,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,5,53,1,0, + 0,0,0,0,0,32,0,85,7,19,0,72,68,0,0,110, + 8,91,18,0,0,0,0,0,0,0,0,82,26,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82, + 29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,88,56,85,4,14,0,85,5,83,6,5,0,0, + 0,14,0,83,7,85,5,83,8,5,0,0,0,14,0,85, + 6,14,0,51,5,83,9,53,4,0,0,0,0,0,0,110, + 9,85,1,82,25,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,9,53,1,0,0,0,0,0, + 0,32,0,77,70,0,0,11,0,32,0,71,1,77,16,0, + 0,85,1,82,25,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,3,53,1,0,0,0,0,0, + 0,32,0,85,1,82,25,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,91,18,0,0,0,0,0, + 0,0,0,82,26,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,82,29,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,3,83,10,83, + 9,53,3,0,0,0,0,0,0,53,1,0,0,0,0,0, + 0,32,0,71,1,77,84,0,0,11,0,32,0,85,1,36, + 0,41,11,97,14,1,0,0,82,101,116,117,114,110,115,32, + 97,32,108,105,115,116,32,99,111,110,116,97,105,110,105,110, + 103,32,97,108,108,32,103,108,111,98,97,108,32,115,105,116, + 101,45,112,97,99,107,97,103,101,115,32,100,105,114,101,99, + 116,111,114,105,101,115,46,10,10,70,111,114,32,101,97,99, + 104,32,100,105,114,101,99,116,111,114,121,32,112,114,101,115, + 101,110,116,32,105,110,32,96,96,112,114,101,102,105,120,101, + 115,96,96,32,40,111,114,32,116,104,101,32,103,108,111,98, + 97,108,32,96,96,80,82,69,70,73,88,69,83,96,96,41, + 44,10,116,104,105,115,32,102,117,110,99,116,105,111,110,32, + 119,105,108,108,32,102,105,110,100,32,105,116,115,32,96,115, + 105,116,101,45,112,97,99,107,97,103,101,115,96,32,115,117, + 98,100,105,114,101,99,116,111,114,121,32,100,101,112,101,110, + 100,105,110,103,32,111,110,32,116,104,101,10,115,121,115,116, + 101,109,32,101,110,118,105,114,111,110,109,101,110,116,44,32, + 97,110,100,32,119,105,108,108,32,114,101,116,117,114,110,32, + 97,32,108,105,115,116,32,111,102,32,102,117,108,108,32,112, + 97,116,104,115,46,10,114,144,0,0,0,114,145,0,0,0, + 114,62,0,0,0,218,1,47,218,3,108,105,98,114,2,0, + 0,0,114,97,0,0,0,114,60,0,0,0,122,13,115,105, + 116,101,45,112,97,99,107,97,103,101,115,218,3,76,105,98, + 41,15,114,29,0,0,0,218,8,80,82,69,70,73,88,69, + 83,114,45,0,0,0,114,115,0,0,0,114,147,0,0,0, + 114,6,0,0,0,114,139,0,0,0,114,110,0,0,0,114, + 144,0,0,0,114,17,0,0,0,218,3,115,101,112,218,10, + 112,108,97,116,108,105,98,100,105,114,114,44,0,0,0,114, + 18,0,0,0,114,19,0,0,0,41,10,218,8,112,114,101, + 102,105,120,101,115,218,12,115,105,116,101,112,97,99,107,97, + 103,101,115,218,4,115,101,101,110,218,6,112,114,101,102,105, + 120,114,153,0,0,0,218,3,118,101,114,114,152,0,0,0, 218,7,108,105,98,100,105,114,115,218,6,108,105,98,100,105, - 114,114,18,0,0,0,115,7,0,0,0,32,32,32,32,32, - 32,32,114,12,0,0,0,218,15,103,101,116,115,105,116,101, - 112,97,99,107,97,103,101,115,114,168,0,0,0,111,1,0, - 0,115,235,0,0,0,128,0,240,14,0,20,22,128,76,220, - 11,14,139,53,128,68,224,7,15,208,7,23,220,19,27,136, - 8,227,18,26,136,6,217,15,21,152,22,160,52,153,30,216, - 12,20,216,8,12,143,8,137,8,144,22,212,8,24,228,11, - 13,143,54,137,54,144,83,138,61,220,23,26,151,126,145,126, - 208,22,38,136,71,220,15,18,143,126,137,126,160,21,210,15, - 38,216,16,23,151,14,145,14,152,117,212,16,37,227,26,33, - 144,6,220,23,25,151,119,145,119,151,124,145,124,160,70,168, - 70,216,36,49,180,67,215,52,68,209,52,68,192,82,192,97, - 208,52,72,209,36,72,216,36,51,243,5,2,24,53,144,4, - 240,6,0,17,29,215,16,35,209,16,35,160,68,213,16,41, - 241,9,0,27,34,240,12,0,13,25,215,12,31,209,12,31, - 160,6,212,12,39,216,12,24,215,12,31,209,12,31,164,2, - 167,7,161,7,167,12,161,12,168,86,176,85,184,79,211,32, - 76,213,12,77,240,35,0,19,27,240,36,0,12,24,208,4, - 23,114,14,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,243,148,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,100,1,171,1, - 0,0,0,0,0,0,1,0,116,3,0,0,0,0,0,0, - 0,0,124,1,171,1,0,0,0,0,0,0,68,0,93,46, - 0,0,125,2,116,4,0,0,0,0,0,0,0,0,106,6, + 114,114,18,0,0,0,115,10,0,0,0,32,32,32,32,32, + 32,32,32,32,32,114,12,0,0,0,218,15,103,101,116,115, + 105,116,101,112,97,99,107,97,103,101,115,114,182,0,0,0, + 122,1,0,0,115,47,1,0,0,128,0,240,14,0,20,22, + 128,76,220,11,14,139,53,128,68,224,7,15,209,7,23,220, + 19,27,136,8,228,18,26,136,6,222,15,21,152,22,155,30, + 217,12,20,216,8,12,143,8,137,8,144,22,212,8,24,228, + 25,44,211,25,46,215,25,52,209,25,52,211,25,54,136,14, + 220,14,17,215,14,30,209,14,30,136,3,220,11,18,148,51, + 152,10,215,11,35,209,11,35,168,3,172,115,175,124,169,124, + 211,40,59,216,25,28,137,74,224,25,27,136,74,220,11,13, + 143,54,137,54,144,83,139,61,220,23,26,151,126,145,126,208, + 22,38,136,71,220,15,18,143,126,137,126,160,21,211,15,38, + 216,16,23,151,14,145,14,152,117,212,16,37,227,26,33,144, + 6,220,23,25,151,119,145,119,151,124,145,124,160,70,216,39, + 53,208,38,54,176,115,184,49,177,118,176,104,184,97,192,3, + 192,65,193,6,184,120,200,10,192,124,208,36,84,216,36,51, + 243,5,2,24,53,144,4,240,6,0,17,29,215,16,35,209, + 16,35,160,68,214,16,41,244,9,0,27,34,240,12,0,13, + 25,215,12,31,209,12,31,160,6,212,12,39,216,12,24,215, + 12,31,209,12,31,164,2,167,7,161,7,167,12,161,12,168, + 86,176,85,184,79,211,32,76,215,12,77,241,47,0,19,27, + 240,48,0,12,24,208,4,23,114,14,0,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, + 0,0,243,162,0,0,0,149,0,91,1,0,0,0,0,0, + 0,0,0,83,1,53,1,0,0,0,0,0,0,32,0,91, + 3,0,0,0,0,0,0,0,0,85,1,53,1,0,0,0, + 0,0,0,19,0,72,52,0,0,110,2,91,4,0,0,0, + 0,0,0,0,0,82,6,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,9,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,2,53, + 1,0,0,0,0,0,0,40,0,0,0,0,0,0,0,100, + 2,0,0,77,41,0,0,91,11,0,0,0,0,0,0,0, + 0,88,32,53,2,0,0,0,0,0,0,32,0,77,54,0, + 0,11,0,32,0,85,0,36,0,41,2,122,29,65,100,100, + 32,115,105,116,101,45,112,97,99,107,97,103,101,115,32,116, + 111,32,115,121,115,46,112,97,116,104,122,31,80,114,111,99, + 101,115,115,105,110,103,32,103,108,111,98,97,108,32,115,105, + 116,101,45,112,97,99,107,97,103,101,115,41,6,114,13,0, + 0,0,114,182,0,0,0,114,17,0,0,0,114,18,0,0, + 0,114,165,0,0,0,114,103,0,0,0,41,3,114,47,0, + 0,0,114,175,0,0,0,114,84,0,0,0,115,3,0,0, + 0,32,32,32,114,12,0,0,0,218,15,97,100,100,115,105, + 116,101,112,97,99,107,97,103,101,115,114,184,0,0,0,161, + 1,0,0,115,61,0,0,0,128,0,228,4,10,208,11,44, + 212,4,45,220,19,34,160,56,214,19,44,136,7,220,11,13, + 143,55,137,55,143,61,137,61,152,23,215,11,33,211,11,33, + 220,12,22,144,119,214,12,44,241,5,0,20,45,240,8,0, + 12,23,208,4,22,114,14,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,243, + 182,0,0,0,149,0,91,0,0,0,0,0,0,0,0,0, + 82,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,1,58,88,0,0,97,3,0,0,83,2, + 110,0,79,2,83,3,110,0,91,4,0,0,0,0,0,0, + 0,0,82,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,83,4,85,0,53,2,0,0, + 0,0,0,0,91,8,0,0,0,0,0,0,0,0,108,5, + 0,0,0,0,0,0,0,0,91,4,0,0,0,0,0,0, + 0,0,82,6,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,34,0,83,5,85,0,53,2,0,0, + 0,0,0,0,91,8,0,0,0,0,0,0,0,0,108,6, + 0,0,0,0,0,0,0,0,103,6,41,7,122,161,68,101, + 102,105,110,101,32,110,101,119,32,98,117,105,108,116,105,110, + 115,32,39,113,117,105,116,39,32,97,110,100,32,39,101,120, + 105,116,39,46,10,10,84,104,101,115,101,32,97,114,101,32, + 111,98,106,101,99,116,115,32,119,104,105,99,104,32,109,97, + 107,101,32,116,104,101,32,105,110,116,101,114,112,114,101,116, + 101,114,32,101,120,105,116,32,119,104,101,110,32,99,97,108, + 108,101,100,46,10,84,104,101,32,114,101,112,114,32,111,102, + 32,101,97,99,104,32,111,98,106,101,99,116,32,99,111,110, + 116,97,105,110,115,32,97,32,104,105,110,116,32,97,116,32, + 104,111,119,32,105,116,32,119,111,114,107,115,46,10,10,114, + 146,0,0,0,122,18,67,116,114,108,45,90,32,112,108,117, + 115,32,82,101,116,117,114,110,122,17,67,116,114,108,45,68, + 32,40,105,46,101,46,32,69,79,70,41,218,4,113,117,105, + 116,218,4,101,120,105,116,78,41,7,114,17,0,0,0,114, + 173,0,0,0,218,13,95,115,105,116,101,98,117,105,108,116, + 105,110,115,218,7,81,117,105,116,116,101,114,218,8,98,117, + 105,108,116,105,110,115,114,186,0,0,0,114,187,0,0,0, + 41,1,218,3,101,111,102,115,1,0,0,0,32,114,12,0, + 0,0,218,7,115,101,116,113,117,105,116,114,192,0,0,0, + 170,1,0,0,115,65,0,0,0,128,0,244,14,0,8,10, + 135,118,129,118,144,20,131,126,216,14,34,137,3,224,14,33, + 136,3,228,20,33,215,20,41,210,20,41,168,38,176,35,211, + 20,54,132,72,132,77,220,20,33,215,20,41,210,20,41,168, + 38,176,35,211,20,54,132,72,133,77,114,14,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0, + 3,0,0,0,243,108,2,0,0,149,0,91,0,0,0,0, + 0,0,0,0,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,83,1,91,4,0, + 0,0,0,0,0,0,0,82,6,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,53,2,0,0,0, + 0,0,0,91,8,0,0,0,0,0,0,0,0,108,3,0, + 0,0,0,0,0,0,0,91,0,0,0,0,0,0,0,0, + 0,82,2,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,83,2,83,3,53,2,0,0,0, + 0,0,0,91,8,0,0,0,0,0,0,0,0,108,5,0, + 0,0,0,0,0,0,0,47,0,47,0,112,16,91,13,0, + 0,0,0,0,0,0,0,91,4,0,0,0,0,0,0,0, + 0,83,4,83,5,53,3,0,0,0,0,0,0,110,2,85, + 2,40,0,0,0,0,0,0,0,100,66,0,0,91,15,0, + 0,0,0,0,0,0,0,91,16,0,0,0,0,0,0,0, + 0,83,6,53,2,0,0,0,0,0,0,40,0,0,0,0, + 0,0,0,97,45,0,0,91,16,0,0,0,0,0,0,0, + 0,82,18,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,82,21,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,91,16,0,0,0,0,0, + 0,0,0,82,22,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,53,1,0,0,0,0,0,0,110, + 2,85,2,40,0,0,0,0,0,0,0,97,97,0,0,85, + 0,82,25,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,7,83,8,47,2,53,1,0,0,0, + 0,0,0,32,0,85,1,82,25,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,91,16,0,0,0, + 0,0,0,0,0,82,18,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,27,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,85,2,91, + 16,0,0,0,0,0,0,0,0,82,28,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,2,0, + 0,0,0,0,0,85,2,91,16,0,0,0,0,0,0,0, + 0,82,30,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,47,3,53,1,0,0,0,0,0,0,32, + 0,91,0,0,0,0,0,0,0,0,0,82,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,83,9,83,10,88,1,53,4,0,0,0,0,0,0,91, + 8,0,0,0,0,0,0,0,0,108,16,0,0,0,0,0, + 0,0,0,103,5,41,11,122,41,83,101,116,32,39,99,111, + 112,121,114,105,103,104,116,39,32,97,110,100,32,39,99,114, + 101,100,105,116,115,39,32,105,110,32,98,117,105,108,116,105, + 110,115,218,9,99,111,112,121,114,105,103,104,116,218,7,99, + 114,101,100,105,116,115,122,179,84,104,97,110,107,115,32,116, + 111,32,67,87,73,44,32,67,78,82,73,44,32,66,101,79, + 112,101,110,44,32,90,111,112,101,32,67,111,114,112,111,114, + 97,116,105,111,110,44,32,116,104,101,32,80,121,116,104,111, + 110,32,83,111,102,116,119,97,114,101,10,70,111,117,110,100, + 97,116,105,111,110,44,32,97,110,100,32,97,32,99,97,115, + 116,32,111,102,32,116,104,111,117,115,97,110,100,115,32,102, + 111,114,32,115,117,112,112,111,114,116,105,110,103,32,80,121, + 116,104,111,110,10,100,101,118,101,108,111,112,109,101,110,116, + 46,32,32,83,101,101,32,119,119,119,46,112,121,116,104,111, + 110,46,111,114,103,32,102,111,114,32,109,111,114,101,32,105, + 110,102,111,114,109,97,116,105,111,110,46,218,11,95,115,116, + 100,108,105,98,95,100,105,114,78,114,37,0,0,0,122,11, + 76,73,67,69,78,83,69,46,116,120,116,218,7,76,73,67, + 69,78,83,69,218,7,108,105,99,101,110,115,101,122,39,83, + 101,101,32,104,116,116,112,115,58,47,47,119,119,119,46,112, + 121,116,104,111,110,46,111,114,103,47,112,115,102,47,108,105, + 99,101,110,115,101,47,41,17,114,188,0,0,0,218,8,95, + 80,114,105,110,116,101,114,114,6,0,0,0,114,194,0,0, + 0,114,190,0,0,0,114,195,0,0,0,114,64,0,0,0, + 114,110,0,0,0,114,17,0,0,0,114,18,0,0,0,218, + 7,100,105,114,110,97,109,101,114,37,0,0,0,218,6,101, + 120,116,101,110,100,114,19,0,0,0,218,6,112,97,114,100, + 105,114,218,6,99,117,114,100,105,114,114,198,0,0,0,41, + 3,218,5,102,105,108,101,115,218,4,100,105,114,115,218,4, + 104,101,114,101,115,3,0,0,0,32,32,32,114,12,0,0, + 0,218,12,115,101,116,99,111,112,121,114,105,103,104,116,114, + 207,0,0,0,186,1,0,0,115,205,0,0,0,128,0,228, + 25,38,215,25,47,210,25,47,176,11,188,83,191,93,185,93, + 211,25,75,132,72,212,4,22,220,23,36,215,23,45,210,23, + 45,168,105,240,0,3,58,58,243,0,3,24,59,132,72,212, + 4,20,240,8,0,19,21,144,98,136,52,244,6,0,12,19, + 148,51,152,13,160,116,211,11,44,128,68,222,11,15,148,71, + 156,66,160,10,215,20,43,209,20,43,220,15,17,143,119,137, + 119,143,127,137,127,156,114,159,123,153,123,211,15,43,136,4, + 222,7,11,216,8,13,143,12,137,12,144,109,160,89,208,21, + 47,212,8,48,216,8,12,143,11,137,11,148,82,151,87,145, + 87,151,92,145,92,160,36,172,2,175,9,169,9,211,21,50, + 176,68,188,34,191,41,185,41,208,20,68,212,8,69,220,23, + 36,215,23,45,210,23,45,216,8,17,216,8,49,216,8,13, + 243,7,3,24,21,132,72,213,4,20,114,14,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 3,0,0,0,243,64,0,0,0,149,0,91,0,0,0,0, + 0,0,0,0,0,82,2,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,53,0,0,0,0, + 0,0,0,91,4,0,0,0,0,0,0,0,0,108,3,0, + 0,0,0,0,0,0,0,103,0,114,16,0,0,0,41,4, + 114,188,0,0,0,218,7,95,72,101,108,112,101,114,114,190, + 0,0,0,218,4,104,101,108,112,114,111,0,0,0,114,14, + 0,0,0,114,12,0,0,0,218,9,115,101,116,104,101,108, + 112,101,114,114,211,0,0,0,208,1,0,0,115,18,0,0, + 0,128,0,220,20,33,215,20,41,210,20,41,211,20,43,132, + 72,133,77,114,14,0,0,0,99,0,0,0,0,0,0,0, + 0,0,0,0,0,5,0,0,0,3,0,0,0,243,10,1, + 0,0,149,0,91,0,0,0,0,0,0,0,0,0,82,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,9,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 115,1,140,35,116,11,0,0,0,0,0,0,0,0,124,2, - 124,0,171,2,0,0,0,0,0,0,1,0,140,48,4,0, - 124,0,83,0,41,2,122,29,65,100,100,32,115,105,116,101, - 45,112,97,99,107,97,103,101,115,32,116,111,32,115,121,115, - 46,112,97,116,104,122,31,80,114,111,99,101,115,115,105,110, - 103,32,103,108,111,98,97,108,32,115,105,116,101,45,112,97, - 99,107,97,103,101,115,41,6,114,13,0,0,0,114,168,0, - 0,0,114,17,0,0,0,114,18,0,0,0,114,152,0,0, - 0,114,103,0,0,0,41,3,114,47,0,0,0,114,162,0, - 0,0,114,84,0,0,0,115,3,0,0,0,32,32,32,114, - 12,0,0,0,218,15,97,100,100,115,105,116,101,112,97,99, - 107,97,103,101,115,114,170,0,0,0,144,1,0,0,115,60, - 0,0,0,128,0,228,4,10,208,11,44,212,4,45,220,19, - 34,160,56,214,19,44,136,7,220,11,13,143,55,137,55,143, - 61,137,61,152,23,213,11,33,220,12,22,144,119,160,11,213, - 12,44,240,5,0,20,45,240,8,0,12,23,208,4,22,114, - 14,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,243,176,0,0,0,151,0, - 116,0,0,0,0,0,0,0,0,0,106,2,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, - 107,40,0,0,114,3,100,2,125,0,110,2,100,3,125,0, - 116,5,0,0,0,0,0,0,0,0,106,6,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,4, - 124,0,171,2,0,0,0,0,0,0,116,8,0,0,0,0, - 0,0,0,0,95,5,0,0,0,0,0,0,0,0,116,5, - 0,0,0,0,0,0,0,0,106,6,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,5,124,0, - 171,2,0,0,0,0,0,0,116,8,0,0,0,0,0,0, - 0,0,95,6,0,0,0,0,0,0,0,0,121,6,41,7, - 122,173,68,101,102,105,110,101,32,110,101,119,32,98,117,105, - 108,116,105,110,115,32,39,113,117,105,116,39,32,97,110,100, - 32,39,101,120,105,116,39,46,10,10,32,32,32,32,84,104, - 101,115,101,32,97,114,101,32,111,98,106,101,99,116,115,32, - 119,104,105,99,104,32,109,97,107,101,32,116,104,101,32,105, - 110,116,101,114,112,114,101,116,101,114,32,101,120,105,116,32, - 119,104,101,110,32,99,97,108,108,101,100,46,10,32,32,32, - 32,84,104,101,32,114,101,112,114,32,111,102,32,101,97,99, - 104,32,111,98,106,101,99,116,32,99,111,110,116,97,105,110, - 115,32,97,32,104,105,110,116,32,97,116,32,104,111,119,32, - 105,116,32,119,111,114,107,115,46,10,10,32,32,32,32,218, - 1,92,122,18,67,116,114,108,45,90,32,112,108,117,115,32, - 82,101,116,117,114,110,122,17,67,116,114,108,45,68,32,40, - 105,46,101,46,32,69,79,70,41,218,4,113,117,105,116,218, - 4,101,120,105,116,78,41,7,114,17,0,0,0,114,160,0, - 0,0,218,13,95,115,105,116,101,98,117,105,108,116,105,110, - 115,218,7,81,117,105,116,116,101,114,218,8,98,117,105,108, - 116,105,110,115,114,173,0,0,0,114,174,0,0,0,41,1, - 218,3,101,111,102,115,1,0,0,0,32,114,12,0,0,0, - 218,7,115,101,116,113,117,105,116,114,179,0,0,0,153,1, - 0,0,115,65,0,0,0,128,0,244,14,0,8,10,135,118, - 129,118,144,20,130,126,216,14,34,137,3,224,14,33,136,3, - 228,20,33,215,20,41,209,20,41,168,38,176,35,211,20,54, - 132,72,132,77,220,20,33,215,20,41,209,20,41,168,38,176, - 35,211,20,54,132,72,133,77,114,14,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,6,0,0,0,3,0, - 0,0,243,76,2,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,1,116,4,0,0,0,0,0, - 0,0,0,106,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,171,2,0,0,0,0,0,0,116, - 8,0,0,0,0,0,0,0,0,95,3,0,0,0,0,0, - 0,0,0,116,1,0,0,0,0,0,0,0,0,106,2,0, + 0,0,82,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,100,40, + 0,0,91,6,0,0,0,0,0,0,0,0,82,8,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,2,100,3,171,2,0,0,0,0,0,0,116,8,0, - 0,0,0,0,0,0,0,95,5,0,0,0,0,0,0,0, - 0,103,0,103,0,125,1,125,0,116,13,0,0,0,0,0, - 0,0,0,116,4,0,0,0,0,0,0,0,0,100,4,100, - 5,171,3,0,0,0,0,0,0,125,2,124,2,115,61,116, - 15,0,0,0,0,0,0,0,0,116,16,0,0,0,0,0, - 0,0,0,100,6,171,2,0,0,0,0,0,0,114,45,116, - 16,0,0,0,0,0,0,0,0,106,18,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,21,0, + 82,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,83,1,53,1,0,0,0,0,0,0,110,0, + 85,0,40,0,0,0,0,0,0,0,97,2,0,0,85,0, + 36,0,91,6,0,0,0,0,0,0,0,0,82,12,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,116,16,0,0,0,0,0,0,0,0,106,22,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171, - 1,0,0,0,0,0,0,125,2,124,2,114,97,124,0,106, - 25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,7,100,8,103,2,171,1,0,0,0,0,0, - 0,1,0,124,1,106,25,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,116,16,0,0,0,0,0, - 0,0,0,106,18,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,27,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,2,116,16,0, - 0,0,0,0,0,0,0,106,28,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,124,2,116,16,0,0,0,0,0,0,0,0,106, - 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,103,3,171,1,0,0,0,0,0,0,1,0,116, - 1,0,0,0,0,0,0,0,0,106,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,9,100, - 10,124,0,124,1,171,4,0,0,0,0,0,0,116,8,0, - 0,0,0,0,0,0,0,95,16,0,0,0,0,0,0,0, - 0,121,5,41,11,122,41,83,101,116,32,39,99,111,112,121, - 114,105,103,104,116,39,32,97,110,100,32,39,99,114,101,100, - 105,116,115,39,32,105,110,32,98,117,105,108,116,105,110,115, - 218,9,99,111,112,121,114,105,103,104,116,218,7,99,114,101, - 100,105,116,115,122,191,32,32,32,32,84,104,97,110,107,115, - 32,116,111,32,67,87,73,44,32,67,78,82,73,44,32,66, - 101,79,112,101,110,44,32,90,111,112,101,32,67,111,114,112, - 111,114,97,116,105,111,110,44,32,116,104,101,32,80,121,116, - 104,111,110,32,83,111,102,116,119,97,114,101,10,32,32,32, - 32,70,111,117,110,100,97,116,105,111,110,44,32,97,110,100, - 32,97,32,99,97,115,116,32,111,102,32,116,104,111,117,115, - 97,110,100,115,32,102,111,114,32,115,117,112,112,111,114,116, - 105,110,103,32,80,121,116,104,111,110,10,32,32,32,32,100, - 101,118,101,108,111,112,109,101,110,116,46,32,32,83,101,101, - 32,119,119,119,46,112,121,116,104,111,110,46,111,114,103,32, - 102,111,114,32,109,111,114,101,32,105,110,102,111,114,109,97, - 116,105,111,110,46,218,11,95,115,116,100,108,105,98,95,100, - 105,114,78,114,37,0,0,0,122,11,76,73,67,69,78,83, - 69,46,116,120,116,218,7,76,73,67,69,78,83,69,218,7, - 108,105,99,101,110,115,101,122,39,83,101,101,32,104,116,116, - 112,115,58,47,47,119,119,119,46,112,121,116,104,111,110,46, - 111,114,103,47,112,115,102,47,108,105,99,101,110,115,101,47, - 41,17,114,175,0,0,0,218,8,95,80,114,105,110,116,101, - 114,114,6,0,0,0,114,181,0,0,0,114,177,0,0,0, - 114,182,0,0,0,114,64,0,0,0,114,110,0,0,0,114, - 17,0,0,0,114,18,0,0,0,218,7,100,105,114,110,97, - 109,101,114,37,0,0,0,218,6,101,120,116,101,110,100,114, - 19,0,0,0,218,6,112,97,114,100,105,114,218,6,99,117, - 114,100,105,114,114,185,0,0,0,41,3,218,5,102,105,108, - 101,115,218,4,100,105,114,115,218,4,104,101,114,101,115,3, - 0,0,0,32,32,32,114,12,0,0,0,218,12,115,101,116, - 99,111,112,121,114,105,103,104,116,114,194,0,0,0,169,1, - 0,0,115,206,0,0,0,128,0,228,25,38,215,25,47,209, - 25,47,176,11,188,83,191,93,185,93,211,25,75,132,72,212, - 4,22,220,23,36,215,23,45,209,23,45,168,105,240,0,3, - 58,62,243,0,3,24,63,132,72,212,4,20,240,8,0,19, - 21,144,98,136,52,128,69,244,6,0,12,19,148,51,152,13, - 160,116,211,11,44,128,68,217,11,15,148,71,156,66,160,10, - 212,20,43,220,15,17,143,119,137,119,143,127,137,127,156,114, - 159,123,153,123,211,15,43,136,4,217,7,11,216,8,13,143, - 12,137,12,144,109,160,89,208,21,47,212,8,48,216,8,12, - 143,11,137,11,148,82,151,87,145,87,151,92,145,92,160,36, - 172,2,175,9,169,9,211,21,50,176,68,188,34,191,41,185, - 41,208,20,68,212,8,69,220,23,36,215,23,45,209,23,45, - 216,8,17,216,8,49,216,8,13,136,116,243,7,3,24,21, - 132,72,213,4,20,114,14,0,0,0,99,0,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,243, - 62,0,0,0,151,0,116,1,0,0,0,0,0,0,0,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,116,4,0,0, - 0,0,0,0,0,0,95,3,0,0,0,0,0,0,0,0, - 121,0,114,16,0,0,0,41,4,114,175,0,0,0,218,7, - 95,72,101,108,112,101,114,114,177,0,0,0,218,4,104,101, - 108,112,114,111,0,0,0,114,14,0,0,0,114,12,0,0, - 0,218,9,115,101,116,104,101,108,112,101,114,114,198,0,0, - 0,191,1,0,0,115,18,0,0,0,128,0,220,20,33,215, - 20,41,209,20,41,211,20,43,132,72,133,77,114,14,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,3,0,0,0,243,32,0,0,0,151,0,100,1,132, - 0,125,0,124,0,116,0,0,0,0,0,0,0,0,0,95, - 1,0,0,0,0,0,0,0,0,121,2,41,3,97,106,1, - 0,0,69,110,97,98,108,101,32,100,101,102,97,117,108,116, - 32,114,101,97,100,108,105,110,101,32,99,111,110,102,105,103, - 117,114,97,116,105,111,110,32,111,110,32,105,110,116,101,114, - 97,99,116,105,118,101,32,112,114,111,109,112,116,115,44,32, - 98,121,10,32,32,32,32,114,101,103,105,115,116,101,114,105, - 110,103,32,97,32,115,121,115,46,95,95,105,110,116,101,114, - 97,99,116,105,118,101,104,111,111,107,95,95,46,10,10,32, - 32,32,32,73,102,32,116,104,101,32,114,101,97,100,108,105, - 110,101,32,109,111,100,117,108,101,32,99,97,110,32,98,101, - 32,105,109,112,111,114,116,101,100,44,32,116,104,101,32,104, - 111,111,107,32,119,105,108,108,32,115,101,116,32,116,104,101, - 32,84,97,98,32,107,101,121,10,32,32,32,32,97,115,32, - 99,111,109,112,108,101,116,105,111,110,32,107,101,121,32,97, - 110,100,32,114,101,103,105,115,116,101,114,32,126,47,46,112, - 121,116,104,111,110,95,104,105,115,116,111,114,121,32,97,115, - 32,104,105,115,116,111,114,121,32,102,105,108,101,46,10,32, - 32,32,32,84,104,105,115,32,99,97,110,32,98,101,32,111, - 118,101,114,114,105,100,100,101,110,32,105,110,32,116,104,101, - 32,115,105,116,101,99,117,115,116,111,109,105,122,101,32,111, - 114,32,117,115,101,114,99,117,115,116,111,109,105,122,101,32, - 109,111,100,117,108,101,44,10,32,32,32,32,111,114,32,105, - 110,32,97,32,80,89,84,72,79,78,83,84,65,82,84,85, - 80,32,102,105,108,101,46,10,32,32,32,32,99,0,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,19,0,0, - 0,243,254,1,0,0,135,4,135,5,151,0,100,1,100,0, - 108,0,125,0,9,0,100,1,100,0,108,1,138,5,100,1, - 100,0,108,2,125,1,116,9,0,0,0,0,0,0,0,0, - 137,5,100,2,100,3,171,3,0,0,0,0,0,0,125,2, - 124,2,129,22,100,4,124,2,118,0,114,18,137,5,106,11, + 82,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,91,6,0,0,0,0,0,0,0,0,82,12, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,5,171,1,0,0,0,0,0,0,1,0,110,17, - 137,5,106,11,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,6,171,1,0,0,0,0,0,0, - 1,0,9,0,137,5,106,13,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,1,0,137,5,106,17,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,100,1,107,40,0,0,114,103,116,18,0,0,0,0, - 0,0,0,0,106,20,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,106,23,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,116,18,0,0, - 0,0,0,0,0,0,106,20,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,106,25,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,7, - 171,1,0,0,0,0,0,0,100,8,171,2,0,0,0,0, - 0,0,138,4,9,0,137,5,106,27,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,137,4,171,1, - 0,0,0,0,0,0,1,0,136,4,136,5,102,2,100,9, - 132,8,125,3,124,0,106,29,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,3,171,1,0,0, - 0,0,0,0,1,0,121,0,121,0,35,0,116,6,0,0, - 0,0,0,0,0,0,36,0,114,3,1,0,89,0,121,0, - 119,0,120,3,89,0,119,1,35,0,116,14,0,0,0,0, - 0,0,0,0,36,0,114,3,1,0,89,0,140,149,119,0, - 120,3,89,0,119,1,35,0,116,14,0,0,0,0,0,0, - 0,0,36,0,114,3,1,0,89,0,140,66,119,0,120,3, - 89,0,119,1,41,10,78,114,2,0,0,0,218,7,95,95, - 100,111,99,95,95,114,62,0,0,0,218,7,108,105,98,101, - 100,105,116,122,19,98,105,110,100,32,94,73,32,114,108,95, - 99,111,109,112,108,101,116,101,122,13,116,97,98,58,32,99, - 111,109,112,108,101,116,101,114,124,0,0,0,122,15,46,112, - 121,116,104,111,110,95,104,105,115,116,111,114,121,99,0,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,19,0, - 0,0,243,72,0,0,0,149,2,151,0,9,0,137,1,106, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,137,0,171,1,0,0,0,0,0,0,1,0,121, - 0,35,0,116,2,0,0,0,0,0,0,0,0,36,0,114, - 3,1,0,89,0,121,0,119,0,120,3,89,0,119,1,114, - 16,0,0,0,41,2,218,18,119,114,105,116,101,95,104,105, - 115,116,111,114,121,95,102,105,108,101,114,21,0,0,0,41, - 2,218,7,104,105,115,116,111,114,121,218,8,114,101,97,100, - 108,105,110,101,115,2,0,0,0,128,128,114,12,0,0,0, - 218,13,119,114,105,116,101,95,104,105,115,116,111,114,121,122, - 67,101,110,97,98,108,101,114,108,99,111,109,112,108,101,116, - 101,114,46,60,108,111,99,97,108,115,62,46,114,101,103,105, - 115,116,101,114,95,114,101,97,100,108,105,110,101,46,60,108, - 111,99,97,108,115,62,46,119,114,105,116,101,95,104,105,115, - 116,111,114,121,241,1,0,0,115,42,0,0,0,248,128,0, - 240,2,5,17,25,216,20,28,215,20,47,209,20,47,176,7, - 213,20,56,248,220,23,30,242,0,3,17,25,241,6,0,21, - 25,240,7,3,17,25,250,115,12,0,0,0,131,17,21,0, - 149,9,33,3,160,1,33,3,41,15,218,6,97,116,101,120, - 105,116,114,206,0,0,0,218,11,114,108,99,111,109,112,108, - 101,116,101,114,218,11,73,109,112,111,114,116,69,114,114,111, - 114,114,64,0,0,0,218,14,112,97,114,115,101,95,97,110, - 100,95,98,105,110,100,218,14,114,101,97,100,95,105,110,105, - 116,95,102,105,108,101,114,21,0,0,0,218,26,103,101,116, - 95,99,117,114,114,101,110,116,95,104,105,115,116,111,114,121, - 95,108,101,110,103,116,104,114,17,0,0,0,114,18,0,0, - 0,114,19,0,0,0,114,119,0,0,0,218,17,114,101,97, - 100,95,104,105,115,116,111,114,121,95,102,105,108,101,218,8, - 114,101,103,105,115,116,101,114,41,6,114,208,0,0,0,114, - 209,0,0,0,218,12,114,101,97,100,108,105,110,101,95,100, - 111,99,114,207,0,0,0,114,205,0,0,0,114,206,0,0, - 0,115,6,0,0,0,32,32,32,32,64,64,114,12,0,0, - 0,218,17,114,101,103,105,115,116,101,114,95,114,101,97,100, - 108,105,110,101,122,44,101,110,97,98,108,101,114,108,99,111, - 109,112,108,101,116,101,114,46,60,108,111,99,97,108,115,62, - 46,114,101,103,105,115,116,101,114,95,114,101,97,100,108,105, - 110,101,203,1,0,0,115,254,0,0,0,249,128,0,219,8, - 21,240,2,4,9,19,219,12,27,219,12,30,244,12,0,24, - 31,152,120,168,25,176,66,211,23,55,136,12,216,11,23,208, - 11,35,168,9,176,92,209,40,65,216,12,20,215,12,35,209, - 12,35,208,36,57,213,12,58,224,12,20,215,12,35,209,12, - 35,160,79,212,12,52,240,4,7,9,17,216,12,20,215,12, - 35,209,12,35,212,12,37,240,16,0,12,20,215,11,46,209, - 11,46,211,11,48,176,65,210,11,53,244,12,0,23,25,151, - 103,145,103,151,108,145,108,164,50,167,55,161,55,215,35,53, - 209,35,53,176,99,211,35,58,216,35,52,243,3,1,23,54, - 136,71,240,4,3,13,21,216,16,24,215,16,42,209,16,42, - 168,55,212,16,51,245,8,6,13,25,240,16,0,13,19,143, - 79,137,79,152,77,213,12,42,240,43,0,12,54,248,244,41, - 0,16,27,242,0,1,9,19,217,12,18,240,3,1,9,19, - 251,244,26,0,16,23,242,0,5,9,17,241,10,0,13,17, - 240,11,5,9,17,251,244,34,0,20,27,242,0,1,13,21, - 217,16,20,240,3,1,13,21,250,115,53,0,0,0,136,8, - 67,18,0,193,7,16,67,33,0,194,40,17,67,48,0,195, - 18,9,67,30,3,195,29,1,67,30,3,195,33,9,67,45, - 3,195,44,1,67,45,3,195,48,9,67,60,3,195,59,1, - 67,60,3,78,41,2,114,6,0,0,0,218,19,95,95,105, + 0,0,82,17,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,83,2,53,1,0,0,0,0,0,0, + 83,3,53,2,0,0,0,0,0,0,36,0,41,4,122,168, + 67,104,101,99,107,32,105,102,32,116,104,101,32,80,89,84, + 72,79,78,95,72,73,83,84,79,82,89,32,101,110,118,105, + 114,111,110,109,101,110,116,32,118,97,114,105,97,98,108,101, + 32,105,115,32,115,101,116,32,97,110,100,32,100,101,102,105, + 110,101,10,105,116,32,97,115,32,116,104,101,32,46,112,121, + 116,104,111,110,95,104,105,115,116,111,114,121,32,102,105,108, + 101,46,32,32,73,102,32,80,89,84,72,79,78,95,72,73, + 83,84,79,82,89,32,105,115,32,110,111,116,32,115,101,116, + 44,32,117,115,101,32,116,104,101,10,100,101,102,97,117,108, + 116,32,46,112,121,116,104,111,110,95,104,105,115,116,111,114, + 121,32,102,105,108,101,46,10,218,14,80,89,84,72,79,78, + 95,72,73,83,84,79,82,89,114,131,0,0,0,122,15,46, + 112,121,116,104,111,110,95,104,105,115,116,111,114,121,41,9, + 114,6,0,0,0,114,7,0,0,0,218,18,105,103,110,111, + 114,101,95,101,110,118,105,114,111,110,109,101,110,116,114,17, + 0,0,0,114,135,0,0,0,114,136,0,0,0,114,18,0, + 0,0,114,19,0,0,0,114,125,0,0,0,41,1,218,7, + 104,105,115,116,111,114,121,115,1,0,0,0,32,114,12,0, + 0,0,218,14,103,101,116,104,105,115,116,111,114,121,102,105, + 108,101,114,216,0,0,0,212,1,0,0,115,85,0,0,0, + 128,0,244,10,0,12,15,143,57,137,57,215,11,39,215,11, + 39,220,18,20,151,42,145,42,151,46,145,46,208,33,49,211, + 18,50,136,7,222,11,18,216,19,26,136,78,220,11,13,143, + 55,137,55,143,60,137,60,156,2,159,7,153,7,215,24,42, + 209,24,42,168,51,211,24,47,216,8,25,243,3,1,12,27, + 240,0,1,5,27,114,14,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,243, + 34,0,0,0,149,0,91,0,0,0,0,0,0,0,0,0, + 91,2,0,0,0,0,0,0,0,0,108,2,0,0,0,0, + 0,0,0,0,103,1,41,2,122,104,69,110,97,98,108,101, + 32,100,101,102,97,117,108,116,32,114,101,97,100,108,105,110, + 101,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32, + 111,110,32,105,110,116,101,114,97,99,116,105,118,101,32,112, + 114,111,109,112,116,115,44,32,98,121,10,114,101,103,105,115, + 116,101,114,105,110,103,32,97,32,115,121,115,46,95,95,105, 110,116,101,114,97,99,116,105,118,101,104,111,111,107,95,95, - 41,1,114,217,0,0,0,115,1,0,0,0,32,114,12,0, - 0,0,218,17,101,110,97,98,108,101,114,108,99,111,109,112, - 108,101,116,101,114,114,219,0,0,0,194,1,0,0,115,18, - 0,0,0,128,0,242,18,46,5,43,240,96,1,0,31,48, - 132,67,213,4,27,114,14,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,243, - 66,4,0,0,151,0,116,0,0,0,0,0,0,0,0,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,125,1,116,4,0,0,0,0,0,0,0,0, - 106,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,1,107,40,0,0,114,35,100,2,124,1, - 118,0,114,31,116,0,0,0,0,0,0,0,0,0,106,2, + 46,10,78,41,3,218,17,114,101,103,105,115,116,101,114,95, + 114,101,97,100,108,105,110,101,114,6,0,0,0,218,19,95, + 95,105,110,116,101,114,97,99,116,105,118,101,104,111,111,107, + 95,95,114,111,0,0,0,114,14,0,0,0,114,12,0,0, + 0,218,17,101,110,97,98,108,101,114,108,99,111,109,112,108, + 101,116,101,114,114,220,0,0,0,225,1,0,0,115,12,0, + 0,0,128,0,244,8,0,31,48,132,67,213,4,27,114,14, + 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,3,0,0,0,243,18,4,0,0,94,11,94, + 12,149,0,91,0,0,0,0,0,0,0,0,0,82,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,2,25,0,0,0,120,1,125,2,116,4,0,0, - 0,0,0,0,0,0,95,4,0,0,0,0,0,0,0,0, - 110,16,116,4,0,0,0,0,0,0,0,0,106,10,0,0, + 0,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,100,23,0, + 0,91,6,0,0,0,0,0,0,0,0,82,8,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,83,1,53,1,0,0,0,0,0,0,110,0,79,2,83, + 2,110,0,83,3,83,4,75,5,110,1,30,0,30,0,83, + 3,83,4,75,6,110,2,83,3,83,4,75,7,110,3,30, + 0,85,0,40,0,0,0,0,0,0,0,97,3,0,0,83, + 2,110,4,79,147,91,0,0,0,0,0,0,0,0,0,82, + 18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,110,5,85,5,19,0,86,6,115,2,47,0,115, + 2,19,0,72,12,0,0,111,102,83,5,58,119,0,0,100, + 2,0,0,77,10,0,0,85,6,80,2,77,14,0,0,11, + 0,32,0,115,2,110,6,91,0,0,0,0,0,0,0,0, + 0,108,9,0,0,0,0,0,0,0,0,30,0,83,3,83, + 4,75,10,110,7,91,6,0,0,0,0,0,0,0,0,82, + 22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,83,6,58,88,0,0,97,28,0,0,83,3,83, + 4,75,12,110,7,85,7,82,26,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,82,28,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52, + 1,110,8,79,26,83,3,83,4,75,15,110,7,85,7,82, + 32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,82,28,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,110,8,83,3,83,7,75,17,74, + 18,110,4,32,0,85,5,91,0,0,0,0,0,0,0,0, + 0,108,9,0,0,0,0,0,0,0,0,85,2,98,68,0, + 0,85,2,82,38,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,83,8,58,88,0,0,97,18,0, + 0,85,2,82,41,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,83,9,53,1,0,0,0,0,0, + 0,32,0,79,17,85,2,82,41,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,10,53,1,0, + 0,0,0,0,0,32,0,30,0,85,2,82,43,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 0,0,0,0,0,0,0,32,0,85,2,98,20,0,0,85, + 2,82,47,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,83,3,58, + 88,0,0,97,95,0,0,91,49,0,0,0,0,0,0,0, + 0,53,0,0,0,0,0,0,0,109,11,85,4,40,0,0, + 0,0,0,0,0,97,23,0,0,87,7,82,12,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109, + 12,91,44,0,0,0,0,0,0,0,0,47,1,87,8,81, + 1,55,6,110,9,79,12,85,2,99,1,0,0,103,4,85, + 2,109,12,91,44,0,0,0,0,0,0,0,0,110,9,30, + 0,84,12,82,51,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,84,11,53,1,0,0,0,0,0, + 0,32,0,85,11,85,12,52,2,83,11,26,0,106,8,110, + 10,85,1,82,53,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,10,53,1,0,0,0,0,0, + 0,32,0,103,4,103,4,33,0,91,16,0,0,0,0,0, + 0,0,0,7,0,97,6,0,0,32,0,83,4,110,2,31, + 0,71,1,78,107,102,0,61,3,31,0,102,1,33,0,91, + 16,0,0,0,0,0,0,0,0,7,0,97,3,0,0,32, + 0,31,0,103,4,102,0,61,3,31,0,102,1,115,2,32, + 0,115,2,110,6,102,0,33,0,85,5,91,0,0,0,0, + 0,0,0,0,0,108,9,0,0,0,0,0,0,0,0,102, + 0,61,3,31,0,102,1,33,0,91,16,0,0,0,0,0, + 0,0,0,7,0,97,3,0,0,32,0,31,0,103,4,102, + 0,61,3,31,0,102,1,33,0,91,44,0,0,0,0,0, + 0,0,0,7,0,97,3,0,0,32,0,31,0,78,203,102, + 0,61,3,31,0,102,1,33,0,85,9,7,0,97,3,0, + 0,32,0,31,0,78,122,102,0,61,3,31,0,102,1,41, + 12,97,32,1,0,0,67,111,110,102,105,103,117,114,101,32, + 114,101,97,100,108,105,110,101,32,99,111,109,112,108,101,116, + 105,111,110,32,111,110,32,105,110,116,101,114,97,99,116,105, + 118,101,32,112,114,111,109,112,116,115,46,10,10,73,102,32, + 116,104,101,32,114,101,97,100,108,105,110,101,32,109,111,100, + 117,108,101,32,99,97,110,32,98,101,32,105,109,112,111,114, + 116,101,100,44,32,116,104,101,32,104,111,111,107,32,119,105, + 108,108,32,115,101,116,32,116,104,101,32,84,97,98,32,107, + 101,121,10,97,115,32,99,111,109,112,108,101,116,105,111,110, + 32,107,101,121,32,97,110,100,32,114,101,103,105,115,116,101, + 114,32,126,47,46,112,121,116,104,111,110,95,104,105,115,116, + 111,114,121,32,97,115,32,104,105,115,116,111,114,121,32,102, + 105,108,101,46,10,84,104,105,115,32,99,97,110,32,98,101, + 32,111,118,101,114,114,105,100,100,101,110,32,105,110,32,116, + 104,101,32,115,105,116,101,99,117,115,116,111,109,105,122,101, + 32,111,114,32,117,115,101,114,99,117,115,116,111,109,105,122, + 101,32,109,111,100,117,108,101,44,10,111,114,32,105,110,32, + 97,32,80,89,84,72,79,78,83,84,65,82,84,85,80,32, + 102,105,108,101,46,10,218,17,80,89,84,72,79,78,95,66, + 65,83,73,67,95,82,69,80,76,70,114,2,0,0,0,78, + 114,62,0,0,0,114,129,0,0,0,41,1,218,14,67,65, + 78,95,85,83,69,95,80,89,82,69,80,76,218,8,101,100, + 105,116,108,105,110,101,122,19,98,105,110,100,32,94,73,32, + 114,108,95,99,111,109,112,108,101,116,101,122,13,116,97,98, + 58,32,99,111,109,112,108,101,116,101,99,0,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,19,0,0,0,243, + 152,0,0,0,62,2,149,0,30,0,84,1,82,1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 125,2,116,0,0,0,0,0,0,0,0,0,106,12,0,0, + 84,0,53,1,0,0,0,0,0,0,32,0,103,0,33,0, + 91,2,0,0,0,0,0,0,0,0,91,4,0,0,0,0, + 0,0,0,0,52,2,7,0,97,3,0,0,32,0,31,0, + 103,0,91,6,0,0,0,0,0,0,0,0,7,0,97,25, + 0,0,32,0,91,8,0,0,0,0,0,0,0,0,82,10, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 106,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,116,0,0,0,0,0,0,0,0,0,106,12, + 0,0,40,0,0,0,0,0,0,0,97,2,0,0,31,0, + 103,0,101,0,102,0,61,3,31,0,102,1,114,16,0,0, + 0,41,6,218,18,119,114,105,116,101,95,104,105,115,116,111, + 114,121,95,102,105,108,101,218,17,70,105,108,101,78,111,116, + 70,111,117,110,100,69,114,114,111,114,218,15,80,101,114,109, + 105,115,115,105,111,110,69,114,114,111,114,114,21,0,0,0, + 218,5,101,114,114,110,111,218,5,69,82,79,70,83,41,2, + 114,215,0,0,0,218,15,114,101,97,100,108,105,110,101,95, + 109,111,100,117,108,101,115,2,0,0,0,128,128,114,12,0, + 0,0,218,13,119,114,105,116,101,95,104,105,115,116,111,114, + 121,218,40,114,101,103,105,115,116,101,114,95,114,101,97,100, + 108,105,110,101,46,60,108,111,99,97,108,115,62,46,119,114, + 105,116,101,95,104,105,115,116,111,114,121,61,2,0,0,115, + 68,0,0,0,248,128,0,240,2,10,13,26,216,16,31,215, + 16,50,209,16,50,176,55,213,16,59,248,220,20,37,164,127, + 208,19,55,243,0,3,13,21,241,6,0,17,21,220,19,26, + 243,0,4,13,26,220,19,24,151,59,151,59,217,20,24,224, + 20,25,240,9,4,13,26,250,115,20,0,0,0,131,17,21, + 0,149,16,65,9,3,167,30,65,9,3,193,7,2,65,9, + 3,41,27,114,6,0,0,0,114,7,0,0,0,114,214,0, + 0,0,114,17,0,0,0,218,6,103,101,116,101,110,118,218, + 6,97,116,101,120,105,116,218,8,114,101,97,100,108,105,110, + 101,218,11,114,108,99,111,109,112,108,101,116,101,114,218,11, + 73,109,112,111,114,116,69,114,114,111,114,114,18,0,0,0, + 218,16,95,112,121,114,101,112,108,46,114,101,97,100,108,105, + 110,101,114,85,0,0,0,218,23,95,112,121,114,101,112,108, + 46,119,105,110,100,111,119,115,95,99,111,110,115,111,108,101, + 218,15,119,105,110,100,111,119,115,95,99,111,110,115,111,108, + 101,218,6,95,101,114,114,111,114,218,20,95,112,121,114,101, + 112,108,46,117,110,105,120,95,99,111,110,115,111,108,101,218, + 12,117,110,105,120,95,99,111,110,115,111,108,101,218,12,95, + 112,121,114,101,112,108,46,109,97,105,110,114,223,0,0,0, + 218,7,98,97,99,107,101,110,100,218,14,112,97,114,115,101, + 95,97,110,100,95,98,105,110,100,218,14,114,101,97,100,95, + 105,110,105,116,95,102,105,108,101,114,21,0,0,0,218,26, + 103,101,116,95,99,117,114,114,101,110,116,95,104,105,115,116, + 111,114,121,95,108,101,110,103,116,104,114,216,0,0,0,218, + 17,114,101,97,100,95,104,105,115,116,111,114,121,95,102,105, + 108,101,218,8,114,101,103,105,115,116,101,114,41,13,114,222, + 0,0,0,114,235,0,0,0,114,236,0,0,0,114,237,0, + 0,0,114,223,0,0,0,218,13,111,114,105,103,105,110,97, + 108,95,112,97,116,104,218,1,112,218,7,95,112,121,114,101, + 112,108,218,14,99,111,110,115,111,108,101,95,101,114,114,111, + 114,115,218,10,101,120,99,101,112,116,105,111,110,115,114,232, + 0,0,0,114,215,0,0,0,114,231,0,0,0,115,13,0, + 0,0,32,32,32,32,32,32,32,32,32,32,32,64,64,114, + 12,0,0,0,114,218,0,0,0,114,218,0,0,0,232,1, + 0,0,115,234,1,0,0,249,128,0,244,16,0,12,15,143, + 57,137,57,215,11,39,215,11,39,220,28,30,159,73,154,73, + 208,38,57,211,28,58,209,8,25,224,28,33,208,8,25,227, + 4,17,240,4,8,5,15,240,2,5,9,31,219,12,27,243, + 8,0,13,31,240,8,18,5,15,222,11,28,216,29,34,137, + 78,228,28,31,159,72,153,72,136,77,217,35,48,211,23,60, + 162,61,152,97,184,18,177,71,159,1,161,61,209,23,60,140, + 67,140,72,240,2,10,13,41,219,16,39,220,19,21,151,55, + 145,55,152,100,147,63,219,20,50,216,38,45,215,38,61,209, + 38,61,215,38,68,209,38,68,208,37,70,145,78,227,20,47, + 216,37,44,215,37,57,209,37,57,215,37,64,209,37,64,144, + 78,221,16,55,224,27,40,148,3,148,8,240,8,0,8,16, + 209,7,27,240,6,0,12,20,215,11,27,209,11,27,152,122, + 211,11,41,216,12,20,215,12,35,209,12,35,208,36,57,213, + 12,58,224,12,20,215,12,35,209,12,35,160,79,212,12,52, + 240,4,7,9,17,216,12,20,215,12,35,209,12,35,212,12, + 37,240,16,0,8,16,209,7,23,152,56,215,27,62,209,27, + 62,211,27,64,192,65,211,27,69,244,14,0,19,33,211,18, + 34,136,7,230,11,25,216,30,37,215,30,46,209,30,46,136, + 79,220,26,33,208,25,51,160,78,209,25,51,137,74,224,15, + 23,209,15,31,216,16,22,216,30,38,136,79,220,25,32,136, + 74,240,4,3,9,17,216,12,27,215,12,45,209,12,45,168, + 103,212,12,54,246,8,11,9,26,240,26,0,9,15,143,15, + 137,15,152,13,213,8,38,240,73,1,0,28,70,1,248,244, + 89,1,0,16,27,243,0,1,9,28,216,23,27,139,72,240, + 3,1,9,28,251,244,8,0,12,23,243,0,1,5,15,217, + 8,14,240,3,1,5,15,252,242,16,0,24,61,248,240,22, + 0,28,41,148,3,149,8,251,220,11,22,243,0,1,5,15, + 217,8,14,240,3,1,5,15,251,244,26,0,16,23,243,0, + 5,9,17,241,10,0,13,17,240,11,5,9,17,251,240,54, + 0,16,26,243,0,1,9,17,217,12,16,240,3,1,9,17, + 250,115,157,0,0,0,193,1,4,70,37,0,193,5,4,70, + 56,0,193,10,9,71,29,0,193,20,20,71,29,0,193,40, + 9,71,8,4,193,53,6,71,8,4,193,59,12,71,29,0, + 194,8,65,20,71,13,0,195,28,11,71,29,0,196,30,16, + 71,45,0,197,58,17,71,61,0,198,37,12,70,53,3,198, + 49,1,70,56,0,198,52,1,70,53,3,198,53,3,70,56, + 0,198,56,10,71,5,3,199,4,1,71,5,3,199,8,5, + 71,29,0,199,13,13,71,26,3,199,26,3,71,29,0,199, + 29,10,71,42,3,199,41,1,71,42,3,199,45,10,71,58, + 3,199,57,1,71,58,3,199,61,6,72,6,3,200,5,1, + 72,6,3,99,1,0,0,0,0,0,0,0,0,0,0,0, + 8,0,0,0,3,0,0,0,243,98,4,0,0,149,0,91, + 0,0,0,0,0,0,0,0,0,82,2,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,110,1,91, + 4,0,0,0,0,0,0,0,0,82,6,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,1,58, + 88,0,0,97,37,0,0,83,2,85,1,59,0,0,0,97, + 31,0,0,91,0,0,0,0,0,0,0,0,0,82,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,17,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,171,1,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,125,3,116,0,0,0,0,0, - 0,0,0,0,106,12,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,106,15,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,3,171,1, - 0,0,0,0,0,0,125,4,100,0,116,4,0,0,0,0, - 0,0,0,0,95,9,0,0,0,0,0,0,0,0,100,3, - 125,5,116,21,0,0,0,0,0,0,0,0,100,4,132,0, - 116,0,0,0,0,0,0,0,0,0,106,12,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,23, + 0,83,2,5,0,0,0,61,1,110,2,91,4,0,0,0, + 0,0,0,0,0,108,4,0,0,0,0,0,0,0,0,79, + 16,91,4,0,0,0,0,0,0,0,0,82,10,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110, + 2,91,0,0,0,0,0,0,0,0,0,82,12,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82, + 15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,91,0,0,0,0,0,0,0,0,0,82,12,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,3,124,5,171,2,0,0,0,0,0,0,116,0, - 0,0,0,0,0,0,0,0,106,12,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,23,0,0, + 0,82,17,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,2,53,1,0,0,0,0,0,0,53, + 1,0,0,0,0,0,0,110,3,91,0,0,0,0,0,0, + 0,0,0,82,12,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,82,15,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,3,53,1,0, + 0,0,0,0,0,110,4,83,0,91,4,0,0,0,0,0, + 0,0,0,108,9,0,0,0,0,0,0,0,0,83,3,110, + 5,91,21,0,0,0,0,0,0,0,0,83,4,26,0,91, + 0,0,0,0,0,0,0,0,0,82,12,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,23,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,4,124,5,171,2,0,0,0,0,0,0,102,2,68,0, - 171,0,0,0,0,0,0,0,100,0,171,2,0,0,0,0, - 0,0,125,6,124,6,144,1,114,0,124,6,125,7,100,5, - 125,8,116,25,0,0,0,0,0,0,0,0,124,7,100,6, - 172,7,171,2,0,0,0,0,0,0,53,0,125,9,124,9, - 68,0,93,113,0,0,125,10,100,8,124,10,118,0,115,1, - 140,8,124,10,106,27,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,8,171,1,0,0,0,0, - 0,0,92,3,0,0,125,11,125,12,125,13,124,11,106,29, + 0,88,53,53,2,0,0,0,0,0,0,91,0,0,0,0, + 0,0,0,0,0,82,12,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,23,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,88,69,53, + 2,0,0,0,0,0,0,52,2,19,0,53,0,0,0,0, + 0,0,0,83,0,53,2,0,0,0,0,0,0,110,6,85, + 6,40,0,0,0,0,0,0,0,71,1,97,5,0,0,85, + 6,110,7,83,5,110,8,91,25,0,0,0,0,0,0,0, + 0,85,7,83,6,83,7,57,2,2,0,110,9,85,9,19, + 0,72,120,0,0,110,10,83,8,85,10,59,0,0,0,100, + 2,0,0,77,11,0,0,85,10,82,27,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,8,53, + 1,0,0,0,0,0,0,117,3,0,0,112,188,110,13,85, + 11,82,29,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,0,0,0,0,0,0,0,82,31,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,106,31,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,125,11,124,13,106,29,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,125,13,124,11,100,9,107,40,0,0, - 114,17,124,13,106,31,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, - 125,8,140,97,124,11,100,10,107,40,0,0,115,1,140,103, - 124,13,116,4,0,0,0,0,0,0,0,0,95,9,0,0, - 0,0,0,0,0,0,140,115,4,0,9,0,100,0,100,0, - 100,0,171,2,0,0,0,0,0,0,1,0,124,4,120,1, - 116,4,0,0,0,0,0,0,0,0,95,16,0,0,0,0, - 0,0,0,0,116,4,0,0,0,0,0,0,0,0,95,17, - 0,0,0,0,0,0,0,0,116,37,0,0,0,0,0,0, - 0,0,124,0,116,4,0,0,0,0,0,0,0,0,106,32, + 0,53,0,0,0,0,0,0,0,110,11,85,13,82,29,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,103,1,171,2,0,0,0,0,0,0,1,0,124,8, - 100,5,107,40,0,0,114,38,116,38,0,0,0,0,0,0, - 0,0,106,41,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,11,116,4,0,0,0,0,0,0, - 0,0,106,32,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,1,0, - 124,0,83,0,116,4,0,0,0,0,0,0,0,0,106,32, + 0,53,0,0,0,0,0,0,0,110,13,85,11,83,9,58, + 88,0,0,97,18,0,0,85,13,82,31,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0, + 0,0,0,0,0,110,8,77,101,0,0,85,11,83,10,58, + 88,0,0,100,2,0,0,77,109,0,0,85,13,91,4,0, + 0,0,0,0,0,0,0,108,9,0,0,0,0,0,0,0, + 0,77,122,0,0,11,0,32,0,83,0,83,0,83,0,53, + 2,0,0,0,0,0,0,32,0,85,4,61,1,91,4,0, + 0,0,0,0,0,0,0,108,16,0,0,0,0,0,0,0, + 0,91,4,0,0,0,0,0,0,0,0,108,17,0,0,0, + 0,0,0,0,0,91,37,0,0,0,0,0,0,0,0,85, + 0,91,4,0,0,0,0,0,0,0,0,82,32,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47, + 1,53,2,0,0,0,0,0,0,32,0,85,8,83,5,58, + 88,0,0,97,38,0,0,91,38,0,0,0,0,0,0,0, + 0,82,41,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,11,91,4,0,0,0,0,0,0,0, + 0,82,32,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,53,2,0,0,0,0,0,0,32,0,85, + 0,36,0,91,4,0,0,0,0,0,0,0,0,82,32,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,103,1,97,19,100,12,97,21,124,0,83,0,35,0, - 49,0,115,1,119,2,1,0,89,0,1,0,1,0,140,122, - 120,3,89,0,119,1,41,13,78,114,126,0,0,0,218,19, - 95,95,80,89,86,69,78,86,95,76,65,85,78,67,72,69, - 82,95,95,122,10,112,121,118,101,110,118,46,99,102,103,99, - 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 51,0,0,0,243,94,0,0,0,75,0,1,0,151,0,124, - 0,93,37,0,0,125,1,116,0,0,0,0,0,0,0,0, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,106,5,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,1,171,1,0,0,0, - 0,0,0,114,4,124,1,150,1,151,1,1,0,140,39,4, - 0,121,0,173,3,119,1,114,16,0,0,0,41,3,114,17, - 0,0,0,114,18,0,0,0,218,6,105,115,102,105,108,101, - 41,2,218,2,46,48,218,8,99,111,110,102,102,105,108,101, - 115,2,0,0,0,32,32,114,12,0,0,0,218,9,60,103, - 101,110,101,120,112,114,62,122,23,118,101,110,118,46,60,108, - 111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,62, - 10,2,0,0,115,46,0,0,0,232,0,248,128,0,240,0, - 6,9,10,241,2,3,38,14,152,24,244,8,0,16,18,143, - 119,137,119,143,126,137,126,152,104,212,15,39,244,9,0,13, - 21,241,0,3,38,14,249,115,4,0,0,0,130,43,45,1, - 218,4,116,114,117,101,122,5,117,116,102,45,56,41,1,218, - 8,101,110,99,111,100,105,110,103,218,1,61,122,28,105,110, - 99,108,117,100,101,45,115,121,115,116,101,109,45,115,105,116, - 101,45,112,97,99,107,97,103,101,115,218,4,104,111,109,101, - 114,2,0,0,0,70,41,22,114,17,0,0,0,114,129,0, - 0,0,114,6,0,0,0,114,131,0,0,0,218,16,95,98, - 97,115,101,95,101,120,101,99,117,116,97,98,108,101,218,10, - 101,120,101,99,117,116,97,98,108,101,114,18,0,0,0,114, - 187,0,0,0,114,20,0,0,0,218,5,95,104,111,109,101, - 218,4,110,101,120,116,114,19,0,0,0,218,4,111,112,101, - 110,218,9,112,97,114,116,105,116,105,111,110,114,78,0,0, - 0,218,5,108,111,119,101,114,114,165,0,0,0,218,11,101, - 120,101,99,95,112,114,101,102,105,120,114,170,0,0,0,114, - 159,0,0,0,218,6,105,110,115,101,114,116,114,149,0,0, - 0,41,14,114,47,0,0,0,218,3,101,110,118,114,232,0, + 0,47,1,113,19,83,12,113,21,85,0,36,0,33,0,44, + 0,40,0,0,0,0,0,0,0,100,1,0,0,102,2,32, + 0,31,0,32,0,32,0,78,128,61,3,31,0,102,1,41, + 13,78,114,132,0,0,0,218,19,95,95,80,89,86,69,78, + 86,95,76,65,85,78,67,72,69,82,95,95,122,10,112,121, + 118,101,110,118,46,99,102,103,99,1,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,51,0,0,0,243,114,0, + 0,0,35,0,32,0,149,0,85,0,19,0,72,45,0,0, + 110,1,91,0,0,0,0,0,0,0,0,0,82,2,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 82,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,1,53,1,0,0,0,0,0,0,40,0, + 0,0,0,0,0,0,100,2,0,0,77,41,0,0,85,1, + 118,0,149,5,32,0,77,47,0,0,11,0,32,0,103,0, + 55,3,102,1,114,16,0,0,0,41,3,114,17,0,0,0, + 114,18,0,0,0,218,6,105,115,102,105,108,101,41,2,218, + 2,46,48,218,8,99,111,110,102,102,105,108,101,115,2,0, + 0,0,32,32,114,12,0,0,0,218,9,60,103,101,110,101, + 120,112,114,62,218,23,118,101,110,118,46,60,108,111,99,97, + 108,115,62,46,60,103,101,110,101,120,112,114,62,90,2,0, + 0,115,47,0,0,0,233,0,128,0,240,0,6,9,10,242, + 2,3,38,14,152,24,244,8,0,16,18,143,119,137,119,143, + 126,137,126,152,104,215,15,39,247,9,0,13,21,137,72,242, + 0,3,38,14,249,115,8,0,0,0,130,40,55,1,174,9, + 55,1,218,4,116,114,117,101,122,5,117,116,102,45,56,41, + 1,218,8,101,110,99,111,100,105,110,103,218,1,61,122,28, + 105,110,99,108,117,100,101,45,115,121,115,116,101,109,45,115, + 105,116,101,45,112,97,99,107,97,103,101,115,218,4,104,111, + 109,101,114,2,0,0,0,70,41,22,114,17,0,0,0,114, + 135,0,0,0,114,6,0,0,0,114,137,0,0,0,218,16, + 95,98,97,115,101,95,101,120,101,99,117,116,97,98,108,101, + 218,10,101,120,101,99,117,116,97,98,108,101,114,18,0,0, + 0,114,200,0,0,0,114,20,0,0,0,218,5,95,104,111, + 109,101,218,4,110,101,120,116,114,19,0,0,0,218,4,111, + 112,101,110,218,9,112,97,114,116,105,116,105,111,110,114,78, + 0,0,0,114,147,0,0,0,114,178,0,0,0,218,11,101, + 120,101,99,95,112,114,101,102,105,120,114,184,0,0,0,114, + 172,0,0,0,218,6,105,110,115,101,114,116,114,162,0,0, + 0,41,14,114,47,0,0,0,218,3,101,110,118,114,14,1, 0,0,218,7,101,120,101,95,100,105,114,218,11,115,105,116, 101,95,112,114,101,102,105,120,218,13,99,111,110,102,95,98, 97,115,101,110,97,109,101,218,14,99,97,110,100,105,100,97, @@ -1405,371 +1598,382 @@ const unsigned char _Py_M__site[] = { 116,101,114,89,0,0,0,114,92,0,0,0,218,3,107,101, 121,114,54,0,0,0,218,5,118,97,108,117,101,115,14,0, 0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 114,12,0,0,0,218,4,118,101,110,118,114,249,0,0,0, - 253,1,0,0,115,176,1,0,0,128,0,244,6,0,11,13, - 143,42,137,42,128,67,220,7,10,135,124,129,124,144,120,210, - 7,31,208,36,57,184,83,209,36,64,220,44,46,175,74,169, + 114,12,0,0,0,218,4,118,101,110,118,114,30,1,0,0, + 77,2,0,0,115,170,1,0,0,128,0,244,6,0,11,13, + 143,42,137,42,128,67,220,7,10,135,124,129,124,144,120,211, + 7,31,208,36,57,184,83,211,36,64,220,44,46,175,74,169, 74,208,55,76,209,44,77,208,8,77,136,10,148,83,213,21, 41,228,21,24,151,94,145,94,136,10,220,14,16,143,103,137, 103,143,111,137,111,156,98,159,103,153,103,159,111,153,111,168, 106,211,30,57,211,14,58,128,71,220,18,20,151,39,145,39, 151,47,145,47,160,39,211,18,42,128,75,216,16,20,132,67, 132,73,216,20,32,128,77,220,21,25,241,2,6,9,10,228, - 16,18,151,7,145,7,151,12,145,12,152,87,160,109,211,16, - 52,220,16,18,151,7,145,7,151,12,145,12,152,91,168,45, - 211,16,56,241,5,3,38,14,243,3,6,9,10,240,14,0, - 9,13,243,17,9,22,6,128,78,242,22,0,8,22,216,23, - 37,136,12,216,22,28,136,11,244,6,0,14,18,144,44,168, - 23,213,13,49,176,81,219,24,25,144,4,216,19,22,152,36, - 146,59,216,36,40,167,78,161,78,176,51,211,36,55,145,77, - 144,67,152,17,152,69,216,26,29,159,41,153,41,155,43,215, - 26,43,209,26,43,211,26,45,144,67,216,28,33,159,75,153, - 75,155,77,144,69,216,23,26,208,30,60,210,23,60,216,38, - 43,167,107,161,107,163,109,153,11,216,25,28,160,6,155,29, - 216,36,41,156,3,157,9,241,17,0,25,26,247,3,0,14, - 50,240,22,0,40,51,208,8,50,140,3,140,10,148,83,148, - 95,244,6,0,9,24,152,11,164,99,167,106,161,106,160,92, - 212,8,50,240,8,0,12,23,152,38,210,11,32,220,12,20, - 143,79,137,79,152,65,156,115,159,122,153,122,212,12,42,240, - 10,0,12,23,208,4,22,244,7,0,25,28,159,10,153,10, - 144,124,136,72,216,31,36,208,12,28,224,11,22,208,4,22, - 247,49,0,14,50,208,13,49,250,115,25,0,0,0,196,36, - 10,72,21,3,196,47,65,30,72,21,3,198,14,13,72,21, - 3,200,21,5,72,30,7,99,0,0,0,0,0,0,0,0, - 0,0,0,0,8,0,0,0,3,0,0,0,243,134,1,0, - 0,151,0,9,0,9,0,100,1,100,2,108,0,125,0,121, - 2,35,0,116,2,0,0,0,0,0,0,0,0,36,0,114, - 27,125,1,124,1,106,4,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,3,107,40,0,0,114, - 1,110,1,130,0,89,0,100,2,125,1,126,1,121,2,100, - 2,125,1,126,1,119,1,119,0,120,3,89,0,119,1,35, - 0,116,6,0,0,0,0,0,0,0,0,36,0,114,136,125, - 2,116,8,0,0,0,0,0,0,0,0,106,10,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106, - 12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,114,37,116,9,0,0,0,0,0,0,0,0,106, - 14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,116,9,0,0,0,0,0,0,0,0,106,16,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,171,0,0,0,0,0,0,0,142,0,1,0,110,63,116, - 8,0,0,0,0,0,0,0,0,106,18,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,106,21,0, + 16,18,151,7,145,7,151,12,145,12,152,87,211,16,52,220, + 16,18,151,7,145,7,151,12,145,12,152,91,211,16,56,241, + 5,3,38,14,243,3,6,9,10,240,14,0,9,13,243,17, + 9,22,6,128,78,247,22,0,8,22,216,23,37,136,12,216, + 22,28,136,11,244,6,0,14,18,144,44,168,23,210,13,49, + 176,81,219,24,25,144,4,216,19,22,152,36,149,59,216,36, + 40,167,78,161,78,176,51,211,36,55,145,77,144,67,152,69, + 216,26,29,159,41,153,41,155,43,215,26,43,209,26,43,211, + 26,45,144,67,216,28,33,159,75,153,75,155,77,144,69,216, + 23,26,208,30,60,211,23,60,216,38,43,167,107,161,107,163, + 109,154,11,216,25,28,160,6,157,29,216,36,41,156,3,158, + 9,241,17,0,25,26,247,3,0,14,50,240,22,0,40,51, + 208,8,50,140,3,140,10,148,83,148,95,244,6,0,9,24, + 152,11,164,99,167,106,161,106,160,92,212,8,50,240,8,0, + 12,23,152,38,211,11,32,220,12,20,143,79,137,79,152,65, + 156,115,159,122,153,122,212,12,42,240,10,0,12,23,208,4, + 22,244,7,0,25,28,159,10,153,10,144,124,136,72,216,31, + 36,208,12,28,224,11,22,208,4,22,247,49,0,14,50,213, + 13,49,250,115,25,0,0,0,196,39,10,72,32,3,196,53, + 65,30,72,32,3,198,23,15,72,32,3,200,32,10,72,46, + 7,99,0,0,0,0,0,0,0,0,0,0,0,0,8,0, + 0,0,3,0,0,0,243,154,1,0,0,149,0,30,0,30, + 0,83,1,83,2,75,0,110,0,103,2,33,0,91,2,0, + 0,0,0,0,0,0,0,7,0,97,27,0,0,110,1,85, + 1,82,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,3,58,88,0,0,97,5,0,0,31, + 0,83,2,110,1,65,1,103,2,101,0,83,2,110,1,65, + 1,102,1,102,0,61,3,31,0,102,1,33,0,91,6,0, + 0,0,0,0,0,0,0,7,0,97,144,0,0,110,2,91, + 8,0,0,0,0,0,0,0,0,82,10,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,12,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,4,124,2,106,22,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,24,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,155,1,100, - 5,124,2,155,1,100,6,157,5,171,1,0,0,0,0,0, - 0,1,0,89,0,100,2,125,2,126,2,121,2,89,0,100, - 2,125,2,126,2,121,2,100,2,125,2,126,2,119,1,119, - 0,120,3,89,0,119,1,41,7,122,44,82,117,110,32,99, - 117,115,116,111,109,32,115,105,116,101,32,115,112,101,99,105, - 102,105,99,32,99,111,100,101,44,32,105,102,32,97,118,97, - 105,108,97,98,108,101,46,114,2,0,0,0,78,218,13,115, - 105,116,101,99,117,115,116,111,109,105,122,101,122,57,69,114, - 114,111,114,32,105,110,32,115,105,116,101,99,117,115,116,111, - 109,105,122,101,59,32,115,101,116,32,80,89,84,72,79,78, - 86,69,82,66,79,83,69,32,102,111,114,32,116,114,97,99, - 101,98,97,99,107,58,10,250,2,58,32,218,1,10,41,13, - 114,251,0,0,0,114,210,0,0,0,114,85,0,0,0,114, - 81,0,0,0,114,6,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,10,101,120,99,101,112,116,104,111,111,107,218, - 8,101,120,99,95,105,110,102,111,114,10,0,0,0,218,5, - 119,114,105,116,101,218,9,95,95,99,108,97,115,115,95,95, - 218,8,95,95,110,97,109,101,95,95,41,3,114,251,0,0, - 0,114,93,0,0,0,218,3,101,114,114,115,3,0,0,0, - 32,32,32,114,12,0,0,0,218,17,101,120,101,99,115,105, - 116,101,99,117,115,116,111,109,105,122,101,114,4,1,0,0, - 52,2,0,0,243,152,0,0,0,128,0,240,4,15,5,47, - 240,2,6,9,22,220,12,32,248,220,15,26,242,0,4,9, - 22,216,15,18,143,120,137,120,152,63,210,15,42,216,16,20, - 224,16,21,244,5,0,17,21,251,240,5,4,9,22,251,244, - 10,0,12,21,242,0,7,5,47,220,11,14,143,57,137,57, - 215,11,28,210,11,28,220,12,15,143,78,137,78,156,67,159, - 76,153,76,155,78,210,12,43,228,12,15,143,74,137,74,215, - 12,28,210,12,28,240,6,0,18,21,151,29,145,29,215,17, - 39,211,17,39,170,19,240,5,2,17,46,247,3,3,13,47, - 241,0,3,13,47,244,5,0,13,44,251,240,5,7,5,47, - 250,243,41,0,0,0,131,4,8,0,136,9,44,3,145,17, - 39,3,162,4,47,0,167,5,44,3,172,3,47,0,175,9, - 67,0,3,184,65,57,66,59,3,194,59,5,67,0,3,99, - 0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0, - 3,0,0,0,243,134,1,0,0,151,0,9,0,9,0,100, - 1,100,2,108,0,125,0,121,2,35,0,116,2,0,0,0, - 0,0,0,0,0,36,0,114,27,125,1,124,1,106,4,0, + 0,40,0,0,0,0,0,0,0,97,43,0,0,91,8,0, + 0,0,0,0,0,0,0,82,14,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,34,0,91,8,0, + 0,0,0,0,0,0,0,82,16,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,34,0,53,0,0, + 0,0,0,0,0,54,0,32,0,31,0,83,2,110,2,65, + 2,103,2,91,8,0,0,0,0,0,0,0,0,82,18,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,3,107,40,0,0,114,1,110,1,130,0,89,0,100, - 2,125,1,126,1,121,2,100,2,125,1,126,1,119,1,119, - 0,120,3,89,0,119,1,35,0,116,6,0,0,0,0,0, - 0,0,0,36,0,114,136,125,2,116,8,0,0,0,0,0, - 0,0,0,106,10,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,106,12,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,114,37,116,9,0, - 0,0,0,0,0,0,0,106,14,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,116,9,0,0,0, - 0,0,0,0,0,106,16,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0, - 0,142,0,1,0,110,63,116,8,0,0,0,0,0,0,0, - 0,106,18,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,106,21,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,100,4,124,2,106,22,0, + 0,82,21,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,4,85,2,82,22,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,24,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,106,24,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,155,1,100,5,124,2,155,1,100,6,157, - 5,171,1,0,0,0,0,0,0,1,0,89,0,100,2,125, - 2,126,2,121,2,89,0,100,2,125,2,126,2,121,2,100, - 2,125,2,126,2,119,1,119,0,120,3,89,0,119,1,41, - 7,122,44,82,117,110,32,99,117,115,116,111,109,32,117,115, - 101,114,32,115,112,101,99,105,102,105,99,32,99,111,100,101, - 44,32,105,102,32,97,118,97,105,108,97,98,108,101,46,114, - 2,0,0,0,78,218,13,117,115,101,114,99,117,115,116,111, - 109,105,122,101,122,57,69,114,114,111,114,32,105,110,32,117, - 115,101,114,99,117,115,116,111,109,105,122,101,59,32,115,101, - 116,32,80,89,84,72,79,78,86,69,82,66,79,83,69,32, - 102,111,114,32,116,114,97,99,101,98,97,99,107,58,10,114, - 252,0,0,0,114,253,0,0,0,41,13,114,8,1,0,0, - 114,210,0,0,0,114,85,0,0,0,114,81,0,0,0,114, - 6,0,0,0,114,7,0,0,0,114,8,0,0,0,114,254, - 0,0,0,114,255,0,0,0,114,10,0,0,0,114,0,1, - 0,0,114,1,1,0,0,114,2,1,0,0,41,3,114,8, - 1,0,0,114,93,0,0,0,114,3,1,0,0,115,3,0, - 0,0,32,32,32,114,12,0,0,0,218,17,101,120,101,99, - 117,115,101,114,99,117,115,116,111,109,105,122,101,114,9,1, - 0,0,72,2,0,0,114,5,1,0,0,114,6,1,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,3,0,0,0,243,148,1,0,0,151,0,116,0,0,0, - 0,0,0,0,0,0,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,1,100,1,26,0, - 125,0,116,5,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,125,1,124,0,116,0,0,0,0,0,0,0, - 0,0,106,2,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,107,55,0,0,114,10,116,7,0,0, - 0,0,0,0,0,0,171,0,0,0,0,0,0,0,1,0, - 116,9,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,125,1,116,10,0,0,0,0,0,0,0,0, - 128,10,116,13,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,97,5,116,15,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,125,1,116,17,0,0, - 0,0,0,0,0,0,124,1,171,1,0,0,0,0,0,0, - 125,1,116,19,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,1,0,116,21,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,1,0,116,23,0,0,0,0, - 0,0,0,0,171,0,0,0,0,0,0,0,1,0,116,0, - 0,0,0,0,0,0,0,0,106,24,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,26,0,0, + 0,60,1,14,0,83,5,85,2,60,1,14,0,83,6,51, + 5,53,1,0,0,0,0,0,0,32,0,31,0,83,2,110, + 2,65,2,103,2,83,2,110,2,65,2,102,1,102,0,61, + 3,31,0,102,1,41,7,122,44,82,117,110,32,99,117,115, + 116,111,109,32,115,105,116,101,32,115,112,101,99,105,102,105, + 99,32,99,111,100,101,44,32,105,102,32,97,118,97,105,108, + 97,98,108,101,46,114,2,0,0,0,78,218,13,115,105,116, + 101,99,117,115,116,111,109,105,122,101,122,57,69,114,114,111, + 114,32,105,110,32,115,105,116,101,99,117,115,116,111,109,105, + 122,101,59,32,115,101,116,32,80,89,84,72,79,78,86,69, + 82,66,79,83,69,32,102,111,114,32,116,114,97,99,101,98, + 97,99,107,58,10,250,2,58,32,218,1,10,41,13,114,32, + 1,0,0,114,238,0,0,0,114,85,0,0,0,114,81,0, + 0,0,114,6,0,0,0,114,7,0,0,0,114,8,0,0, + 0,218,10,101,120,99,101,112,116,104,111,111,107,218,8,101, + 120,99,95,105,110,102,111,114,10,0,0,0,218,5,119,114, + 105,116,101,218,9,95,95,99,108,97,115,115,95,95,218,8, + 95,95,110,97,109,101,95,95,41,3,114,32,1,0,0,114, + 93,0,0,0,218,3,101,114,114,115,3,0,0,0,32,32, + 32,114,12,0,0,0,218,17,101,120,101,99,115,105,116,101, + 99,117,115,116,111,109,105,122,101,114,41,1,0,0,132,2, + 0,0,243,142,0,0,0,128,0,240,4,15,5,47,240,2, + 6,9,22,220,12,32,248,220,15,26,243,0,4,9,22,216, + 15,18,143,120,137,120,152,63,211,15,42,220,16,20,224,16, + 21,251,240,9,4,9,22,251,244,10,0,12,21,243,0,7, + 5,47,220,11,14,143,57,137,57,215,11,28,215,11,28,220, + 12,15,143,78,138,78,156,67,159,76,154,76,155,78,214,12, + 43,228,12,15,143,74,137,74,215,12,28,210,12,28,240,6, + 0,18,21,151,29,145,29,215,17,39,212,17,39,171,19,240, + 5,2,17,46,247,3,3,13,47,241,0,3,13,47,251,240, + 9,7,5,47,250,243,51,0,0,0,131,4,8,0,136,10, + 45,3,146,16,40,3,162,4,48,0,167,1,40,3,168,5, + 45,3,173,3,48,0,176,10,67,10,3,186,65,5,67,5, + 3,194,4,60,67,5,3,195,5,5,67,10,3,99,0,0, + 0,0,0,0,0,0,0,0,0,0,8,0,0,0,3,0, + 0,0,243,154,1,0,0,149,0,30,0,30,0,83,1,83, + 2,75,0,110,0,103,2,33,0,91,2,0,0,0,0,0, + 0,0,0,7,0,97,27,0,0,110,1,85,1,82,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 115,10,116,29,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,1,0,116,31,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,1,0,116,10,0,0,0,0, - 0,0,0,0,114,11,116,33,0,0,0,0,0,0,0,0, - 171,0,0,0,0,0,0,0,1,0,121,1,121,1,41,2, - 122,207,65,100,100,32,115,116,97,110,100,97,114,100,32,115, - 105,116,101,45,115,112,101,99,105,102,105,99,32,100,105,114, - 101,99,116,111,114,105,101,115,32,116,111,32,116,104,101,32, - 109,111,100,117,108,101,32,115,101,97,114,99,104,32,112,97, - 116,104,46,10,10,32,32,32,32,84,104,105,115,32,102,117, - 110,99,116,105,111,110,32,105,115,32,99,97,108,108,101,100, - 32,97,117,116,111,109,97,116,105,99,97,108,108,121,32,119, - 104,101,110,32,116,104,105,115,32,109,111,100,117,108,101,32, - 105,115,32,105,109,112,111,114,116,101,100,44,10,32,32,32, - 32,117,110,108,101,115,115,32,116,104,101,32,112,121,116,104, - 111,110,32,105,110,116,101,114,112,114,101,116,101,114,32,119, - 97,115,32,115,116,97,114,116,101,100,32,119,105,116,104,32, - 116,104,101,32,45,83,32,102,108,97,103,46,10,32,32,32, - 32,78,41,17,114,6,0,0,0,114,18,0,0,0,114,49, - 0,0,0,114,42,0,0,0,114,249,0,0,0,114,149,0, - 0,0,114,112,0,0,0,114,154,0,0,0,114,170,0,0, - 0,114,179,0,0,0,114,194,0,0,0,114,198,0,0,0, - 114,7,0,0,0,218,8,105,115,111,108,97,116,101,100,114, - 219,0,0,0,114,4,1,0,0,114,9,1,0,0,41,2, - 218,9,111,114,105,103,95,112,97,116,104,114,47,0,0,0, - 115,2,0,0,0,32,32,114,12,0,0,0,218,4,109,97, - 105,110,114,13,1,0,0,92,2,0,0,115,143,0,0,0, - 128,0,244,16,0,17,20,151,8,145,8,153,17,144,11,128, - 73,220,18,32,211,18,34,128,75,216,7,16,148,67,151,72, - 145,72,210,7,28,244,6,0,9,18,140,11,228,18,22,144, - 123,211,18,35,128,75,220,7,23,208,7,31,220,27,47,211, - 27,49,208,8,24,220,18,37,160,107,211,18,50,128,75,220, - 18,33,160,43,211,18,46,128,75,220,4,11,132,73,220,4, - 16,132,78,220,4,13,132,75,220,11,14,143,57,137,57,215, - 11,29,210,11,29,220,8,25,212,8,27,220,4,21,212,4, - 23,221,7,23,220,8,25,213,8,27,240,3,0,8,24,114, - 14,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,8,0,0,0,3,0,0,0,243,196,3,0,0,151,0, - 100,1,125,0,116,0,0,0,0,0,0,0,0,0,106,2, + 0,83,3,58,88,0,0,97,5,0,0,31,0,83,2,110, + 1,65,1,103,2,101,0,83,2,110,1,65,1,102,1,102, + 0,61,3,31,0,102,1,33,0,91,6,0,0,0,0,0, + 0,0,0,7,0,97,144,0,0,110,2,91,8,0,0,0, + 0,0,0,0,0,82,10,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,12,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,97,43,0,0,91,8,0,0,0,0,0, + 0,0,0,82,14,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,91,8,0,0,0,0,0, + 0,0,0,82,16,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,53,0,0,0,0,0,0, + 0,54,0,32,0,31,0,83,2,110,2,65,2,103,2,91, + 8,0,0,0,0,0,0,0,0,82,18,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,21,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,2,100,0,26,0,125,1,124,1,115,168,116,5, - 0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0, - 125,2,116,7,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,125,3,116,9,0,0,0,0,0,0,0,0, - 100,3,171,1,0,0,0,0,0,0,1,0,116,0,0,0, - 0,0,0,0,0,0,106,10,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,68,0,93,17,0,0, - 125,4,116,9,0,0,0,0,0,0,0,0,100,4,124,4, - 155,2,100,5,157,3,171,1,0,0,0,0,0,0,1,0, - 140,19,4,0,116,9,0,0,0,0,0,0,0,0,100,6, - 171,1,0,0,0,0,0,0,1,0,100,7,132,0,125,5, - 116,9,0,0,0,0,0,0,0,0,100,8,124,2,155,2, - 100,9,2,0,124,5,124,2,171,1,0,0,0,0,0,0, - 155,0,100,10,157,5,171,1,0,0,0,0,0,0,1,0, - 116,9,0,0,0,0,0,0,0,0,100,11,124,3,155,2, - 100,9,2,0,124,5,124,3,171,1,0,0,0,0,0,0, - 155,0,100,10,157,5,171,1,0,0,0,0,0,0,1,0, - 116,9,0,0,0,0,0,0,0,0,100,12,116,12,0,0, - 0,0,0,0,0,0,155,2,157,2,171,1,0,0,0,0, - 0,0,1,0,116,1,0,0,0,0,0,0,0,0,106,14, + 0,83,4,85,2,82,22,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82,24,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,60,1,14, + 0,83,5,85,2,60,1,14,0,83,6,51,5,53,1,0, + 0,0,0,0,0,32,0,31,0,83,2,110,2,65,2,103, + 2,83,2,110,2,65,2,102,1,102,0,61,3,31,0,102, + 1,41,7,122,44,82,117,110,32,99,117,115,116,111,109,32, + 117,115,101,114,32,115,112,101,99,105,102,105,99,32,99,111, + 100,101,44,32,105,102,32,97,118,97,105,108,97,98,108,101, + 46,114,2,0,0,0,78,218,13,117,115,101,114,99,117,115, + 116,111,109,105,122,101,122,57,69,114,114,111,114,32,105,110, + 32,117,115,101,114,99,117,115,116,111,109,105,122,101,59,32, + 115,101,116,32,80,89,84,72,79,78,86,69,82,66,79,83, + 69,32,102,111,114,32,116,114,97,99,101,98,97,99,107,58, + 10,114,33,1,0,0,114,34,1,0,0,41,13,114,45,1, + 0,0,114,238,0,0,0,114,85,0,0,0,114,81,0,0, + 0,114,6,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,35,1,0,0,114,36,1,0,0,114,10,0,0,0,114, + 37,1,0,0,114,38,1,0,0,114,39,1,0,0,41,3, + 114,45,1,0,0,114,93,0,0,0,114,40,1,0,0,115, + 3,0,0,0,32,32,32,114,12,0,0,0,218,17,101,120, + 101,99,117,115,101,114,99,117,115,116,111,109,105,122,101,114, + 46,1,0,0,152,2,0,0,114,42,1,0,0,114,43,1, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,243,172,1,0,0,149,0,91,0, + 0,0,0,0,0,0,0,0,82,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,83,1,83,1, + 4,0,110,0,91,5,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,110,1,85,0,91,0,0,0,0,0, + 0,0,0,0,82,2,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,58,119,0,0,97,10,0,0, + 91,7,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,32,0,91,9,0,0,0,0,0,0,0,0,85,1, + 53,1,0,0,0,0,0,0,110,1,91,10,0,0,0,0, + 0,0,0,0,99,10,0,0,91,13,0,0,0,0,0,0, + 0,0,53,0,0,0,0,0,0,0,113,5,91,15,0,0, + 0,0,0,0,0,0,85,1,53,1,0,0,0,0,0,0, + 110,1,91,17,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,110,1,91,19,0,0,0,0,0,0, + 0,0,53,0,0,0,0,0,0,0,32,0,91,21,0,0, + 0,0,0,0,0,0,53,0,0,0,0,0,0,0,32,0, + 91,23,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,32,0,91,0,0,0,0,0,0,0,0,0,82,24, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,13,171,1,0,0,0,0,0,0,1,0,103,0, - 125,6,100,14,124,1,118,0,114,21,124,6,106,17,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,18,0,0,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,1,0,100,15,124,1,118,0,114,21,124,6,106,17, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,20,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,1,0,124,6,114,148,116,9,0,0,0,0, - 0,0,0,0,116,22,0,0,0,0,0,0,0,0,106,24, + 0,0,82,26,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,100,10, + 0,0,91,29,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,32,0,91,31,0,0,0,0,0,0,0,0, + 53,0,0,0,0,0,0,0,32,0,91,10,0,0,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,97,11,0,0, + 91,33,0,0,0,0,0,0,0,0,53,0,0,0,0,0, + 0,0,32,0,103,1,103,1,41,2,122,195,65,100,100,32, + 115,116,97,110,100,97,114,100,32,115,105,116,101,45,115,112, + 101,99,105,102,105,99,32,100,105,114,101,99,116,111,114,105, + 101,115,32,116,111,32,116,104,101,32,109,111,100,117,108,101, + 32,115,101,97,114,99,104,32,112,97,116,104,46,10,10,84, + 104,105,115,32,102,117,110,99,116,105,111,110,32,105,115,32, + 99,97,108,108,101,100,32,97,117,116,111,109,97,116,105,99, + 97,108,108,121,32,119,104,101,110,32,116,104,105,115,32,109, + 111,100,117,108,101,32,105,115,32,105,109,112,111,114,116,101, + 100,44,10,117,110,108,101,115,115,32,116,104,101,32,112,121, + 116,104,111,110,32,105,110,116,101,114,112,114,101,116,101,114, + 32,119,97,115,32,115,116,97,114,116,101,100,32,119,105,116, + 104,32,116,104,101,32,45,83,32,102,108,97,103,46,10,78, + 41,17,114,6,0,0,0,114,18,0,0,0,114,49,0,0, + 0,114,42,0,0,0,114,30,1,0,0,114,162,0,0,0, + 114,112,0,0,0,114,167,0,0,0,114,184,0,0,0,114, + 192,0,0,0,114,207,0,0,0,114,211,0,0,0,114,7, + 0,0,0,218,8,105,115,111,108,97,116,101,100,114,220,0, + 0,0,114,41,1,0,0,114,46,1,0,0,41,2,218,9, + 111,114,105,103,95,112,97,116,104,114,47,0,0,0,115,2, + 0,0,0,32,32,114,12,0,0,0,218,4,109,97,105,110, + 114,50,1,0,0,172,2,0,0,115,146,0,0,0,128,0, + 244,16,0,17,20,151,8,145,8,153,17,144,11,128,73,220, + 18,32,211,18,34,128,75,216,7,16,148,67,151,72,145,72, + 211,7,28,244,6,0,9,18,140,11,228,18,22,144,123,211, + 18,35,128,75,220,7,23,209,7,31,220,27,47,211,27,49, + 208,8,24,220,18,37,160,107,211,18,50,128,75,220,18,33, + 160,43,211,18,46,128,75,220,4,11,132,73,220,4,16,132, + 78,220,4,13,132,75,220,11,14,143,57,137,57,215,11,29, + 215,11,29,220,8,25,212,8,27,220,4,21,212,4,23,223, + 7,23,210,7,23,220,8,25,213,8,27,240,3,0,8,24, + 114,14,0,0,0,99,0,0,0,0,0,0,0,0,0,0, + 0,0,8,0,0,0,3,0,0,0,243,6,4,0,0,149, + 0,83,1,110,0,91,0,0,0,0,0,0,0,0,0,82, + 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,83,2,83,0,4,0,110,1,85,1,40,0,0, + 0,0,0,0,0,100,175,0,0,91,5,0,0,0,0,0, + 0,0,0,53,0,0,0,0,0,0,0,110,2,91,7,0, + 0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,110, + 3,91,9,0,0,0,0,0,0,0,0,83,3,53,1,0, + 0,0,0,0,0,32,0,91,0,0,0,0,0,0,0,0, + 0,82,10,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,19,0,72,19,0,0,110,4,91,9,0, + 0,0,0,0,0,0,0,83,4,85,4,60,2,14,0,83, + 5,51,3,53,1,0,0,0,0,0,0,32,0,77,21,0, + 0,11,0,32,0,91,9,0,0,0,0,0,0,0,0,83, + 6,53,1,0,0,0,0,0,0,32,0,83,7,26,0,110, + 5,91,9,0,0,0,0,0,0,0,0,83,8,85,2,60, + 2,14,0,83,9,85,5,34,0,85,2,53,1,0,0,0, + 0,0,0,14,0,83,10,51,5,53,1,0,0,0,0,0, + 0,32,0,91,9,0,0,0,0,0,0,0,0,83,11,85, + 3,60,2,14,0,83,9,85,5,34,0,85,3,53,1,0, + 0,0,0,0,0,14,0,83,10,51,5,53,1,0,0,0, + 0,0,0,32,0,91,9,0,0,0,0,0,0,0,0,83, + 12,91,12,0,0,0,0,0,0,0,0,60,2,14,0,51, + 2,53,1,0,0,0,0,0,0,32,0,91,0,0,0,0, + 0,0,0,0,0,82,14,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,83,13,53,1,0, + 0,0,0,0,0,32,0,47,0,110,6,83,14,85,1,59, + 0,0,0,97,21,0,0,85,6,82,17,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,91,18,0, + 0,0,0,0,0,0,0,53,1,0,0,0,0,0,0,32, + 0,83,15,85,1,59,0,0,0,97,21,0,0,85,6,82, + 17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,91,20,0,0,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,32,0,85,6,40,0,0,0,0,0,0, + 0,97,159,0,0,91,9,0,0,0,0,0,0,0,0,91, + 22,0,0,0,0,0,0,0,0,82,24,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,82,27,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,106,27,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,6,171,1,0,0,0,0,0,0, - 171,1,0,0,0,0,0,0,1,0,116,12,0,0,0,0, - 0,0,0,0,114,22,116,1,0,0,0,0,0,0,0,0, - 106,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,13,171,1,0,0,0,0,0,0,1,0, - 121,0,116,12,0,0,0,0,0,0,0,0,100,16,117,0, - 114,22,116,1,0,0,0,0,0,0,0,0,106,14,0,0, + 0,85,6,53,1,0,0,0,0,0,0,53,1,0,0,0, + 0,0,0,32,0,91,12,0,0,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,97,23,0,0,91,0,0,0,0, + 0,0,0,0,0,82,14,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,83,13,53,1,0, + 0,0,0,0,0,32,0,103,0,91,12,0,0,0,0,0, + 0,0,0,83,16,76,0,97,23,0,0,91,0,0,0,0, + 0,0,0,0,0,82,14,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,83,2,53,1,0, + 0,0,0,0,0,32,0,103,0,91,12,0,0,0,0,0, + 0,0,0,99,23,0,0,91,0,0,0,0,0,0,0,0, + 0,82,14,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,83,17,53,1,0,0,0,0,0, + 0,32,0,103,0,91,0,0,0,0,0,0,0,0,0,82, + 14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,34,0,83,18,53,1,0,0,0,0,0,0,32, + 0,103,0,83,13,83,0,75,14,110,7,91,9,0,0,0, + 0,0,0,0,0,85,7,82,31,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,85,0,91,0,0, + 0,0,0,0,0,0,0,82,2,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,13,5,0,0, + 0,91,22,0,0,0,0,0,0,0,0,82,24,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52, + 2,45,6,0,0,53,1,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,32,0,91,0,0,0,0,0,0,0,0, + 0,82,14,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,83,19,53,1,0,0,0,0,0, + 0,32,0,103,0,41,20,78,97,178,1,0,0,32,32,32, + 32,37,115,32,91,45,45,117,115,101,114,45,98,97,115,101, + 93,32,91,45,45,117,115,101,114,45,115,105,116,101,93,10, + 10,32,32,32,32,87,105,116,104,111,117,116,32,97,114,103, + 117,109,101,110,116,115,32,112,114,105,110,116,32,115,111,109, + 101,32,117,115,101,102,117,108,32,105,110,102,111,114,109,97, + 116,105,111,110,10,32,32,32,32,87,105,116,104,32,97,114, + 103,117,109,101,110,116,115,32,112,114,105,110,116,32,116,104, + 101,32,118,97,108,117,101,32,111,102,32,85,83,69,82,95, + 66,65,83,69,32,97,110,100,47,111,114,32,85,83,69,82, + 95,83,73,84,69,32,115,101,112,97,114,97,116,101,100,10, + 32,32,32,32,98,121,32,39,37,115,39,46,10,10,32,32, + 32,32,69,120,105,116,32,99,111,100,101,115,32,119,105,116, + 104,32,45,45,117,115,101,114,45,98,97,115,101,32,111,114, + 32,45,45,117,115,101,114,45,115,105,116,101,58,10,32,32, + 32,32,32,32,48,32,45,32,117,115,101,114,32,115,105,116, + 101,32,100,105,114,101,99,116,111,114,121,32,105,115,32,101, + 110,97,98,108,101,100,10,32,32,32,32,32,32,49,32,45, + 32,117,115,101,114,32,115,105,116,101,32,100,105,114,101,99, + 116,111,114,121,32,105,115,32,100,105,115,97,98,108,101,100, + 32,98,121,32,117,115,101,114,10,32,32,32,32,32,32,50, + 32,45,32,117,115,101,114,32,115,105,116,101,32,100,105,114, + 101,99,116,111,114,121,32,105,115,32,100,105,115,97,98,108, + 101,100,32,98,121,32,115,117,112,101,114,32,117,115,101,114, + 10,32,32,32,32,32,32,32,32,32,32,111,114,32,102,111, + 114,32,115,101,99,117,114,105,116,121,32,114,101,97,115,111, + 110,115,10,32,32,32,32,32,62,50,32,45,32,117,110,107, + 110,111,119,110,32,101,114,114,111,114,10,32,32,32,32,114, + 60,0,0,0,122,12,115,121,115,46,112,97,116,104,32,61, + 32,91,122,4,32,32,32,32,218,1,44,218,1,93,99,1, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,19, + 0,0,0,243,84,0,0,0,149,0,85,0,98,37,0,0, + 91,0,0,0,0,0,0,0,0,0,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 100,2,171,1,0,0,0,0,0,0,1,0,121,0,116,12, - 0,0,0,0,0,0,0,0,128,22,116,1,0,0,0,0, - 0,0,0,0,106,14,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,17,171,1,0,0,0,0, - 0,0,1,0,121,0,116,1,0,0,0,0,0,0,0,0, - 106,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,18,171,1,0,0,0,0,0,0,1,0, - 121,0,100,13,100,0,108,14,125,7,116,9,0,0,0,0, - 0,0,0,0,124,7,106,31,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,0,116,0,0,0, - 0,0,0,0,0,0,106,2,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,13,25,0,0,0, - 116,22,0,0,0,0,0,0,0,0,106,24,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,2, - 122,6,0,0,171,1,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,1,0,116,1,0,0,0,0,0,0,0,0, - 106,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,100,19,171,1,0,0,0,0,0,0,1,0, - 121,0,41,20,78,97,178,1,0,0,32,32,32,32,37,115, - 32,91,45,45,117,115,101,114,45,98,97,115,101,93,32,91, - 45,45,117,115,101,114,45,115,105,116,101,93,10,10,32,32, - 32,32,87,105,116,104,111,117,116,32,97,114,103,117,109,101, - 110,116,115,32,112,114,105,110,116,32,115,111,109,101,32,117, - 115,101,102,117,108,32,105,110,102,111,114,109,97,116,105,111, - 110,10,32,32,32,32,87,105,116,104,32,97,114,103,117,109, - 101,110,116,115,32,112,114,105,110,116,32,116,104,101,32,118, - 97,108,117,101,32,111,102,32,85,83,69,82,95,66,65,83, - 69,32,97,110,100,47,111,114,32,85,83,69,82,95,83,73, - 84,69,32,115,101,112,97,114,97,116,101,100,10,32,32,32, - 32,98,121,32,39,37,115,39,46,10,10,32,32,32,32,69, - 120,105,116,32,99,111,100,101,115,32,119,105,116,104,32,45, - 45,117,115,101,114,45,98,97,115,101,32,111,114,32,45,45, - 117,115,101,114,45,115,105,116,101,58,10,32,32,32,32,32, - 32,48,32,45,32,117,115,101,114,32,115,105,116,101,32,100, - 105,114,101,99,116,111,114,121,32,105,115,32,101,110,97,98, - 108,101,100,10,32,32,32,32,32,32,49,32,45,32,117,115, - 101,114,32,115,105,116,101,32,100,105,114,101,99,116,111,114, - 121,32,105,115,32,100,105,115,97,98,108,101,100,32,98,121, - 32,117,115,101,114,10,32,32,32,32,32,32,50,32,45,32, - 117,115,101,114,32,115,105,116,101,32,100,105,114,101,99,116, - 111,114,121,32,105,115,32,100,105,115,97,98,108,101,100,32, - 98,121,32,115,117,112,101,114,32,117,115,101,114,10,32,32, - 32,32,32,32,32,32,32,32,111,114,32,102,111,114,32,115, - 101,99,117,114,105,116,121,32,114,101,97,115,111,110,115,10, - 32,32,32,32,32,62,50,32,45,32,117,110,107,110,111,119, - 110,32,101,114,114,111,114,10,32,32,32,32,114,60,0,0, - 0,122,12,115,121,115,46,112,97,116,104,32,61,32,91,122, - 4,32,32,32,32,218,1,44,218,1,93,99,1,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,19,0,0,0, - 243,72,0,0,0,151,0,124,0,129,32,116,0,0,0,0, - 0,0,0,0,0,106,2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,106,5,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,171, - 1,0,0,0,0,0,0,114,1,121,1,121,2,41,3,78, - 114,51,0,0,0,122,13,100,111,101,115,110,39,116,32,101, - 120,105,115,116,41,3,114,17,0,0,0,114,18,0,0,0, - 114,152,0,0,0,41,1,114,18,0,0,0,115,1,0,0, - 0,32,114,12,0,0,0,114,51,0,0,0,122,23,95,115, - 99,114,105,112,116,46,60,108,111,99,97,108,115,62,46,101, - 120,105,115,116,115,149,2,0,0,115,29,0,0,0,128,0, - 216,15,19,208,15,31,164,66,167,71,161,71,167,77,161,77, - 176,36,212,36,55,216,23,31,224,23,38,114,14,0,0,0, - 122,11,85,83,69,82,95,66,65,83,69,58,32,122,2,32, - 40,218,1,41,122,11,85,83,69,82,95,83,73,84,69,58, - 32,122,18,69,78,65,66,76,69,95,85,83,69,82,95,83, - 73,84,69,58,32,114,2,0,0,0,122,11,45,45,117,115, - 101,114,45,98,97,115,101,122,11,45,45,117,115,101,114,45, - 115,105,116,101,70,114,128,0,0,0,233,3,0,0,0,233, - 10,0,0,0,41,16,114,6,0,0,0,218,4,97,114,103, - 118,114,146,0,0,0,114,150,0,0,0,114,9,0,0,0, - 114,18,0,0,0,114,149,0,0,0,114,174,0,0,0,114, - 44,0,0,0,114,145,0,0,0,114,148,0,0,0,114,17, - 0,0,0,218,7,112,97,116,104,115,101,112,114,19,0,0, - 0,218,8,116,101,120,116,119,114,97,112,218,6,100,101,100, - 101,110,116,41,8,114,197,0,0,0,114,120,0,0,0,218, - 9,117,115,101,114,95,98,97,115,101,114,153,0,0,0,114, - 24,0,0,0,114,51,0,0,0,218,6,98,117,102,102,101, - 114,114,23,1,0,0,115,8,0,0,0,32,32,32,32,32, - 32,32,32,114,12,0,0,0,218,7,95,115,99,114,105,112, - 116,114,27,1,0,0,126,2,0,0,115,105,1,0,0,128, - 0,240,2,13,12,8,128,68,244,28,0,12,15,143,56,137, - 56,144,65,144,66,136,60,128,68,217,11,15,220,20,31,147, - 77,136,9,220,20,39,211,20,41,136,9,220,8,13,136,110, - 212,8,29,220,19,22,151,56,148,56,136,67,221,12,17,154, - 115,208,18,36,213,12,37,240,3,0,20,28,228,8,13,136, - 99,140,10,242,2,4,9,39,244,10,0,9,14,144,11,152, - 73,152,61,168,2,169,54,176,41,211,43,60,208,42,61,184, - 81,208,14,63,212,8,64,220,8,13,144,11,152,73,152,61, - 168,2,169,54,176,41,211,43,60,208,42,61,184,81,208,14, - 63,212,8,64,220,8,13,208,16,34,212,35,51,208,34,54, - 208,14,55,212,8,56,220,8,11,143,8,137,8,144,17,140, - 11,224,13,15,128,70,216,7,20,152,4,209,7,28,216,8, - 14,143,13,137,13,148,105,212,8,32,216,7,20,152,4,209, - 7,28,216,8,14,143,13,137,13,148,105,212,8,32,225,7, - 13,220,8,13,140,98,143,106,137,106,143,111,137,111,152,102, - 211,14,37,212,8,38,221,11,27,220,12,15,143,72,137,72, - 144,81,141,75,220,13,29,160,21,209,13,38,220,12,15,143, - 72,137,72,144,81,141,75,220,13,29,208,13,37,220,12,15, - 143,72,137,72,144,81,141,75,228,12,15,143,72,137,72,144, - 81,141,75,227,8,23,220,8,13,136,104,143,111,137,111,152, - 100,164,99,167,104,161,104,168,113,161,107,180,50,183,58,177, - 58,208,37,62,209,30,62,211,14,63,212,8,64,220,8,11, - 143,8,137,8,144,18,141,12,114,14,0,0,0,218,8,95, - 95,109,97,105,110,95,95,114,16,0,0,0,41,40,114,201, - 0,0,0,114,6,0,0,0,114,17,0,0,0,114,177,0, - 0,0,114,175,0,0,0,114,68,0,0,0,114,65,0,0, - 0,114,165,0,0,0,114,238,0,0,0,114,159,0,0,0, - 114,149,0,0,0,114,148,0,0,0,114,145,0,0,0,114, - 13,0,0,0,114,25,0,0,0,114,42,0,0,0,114,49, - 0,0,0,114,56,0,0,0,114,95,0,0,0,114,103,0, - 0,0,114,112,0,0,0,114,136,0,0,0,114,143,0,0, - 0,114,146,0,0,0,114,150,0,0,0,114,154,0,0,0, - 114,168,0,0,0,114,170,0,0,0,114,179,0,0,0,114, - 194,0,0,0,114,198,0,0,0,114,219,0,0,0,114,249, - 0,0,0,114,4,1,0,0,114,9,1,0,0,114,13,1, - 0,0,114,7,0,0,0,218,7,110,111,95,115,105,116,101, - 114,27,1,0,0,114,2,1,0,0,114,111,0,0,0,114, - 14,0,0,0,114,12,0,0,0,218,8,60,109,111,100,117, - 108,101,62,114,30,1,0,0,1,0,0,0,115,239,0,0, - 0,240,3,1,1,1,241,2,69,1,1,4,243,78,2,0, - 1,11,219,0,9,219,0,15,219,0,20,219,0,9,219,0, - 11,240,6,0,13,16,143,74,137,74,152,3,159,15,153,15, + 0,0,85,0,53,1,0,0,0,0,0,0,40,0,0,0, + 0,0,0,0,97,1,0,0,103,1,103,2,41,3,78,114, + 51,0,0,0,122,13,100,111,101,115,110,39,116,32,101,120, + 105,115,116,41,3,114,17,0,0,0,114,18,0,0,0,114, + 165,0,0,0,41,1,114,18,0,0,0,115,1,0,0,0, + 32,114,12,0,0,0,114,51,0,0,0,218,23,95,115,99, + 114,105,112,116,46,60,108,111,99,97,108,115,62,46,101,120, + 105,115,116,115,229,2,0,0,115,32,0,0,0,128,0,216, + 15,19,209,15,31,164,66,167,71,161,71,167,77,161,77,176, + 36,215,36,55,209,36,55,216,23,31,224,23,38,114,14,0, + 0,0,122,11,85,83,69,82,95,66,65,83,69,58,32,122, + 2,32,40,218,1,41,122,11,85,83,69,82,95,83,73,84, + 69,58,32,122,18,69,78,65,66,76,69,95,85,83,69,82, + 95,83,73,84,69,58,32,114,2,0,0,0,122,11,45,45, + 117,115,101,114,45,98,97,115,101,122,11,45,45,117,115,101, + 114,45,115,105,116,101,70,114,134,0,0,0,233,3,0,0, + 0,233,10,0,0,0,41,16,114,6,0,0,0,218,4,97, + 114,103,118,114,159,0,0,0,114,163,0,0,0,114,9,0, + 0,0,114,18,0,0,0,114,162,0,0,0,114,187,0,0, + 0,114,44,0,0,0,114,158,0,0,0,114,161,0,0,0, + 114,17,0,0,0,218,7,112,97,116,104,115,101,112,114,19, + 0,0,0,218,8,116,101,120,116,119,114,97,112,218,6,100, + 101,100,101,110,116,41,8,114,210,0,0,0,114,126,0,0, + 0,218,9,117,115,101,114,95,98,97,115,101,114,166,0,0, + 0,114,24,0,0,0,114,51,0,0,0,218,6,98,117,102, + 102,101,114,114,61,1,0,0,115,8,0,0,0,32,32,32, + 32,32,32,32,32,114,12,0,0,0,218,7,95,115,99,114, + 105,112,116,114,65,1,0,0,206,2,0,0,115,108,1,0, + 0,128,0,240,2,13,12,8,128,68,244,28,0,12,15,143, + 56,137,56,144,65,144,66,136,60,128,68,222,11,15,220,20, + 31,147,77,136,9,220,20,39,211,20,41,136,9,220,8,13, + 136,110,212,8,29,220,19,22,151,56,148,56,136,67,221,12, + 17,155,115,208,18,36,214,12,37,241,3,0,20,28,228,8, + 13,136,99,140,10,242,2,4,9,39,244,10,0,9,14,144, + 11,152,73,153,61,168,2,169,54,176,41,211,43,60,208,42, + 61,184,81,208,14,63,212,8,64,220,8,13,144,11,152,73, + 153,61,168,2,169,54,176,41,211,43,60,208,42,61,184,81, + 208,14,63,212,8,64,220,8,13,208,16,34,212,35,51,209, + 34,54,208,14,55,212,8,56,220,8,11,143,8,138,8,144, + 17,140,11,224,13,15,128,70,216,7,20,152,4,211,7,28, + 216,8,14,143,13,137,13,148,105,212,8,32,216,7,20,152, + 4,211,7,28,216,8,14,143,13,137,13,148,105,212,8,32, + 230,7,13,220,8,13,140,98,143,106,137,106,143,111,137,111, + 152,102,211,14,37,212,8,38,223,11,27,210,11,27,220,12, + 15,143,72,138,72,144,81,141,75,220,13,29,160,21,210,13, + 38,220,12,15,143,72,138,72,144,81,141,75,220,13,29,209, + 13,37,220,12,15,143,72,138,72,144,81,141,75,228,12,15, + 143,72,138,72,144,81,141,75,227,8,23,220,8,13,136,104, + 143,111,137,111,152,100,164,99,167,104,161,104,168,113,161,107, + 180,50,183,58,177,58,208,37,62,209,30,62,211,14,63,212, + 8,64,220,8,11,143,8,138,8,144,18,141,12,114,14,0, + 0,0,218,8,95,95,109,97,105,110,95,95,114,16,0,0, + 0,41,44,218,7,95,95,100,111,99,95,95,114,6,0,0, + 0,114,17,0,0,0,114,190,0,0,0,114,188,0,0,0, + 114,68,0,0,0,114,65,0,0,0,114,229,0,0,0,114, + 178,0,0,0,114,19,1,0,0,114,172,0,0,0,114,162, + 0,0,0,114,161,0,0,0,114,158,0,0,0,114,13,0, + 0,0,114,25,0,0,0,114,42,0,0,0,114,49,0,0, + 0,114,56,0,0,0,114,95,0,0,0,114,103,0,0,0, + 114,112,0,0,0,114,115,0,0,0,114,142,0,0,0,114, + 156,0,0,0,114,159,0,0,0,114,163,0,0,0,114,167, + 0,0,0,114,182,0,0,0,114,184,0,0,0,114,192,0, + 0,0,114,207,0,0,0,114,211,0,0,0,114,216,0,0, + 0,114,220,0,0,0,114,218,0,0,0,114,30,1,0,0, + 114,41,1,0,0,114,46,1,0,0,114,50,1,0,0,114, + 7,0,0,0,218,7,110,111,95,115,105,116,101,114,65,1, + 0,0,114,39,1,0,0,114,111,0,0,0,114,14,0,0, + 0,114,12,0,0,0,218,8,60,109,111,100,117,108,101,62, + 114,69,1,0,0,1,0,0,0,115,2,1,0,0,240,3, + 1,1,1,241,2,69,1,1,4,243,78,2,0,1,11,219, + 0,9,219,0,15,219,0,20,219,0,9,219,0,11,219,0, + 12,240,6,0,13,16,143,74,137,74,152,3,159,15,153,15, 208,11,40,128,8,240,6,0,20,24,208,0,16,240,10,0, 13,17,128,9,216,12,16,128,9,242,6,2,1,40,242,10, 6,1,38,242,18,20,1,17,242,46,16,1,23,242,38,10, - 1,13,242,26,63,1,23,243,68,2,23,1,23,242,52,22, - 1,16,242,64,1,20,1,35,242,48,10,1,75,1,242,26, - 10,1,21,242,26,15,1,21,242,34,13,1,23,243,30,31, - 1,24,243,66,1,7,1,23,242,18,13,1,55,242,32,19, - 1,21,242,44,1,1,44,242,6,57,1,48,242,118,1,52, + 1,13,242,26,63,1,23,244,68,2,23,1,23,242,52,22, + 1,16,242,64,1,1,1,20,242,8,20,1,35,242,48,16, + 1,87,1,242,38,10,1,21,242,26,15,1,21,242,34,13, + 1,23,244,30,37,1,24,244,78,1,7,1,23,242,18,13, + 1,55,242,32,19,1,21,242,44,1,1,44,242,8,10,1, + 27,242,26,4,1,48,242,14,98,1,1,39,242,74,3,52, 1,23,242,110,1,17,1,47,242,40,17,1,47,242,40,27, - 1,28,240,62,0,8,11,135,121,129,121,215,7,24,210,7, + 1,28,240,62,0,8,11,135,121,129,121,215,7,24,215,7, 24,217,4,8,132,70,242,4,52,1,21,240,108,1,0,4, - 12,136,122,210,3,25,217,4,11,133,73,240,3,0,4,26, + 12,136,122,211,3,25,217,4,11,133,73,240,3,0,4,26, 114,14,0,0,0, }; diff --git a/contrib/tools/python3/Python/frozen_modules/stat.h b/contrib/tools/python3/Python/frozen_modules/stat.h index 60d6860a6c1..62b2f11b8a2 100644 --- a/contrib/tools/python3/Python/frozen_modules/stat.h +++ b/contrib/tools/python3/Python/frozen_modules/stat.h @@ -1,328 +1,347 @@ /* Auto-generated by Programs/_freeze_module.py */ const unsigned char _Py_M__stat[] = { 227,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0, - 0,0,0,0,0,243,54,2,0,0,151,0,100,0,90,0, - 100,1,90,1,100,2,90,2,100,3,90,3,100,4,90,4, - 100,5,90,5,100,6,90,6,100,7,90,7,100,8,90,8, - 100,9,90,9,100,10,90,10,100,11,132,0,90,11,100,12, - 132,0,90,12,100,13,90,13,100,14,90,14,100,15,90,15, - 100,16,90,16,100,17,90,17,100,18,90,18,100,19,90,19, - 100,1,90,20,100,1,90,21,100,1,90,22,100,20,132,0, - 90,23,100,21,132,0,90,24,100,22,132,0,90,25,100,23, - 132,0,90,26,100,24,132,0,90,27,100,25,132,0,90,28, - 100,26,132,0,90,29,100,27,132,0,90,30,100,28,132,0, - 90,31,100,29,132,0,90,32,100,30,90,33,100,31,90,34, - 101,34,90,35,100,32,90,36,100,33,90,37,100,34,90,38, - 100,35,90,39,100,36,90,40,100,33,90,41,100,34,90,42, - 100,35,90,43,100,37,90,44,100,38,90,45,100,39,90,46, - 100,9,90,47,100,8,90,48,100,5,90,49,100,3,90,50, - 100,2,90,51,100,2,90,52,100,3,90,53,100,5,90,54, - 100,9,90,55,100,39,90,56,100,38,90,57,100,16,90,58, - 100,40,90,59,100,41,90,60,100,42,90,61,100,43,90,62, - 100,44,90,63,101,18,100,45,102,2,101,19,100,46,102,2, - 101,16,100,47,102,2,101,15,100,48,102,2,101,13,100,49, - 102,2,101,14,100,50,102,2,101,17,100,51,102,2,102,7, - 101,41,100,52,102,2,102,1,101,42,100,53,102,2,102,1, - 101,43,101,33,122,7,0,0,100,46,102,2,101,33,100,54, - 102,2,101,43,100,55,102,2,102,3,101,45,100,52,102,2, - 102,1,101,46,100,53,102,2,102,1,101,47,101,34,122,7, - 0,0,100,46,102,2,101,34,100,54,102,2,101,47,100,55, - 102,2,102,3,101,49,100,52,102,2,102,1,101,50,100,53, - 102,2,102,1,101,51,101,36,122,7,0,0,100,56,102,2, - 101,36,100,57,102,2,101,51,100,55,102,2,102,3,102,10, - 90,64,100,58,132,0,90,65,100,38,90,66,100,30,90,67, - 100,35,90,68,100,39,90,69,100,13,90,70,100,3,90,71, - 100,16,90,72,100,34,90,73,100,14,90,74,100,41,90,75, - 100,17,90,76,100,2,90,77,100,31,90,78,100,32,90,79, - 100,5,90,80,100,33,90,81,100,40,90,82,9,0,100,1, - 100,59,108,83,173,2,1,0,121,60,35,0,101,84,36,0, - 114,3,1,0,89,0,121,60,119,0,120,3,89,0,119,1, - 41,61,122,111,67,111,110,115,116,97,110,116,115,47,102,117, - 110,99,116,105,111,110,115,32,102,111,114,32,105,110,116,101, - 114,112,114,101,116,105,110,103,32,114,101,115,117,108,116,115, - 32,111,102,32,111,115,46,115,116,97,116,40,41,32,97,110, - 100,32,111,115,46,108,115,116,97,116,40,41,46,10,10,83, - 117,103,103,101,115,116,101,100,32,117,115,97,103,101,58,32, - 102,114,111,109,32,115,116,97,116,32,105,109,112,111,114,116, - 32,42,10,233,0,0,0,0,233,1,0,0,0,233,2,0, - 0,0,233,3,0,0,0,233,4,0,0,0,233,5,0,0, - 0,233,6,0,0,0,233,7,0,0,0,233,8,0,0,0, - 233,9,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,3,0,0,0,243,12,0,0,0,151, - 0,124,0,100,1,122,1,0,0,83,0,41,2,122,77,82, - 101,116,117,114,110,32,116,104,101,32,112,111,114,116,105,111, - 110,32,111,102,32,116,104,101,32,102,105,108,101,39,115,32, - 109,111,100,101,32,116,104,97,116,32,99,97,110,32,98,101, - 32,115,101,116,32,98,121,10,32,32,32,32,111,115,46,99, - 104,109,111,100,40,41,46,10,32,32,32,32,105,255,15,0, - 0,169,0,169,1,218,4,109,111,100,101,115,1,0,0,0, - 32,250,13,60,102,114,111,122,101,110,32,115,116,97,116,62, - 218,7,83,95,73,77,79,68,69,114,17,0,0,0,21,0, - 0,0,115,14,0,0,0,128,0,240,8,0,12,16,144,38, - 137,61,208,4,24,243,0,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,243, - 12,0,0,0,151,0,124,0,100,1,122,1,0,0,83,0, - 41,2,122,76,82,101,116,117,114,110,32,116,104,101,32,112, - 111,114,116,105,111,110,32,111,102,32,116,104,101,32,102,105, - 108,101,39,115,32,109,111,100,101,32,116,104,97,116,32,100, - 101,115,99,114,105,98,101,115,32,116,104,101,10,32,32,32, - 32,102,105,108,101,32,116,121,112,101,46,10,32,32,32,32, - 105,0,240,0,0,114,13,0,0,0,114,14,0,0,0,115, - 1,0,0,0,32,114,16,0,0,0,218,6,83,95,73,70, - 77,84,114,20,0,0,0,27,0,0,0,115,14,0,0,0, - 128,0,240,8,0,12,16,144,40,137,63,208,4,26,114,18, - 0,0,0,105,0,64,0,0,105,0,32,0,0,105,0,96, - 0,0,105,0,128,0,0,105,0,16,0,0,105,0,160,0, - 0,105,0,192,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,243,38,0,0,0, - 151,0,116,1,0,0,0,0,0,0,0,0,124,0,171,1, - 0,0,0,0,0,0,116,2,0,0,0,0,0,0,0,0, - 107,40,0,0,83,0,41,1,122,40,82,101,116,117,114,110, - 32,84,114,117,101,32,105,102,32,109,111,100,101,32,105,115, - 32,102,114,111,109,32,97,32,100,105,114,101,99,116,111,114, - 121,46,41,2,114,20,0,0,0,218,7,83,95,73,70,68, - 73,82,114,14,0,0,0,115,1,0,0,0,32,114,16,0, - 0,0,218,7,83,95,73,83,68,73,82,114,23,0,0,0, - 50,0,0,0,243,17,0,0,0,128,0,228,11,17,144,36, - 139,60,156,55,209,11,34,208,4,34,114,18,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,38,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,116, - 2,0,0,0,0,0,0,0,0,107,40,0,0,83,0,41, - 1,122,60,82,101,116,117,114,110,32,84,114,117,101,32,105, - 102,32,109,111,100,101,32,105,115,32,102,114,111,109,32,97, - 32,99,104,97,114,97,99,116,101,114,32,115,112,101,99,105, - 97,108,32,100,101,118,105,99,101,32,102,105,108,101,46,41, - 2,114,20,0,0,0,218,7,83,95,73,70,67,72,82,114, - 14,0,0,0,115,1,0,0,0,32,114,16,0,0,0,218, - 7,83,95,73,83,67,72,82,114,27,0,0,0,54,0,0, - 0,114,24,0,0,0,114,18,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 243,38,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,116,2,0,0,0, - 0,0,0,0,0,107,40,0,0,83,0,41,1,122,56,82, - 101,116,117,114,110,32,84,114,117,101,32,105,102,32,109,111, - 100,101,32,105,115,32,102,114,111,109,32,97,32,98,108,111, - 99,107,32,115,112,101,99,105,97,108,32,100,101,118,105,99, - 101,32,102,105,108,101,46,41,2,114,20,0,0,0,218,7, - 83,95,73,70,66,76,75,114,14,0,0,0,115,1,0,0, - 0,32,114,16,0,0,0,218,7,83,95,73,83,66,76,75, - 114,30,0,0,0,58,0,0,0,114,24,0,0,0,114,18, + 0,0,0,0,0,243,84,2,0,0,149,0,83,0,114,0, + 83,1,114,1,83,2,114,2,83,3,114,3,83,4,114,4, + 83,5,114,5,83,6,114,6,83,7,114,7,83,8,114,8, + 83,9,114,9,83,10,114,10,83,11,26,0,114,11,83,12, + 26,0,114,12,83,13,114,13,83,14,114,14,83,15,114,15, + 83,16,114,16,83,17,114,17,83,18,114,18,83,19,114,19, + 83,1,114,20,83,1,114,21,83,1,114,22,83,20,26,0, + 114,23,83,21,26,0,114,24,83,22,26,0,114,25,83,23, + 26,0,114,26,83,24,26,0,114,27,83,25,26,0,114,28, + 83,26,26,0,114,29,83,27,26,0,114,30,83,28,26,0, + 114,31,83,29,26,0,114,32,83,30,114,33,83,31,114,34, + 92,34,114,35,83,32,114,36,83,33,114,37,83,34,114,38, + 83,35,114,39,83,36,114,40,83,33,114,41,83,34,114,42, + 83,35,114,43,83,37,114,44,83,38,114,45,83,39,114,46, + 83,9,114,47,83,8,114,48,83,5,114,49,83,3,114,50, + 83,2,114,51,83,40,114,52,83,2,114,53,83,3,114,54, + 83,5,114,55,83,9,114,56,83,39,114,57,83,38,114,58, + 83,35,114,59,83,34,114,60,83,16,114,61,83,41,114,62, + 83,42,114,63,83,43,114,64,83,44,114,65,83,45,114,66, + 83,46,114,67,83,47,114,68,83,48,114,69,83,49,114,70, + 92,18,83,50,52,2,92,19,83,51,52,2,92,16,83,52, + 52,2,92,15,83,53,52,2,92,13,83,54,52,2,92,14, + 83,55,52,2,92,17,83,56,52,2,52,7,92,41,83,57, + 52,2,52,1,92,42,83,58,52,2,52,1,92,43,92,33, + 45,7,0,0,83,51,52,2,92,33,83,59,52,2,92,43, + 83,60,52,2,52,3,92,45,83,57,52,2,52,1,92,46, + 83,58,52,2,52,1,92,47,92,34,45,7,0,0,83,51, + 52,2,92,34,83,59,52,2,92,47,83,60,52,2,52,3, + 92,49,83,57,52,2,52,1,92,50,83,58,52,2,52,1, + 92,51,92,36,45,7,0,0,83,61,52,2,92,36,83,62, + 52,2,92,51,83,60,52,2,52,3,52,10,114,71,83,63, + 26,0,114,72,83,38,114,73,83,30,114,74,83,35,114,75, + 83,39,114,76,83,13,114,77,83,3,114,78,83,16,114,79, + 83,34,114,80,83,14,114,81,83,43,114,82,83,17,114,83, + 83,2,114,84,83,31,114,85,83,32,114,86,83,5,114,87, + 83,33,114,88,83,42,114,89,30,0,83,1,83,64,75,90, + 55,2,32,0,103,65,33,0,92,91,7,0,97,3,0,0, + 32,0,31,0,103,65,102,0,61,3,31,0,102,1,41,66, + 122,111,67,111,110,115,116,97,110,116,115,47,102,117,110,99, + 116,105,111,110,115,32,102,111,114,32,105,110,116,101,114,112, + 114,101,116,105,110,103,32,114,101,115,117,108,116,115,32,111, + 102,32,111,115,46,115,116,97,116,40,41,32,97,110,100,32, + 111,115,46,108,115,116,97,116,40,41,46,10,10,83,117,103, + 103,101,115,116,101,100,32,117,115,97,103,101,58,32,102,114, + 111,109,32,115,116,97,116,32,105,109,112,111,114,116,32,42, + 10,233,0,0,0,0,233,1,0,0,0,233,2,0,0,0, + 233,3,0,0,0,233,4,0,0,0,233,5,0,0,0,233, + 6,0,0,0,233,7,0,0,0,233,8,0,0,0,233,9, 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,0,0,0,243,38,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,116,2,0,0,0,0,0,0,0,0,107,40,0, - 0,83,0,41,1,122,43,82,101,116,117,114,110,32,84,114, - 117,101,32,105,102,32,109,111,100,101,32,105,115,32,102,114, - 111,109,32,97,32,114,101,103,117,108,97,114,32,102,105,108, - 101,46,41,2,114,20,0,0,0,218,7,83,95,73,70,82, - 69,71,114,14,0,0,0,115,1,0,0,0,32,114,16,0, - 0,0,218,7,83,95,73,83,82,69,71,114,33,0,0,0, - 62,0,0,0,114,24,0,0,0,114,18,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, - 0,0,0,243,38,0,0,0,151,0,116,1,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,116,2, - 0,0,0,0,0,0,0,0,107,40,0,0,83,0,41,1, - 122,48,82,101,116,117,114,110,32,84,114,117,101,32,105,102, - 32,109,111,100,101,32,105,115,32,102,114,111,109,32,97,32, - 70,73,70,79,32,40,110,97,109,101,100,32,112,105,112,101, - 41,46,41,2,114,20,0,0,0,218,7,83,95,73,70,73, - 70,79,114,14,0,0,0,115,1,0,0,0,32,114,16,0, - 0,0,218,8,83,95,73,83,70,73,70,79,114,36,0,0, - 0,66,0,0,0,114,24,0,0,0,114,18,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,243,38,0,0,0,151,0,116,1,0,0,0, - 0,0,0,0,0,124,0,171,1,0,0,0,0,0,0,116, - 2,0,0,0,0,0,0,0,0,107,40,0,0,83,0,41, - 1,122,44,82,101,116,117,114,110,32,84,114,117,101,32,105, + 2,0,0,0,3,0,0,0,243,12,0,0,0,149,0,85, + 0,83,1,45,1,0,0,36,0,41,2,122,69,82,101,116, + 117,114,110,32,116,104,101,32,112,111,114,116,105,111,110,32, + 111,102,32,116,104,101,32,102,105,108,101,39,115,32,109,111, + 100,101,32,116,104,97,116,32,99,97,110,32,98,101,32,115, + 101,116,32,98,121,10,111,115,46,99,104,109,111,100,40,41, + 46,10,105,255,15,0,0,169,0,169,1,218,4,109,111,100, + 101,115,1,0,0,0,32,218,13,60,102,114,111,122,101,110, + 32,115,116,97,116,62,218,7,83,95,73,77,79,68,69,114, + 17,0,0,0,21,0,0,0,115,14,0,0,0,128,0,240, + 8,0,12,16,144,38,137,61,208,4,24,243,0,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,3,0,0,0,243,12,0,0,0,149,0,85,0,83,1, + 45,1,0,0,36,0,41,2,122,68,82,101,116,117,114,110, + 32,116,104,101,32,112,111,114,116,105,111,110,32,111,102,32, + 116,104,101,32,102,105,108,101,39,115,32,109,111,100,101,32, + 116,104,97,116,32,100,101,115,99,114,105,98,101,115,32,116, + 104,101,10,102,105,108,101,32,116,121,112,101,46,10,105,0, + 240,0,0,114,13,0,0,0,114,14,0,0,0,115,1,0, + 0,0,32,114,16,0,0,0,218,6,83,95,73,70,77,84, + 114,20,0,0,0,27,0,0,0,115,14,0,0,0,128,0, + 240,8,0,12,16,144,40,137,63,208,4,26,114,18,0,0, + 0,105,0,64,0,0,105,0,32,0,0,105,0,96,0,0, + 105,0,128,0,0,105,0,16,0,0,105,0,160,0,0,105, + 0,192,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,243,38,0,0,0,149,0, + 91,1,0,0,0,0,0,0,0,0,85,0,53,1,0,0, + 0,0,0,0,91,2,0,0,0,0,0,0,0,0,58,72, + 0,0,36,0,41,1,122,40,82,101,116,117,114,110,32,84, + 114,117,101,32,105,102,32,109,111,100,101,32,105,115,32,102, + 114,111,109,32,97,32,100,105,114,101,99,116,111,114,121,46, + 41,2,114,20,0,0,0,218,7,83,95,73,70,68,73,82, + 114,14,0,0,0,115,1,0,0,0,32,114,16,0,0,0, + 218,7,83,95,73,83,68,73,82,114,23,0,0,0,50,0, + 0,0,243,17,0,0,0,128,0,228,11,17,144,36,139,60, + 156,55,209,11,34,208,4,34,114,18,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, + 0,0,243,38,0,0,0,149,0,91,1,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,91,2,0, + 0,0,0,0,0,0,0,58,72,0,0,36,0,41,1,122, + 60,82,101,116,117,114,110,32,84,114,117,101,32,105,102,32, + 109,111,100,101,32,105,115,32,102,114,111,109,32,97,32,99, + 104,97,114,97,99,116,101,114,32,115,112,101,99,105,97,108, + 32,100,101,118,105,99,101,32,102,105,108,101,46,41,2,114, + 20,0,0,0,218,7,83,95,73,70,67,72,82,114,14,0, + 0,0,115,1,0,0,0,32,114,16,0,0,0,218,7,83, + 95,73,83,67,72,82,114,27,0,0,0,54,0,0,0,114, + 24,0,0,0,114,18,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,38, + 0,0,0,149,0,91,1,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,91,2,0,0,0,0,0, + 0,0,0,58,72,0,0,36,0,41,1,122,56,82,101,116, + 117,114,110,32,84,114,117,101,32,105,102,32,109,111,100,101, + 32,105,115,32,102,114,111,109,32,97,32,98,108,111,99,107, + 32,115,112,101,99,105,97,108,32,100,101,118,105,99,101,32, + 102,105,108,101,46,41,2,114,20,0,0,0,218,7,83,95, + 73,70,66,76,75,114,14,0,0,0,115,1,0,0,0,32, + 114,16,0,0,0,218,7,83,95,73,83,66,76,75,114,30, + 0,0,0,58,0,0,0,114,24,0,0,0,114,18,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,3,0,0,0,243,38,0,0,0,149,0,91,1,0, + 0,0,0,0,0,0,0,85,0,53,1,0,0,0,0,0, + 0,91,2,0,0,0,0,0,0,0,0,58,72,0,0,36, + 0,41,1,122,43,82,101,116,117,114,110,32,84,114,117,101, + 32,105,102,32,109,111,100,101,32,105,115,32,102,114,111,109, + 32,97,32,114,101,103,117,108,97,114,32,102,105,108,101,46, + 41,2,114,20,0,0,0,218,7,83,95,73,70,82,69,71, + 114,14,0,0,0,115,1,0,0,0,32,114,16,0,0,0, + 218,7,83,95,73,83,82,69,71,114,33,0,0,0,62,0, + 0,0,114,24,0,0,0,114,18,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,243,38,0,0,0,149,0,91,1,0,0,0,0,0,0, + 0,0,85,0,53,1,0,0,0,0,0,0,91,2,0,0, + 0,0,0,0,0,0,58,72,0,0,36,0,41,1,122,48, + 82,101,116,117,114,110,32,84,114,117,101,32,105,102,32,109, + 111,100,101,32,105,115,32,102,114,111,109,32,97,32,70,73, + 70,79,32,40,110,97,109,101,100,32,112,105,112,101,41,46, + 41,2,114,20,0,0,0,218,7,83,95,73,70,73,70,79, + 114,14,0,0,0,115,1,0,0,0,32,114,16,0,0,0, + 218,8,83,95,73,83,70,73,70,79,114,36,0,0,0,66, + 0,0,0,114,24,0,0,0,114,18,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, + 0,0,243,38,0,0,0,149,0,91,1,0,0,0,0,0, + 0,0,0,85,0,53,1,0,0,0,0,0,0,91,2,0, + 0,0,0,0,0,0,0,58,72,0,0,36,0,41,1,122, + 44,82,101,116,117,114,110,32,84,114,117,101,32,105,102,32, + 109,111,100,101,32,105,115,32,102,114,111,109,32,97,32,115, + 121,109,98,111,108,105,99,32,108,105,110,107,46,41,2,114, + 20,0,0,0,218,7,83,95,73,70,76,78,75,114,14,0, + 0,0,115,1,0,0,0,32,114,16,0,0,0,218,7,83, + 95,73,83,76,78,75,114,39,0,0,0,70,0,0,0,114, + 24,0,0,0,114,18,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,243,38, + 0,0,0,149,0,91,1,0,0,0,0,0,0,0,0,85, + 0,53,1,0,0,0,0,0,0,91,2,0,0,0,0,0, + 0,0,0,58,72,0,0,36,0,41,1,122,37,82,101,116, + 117,114,110,32,84,114,117,101,32,105,102,32,109,111,100,101, + 32,105,115,32,102,114,111,109,32,97,32,115,111,99,107,101, + 116,46,41,2,114,20,0,0,0,218,8,83,95,73,70,83, + 79,67,75,114,14,0,0,0,115,1,0,0,0,32,114,16, + 0,0,0,218,8,83,95,73,83,83,79,67,75,114,42,0, + 0,0,74,0,0,0,115,17,0,0,0,128,0,228,11,17, + 144,36,139,60,156,56,209,11,35,208,4,35,114,18,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,3,0,0,0,243,4,0,0,0,149,0,103,1,41, + 2,122,35,82,101,116,117,114,110,32,84,114,117,101,32,105, 102,32,109,111,100,101,32,105,115,32,102,114,111,109,32,97, - 32,115,121,109,98,111,108,105,99,32,108,105,110,107,46,41, - 2,114,20,0,0,0,218,7,83,95,73,70,76,78,75,114, - 14,0,0,0,115,1,0,0,0,32,114,16,0,0,0,218, - 7,83,95,73,83,76,78,75,114,39,0,0,0,70,0,0, - 0,114,24,0,0,0,114,18,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 243,38,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,124,0,171,1,0,0,0,0,0,0,116,2,0,0,0, - 0,0,0,0,0,107,40,0,0,83,0,41,1,122,37,82, + 32,100,111,111,114,46,70,114,13,0,0,0,114,14,0,0, + 0,115,1,0,0,0,32,114,16,0,0,0,218,8,83,95, + 73,83,68,79,79,82,114,44,0,0,0,78,0,0,0,243, + 5,0,0,0,128,0,224,11,16,114,18,0,0,0,99,1, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3, + 0,0,0,243,4,0,0,0,149,0,103,1,41,2,122,42, + 82,101,116,117,114,110,32,84,114,117,101,32,105,102,32,109, + 111,100,101,32,105,115,32,102,114,111,109,32,97,110,32,101, + 118,101,110,116,32,112,111,114,116,46,70,114,13,0,0,0, + 114,14,0,0,0,115,1,0,0,0,32,114,16,0,0,0, + 218,8,83,95,73,83,80,79,82,84,114,47,0,0,0,82, + 0,0,0,114,45,0,0,0,114,18,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, + 0,0,243,4,0,0,0,149,0,103,1,41,2,122,39,82, 101,116,117,114,110,32,84,114,117,101,32,105,102,32,109,111, - 100,101,32,105,115,32,102,114,111,109,32,97,32,115,111,99, - 107,101,116,46,41,2,114,20,0,0,0,218,8,83,95,73, - 70,83,79,67,75,114,14,0,0,0,115,1,0,0,0,32, - 114,16,0,0,0,218,8,83,95,73,83,83,79,67,75,114, - 42,0,0,0,74,0,0,0,115,17,0,0,0,128,0,228, - 11,17,144,36,139,60,156,56,209,11,35,208,4,35,114,18, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,243,4,0,0,0,151,0,121, - 1,41,2,122,35,82,101,116,117,114,110,32,84,114,117,101, - 32,105,102,32,109,111,100,101,32,105,115,32,102,114,111,109, - 32,97,32,100,111,111,114,46,70,114,13,0,0,0,114,14, - 0,0,0,115,1,0,0,0,32,114,16,0,0,0,218,8, - 83,95,73,83,68,79,79,82,114,44,0,0,0,78,0,0, - 0,243,5,0,0,0,128,0,224,11,16,114,18,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,243,4,0,0,0,151,0,121,1,41,2, - 122,42,82,101,116,117,114,110,32,84,114,117,101,32,105,102, - 32,109,111,100,101,32,105,115,32,102,114,111,109,32,97,110, - 32,101,118,101,110,116,32,112,111,114,116,46,70,114,13,0, - 0,0,114,14,0,0,0,115,1,0,0,0,32,114,16,0, - 0,0,218,8,83,95,73,83,80,79,82,84,114,47,0,0, - 0,82,0,0,0,114,45,0,0,0,114,18,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,243,4,0,0,0,151,0,121,1,41,2,122, - 39,82,101,116,117,114,110,32,84,114,117,101,32,105,102,32, - 109,111,100,101,32,105,115,32,102,114,111,109,32,97,32,119, - 104,105,116,101,111,117,116,46,70,114,13,0,0,0,114,14, - 0,0,0,115,1,0,0,0,32,114,16,0,0,0,218,7, - 83,95,73,83,87,72,84,114,49,0,0,0,86,0,0,0, - 114,45,0,0,0,114,18,0,0,0,105,0,8,0,0,105, - 0,4,0,0,105,0,2,0,0,233,0,1,0,0,233,128, - 0,0,0,233,64,0,0,0,105,192,1,0,0,233,56,0, - 0,0,233,32,0,0,0,233,16,0,0,0,105,0,0,1, - 0,105,0,0,2,0,105,0,0,4,0,105,0,0,16,0, - 105,0,0,32,0,218,1,108,218,1,115,218,1,45,218,1, - 98,218,1,100,218,1,99,218,1,112,218,1,114,218,1,119, - 218,1,83,218,1,120,218,1,116,218,1,84,99,1,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, - 0,243,170,0,0,0,151,0,103,0,125,1,116,0,0,0, - 0,0,0,0,0,0,68,0,93,56,0,0,125,2,124,2, - 68,0,93,32,0,0,92,2,0,0,125,3,125,4,124,0, - 124,3,122,1,0,0,124,3,107,40,0,0,115,1,140,15, - 124,1,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,4,171,1,0,0,0,0,0,0, - 1,0,1,0,140,39,4,0,124,1,106,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, - 171,1,0,0,0,0,0,0,1,0,140,58,4,0,100,2, - 106,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,171,1,0,0,0,0,0,0,83,0, - 41,3,122,59,67,111,110,118,101,114,116,32,97,32,102,105, - 108,101,39,115,32,109,111,100,101,32,116,111,32,97,32,115, - 116,114,105,110,103,32,111,102,32,116,104,101,32,102,111,114, - 109,32,39,45,114,119,120,114,119,120,114,119,120,39,46,114, - 58,0,0,0,218,0,41,3,218,15,95,102,105,108,101,109, + 100,101,32,105,115,32,102,114,111,109,32,97,32,119,104,105, + 116,101,111,117,116,46,70,114,13,0,0,0,114,14,0,0, + 0,115,1,0,0,0,32,114,16,0,0,0,218,7,83,95, + 73,83,87,72,84,114,49,0,0,0,86,0,0,0,114,45, + 0,0,0,114,18,0,0,0,105,0,8,0,0,105,0,4, + 0,0,105,0,2,0,0,233,0,1,0,0,233,128,0,0, + 0,233,64,0,0,0,105,192,1,0,0,233,56,0,0,0, + 233,32,0,0,0,233,16,0,0,0,105,255,255,0,0,108, + 3,0,0,0,0,0,254,127,3,0,105,0,0,1,0,105, + 0,0,2,0,105,0,0,4,0,105,0,0,8,0,105,0, + 0,16,0,105,0,0,32,0,105,0,0,128,0,105,0,0, + 0,64,218,1,108,218,1,115,218,1,45,218,1,98,218,1, + 100,218,1,99,218,1,112,218,1,114,218,1,119,218,1,83, + 218,1,120,218,1,116,218,1,84,99,1,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,3,0,0,0,243,250, + 0,0,0,149,0,47,0,110,1,91,1,0,0,0,0,0, + 0,0,0,91,2,0,0,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,19,0,72,86,0,0,117,2,0,0,112, + 35,85,3,19,0,72,33,0,0,117,2,0,0,112,69,88, + 4,45,1,0,0,85,4,58,88,0,0,100,2,0,0,77, + 15,0,0,85,1,82,5,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,5,53,1,0,0,0, + 0,0,0,32,0,32,0,77,42,0,0,11,0,32,0,85, + 2,83,1,58,88,0,0,97,19,0,0,85,1,82,5,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,83,2,53,1,0,0,0,0,0,0,32,0,77,69,0, + 0,85,1,82,5,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,83,3,53,1,0,0,0,0,0, + 0,32,0,77,88,0,0,11,0,32,0,83,4,82,7,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,85,1,53,1,0,0,0,0,0,0,36,0,41,5,122, + 59,67,111,110,118,101,114,116,32,97,32,102,105,108,101,39, + 115,32,109,111,100,101,32,116,111,32,97,32,115,116,114,105, + 110,103,32,111,102,32,116,104,101,32,102,111,114,109,32,39, + 45,114,119,120,114,119,120,114,119,120,39,46,114,2,0,0, + 0,218,1,63,114,58,0,0,0,218,0,41,4,218,9,101, + 110,117,109,101,114,97,116,101,218,15,95,102,105,108,101,109, 111,100,101,95,116,97,98,108,101,218,6,97,112,112,101,110, - 100,218,4,106,111,105,110,41,5,114,15,0,0,0,218,4, - 112,101,114,109,218,5,116,97,98,108,101,218,3,98,105,116, - 218,4,99,104,97,114,115,5,0,0,0,32,32,32,32,32, - 114,16,0,0,0,218,8,102,105,108,101,109,111,100,101,114, - 78,0,0,0,156,0,0,0,115,88,0,0,0,128,0,224, - 11,13,128,68,223,17,32,136,5,219,25,30,137,73,136,67, - 144,20,216,15,19,144,99,137,122,152,83,211,15,32,216,16, - 20,151,11,145,11,152,68,212,16,33,217,16,21,240,7,0, - 26,31,240,10,0,13,17,143,75,137,75,152,3,213,12,28, - 240,13,0,18,33,240,14,0,12,14,143,55,137,55,144,52, - 139,61,208,4,24,114,18,0,0,0,41,1,218,1,42,78, - 41,85,218,7,95,95,100,111,99,95,95,218,7,83,84,95, - 77,79,68,69,218,6,83,84,95,73,78,79,218,6,83,84, - 95,68,69,86,218,8,83,84,95,78,76,73,78,75,218,6, - 83,84,95,85,73,68,218,6,83,84,95,71,73,68,218,7, - 83,84,95,83,73,90,69,218,8,83,84,95,65,84,73,77, - 69,218,8,83,84,95,77,84,73,77,69,218,8,83,84,95, - 67,84,73,77,69,114,17,0,0,0,114,20,0,0,0,114, - 22,0,0,0,114,26,0,0,0,114,29,0,0,0,114,32, - 0,0,0,114,35,0,0,0,114,38,0,0,0,114,41,0, - 0,0,218,8,83,95,73,70,68,79,79,82,218,8,83,95, - 73,70,80,79,82,84,218,7,83,95,73,70,87,72,84,114, - 23,0,0,0,114,27,0,0,0,114,30,0,0,0,114,33, - 0,0,0,114,36,0,0,0,114,39,0,0,0,114,42,0, - 0,0,114,44,0,0,0,114,47,0,0,0,114,49,0,0, - 0,218,7,83,95,73,83,85,73,68,218,7,83,95,73,83, - 71,73,68,218,7,83,95,69,78,70,77,84,218,7,83,95, - 73,83,86,84,88,218,7,83,95,73,82,69,65,68,218,8, - 83,95,73,87,82,73,84,69,218,7,83,95,73,69,88,69, - 67,218,7,83,95,73,82,87,88,85,218,7,83,95,73,82, - 85,83,82,218,7,83,95,73,87,85,83,82,218,7,83,95, - 73,88,85,83,82,218,7,83,95,73,82,87,88,71,218,7, - 83,95,73,82,71,82,80,218,7,83,95,73,87,71,82,80, - 218,7,83,95,73,88,71,82,80,218,7,83,95,73,82,87, - 88,79,218,7,83,95,73,82,79,84,72,218,7,83,95,73, - 87,79,84,72,218,7,83,95,73,88,79,84,72,218,9,85, - 70,95,78,79,68,85,77,80,218,12,85,70,95,73,77,77, - 85,84,65,66,76,69,218,9,85,70,95,65,80,80,69,78, - 68,218,9,85,70,95,79,80,65,81,85,69,218,11,85,70, - 95,78,79,85,78,76,73,78,75,218,13,85,70,95,67,79, - 77,80,82,69,83,83,69,68,218,9,85,70,95,72,73,68, - 68,69,78,218,11,83,70,95,65,82,67,72,73,86,69,68, - 218,12,83,70,95,73,77,77,85,84,65,66,76,69,218,9, - 83,70,95,65,80,80,69,78,68,218,11,83,70,95,78,79, - 85,78,76,73,78,75,218,11,83,70,95,83,78,65,80,83, - 72,79,84,114,71,0,0,0,114,78,0,0,0,218,22,70, - 73,76,69,95,65,84,84,82,73,66,85,84,69,95,65,82, - 67,72,73,86,69,218,25,70,73,76,69,95,65,84,84,82, - 73,66,85,84,69,95,67,79,77,80,82,69,83,83,69,68, - 218,21,70,73,76,69,95,65,84,84,82,73,66,85,84,69, - 95,68,69,86,73,67,69,218,24,70,73,76,69,95,65,84, - 84,82,73,66,85,84,69,95,68,73,82,69,67,84,79,82, - 89,218,24,70,73,76,69,95,65,84,84,82,73,66,85,84, - 69,95,69,78,67,82,89,80,84,69,68,218,21,70,73,76, - 69,95,65,84,84,82,73,66,85,84,69,95,72,73,68,68, - 69,78,218,31,70,73,76,69,95,65,84,84,82,73,66,85, - 84,69,95,73,78,84,69,71,82,73,84,89,95,83,84,82, - 69,65,77,218,21,70,73,76,69,95,65,84,84,82,73,66, - 85,84,69,95,78,79,82,77,65,76,218,34,70,73,76,69, - 95,65,84,84,82,73,66,85,84,69,95,78,79,84,95,67, - 79,78,84,69,78,84,95,73,78,68,69,88,69,68,218,28, + 100,218,4,106,111,105,110,41,6,114,15,0,0,0,218,4, + 112,101,114,109,218,5,105,110,100,101,120,218,5,116,97,98, + 108,101,218,3,98,105,116,218,4,99,104,97,114,115,6,0, + 0,0,32,32,32,32,32,32,114,16,0,0,0,218,8,102, + 105,108,101,109,111,100,101,114,81,0,0,0,164,0,0,0, + 115,110,0,0,0,128,0,224,11,13,128,68,220,24,33,164, + 47,214,24,50,137,12,136,5,219,25,30,137,73,136,67,216, + 15,19,137,122,152,83,213,15,32,216,16,20,151,11,145,11, + 152,68,212,16,33,218,16,21,241,7,0,26,31,240,10,0, + 16,21,152,1,139,122,224,16,20,151,11,145,11,152,67,214, + 16,32,224,16,20,151,11,145,11,152,67,214,16,32,241,21, + 0,25,51,240,22,0,12,14,143,55,137,55,144,52,139,61, + 208,4,24,114,18,0,0,0,41,1,218,1,42,78,41,92, + 218,7,95,95,100,111,99,95,95,218,7,83,84,95,77,79, + 68,69,218,6,83,84,95,73,78,79,218,6,83,84,95,68, + 69,86,218,8,83,84,95,78,76,73,78,75,218,6,83,84, + 95,85,73,68,218,6,83,84,95,71,73,68,218,7,83,84, + 95,83,73,90,69,218,8,83,84,95,65,84,73,77,69,218, + 8,83,84,95,77,84,73,77,69,218,8,83,84,95,67,84, + 73,77,69,114,17,0,0,0,114,20,0,0,0,114,22,0, + 0,0,114,26,0,0,0,114,29,0,0,0,114,32,0,0, + 0,114,35,0,0,0,114,38,0,0,0,114,41,0,0,0, + 218,8,83,95,73,70,68,79,79,82,218,8,83,95,73,70, + 80,79,82,84,218,7,83,95,73,70,87,72,84,114,23,0, + 0,0,114,27,0,0,0,114,30,0,0,0,114,33,0,0, + 0,114,36,0,0,0,114,39,0,0,0,114,42,0,0,0, + 114,44,0,0,0,114,47,0,0,0,114,49,0,0,0,218, + 7,83,95,73,83,85,73,68,218,7,83,95,73,83,71,73, + 68,218,7,83,95,69,78,70,77,84,218,7,83,95,73,83, + 86,84,88,218,7,83,95,73,82,69,65,68,218,8,83,95, + 73,87,82,73,84,69,218,7,83,95,73,69,88,69,67,218, + 7,83,95,73,82,87,88,85,218,7,83,95,73,82,85,83, + 82,218,7,83,95,73,87,85,83,82,218,7,83,95,73,88, + 85,83,82,218,7,83,95,73,82,87,88,71,218,7,83,95, + 73,82,71,82,80,218,7,83,95,73,87,71,82,80,218,7, + 83,95,73,88,71,82,80,218,7,83,95,73,82,87,88,79, + 218,7,83,95,73,82,79,84,72,218,7,83,95,73,87,79, + 84,72,218,7,83,95,73,88,79,84,72,218,11,85,70,95, + 83,69,84,84,65,66,76,69,218,9,85,70,95,78,79,68, + 85,77,80,218,12,85,70,95,73,77,77,85,84,65,66,76, + 69,218,9,85,70,95,65,80,80,69,78,68,218,9,85,70, + 95,79,80,65,81,85,69,218,11,85,70,95,78,79,85,78, + 76,73,78,75,218,13,85,70,95,67,79,77,80,82,69,83, + 83,69,68,218,10,85,70,95,84,82,65,67,75,69,68,218, + 12,85,70,95,68,65,84,65,86,65,85,76,84,218,9,85, + 70,95,72,73,68,68,69,78,218,11,83,70,95,83,69,84, + 84,65,66,76,69,218,11,83,70,95,65,82,67,72,73,86, + 69,68,218,12,83,70,95,73,77,77,85,84,65,66,76,69, + 218,9,83,70,95,65,80,80,69,78,68,218,13,83,70,95, + 82,69,83,84,82,73,67,84,69,68,218,11,83,70,95,78, + 79,85,78,76,73,78,75,218,11,83,70,95,83,78,65,80, + 83,72,79,84,218,11,83,70,95,70,73,82,77,76,73,78, + 75,218,11,83,70,95,68,65,84,65,76,69,83,83,114,73, + 0,0,0,114,81,0,0,0,218,22,70,73,76,69,95,65, + 84,84,82,73,66,85,84,69,95,65,82,67,72,73,86,69, + 218,25,70,73,76,69,95,65,84,84,82,73,66,85,84,69, + 95,67,79,77,80,82,69,83,83,69,68,218,21,70,73,76, + 69,95,65,84,84,82,73,66,85,84,69,95,68,69,86,73, + 67,69,218,24,70,73,76,69,95,65,84,84,82,73,66,85, + 84,69,95,68,73,82,69,67,84,79,82,89,218,24,70,73, + 76,69,95,65,84,84,82,73,66,85,84,69,95,69,78,67, + 82,89,80,84,69,68,218,21,70,73,76,69,95,65,84,84, + 82,73,66,85,84,69,95,72,73,68,68,69,78,218,31,70, + 73,76,69,95,65,84,84,82,73,66,85,84,69,95,73,78, + 84,69,71,82,73,84,89,95,83,84,82,69,65,77,218,21, 70,73,76,69,95,65,84,84,82,73,66,85,84,69,95,78, - 79,95,83,67,82,85,66,95,68,65,84,65,218,22,70,73, - 76,69,95,65,84,84,82,73,66,85,84,69,95,79,70,70, - 76,73,78,69,218,23,70,73,76,69,95,65,84,84,82,73, - 66,85,84,69,95,82,69,65,68,79,78,76,89,218,28,70, - 73,76,69,95,65,84,84,82,73,66,85,84,69,95,82,69, - 80,65,82,83,69,95,80,79,73,78,84,218,26,70,73,76, - 69,95,65,84,84,82,73,66,85,84,69,95,83,80,65,82, - 83,69,95,70,73,76,69,218,21,70,73,76,69,95,65,84, - 84,82,73,66,85,84,69,95,83,89,83,84,69,77,218,24, - 70,73,76,69,95,65,84,84,82,73,66,85,84,69,95,84, - 69,77,80,79,82,65,82,89,218,22,70,73,76,69,95,65, - 84,84,82,73,66,85,84,69,95,86,73,82,84,85,65,76, - 218,5,95,115,116,97,116,218,11,73,109,112,111,114,116,69, - 114,114,111,114,114,13,0,0,0,114,18,0,0,0,114,16, - 0,0,0,218,8,60,109,111,100,117,108,101,62,114,144,0, - 0,0,1,0,0,0,115,197,2,0,0,240,3,1,1,1, - 241,2,3,1,4,240,14,0,12,13,128,7,216,11,12,128, - 6,216,11,12,128,6,216,11,12,128,8,216,11,12,128,6, - 216,11,12,128,6,216,11,12,128,7,216,11,12,128,8,216, - 11,12,128,8,216,11,12,128,8,242,8,4,1,25,242,12, - 4,1,27,240,18,0,12,20,128,7,216,11,19,128,7,216, + 79,82,77,65,76,218,34,70,73,76,69,95,65,84,84,82, + 73,66,85,84,69,95,78,79,84,95,67,79,78,84,69,78, + 84,95,73,78,68,69,88,69,68,218,28,70,73,76,69,95, + 65,84,84,82,73,66,85,84,69,95,78,79,95,83,67,82, + 85,66,95,68,65,84,65,218,22,70,73,76,69,95,65,84, + 84,82,73,66,85,84,69,95,79,70,70,76,73,78,69,218, + 23,70,73,76,69,95,65,84,84,82,73,66,85,84,69,95, + 82,69,65,68,79,78,76,89,218,28,70,73,76,69,95,65, + 84,84,82,73,66,85,84,69,95,82,69,80,65,82,83,69, + 95,80,79,73,78,84,218,26,70,73,76,69,95,65,84,84, + 82,73,66,85,84,69,95,83,80,65,82,83,69,95,70,73, + 76,69,218,21,70,73,76,69,95,65,84,84,82,73,66,85, + 84,69,95,83,89,83,84,69,77,218,24,70,73,76,69,95, + 65,84,84,82,73,66,85,84,69,95,84,69,77,80,79,82, + 65,82,89,218,22,70,73,76,69,95,65,84,84,82,73,66, + 85,84,69,95,86,73,82,84,85,65,76,218,5,95,115,116, + 97,116,218,11,73,109,112,111,114,116,69,114,114,111,114,114, + 13,0,0,0,114,18,0,0,0,114,16,0,0,0,218,8, + 60,109,111,100,117,108,101,62,114,154,0,0,0,1,0,0, + 0,115,232,2,0,0,240,3,1,1,1,241,2,3,1,4, + 240,14,0,12,13,128,7,216,11,12,128,6,216,11,12,128, + 6,216,11,12,128,8,216,11,12,128,6,216,11,12,128,6, + 216,11,12,128,7,216,11,12,128,8,216,11,12,128,8,216, + 11,12,128,8,242,8,4,1,25,242,12,4,1,27,240,18, + 0,12,20,128,7,216,11,19,128,7,216,11,19,128,7,216, 11,19,128,7,216,11,19,128,7,216,11,19,128,7,216,11, - 19,128,7,216,11,19,128,8,224,11,12,128,8,216,11,12, - 128,8,216,10,11,128,7,242,8,2,1,35,242,8,2,1, + 19,128,8,224,11,12,128,8,216,11,12,128,8,216,10,11, + 128,7,242,8,2,1,35,242,8,2,1,35,242,8,2,1, 35,242,8,2,1,35,242,8,2,1,35,242,8,2,1,35, - 242,8,2,1,35,242,8,2,1,36,242,8,2,1,17,242, - 8,2,1,17,242,8,2,1,17,240,12,0,11,17,128,7, - 216,10,16,128,7,216,10,17,128,7,216,10,16,128,7,216, - 10,16,128,7,216,11,17,128,8,216,10,16,128,7,216,10, + 242,8,2,1,36,242,8,2,1,17,242,8,2,1,17,242, + 8,2,1,17,240,12,0,11,17,128,7,216,10,16,128,7, + 216,10,17,128,7,216,10,16,128,7,216,10,16,128,7,216, + 11,17,128,8,216,10,16,128,7,216,10,16,128,7,216,10, 16,128,7,216,10,16,128,7,216,10,16,128,7,216,10,16, 128,7,216,10,16,128,7,216,10,16,128,7,216,10,16,128, 7,216,10,16,128,7,216,10,16,128,7,216,10,16,128,7, - 216,10,16,128,7,216,10,16,128,7,240,8,0,16,26,128, + 216,10,16,128,7,240,6,0,16,26,128,11,216,15,25,128, 9,216,15,25,128,12,216,15,25,128,9,216,15,25,128,9, - 216,15,25,128,11,216,16,26,128,13,216,15,25,128,9,216, - 15,25,128,11,216,15,25,128,12,216,15,25,128,9,216,15, - 25,128,11,216,15,25,128,11,240,8,0,7,14,144,115,208, - 5,27,216,6,14,144,115,208,5,27,216,6,13,144,115,208, - 5,27,216,6,13,144,115,208,5,27,216,6,13,144,115,208, + 216,15,25,128,11,216,16,26,128,13,216,15,25,128,10,216, + 15,25,128,12,216,15,25,128,9,216,15,25,128,11,216,15, + 25,128,11,216,15,25,128,12,216,15,25,128,9,216,16,26, + 128,13,216,15,25,128,11,216,15,25,128,11,216,15,25,128, + 11,216,15,25,128,11,240,12,0,7,14,144,115,208,5,27, + 216,6,14,144,115,208,5,27,216,6,13,144,115,208,5,27, + 216,6,13,144,115,208,5,27,216,6,13,144,115,208,5,27, + 216,6,13,144,115,208,5,27,216,6,13,144,115,208,5,27, + 240,13,6,5,29,240,16,0,7,14,144,115,208,5,27,208, + 4,29,216,6,13,144,115,208,5,27,208,4,29,216,6,13, + 136,103,129,111,144,115,208,5,27,216,6,13,144,115,208,5, + 27,216,6,13,144,115,208,5,27,240,5,2,5,29,240,8, + 0,7,14,144,115,208,5,27,208,4,29,216,6,13,144,115, + 208,5,27,208,4,29,216,6,13,136,103,129,111,144,115,208, 5,27,216,6,13,144,115,208,5,27,216,6,13,144,115,208, - 5,27,240,13,6,5,29,240,16,0,7,14,144,115,208,5, + 5,27,240,5,2,5,29,240,8,0,7,14,144,115,208,5, 27,208,4,29,216,6,13,144,115,208,5,27,208,4,29,216, 6,13,136,103,129,111,144,115,208,5,27,216,6,13,144,115, 208,5,27,216,6,13,144,115,208,5,27,240,5,2,5,29, - 240,8,0,7,14,144,115,208,5,27,208,4,29,216,6,13, - 144,115,208,5,27,208,4,29,216,6,13,136,103,129,111,144, - 115,208,5,27,216,6,13,144,115,208,5,27,216,6,13,144, - 115,208,5,27,240,5,2,5,29,240,8,0,7,14,144,115, - 208,5,27,208,4,29,216,6,13,144,115,208,5,27,208,4, - 29,216,6,13,136,103,129,111,144,115,208,5,27,216,6,13, - 144,115,208,5,27,216,6,13,144,115,208,5,27,240,5,2, - 5,29,240,47,26,19,2,128,15,242,56,10,1,25,240,32, - 0,26,28,208,0,22,216,28,32,208,0,25,216,24,26,208, - 0,21,216,27,29,208,0,24,216,27,32,208,0,24,216,24, - 25,208,0,21,216,34,39,208,0,31,216,24,27,208,0,21, - 216,37,41,208,0,34,216,31,37,208,0,28,216,25,29,208, - 0,22,216,26,27,208,0,23,216,31,35,208,0,28,216,29, - 32,208,0,26,216,24,25,208,0,21,216,27,30,208,0,24, - 216,25,30,208,0,22,240,8,3,1,9,221,4,23,248,216, - 7,18,242,0,1,1,9,217,4,8,240,3,1,1,9,250, - 115,18,0,0,0,196,10,5,68,16,0,196,16,5,68,24, - 3,196,23,1,68,24,3, + 240,51,28,19,2,128,15,242,60,14,1,25,240,40,0,26, + 28,208,0,22,216,28,32,208,0,25,216,24,26,208,0,21, + 216,27,29,208,0,24,216,27,32,208,0,24,216,24,25,208, + 0,21,216,34,39,208,0,31,216,24,27,208,0,21,216,37, + 41,208,0,34,216,31,37,208,0,28,216,25,29,208,0,22, + 216,26,27,208,0,23,216,31,35,208,0,28,216,29,32,208, + 0,26,216,24,25,208,0,21,216,27,30,208,0,24,216,25, + 30,208,0,22,240,8,3,1,9,221,4,23,248,216,7,18, + 243,0,1,1,9,217,4,8,240,3,1,1,9,250,115,18, + 0,0,0,196,24,5,68,30,0,196,30,6,68,39,3,196, + 38,1,68,39,3, }; diff --git a/contrib/tools/python3/Python/frozen_modules/zipimport.h b/contrib/tools/python3/Python/frozen_modules/zipimport.h index af79f36fcf9..26e0da373d4 100644 --- a/contrib/tools/python3/Python/frozen_modules/zipimport.h +++ b/contrib/tools/python3/Python/frozen_modules/zipimport.h @@ -1,1028 +1,1164 @@ /* Auto-generated by Programs/_freeze_module.c */ const unsigned char _Py_M__zipimport[] = { 99,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,0,0,0,0,243,154,1,0,0,151,0,100,0,90,0, - 100,1,100,2,108,1,90,2,100,1,100,3,108,1,109,3, - 90,3,109,4,90,4,1,0,100,1,100,2,108,5,90,6, - 100,1,100,2,108,7,90,7,100,1,100,2,108,8,90,8, - 100,1,100,2,108,9,90,9,100,1,100,2,108,10,90,10, - 100,1,100,2,108,11,90,11,100,1,100,2,108,12,90,12, - 100,4,100,5,103,2,90,13,101,2,106,28,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,14, - 101,2,106,30,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,6,100,2,26,0,90,16,2,0, - 71,0,100,7,132,0,100,4,101,17,171,3,0,0,0,0, - 0,0,90,18,105,0,90,19,2,0,101,20,101,10,171,1, - 0,0,0,0,0,0,90,21,100,8,90,22,100,9,90,23, - 100,10,90,24,2,0,71,0,100,11,132,0,100,5,101,2, - 106,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,3,0,0,0,0,0,0,90,26,101,14, - 100,12,122,0,0,0,100,13,100,13,102,3,101,14,100,14, - 122,0,0,0,100,15,100,13,102,3,100,16,100,17,102,4, - 90,27,100,18,132,0,90,28,100,19,132,0,90,29,100,20, - 132,0,90,30,100,21,132,0,90,31,100,22,90,32,100,15, - 97,33,100,23,132,0,90,34,100,24,132,0,90,35,100,25, - 132,0,90,36,100,26,132,0,90,37,2,0,101,20,101,37, - 106,76,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,90,39,100,27, - 132,0,90,40,100,28,132,0,90,41,100,29,132,0,90,42, - 100,30,132,0,90,43,100,31,132,0,90,44,100,32,132,0, - 90,45,121,2,41,33,97,80,2,0,0,122,105,112,105,109, - 112,111,114,116,32,112,114,111,118,105,100,101,115,32,115,117, - 112,112,111,114,116,32,102,111,114,32,105,109,112,111,114,116, - 105,110,103,32,80,121,116,104,111,110,32,109,111,100,117,108, - 101,115,32,102,114,111,109,32,90,105,112,32,97,114,99,104, - 105,118,101,115,46,10,10,84,104,105,115,32,109,111,100,117, - 108,101,32,101,120,112,111,114,116,115,32,116,104,114,101,101, - 32,111,98,106,101,99,116,115,58,10,45,32,122,105,112,105, - 109,112,111,114,116,101,114,58,32,97,32,99,108,97,115,115, - 59,32,105,116,115,32,99,111,110,115,116,114,117,99,116,111, - 114,32,116,97,107,101,115,32,97,32,112,97,116,104,32,116, - 111,32,97,32,90,105,112,32,97,114,99,104,105,118,101,46, - 10,45,32,90,105,112,73,109,112,111,114,116,69,114,114,111, - 114,58,32,101,120,99,101,112,116,105,111,110,32,114,97,105, - 115,101,100,32,98,121,32,122,105,112,105,109,112,111,114,116, - 101,114,32,111,98,106,101,99,116,115,46,32,73,116,39,115, - 32,97,10,32,32,115,117,98,99,108,97,115,115,32,111,102, - 32,73,109,112,111,114,116,69,114,114,111,114,44,32,115,111, - 32,105,116,32,99,97,110,32,98,101,32,99,97,117,103,104, - 116,32,97,115,32,73,109,112,111,114,116,69,114,114,111,114, - 44,32,116,111,111,46,10,45,32,95,122,105,112,95,100,105, - 114,101,99,116,111,114,121,95,99,97,99,104,101,58,32,97, - 32,100,105,99,116,44,32,109,97,112,112,105,110,103,32,97, - 114,99,104,105,118,101,32,112,97,116,104,115,32,116,111,32, - 122,105,112,32,100,105,114,101,99,116,111,114,121,10,32,32, - 105,110,102,111,32,100,105,99,116,115,44,32,97,115,32,117, - 115,101,100,32,105,110,32,122,105,112,105,109,112,111,114,116, - 101,114,46,95,102,105,108,101,115,46,10,10,73,116,32,105, - 115,32,117,115,117,97,108,108,121,32,110,111,116,32,110,101, - 101,100,101,100,32,116,111,32,117,115,101,32,116,104,101,32, - 122,105,112,105,109,112,111,114,116,32,109,111,100,117,108,101, - 32,101,120,112,108,105,99,105,116,108,121,59,32,105,116,32, - 105,115,10,117,115,101,100,32,98,121,32,116,104,101,32,98, - 117,105,108,116,105,110,32,105,109,112,111,114,116,32,109,101, - 99,104,97,110,105,115,109,32,102,111,114,32,115,121,115,46, - 112,97,116,104,32,105,116,101,109,115,32,116,104,97,116,32, - 97,114,101,32,112,97,116,104,115,10,116,111,32,90,105,112, - 32,97,114,99,104,105,118,101,115,46,10,233,0,0,0,0, - 78,41,2,218,14,95,117,110,112,97,99,107,95,117,105,110, - 116,49,54,218,14,95,117,110,112,97,99,107,95,117,105,110, - 116,51,50,218,14,90,105,112,73,109,112,111,114,116,69,114, - 114,111,114,218,11,122,105,112,105,109,112,111,114,116,101,114, - 233,1,0,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,0,0,0,0,243,12,0,0,0,151, - 0,101,0,90,1,100,0,90,2,121,1,41,2,114,4,0, - 0,0,78,41,3,218,8,95,95,110,97,109,101,95,95,218, - 10,95,95,109,111,100,117,108,101,95,95,218,12,95,95,113, - 117,97,108,110,97,109,101,95,95,169,0,243,0,0,0,0, - 250,18,60,102,114,111,122,101,110,32,122,105,112,105,109,112, - 111,114,116,62,114,4,0,0,0,114,4,0,0,0,34,0, - 0,0,115,5,0,0,0,132,0,216,4,8,114,12,0,0, - 0,233,22,0,0,0,115,4,0,0,0,80,75,5,6,105, - 255,255,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,0,0,0,0,243,84,0,0,0,151,0, - 101,0,90,1,100,0,90,2,100,1,90,3,100,2,132,0, - 90,4,100,14,100,4,132,1,90,5,100,5,132,0,90,6, - 100,6,132,0,90,7,100,7,132,0,90,8,100,8,132,0, - 90,9,100,9,132,0,90,10,100,10,132,0,90,11,100,11, - 132,0,90,12,100,12,132,0,90,13,100,13,132,0,90,14, - 121,3,41,15,114,5,0,0,0,97,255,1,0,0,122,105, - 112,105,109,112,111,114,116,101,114,40,97,114,99,104,105,118, - 101,112,97,116,104,41,32,45,62,32,122,105,112,105,109,112, - 111,114,116,101,114,32,111,98,106,101,99,116,10,10,32,32, - 32,32,67,114,101,97,116,101,32,97,32,110,101,119,32,122, - 105,112,105,109,112,111,114,116,101,114,32,105,110,115,116,97, - 110,99,101,46,32,39,97,114,99,104,105,118,101,112,97,116, - 104,39,32,109,117,115,116,32,98,101,32,97,32,112,97,116, - 104,32,116,111,10,32,32,32,32,97,32,122,105,112,102,105, - 108,101,44,32,111,114,32,116,111,32,97,32,115,112,101,99, - 105,102,105,99,32,112,97,116,104,32,105,110,115,105,100,101, - 32,97,32,122,105,112,102,105,108,101,46,32,70,111,114,32, - 101,120,97,109,112,108,101,44,32,105,116,32,99,97,110,32, - 98,101,10,32,32,32,32,39,47,116,109,112,47,109,121,105, + 0,0,0,0,0,243,182,1,0,0,149,0,83,0,114,0, + 83,1,83,2,75,1,114,2,83,1,83,3,75,1,74,3, + 114,3,74,4,114,4,74,5,114,5,32,0,83,1,83,2, + 75,6,114,7,83,1,83,2,75,8,114,8,83,1,83,2, + 75,9,114,9,83,1,83,2,75,10,114,10,83,1,83,2, + 75,11,114,11,83,1,83,2,75,12,114,12,83,1,83,2, + 75,13,114,13,83,4,83,5,47,2,114,14,92,2,82,30, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,114,15,92,2,82,32,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,83,6,83,2,4,0, + 114,17,24,0,34,0,83,7,26,0,83,4,92,18,53,3, + 0,0,0,0,0,0,114,19,48,0,114,20,92,21,34,0, + 92,11,53,1,0,0,0,0,0,0,114,22,83,8,114,23, + 83,9,114,24,83,10,114,25,83,11,114,26,83,12,114,27, + 83,13,114,28,83,14,114,29,83,15,114,30,83,6,114,31, + 24,0,34,0,83,16,26,0,83,5,92,2,82,64,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 53,3,0,0,0,0,0,0,114,33,92,15,83,17,45,0, + 0,0,83,18,83,18,52,3,92,15,83,19,45,0,0,0, + 83,20,83,18,52,3,83,21,83,22,52,4,114,34,83,23, + 26,0,114,35,83,24,26,0,114,36,83,25,26,0,114,37, + 83,26,26,0,114,38,83,27,114,39,83,20,113,40,83,28, + 26,0,114,41,83,29,26,0,114,42,83,30,26,0,114,43, + 83,31,26,0,114,44,92,21,34,0,92,44,82,90,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 53,1,0,0,0,0,0,0,114,46,83,32,26,0,114,47, + 83,33,26,0,114,48,83,34,26,0,114,49,83,35,26,0, + 114,50,83,36,26,0,114,51,83,37,26,0,114,52,103,2, + 41,38,97,218,1,0,0,122,105,112,105,109,112,111,114,116, + 32,112,114,111,118,105,100,101,115,32,115,117,112,112,111,114, + 116,32,102,111,114,32,105,109,112,111,114,116,105,110,103,32, + 80,121,116,104,111,110,32,109,111,100,117,108,101,115,32,102, + 114,111,109,32,90,105,112,32,97,114,99,104,105,118,101,115, + 46,10,10,84,104,105,115,32,109,111,100,117,108,101,32,101, + 120,112,111,114,116,115,32,116,119,111,32,111,98,106,101,99, + 116,115,58,10,45,32,122,105,112,105,109,112,111,114,116,101, + 114,58,32,97,32,99,108,97,115,115,59,32,105,116,115,32, + 99,111,110,115,116,114,117,99,116,111,114,32,116,97,107,101, + 115,32,97,32,112,97,116,104,32,116,111,32,97,32,90,105, + 112,32,97,114,99,104,105,118,101,46,10,45,32,90,105,112, + 73,109,112,111,114,116,69,114,114,111,114,58,32,101,120,99, + 101,112,116,105,111,110,32,114,97,105,115,101,100,32,98,121, + 32,122,105,112,105,109,112,111,114,116,101,114,32,111,98,106, + 101,99,116,115,46,32,73,116,39,115,32,97,10,32,32,115, + 117,98,99,108,97,115,115,32,111,102,32,73,109,112,111,114, + 116,69,114,114,111,114,44,32,115,111,32,105,116,32,99,97, + 110,32,98,101,32,99,97,117,103,104,116,32,97,115,32,73, + 109,112,111,114,116,69,114,114,111,114,44,32,116,111,111,46, + 10,10,73,116,32,105,115,32,117,115,117,97,108,108,121,32, + 110,111,116,32,110,101,101,100,101,100,32,116,111,32,117,115, + 101,32,116,104,101,32,122,105,112,105,109,112,111,114,116,32, + 109,111,100,117,108,101,32,101,120,112,108,105,99,105,116,108, + 121,59,32,105,116,32,105,115,10,117,115,101,100,32,98,121, + 32,116,104,101,32,98,117,105,108,116,105,110,32,105,109,112, + 111,114,116,32,109,101,99,104,97,110,105,115,109,32,102,111, + 114,32,115,121,115,46,112,97,116,104,32,105,116,101,109,115, + 32,116,104,97,116,32,97,114,101,32,112,97,116,104,115,10, + 116,111,32,90,105,112,32,97,114,99,104,105,118,101,115,46, + 10,233,0,0,0,0,78,41,3,218,14,95,117,110,112,97, + 99,107,95,117,105,110,116,49,54,218,14,95,117,110,112,97, + 99,107,95,117,105,110,116,51,50,218,14,95,117,110,112,97, + 99,107,95,117,105,110,116,54,52,218,14,90,105,112,73,109, + 112,111,114,116,69,114,114,111,114,218,11,122,105,112,105,109, + 112,111,114,116,101,114,233,1,0,0,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, + 243,20,0,0,0,149,0,92,0,114,1,83,0,114,2,83, + 1,114,3,83,2,114,4,103,3,41,4,114,5,0,0,0, + 233,32,0,0,0,169,0,78,41,5,218,8,95,95,110,97, + 109,101,95,95,218,10,95,95,109,111,100,117,108,101,95,95, + 218,12,95,95,113,117,97,108,110,97,109,101,95,95,218,15, + 95,95,102,105,114,115,116,108,105,110,101,110,111,95,95,218, + 21,95,95,115,116,97,116,105,99,95,97,116,116,114,105,98, + 117,116,101,115,95,95,114,10,0,0,0,243,0,0,0,0, + 218,18,60,102,114,111,122,101,110,32,122,105,112,105,109,112, + 111,114,116,62,114,5,0,0,0,114,5,0,0,0,32,0, + 0,0,115,5,0,0,0,134,0,218,4,8,114,16,0,0, + 0,233,22,0,0,0,233,56,0,0,0,233,20,0,0,0, + 115,4,0,0,0,80,75,5,6,115,4,0,0,0,80,75, + 6,7,115,4,0,0,0,80,75,6,6,105,255,255,0,0, + 108,3,0,0,0,255,127,255,127,3,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, + 243,100,0,0,0,149,0,92,0,114,1,83,0,114,2,83, + 1,114,3,83,2,114,4,83,3,26,0,114,5,83,17,83, + 5,26,0,106,1,114,6,83,6,26,0,114,7,83,7,26, + 0,114,8,83,8,26,0,114,9,83,9,26,0,114,10,83, + 10,26,0,114,11,83,11,26,0,114,12,83,12,26,0,114, + 13,83,13,26,0,114,14,83,14,26,0,114,15,83,15,26, + 0,114,16,83,16,114,17,103,4,41,18,114,6,0,0,0, + 233,50,0,0,0,97,219,1,0,0,122,105,112,105,109,112, + 111,114,116,101,114,40,97,114,99,104,105,118,101,112,97,116, + 104,41,32,45,62,32,122,105,112,105,109,112,111,114,116,101, + 114,32,111,98,106,101,99,116,10,10,67,114,101,97,116,101, + 32,97,32,110,101,119,32,122,105,112,105,109,112,111,114,116, + 101,114,32,105,110,115,116,97,110,99,101,46,32,39,97,114, + 99,104,105,118,101,112,97,116,104,39,32,109,117,115,116,32, + 98,101,32,97,32,112,97,116,104,32,116,111,10,97,32,122, + 105,112,102,105,108,101,44,32,111,114,32,116,111,32,97,32, + 115,112,101,99,105,102,105,99,32,112,97,116,104,32,105,110, + 115,105,100,101,32,97,32,122,105,112,102,105,108,101,46,32, + 70,111,114,32,101,120,97,109,112,108,101,44,32,105,116,32, + 99,97,110,32,98,101,10,39,47,116,109,112,47,109,121,105, 109,112,111,114,116,46,122,105,112,39,44,32,111,114,32,39, 47,116,109,112,47,109,121,105,109,112,111,114,116,46,122,105, 112,47,109,121,100,105,114,101,99,116,111,114,121,39,44,32, 105,102,32,109,121,100,105,114,101,99,116,111,114,121,32,105, - 115,32,97,10,32,32,32,32,118,97,108,105,100,32,100,105, - 114,101,99,116,111,114,121,32,105,110,115,105,100,101,32,116, - 104,101,32,97,114,99,104,105,118,101,46,10,10,32,32,32, - 32,39,90,105,112,73,109,112,111,114,116,69,114,114,111,114, - 32,105,115,32,114,97,105,115,101,100,32,105,102,32,39,97, - 114,99,104,105,118,101,112,97,116,104,39,32,100,111,101,115, - 110,39,116,32,112,111,105,110,116,32,116,111,32,97,32,118, - 97,108,105,100,32,90,105,112,10,32,32,32,32,97,114,99, - 104,105,118,101,46,10,10,32,32,32,32,84,104,101,32,39, + 115,32,97,10,118,97,108,105,100,32,100,105,114,101,99,116, + 111,114,121,32,105,110,115,105,100,101,32,116,104,101,32,97, + 114,99,104,105,118,101,46,10,10,39,90,105,112,73,109,112, + 111,114,116,69,114,114,111,114,32,105,115,32,114,97,105,115, + 101,100,32,105,102,32,39,97,114,99,104,105,118,101,112,97, + 116,104,39,32,100,111,101,115,110,39,116,32,112,111,105,110, + 116,32,116,111,32,97,32,118,97,108,105,100,32,90,105,112, + 10,97,114,99,104,105,118,101,46,10,10,84,104,101,32,39, 97,114,99,104,105,118,101,39,32,97,116,116,114,105,98,117, 116,101,32,111,102,32,122,105,112,105,109,112,111,114,116,101, 114,32,111,98,106,101,99,116,115,32,99,111,110,116,97,105, 110,115,32,116,104,101,32,110,97,109,101,32,111,102,32,116, - 104,101,10,32,32,32,32,122,105,112,102,105,108,101,32,116, - 97,114,103,101,116,101,100,46,10,32,32,32,32,99,2,0, - 0,0,0,0,0,0,0,0,0,0,6,0,0,0,3,0, - 0,0,243,196,2,0,0,151,0,116,1,0,0,0,0,0, - 0,0,0,124,1,116,2,0,0,0,0,0,0,0,0,171, - 2,0,0,0,0,0,0,115,23,116,5,0,0,0,0,0, - 0,0,0,100,1,116,7,0,0,0,0,0,0,0,0,124, - 1,171,1,0,0,0,0,0,0,155,2,157,2,171,1,0, - 0,0,0,0,0,130,1,124,1,115,13,116,9,0,0,0, - 0,0,0,0,0,100,2,124,1,172,3,171,2,0,0,0, - 0,0,0,130,1,116,10,0,0,0,0,0,0,0,0,114, - 26,124,1,106,13,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,116,10,0,0,0,0,0,0,0, - 0,116,14,0,0,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,125,1,103,0,125,2,9,0,9,0,116,17,0, - 0,0,0,0,0,0,0,106,18,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,171,1,0, - 0,0,0,0,0,125,3,124,3,106,20,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,4,122, - 1,0,0,100,5,107,55,0,0,114,13,116,9,0,0,0, - 0,0,0,0,0,100,6,124,1,172,3,171,2,0,0,0, - 0,0,0,130,1,9,0,9,0,116,30,0,0,0,0,0, - 0,0,0,124,1,25,0,0,0,125,6,124,6,124,0,95, - 18,0,0,0,0,0,0,0,0,124,1,124,0,95,19,0, - 0,0,0,0,0,0,0,116,17,0,0,0,0,0,0,0, - 0,106,40,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,2,100,0,100,0,100,7,133,3,25, - 0,0,0,142,0,124,0,95,21,0,0,0,0,0,0,0, - 0,124,0,106,42,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,114,26,124,0,120,1,106,42,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,116,14,0,0,0,0,0,0,0,0,122,13,0,0,99, - 2,95,21,0,0,0,0,0,0,0,0,121,0,121,0,35, - 0,116,22,0,0,0,0,0,0,0,0,116,24,0,0,0, - 0,0,0,0,0,102,2,36,0,114,64,1,0,116,17,0, - 0,0,0,0,0,0,0,106,26,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,1,171,1,0, - 0,0,0,0,0,92,2,0,0,125,4,125,5,124,4,124, - 1,107,40,0,0,114,13,116,9,0,0,0,0,0,0,0, - 0,100,6,124,1,172,3,171,2,0,0,0,0,0,0,130, - 1,124,4,125,1,124,2,106,29,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,5,171,1,0, - 0,0,0,0,0,1,0,89,0,110,4,119,0,120,3,89, - 0,119,1,140,229,35,0,116,32,0,0,0,0,0,0,0, - 0,36,0,114,23,1,0,116,35,0,0,0,0,0,0,0, - 0,124,1,171,1,0,0,0,0,0,0,125,6,124,6,116, - 30,0,0,0,0,0,0,0,0,124,1,60,0,0,0,89, - 0,140,196,119,0,120,3,89,0,119,1,41,8,78,122,18, - 101,120,112,101,99,116,101,100,32,115,116,114,44,32,110,111, - 116,32,122,21,97,114,99,104,105,118,101,32,112,97,116,104, - 32,105,115,32,101,109,112,116,121,169,1,218,4,112,97,116, - 104,105,0,240,0,0,105,0,128,0,0,122,14,110,111,116, - 32,97,32,90,105,112,32,102,105,108,101,233,255,255,255,255, - 41,22,218,10,105,115,105,110,115,116,97,110,99,101,218,3, - 115,116,114,218,9,84,121,112,101,69,114,114,111,114,218,4, - 116,121,112,101,114,4,0,0,0,218,12,97,108,116,95,112, - 97,116,104,95,115,101,112,218,7,114,101,112,108,97,99,101, - 218,8,112,97,116,104,95,115,101,112,218,19,95,98,111,111, - 116,115,116,114,97,112,95,101,120,116,101,114,110,97,108,218, - 10,95,112,97,116,104,95,115,116,97,116,218,7,115,116,95, - 109,111,100,101,218,7,79,83,69,114,114,111,114,218,10,86, - 97,108,117,101,69,114,114,111,114,218,11,95,112,97,116,104, - 95,115,112,108,105,116,218,6,97,112,112,101,110,100,218,20, - 95,122,105,112,95,100,105,114,101,99,116,111,114,121,95,99, - 97,99,104,101,218,8,75,101,121,69,114,114,111,114,218,15, - 95,114,101,97,100,95,100,105,114,101,99,116,111,114,121,218, - 6,95,102,105,108,101,115,218,7,97,114,99,104,105,118,101, - 218,10,95,112,97,116,104,95,106,111,105,110,218,6,112,114, - 101,102,105,120,41,7,218,4,115,101,108,102,114,18,0,0, - 0,114,40,0,0,0,218,2,115,116,218,7,100,105,114,110, - 97,109,101,218,8,98,97,115,101,110,97,109,101,218,5,102, - 105,108,101,115,115,7,0,0,0,32,32,32,32,32,32,32, - 114,13,0,0,0,218,8,95,95,105,110,105,116,95,95,122, - 20,122,105,112,105,109,112,111,114,116,101,114,46,95,95,105, - 110,105,116,95,95,64,0,0,0,115,89,1,0,0,128,0, - 220,15,25,152,36,164,3,212,15,36,220,18,27,208,30,48, - 180,20,176,100,179,26,176,14,208,28,63,211,18,64,208,12, - 64,217,15,19,220,18,32,208,33,56,184,116,212,18,68,208, - 12,68,221,11,23,216,19,23,151,60,145,60,164,12,172,104, - 211,19,55,136,68,224,17,19,136,6,216,14,18,240,2,15, - 13,22,220,21,40,215,21,51,209,21,51,176,68,211,21,57, - 144,2,240,22,0,21,23,151,74,145,74,160,24,209,20,41, - 168,104,210,19,54,228,26,40,208,41,57,192,4,212,26,69, - 208,20,69,216,16,21,240,4,4,9,47,220,20,40,168,20, - 209,20,46,136,69,240,8,0,23,28,136,4,140,11,216,23, - 27,136,4,140,12,228,22,41,215,22,52,209,22,52,176,102, - 185,84,184,114,184,84,177,108,208,22,67,136,4,140,11,216, - 11,15,143,59,138,59,216,12,16,143,75,138,75,156,56,209, - 12,35,142,75,240,3,0,12,23,248,244,49,0,21,28,156, - 90,208,19,40,242,0,7,13,40,244,6,0,37,56,215,36, - 67,209,36,67,192,68,211,36,73,209,16,33,144,7,152,24, - 216,19,26,152,100,146,63,220,26,40,208,41,57,192,4,212, - 26,69,208,20,69,216,23,30,144,4,216,16,22,151,13,145, - 13,152,104,214,16,39,240,15,7,13,40,250,240,7,0,15, - 19,248,244,40,0,16,24,242,0,2,9,47,220,20,35,160, - 68,211,20,41,136,69,216,41,46,212,12,32,160,20,211,12, - 38,240,5,2,9,47,250,115,37,0,0,0,193,27,21,67, - 44,0,194,17,9,68,63,0,195,44,65,12,68,59,3,196, - 58,1,68,59,3,196,63,29,69,31,3,197,30,1,69,31, - 3,78,99,3,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,3,0,0,0,243,22,1,0,0,151,0,116,1, - 0,0,0,0,0,0,0,0,124,0,124,1,171,2,0,0, - 0,0,0,0,125,3,124,3,129,24,116,3,0,0,0,0, - 0,0,0,0,106,4,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,1,124,0,124,3,172,2, - 171,3,0,0,0,0,0,0,83,0,116,7,0,0,0,0, - 0,0,0,0,124,0,124,1,171,2,0,0,0,0,0,0, - 125,4,116,9,0,0,0,0,0,0,0,0,124,0,124,4, - 171,2,0,0,0,0,0,0,114,75,124,0,106,10,0,0, + 104,101,10,122,105,112,102,105,108,101,32,116,97,114,103,101, + 116,101,100,46,10,99,2,0,0,0,0,0,0,0,0,0, + 0,0,6,0,0,0,3,0,0,0,243,180,2,0,0,149, + 0,91,1,0,0,0,0,0,0,0,0,85,1,91,2,0, + 0,0,0,0,0,0,0,53,2,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,100,24,0,0,91,5,0,0,0, + 0,0,0,0,0,83,1,91,7,0,0,0,0,0,0,0, + 0,85,1,53,1,0,0,0,0,0,0,60,2,14,0,51, + 2,53,1,0,0,0,0,0,0,101,1,85,1,40,0,0, + 0,0,0,0,0,100,10,0,0,91,9,0,0,0,0,0, + 0,0,0,83,2,85,1,83,3,57,2,101,1,91,10,0, + 0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,97, + 26,0,0,85,1,82,13,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,91,10,0,0,0,0,0, + 0,0,0,91,14,0,0,0,0,0,0,0,0,53,2,0, + 0,0,0,0,0,110,1,47,0,110,2,30,0,30,0,91, + 16,0,0,0,0,0,0,0,0,82,18,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,85, + 1,53,1,0,0,0,0,0,0,110,3,85,3,82,20,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 155,0,116,12,0,0,0,0,0,0,0,0,155,0,124,4, - 155,0,157,3,125,5,116,3,0,0,0,0,0,0,0,0, - 106,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,100,1,100,3,172,4,171,3,0,0, - 0,0,0,0,125,6,124,6,106,16,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,19,0,0, + 0,83,4,45,1,0,0,83,5,58,119,0,0,97,10,0, + 0,91,9,0,0,0,0,0,0,0,0,83,6,85,1,83, + 3,57,2,101,1,30,0,85,1,91,30,0,0,0,0,0, + 0,0,0,59,1,0,0,97,18,0,0,91,33,0,0,0, + 0,0,0,0,0,85,1,53,1,0,0,0,0,0,0,91, + 30,0,0,0,0,0,0,0,0,85,1,39,0,0,0,88, + 16,108,17,0,0,0,0,0,0,0,0,91,16,0,0,0, + 0,0,0,0,0,82,36,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,85,2,83,0,83, + 0,83,7,50,3,5,0,0,0,54,0,85,0,108,19,0, + 0,0,0,0,0,0,0,85,0,82,38,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0, + 0,0,0,0,0,97,26,0,0,85,0,61,1,82,38,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,5,171,1,0,0,0,0,0,0,1,0,124,6,83,0, - 121,1,41,5,122,107,67,114,101,97,116,101,32,97,32,77, - 111,100,117,108,101,83,112,101,99,32,102,111,114,32,116,104, - 101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,117, - 108,101,46,10,10,32,32,32,32,32,32,32,32,82,101,116, - 117,114,110,115,32,78,111,110,101,32,105,102,32,116,104,101, - 32,109,111,100,117,108,101,32,99,97,110,110,111,116,32,98, - 101,32,102,111,117,110,100,46,10,32,32,32,32,32,32,32, - 32,78,41,1,218,10,105,115,95,112,97,99,107,97,103,101, - 84,41,3,218,4,110,97,109,101,218,6,108,111,97,100,101, - 114,114,48,0,0,0,41,10,218,16,95,103,101,116,95,109, - 111,100,117,108,101,95,105,110,102,111,218,10,95,98,111,111, - 116,115,116,114,97,112,218,16,115,112,101,99,95,102,114,111, - 109,95,108,111,97,100,101,114,218,16,95,103,101,116,95,109, - 111,100,117,108,101,95,112,97,116,104,218,7,95,105,115,95, - 100,105,114,114,38,0,0,0,114,26,0,0,0,218,10,77, - 111,100,117,108,101,83,112,101,99,218,26,115,117,98,109,111, - 100,117,108,101,95,115,101,97,114,99,104,95,108,111,99,97, - 116,105,111,110,115,114,33,0,0,0,41,7,114,41,0,0, - 0,218,8,102,117,108,108,110,97,109,101,218,6,116,97,114, - 103,101,116,218,11,109,111,100,117,108,101,95,105,110,102,111, - 218,7,109,111,100,112,97,116,104,114,18,0,0,0,218,4, - 115,112,101,99,115,7,0,0,0,32,32,32,32,32,32,32, - 114,13,0,0,0,218,9,102,105,110,100,95,115,112,101,99, - 122,21,122,105,112,105,109,112,111,114,116,101,114,46,102,105, - 110,100,95,115,112,101,99,104,0,0,0,115,142,0,0,0, - 128,0,244,10,0,23,39,160,116,168,88,211,22,54,136,11, - 216,11,22,208,11,34,220,19,29,215,19,46,209,19,46,168, - 120,184,20,200,43,212,19,86,208,12,86,244,14,0,23,39, - 160,116,168,88,211,22,54,136,71,220,15,22,144,116,152,87, - 212,15,37,240,8,0,27,31,159,44,153,44,152,30,172,8, - 160,122,176,39,176,25,208,23,59,144,4,220,23,33,215,23, - 44,209,23,44,176,40,192,52,216,56,60,244,3,1,24,62, - 144,4,224,16,20,215,16,47,209,16,47,215,16,54,209,16, - 54,176,116,212,16,60,216,23,27,144,11,224,23,27,114,12, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,243,38,0,0,0,151,0,116, - 1,0,0,0,0,0,0,0,0,124,0,124,1,171,2,0, - 0,0,0,0,0,92,3,0,0,125,2,125,3,125,4,124, - 2,83,0,41,1,122,166,103,101,116,95,99,111,100,101,40, - 102,117,108,108,110,97,109,101,41,32,45,62,32,99,111,100, - 101,32,111,98,106,101,99,116,46,10,10,32,32,32,32,32, - 32,32,32,82,101,116,117,114,110,32,116,104,101,32,99,111, - 100,101,32,111,98,106,101,99,116,32,102,111,114,32,116,104, - 101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,117, - 108,101,46,32,82,97,105,115,101,32,90,105,112,73,109,112, - 111,114,116,69,114,114,111,114,10,32,32,32,32,32,32,32, - 32,105,102,32,116,104,101,32,109,111,100,117,108,101,32,99, - 111,117,108,100,110,39,116,32,98,101,32,105,109,112,111,114, - 116,101,100,46,10,32,32,32,32,32,32,32,32,169,1,218, - 16,95,103,101,116,95,109,111,100,117,108,101,95,99,111,100, - 101,169,5,114,41,0,0,0,114,58,0,0,0,218,4,99, - 111,100,101,218,9,105,115,112,97,99,107,97,103,101,114,61, - 0,0,0,115,5,0,0,0,32,32,32,32,32,114,13,0, - 0,0,218,8,103,101,116,95,99,111,100,101,122,20,122,105, - 112,105,109,112,111,114,116,101,114,46,103,101,116,95,99,111, - 100,101,131,0,0,0,115,28,0,0,0,128,0,244,12,0, - 36,52,176,68,184,40,211,35,67,209,8,32,136,4,136,105, - 152,23,216,15,19,136,11,114,12,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,6,0,0,0,3,0,0, - 0,243,72,1,0,0,151,0,116,0,0,0,0,0,0,0, - 0,0,114,26,124,1,106,3,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,116,0,0,0,0,0, - 0,0,0,0,116,4,0,0,0,0,0,0,0,0,171,2, - 0,0,0,0,0,0,125,1,124,1,125,2,124,1,106,7, + 0,91,14,0,0,0,0,0,0,0,0,45,13,0,0,115, + 2,108,19,0,0,0,0,0,0,0,0,103,0,103,0,33, + 0,91,22,0,0,0,0,0,0,0,0,91,24,0,0,0, + 0,0,0,0,0,52,2,7,0,97,61,0,0,32,0,91, + 16,0,0,0,0,0,0,0,0,82,26,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,85, + 1,53,1,0,0,0,0,0,0,117,2,0,0,112,69,88, + 65,58,88,0,0,97,10,0,0,91,9,0,0,0,0,0, + 0,0,0,83,6,85,1,83,3,57,2,101,1,85,4,110, + 1,85,2,82,29,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,5,53,1,0,0,0,0,0, + 0,32,0,31,0,79,4,102,0,61,3,31,0,102,1,77, + 243,0,0,41,8,78,122,18,101,120,112,101,99,116,101,100, + 32,115,116,114,44,32,110,111,116,32,122,21,97,114,99,104, + 105,118,101,32,112,97,116,104,32,105,115,32,101,109,112,116, + 121,169,1,218,4,112,97,116,104,105,0,240,0,0,105,0, + 128,0,0,122,14,110,111,116,32,97,32,90,105,112,32,102, + 105,108,101,233,255,255,255,255,41,20,218,10,105,115,105,110, + 115,116,97,110,99,101,218,3,115,116,114,218,9,84,121,112, + 101,69,114,114,111,114,218,4,116,121,112,101,114,5,0,0, + 0,218,12,97,108,116,95,112,97,116,104,95,115,101,112,218, + 7,114,101,112,108,97,99,101,218,8,112,97,116,104,95,115, + 101,112,218,19,95,98,111,111,116,115,116,114,97,112,95,101, + 120,116,101,114,110,97,108,218,10,95,112,97,116,104,95,115, + 116,97,116,218,7,115,116,95,109,111,100,101,218,7,79,83, + 69,114,114,111,114,218,10,86,97,108,117,101,69,114,114,111, + 114,218,11,95,112,97,116,104,95,115,112,108,105,116,218,6, + 97,112,112,101,110,100,218,20,95,122,105,112,95,100,105,114, + 101,99,116,111,114,121,95,99,97,99,104,101,218,15,95,114, + 101,97,100,95,100,105,114,101,99,116,111,114,121,218,7,97, + 114,99,104,105,118,101,218,10,95,112,97,116,104,95,106,111, + 105,110,218,6,112,114,101,102,105,120,41,6,218,4,115,101, + 108,102,114,25,0,0,0,114,45,0,0,0,218,2,115,116, + 218,7,100,105,114,110,97,109,101,218,8,98,97,115,101,110, + 97,109,101,115,6,0,0,0,32,32,32,32,32,32,114,17, + 0,0,0,218,8,95,95,105,110,105,116,95,95,218,20,122, + 105,112,105,109,112,111,114,116,101,114,46,95,95,105,110,105, + 116,95,95,68,0,0,0,115,51,1,0,0,128,0,220,15, + 25,152,36,164,3,215,15,36,209,15,36,220,18,27,208,30, + 48,180,20,176,100,179,26,177,14,208,28,63,211,18,64,208, + 12,64,222,15,19,220,18,32,208,33,56,184,116,209,18,68, + 208,12,68,223,11,23,138,60,216,19,23,151,60,145,60,164, + 12,172,104,211,19,55,136,68,224,17,19,136,6,216,14,18, + 240,2,15,13,22,220,21,40,215,21,51,210,21,51,176,68, + 211,21,57,144,2,240,22,0,21,23,151,74,145,74,160,24, + 209,20,41,168,104,211,19,54,228,26,40,208,41,57,192,4, + 209,26,69,208,20,69,216,16,21,224,11,15,212,23,43,211, + 11,43,220,41,56,184,20,211,41,62,212,12,32,160,20,209, + 12,38,216,23,27,140,12,228,22,41,215,22,52,210,22,52, + 176,102,185,84,184,114,184,84,177,108,208,22,67,136,4,140, + 11,216,11,15,143,59,143,59,216,12,16,143,75,138,75,156, + 56,209,12,35,142,75,240,3,0,12,23,248,244,41,0,21, + 28,156,90,208,19,40,243,0,7,13,40,244,6,0,37,56, + 215,36,67,210,36,67,192,68,211,36,73,209,16,33,144,7, + 216,19,26,147,63,220,26,40,208,41,57,192,4,209,26,69, + 208,20,69,216,23,30,144,4,216,16,22,151,13,145,13,152, + 104,214,16,39,240,15,7,13,40,250,241,7,0,15,19,115, + 19,0,0,0,193,40,22,68,8,0,196,8,65,10,69,21, + 3,197,20,1,69,21,3,78,99,3,0,0,0,0,0,0, + 0,0,0,0,0,6,0,0,0,3,0,0,0,243,18,1, + 0,0,149,0,91,1,0,0,0,0,0,0,0,0,88,1, + 53,2,0,0,0,0,0,0,110,3,85,3,98,21,0,0, + 91,2,0,0,0,0,0,0,0,0,82,4,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 88,16,85,3,83,2,57,3,36,0,91,7,0,0,0,0, + 0,0,0,0,88,1,53,2,0,0,0,0,0,0,110,4, + 91,9,0,0,0,0,0,0,0,0,88,4,53,2,0,0, + 0,0,0,0,40,0,0,0,0,0,0,0,97,73,0,0, + 85,0,82,10,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,14,0,91,12,0,0,0,0,0,0, + 0,0,14,0,85,4,14,0,51,3,110,5,91,2,0,0, + 0,0,0,0,0,0,82,14,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,34,0,85,1,83,1, + 83,3,83,4,57,3,110,6,85,6,82,16,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,19, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,106,8,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,116,4,0,0,0,0,0,0, - 0,0,122,0,0,0,171,1,0,0,0,0,0,0,114,31, - 124,1,116,11,0,0,0,0,0,0,0,0,124,0,106,8, + 0,0,85,5,53,1,0,0,0,0,0,0,32,0,85,6, + 36,0,103,1,41,5,122,91,67,114,101,97,116,101,32,97, + 32,77,111,100,117,108,101,83,112,101,99,32,102,111,114,32, + 116,104,101,32,115,112,101,99,105,102,105,101,100,32,109,111, + 100,117,108,101,46,10,10,82,101,116,117,114,110,115,32,78, + 111,110,101,32,105,102,32,116,104,101,32,109,111,100,117,108, + 101,32,99,97,110,110,111,116,32,98,101,32,102,111,117,110, + 100,46,10,78,41,1,218,10,105,115,95,112,97,99,107,97, + 103,101,84,41,3,218,4,110,97,109,101,218,6,108,111,97, + 100,101,114,114,53,0,0,0,41,10,218,16,95,103,101,116, + 95,109,111,100,117,108,101,95,105,110,102,111,218,10,95,98, + 111,111,116,115,116,114,97,112,218,16,115,112,101,99,95,102, + 114,111,109,95,108,111,97,100,101,114,218,16,95,103,101,116, + 95,109,111,100,117,108,101,95,112,97,116,104,218,7,95,105, + 115,95,100,105,114,114,43,0,0,0,114,33,0,0,0,218, + 10,77,111,100,117,108,101,83,112,101,99,218,26,115,117,98, + 109,111,100,117,108,101,95,115,101,97,114,99,104,95,108,111, + 99,97,116,105,111,110,115,114,40,0,0,0,41,7,114,46, + 0,0,0,218,8,102,117,108,108,110,97,109,101,218,6,116, + 97,114,103,101,116,218,11,109,111,100,117,108,101,95,105,110, + 102,111,218,7,109,111,100,112,97,116,104,114,25,0,0,0, + 218,4,115,112,101,99,115,7,0,0,0,32,32,32,32,32, + 32,32,114,17,0,0,0,218,9,102,105,110,100,95,115,112, + 101,99,218,21,122,105,112,105,109,112,111,114,116,101,114,46, + 102,105,110,100,95,115,112,101,99,104,0,0,0,115,137,0, + 0,0,128,0,244,10,0,23,39,160,116,211,22,54,136,11, + 216,11,22,209,11,34,220,19,29,215,19,46,210,19,46,168, + 120,200,43,209,19,86,208,12,86,244,14,0,23,39,160,116, + 211,22,54,136,71,220,15,22,144,116,215,15,37,209,15,37, + 240,8,0,27,31,159,44,153,44,152,30,172,8,160,122,176, + 39,176,25,208,23,59,144,4,220,23,33,215,23,44,210,23, + 44,176,40,192,52,216,56,60,241,3,1,24,62,144,4,224, + 16,20,215,16,47,209,16,47,215,16,54,209,16,54,176,116, + 212,16,60,216,23,27,144,11,224,23,27,114,16,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,243,34,0,0,0,149,0,91,1,0,0, + 0,0,0,0,0,0,88,1,53,2,0,0,0,0,0,0, + 117,3,0,0,112,35,110,4,85,2,36,0,41,1,122,142, + 103,101,116,95,99,111,100,101,40,102,117,108,108,110,97,109, + 101,41,32,45,62,32,99,111,100,101,32,111,98,106,101,99, + 116,46,10,10,82,101,116,117,114,110,32,116,104,101,32,99, + 111,100,101,32,111,98,106,101,99,116,32,102,111,114,32,116, + 104,101,32,115,112,101,99,105,102,105,101,100,32,109,111,100, + 117,108,101,46,32,82,97,105,115,101,32,90,105,112,73,109, + 112,111,114,116,69,114,114,111,114,10,105,102,32,116,104,101, + 32,109,111,100,117,108,101,32,99,111,117,108,100,110,39,116, + 32,98,101,32,105,109,112,111,114,116,101,100,46,10,169,1, + 218,16,95,103,101,116,95,109,111,100,117,108,101,95,99,111, + 100,101,169,5,114,46,0,0,0,114,63,0,0,0,218,4, + 99,111,100,101,218,9,105,115,112,97,99,107,97,103,101,114, + 66,0,0,0,115,5,0,0,0,32,32,32,32,32,114,17, + 0,0,0,218,8,103,101,116,95,99,111,100,101,218,20,122, + 105,112,105,109,112,111,114,116,101,114,46,103,101,116,95,99, + 111,100,101,131,0,0,0,115,24,0,0,0,128,0,244,12, + 0,36,52,176,68,211,35,67,209,8,32,136,4,152,23,216, + 15,19,136,11,114,16,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,6,0,0,0,3,0,0,0,243,102, + 1,0,0,149,0,91,0,0,0,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,97,26,0,0,85,1,82,3,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,4,0,0,0,0,0,0,0,0,122,0,0,0, - 171,1,0,0,0,0,0,0,100,1,26,0,125,2,9,0, - 124,0,106,12,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,2,25,0,0,0,125,3,116,19, - 0,0,0,0,0,0,0,0,124,0,106,8,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,3, - 171,2,0,0,0,0,0,0,83,0,35,0,116,14,0,0, - 0,0,0,0,0,0,36,0,114,14,1,0,116,17,0,0, - 0,0,0,0,0,0,100,2,100,3,124,2,171,3,0,0, - 0,0,0,0,130,1,119,0,120,3,89,0,119,1,41,4, - 122,154,103,101,116,95,100,97,116,97,40,112,97,116,104,110, - 97,109,101,41,32,45,62,32,115,116,114,105,110,103,32,119, - 105,116,104,32,102,105,108,101,32,100,97,116,97,46,10,10, - 32,32,32,32,32,32,32,32,82,101,116,117,114,110,32,116, - 104,101,32,100,97,116,97,32,97,115,115,111,99,105,97,116, - 101,100,32,119,105,116,104,32,39,112,97,116,104,110,97,109, - 101,39,46,32,82,97,105,115,101,32,79,83,69,114,114,111, - 114,32,105,102,10,32,32,32,32,32,32,32,32,116,104,101, - 32,102,105,108,101,32,119,97,115,110,39,116,32,102,111,117, - 110,100,46,10,32,32,32,32,32,32,32,32,78,114,1,0, - 0,0,218,0,41,10,114,24,0,0,0,114,25,0,0,0, - 114,26,0,0,0,218,10,115,116,97,114,116,115,119,105,116, - 104,114,38,0,0,0,218,3,108,101,110,114,37,0,0,0, - 114,35,0,0,0,114,30,0,0,0,218,9,95,103,101,116, - 95,100,97,116,97,41,4,114,41,0,0,0,218,8,112,97, - 116,104,110,97,109,101,218,3,107,101,121,218,9,116,111,99, - 95,101,110,116,114,121,115,4,0,0,0,32,32,32,32,114, - 13,0,0,0,218,8,103,101,116,95,100,97,116,97,122,20, - 122,105,112,105,109,112,111,114,116,101,114,46,103,101,116,95, - 100,97,116,97,141,0,0,0,115,150,0,0,0,128,0,245, - 12,0,12,24,216,23,31,215,23,39,209,23,39,172,12,180, - 104,211,23,63,136,72,224,14,22,136,3,216,11,19,215,11, - 30,209,11,30,152,116,159,124,153,124,172,104,209,31,54,212, - 11,55,216,18,26,156,51,152,116,159,124,153,124,172,104,209, - 31,54,211,27,55,208,27,56,208,18,57,136,67,240,4,3, - 9,38,216,24,28,159,11,153,11,160,67,209,24,40,136,73, - 244,6,0,16,25,152,20,159,28,153,28,160,121,211,15,49, - 208,8,49,248,244,5,0,16,24,242,0,1,9,38,220,18, - 25,152,33,152,82,160,19,211,18,37,208,12,37,240,3,1, - 9,38,250,115,12,0,0,0,193,37,15,66,10,0,194,10, - 23,66,33,3,99,2,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,243,38,0,0,0,151,0, - 116,1,0,0,0,0,0,0,0,0,124,0,124,1,171,2, - 0,0,0,0,0,0,92,3,0,0,125,2,125,3,125,4, - 124,4,83,0,41,1,122,165,103,101,116,95,102,105,108,101, - 110,97,109,101,40,102,117,108,108,110,97,109,101,41,32,45, - 62,32,102,105,108,101,110,97,109,101,32,115,116,114,105,110, - 103,46,10,10,32,32,32,32,32,32,32,32,82,101,116,117, - 114,110,32,116,104,101,32,102,105,108,101,110,97,109,101,32, - 102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,101, - 100,32,109,111,100,117,108,101,32,111,114,32,114,97,105,115, - 101,32,90,105,112,73,109,112,111,114,116,69,114,114,111,114, - 10,32,32,32,32,32,32,32,32,105,102,32,105,116,32,99, - 111,117,108,100,110,39,116,32,98,101,32,105,109,112,111,114, - 116,101,100,46,10,32,32,32,32,32,32,32,32,114,65,0, - 0,0,114,67,0,0,0,115,5,0,0,0,32,32,32,32, - 32,114,13,0,0,0,218,12,103,101,116,95,102,105,108,101, - 110,97,109,101,122,24,122,105,112,105,109,112,111,114,116,101, - 114,46,103,101,116,95,102,105,108,101,110,97,109,101,162,0, - 0,0,115,28,0,0,0,128,0,244,16,0,36,52,176,68, - 184,40,211,35,67,209,8,32,136,4,136,105,152,23,216,15, - 22,136,14,114,12,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,243,24,1, - 0,0,151,0,116,1,0,0,0,0,0,0,0,0,124,0, - 124,1,171,2,0,0,0,0,0,0,125,2,124,2,128,16, - 116,3,0,0,0,0,0,0,0,0,100,2,124,1,155,2, - 157,2,124,1,172,3,171,2,0,0,0,0,0,0,130,1, - 116,5,0,0,0,0,0,0,0,0,124,0,124,1,171,2, - 0,0,0,0,0,0,125,3,124,2,114,23,116,7,0,0, - 0,0,0,0,0,0,106,8,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,3,100,4,171,2, - 0,0,0,0,0,0,125,4,110,5,124,3,155,0,100,5, - 157,2,125,4,9,0,124,0,106,10,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,4,25,0, - 0,0,125,5,116,15,0,0,0,0,0,0,0,0,124,0, - 106,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,5,171,2,0,0,0,0,0,0,106,19, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,83,0,35,0,116,12, - 0,0,0,0,0,0,0,0,36,0,114,3,1,0,89,0, - 121,1,119,0,120,3,89,0,119,1,41,6,122,253,103,101, - 116,95,115,111,117,114,99,101,40,102,117,108,108,110,97,109, - 101,41,32,45,62,32,115,111,117,114,99,101,32,115,116,114, - 105,110,103,46,10,10,32,32,32,32,32,32,32,32,82,101, - 116,117,114,110,32,116,104,101,32,115,111,117,114,99,101,32, - 99,111,100,101,32,102,111,114,32,116,104,101,32,115,112,101, - 99,105,102,105,101,100,32,109,111,100,117,108,101,46,32,82, - 97,105,115,101,32,90,105,112,73,109,112,111,114,116,69,114, - 114,111,114,10,32,32,32,32,32,32,32,32,105,102,32,116, - 104,101,32,109,111,100,117,108,101,32,99,111,117,108,100,110, - 39,116,32,98,101,32,102,111,117,110,100,44,32,114,101,116, - 117,114,110,32,78,111,110,101,32,105,102,32,116,104,101,32, - 97,114,99,104,105,118,101,32,100,111,101,115,10,32,32,32, - 32,32,32,32,32,99,111,110,116,97,105,110,32,116,104,101, - 32,109,111,100,117,108,101,44,32,98,117,116,32,104,97,115, - 32,110,111,32,115,111,117,114,99,101,32,102,111,114,32,105, - 116,46,10,32,32,32,32,32,32,32,32,78,250,18,99,97, - 110,39,116,32,102,105,110,100,32,109,111,100,117,108,101,32, - 169,1,114,49,0,0,0,250,11,95,95,105,110,105,116,95, - 95,46,112,121,250,3,46,112,121,41,10,114,51,0,0,0, - 114,4,0,0,0,114,54,0,0,0,114,27,0,0,0,114, - 39,0,0,0,114,37,0,0,0,114,35,0,0,0,114,75, - 0,0,0,114,38,0,0,0,218,6,100,101,99,111,100,101, - 41,6,114,41,0,0,0,114,58,0,0,0,218,2,109,105, - 114,18,0,0,0,218,8,102,117,108,108,112,97,116,104,114, - 78,0,0,0,115,6,0,0,0,32,32,32,32,32,32,114, - 13,0,0,0,218,10,103,101,116,95,115,111,117,114,99,101, - 122,22,122,105,112,105,109,112,111,114,116,101,114,46,103,101, - 116,95,115,111,117,114,99,101,174,0,0,0,115,153,0,0, - 0,128,0,244,14,0,14,30,152,100,160,72,211,13,45,136, - 2,216,11,13,136,58,220,18,32,208,35,53,176,104,176,92, - 208,33,66,200,24,212,18,82,208,12,82,228,15,31,160,4, - 160,104,211,15,47,136,4,217,11,13,220,23,42,215,23,53, - 209,23,53,176,100,184,77,211,23,74,137,72,224,26,30,152, - 22,152,115,144,124,136,72,240,4,4,9,24,216,24,28,159, - 11,153,11,160,72,209,24,45,136,73,244,8,0,16,25,152, - 20,159,28,153,28,160,121,211,15,49,215,15,56,209,15,56, - 211,15,58,208,8,58,248,244,7,0,16,24,242,0,2,9, - 24,225,19,23,240,5,2,9,24,250,115,18,0,0,0,193, - 10,15,65,61,0,193,61,9,66,9,3,194,8,1,66,9, - 3,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,243,66,0,0,0,151,0,116,1,0, - 0,0,0,0,0,0,0,124,0,124,1,171,2,0,0,0, - 0,0,0,125,2,124,2,128,16,116,3,0,0,0,0,0, - 0,0,0,100,1,124,1,155,2,157,2,124,1,172,2,171, - 2,0,0,0,0,0,0,130,1,124,2,83,0,41,3,122, - 171,105,115,95,112,97,99,107,97,103,101,40,102,117,108,108, - 110,97,109,101,41,32,45,62,32,98,111,111,108,46,10,10, - 32,32,32,32,32,32,32,32,82,101,116,117,114,110,32,84, - 114,117,101,32,105,102,32,116,104,101,32,109,111,100,117,108, - 101,32,115,112,101,99,105,102,105,101,100,32,98,121,32,102, - 117,108,108,110,97,109,101,32,105,115,32,97,32,112,97,99, - 107,97,103,101,46,10,32,32,32,32,32,32,32,32,82,97, + 0,91,0,0,0,0,0,0,0,0,0,91,4,0,0,0, + 0,0,0,0,0,53,2,0,0,0,0,0,0,110,1,85, + 1,110,2,85,1,82,7,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,0,82,8,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,91, + 4,0,0,0,0,0,0,0,0,45,0,0,0,53,1,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,31,0, + 0,85,1,91,11,0,0,0,0,0,0,0,0,85,0,82, + 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,91,4,0,0,0,0,0,0,0,0,45,0,0, + 0,53,1,0,0,0,0,0,0,83,1,4,0,110,2,30, + 0,85,0,82,13,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,85, + 2,5,0,0,0,110,3,91,19,0,0,0,0,0,0,0, + 0,85,0,82,8,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,3,53,2,0,0,0,0,0, + 0,36,0,33,0,91,14,0,0,0,0,0,0,0,0,7, + 0,97,14,0,0,32,0,91,17,0,0,0,0,0,0,0, + 0,83,2,83,3,85,2,53,3,0,0,0,0,0,0,101, + 1,102,0,61,3,31,0,102,1,41,4,122,130,103,101,116, + 95,100,97,116,97,40,112,97,116,104,110,97,109,101,41,32, + 45,62,32,115,116,114,105,110,103,32,119,105,116,104,32,102, + 105,108,101,32,100,97,116,97,46,10,10,82,101,116,117,114, + 110,32,116,104,101,32,100,97,116,97,32,97,115,115,111,99, + 105,97,116,101,100,32,119,105,116,104,32,39,112,97,116,104, + 110,97,109,101,39,46,32,82,97,105,115,101,32,79,83,69, + 114,114,111,114,32,105,102,10,116,104,101,32,102,105,108,101, + 32,119,97,115,110,39,116,32,102,111,117,110,100,46,10,78, + 114,1,0,0,0,218,0,41,10,114,31,0,0,0,114,32, + 0,0,0,114,33,0,0,0,218,10,115,116,97,114,116,115, + 119,105,116,104,114,43,0,0,0,218,3,108,101,110,218,10, + 95,103,101,116,95,102,105,108,101,115,218,8,75,101,121,69, + 114,114,111,114,114,37,0,0,0,218,9,95,103,101,116,95, + 100,97,116,97,41,4,114,46,0,0,0,218,8,112,97,116, + 104,110,97,109,101,218,3,107,101,121,218,9,116,111,99,95, + 101,110,116,114,121,115,4,0,0,0,32,32,32,32,114,17, + 0,0,0,218,8,103,101,116,95,100,97,116,97,218,20,122, + 105,112,105,109,112,111,114,116,101,114,46,103,101,116,95,100, + 97,116,97,141,0,0,0,115,158,0,0,0,128,0,247,12, + 0,12,24,138,60,216,23,31,215,23,39,209,23,39,172,12, + 180,104,211,23,63,136,72,224,14,22,136,3,216,11,19,215, + 11,30,209,11,30,152,116,159,124,153,124,172,104,209,31,54, + 215,11,55,209,11,55,216,18,26,156,51,152,116,159,124,153, + 124,172,104,209,31,54,211,27,55,208,27,56,208,18,57,136, + 67,240,4,3,9,38,216,24,28,159,15,153,15,211,24,41, + 168,35,209,24,46,136,73,244,6,0,16,25,152,20,159,28, + 153,28,160,121,211,15,49,208,8,49,248,244,5,0,16,24, + 243,0,1,9,38,220,18,25,152,33,152,82,160,19,211,18, + 37,208,12,37,240,3,1,9,38,250,115,12,0,0,0,193, + 47,19,66,24,0,194,24,24,66,48,3,99,2,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 243,34,0,0,0,149,0,91,1,0,0,0,0,0,0,0, + 0,88,1,53,2,0,0,0,0,0,0,117,3,0,0,112, + 35,110,4,85,4,36,0,41,1,122,141,103,101,116,95,102, + 105,108,101,110,97,109,101,40,102,117,108,108,110,97,109,101, + 41,32,45,62,32,102,105,108,101,110,97,109,101,32,115,116, + 114,105,110,103,46,10,10,82,101,116,117,114,110,32,116,104, + 101,32,102,105,108,101,110,97,109,101,32,102,111,114,32,116, + 104,101,32,115,112,101,99,105,102,105,101,100,32,109,111,100, + 117,108,101,32,111,114,32,114,97,105,115,101,32,90,105,112, + 73,109,112,111,114,116,69,114,114,111,114,10,105,102,32,105, + 116,32,99,111,117,108,100,110,39,116,32,98,101,32,105,109, + 112,111,114,116,101,100,46,10,114,71,0,0,0,114,73,0, + 0,0,115,5,0,0,0,32,32,32,32,32,114,17,0,0, + 0,218,12,103,101,116,95,102,105,108,101,110,97,109,101,218, + 24,122,105,112,105,109,112,111,114,116,101,114,46,103,101,116, + 95,102,105,108,101,110,97,109,101,162,0,0,0,115,24,0, + 0,0,128,0,244,16,0,36,52,176,68,211,35,67,209,8, + 32,136,4,152,23,216,15,22,136,14,114,16,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, + 3,0,0,0,243,40,1,0,0,149,0,91,1,0,0,0, + 0,0,0,0,0,88,1,53,2,0,0,0,0,0,0,110, + 2,85,2,99,14,0,0,91,3,0,0,0,0,0,0,0, + 0,83,2,85,1,60,2,14,0,51,2,85,1,83,3,57, + 2,101,1,91,5,0,0,0,0,0,0,0,0,88,1,53, + 2,0,0,0,0,0,0,110,3,85,2,40,0,0,0,0, + 0,0,0,97,24,0,0,91,6,0,0,0,0,0,0,0, + 0,82,8,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,34,0,85,3,83,4,53,2,0,0,0, + 0,0,0,110,4,79,5,85,3,14,0,83,5,51,2,110, + 4,30,0,85,0,82,11,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0, + 0,85,4,5,0,0,0,110,5,91,15,0,0,0,0,0, + 0,0,0,85,0,82,16,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,5,53,2,0,0,0, + 0,0,0,82,19,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,36, + 0,33,0,91,12,0,0,0,0,0,0,0,0,7,0,97, + 3,0,0,32,0,31,0,103,1,102,0,61,3,31,0,102, + 1,41,6,122,221,103,101,116,95,115,111,117,114,99,101,40, + 102,117,108,108,110,97,109,101,41,32,45,62,32,115,111,117, + 114,99,101,32,115,116,114,105,110,103,46,10,10,82,101,116, + 117,114,110,32,116,104,101,32,115,111,117,114,99,101,32,99, + 111,100,101,32,102,111,114,32,116,104,101,32,115,112,101,99, + 105,102,105,101,100,32,109,111,100,117,108,101,46,32,82,97, 105,115,101,32,90,105,112,73,109,112,111,114,116,69,114,114, - 111,114,32,105,102,32,116,104,101,32,109,111,100,117,108,101, + 111,114,10,105,102,32,116,104,101,32,109,111,100,117,108,101, 32,99,111,117,108,100,110,39,116,32,98,101,32,102,111,117, - 110,100,46,10,32,32,32,32,32,32,32,32,114,83,0,0, - 0,114,84,0,0,0,41,2,114,51,0,0,0,114,4,0, - 0,0,41,3,114,41,0,0,0,114,58,0,0,0,114,88, - 0,0,0,115,3,0,0,0,32,32,32,114,13,0,0,0, - 114,48,0,0,0,122,22,122,105,112,105,109,112,111,114,116, - 101,114,46,105,115,95,112,97,99,107,97,103,101,200,0,0, - 0,115,47,0,0,0,128,0,244,12,0,14,30,152,100,160, - 72,211,13,45,136,2,216,11,13,136,58,220,18,32,208,35, - 53,176,104,176,92,208,33,66,200,24,212,18,82,208,12,82, - 216,15,17,136,9,114,12,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,243, - 208,2,0,0,151,0,100,1,125,2,116,1,0,0,0,0, - 0,0,0,0,106,2,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,2,116,4,0,0,0,0, - 0,0,0,0,171,2,0,0,0,0,0,0,1,0,116,7, - 0,0,0,0,0,0,0,0,124,0,124,1,171,2,0,0, - 0,0,0,0,92,3,0,0,125,3,125,4,125,5,116,8, - 0,0,0,0,0,0,0,0,106,10,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,106,13,0,0, + 110,100,44,32,114,101,116,117,114,110,32,78,111,110,101,32, + 105,102,32,116,104,101,32,97,114,99,104,105,118,101,32,100, + 111,101,115,10,99,111,110,116,97,105,110,32,116,104,101,32, + 109,111,100,117,108,101,44,32,98,117,116,32,104,97,115,32, + 110,111,32,115,111,117,114,99,101,32,102,111,114,32,105,116, + 46,10,78,250,18,99,97,110,39,116,32,102,105,110,100,32, + 109,111,100,117,108,101,32,169,1,114,54,0,0,0,250,11, + 95,95,105,110,105,116,95,95,46,112,121,250,3,46,112,121, + 41,10,114,56,0,0,0,114,5,0,0,0,114,59,0,0, + 0,114,34,0,0,0,114,44,0,0,0,114,82,0,0,0, + 114,83,0,0,0,114,84,0,0,0,114,43,0,0,0,218, + 6,100,101,99,111,100,101,41,6,114,46,0,0,0,114,63, + 0,0,0,218,2,109,105,114,25,0,0,0,218,8,102,117, + 108,108,112,97,116,104,114,87,0,0,0,115,6,0,0,0, + 32,32,32,32,32,32,114,17,0,0,0,218,10,103,101,116, + 95,115,111,117,114,99,101,218,22,122,105,112,105,109,112,111, + 114,116,101,114,46,103,101,116,95,115,111,117,114,99,101,174, + 0,0,0,115,152,0,0,0,128,0,244,14,0,14,30,152, + 100,211,13,45,136,2,216,11,13,137,58,220,18,32,208,35, + 53,176,104,177,92,208,33,66,200,24,209,18,82,208,12,82, + 228,15,31,160,4,211,15,47,136,4,222,11,13,220,23,42, + 215,23,53,210,23,53,176,100,184,77,211,23,74,137,72,224, + 26,30,152,22,152,115,144,124,136,72,240,4,4,9,24,216, + 24,28,159,15,153,15,211,24,41,168,40,209,24,51,136,73, + 244,8,0,16,25,152,20,159,28,153,28,160,121,211,15,49, + 215,15,56,209,15,56,211,15,58,208,8,58,248,244,7,0, + 16,24,243,0,2,9,24,225,19,23,240,5,2,9,24,250, + 115,18,0,0,0,193,13,19,66,4,0,194,4,10,66,17, + 3,194,16,1,66,17,3,99,2,0,0,0,0,0,0,0, + 0,0,0,0,5,0,0,0,3,0,0,0,243,62,0,0, + 0,149,0,91,1,0,0,0,0,0,0,0,0,88,1,53, + 2,0,0,0,0,0,0,110,2,85,2,99,14,0,0,91, + 3,0,0,0,0,0,0,0,0,83,1,85,1,60,2,14, + 0,51,2,85,1,83,2,57,2,101,1,85,2,36,0,41, + 3,122,147,105,115,95,112,97,99,107,97,103,101,40,102,117, + 108,108,110,97,109,101,41,32,45,62,32,98,111,111,108,46, + 10,10,82,101,116,117,114,110,32,84,114,117,101,32,105,102, + 32,116,104,101,32,109,111,100,117,108,101,32,115,112,101,99, + 105,102,105,101,100,32,98,121,32,102,117,108,108,110,97,109, + 101,32,105,115,32,97,32,112,97,99,107,97,103,101,46,10, + 82,97,105,115,101,32,90,105,112,73,109,112,111,114,116,69, + 114,114,111,114,32,105,102,32,116,104,101,32,109,111,100,117, + 108,101,32,99,111,117,108,100,110,39,116,32,98,101,32,102, + 111,117,110,100,46,10,114,94,0,0,0,114,95,0,0,0, + 41,2,114,56,0,0,0,114,5,0,0,0,41,3,114,46, + 0,0,0,114,63,0,0,0,114,99,0,0,0,115,3,0, + 0,0,32,32,32,114,17,0,0,0,114,53,0,0,0,218, + 22,122,105,112,105,109,112,111,114,116,101,114,46,105,115,95, + 112,97,99,107,97,103,101,200,0,0,0,115,45,0,0,0, + 128,0,244,12,0,14,30,152,100,211,13,45,136,2,216,11, + 13,137,58,220,18,32,208,35,53,176,104,177,92,208,33,66, + 200,24,209,18,82,208,12,82,216,15,17,136,9,114,16,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,6, + 0,0,0,3,0,0,0,243,238,2,0,0,149,0,83,1, + 110,2,91,0,0,0,0,0,0,0,0,0,82,2,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,171,1,0,0,0,0,0,0,125,6,124,6,129,16, - 116,15,0,0,0,0,0,0,0,0,124,6,116,16,0,0, - 0,0,0,0,0,0,171,2,0,0,0,0,0,0,115,30, - 116,17,0,0,0,0,0,0,0,0,124,1,171,1,0,0, - 0,0,0,0,125,6,124,6,116,8,0,0,0,0,0,0, - 0,0,106,10,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,60,0,0,0,124,0,124,6, - 95,9,0,0,0,0,0,0,0,0,9,0,124,4,114,52, - 116,21,0,0,0,0,0,0,0,0,124,0,124,1,171,2, - 0,0,0,0,0,0,125,7,116,23,0,0,0,0,0,0, - 0,0,106,24,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,0,106,26,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,7,171,2, - 0,0,0,0,0,0,125,8,124,8,103,1,124,6,95,14, - 0,0,0,0,0,0,0,0,116,31,0,0,0,0,0,0, - 0,0,124,6,100,2,171,2,0,0,0,0,0,0,115,11, - 116,32,0,0,0,0,0,0,0,0,124,6,95,16,0,0, - 0,0,0,0,0,0,116,23,0,0,0,0,0,0,0,0, - 106,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,6,106,36,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,1,124,5,171,3, - 0,0,0,0,0,0,1,0,116,39,0,0,0,0,0,0, - 0,0,124,3,124,6,106,36,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,2,0,0,0,0, - 0,0,1,0,9,0,116,8,0,0,0,0,0,0,0,0, - 106,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,1,25,0,0,0,125,6,116,45,0,0, - 0,0,0,0,0,0,106,46,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,5,124,1,124,5, - 171,3,0,0,0,0,0,0,1,0,124,6,83,0,35,0, - 1,0,116,8,0,0,0,0,0,0,0,0,106,10,0,0, + 34,0,85,2,91,4,0,0,0,0,0,0,0,0,53,2, + 0,0,0,0,0,0,32,0,91,7,0,0,0,0,0,0, + 0,0,88,1,53,2,0,0,0,0,0,0,117,3,0,0, + 112,52,110,5,91,8,0,0,0,0,0,0,0,0,82,10, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,61,0,130,0,120,3,89,0,119,1,35,0,116,40, - 0,0,0,0,0,0,0,0,36,0,114,16,1,0,116,43, - 0,0,0,0,0,0,0,0,100,3,124,1,155,2,100,4, - 157,3,171,1,0,0,0,0,0,0,130,1,119,0,120,3, - 89,0,119,1,41,6,97,64,1,0,0,108,111,97,100,95, - 109,111,100,117,108,101,40,102,117,108,108,110,97,109,101,41, - 32,45,62,32,109,111,100,117,108,101,46,10,10,32,32,32, - 32,32,32,32,32,76,111,97,100,32,116,104,101,32,109,111, - 100,117,108,101,32,115,112,101,99,105,102,105,101,100,32,98, - 121,32,39,102,117,108,108,110,97,109,101,39,46,32,39,102, - 117,108,108,110,97,109,101,39,32,109,117,115,116,32,98,101, - 32,116,104,101,10,32,32,32,32,32,32,32,32,102,117,108, - 108,121,32,113,117,97,108,105,102,105,101,100,32,40,100,111, - 116,116,101,100,41,32,109,111,100,117,108,101,32,110,97,109, - 101,46,32,73,116,32,114,101,116,117,114,110,115,32,116,104, - 101,32,105,109,112,111,114,116,101,100,10,32,32,32,32,32, - 32,32,32,109,111,100,117,108,101,44,32,111,114,32,114,97, - 105,115,101,115,32,90,105,112,73,109,112,111,114,116,69,114, - 114,111,114,32,105,102,32,105,116,32,99,111,117,108,100,32, - 110,111,116,32,98,101,32,105,109,112,111,114,116,101,100,46, - 10,10,32,32,32,32,32,32,32,32,68,101,112,114,101,99, - 97,116,101,100,32,115,105,110,99,101,32,80,121,116,104,111, - 110,32,51,46,49,48,46,32,85,115,101,32,101,120,101,99, - 95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,97, - 100,46,10,32,32,32,32,32,32,32,32,122,114,122,105,112, - 105,109,112,111,114,116,46,122,105,112,105,109,112,111,114,116, - 101,114,46,108,111,97,100,95,109,111,100,117,108,101,40,41, - 32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,97, - 110,100,32,115,108,97,116,101,100,32,102,111,114,32,114,101, - 109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,32, - 51,46,49,50,59,32,117,115,101,32,101,120,101,99,95,109, - 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,218, - 12,95,95,98,117,105,108,116,105,110,115,95,95,122,14,76, - 111,97,100,101,100,32,109,111,100,117,108,101,32,122,25,32, - 110,111,116,32,102,111,117,110,100,32,105,110,32,115,121,115, - 46,109,111,100,117,108,101,115,122,30,105,109,112,111,114,116, - 32,123,125,32,35,32,108,111,97,100,101,100,32,102,114,111, - 109,32,90,105,112,32,123,125,41,24,218,9,95,119,97,114, - 110,105,110,103,115,218,4,119,97,114,110,218,18,68,101,112, - 114,101,99,97,116,105,111,110,87,97,114,110,105,110,103,114, - 66,0,0,0,218,3,115,121,115,218,7,109,111,100,117,108, - 101,115,218,3,103,101,116,114,20,0,0,0,218,12,95,109, - 111,100,117,108,101,95,116,121,112,101,218,10,95,95,108,111, - 97,100,101,114,95,95,114,54,0,0,0,114,27,0,0,0, - 114,39,0,0,0,114,38,0,0,0,218,8,95,95,112,97, - 116,104,95,95,218,7,104,97,115,97,116,116,114,114,93,0, - 0,0,218,14,95,102,105,120,95,117,112,95,109,111,100,117, - 108,101,218,8,95,95,100,105,99,116,95,95,218,4,101,120, - 101,99,114,35,0,0,0,218,11,73,109,112,111,114,116,69, - 114,114,111,114,114,52,0,0,0,218,16,95,118,101,114,98, - 111,115,101,95,109,101,115,115,97,103,101,41,9,114,41,0, - 0,0,114,58,0,0,0,218,3,109,115,103,114,68,0,0, - 0,114,69,0,0,0,114,61,0,0,0,218,3,109,111,100, - 114,18,0,0,0,114,89,0,0,0,115,9,0,0,0,32, - 32,32,32,32,32,32,32,32,114,13,0,0,0,218,11,108, - 111,97,100,95,109,111,100,117,108,101,122,23,122,105,112,105, - 109,112,111,114,116,101,114,46,108,111,97,100,95,109,111,100, - 117,108,101,213,0,0,0,115,66,1,0,0,128,0,240,18, - 1,16,67,1,136,3,228,8,17,143,14,137,14,144,115,212, - 28,46,212,8,47,220,35,51,176,68,184,40,211,35,67,209, - 8,32,136,4,136,105,152,23,220,14,17,143,107,137,107,143, - 111,137,111,152,104,211,14,39,136,3,216,11,14,136,59,156, - 106,168,19,172,108,212,30,59,220,18,30,152,120,211,18,40, - 136,67,216,36,39,140,67,143,75,137,75,152,8,209,12,33, - 216,25,29,136,3,140,14,240,4,14,9,18,217,15,24,244, - 6,0,24,40,168,4,168,104,211,23,55,144,4,220,27,46, - 215,27,57,209,27,57,184,36,191,44,185,44,200,4,211,27, - 77,144,8,216,32,40,152,122,144,3,148,12,228,19,26,152, - 51,160,14,212,19,47,220,35,47,144,3,212,16,32,220,12, - 31,215,12,46,209,12,46,168,115,175,124,169,124,184,88,192, - 119,212,12,79,220,12,16,144,20,144,115,151,124,145,124,212, - 12,36,240,10,3,9,86,1,220,18,21,151,43,145,43,152, - 104,209,18,39,136,67,244,6,0,9,19,215,8,35,209,8, - 35,208,36,68,192,104,208,80,87,212,8,88,216,15,18,136, - 10,248,240,19,2,9,18,220,16,19,151,11,145,11,152,72, - 208,16,37,216,12,17,251,244,8,0,16,24,242,0,1,9, - 86,1,220,18,29,160,14,168,120,168,108,208,58,83,208,30, - 84,211,18,85,208,12,85,240,3,1,9,86,1,250,115,25, - 0,0,0,194,4,66,4,68,53,0,196,9,19,69,12,0, - 196,53,20,69,9,3,197,12,25,69,37,3,99,2,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,32,0,0,0,151,0,100,1,100,2,108,0,109,1, - 125,2,1,0,2,0,124,2,124,0,124,1,171,2,0,0, - 0,0,0,0,83,0,41,3,122,53,82,101,116,117,114,110, - 32,116,104,101,32,82,101,115,111,117,114,99,101,82,101,97, - 100,101,114,32,102,111,114,32,97,32,109,111,100,117,108,101, - 32,105,110,32,97,32,122,105,112,32,102,105,108,101,46,114, - 1,0,0,0,41,1,218,9,90,105,112,82,101,97,100,101, - 114,41,2,218,17,105,109,112,111,114,116,108,105,98,46,114, - 101,97,100,101,114,115,114,113,0,0,0,41,3,114,41,0, - 0,0,114,58,0,0,0,114,113,0,0,0,115,3,0,0, - 0,32,32,32,114,13,0,0,0,218,19,103,101,116,95,114, - 101,115,111,117,114,99,101,95,114,101,97,100,101,114,122,31, - 122,105,112,105,109,112,111,114,116,101,114,46,103,101,116,95, - 114,101,115,111,117,114,99,101,95,114,101,97,100,101,114,0, - 1,0,0,115,18,0,0,0,128,0,229,8,47,225,15,24, - 152,20,152,120,211,15,40,208,8,40,114,12,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 3,0,0,0,243,224,0,0,0,151,0,9,0,116,1,0, - 0,0,0,0,0,0,0,124,0,106,2,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,171,1,0, - 0,0,0,0,0,124,0,95,2,0,0,0,0,0,0,0, - 0,124,0,106,4,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,116,6,0,0,0,0,0,0,0, - 0,124,0,106,2,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,60,0,0,0,121,1,35,0,116, - 8,0,0,0,0,0,0,0,0,36,0,114,42,1,0,116, - 6,0,0,0,0,0,0,0,0,106,11,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,106, - 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,100,1,171,2,0,0,0,0,0,0,1,0,105, - 0,124,0,95,2,0,0,0,0,0,0,0,0,89,0,121, - 1,119,0,120,3,89,0,119,1,41,2,122,41,82,101,108, - 111,97,100,32,116,104,101,32,102,105,108,101,32,100,97,116, - 97,32,111,102,32,116,104,101,32,97,114,99,104,105,118,101, - 32,112,97,116,104,46,78,41,6,114,36,0,0,0,114,38, - 0,0,0,114,37,0,0,0,114,34,0,0,0,114,4,0, - 0,0,218,3,112,111,112,169,1,114,41,0,0,0,115,1, - 0,0,0,32,114,13,0,0,0,218,17,105,110,118,97,108, - 105,100,97,116,101,95,99,97,99,104,101,115,122,29,122,105, - 112,105,109,112,111,114,116,101,114,46,105,110,118,97,108,105, - 100,97,116,101,95,99,97,99,104,101,115,7,1,0,0,115, - 84,0,0,0,128,0,240,4,5,9,29,220,26,41,168,36, - 175,44,169,44,211,26,55,136,68,140,75,216,49,53,183,27, - 177,27,212,12,32,160,20,167,28,161,28,210,12,46,248,220, - 15,29,242,0,2,9,29,220,12,32,215,12,36,209,12,36, - 160,84,167,92,161,92,176,52,212,12,56,216,26,28,136,68, - 142,75,240,5,2,9,29,250,115,15,0,0,0,130,55,58, - 0,186,48,65,45,3,193,44,1,65,45,3,99,1,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, - 0,243,70,0,0,0,151,0,100,1,124,0,106,0,0,0, + 0,0,82,13,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,1,53,1,0,0,0,0,0,0, + 110,6,85,6,98,21,0,0,91,15,0,0,0,0,0,0, + 0,0,85,6,91,16,0,0,0,0,0,0,0,0,53,2, + 0,0,0,0,0,0,40,0,0,0,0,0,0,0,100,30, + 0,0,91,17,0,0,0,0,0,0,0,0,85,1,53,1, + 0,0,0,0,0,0,110,6,85,6,91,8,0,0,0,0, + 0,0,0,0,82,10,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,85,1,39,0,0,0,88,6, + 108,9,0,0,0,0,0,0,0,0,30,0,85,4,40,0, + 0,0,0,0,0,0,97,52,0,0,91,21,0,0,0,0, + 0,0,0,0,88,1,53,2,0,0,0,0,0,0,110,7, + 91,22,0,0,0,0,0,0,0,0,82,24,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 85,0,82,26,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,7,53,2,0,0,0,0,0,0, + 110,8,85,8,47,1,85,6,108,14,0,0,0,0,0,0, + 0,0,91,31,0,0,0,0,0,0,0,0,85,6,83,2, + 53,2,0,0,0,0,0,0,40,0,0,0,0,0,0,0, + 100,11,0,0,91,32,0,0,0,0,0,0,0,0,85,6, + 108,16,0,0,0,0,0,0,0,0,91,22,0,0,0,0, + 0,0,0,0,82,34,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,34,0,85,6,82,36,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 155,0,116,2,0,0,0,0,0,0,0,0,155,0,124,0, - 106,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,155,0,100,2,157,5,83,0,41,3,78,122, - 21,60,122,105,112,105,109,112,111,114,116,101,114,32,111,98, - 106,101,99,116,32,34,122,2,34,62,41,3,114,38,0,0, - 0,114,26,0,0,0,114,40,0,0,0,114,118,0,0,0, - 115,1,0,0,0,32,114,13,0,0,0,218,8,95,95,114, - 101,112,114,95,95,122,20,122,105,112,105,109,112,111,114,116, - 101,114,46,95,95,114,101,112,114,95,95,17,1,0,0,115, - 33,0,0,0,128,0,216,17,38,160,116,167,124,161,124,160, - 110,180,88,176,74,184,116,191,123,185,123,184,109,200,50,208, - 15,78,208,8,78,114,12,0,0,0,169,1,78,41,15,114, - 8,0,0,0,114,9,0,0,0,114,10,0,0,0,218,7, - 95,95,100,111,99,95,95,114,46,0,0,0,114,63,0,0, - 0,114,70,0,0,0,114,79,0,0,0,114,81,0,0,0, - 114,90,0,0,0,114,48,0,0,0,114,111,0,0,0,114, - 115,0,0,0,114,119,0,0,0,114,121,0,0,0,114,11, - 0,0,0,114,12,0,0,0,114,13,0,0,0,114,5,0, - 0,0,114,5,0,0,0,46,0,0,0,115,65,0,0,0, - 132,0,241,2,12,5,8,242,34,37,5,36,243,80,1,25, - 5,28,242,54,7,5,20,242,20,17,5,50,242,42,9,5, - 23,242,24,22,5,59,242,52,9,5,18,242,26,40,5,19, - 242,86,1,4,5,41,242,14,7,5,29,243,20,1,5,79, - 1,114,12,0,0,0,122,12,95,95,105,110,105,116,95,95, - 46,112,121,99,84,114,85,0,0,0,70,41,3,122,4,46, - 112,121,99,84,70,41,3,114,86,0,0,0,70,70,99,2, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,243,68,0,0,0,151,0,124,0,106,0,0,0, + 88,21,53,3,0,0,0,0,0,0,32,0,91,39,0,0, + 0,0,0,0,0,0,88,54,82,36,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,2,0,0, + 0,0,0,0,32,0,30,0,91,8,0,0,0,0,0,0, + 0,0,82,10,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,85,1,5,0,0,0,110,6,91,44, + 0,0,0,0,0,0,0,0,82,46,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,34,0,83,5, + 88,21,53,3,0,0,0,0,0,0,32,0,85,6,36,0, + 33,0,32,0,91,8,0,0,0,0,0,0,0,0,82,10, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,106,3,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,1,171,1,0,0,0,0,0,0, - 100,2,25,0,0,0,122,0,0,0,83,0,41,3,78,218, - 1,46,233,2,0,0,0,41,2,114,40,0,0,0,218,10, - 114,112,97,114,116,105,116,105,111,110,41,2,114,41,0,0, - 0,114,58,0,0,0,115,2,0,0,0,32,32,114,13,0, - 0,0,114,54,0,0,0,114,54,0,0,0,35,1,0,0, - 115,33,0,0,0,128,0,216,11,15,143,59,137,59,152,24, - 215,25,44,209,25,44,168,83,211,25,49,176,33,209,25,52, - 209,11,52,208,4,52,114,12,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, - 243,48,0,0,0,151,0,124,1,116,0,0,0,0,0,0, - 0,0,0,122,0,0,0,125,2,124,2,124,0,106,2,0, + 0,0,85,1,9,0,101,0,61,3,31,0,102,1,33,0, + 91,40,0,0,0,0,0,0,0,0,7,0,97,17,0,0, + 32,0,91,43,0,0,0,0,0,0,0,0,83,3,85,1, + 60,2,14,0,83,4,51,3,53,1,0,0,0,0,0,0, + 101,1,102,0,61,3,31,0,102,1,41,6,97,24,1,0, + 0,108,111,97,100,95,109,111,100,117,108,101,40,102,117,108, + 108,110,97,109,101,41,32,45,62,32,109,111,100,117,108,101, + 46,10,10,76,111,97,100,32,116,104,101,32,109,111,100,117, + 108,101,32,115,112,101,99,105,102,105,101,100,32,98,121,32, + 39,102,117,108,108,110,97,109,101,39,46,32,39,102,117,108, + 108,110,97,109,101,39,32,109,117,115,116,32,98,101,32,116, + 104,101,10,102,117,108,108,121,32,113,117,97,108,105,102,105, + 101,100,32,40,100,111,116,116,101,100,41,32,109,111,100,117, + 108,101,32,110,97,109,101,46,32,73,116,32,114,101,116,117, + 114,110,115,32,116,104,101,32,105,109,112,111,114,116,101,100, + 10,109,111,100,117,108,101,44,32,111,114,32,114,97,105,115, + 101,115,32,90,105,112,73,109,112,111,114,116,69,114,114,111, + 114,32,105,102,32,105,116,32,99,111,117,108,100,32,110,111, + 116,32,98,101,32,105,109,112,111,114,116,101,100,46,10,10, + 68,101,112,114,101,99,97,116,101,100,32,115,105,110,99,101, + 32,80,121,116,104,111,110,32,51,46,49,48,46,32,85,115, + 101,32,101,120,101,99,95,109,111,100,117,108,101,40,41,32, + 105,110,115,116,101,97,100,46,10,122,114,122,105,112,105,109, + 112,111,114,116,46,122,105,112,105,109,112,111,114,116,101,114, + 46,108,111,97,100,95,109,111,100,117,108,101,40,41,32,105, + 115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,100, + 32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,111, + 118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,46, + 49,50,59,32,117,115,101,32,101,120,101,99,95,109,111,100, + 117,108,101,40,41,32,105,110,115,116,101,97,100,218,12,95, + 95,98,117,105,108,116,105,110,115,95,95,122,14,76,111,97, + 100,101,100,32,109,111,100,117,108,101,32,122,25,32,110,111, + 116,32,102,111,117,110,100,32,105,110,32,115,121,115,46,109, + 111,100,117,108,101,115,122,30,105,109,112,111,114,116,32,123, + 125,32,35,32,108,111,97,100,101,100,32,102,114,111,109,32, + 90,105,112,32,123,125,41,24,218,9,95,119,97,114,110,105, + 110,103,115,218,4,119,97,114,110,218,18,68,101,112,114,101, + 99,97,116,105,111,110,87,97,114,110,105,110,103,114,72,0, + 0,0,218,3,115,121,115,218,7,109,111,100,117,108,101,115, + 218,3,103,101,116,114,27,0,0,0,218,12,95,109,111,100, + 117,108,101,95,116,121,112,101,218,10,95,95,108,111,97,100, + 101,114,95,95,114,59,0,0,0,114,34,0,0,0,114,44, + 0,0,0,114,43,0,0,0,218,8,95,95,112,97,116,104, + 95,95,218,7,104,97,115,97,116,116,114,114,106,0,0,0, + 218,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101, + 218,8,95,95,100,105,99,116,95,95,218,4,101,120,101,99, + 114,83,0,0,0,218,11,73,109,112,111,114,116,69,114,114, + 111,114,114,57,0,0,0,218,16,95,118,101,114,98,111,115, + 101,95,109,101,115,115,97,103,101,41,9,114,46,0,0,0, + 114,63,0,0,0,218,3,109,115,103,114,74,0,0,0,114, + 75,0,0,0,114,66,0,0,0,218,3,109,111,100,114,25, + 0,0,0,114,100,0,0,0,115,9,0,0,0,32,32,32, + 32,32,32,32,32,32,114,17,0,0,0,218,11,108,111,97, + 100,95,109,111,100,117,108,101,218,23,122,105,112,105,109,112, + 111,114,116,101,114,46,108,111,97,100,95,109,111,100,117,108, + 101,213,0,0,0,115,57,1,0,0,128,0,240,18,1,16, + 67,1,136,3,228,8,17,143,14,138,14,144,115,212,28,46, + 212,8,47,220,35,51,176,68,211,35,67,209,8,32,136,4, + 152,23,220,14,17,143,107,137,107,143,111,137,111,152,104,211, + 14,39,136,3,216,11,14,137,59,156,106,168,19,172,108,215, + 30,59,209,30,59,220,18,30,152,120,211,18,40,136,67,216, + 36,39,140,67,143,75,137,75,152,8,209,12,33,216,25,29, + 140,14,240,4,14,9,18,222,15,24,244,6,0,24,40,168, + 4,211,23,55,144,4,220,27,46,215,27,57,210,27,57,184, + 36,191,44,185,44,200,4,211,27,77,144,8,216,32,40,152, + 122,144,3,148,12,228,19,26,152,51,160,14,215,19,47,209, + 19,47,220,35,47,144,3,212,16,32,220,12,31,215,12,46, + 210,12,46,168,115,175,124,169,124,184,88,212,12,79,220,12, + 16,144,20,151,124,145,124,212,12,36,240,10,3,9,86,1, + 220,18,21,151,43,145,43,152,104,209,18,39,136,67,244,6, + 0,9,19,215,8,35,210,8,35,208,36,68,192,104,212,8, + 88,216,15,18,136,10,248,240,19,2,9,18,220,16,19,151, + 11,145,11,152,72,208,16,37,216,12,17,251,244,8,0,16, + 24,243,0,1,9,86,1,220,18,29,160,14,168,120,169,108, + 208,58,83,208,30,84,211,18,85,208,12,85,240,3,1,9, + 86,1,250,115,25,0,0,0,194,8,66,13,69,2,0,196, + 22,19,69,25,0,197,2,20,69,22,3,197,25,27,69,52, + 3,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,243,30,0,0,0,149,0,83,1,83, + 2,75,0,74,1,110,2,32,0,85,2,34,0,88,1,53, + 2,0,0,0,0,0,0,36,0,41,3,122,53,82,101,116, + 117,114,110,32,116,104,101,32,82,101,115,111,117,114,99,101, + 82,101,97,100,101,114,32,102,111,114,32,97,32,109,111,100, + 117,108,101,32,105,110,32,97,32,122,105,112,32,102,105,108, + 101,46,114,1,0,0,0,41,1,218,9,90,105,112,82,101, + 97,100,101,114,41,2,218,17,105,109,112,111,114,116,108,105, + 98,46,114,101,97,100,101,114,115,114,127,0,0,0,41,3, + 114,46,0,0,0,114,63,0,0,0,114,127,0,0,0,115, + 3,0,0,0,32,32,32,114,17,0,0,0,218,19,103,101, + 116,95,114,101,115,111,117,114,99,101,95,114,101,97,100,101, + 114,218,31,122,105,112,105,109,112,111,114,116,101,114,46,103, + 101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100, + 101,114,0,1,0,0,115,16,0,0,0,128,0,229,8,47, + 225,15,24,152,20,211,15,40,208,8,40,114,16,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,5,0,0, + 0,3,0,0,0,243,202,0,0,0,149,0,30,0,91,0, + 0,0,0,0,0,0,0,0,85,0,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0, + 0,0,110,1,85,1,36,0,33,0,91,4,0,0,0,0, + 0,0,0,0,7,0,97,65,0,0,32,0,30,0,91,7, + 0,0,0,0,0,0,0,0,85,0,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,1, + 0,0,0,0,0,0,61,1,110,1,91,0,0,0,0,0, + 0,0,0,0,85,0,82,2,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,39,0,0,0,31,0, + 85,1,36,0,33,0,91,8,0,0,0,0,0,0,0,0, + 7,0,97,7,0,0,32,0,48,0,110,1,31,0,31,0, + 85,1,36,0,102,0,61,3,31,0,102,1,102,0,61,3, + 31,0,102,1,41,1,122,41,82,101,116,117,114,110,32,116, + 104,101,32,102,105,108,101,115,32,119,105,116,104,105,110,32, + 116,104,101,32,97,114,99,104,105,118,101,32,112,97,116,104, + 46,41,5,114,41,0,0,0,114,43,0,0,0,114,83,0, + 0,0,114,42,0,0,0,114,5,0,0,0,41,2,114,46, + 0,0,0,218,5,102,105,108,101,115,115,2,0,0,0,32, + 32,114,17,0,0,0,114,82,0,0,0,218,22,122,105,112, + 105,109,112,111,114,116,101,114,46,95,103,101,116,95,102,105, + 108,101,115,7,1,0,0,115,113,0,0,0,128,0,240,4, + 6,9,27,220,20,40,168,20,175,28,169,28,209,20,54,136, + 69,240,14,0,16,21,136,12,248,244,13,0,16,24,243,0, + 4,9,27,240,2,3,13,27,220,61,76,200,84,207,92,201, + 92,211,61,90,208,16,90,144,5,212,24,44,168,84,175,92, + 169,92,210,24,58,240,8,0,16,21,136,12,248,244,7,0, + 20,34,243,0,1,13,27,216,24,26,146,5,224,15,20,136, + 12,240,7,1,13,27,250,240,7,4,9,27,250,115,38,0, + 0,0,130,19,23,0,151,10,65,34,3,162,40,65,13,2, + 193,13,12,65,30,5,193,25,1,65,34,3,193,29,1,65, + 30,5,193,30,4,65,34,3,99,1,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,243,68,0, + 0,0,149,0,91,0,0,0,0,0,0,0,0,0,82,3, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,118,0,83,0,114,122,0,0,0,41,2,114,26,0,0, - 0,114,37,0,0,0,41,3,114,41,0,0,0,114,18,0, - 0,0,218,7,100,105,114,112,97,116,104,115,3,0,0,0, - 32,32,32,114,13,0,0,0,114,55,0,0,0,114,55,0, - 0,0,39,1,0,0,115,28,0,0,0,128,0,240,8,0, - 15,19,148,88,137,111,128,71,224,11,18,144,100,151,107,145, - 107,208,11,33,208,4,33,114,12,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,104,0,0,0,151,0,116,1,0,0,0,0,0,0, - 0,0,124,0,124,1,171,2,0,0,0,0,0,0,125,2, - 116,2,0,0,0,0,0,0,0,0,68,0,93,29,0,0, - 92,3,0,0,125,3,125,4,125,5,124,2,124,3,122,0, - 0,0,125,6,124,6,124,0,106,4,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,118,0,115,1, - 140,27,124,5,99,2,1,0,83,0,4,0,121,0,114,122, - 0,0,0,41,3,114,54,0,0,0,218,16,95,122,105,112, - 95,115,101,97,114,99,104,111,114,100,101,114,114,37,0,0, - 0,41,7,114,41,0,0,0,114,58,0,0,0,114,18,0, + 0,0,85,0,82,4,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,83,1,53,2,0,0,0,0, + 0,0,32,0,103,1,41,2,122,55,73,110,118,97,108,105, + 100,97,116,101,115,32,116,104,101,32,99,97,99,104,101,32, + 111,102,32,102,105,108,101,32,100,97,116,97,32,111,102,32, + 116,104,101,32,97,114,99,104,105,118,101,32,112,97,116,104, + 46,78,41,3,114,41,0,0,0,218,3,112,111,112,114,43, + 0,0,0,169,1,114,46,0,0,0,115,1,0,0,0,32, + 114,17,0,0,0,218,17,105,110,118,97,108,105,100,97,116, + 101,95,99,97,99,104,101,115,218,29,122,105,112,105,109,112, + 111,114,116,101,114,46,105,110,118,97,108,105,100,97,116,101, + 95,99,97,99,104,101,115,20,1,0,0,115,22,0,0,0, + 128,0,228,8,28,215,8,32,209,8,32,160,20,167,28,161, + 28,168,116,213,8,52,114,16,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, + 243,70,0,0,0,149,0,83,1,85,0,82,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14, + 0,91,2,0,0,0,0,0,0,0,0,14,0,85,0,82, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,14,0,83,2,51,5,36,0,41,3,78,122,21, + 60,122,105,112,105,109,112,111,114,116,101,114,32,111,98,106, + 101,99,116,32,34,122,2,34,62,41,3,114,43,0,0,0, + 114,33,0,0,0,114,45,0,0,0,114,136,0,0,0,115, + 1,0,0,0,32,114,17,0,0,0,218,8,95,95,114,101, + 112,114,95,95,218,20,122,105,112,105,109,112,111,114,116,101, + 114,46,95,95,114,101,112,114,95,95,25,1,0,0,115,33, + 0,0,0,128,0,216,17,38,160,116,167,124,161,124,160,110, + 180,88,176,74,184,116,191,123,185,123,184,109,200,50,208,15, + 78,208,8,78,114,16,0,0,0,41,2,114,43,0,0,0, + 114,45,0,0,0,169,1,78,41,18,114,11,0,0,0,114, + 12,0,0,0,114,13,0,0,0,114,14,0,0,0,218,7, + 95,95,100,111,99,95,95,114,50,0,0,0,114,68,0,0, + 0,114,76,0,0,0,114,88,0,0,0,114,91,0,0,0, + 114,101,0,0,0,114,53,0,0,0,114,124,0,0,0,114, + 129,0,0,0,114,82,0,0,0,114,137,0,0,0,114,140, + 0,0,0,114,15,0,0,0,114,10,0,0,0,114,16,0, + 0,0,114,17,0,0,0,114,6,0,0,0,114,6,0,0, + 0,50,0,0,0,115,70,0,0,0,134,0,241,2,12,5, + 8,242,34,33,5,36,244,72,1,25,5,28,242,54,7,5, + 20,242,20,17,5,50,242,42,9,5,23,242,24,22,5,59, + 242,52,9,5,18,242,26,40,5,19,242,86,1,4,5,41, + 242,14,10,5,21,242,26,2,5,53,245,10,1,5,79,1, + 114,16,0,0,0,122,12,95,95,105,110,105,116,95,95,46, + 112,121,99,84,114,96,0,0,0,70,41,3,122,4,46,112, + 121,99,84,70,41,3,114,97,0,0,0,70,70,99,2,0, + 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, + 0,0,243,68,0,0,0,149,0,85,0,82,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 1,82,3,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,1,53,1,0,0,0,0,0,0,83, + 2,5,0,0,0,45,0,0,0,36,0,41,3,78,218,1, + 46,233,2,0,0,0,41,2,114,45,0,0,0,218,10,114, + 112,97,114,116,105,116,105,111,110,41,2,114,46,0,0,0, + 114,63,0,0,0,115,2,0,0,0,32,32,114,17,0,0, + 0,114,59,0,0,0,114,59,0,0,0,43,1,0,0,115, + 33,0,0,0,128,0,216,11,15,143,59,137,59,152,24,215, + 25,44,209,25,44,168,83,211,25,49,176,33,209,25,52,209, + 11,52,208,4,52,114,16,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,243, + 56,0,0,0,149,0,85,1,91,0,0,0,0,0,0,0, + 0,0,45,0,0,0,110,2,88,32,82,3,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0, + 0,0,0,0,0,0,59,0,0,0,36,0,114,142,0,0, + 0,41,2,114,33,0,0,0,114,82,0,0,0,41,3,114, + 46,0,0,0,114,25,0,0,0,218,7,100,105,114,112,97, + 116,104,115,3,0,0,0,32,32,32,114,17,0,0,0,114, + 60,0,0,0,114,60,0,0,0,47,1,0,0,115,29,0, + 0,0,128,0,240,8,0,15,19,148,88,137,111,128,71,224, + 11,18,151,111,145,111,211,22,39,209,11,39,208,4,39,114, + 16,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,243,112,0,0,0,149,0, + 91,1,0,0,0,0,0,0,0,0,88,1,53,2,0,0, + 0,0,0,0,110,2,91,2,0,0,0,0,0,0,0,0, + 19,0,72,33,0,0,117,3,0,0,112,52,110,5,88,35, + 45,0,0,0,110,6,88,96,82,5,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0, + 0,0,0,0,59,0,0,0,100,2,0,0,77,31,0,0, + 85,5,115,2,32,0,36,0,11,0,32,0,103,0,114,142, + 0,0,0,41,3,114,59,0,0,0,218,16,95,122,105,112, + 95,115,101,97,114,99,104,111,114,100,101,114,114,82,0,0, + 0,41,7,114,46,0,0,0,114,63,0,0,0,114,25,0, 0,0,218,6,115,117,102,102,105,120,218,10,105,115,98,121, - 116,101,99,111,100,101,114,69,0,0,0,114,89,0,0,0, - 115,7,0,0,0,32,32,32,32,32,32,32,114,13,0,0, - 0,114,51,0,0,0,114,51,0,0,0,48,1,0,0,115, - 63,0,0,0,128,0,220,11,27,152,68,160,40,211,11,43, - 128,68,223,41,57,209,8,37,136,6,144,10,152,73,216,19, - 23,152,38,145,61,136,8,216,11,19,144,116,151,123,145,123, - 210,11,34,216,19,28,210,12,28,240,7,0,42,58,240,8, - 0,12,16,114,12,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,9,0,0,0,3,0,0,0,243,16,10, - 0,0,151,0,9,0,116,1,0,0,0,0,0,0,0,0, - 106,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,0,171,1,0,0,0,0,0,0,125,1, - 124,1,53,0,1,0,124,1,106,9,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0, - 0,0,0,0,125,2,9,0,9,0,124,1,106,11,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 116,12,0,0,0,0,0,0,0,0,11,0,100,3,171,2, - 0,0,0,0,0,0,1,0,124,1,106,9,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0, - 0,0,0,0,0,0,125,3,124,1,106,15,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,12, - 0,0,0,0,0,0,0,0,171,1,0,0,0,0,0,0, - 125,4,116,17,0,0,0,0,0,0,0,0,124,4,171,1, - 0,0,0,0,0,0,116,12,0,0,0,0,0,0,0,0, - 107,55,0,0,114,16,116,7,0,0,0,0,0,0,0,0, - 100,4,124,0,155,2,157,2,124,0,172,2,171,2,0,0, - 0,0,0,0,130,1,124,4,100,0,100,5,26,0,116,18, - 0,0,0,0,0,0,0,0,107,55,0,0,114,200,9,0, - 124,1,106,11,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,6,100,3,171,2,0,0,0,0, - 0,0,1,0,124,1,106,9,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0, - 0,0,125,5,116,21,0,0,0,0,0,0,0,0,124,5, - 116,22,0,0,0,0,0,0,0,0,122,10,0,0,116,12, - 0,0,0,0,0,0,0,0,122,10,0,0,100,6,171,2, - 0,0,0,0,0,0,125,6,9,0,124,1,106,11,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,6,171,1,0,0,0,0,0,0,1,0,124,1,106,15, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,125,7,124,7,106,25, + 116,101,99,111,100,101,114,75,0,0,0,114,100,0,0,0, + 115,7,0,0,0,32,32,32,32,32,32,32,114,17,0,0, + 0,114,56,0,0,0,114,56,0,0,0,56,1,0,0,115, + 58,0,0,0,128,0,220,11,27,152,68,211,11,43,128,68, + 223,41,57,209,8,37,136,6,152,73,216,19,23,145,61,136, + 8,216,11,19,151,127,145,127,211,23,40,213,11,40,216,19, + 28,210,12,28,241,7,0,42,58,240,8,0,12,16,114,16, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 10,0,0,0,3,0,0,0,243,194,13,0,0,149,0,30, + 0,91,0,0,0,0,0,0,0,0,0,82,2,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,85,0,53,1,0,0,0,0,0,0,110,1,85,1,2, + 0,32,0,85,1,82,9,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0, + 0,110,2,30,0,30,0,85,1,82,11,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,3,83, + 4,53,2,0,0,0,0,0,0,32,0,85,1,82,9,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,116,18,0,0,0,0,0,0,0,0,171,1,0,0, - 0,0,0,0,125,8,124,8,100,6,107,2,0,0,114,16, - 116,7,0,0,0,0,0,0,0,0,100,7,124,0,155,2, - 157,2,124,0,172,2,171,2,0,0,0,0,0,0,130,1, - 124,7,124,8,124,8,116,12,0,0,0,0,0,0,0,0, - 122,0,0,0,26,0,125,4,116,17,0,0,0,0,0,0, - 0,0,124,4,171,1,0,0,0,0,0,0,116,12,0,0, - 0,0,0,0,0,0,107,55,0,0,114,16,116,7,0,0, - 0,0,0,0,0,0,100,8,124,0,155,2,157,2,124,0, - 172,2,171,2,0,0,0,0,0,0,130,1,124,5,116,17, - 0,0,0,0,0,0,0,0,124,7,171,1,0,0,0,0, - 0,0,122,10,0,0,124,8,122,0,0,0,125,3,116,27, - 0,0,0,0,0,0,0,0,124,4,100,9,100,10,26,0, - 171,1,0,0,0,0,0,0,125,9,116,27,0,0,0,0, - 0,0,0,0,124,4,100,10,100,11,26,0,171,1,0,0, - 0,0,0,0,125,10,124,3,124,9,107,2,0,0,114,16, - 116,7,0,0,0,0,0,0,0,0,100,12,124,0,155,2, - 157,2,124,0,172,2,171,2,0,0,0,0,0,0,130,1, - 124,3,124,10,107,2,0,0,114,16,116,7,0,0,0,0, - 0,0,0,0,100,13,124,0,155,2,157,2,124,0,172,2, - 171,2,0,0,0,0,0,0,130,1,124,3,124,9,122,23, - 0,0,125,3,124,3,124,10,122,10,0,0,125,11,124,11, - 100,6,107,2,0,0,114,16,116,7,0,0,0,0,0,0, - 0,0,100,14,124,0,155,2,157,2,124,0,172,2,171,2, - 0,0,0,0,0,0,130,1,105,0,125,12,100,6,125,13, - 9,0,124,1,106,11,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,3,171,1,0,0,0,0, - 0,0,1,0,9,0,124,1,106,15,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,15,171,1, - 0,0,0,0,0,0,125,4,116,17,0,0,0,0,0,0, - 0,0,124,4,171,1,0,0,0,0,0,0,100,5,107,2, - 0,0,114,11,116,29,0,0,0,0,0,0,0,0,100,16, - 171,1,0,0,0,0,0,0,130,1,124,4,100,0,100,5, - 26,0,100,17,107,55,0,0,114,2,144,1,110,164,116,17, - 0,0,0,0,0,0,0,0,124,4,171,1,0,0,0,0, - 0,0,100,15,107,55,0,0,114,11,116,29,0,0,0,0, - 0,0,0,0,100,16,171,1,0,0,0,0,0,0,130,1, - 116,31,0,0,0,0,0,0,0,0,124,4,100,18,100,19, - 26,0,171,1,0,0,0,0,0,0,125,14,116,31,0,0, - 0,0,0,0,0,0,124,4,100,19,100,9,26,0,171,1, - 0,0,0,0,0,0,125,15,116,31,0,0,0,0,0,0, - 0,0,124,4,100,9,100,20,26,0,171,1,0,0,0,0, - 0,0,125,16,116,31,0,0,0,0,0,0,0,0,124,4, - 100,20,100,10,26,0,171,1,0,0,0,0,0,0,125,17, - 116,27,0,0,0,0,0,0,0,0,124,4,100,10,100,11, - 26,0,171,1,0,0,0,0,0,0,125,18,116,27,0,0, - 0,0,0,0,0,0,124,4,100,11,100,21,26,0,171,1, - 0,0,0,0,0,0,125,19,116,27,0,0,0,0,0,0, - 0,0,124,4,100,21,100,22,26,0,171,1,0,0,0,0, - 0,0,125,5,116,31,0,0,0,0,0,0,0,0,124,4, - 100,22,100,23,26,0,171,1,0,0,0,0,0,0,125,20, - 116,31,0,0,0,0,0,0,0,0,124,4,100,23,100,24, - 26,0,171,1,0,0,0,0,0,0,125,21,116,31,0,0, - 0,0,0,0,0,0,124,4,100,24,100,25,26,0,171,1, - 0,0,0,0,0,0,125,22,116,27,0,0,0,0,0,0, - 0,0,124,4,100,26,100,15,26,0,171,1,0,0,0,0, - 0,0,125,23,124,20,124,21,122,0,0,0,124,22,122,0, - 0,0,125,9,124,23,124,10,107,68,0,0,114,16,116,7, - 0,0,0,0,0,0,0,0,100,27,124,0,155,2,157,2, - 124,0,172,2,171,2,0,0,0,0,0,0,130,1,124,23, - 124,11,122,13,0,0,125,23,9,0,124,1,106,15,0,0, + 0,53,0,0,0,0,0,0,0,110,3,91,12,0,0,0, + 0,0,0,0,0,91,14,0,0,0,0,0,0,0,0,45, + 0,0,0,91,16,0,0,0,0,0,0,0,0,45,0,0, + 0,91,18,0,0,0,0,0,0,0,0,45,0,0,0,110, + 4,91,21,0,0,0,0,0,0,0,0,88,52,45,10,0, + 0,83,3,53,2,0,0,0,0,0,0,110,5,30,0,85, + 1,82,11,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,5,53,1,0,0,0,0,0,0,32, + 0,85,1,82,23,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,4,53,1,0,0,0,0,0, + 0,110,6,85,6,82,25,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,91,26,0,0,0,0,0, + 0,0,0,53,1,0,0,0,0,0,0,110,7,85,6,82, + 25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,91,28,0,0,0,0,0,0,0,0,53,1,0, + 0,0,0,0,0,110,8,85,8,83,3,58,188,0,0,97, + 140,0,0,85,8,91,16,0,0,0,0,0,0,0,0,45, + 0,0,0,91,18,0,0,0,0,0,0,0,0,45,0,0, + 0,85,7,58,88,0,0,97,120,0,0,88,104,85,8,91, + 16,0,0,0,0,0,0,0,0,45,0,0,0,4,0,110, + 9,91,31,0,0,0,0,0,0,0,0,85,9,53,1,0, + 0,0,0,0,0,91,16,0,0,0,0,0,0,0,0,58, + 119,0,0,97,30,0,0,91,7,0,0,0,0,0,0,0, + 0,83,6,91,16,0,0,0,0,0,0,0,0,14,0,83, + 7,91,31,0,0,0,0,0,0,0,0,85,9,53,1,0, + 0,0,0,0,0,14,0,83,8,51,5,85,0,83,2,57, + 2,101,1,85,3,91,31,0,0,0,0,0,0,0,0,85, + 6,53,1,0,0,0,0,0,0,45,10,0,0,85,8,45, + 0,0,0,110,10,91,33,0,0,0,0,0,0,0,0,85, + 9,83,9,83,10,4,0,53,1,0,0,0,0,0,0,110, + 11,91,33,0,0,0,0,0,0,0,0,85,9,83,10,83, + 11,4,0,53,1,0,0,0,0,0,0,110,12,91,33,0, + 0,0,0,0,0,0,0,85,9,83,12,83,13,4,0,53, + 1,0,0,0,0,0,0,110,13,79,124,85,7,83,3,58, + 188,0,0,97,104,0,0,88,103,85,7,91,14,0,0,0, + 0,0,0,0,0,45,0,0,0,4,0,110,9,91,31,0, + 0,0,0,0,0,0,0,85,9,53,1,0,0,0,0,0, + 0,91,14,0,0,0,0,0,0,0,0,58,119,0,0,97, + 14,0,0,91,7,0,0,0,0,0,0,0,0,83,14,85, + 0,60,2,14,0,51,2,85,0,83,2,57,2,101,1,85, + 3,91,31,0,0,0,0,0,0,0,0,85,6,53,1,0, + 0,0,0,0,0,45,10,0,0,85,7,45,0,0,0,110, + 10,91,35,0,0,0,0,0,0,0,0,85,9,83,15,83, + 16,4,0,53,1,0,0,0,0,0,0,110,11,91,35,0, + 0,0,0,0,0,0,0,85,9,83,16,83,17,4,0,53, + 1,0,0,0,0,0,0,110,12,91,37,0,0,0,0,0, + 0,0,0,85,9,83,18,83,19,4,0,53,1,0,0,0, + 0,0,0,110,13,79,14,91,7,0,0,0,0,0,0,0, + 0,83,20,85,0,60,2,14,0,51,2,85,0,83,2,57, + 2,101,1,88,171,58,18,0,0,97,14,0,0,91,7,0, + 0,0,0,0,0,0,0,83,21,85,0,60,2,14,0,51, + 2,85,0,83,2,57,2,101,1,88,172,58,18,0,0,97, + 14,0,0,91,7,0,0,0,0,0,0,0,0,83,22,85, + 0,60,2,14,0,51,2,85,0,83,2,57,2,101,1,88, + 171,45,23,0,0,110,10,88,172,45,10,0,0,110,14,85, + 14,83,3,58,18,0,0,97,14,0,0,91,7,0,0,0, + 0,0,0,0,0,83,23,85,0,60,2,14,0,51,2,85, + 0,83,2,57,2,101,1,48,0,110,15,83,3,110,16,30, + 0,85,1,82,11,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,10,53,1,0,0,0,0,0, + 0,32,0,30,0,85,1,82,23,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,83,24,53,1,0, + 0,0,0,0,0,110,9,91,31,0,0,0,0,0,0,0, + 0,85,9,53,1,0,0,0,0,0,0,83,25,58,18,0, + 0,97,11,0,0,91,39,0,0,0,0,0,0,0,0,83, + 26,53,1,0,0,0,0,0,0,101,1,85,9,83,0,83, + 25,4,0,83,27,58,119,0,0,97,28,0,0,85,16,85, + 13,58,119,0,0,97,20,0,0,91,7,0,0,0,0,0, + 0,0,0,83,28,85,16,14,0,83,29,85,13,14,0,83, + 30,85,0,60,2,14,0,51,6,85,0,83,2,57,2,101, + 1,71,3,79,44,91,31,0,0,0,0,0,0,0,0,85, + 9,53,1,0,0,0,0,0,0,83,24,58,119,0,0,97, + 11,0,0,91,39,0,0,0,0,0,0,0,0,83,26,53, + 1,0,0,0,0,0,0,101,1,91,37,0,0,0,0,0, + 0,0,0,85,9,83,18,83,19,4,0,53,1,0,0,0, + 0,0,0,110,17,91,37,0,0,0,0,0,0,0,0,85, + 9,83,19,83,15,4,0,53,1,0,0,0,0,0,0,110, + 18,91,37,0,0,0,0,0,0,0,0,85,9,83,15,83, + 31,4,0,53,1,0,0,0,0,0,0,110,19,91,37,0, + 0,0,0,0,0,0,0,85,9,83,31,83,16,4,0,53, + 1,0,0,0,0,0,0,110,20,91,35,0,0,0,0,0, + 0,0,0,85,9,83,16,83,17,4,0,53,1,0,0,0, + 0,0,0,110,21,91,35,0,0,0,0,0,0,0,0,85, + 9,83,17,83,12,4,0,53,1,0,0,0,0,0,0,110, + 22,91,35,0,0,0,0,0,0,0,0,85,9,83,12,83, + 32,4,0,53,1,0,0,0,0,0,0,110,3,91,37,0, + 0,0,0,0,0,0,0,85,9,83,32,83,33,4,0,53, + 1,0,0,0,0,0,0,110,23,91,37,0,0,0,0,0, + 0,0,0,85,9,83,33,83,13,4,0,53,1,0,0,0, + 0,0,0,110,24,91,37,0,0,0,0,0,0,0,0,85, + 9,83,13,83,34,4,0,53,1,0,0,0,0,0,0,110, + 25,91,35,0,0,0,0,0,0,0,0,85,9,83,35,83, + 24,4,0,53,1,0,0,0,0,0,0,110,26,85,23,85, + 24,45,0,0,0,85,25,45,0,0,0,110,27,30,0,85, + 1,82,23,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,85,23,53,1,0,0,0,0,0,0,110, + 28,91,31,0,0,0,0,0,0,0,0,85,28,53,1,0, + 0,0,0,0,0,85,23,58,119,0,0,97,14,0,0,91, + 7,0,0,0,0,0,0,0,0,83,5,85,0,60,2,14, + 0,51,2,85,0,83,2,57,2,101,1,30,0,85,27,85, + 23,45,10,0,0,110,29,91,41,0,0,0,0,0,0,0, + 0,85,1,82,23,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,29,53,1,0,0,0,0,0, + 0,53,1,0,0,0,0,0,0,110,30,91,31,0,0,0, + 0,0,0,0,0,85,30,53,1,0,0,0,0,0,0,85, + 29,58,119,0,0,97,14,0,0,91,7,0,0,0,0,0, + 0,0,0,83,5,85,0,60,2,14,0,51,2,85,0,83, + 2,57,2,101,1,30,0,85,17,83,36,45,1,0,0,40, + 0,0,0,0,0,0,0,97,17,0,0,85,28,82,43,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,20,171,1,0,0,0,0,0,0,125,24,116,17,0,0, - 0,0,0,0,0,0,124,24,171,1,0,0,0,0,0,0, - 124,20,107,55,0,0,114,16,116,7,0,0,0,0,0,0, - 0,0,100,4,124,0,155,2,157,2,124,0,172,2,171,2, - 0,0,0,0,0,0,130,1,9,0,116,17,0,0,0,0, - 0,0,0,0,124,1,106,15,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,124,9,124,20,122,10, - 0,0,171,1,0,0,0,0,0,0,171,1,0,0,0,0, - 0,0,124,9,124,20,122,10,0,0,107,55,0,0,114,16, - 116,7,0,0,0,0,0,0,0,0,100,4,124,0,155,2, - 157,2,124,0,172,2,171,2,0,0,0,0,0,0,130,1, - 9,0,124,14,100,28,122,1,0,0,114,17,124,24,106,33, + 0,53,0,0,0,0,0,0,0,110,28,79,18,30,0,85, + 28,82,43,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,37,53,1,0,0,0,0,0,0,110, + 28,85,28,82,51,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,83,39,91,52,0,0,0,0,0, + 0,0,0,53,2,0,0,0,0,0,0,110,28,91,54,0, + 0,0,0,0,0,0,0,82,56,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,34,0,85,0,85, + 28,53,2,0,0,0,0,0,0,110,31,85,3,91,58,0, + 0,0,0,0,0,0,0,58,88,0,0,100,21,0,0,85, + 22,91,58,0,0,0,0,0,0,0,0,58,88,0,0,100, + 11,0,0,85,26,91,58,0,0,0,0,0,0,0,0,58, + 88,0,0,71,1,97,90,0,0,85,30,40,0,0,0,0, + 0,0,0,71,1,97,59,0,0,91,31,0,0,0,0,0, + 0,0,0,85,30,53,1,0,0,0,0,0,0,83,25,58, + 18,0,0,97,14,0,0,91,7,0,0,0,0,0,0,0, + 0,83,40,85,0,60,2,14,0,51,2,85,0,83,2,57, + 2,101,1,91,37,0,0,0,0,0,0,0,0,85,30,83, + 0,83,4,4,0,53,1,0,0,0,0,0,0,110,32,91, + 37,0,0,0,0,0,0,0,0,85,30,83,4,83,25,4, + 0,53,1,0,0,0,0,0,0,110,33,91,31,0,0,0, + 0,0,0,0,0,85,30,53,1,0,0,0,0,0,0,83, + 25,85,33,45,0,0,0,58,18,0,0,97,14,0,0,91, + 7,0,0,0,0,0,0,0,0,83,40,85,0,60,2,14, + 0,51,2,85,0,83,2,57,2,101,1,85,32,91,60,0, + 0,0,0,0,0,0,0,58,88,0,0,97,198,0,0,91, + 31,0,0,0,0,0,0,0,0,85,30,53,1,0,0,0, + 0,0,0,83,25,45,10,0,0,83,18,45,6,0,0,83, + 3,58,119,0,0,97,14,0,0,91,7,0,0,0,0,0, + 0,0,0,83,40,85,0,60,2,14,0,51,2,85,0,83, + 2,57,2,101,1,91,31,0,0,0,0,0,0,0,0,85, + 30,53,1,0,0,0,0,0,0,83,25,45,10,0,0,83, + 18,45,2,0,0,110,34,85,34,83,41,58,148,0,0,97, + 14,0,0,91,7,0,0,0,0,0,0,0,0,83,40,85, + 0,60,2,14,0,51,2,85,0,83,2,57,2,101,1,83, + 3,83,0,75,31,110,35,91,65,0,0,0,0,0,0,0, + 0,85,35,82,67,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,83,42,91,69,0,0,0,0,0, + 0,0,0,85,34,83,41,53,2,0,0,0,0,0,0,14, + 0,83,43,51,3,85,30,83,25,83,44,57,3,53,1,0, + 0,0,0,0,0,110,36,85,3,91,58,0,0,0,0,0, + 0,0,0,58,88,0,0,97,17,0,0,85,36,82,71,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,171,0,0,0,0,0,0,0,125,24,110,18,9,0, - 124,24,106,33,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,100,29,171,1,0,0,0,0,0,0, - 125,24,124,24,106,41,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,100,31,116,42,0,0,0,0, - 0,0,0,0,171,2,0,0,0,0,0,0,125,24,116,45, - 0,0,0,0,0,0,0,0,106,46,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,124,0,124,24, - 171,2,0,0,0,0,0,0,125,25,124,25,124,15,124,19, - 124,5,124,23,124,16,124,17,124,18,102,8,125,26,124,26, - 124,12,124,24,60,0,0,0,124,13,100,32,122,13,0,0, - 125,13,144,1,140,216,9,0,124,1,106,11,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, - 171,1,0,0,0,0,0,0,1,0,9,0,100,0,100,0, - 100,0,171,2,0,0,0,0,0,0,1,0,116,49,0,0, - 0,0,0,0,0,0,106,50,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,100,33,127,13,124,0, - 171,3,0,0,0,0,0,0,1,0,127,12,83,0,35,0, - 116,4,0,0,0,0,0,0,0,0,36,0,114,17,1,0, - 116,7,0,0,0,0,0,0,0,0,100,1,124,0,155,2, - 157,2,124,0,172,2,171,2,0,0,0,0,0,0,130,1, - 119,0,120,3,89,0,119,1,35,0,116,4,0,0,0,0, - 0,0,0,0,36,0,114,17,1,0,116,7,0,0,0,0, - 0,0,0,0,100,4,124,0,155,2,157,2,124,0,172,2, - 171,2,0,0,0,0,0,0,130,1,119,0,120,3,89,0, - 119,1,35,0,116,4,0,0,0,0,0,0,0,0,36,0, - 114,17,1,0,116,7,0,0,0,0,0,0,0,0,100,4, - 124,0,155,2,157,2,124,0,172,2,171,2,0,0,0,0, - 0,0,130,1,119,0,120,3,89,0,119,1,35,0,116,4, - 0,0,0,0,0,0,0,0,36,0,114,17,1,0,116,7, - 0,0,0,0,0,0,0,0,100,4,124,0,155,2,157,2, - 124,0,172,2,171,2,0,0,0,0,0,0,130,1,119,0, - 120,3,89,0,119,1,35,0,116,4,0,0,0,0,0,0, - 0,0,36,0,114,17,1,0,116,7,0,0,0,0,0,0, - 0,0,100,4,124,0,155,2,157,2,124,0,172,2,171,2, - 0,0,0,0,0,0,130,1,119,0,120,3,89,0,119,1, - 35,0,116,4,0,0,0,0,0,0,0,0,36,0,114,17, - 1,0,116,7,0,0,0,0,0,0,0,0,100,4,124,0, - 155,2,157,2,124,0,172,2,171,2,0,0,0,0,0,0, - 130,1,119,0,120,3,89,0,119,1,35,0,116,4,0,0, - 0,0,0,0,0,0,36,0,114,17,1,0,116,7,0,0, - 0,0,0,0,0,0,100,4,124,0,155,2,157,2,124,0, - 172,2,171,2,0,0,0,0,0,0,130,1,119,0,120,3, - 89,0,119,1,35,0,116,34,0,0,0,0,0,0,0,0, - 36,0,114,40,1,0,124,24,106,33,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,100,30,171,1, - 0,0,0,0,0,0,106,37,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,116,38,0,0,0,0, - 0,0,0,0,171,1,0,0,0,0,0,0,125,24,89,0, - 144,1,140,113,119,0,120,3,89,0,119,1,35,0,124,1, - 106,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,124,2,171,1,0,0,0,0,0,0,1,0, - 119,0,120,3,89,0,119,1,35,0,49,0,115,1,119,2, - 1,0,89,0,1,0,1,0,144,1,140,56,120,3,89,0, - 119,1,41,34,78,122,21,99,97,110,39,116,32,111,112,101, - 110,32,90,105,112,32,102,105,108,101,58,32,114,17,0,0, - 0,114,126,0,0,0,250,21,99,97,110,39,116,32,114,101, - 97,100,32,90,105,112,32,102,105,108,101,58,32,233,4,0, - 0,0,114,1,0,0,0,122,16,110,111,116,32,97,32,90, - 105,112,32,102,105,108,101,58,32,122,18,99,111,114,114,117, - 112,116,32,90,105,112,32,102,105,108,101,58,32,233,12,0, - 0,0,233,16,0,0,0,233,20,0,0,0,122,28,98,97, - 100,32,99,101,110,116,114,97,108,32,100,105,114,101,99,116, - 111,114,121,32,115,105,122,101,58,32,122,30,98,97,100,32, - 99,101,110,116,114,97,108,32,100,105,114,101,99,116,111,114, - 121,32,111,102,102,115,101,116,58,32,122,38,98,97,100,32, - 99,101,110,116,114,97,108,32,100,105,114,101,99,116,111,114, - 121,32,115,105,122,101,32,111,114,32,111,102,102,115,101,116, - 58,32,233,46,0,0,0,250,27,69,79,70,32,114,101,97, - 100,32,119,104,101,114,101,32,110,111,116,32,101,120,112,101, - 99,116,101,100,115,4,0,0,0,80,75,1,2,233,8,0, - 0,0,233,10,0,0,0,233,14,0,0,0,233,24,0,0, - 0,233,28,0,0,0,233,30,0,0,0,233,32,0,0,0, - 233,34,0,0,0,233,42,0,0,0,122,25,98,97,100,32, - 108,111,99,97,108,32,104,101,97,100,101,114,32,111,102,102, - 115,101,116,58,32,105,0,8,0,0,218,5,97,115,99,105, - 105,218,6,108,97,116,105,110,49,218,1,47,114,6,0,0, - 0,122,33,122,105,112,105,109,112,111,114,116,58,32,102,111, - 117,110,100,32,123,125,32,110,97,109,101,115,32,105,110,32, - 123,33,114,125,41,26,218,3,95,105,111,218,9,111,112,101, - 110,95,99,111,100,101,114,30,0,0,0,114,4,0,0,0, - 218,4,116,101,108,108,218,4,115,101,101,107,218,20,69,78, - 68,95,67,69,78,84,82,65,76,95,68,73,82,95,83,73, - 90,69,218,4,114,101,97,100,114,74,0,0,0,218,18,83, - 84,82,73,78,71,95,69,78,68,95,65,82,67,72,73,86, - 69,218,3,109,97,120,218,15,77,65,88,95,67,79,77,77, - 69,78,84,95,76,69,78,218,5,114,102,105,110,100,114,3, - 0,0,0,218,8,69,79,70,69,114,114,111,114,114,2,0, - 0,0,114,87,0,0,0,218,18,85,110,105,99,111,100,101, - 68,101,99,111,100,101,69,114,114,111,114,218,9,116,114,97, - 110,115,108,97,116,101,218,11,99,112,52,51,55,95,116,97, - 98,108,101,114,25,0,0,0,114,26,0,0,0,114,27,0, - 0,0,114,39,0,0,0,114,52,0,0,0,114,108,0,0, - 0,41,27,114,38,0,0,0,218,2,102,112,218,12,115,116, - 97,114,116,95,111,102,102,115,101,116,218,15,104,101,97,100, - 101,114,95,112,111,115,105,116,105,111,110,218,6,98,117,102, - 102,101,114,218,9,102,105,108,101,95,115,105,122,101,218,17, - 109,97,120,95,99,111,109,109,101,110,116,95,115,116,97,114, - 116,218,4,100,97,116,97,218,3,112,111,115,218,11,104,101, - 97,100,101,114,95,115,105,122,101,218,13,104,101,97,100,101, - 114,95,111,102,102,115,101,116,218,10,97,114,99,95,111,102, - 102,115,101,116,114,45,0,0,0,218,5,99,111,117,110,116, - 218,5,102,108,97,103,115,218,8,99,111,109,112,114,101,115, - 115,218,4,116,105,109,101,218,4,100,97,116,101,218,3,99, - 114,99,218,9,100,97,116,97,95,115,105,122,101,218,9,110, - 97,109,101,95,115,105,122,101,218,10,101,120,116,114,97,95, - 115,105,122,101,218,12,99,111,109,109,101,110,116,95,115,105, - 122,101,218,11,102,105,108,101,95,111,102,102,115,101,116,114, - 49,0,0,0,114,18,0,0,0,218,1,116,115,27,0,0, - 0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,114,13,0,0, - 0,114,36,0,0,0,114,36,0,0,0,79,1,0,0,115, - 213,5,0,0,128,0,240,2,3,5,80,1,220,13,16,143, - 93,137,93,152,55,211,13,35,136,2,242,8,0,10,12,240, - 8,0,24,26,151,119,145,119,147,121,136,12,240,2,110,1, - 9,34,240,2,5,13,88,1,216,16,18,151,7,145,7,212, - 25,45,208,24,45,168,113,212,16,49,216,34,36,167,39,161, - 39,163,41,144,15,216,25,27,159,23,153,23,212,33,53,211, - 25,54,144,6,244,6,0,16,19,144,54,139,123,212,30,50, - 210,15,50,220,22,36,208,39,60,184,87,184,75,208,37,72, - 200,119,212,22,87,208,16,87,216,15,21,144,98,144,113,136, - 122,212,29,47,210,15,47,240,6,5,17,55,216,20,22,151, - 71,145,71,152,65,152,113,148,77,216,32,34,167,7,161,7, - 163,9,144,73,244,8,0,37,40,168,9,180,79,209,40,67, - 220,40,60,241,3,1,41,61,216,62,63,243,3,1,37,65, - 1,208,16,33,240,4,5,17,55,216,20,22,151,71,145,71, - 208,28,45,212,20,46,216,27,29,159,55,153,55,155,57,144, - 68,240,8,0,23,27,151,106,145,106,212,33,51,211,22,52, - 144,3,216,19,22,152,17,146,55,220,26,40,208,43,59,184, - 71,184,59,208,41,71,216,46,53,244,3,1,27,55,240,0, - 1,21,55,224,25,29,152,99,160,35,212,38,58,209,34,58, - 208,25,59,144,6,220,19,22,144,118,147,59,212,34,54,210, - 19,54,220,26,40,208,43,61,184,103,184,91,208,41,73,216, - 46,53,244,3,1,27,55,240,0,1,21,55,224,34,43,172, - 99,176,36,171,105,209,34,55,184,35,209,34,61,144,15,228, - 26,40,168,22,176,2,176,50,168,29,211,26,55,136,75,220, - 28,42,168,54,176,34,176,82,168,61,211,28,57,136,77,216, - 15,30,160,27,210,15,44,220,22,36,208,39,67,192,71,192, - 59,208,37,79,208,86,93,212,22,94,208,16,94,216,15,30, - 160,29,210,15,46,220,22,36,208,39,69,192,103,192,91,208, - 37,81,208,88,95,212,22,96,208,16,96,216,12,27,152,123, - 209,12,42,136,79,216,25,40,168,61,209,25,56,136,74,216, - 15,25,152,65,138,126,220,22,36,208,39,77,200,103,200,91, - 208,37,89,208,96,103,212,22,104,208,16,104,224,20,22,136, - 69,224,20,21,136,69,240,2,3,13,88,1,216,16,18,151, - 7,145,7,152,15,212,16,40,240,6,0,19,23,216,25,27, - 159,23,153,23,160,18,155,27,144,6,220,19,22,144,118,147, - 59,160,17,146,63,220,26,34,208,35,64,211,26,65,208,20, - 65,224,19,25,152,34,152,49,144,58,160,29,210,19,46,217, - 20,25,220,19,22,144,118,147,59,160,34,210,19,36,220,26, - 34,208,35,64,211,26,65,208,20,65,220,24,38,160,118,168, - 97,176,2,160,124,211,24,52,144,5,220,27,41,168,38,176, - 18,176,66,168,45,211,27,56,144,8,220,23,37,160,102,168, - 82,176,2,160,109,211,23,52,144,4,220,23,37,160,102,168, - 82,176,2,160,109,211,23,52,144,4,220,22,36,160,86,168, - 66,168,114,160,93,211,22,51,144,3,220,28,42,168,54,176, - 34,176,82,168,61,211,28,57,144,9,220,28,42,168,54,176, - 34,176,82,168,61,211,28,57,144,9,220,28,42,168,54,176, - 34,176,82,168,61,211,28,57,144,9,220,29,43,168,70,176, - 50,176,98,168,77,211,29,58,144,10,220,31,45,168,102,176, - 82,184,2,168,109,211,31,60,144,12,220,30,44,168,86,176, - 66,176,114,168,93,211,30,59,144,11,216,30,39,168,42,209, - 30,52,176,124,209,30,67,144,11,216,19,30,160,29,210,19, - 46,220,26,40,208,43,68,192,87,192,75,208,41,80,208,87, - 94,212,26,95,208,20,95,216,16,27,152,122,209,16,41,144, - 11,240,4,3,17,92,1,216,27,29,159,55,153,55,160,57, - 211,27,45,144,68,244,6,0,20,23,144,116,147,57,160,9, - 210,19,41,220,26,40,208,43,64,192,23,192,11,208,41,76, - 208,83,90,212,26,91,208,20,91,240,8,4,17,92,1,220, - 23,26,152,50,159,55,153,55,160,59,176,25,209,35,58,211, - 27,59,211,23,60,192,11,200,105,209,64,87,210,23,87,220, - 30,44,208,47,68,192,87,192,75,208,45,80,208,87,94,212, - 30,95,208,24,95,240,3,0,24,88,1,240,10,0,20,25, - 152,53,146,61,224,27,31,159,59,153,59,155,61,145,68,240, - 6,3,21,76,1,216,31,35,159,123,153,123,168,55,211,31, - 51,152,4,240,8,0,24,28,151,124,145,124,160,67,172,24, - 211,23,50,144,4,220,23,42,215,23,53,209,23,53,176,103, - 184,116,211,23,68,144,4,216,21,25,152,56,160,89,176,9, - 184,59,200,4,200,100,208,84,87,208,20,88,144,1,216,30, - 31,144,5,144,100,145,11,216,16,21,152,17,145,10,144,5, - 241,109,1,0,19,23,240,12,0,21,26,240,100,1,0,13, - 15,143,71,137,71,144,76,213,12,33,247,103,3,0,10,12, - 244,104,3,0,5,15,215,4,31,209,4,31,208,32,67,192, - 85,200,71,212,4,84,216,11,16,128,76,248,244,113,3,0, - 12,19,242,0,1,5,80,1,220,14,28,208,31,52,176,87, - 176,75,208,29,64,192,119,212,14,79,208,8,79,240,3,1, - 5,80,1,251,244,26,0,20,27,242,0,1,13,88,1,220, - 22,36,208,39,60,184,87,184,75,208,37,72,200,119,212,22, - 87,208,16,87,240,3,1,13,88,1,251,244,20,0,24,31, - 242,0,2,17,55,220,26,40,208,43,64,192,23,192,11,208, - 41,76,216,46,53,244,3,1,27,55,240,0,1,21,55,240, - 3,2,17,55,251,244,16,0,24,31,242,0,2,17,55,220, - 26,40,208,43,64,192,23,192,11,208,41,76,216,46,53,244, - 3,1,27,55,240,0,1,21,55,240,3,2,17,55,251,244, - 58,0,20,27,242,0,1,13,88,1,220,22,36,208,39,60, - 184,87,184,75,208,37,72,200,119,212,22,87,208,16,87,240, - 3,1,13,88,1,251,244,58,0,24,31,242,0,1,17,92, - 1,220,26,40,208,43,64,192,23,192,11,208,41,76,208,83, - 90,212,26,91,208,20,91,240,3,1,17,92,1,251,244,20, - 0,24,31,242,0,1,17,92,1,220,26,40,208,43,64,192, - 23,192,11,208,41,76,208,83,90,212,26,91,208,20,91,240, - 3,1,17,92,1,251,244,20,0,28,46,242,0,1,21,76, + 0,83,3,53,1,0,0,0,0,0,0,110,3,85,22,91, + 58,0,0,0,0,0,0,0,0,58,88,0,0,97,17,0, + 0,85,36,82,71,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,83,3,53,1,0,0,0,0,0, + 0,110,22,85,26,91,58,0,0,0,0,0,0,0,0,58, + 88,0,0,97,17,0,0,85,36,82,71,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,3,53, + 1,0,0,0,0,0,0,110,26,79,41,85,30,83,25,85, + 33,45,0,0,0,83,0,4,0,110,30,85,30,40,0,0, + 0,0,0,0,0,97,3,0,0,71,1,77,59,0,0,91, + 72,0,0,0,0,0,0,0,0,82,74,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,83, + 45,85,31,53,2,0,0,0,0,0,0,32,0,85,26,85, + 12,58,148,0,0,97,14,0,0,91,7,0,0,0,0,0, + 0,0,0,83,46,85,0,60,2,14,0,51,2,85,0,83, + 2,57,2,101,1,85,26,85,14,45,13,0,0,110,26,85, + 31,85,18,85,22,85,3,85,26,85,19,85,20,85,21,52, + 8,110,37,85,37,85,15,85,28,39,0,0,0,85,16,83, + 47,45,13,0,0,110,16,71,3,77,124,0,0,85,1,82, + 11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,85,2,53,1,0,0,0,0,0,0,32,0,30, + 0,83,0,83,0,83,0,53,2,0,0,0,0,0,0,32, + 0,91,72,0,0,0,0,0,0,0,0,82,74,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,83,48,87,16,85,0,53,3,0,0,0,0,0,0,32, + 0,87,15,36,0,33,0,91,4,0,0,0,0,0,0,0, + 0,7,0,97,15,0,0,32,0,91,7,0,0,0,0,0, + 0,0,0,83,1,85,0,60,2,14,0,51,2,85,0,83, + 2,57,2,101,1,102,0,61,3,31,0,102,1,33,0,91, + 4,0,0,0,0,0,0,0,0,7,0,97,15,0,0,32, + 0,91,7,0,0,0,0,0,0,0,0,83,5,85,0,60, + 2,14,0,51,2,85,0,83,2,57,2,101,1,102,0,61, + 3,31,0,102,1,33,0,91,4,0,0,0,0,0,0,0, + 0,7,0,97,15,0,0,32,0,91,7,0,0,0,0,0, + 0,0,0,83,5,85,0,60,2,14,0,51,2,85,0,83, + 2,57,2,101,1,102,0,61,3,31,0,102,1,33,0,91, + 4,0,0,0,0,0,0,0,0,7,0,97,15,0,0,32, + 0,91,7,0,0,0,0,0,0,0,0,83,5,85,0,60, + 2,14,0,51,2,85,0,83,2,57,2,101,1,102,0,61, + 3,31,0,102,1,33,0,91,4,0,0,0,0,0,0,0, + 0,7,0,97,15,0,0,32,0,91,7,0,0,0,0,0, + 0,0,0,83,5,85,0,60,2,14,0,51,2,85,0,83, + 2,57,2,101,1,102,0,61,3,31,0,102,1,33,0,91, + 4,0,0,0,0,0,0,0,0,7,0,97,15,0,0,32, + 0,91,7,0,0,0,0,0,0,0,0,83,5,85,0,60, + 2,14,0,51,2,85,0,83,2,57,2,101,1,102,0,61, + 3,31,0,102,1,33,0,91,44,0,0,0,0,0,0,0, + 0,7,0,97,40,0,0,32,0,85,28,82,43,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83, + 38,53,1,0,0,0,0,0,0,82,47,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,91,48,0, + 0,0,0,0,0,0,0,53,1,0,0,0,0,0,0,110, + 28,31,0,71,2,78,227,102,0,61,3,31,0,102,1,33, + 0,85,1,82,11,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,2,53,1,0,0,0,0,0, + 0,32,0,102,0,61,3,31,0,102,1,33,0,44,0,40, + 0,0,0,0,0,0,0,100,1,0,0,102,2,32,0,31, + 0,32,0,32,0,71,1,78,28,61,3,31,0,102,1,41, + 49,78,122,21,99,97,110,39,116,32,111,112,101,110,32,90, + 105,112,32,102,105,108,101,58,32,114,24,0,0,0,114,1, + 0,0,0,114,146,0,0,0,250,21,99,97,110,39,116,32, + 114,101,97,100,32,90,105,112,32,102,105,108,101,58,32,122, + 29,99,111,114,114,117,112,116,32,90,105,112,54,52,32,102, + 105,108,101,58,32,69,120,112,101,99,116,101,100,32,122,40, + 32,98,121,116,101,32,122,105,112,54,52,32,99,101,110,116, + 114,97,108,32,100,105,114,101,99,116,111,114,121,44,32,98, + 117,116,32,114,101,97,100,32,122,7,32,98,121,116,101,115, + 46,233,40,0,0,0,233,48,0,0,0,114,19,0,0,0, + 233,24,0,0,0,114,9,0,0,0,122,18,99,111,114,114, + 117,112,116,32,90,105,112,32,102,105,108,101,58,32,233,12, + 0,0,0,233,16,0,0,0,114,20,0,0,0,233,8,0, + 0,0,233,10,0,0,0,122,16,110,111,116,32,97,32,90, + 105,112,32,102,105,108,101,58,32,122,28,98,97,100,32,99, + 101,110,116,114,97,108,32,100,105,114,101,99,116,111,114,121, + 32,115,105,122,101,58,32,122,30,98,97,100,32,99,101,110, + 116,114,97,108,32,100,105,114,101,99,116,111,114,121,32,111, + 102,102,115,101,116,58,32,122,38,98,97,100,32,99,101,110, + 116,114,97,108,32,100,105,114,101,99,116,111,114,121,32,115, + 105,122,101,32,111,114,32,111,102,102,115,101,116,58,32,233, + 46,0,0,0,233,4,0,0,0,250,27,69,79,70,32,114, + 101,97,100,32,119,104,101,114,101,32,110,111,116,32,101,120, + 112,101,99,116,101,100,115,4,0,0,0,80,75,1,2,122, + 24,109,105,115,109,97,116,99,104,101,100,32,110,117,109,95, + 101,110,116,114,105,101,115,58,32,122,11,32,115,104,111,117, + 108,100,32,98,101,32,122,4,32,105,110,32,233,14,0,0, + 0,233,28,0,0,0,233,30,0,0,0,233,34,0,0,0, + 233,42,0,0,0,105,0,8,0,0,218,5,97,115,99,105, + 105,218,6,108,97,116,105,110,49,218,1,47,122,25,99,97, + 110,39,116,32,114,101,97,100,32,104,101,97,100,101,114,32, + 101,120,116,114,97,58,32,233,3,0,0,0,218,1,60,218, + 1,81,41,1,218,6,111,102,102,115,101,116,122,54,122,105, + 112,105,109,112,111,114,116,58,32,115,117,115,112,101,99,116, + 101,100,32,122,105,112,54,52,32,98,117,116,32,110,111,32, + 122,105,112,54,52,32,101,120,116,114,97,32,102,111,114,32, + 123,33,114,125,122,25,98,97,100,32,108,111,99,97,108,32, + 104,101,97,100,101,114,32,111,102,102,115,101,116,58,32,114, + 7,0,0,0,122,33,122,105,112,105,109,112,111,114,116,58, + 32,102,111,117,110,100,32,123,125,32,110,97,109,101,115,32, + 105,110,32,123,33,114,125,41,38,218,3,95,105,111,218,9, + 111,112,101,110,95,99,111,100,101,114,37,0,0,0,114,5, + 0,0,0,218,4,116,101,108,108,218,4,115,101,101,107,218, + 15,77,65,88,95,67,79,77,77,69,78,84,95,76,69,78, + 218,20,69,78,68,95,67,69,78,84,82,65,76,95,68,73, + 82,95,83,73,90,69,218,23,69,78,68,95,67,69,78,84, + 82,65,76,95,68,73,82,95,83,73,90,69,95,54,52,218, + 31,69,78,68,95,67,69,78,84,82,65,76,95,68,73,82, + 95,76,79,67,65,84,79,82,95,83,73,90,69,95,54,52, + 218,3,109,97,120,218,4,114,101,97,100,218,5,114,102,105, + 110,100,218,18,83,84,82,73,78,71,95,69,78,68,95,65, + 82,67,72,73,86,69,218,17,83,84,82,73,78,71,95,69, + 78,68,95,90,73,80,95,54,52,114,81,0,0,0,114,4, + 0,0,0,114,3,0,0,0,114,2,0,0,0,218,8,69, + 79,70,69,114,114,111,114,218,10,109,101,109,111,114,121,118, + 105,101,119,114,98,0,0,0,218,18,85,110,105,99,111,100, + 101,68,101,99,111,100,101,69,114,114,111,114,218,9,116,114, + 97,110,115,108,97,116,101,218,11,99,112,52,51,55,95,116, + 97,98,108,101,114,32,0,0,0,114,33,0,0,0,114,34, + 0,0,0,114,44,0,0,0,218,10,77,65,88,95,85,73, + 78,84,51,50,218,15,90,73,80,54,52,95,69,88,84,82, + 65,95,84,65,71,218,6,115,116,114,117,99,116,218,4,108, + 105,115,116,218,11,117,110,112,97,99,107,95,102,114,111,109, + 218,3,109,105,110,114,135,0,0,0,114,57,0,0,0,114, + 121,0,0,0,41,38,114,43,0,0,0,218,2,102,112,218, + 12,115,116,97,114,116,95,111,102,102,115,101,116,218,9,102, + 105,108,101,95,115,105,122,101,218,26,109,97,120,95,99,111, + 109,109,101,110,116,95,112,108,117,115,95,100,105,114,115,95, + 115,105,122,101,218,17,109,97,120,95,99,111,109,109,101,110, + 116,95,115,116,97,114,116,218,4,100,97,116,97,218,3,112, + 111,115,218,5,112,111,115,54,52,218,6,98,117,102,102,101, + 114,218,15,104,101,97,100,101,114,95,112,111,115,105,116,105, + 111,110,218,22,99,101,110,116,114,97,108,95,100,105,114,101, + 99,116,111,114,121,95,115,105,122,101,218,26,99,101,110,116, + 114,97,108,95,100,105,114,101,99,116,111,114,121,95,112,111, + 115,105,116,105,111,110,218,11,110,117,109,95,101,110,116,114, + 105,101,115,218,10,97,114,99,95,111,102,102,115,101,116,114, + 132,0,0,0,218,5,99,111,117,110,116,218,5,102,108,97, + 103,115,218,8,99,111,109,112,114,101,115,115,218,4,116,105, + 109,101,218,4,100,97,116,101,218,3,99,114,99,218,9,100, + 97,116,97,95,115,105,122,101,218,9,110,97,109,101,95,115, + 105,122,101,218,10,101,120,116,114,97,95,115,105,122,101,218, + 12,99,111,109,109,101,110,116,95,115,105,122,101,218,11,102, + 105,108,101,95,111,102,102,115,101,116,218,11,104,101,97,100, + 101,114,95,115,105,122,101,114,54,0,0,0,218,14,101,120, + 116,114,97,95,100,97,116,97,95,108,101,110,218,10,101,120, + 116,114,97,95,100,97,116,97,114,25,0,0,0,218,3,116, + 97,103,218,4,115,105,122,101,218,16,110,117,109,95,101,120, + 116,114,97,95,118,97,108,117,101,115,114,198,0,0,0,218, + 6,118,97,108,117,101,115,218,1,116,115,38,0,0,0,32, + 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, + 32,32,32,32,32,114,17,0,0,0,114,42,0,0,0,114, + 42,0,0,0,87,1,0,0,115,13,8,0,0,128,0,240, + 2,3,5,80,1,220,13,16,143,93,138,93,152,55,211,13, + 35,136,2,242,8,0,10,12,240,8,0,24,26,151,119,145, + 119,147,121,136,12,240,2,65,3,9,34,240,4,5,13,51, + 216,16,18,151,7,145,7,152,1,152,49,148,13,216,28,30, + 159,71,153,71,155,73,144,9,244,10,0,17,32,212,34,54, + 209,16,54,220,16,39,241,3,1,17,40,220,42,73,241,3, + 1,17,74,1,240,3,0,13,39,244,6,0,33,36,160,73, + 209,36,74,200,65,211,32,78,208,12,29,240,2,5,13,51, + 216,16,18,151,7,145,7,208,24,41,212,16,42,216,23,25, + 151,119,145,119,208,31,57,211,23,58,144,4,240,8,0,19, + 23,151,42,145,42,212,29,47,211,18,48,136,67,216,20,24, + 151,74,145,74,212,31,48,211,20,49,136,69,224,16,21,152, + 17,147,10,152,117,212,37,60,209,31,60,212,61,92,209,31, + 92,208,94,97,211,31,97,224,25,29,160,69,212,44,67,209, + 36,67,208,25,68,144,6,220,19,22,144,118,147,59,212,34, + 57,211,19,57,220,26,40,216,26,55,212,56,79,208,55,80, + 240,0,1,81,1,61,220,61,64,192,22,187,91,184,77,200, + 23,240,3,1,25,82,1,224,29,36,241,7,3,27,38,240, + 0,3,21,38,240,8,0,35,44,172,99,176,36,171,105,209, + 34,55,184,37,209,34,63,144,15,228,41,55,184,6,184,114, + 192,34,184,13,211,41,70,208,16,38,220,45,59,184,70,192, + 50,192,98,184,77,211,45,74,208,16,42,220,30,44,168,86, + 176,66,176,114,168,93,211,30,59,145,11,216,17,20,152,1, + 147,24,216,25,29,160,35,212,38,58,209,34,58,208,25,59, + 144,6,220,19,22,144,118,147,59,212,34,54,211,19,54,220, + 26,40,208,43,61,184,103,185,91,208,41,73,216,46,53,241, + 3,1,27,55,240,0,1,21,55,240,6,0,35,44,172,99, + 176,36,171,105,209,34,55,184,35,209,34,61,144,15,244,8, + 0,42,56,184,6,184,114,192,34,184,13,211,41,70,208,16, + 38,220,45,59,184,70,192,50,192,98,184,77,211,45,74,208, + 16,42,220,30,44,168,86,176,65,176,98,168,92,211,30,58, + 145,11,244,10,0,23,37,208,39,55,184,7,177,123,208,37, + 67,216,42,49,241,3,1,23,51,240,0,1,17,51,240,14, + 0,16,31,211,15,55,220,22,36,208,39,67,192,71,193,59, + 208,37,79,208,86,93,209,22,94,208,16,94,216,15,30,211, + 15,59,220,22,36,208,39,69,192,103,193,91,208,37,81,208, + 88,95,209,22,96,208,16,96,216,12,27,209,12,53,136,79, + 240,8,0,26,41,209,25,69,136,74,216,15,25,152,65,139, + 126,220,22,36,208,39,77,200,103,201,91,208,37,89,208,96, + 103,209,22,104,208,16,104,224,20,22,136,69,224,20,21,136, + 69,240,2,3,13,88,1,216,16,18,151,7,145,7,152,15, + 212,16,40,240,6,0,19,23,216,25,27,159,23,153,23,160, + 18,155,27,144,6,220,19,22,144,118,147,59,160,17,147,63, + 220,26,34,208,35,64,211,26,65,208,20,65,224,19,25,152, + 34,152,49,144,58,160,29,211,19,46,216,23,28,160,11,211, + 23,43,220,30,44,216,30,54,176,117,176,103,184,91,200,27, + 200,13,208,85,89,208,90,97,209,89,100,208,28,101,216,33, + 40,241,5,3,31,26,240,0,3,25,26,241,8,0,21,26, + 220,19,22,144,118,147,59,160,34,211,19,36,220,26,34,208, + 35,64,211,26,65,208,20,65,220,24,38,160,118,168,97,176, + 2,160,124,211,24,52,144,5,220,27,41,168,38,176,18,176, + 66,168,45,211,27,56,144,8,220,23,37,160,102,168,82,176, + 2,160,109,211,23,52,144,4,220,23,37,160,102,168,82,176, + 2,160,109,211,23,52,144,4,220,22,36,160,86,168,66,168, + 114,160,93,211,22,51,144,3,220,28,42,168,54,176,34,176, + 82,168,61,211,28,57,144,9,220,28,42,168,54,176,34,176, + 82,168,61,211,28,57,144,9,220,28,42,168,54,176,34,176, + 82,168,61,211,28,57,144,9,220,29,43,168,70,176,50,176, + 98,168,77,211,29,58,144,10,220,31,45,168,102,176,82,184, + 2,168,109,211,31,60,144,12,220,30,44,168,86,176,66,176, + 114,168,93,211,30,59,144,11,216,30,39,168,42,209,30,52, + 176,124,209,30,67,144,11,240,4,3,17,92,1,216,27,29, + 159,55,153,55,160,57,211,27,45,144,68,244,6,0,20,23, + 144,116,147,57,160,9,211,19,41,220,26,40,208,43,64,192, + 23,193,11,208,41,76,208,83,90,209,26,91,208,20,91,240, + 8,7,17,92,1,216,37,48,176,57,209,37,60,144,78,220, + 33,43,168,66,175,71,169,71,176,78,211,44,67,211,33,68, + 144,74,228,23,26,152,58,147,127,168,46,211,23,56,220,30, + 44,208,47,68,192,87,193,75,208,45,80,208,87,94,209,30, + 95,208,24,95,240,3,0,24,57,240,10,0,20,25,152,53, + 151,61,224,27,31,159,59,153,59,155,61,145,68,240,6,3, + 21,76,1,216,31,35,159,123,153,123,168,55,211,31,51,152, + 4,240,8,0,24,28,151,124,145,124,160,67,172,24,211,23, + 50,144,4,220,23,42,215,23,53,210,23,53,176,103,184,116, + 211,23,68,144,4,240,8,0,21,30,164,26,211,20,43,216, + 20,29,164,26,211,20,43,216,20,31,164,58,212,20,45,247, + 8,0,27,37,220,27,30,152,122,155,63,168,81,211,27,46, + 220,34,48,208,51,76,200,87,201,75,208,49,88,208,95,102, + 209,34,103,208,28,103,220,30,44,168,90,184,2,184,17,168, + 94,211,30,60,152,3,220,31,45,168,106,184,17,184,49,168, + 111,211,31,62,152,4,220,27,30,152,122,155,63,168,81,176, + 20,169,88,211,27,53,220,34,48,208,51,76,200,87,201,75, + 208,49,88,208,95,102,209,34,103,208,28,103,216,27,30,164, + 47,211,27,49,220,32,35,160,74,163,15,176,33,209,32,51, + 176,113,209,31,56,184,65,211,31,61,220,38,52,208,55,80, + 208,81,88,209,80,91,208,53,92,208,99,106,209,38,107,208, + 32,107,220,48,51,176,74,179,15,192,33,209,48,67,200,1, + 209,47,73,208,28,44,216,31,47,176,33,211,31,51,220,38, + 52,208,55,80,208,81,88,209,80,91,208,53,92,208,99,106, + 209,38,107,208,32,107,219,28,41,220,37,41,168,38,215,42, + 60,209,42,60,184,113,196,19,208,69,85,208,87,88,211,65, + 89,208,64,90,208,90,91,208,61,92,216,61,71,208,80,81, + 240,3,0,43,61,240,0,1,43,83,1,243,0,1,38,84, + 1,152,70,240,12,0,32,41,172,74,211,31,54,216,44,50, + 175,74,169,74,176,113,171,77,160,9,216,31,40,172,74,211, + 31,54,216,44,50,175,74,169,74,176,113,171,77,160,9,216, + 31,42,172,106,211,31,56,216,46,52,175,106,169,106,184,17, + 171,109,160,11,224,28,33,240,8,0,38,48,176,1,176,36, + 177,6,176,7,208,37,56,152,10,247,63,0,27,37,153,42, + 244,66,1,0,25,35,215,24,51,210,24,51,216,28,84,216, + 28,32,244,5,3,25,26,240,18,0,20,31,208,33,59,211, + 19,59,220,26,40,208,43,68,192,87,193,75,208,41,80,208, + 87,94,209,26,95,208,20,95,216,16,27,152,122,209,16,41, + 144,11,224,21,25,152,56,160,89,176,9,184,59,200,4,200, + 100,208,84,87,208,20,88,144,1,216,30,31,144,5,144,100, + 145,11,216,16,21,152,17,145,10,144,5,242,101,3,0,19, + 23,240,104,3,0,13,15,143,71,137,71,144,76,213,12,33, + 247,77,6,0,10,12,244,78,6,0,5,15,215,4,31,210, + 4,31,208,32,67,192,85,200,71,212,4,84,216,11,16,128, + 76,248,244,87,6,0,12,19,243,0,1,5,80,1,220,14, + 28,208,31,52,176,87,177,75,208,29,64,192,119,209,14,79, + 208,8,79,240,3,1,5,80,1,251,244,26,0,20,27,243, + 0,2,13,51,220,22,36,208,39,60,184,87,185,75,208,37, + 72,216,42,49,241,3,1,23,51,240,0,1,17,51,240,3, + 2,13,51,251,244,20,0,20,27,243,0,2,13,51,220,22, + 36,208,39,60,184,87,185,75,208,37,72,216,42,49,241,3, + 1,23,51,240,0,1,17,51,240,3,2,13,51,251,244,120, + 1,0,20,27,243,0,1,13,88,1,220,22,36,208,39,60, + 184,87,185,75,208,37,72,200,119,209,22,87,208,16,87,240, + 3,1,13,88,1,251,244,62,0,24,31,243,0,1,17,92, + 1,220,26,40,208,43,64,192,23,193,11,208,41,76,208,83, + 90,209,26,91,208,20,91,240,3,1,17,92,1,251,244,26, + 0,24,31,243,0,1,17,92,1,220,26,40,208,43,64,192, + 23,193,11,208,41,76,208,83,90,209,26,91,208,20,91,240, + 3,1,17,92,1,251,244,20,0,28,46,243,0,1,21,76, 1,216,31,35,159,123,153,123,168,56,211,31,52,215,31,62, 209,31,62,188,123,211,31,75,155,4,240,3,1,21,76,1, - 251,240,18,0,13,15,143,71,137,71,144,76,213,12,33,250, - 247,103,3,0,10,12,137,18,250,115,222,0,0,0,130,21, - 79,38,0,153,17,83,59,3,172,60,80,3,2,193,40,46, - 83,37,2,194,23,34,80,32,2,194,57,26,83,37,2,195, - 20,33,80,61,2,195,53,67,18,83,37,2,199,8,17,81, - 26,2,199,25,68,10,83,37,2,203,36,17,81,55,2,203, - 53,30,83,37,2,204,20,51,82,20,2,205,7,23,83,37, - 2,205,31,17,82,49,2,205,48,65,2,83,37,2,206,51, - 17,83,59,3,207,38,26,80,0,3,208,3,26,80,29,5, - 208,29,3,83,37,2,208,32,26,80,58,5,208,58,3,83, - 37,2,208,61,26,81,23,5,209,23,3,83,37,2,209,26, - 26,81,52,5,209,52,3,83,37,2,209,55,26,82,17,5, - 210,17,3,83,37,2,210,20,26,82,46,5,210,46,3,83, - 37,2,210,49,45,83,34,5,211,30,3,83,37,2,211,33, - 1,83,34,5,211,34,3,83,37,2,211,37,19,83,56,5, - 211,56,3,83,59,3,211,59,5,84,5,7,117,190,1,0, + 251,240,64,2,0,13,15,143,71,137,71,144,76,213,12,33, + 250,247,77,6,0,10,12,142,18,250,115,205,0,0,0,130, + 22,87,28,0,154,17,91,15,3,173,34,87,56,2,193,15, + 41,90,57,2,193,57,34,88,20,2,194,27,69,62,90,57, + 2,200,26,17,88,48,2,200,43,68,13,90,57,2,204,57, + 17,89,12,2,205,10,29,90,57,2,205,40,60,89,40,2, + 206,36,28,90,57,2,207,1,17,90,4,2,207,18,70,12, + 90,57,2,213,33,65,7,90,57,2,214,40,17,91,15,3, + 215,28,25,87,53,3,215,56,25,88,17,5,216,17,3,90, + 57,2,216,20,25,88,45,5,216,45,3,90,57,2,216,48, + 25,89,9,5,217,9,3,90,57,2,217,12,25,89,37,5, + 217,37,3,90,57,2,217,40,25,90,1,5,218,1,3,90, + 57,2,218,4,46,90,54,5,218,50,3,90,57,2,218,53, + 1,90,54,5,218,54,3,90,57,2,218,57,19,91,12,5, + 219,12,3,91,15,3,219,15,10,91,30,7,117,190,1,0, 0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46, @@ -1052,460 +1188,471 @@ const unsigned char _Py_M__zipimport[] = { 226,140,160,226,140,161,195,183,226,137,136,194,176,226,136,153, 194,183,226,136,154,226,129,191,194,178,226,150,160,194,160,99, 0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,243,252,0,0,0,151,0,116,0,0,0,0, - 0,0,0,0,0,114,32,116,3,0,0,0,0,0,0,0, - 0,106,4,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,1,171,1,0,0,0,0,0,0,1, - 0,116,7,0,0,0,0,0,0,0,0,100,2,171,1,0, - 0,0,0,0,0,130,1,100,3,97,0,9,0,100,4,100, - 5,108,4,109,5,125,0,1,0,9,0,100,6,97,0,116, - 3,0,0,0,0,0,0,0,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,7,171, - 1,0,0,0,0,0,0,1,0,124,0,83,0,35,0,116, - 12,0,0,0,0,0,0,0,0,36,0,114,33,1,0,116, - 3,0,0,0,0,0,0,0,0,106,4,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,171, - 1,0,0,0,0,0,0,1,0,116,7,0,0,0,0,0, - 0,0,0,100,2,171,1,0,0,0,0,0,0,130,1,119, - 0,120,3,89,0,119,1,35,0,100,6,97,0,119,0,120, - 3,89,0,119,1,41,8,78,122,27,122,105,112,105,109,112, - 111,114,116,58,32,122,108,105,98,32,85,78,65,86,65,73, - 76,65,66,76,69,250,41,99,97,110,39,116,32,100,101,99, - 111,109,112,114,101,115,115,32,100,97,116,97,59,32,122,108, - 105,98,32,110,111,116,32,97,118,97,105,108,97,98,108,101, - 84,114,1,0,0,0,169,1,218,10,100,101,99,111,109,112, - 114,101,115,115,70,122,25,122,105,112,105,109,112,111,114,116, - 58,32,122,108,105,98,32,97,118,97,105,108,97,98,108,101, - 41,7,218,15,95,105,109,112,111,114,116,105,110,103,95,122, - 108,105,98,114,52,0,0,0,114,108,0,0,0,114,4,0, - 0,0,218,4,122,108,105,98,114,194,0,0,0,218,9,69, - 120,99,101,112,116,105,111,110,114,193,0,0,0,115,1,0, - 0,0,32,114,13,0,0,0,218,20,95,103,101,116,95,100, - 101,99,111,109,112,114,101,115,115,95,102,117,110,99,114,198, - 0,0,0,244,1,0,0,115,129,0,0,0,128,0,229,7, - 22,244,6,0,9,19,215,8,35,209,8,35,208,36,65,212, - 8,66,220,14,28,208,29,72,211,14,73,208,8,73,224,22, - 26,128,79,240,2,6,5,32,222,8,35,240,10,0,27,32, - 136,15,228,4,14,215,4,31,209,4,31,208,32,59,212,4, - 60,216,11,21,208,4,21,248,244,15,0,12,21,242,0,2, - 5,74,1,220,8,18,215,8,35,209,8,35,208,36,65,212, - 8,66,220,14,28,208,29,72,211,14,73,208,8,73,240,5, - 2,5,74,1,251,240,8,0,27,32,137,15,250,115,23,0, - 0,0,170,6,65,10,0,193,10,42,65,52,3,193,52,3, - 65,55,0,193,55,4,65,59,3,99,2,0,0,0,0,0, - 0,0,0,0,0,0,8,0,0,0,3,0,0,0,243,218, - 2,0,0,151,0,124,1,92,8,0,0,125,2,125,3,125, - 4,125,5,125,6,125,7,125,8,125,9,124,4,100,1,107, - 2,0,0,114,11,116,1,0,0,0,0,0,0,0,0,100, - 2,171,1,0,0,0,0,0,0,130,1,116,3,0,0,0, - 0,0,0,0,0,106,4,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,0,171,1,0,0,0, - 0,0,0,53,0,125,10,9,0,124,10,106,7,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 6,171,1,0,0,0,0,0,0,1,0,124,10,106,11,0, + 3,0,0,0,243,14,1,0,0,149,0,91,0,0,0,0, + 0,0,0,0,0,40,0,0,0,0,0,0,0,97,33,0, + 0,91,2,0,0,0,0,0,0,0,0,82,4,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, + 0,83,1,53,1,0,0,0,0,0,0,32,0,91,7,0, + 0,0,0,0,0,0,0,83,2,53,1,0,0,0,0,0, + 0,101,1,83,3,113,0,30,0,83,4,83,5,75,4,74, + 5,110,0,32,0,30,0,83,6,113,0,91,2,0,0,0, + 0,0,0,0,0,82,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,34,0,83,7,53,1,0, + 0,0,0,0,0,32,0,85,0,36,0,33,0,91,12,0, + 0,0,0,0,0,0,0,7,0,97,34,0,0,32,0,91, + 2,0,0,0,0,0,0,0,0,82,4,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,83, + 1,53,1,0,0,0,0,0,0,32,0,91,7,0,0,0, + 0,0,0,0,0,83,2,53,1,0,0,0,0,0,0,101, + 1,102,0,61,3,31,0,102,1,33,0,83,6,113,0,102, + 0,61,3,31,0,102,1,41,8,78,122,27,122,105,112,105, + 109,112,111,114,116,58,32,122,108,105,98,32,85,78,65,86, + 65,73,76,65,66,76,69,250,41,99,97,110,39,116,32,100, + 101,99,111,109,112,114,101,115,115,32,100,97,116,97,59,32, + 122,108,105,98,32,110,111,116,32,97,118,97,105,108,97,98, + 108,101,84,114,1,0,0,0,169,1,218,10,100,101,99,111, + 109,112,114,101,115,115,70,122,25,122,105,112,105,109,112,111, + 114,116,58,32,122,108,105,98,32,97,118,97,105,108,97,98, + 108,101,41,7,218,15,95,105,109,112,111,114,116,105,110,103, + 95,122,108,105,98,114,57,0,0,0,114,121,0,0,0,114, + 5,0,0,0,218,4,122,108,105,98,114,238,0,0,0,218, + 9,69,120,99,101,112,116,105,111,110,114,237,0,0,0,115, + 1,0,0,0,32,114,17,0,0,0,218,20,95,103,101,116, + 95,100,101,99,111,109,112,114,101,115,115,95,102,117,110,99, + 114,242,0,0,0,79,2,0,0,115,131,0,0,0,128,0, + 231,7,22,130,127,244,6,0,9,19,215,8,35,210,8,35, + 208,36,65,212,8,66,220,14,28,208,29,72,211,14,73,208, + 8,73,224,22,26,128,79,240,2,6,5,32,222,8,35,240, + 10,0,27,32,136,15,228,4,14,215,4,31,210,4,31,208, + 32,59,212,4,60,216,11,21,208,4,21,248,244,15,0,12, + 21,243,0,2,5,74,1,220,8,18,215,8,35,210,8,35, + 208,36,65,212,8,66,220,14,28,208,29,72,211,14,73,208, + 8,73,240,5,2,5,74,1,251,240,8,0,27,32,137,15, + 250,115,23,0,0,0,176,6,65,17,0,193,17,44,65,61, + 3,193,61,3,66,0,0,194,0,4,66,4,3,99,2,0, + 0,0,0,0,0,0,0,0,0,0,8,0,0,0,3,0, + 0,0,243,224,2,0,0,149,0,85,1,117,8,0,0,112, + 35,112,69,112,103,112,137,85,4,83,1,58,18,0,0,97, + 11,0,0,91,1,0,0,0,0,0,0,0,0,83,2,53, + 1,0,0,0,0,0,0,101,1,91,2,0,0,0,0,0, + 0,0,0,82,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,85,0,53,1,0,0,0, + 0,0,0,2,0,110,10,30,0,85,10,82,7,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85, + 6,53,1,0,0,0,0,0,0,32,0,85,10,82,11,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,5,171,1,0,0,0,0,0,0,125,11,116,13,0, - 0,0,0,0,0,0,0,124,11,171,1,0,0,0,0,0, - 0,100,5,107,55,0,0,114,11,116,15,0,0,0,0,0, - 0,0,0,100,6,171,1,0,0,0,0,0,0,130,1,124, - 11,100,0,100,7,26,0,100,8,107,55,0,0,114,16,116, - 1,0,0,0,0,0,0,0,0,100,9,124,0,155,2,157, - 2,124,0,172,4,171,2,0,0,0,0,0,0,130,1,116, - 17,0,0,0,0,0,0,0,0,124,11,100,10,100,11,26, - 0,171,1,0,0,0,0,0,0,125,12,116,17,0,0,0, - 0,0,0,0,0,124,11,100,11,100,5,26,0,171,1,0, - 0,0,0,0,0,125,13,100,5,124,12,122,0,0,0,124, - 13,122,0,0,0,125,14,124,6,124,14,122,13,0,0,125, - 6,9,0,124,10,106,7,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,124,6,171,1,0,0,0, - 0,0,0,1,0,124,10,106,11,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,4,171,1,0, - 0,0,0,0,0,125,15,116,13,0,0,0,0,0,0,0, - 0,124,15,171,1,0,0,0,0,0,0,124,4,107,55,0, - 0,114,11,116,9,0,0,0,0,0,0,0,0,100,12,171, - 1,0,0,0,0,0,0,130,1,9,0,100,0,100,0,100, - 0,171,2,0,0,0,0,0,0,1,0,124,3,100,1,107, - 40,0,0,114,2,127,15,83,0,9,0,116,19,0,0,0, - 0,0,0,0,0,171,0,0,0,0,0,0,0,125,16,2, - 0,124,16,127,15,100,14,171,2,0,0,0,0,0,0,83, - 0,35,0,116,8,0,0,0,0,0,0,0,0,36,0,114, - 17,1,0,116,1,0,0,0,0,0,0,0,0,100,3,124, - 0,155,2,157,2,124,0,172,4,171,2,0,0,0,0,0, - 0,130,1,119,0,120,3,89,0,119,1,35,0,116,8,0, - 0,0,0,0,0,0,0,36,0,114,17,1,0,116,1,0, - 0,0,0,0,0,0,0,100,3,124,0,155,2,157,2,124, - 0,172,4,171,2,0,0,0,0,0,0,130,1,119,0,120, - 3,89,0,119,1,35,0,49,0,115,1,119,2,1,0,89, - 0,1,0,1,0,140,94,120,3,89,0,119,1,35,0,116, - 20,0,0,0,0,0,0,0,0,36,0,114,12,1,0,116, - 1,0,0,0,0,0,0,0,0,100,13,171,1,0,0,0, - 0,0,0,130,1,119,0,120,3,89,0,119,1,41,15,78, - 114,1,0,0,0,122,18,110,101,103,97,116,105,118,101,32, - 100,97,116,97,32,115,105,122,101,114,135,0,0,0,114,17, - 0,0,0,114,147,0,0,0,114,141,0,0,0,114,136,0, - 0,0,115,4,0,0,0,80,75,3,4,122,23,98,97,100, - 32,108,111,99,97,108,32,102,105,108,101,32,104,101,97,100, - 101,114,58,32,233,26,0,0,0,114,146,0,0,0,122,26, - 122,105,112,105,109,112,111,114,116,58,32,99,97,110,39,116, - 32,114,101,97,100,32,100,97,116,97,114,192,0,0,0,105, - 241,255,255,255,41,11,114,4,0,0,0,114,154,0,0,0, - 114,155,0,0,0,114,157,0,0,0,114,30,0,0,0,114, - 159,0,0,0,114,74,0,0,0,114,164,0,0,0,114,2, - 0,0,0,114,198,0,0,0,114,197,0,0,0,41,17,114, - 38,0,0,0,114,78,0,0,0,218,8,100,97,116,97,112, - 97,116,104,114,181,0,0,0,114,185,0,0,0,114,172,0, - 0,0,114,189,0,0,0,114,182,0,0,0,114,183,0,0, - 0,114,184,0,0,0,114,168,0,0,0,114,171,0,0,0, - 114,186,0,0,0,114,187,0,0,0,114,176,0,0,0,218, - 8,114,97,119,95,100,97,116,97,114,194,0,0,0,115,17, - 0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,114,13,0,0,0,114,75,0,0,0,114,75, - 0,0,0,9,2,0,0,115,179,1,0,0,128,0,216,77, - 86,209,4,74,128,72,136,104,152,9,160,57,168,107,184,52, - 192,20,192,115,216,7,16,144,49,130,125,220,14,28,208,29, - 49,211,14,50,208,8,50,228,9,12,143,29,137,29,144,119, - 212,9,31,160,50,240,4,3,9,84,1,216,12,14,143,71, - 137,71,144,75,212,12,32,240,6,0,18,20,151,23,145,23, - 152,18,147,27,136,6,220,11,14,136,118,139,59,152,34,210, - 11,28,220,18,26,208,27,56,211,18,57,208,12,57,224,11, - 17,144,34,144,49,136,58,152,29,210,11,38,228,18,32,208, - 35,58,184,55,184,43,208,33,70,200,87,212,18,85,208,12, - 85,228,20,34,160,54,168,34,168,82,160,61,211,20,49,136, - 9,220,21,35,160,70,168,50,168,98,160,77,211,21,50,136, - 10,216,22,24,152,57,145,110,160,122,209,22,49,136,11,216, - 8,19,144,123,209,8,34,136,11,240,2,3,9,84,1,216, + 0,83,5,53,1,0,0,0,0,0,0,110,11,91,13,0, + 0,0,0,0,0,0,0,85,11,53,1,0,0,0,0,0, + 0,83,5,58,119,0,0,97,11,0,0,91,15,0,0,0, + 0,0,0,0,0,83,6,53,1,0,0,0,0,0,0,101, + 1,85,11,83,0,83,7,4,0,83,8,58,119,0,0,97, + 14,0,0,91,1,0,0,0,0,0,0,0,0,83,9,85, + 0,60,2,14,0,51,2,85,0,83,4,57,2,101,1,91, + 17,0,0,0,0,0,0,0,0,85,11,83,10,83,11,4, + 0,53,1,0,0,0,0,0,0,110,12,91,17,0,0,0, + 0,0,0,0,0,85,11,83,11,83,5,4,0,53,1,0, + 0,0,0,0,0,110,13,83,5,85,12,45,0,0,0,85, + 13,45,0,0,0,110,14,88,110,45,13,0,0,110,6,30, + 0,85,10,82,7,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,6,53,1,0,0,0,0,0, + 0,32,0,85,10,82,11,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,85,4,53,1,0,0,0, + 0,0,0,110,15,91,13,0,0,0,0,0,0,0,0,85, + 15,53,1,0,0,0,0,0,0,85,4,58,119,0,0,97, + 11,0,0,91,9,0,0,0,0,0,0,0,0,83,12,53, + 1,0,0,0,0,0,0,101,1,30,0,83,0,83,0,83, + 0,53,2,0,0,0,0,0,0,32,0,85,3,83,1,58, + 88,0,0,97,2,0,0,87,15,36,0,30,0,91,19,0, + 0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,110, + 16,85,16,34,0,87,15,83,14,53,2,0,0,0,0,0, + 0,36,0,33,0,91,8,0,0,0,0,0,0,0,0,7, + 0,97,15,0,0,32,0,91,1,0,0,0,0,0,0,0, + 0,83,3,85,0,60,2,14,0,51,2,85,0,83,4,57, + 2,101,1,102,0,61,3,31,0,102,1,33,0,91,8,0, + 0,0,0,0,0,0,0,7,0,97,15,0,0,32,0,91, + 1,0,0,0,0,0,0,0,0,83,3,85,0,60,2,14, + 0,51,2,85,0,83,4,57,2,101,1,102,0,61,3,31, + 0,102,1,33,0,44,0,40,0,0,0,0,0,0,0,100, + 1,0,0,102,2,32,0,31,0,32,0,32,0,78,98,61, + 3,31,0,102,1,33,0,91,20,0,0,0,0,0,0,0, + 0,7,0,97,12,0,0,32,0,91,1,0,0,0,0,0, + 0,0,0,83,13,53,1,0,0,0,0,0,0,101,1,102, + 0,61,3,31,0,102,1,41,15,78,114,1,0,0,0,122, + 18,110,101,103,97,116,105,118,101,32,100,97,116,97,32,115, + 105,122,101,114,155,0,0,0,114,24,0,0,0,114,168,0, + 0,0,114,165,0,0,0,114,164,0,0,0,115,4,0,0, + 0,80,75,3,4,122,23,98,97,100,32,108,111,99,97,108, + 32,102,105,108,101,32,104,101,97,100,101,114,58,32,233,26, + 0,0,0,114,167,0,0,0,122,26,122,105,112,105,109,112, + 111,114,116,58,32,99,97,110,39,116,32,114,101,97,100,32, + 100,97,116,97,114,236,0,0,0,105,241,255,255,255,41,11, + 114,5,0,0,0,114,178,0,0,0,114,179,0,0,0,114, + 181,0,0,0,114,37,0,0,0,114,187,0,0,0,114,81, + 0,0,0,114,191,0,0,0,114,2,0,0,0,114,242,0, + 0,0,114,241,0,0,0,41,17,114,43,0,0,0,114,87, + 0,0,0,218,8,100,97,116,97,112,97,116,104,114,218,0, + 0,0,114,222,0,0,0,114,204,0,0,0,114,226,0,0, + 0,114,219,0,0,0,114,220,0,0,0,114,221,0,0,0, + 114,202,0,0,0,114,210,0,0,0,114,223,0,0,0,114, + 224,0,0,0,114,227,0,0,0,218,8,114,97,119,95,100, + 97,116,97,114,238,0,0,0,115,17,0,0,0,32,32,32, + 32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,17, + 0,0,0,114,84,0,0,0,114,84,0,0,0,100,2,0, + 0,115,169,1,0,0,128,0,216,77,86,209,4,74,128,72, + 152,9,168,107,192,20,216,7,16,144,49,131,125,220,14,28, + 208,29,49,211,14,50,208,8,50,228,9,12,143,29,138,29, + 144,119,212,9,31,160,50,240,4,3,9,84,1,216,12,14, + 143,71,137,71,144,75,212,12,32,240,6,0,18,20,151,23, + 145,23,152,18,147,27,136,6,220,11,14,136,118,139,59,152, + 34,211,11,28,220,18,26,208,27,56,211,18,57,208,12,57, + 224,11,17,144,34,144,49,136,58,152,29,211,11,38,228,18, + 32,208,35,58,184,55,185,43,208,33,70,200,87,209,18,85, + 208,12,85,228,20,34,160,54,168,34,168,82,160,61,211,20, + 49,136,9,220,21,35,160,70,168,50,168,98,160,77,211,21, + 50,136,10,216,22,24,152,57,145,110,160,122,209,22,49,136, + 11,216,8,19,209,8,34,136,11,240,2,3,9,84,1,216, 12,14,143,71,137,71,144,75,212,12,32,240,6,0,20,22, 151,55,145,55,152,57,211,19,37,136,8,220,11,14,136,120, - 139,61,152,73,210,11,37,220,18,25,208,26,54,211,18,55, + 139,61,152,73,211,11,37,220,18,25,208,26,54,211,18,55, 208,12,55,240,3,0,12,38,247,47,0,10,32,240,52,0, - 8,16,144,49,130,125,224,15,23,136,15,240,6,3,5,74, + 8,16,144,49,131,125,224,15,23,136,15,240,6,3,5,74, 1,220,21,41,211,21,43,136,10,241,6,0,12,22,144,104, - 160,3,211,11,36,208,4,36,248,244,63,0,16,23,242,0, - 1,9,84,1,220,18,32,208,35,56,184,23,184,11,208,33, - 68,200,55,212,18,83,208,12,83,240,3,1,9,84,1,251, - 244,32,0,16,23,242,0,1,9,84,1,220,18,32,208,35, - 56,184,23,184,11,208,33,68,200,55,212,18,83,208,12,83, - 240,3,1,9,84,1,250,247,41,0,10,32,208,9,31,251, - 244,66,1,0,12,21,242,0,1,5,74,1,220,14,28,208, + 160,3,211,11,36,208,4,36,248,244,63,0,16,23,243,0, + 1,9,84,1,220,18,32,208,35,56,184,23,185,11,208,33, + 68,200,55,209,18,83,208,12,83,240,3,1,9,84,1,251, + 244,32,0,16,23,243,0,1,9,84,1,220,18,32,208,35, + 56,184,23,185,11,208,33,68,200,55,209,18,83,208,12,83, + 240,3,1,9,84,1,250,247,41,0,10,32,213,9,31,251, + 244,66,1,0,12,21,243,0,1,5,74,1,220,14,28,208, 29,72,211,14,73,208,8,73,240,3,1,5,74,1,250,115, - 71,0,0,0,177,1,69,9,3,179,17,68,15,2,193,4, - 65,43,69,9,3,194,48,17,68,44,2,195,1,42,69,9, - 3,195,60,10,69,21,0,196,15,26,68,41,5,196,41,3, - 69,9,3,196,44,26,69,6,5,197,6,3,69,9,3,197, - 9,5,69,18,7,197,21,21,69,42,3,99,2,0,0,0, + 71,0,0,0,175,1,69,6,3,177,17,68,14,2,193,2, + 65,42,69,6,3,194,45,17,68,42,2,194,62,43,69,6, + 3,195,59,10,69,23,0,196,14,25,68,39,5,196,39,3, + 69,6,3,196,42,25,69,3,5,197,3,3,69,6,3,197, + 6,10,69,20,7,197,23,22,69,45,3,99,2,0,0,0, 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 243,36,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,124,0,124,1,122,10,0,0,171,1,0,0,0,0,0, - 0,100,1,107,26,0,0,83,0,41,2,78,114,6,0,0, - 0,41,1,218,3,97,98,115,41,2,218,2,116,49,218,2, - 116,50,115,2,0,0,0,32,32,114,13,0,0,0,218,9, - 95,101,113,95,109,116,105,109,101,114,207,0,0,0,55,2, - 0,0,115,21,0,0,0,128,0,228,11,14,136,114,144,66, - 137,119,139,60,152,49,209,11,28,208,4,28,114,12,0,0, - 0,99,5,0,0,0,0,0,0,0,0,0,0,0,7,0, - 0,0,3,0,0,0,243,92,2,0,0,151,0,124,3,124, - 2,100,1,156,2,125,5,116,1,0,0,0,0,0,0,0, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,4,124,3,124,5,171,3,0,0,0, - 0,0,0,125,6,124,6,100,2,122,1,0,0,100,3,107, - 55,0,0,125,7,124,7,114,123,124,6,100,4,122,1,0, - 0,100,3,107,55,0,0,125,8,116,4,0,0,0,0,0, - 0,0,0,106,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,100,5,107,55,0,0,114,179,124, - 8,115,19,116,4,0,0,0,0,0,0,0,0,106,6,0, + 243,34,0,0,0,149,0,91,1,0,0,0,0,0,0,0, + 0,88,1,45,10,0,0,53,1,0,0,0,0,0,0,83, + 1,58,42,0,0,36,0,41,2,78,114,7,0,0,0,41, + 1,218,3,97,98,115,41,2,218,2,116,49,218,2,116,50, + 115,2,0,0,0,32,32,114,17,0,0,0,218,9,95,101, + 113,95,109,116,105,109,101,114,251,0,0,0,146,2,0,0, + 115,19,0,0,0,128,0,228,11,14,136,114,137,119,139,60, + 152,49,209,11,28,208,4,28,114,16,0,0,0,99,5,0, + 0,0,0,0,0,0,0,0,0,0,7,0,0,0,3,0, + 0,0,243,152,2,0,0,149,0,85,3,85,2,83,1,46, + 2,110,5,91,0,0,0,0,0,0,0,0,0,82,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,6,107,40,0,0,114,158,116,9,0,0,0,0,0, - 0,0,0,124,0,124,2,171,2,0,0,0,0,0,0,125, - 9,124,9,129,144,116,5,0,0,0,0,0,0,0,0,106, - 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,116,0,0,0,0,0,0,0,0,0,106,12,0, + 0,34,0,88,67,85,5,53,3,0,0,0,0,0,0,110, + 6,85,6,83,2,45,1,0,0,83,3,58,103,0,0,110, + 7,85,7,40,0,0,0,0,0,0,0,97,130,0,0,85, + 6,83,4,45,1,0,0,83,3,58,103,0,0,110,8,91, + 4,0,0,0,0,0,0,0,0,82,6,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,83,5,58, + 119,0,0,97,101,0,0,85,8,40,0,0,0,0,0,0, + 0,100,20,0,0,91,4,0,0,0,0,0,0,0,0,82, + 6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,83,6,58,88,0,0,97,74,0,0,91,9,0, + 0,0,0,0,0,0,0,88,2,53,2,0,0,0,0,0, + 0,110,9,85,9,98,60,0,0,91,4,0,0,0,0,0, + 0,0,0,82,10,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,91,0,0,0,0,0,0, + 0,0,0,82,12,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,85,9,53,2,0,0,0,0,0, + 0,110,10,91,0,0,0,0,0,0,0,0,0,82,14,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,9,171,2,0,0,0,0,0,0,125,10,116,1,0, - 0,0,0,0,0,0,0,106,14,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,124,4,124,10,124, - 3,124,5,171,4,0,0,0,0,0,0,1,0,110,83,116, - 17,0,0,0,0,0,0,0,0,124,0,124,2,171,2,0, - 0,0,0,0,0,92,2,0,0,125,11,125,12,124,11,114, - 66,116,19,0,0,0,0,0,0,0,0,116,21,0,0,0, - 0,0,0,0,0,124,4,100,7,100,8,26,0,171,1,0, - 0,0,0,0,0,124,11,171,2,0,0,0,0,0,0,114, - 17,116,21,0,0,0,0,0,0,0,0,124,4,100,8,100, - 9,26,0,171,1,0,0,0,0,0,0,124,12,107,55,0, - 0,114,25,116,23,0,0,0,0,0,0,0,0,106,24,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,100,10,124,3,155,2,157,2,171,1,0,0,0,0,0, - 0,1,0,121,0,116,27,0,0,0,0,0,0,0,0,106, - 28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,4,100,9,100,0,26,0,171,1,0,0,0, - 0,0,0,125,13,116,31,0,0,0,0,0,0,0,0,124, - 13,116,32,0,0,0,0,0,0,0,0,171,2,0,0,0, - 0,0,0,115,15,116,35,0,0,0,0,0,0,0,0,100, - 11,124,1,155,2,100,12,157,3,171,1,0,0,0,0,0, - 0,130,1,124,13,83,0,41,13,78,41,2,114,49,0,0, - 0,114,18,0,0,0,114,6,0,0,0,114,1,0,0,0, - 114,126,0,0,0,218,5,110,101,118,101,114,218,6,97,108, - 119,97,121,115,114,142,0,0,0,114,137,0,0,0,114,138, - 0,0,0,122,22,98,121,116,101,99,111,100,101,32,105,115, - 32,115,116,97,108,101,32,102,111,114,32,122,16,99,111,109, - 112,105,108,101,100,32,109,111,100,117,108,101,32,122,21,32, - 105,115,32,110,111,116,32,97,32,99,111,100,101,32,111,98, - 106,101,99,116,41,18,114,27,0,0,0,218,13,95,99,108, - 97,115,115,105,102,121,95,112,121,99,218,4,95,105,109,112, - 218,21,99,104,101,99,107,95,104,97,115,104,95,98,97,115, - 101,100,95,112,121,99,115,218,15,95,103,101,116,95,112,121, - 99,95,115,111,117,114,99,101,218,11,115,111,117,114,99,101, - 95,104,97,115,104,218,17,95,82,65,87,95,77,65,71,73, - 67,95,78,85,77,66,69,82,218,18,95,118,97,108,105,100, - 97,116,101,95,104,97,115,104,95,112,121,99,218,29,95,103, - 101,116,95,109,116,105,109,101,95,97,110,100,95,115,105,122, - 101,95,111,102,95,115,111,117,114,99,101,114,207,0,0,0, - 114,3,0,0,0,114,52,0,0,0,114,108,0,0,0,218, - 7,109,97,114,115,104,97,108,218,5,108,111,97,100,115,114, - 20,0,0,0,218,10,95,99,111,100,101,95,116,121,112,101, - 114,22,0,0,0,41,14,114,41,0,0,0,114,76,0,0, - 0,114,89,0,0,0,114,58,0,0,0,114,174,0,0,0, - 218,11,101,120,99,95,100,101,116,97,105,108,115,114,180,0, - 0,0,218,10,104,97,115,104,95,98,97,115,101,100,218,12, - 99,104,101,99,107,95,115,111,117,114,99,101,218,12,115,111, - 117,114,99,101,95,98,121,116,101,115,114,215,0,0,0,218, - 12,115,111,117,114,99,101,95,109,116,105,109,101,218,11,115, - 111,117,114,99,101,95,115,105,122,101,114,68,0,0,0,115, - 14,0,0,0,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,114,13,0,0,0,218,15,95,117,110,109,97,114,115, - 104,97,108,95,99,111,100,101,114,228,0,0,0,63,2,0, - 0,115,65,1,0,0,128,0,224,16,24,216,16,24,241,5, - 3,19,6,128,75,244,10,0,13,32,215,12,45,209,12,45, - 168,100,176,72,184,107,211,12,74,128,69,224,17,22,152,19, - 145,27,160,1,209,17,33,128,74,217,7,17,216,23,28,152, - 116,145,124,160,113,209,23,40,136,12,220,12,16,215,12,38, - 209,12,38,168,39,210,12,49,217,17,29,164,20,215,33,59, - 209,33,59,184,120,210,33,71,220,27,42,168,52,176,24,211, - 27,58,136,76,216,15,27,208,15,39,220,30,34,215,30,46, - 209,30,46,220,20,39,215,20,57,209,20,57,216,20,32,243, - 5,3,31,18,144,11,244,10,0,17,36,215,16,54,209,16, - 54,216,20,24,152,43,160,120,176,27,245,3,1,17,62,244, - 8,0,13,42,168,36,176,8,211,12,57,241,3,0,9,34, - 136,12,144,107,241,6,0,12,24,244,6,0,21,30,156,110, - 168,84,176,33,176,66,168,90,211,30,56,184,44,212,20,71, + 0,34,0,88,74,88,53,53,4,0,0,0,0,0,0,32, + 0,79,94,91,17,0,0,0,0,0,0,0,0,88,2,53, + 2,0,0,0,0,0,0,117,2,0,0,112,188,85,11,40, + 0,0,0,0,0,0,0,97,74,0,0,91,19,0,0,0, + 0,0,0,0,0,91,21,0,0,0,0,0,0,0,0,85, + 4,83,7,83,8,4,0,53,1,0,0,0,0,0,0,85, + 11,53,2,0,0,0,0,0,0,40,0,0,0,0,0,0, + 0,97,18,0,0,91,21,0,0,0,0,0,0,0,0,85, + 4,83,8,83,9,4,0,53,1,0,0,0,0,0,0,85, + 12,58,119,0,0,97,27,0,0,91,22,0,0,0,0,0, + 0,0,0,82,24,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,34,0,83,10,85,3,60,2,14, + 0,51,2,53,1,0,0,0,0,0,0,32,0,103,0,91, + 26,0,0,0,0,0,0,0,0,82,28,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,85, + 4,83,9,83,0,4,0,53,1,0,0,0,0,0,0,110, + 13,91,31,0,0,0,0,0,0,0,0,85,13,91,32,0, + 0,0,0,0,0,0,0,53,2,0,0,0,0,0,0,40, + 0,0,0,0,0,0,0,100,16,0,0,91,35,0,0,0, + 0,0,0,0,0,83,11,85,1,60,2,14,0,83,12,51, + 3,53,1,0,0,0,0,0,0,101,1,85,13,36,0,41, + 13,78,41,2,114,54,0,0,0,114,25,0,0,0,114,7, + 0,0,0,114,1,0,0,0,114,146,0,0,0,218,5,110, + 101,118,101,114,218,6,97,108,119,97,121,115,114,161,0,0, + 0,114,159,0,0,0,114,160,0,0,0,122,22,98,121,116, + 101,99,111,100,101,32,105,115,32,115,116,97,108,101,32,102, + 111,114,32,122,16,99,111,109,112,105,108,101,100,32,109,111, + 100,117,108,101,32,122,21,32,105,115,32,110,111,116,32,97, + 32,99,111,100,101,32,111,98,106,101,99,116,41,18,114,34, + 0,0,0,218,13,95,99,108,97,115,115,105,102,121,95,112, + 121,99,218,4,95,105,109,112,218,21,99,104,101,99,107,95, + 104,97,115,104,95,98,97,115,101,100,95,112,121,99,115,218, + 15,95,103,101,116,95,112,121,99,95,115,111,117,114,99,101, + 218,11,115,111,117,114,99,101,95,104,97,115,104,218,17,95, + 82,65,87,95,77,65,71,73,67,95,78,85,77,66,69,82, + 218,18,95,118,97,108,105,100,97,116,101,95,104,97,115,104, + 95,112,121,99,218,29,95,103,101,116,95,109,116,105,109,101, + 95,97,110,100,95,115,105,122,101,95,111,102,95,115,111,117, + 114,99,101,114,251,0,0,0,114,3,0,0,0,114,57,0, + 0,0,114,121,0,0,0,218,7,109,97,114,115,104,97,108, + 218,5,108,111,97,100,115,114,27,0,0,0,218,10,95,99, + 111,100,101,95,116,121,112,101,114,29,0,0,0,41,14,114, + 46,0,0,0,114,85,0,0,0,114,100,0,0,0,114,63, + 0,0,0,114,207,0,0,0,218,11,101,120,99,95,100,101, + 116,97,105,108,115,114,217,0,0,0,218,10,104,97,115,104, + 95,98,97,115,101,100,218,12,99,104,101,99,107,95,115,111, + 117,114,99,101,218,12,115,111,117,114,99,101,95,98,121,116, + 101,115,114,3,1,0,0,218,12,115,111,117,114,99,101,95, + 109,116,105,109,101,218,11,115,111,117,114,99,101,95,115,105, + 122,101,114,74,0,0,0,115,14,0,0,0,32,32,32,32, + 32,32,32,32,32,32,32,32,32,32,114,17,0,0,0,218, + 15,95,117,110,109,97,114,115,104,97,108,95,99,111,100,101, + 114,16,1,0,0,154,2,0,0,115,60,1,0,0,128,0, + 224,16,24,216,16,24,241,5,3,19,6,128,75,244,10,0, + 13,32,215,12,45,210,12,45,168,100,184,107,211,12,74,128, + 69,224,17,22,152,19,145,27,160,1,209,17,33,128,74,222, + 7,17,216,23,28,152,116,145,124,160,113,209,23,40,136,12, + 220,12,16,215,12,38,209,12,38,168,39,211,12,49,222,17, + 29,164,20,215,33,59,209,33,59,184,120,211,33,71,220,27, + 42,168,52,211,27,58,136,76,216,15,27,209,15,39,220,30, + 34,215,30,46,210,30,46,220,20,39,215,20,57,209,20,57, + 216,20,32,243,5,3,31,18,144,11,244,10,0,17,36,215, + 16,54,210,16,54,216,20,24,160,120,244,3,1,17,62,248, + 244,8,0,13,42,168,36,211,12,57,241,3,0,9,34,136, + 12,246,6,0,12,24,244,6,0,21,30,156,110,168,84,176, + 33,176,66,168,90,211,30,56,184,44,215,20,71,209,20,71, 220,20,34,160,52,168,2,168,50,160,59,211,20,47,176,59, - 210,20,62,220,16,26,215,16,43,209,16,43,216,22,44,168, - 88,168,76,208,20,57,244,3,1,17,59,224,23,27,228,11, - 18,143,61,137,61,152,20,152,98,152,99,152,25,211,11,35, - 128,68,220,11,21,144,100,156,74,212,11,39,220,14,23,208, - 26,42,168,56,168,44,208,54,75,208,24,76,211,14,77,208, - 8,77,216,11,15,128,75,114,12,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,243,78,0,0,0,151,0,124,0,106,1,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1, - 100,2,171,2,0,0,0,0,0,0,125,0,124,0,106,1, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,100,3,100,2,171,2,0,0,0,0,0,0,125,0, - 124,0,83,0,41,4,78,115,2,0,0,0,13,10,243,1, - 0,0,0,10,243,1,0,0,0,13,41,1,114,25,0,0, - 0,41,1,218,6,115,111,117,114,99,101,115,1,0,0,0, - 32,114,13,0,0,0,218,23,95,110,111,114,109,97,108,105, - 122,101,95,108,105,110,101,95,101,110,100,105,110,103,115,114, - 233,0,0,0,108,2,0,0,115,39,0,0,0,128,0,216, - 13,19,143,94,137,94,152,71,160,85,211,13,43,128,70,216, - 13,19,143,94,137,94,152,69,160,53,211,13,41,128,70,216, - 11,17,128,77,114,12,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,6,0,0,0,3,0,0,0,243,54, - 0,0,0,151,0,116,1,0,0,0,0,0,0,0,0,124, - 1,171,1,0,0,0,0,0,0,125,1,116,3,0,0,0, - 0,0,0,0,0,124,1,124,0,100,1,100,2,172,3,171, - 4,0,0,0,0,0,0,83,0,41,4,78,114,106,0,0, - 0,84,41,1,218,12,100,111,110,116,95,105,110,104,101,114, - 105,116,41,2,114,233,0,0,0,218,7,99,111,109,112,105, - 108,101,41,2,114,76,0,0,0,114,232,0,0,0,115,2, - 0,0,0,32,32,114,13,0,0,0,218,15,95,99,111,109, - 112,105,108,101,95,115,111,117,114,99,101,114,237,0,0,0, - 115,2,0,0,115,29,0,0,0,128,0,220,13,36,160,86, - 211,13,44,128,70,220,11,18,144,54,152,56,160,86,184,36, - 212,11,63,208,4,63,114,12,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,11,0,0,0,3,0,0,0, - 243,122,0,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,106,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,124,0,100,1,122,9,0,0,100,2,122, - 0,0,0,124,0,100,3,122,9,0,0,100,4,122,1,0, - 0,124,0,100,5,122,1,0,0,124,1,100,6,122,9,0, - 0,124,1,100,3,122,9,0,0,100,7,122,1,0,0,124, - 1,100,5,122,1,0,0,100,8,122,5,0,0,100,9,100, - 9,100,9,102,9,171,1,0,0,0,0,0,0,83,0,41, - 10,78,233,9,0,0,0,105,188,7,0,0,233,5,0,0, - 0,233,15,0,0,0,233,31,0,0,0,233,11,0,0,0, - 233,63,0,0,0,114,126,0,0,0,114,19,0,0,0,41, - 2,114,182,0,0,0,218,6,109,107,116,105,109,101,41,2, - 218,1,100,114,190,0,0,0,115,2,0,0,0,32,32,114, - 13,0,0,0,218,14,95,112,97,114,115,101,95,100,111,115, - 116,105,109,101,114,247,0,0,0,121,2,0,0,115,89,0, - 0,0,128,0,220,11,15,143,59,137,59,216,9,10,136,97, - 137,22,144,52,137,15,216,9,10,136,97,137,22,144,51,137, - 14,216,8,9,136,68,137,8,216,8,9,136,82,137,7,216, - 9,10,136,97,137,22,144,52,137,15,216,9,10,136,84,137, - 24,144,81,137,14,216,8,10,136,66,144,2,240,15,7,24, - 20,243,0,7,12,21,240,0,7,5,21,114,12,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,3,0,0,0,243,172,0,0,0,151,0,9,0,124,1, - 100,1,100,0,26,0,100,2,118,0,115,2,74,0,130,1, - 124,1,100,0,100,1,26,0,125,1,124,0,106,0,0,0, + 211,20,62,220,16,26,215,16,43,210,16,43,216,22,44,168, + 88,169,76,208,20,57,244,3,1,17,59,224,23,27,228,11, + 18,143,61,138,61,152,20,152,98,152,99,152,25,211,11,35, + 128,68,220,11,21,144,100,156,74,215,11,39,209,11,39,220, + 14,23,208,26,42,168,56,169,44,208,54,75,208,24,76,211, + 14,77,208,8,77,216,11,15,128,75,114,16,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,243,78,0,0,0,149,0,85,0,82,1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 124,1,25,0,0,0,125,2,124,2,100,3,25,0,0,0, - 125,3,124,2,100,4,25,0,0,0,125,4,124,2,100,5, - 25,0,0,0,125,5,116,3,0,0,0,0,0,0,0,0, - 124,4,124,3,171,2,0,0,0,0,0,0,124,5,102,2, - 83,0,35,0,116,4,0,0,0,0,0,0,0,0,116,6, - 0,0,0,0,0,0,0,0,116,8,0,0,0,0,0,0, - 0,0,102,3,36,0,114,3,1,0,89,0,121,6,119,0, - 120,3,89,0,119,1,41,7,78,114,19,0,0,0,169,2, - 218,1,99,218,1,111,114,240,0,0,0,233,6,0,0,0, - 233,3,0,0,0,41,2,114,1,0,0,0,114,1,0,0, - 0,41,5,114,37,0,0,0,114,247,0,0,0,114,35,0, - 0,0,218,10,73,110,100,101,120,69,114,114,111,114,114,22, - 0,0,0,41,6,114,41,0,0,0,114,18,0,0,0,114, - 78,0,0,0,114,182,0,0,0,114,183,0,0,0,218,17, - 117,110,99,111,109,112,114,101,115,115,101,100,95,115,105,122, - 101,115,6,0,0,0,32,32,32,32,32,32,114,13,0,0, - 0,114,218,0,0,0,114,218,0,0,0,134,2,0,0,115, - 126,0,0,0,128,0,240,2,12,5,20,224,15,19,144,66, - 144,67,136,121,152,74,209,15,38,208,8,38,208,15,38,216, - 15,19,144,67,144,82,136,121,136,4,216,20,24,151,75,145, - 75,160,4,209,20,37,136,9,240,6,0,16,25,152,17,137, - 124,136,4,216,15,24,152,17,137,124,136,4,216,28,37,160, - 97,153,76,208,8,25,220,15,29,152,100,160,68,211,15,41, - 208,43,60,208,15,60,208,8,60,248,220,12,20,148,106,164, - 41,208,11,44,242,0,1,5,20,217,15,19,240,3,1,5, - 20,250,115,15,0,0,0,130,57,60,0,188,20,65,19,3, - 193,18,1,65,19,3,99,2,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,3,0,0,0,243,136,0,0,0, - 151,0,124,1,100,1,100,0,26,0,100,2,118,0,115,2, - 74,0,130,1,124,1,100,0,100,1,26,0,125,1,9,0, - 124,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,124,1,25,0,0,0,125,2,116,3, - 0,0,0,0,0,0,0,0,124,0,106,4,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,2, - 171,2,0,0,0,0,0,0,83,0,35,0,116,6,0,0, - 0,0,0,0,0,0,36,0,114,3,1,0,89,0,121,0, - 119,0,120,3,89,0,119,1,41,3,78,114,19,0,0,0, - 114,249,0,0,0,41,4,114,37,0,0,0,114,75,0,0, - 0,114,38,0,0,0,114,35,0,0,0,41,3,114,41,0, - 0,0,114,18,0,0,0,114,78,0,0,0,115,3,0,0, - 0,32,32,32,114,13,0,0,0,114,214,0,0,0,114,214, - 0,0,0,153,2,0,0,115,91,0,0,0,128,0,224,11, - 15,144,2,144,3,136,57,152,10,209,11,34,208,4,34,208, - 11,34,216,11,15,144,3,144,18,136,57,128,68,240,4,5, - 5,50,216,20,24,151,75,145,75,160,4,209,20,37,136,9, - 244,8,0,16,25,152,20,159,28,153,28,160,121,211,15,49, - 208,8,49,248,244,7,0,12,20,242,0,1,5,20,217,15, - 19,240,3,1,5,20,250,115,15,0,0,0,144,15,53,0, - 181,9,65,1,3,193,0,1,65,1,3,99,2,0,0,0, - 0,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0, - 243,226,1,0,0,151,0,116,1,0,0,0,0,0,0,0, - 0,124,0,124,1,171,2,0,0,0,0,0,0,125,2,100, - 0,125,3,116,2,0,0,0,0,0,0,0,0,68,0,93, - 141,0,0,92,3,0,0,125,4,125,5,125,6,124,2,124, - 4,122,0,0,0,125,7,116,5,0,0,0,0,0,0,0, - 0,106,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,100,1,124,0,106,8,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,116,10,0, - 0,0,0,0,0,0,0,124,7,100,2,172,3,171,5,0, - 0,0,0,0,0,1,0,9,0,124,0,106,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124, - 7,25,0,0,0,125,8,124,8,100,4,25,0,0,0,125, - 9,116,15,0,0,0,0,0,0,0,0,124,0,106,8,0, + 0,83,1,83,2,53,2,0,0,0,0,0,0,110,0,85, + 0,82,1,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,83,3,83,2,53,2,0,0,0,0,0, + 0,110,0,85,0,36,0,41,4,78,115,2,0,0,0,13, + 10,243,1,0,0,0,10,243,1,0,0,0,13,41,1,114, + 32,0,0,0,41,1,218,6,115,111,117,114,99,101,115,1, + 0,0,0,32,114,17,0,0,0,218,23,95,110,111,114,109, + 97,108,105,122,101,95,108,105,110,101,95,101,110,100,105,110, + 103,115,114,21,1,0,0,199,2,0,0,115,39,0,0,0, + 128,0,216,13,19,143,94,137,94,152,71,160,85,211,13,43, + 128,70,216,13,19,143,94,137,94,152,69,160,53,211,13,41, + 128,70,216,11,17,128,77,114,16,0,0,0,99,2,0,0, + 0,0,0,0,0,0,0,0,0,7,0,0,0,3,0,0, + 0,243,46,0,0,0,149,0,91,1,0,0,0,0,0,0, + 0,0,85,1,53,1,0,0,0,0,0,0,110,1,91,3, + 0,0,0,0,0,0,0,0,88,16,83,1,83,2,83,3, + 57,4,36,0,41,4,78,114,119,0,0,0,84,41,1,218, + 12,100,111,110,116,95,105,110,104,101,114,105,116,41,2,114, + 21,1,0,0,218,7,99,111,109,112,105,108,101,41,2,114, + 85,0,0,0,114,20,1,0,0,115,2,0,0,0,32,32, + 114,17,0,0,0,218,15,95,99,111,109,112,105,108,101,95, + 115,111,117,114,99,101,114,25,1,0,0,206,2,0,0,115, + 27,0,0,0,128,0,220,13,36,160,86,211,13,44,128,70, + 220,11,18,144,54,160,86,184,36,209,11,63,208,4,63,114, + 16,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,11,0,0,0,3,0,0,0,243,124,0,0,0,149,0, + 91,0,0,0,0,0,0,0,0,0,82,2,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0, + 85,0,83,1,45,9,0,0,83,2,45,0,0,0,85,0, + 83,3,45,9,0,0,83,4,45,1,0,0,85,0,83,5, + 45,1,0,0,85,1,83,6,45,9,0,0,85,1,83,3, + 45,9,0,0,83,7,45,1,0,0,85,1,83,5,45,1, + 0,0,83,8,45,5,0,0,83,9,83,9,83,9,52,9, + 53,1,0,0,0,0,0,0,36,0,41,10,78,233,9,0, + 0,0,105,188,7,0,0,233,5,0,0,0,233,15,0,0, + 0,233,31,0,0,0,233,11,0,0,0,233,63,0,0,0, + 114,146,0,0,0,114,26,0,0,0,41,2,114,219,0,0, + 0,218,6,109,107,116,105,109,101,41,2,218,1,100,114,234, + 0,0,0,115,2,0,0,0,32,32,114,17,0,0,0,218, + 14,95,112,97,114,115,101,95,100,111,115,116,105,109,101,114, + 35,1,0,0,212,2,0,0,115,89,0,0,0,128,0,220, + 11,15,143,59,138,59,216,9,10,136,97,137,22,144,52,137, + 15,216,9,10,136,97,137,22,144,51,137,14,216,8,9,136, + 68,137,8,216,8,9,136,82,137,7,216,9,10,136,97,137, + 22,144,52,137,15,216,9,10,136,84,137,24,144,81,137,14, + 216,8,10,136,66,144,2,240,15,7,24,20,243,0,7,12, + 21,240,0,7,5,21,114,16,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, + 243,184,0,0,0,149,0,30,0,85,1,83,1,83,0,4, + 0,83,2,59,0,0,0,100,2,0,0,23,0,101,1,85, + 1,83,0,83,1,4,0,110,1,85,0,82,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53, + 0,0,0,0,0,0,0,85,1,5,0,0,0,110,2,85, + 2,83,3,5,0,0,0,110,3,85,2,83,4,5,0,0, + 0,110,4,85,2,83,5,5,0,0,0,110,5,91,3,0, + 0,0,0,0,0,0,0,88,67,53,2,0,0,0,0,0, + 0,85,5,52,2,36,0,33,0,91,4,0,0,0,0,0, + 0,0,0,91,6,0,0,0,0,0,0,0,0,91,8,0, + 0,0,0,0,0,0,0,52,3,7,0,97,3,0,0,32, + 0,31,0,103,6,102,0,61,3,31,0,102,1,41,7,78, + 114,26,0,0,0,169,2,218,1,99,218,1,111,114,28,1, + 0,0,233,6,0,0,0,114,174,0,0,0,41,2,114,1, + 0,0,0,114,1,0,0,0,41,5,114,82,0,0,0,114, + 35,1,0,0,114,83,0,0,0,218,10,73,110,100,101,120, + 69,114,114,111,114,114,29,0,0,0,41,6,114,46,0,0, + 0,114,25,0,0,0,114,87,0,0,0,114,219,0,0,0, + 114,220,0,0,0,218,17,117,110,99,111,109,112,114,101,115, + 115,101,100,95,115,105,122,101,115,6,0,0,0,32,32,32, + 32,32,32,114,17,0,0,0,114,6,1,0,0,114,6,1, + 0,0,225,2,0,0,115,127,0,0,0,128,0,240,2,12, + 5,20,224,15,19,144,66,144,67,136,121,152,74,211,15,38, + 208,8,38,208,15,38,216,15,19,144,67,144,82,136,121,136, + 4,216,20,24,151,79,145,79,211,20,37,160,100,209,20,43, + 136,9,240,6,0,16,25,152,17,137,124,136,4,216,15,24, + 152,17,137,124,136,4,216,28,37,160,97,153,76,208,8,25, + 220,15,29,152,100,211,15,41,208,43,60,208,15,60,208,8, + 60,248,220,12,20,148,106,164,41,208,11,44,243,0,1,5, + 20,217,15,19,240,3,1,5,20,250,115,17,0,0,0,130, + 62,65,1,0,193,1,21,65,25,3,193,24,1,65,25,3, + 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,243,150,0,0,0,149,0,85,1,83,1, + 83,0,4,0,83,2,59,0,0,0,100,2,0,0,23,0, + 101,1,85,1,83,0,83,1,4,0,110,1,30,0,85,0, + 82,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,0,0,0,0,0,0,0,85,1,5,0, + 0,0,110,2,91,3,0,0,0,0,0,0,0,0,85,0, + 82,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,85,2,53,2,0,0,0,0,0,0,36,0, + 33,0,91,6,0,0,0,0,0,0,0,0,7,0,97,3, + 0,0,32,0,31,0,103,0,102,0,61,3,31,0,102,1, + 41,3,78,114,26,0,0,0,114,37,1,0,0,41,4,114, + 82,0,0,0,114,84,0,0,0,114,43,0,0,0,114,83, + 0,0,0,41,3,114,46,0,0,0,114,25,0,0,0,114, + 87,0,0,0,115,3,0,0,0,32,32,32,114,17,0,0, + 0,114,2,1,0,0,114,2,1,0,0,244,2,0,0,115, + 94,0,0,0,128,0,224,11,15,144,2,144,3,136,57,152, + 10,211,11,34,208,4,34,208,11,34,216,11,15,144,3,144, + 18,136,57,128,68,240,4,5,5,50,216,20,24,151,79,145, + 79,211,20,37,160,100,209,20,43,136,9,244,8,0,16,25, + 152,20,159,28,153,28,160,121,211,15,49,208,8,49,248,244, + 7,0,12,20,243,0,1,5,20,217,15,19,240,3,1,5, + 20,250,115,15,0,0,0,146,19,59,0,187,10,65,8,3, + 193,7,1,65,8,3,99,2,0,0,0,0,0,0,0,0, + 0,0,0,9,0,0,0,3,0,0,0,243,236,1,0,0, + 149,0,91,1,0,0,0,0,0,0,0,0,88,1,53,2, + 0,0,0,0,0,0,110,2,83,0,110,3,91,2,0,0, + 0,0,0,0,0,0,19,0,72,144,0,0,117,3,0,0, + 112,69,110,6,88,36,45,0,0,0,110,7,91,4,0,0, + 0,0,0,0,0,0,82,6,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,34,0,83,1,85,0, + 82,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,91,10,0,0,0,0,0,0,0,0,85,7, + 83,2,83,3,57,5,32,0,30,0,85,0,82,13,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,124,8,171,2,0,0,0,0,0,0,125,10,100,0,125, - 11,124,5,114,17,9,0,116,17,0,0,0,0,0,0,0, - 0,124,0,124,9,124,7,124,1,124,10,171,5,0,0,0, - 0,0,0,125,11,110,12,116,21,0,0,0,0,0,0,0, - 0,124,9,124,10,171,2,0,0,0,0,0,0,125,11,124, - 11,128,1,140,131,124,8,100,4,25,0,0,0,125,9,124, - 11,124,6,124,9,102,3,99,2,1,0,83,0,4,0,124, - 3,114,19,100,5,124,3,155,0,157,2,125,13,116,25,0, - 0,0,0,0,0,0,0,124,13,124,1,172,6,171,2,0, - 0,0,0,0,0,124,3,130,2,116,25,0,0,0,0,0, - 0,0,0,100,7,124,1,155,2,157,2,124,1,172,6,171, - 2,0,0,0,0,0,0,130,1,35,0,116,18,0,0,0, - 0,0,0,0,0,36,0,114,12,125,12,124,12,125,3,89, - 0,100,0,125,12,126,12,140,69,100,0,125,12,126,12,119, - 1,119,0,120,3,89,0,119,1,35,0,116,22,0,0,0, - 0,0,0,0,0,36,0,114,3,1,0,89,0,140,216,119, - 0,120,3,89,0,119,1,41,8,78,122,13,116,114,121,105, - 110,103,32,123,125,123,125,123,125,114,126,0,0,0,41,1, - 218,9,118,101,114,98,111,115,105,116,121,114,1,0,0,0, - 122,20,109,111,100,117,108,101,32,108,111,97,100,32,102,97, - 105,108,101,100,58,32,114,84,0,0,0,114,83,0,0,0, - 41,13,114,54,0,0,0,114,131,0,0,0,114,52,0,0, - 0,114,108,0,0,0,114,38,0,0,0,114,26,0,0,0, - 114,37,0,0,0,114,75,0,0,0,114,228,0,0,0,114, - 107,0,0,0,114,237,0,0,0,114,35,0,0,0,114,4, - 0,0,0,41,14,114,41,0,0,0,114,58,0,0,0,114, - 18,0,0,0,218,12,105,109,112,111,114,116,95,101,114,114, - 111,114,114,132,0,0,0,114,133,0,0,0,114,69,0,0, - 0,114,89,0,0,0,114,78,0,0,0,114,61,0,0,0, - 114,174,0,0,0,114,68,0,0,0,218,3,101,120,99,114, - 109,0,0,0,115,14,0,0,0,32,32,32,32,32,32,32, - 32,32,32,32,32,32,32,114,13,0,0,0,114,66,0,0, - 0,114,66,0,0,0,168,2,0,0,115,34,1,0,0,128, - 0,220,11,27,152,68,160,40,211,11,43,128,68,216,19,23, - 128,76,223,41,57,209,8,37,136,6,144,10,152,73,216,19, - 23,152,38,145,61,136,8,220,8,18,215,8,35,209,8,35, - 160,79,176,84,183,92,177,92,196,56,200,88,208,97,98,213, - 8,99,240,2,20,9,44,216,24,28,159,11,153,11,160,72, - 209,24,45,136,73,240,8,0,23,32,160,1,145,108,136,71, - 220,19,28,152,84,159,92,153,92,168,57,211,19,53,136,68, - 216,19,23,136,68,217,15,25,240,2,3,17,39,220,27,42, - 168,52,176,23,184,40,192,72,200,100,211,27,83,145,68,244, - 8,0,24,39,160,119,176,4,211,23,53,144,4,216,15,19, - 136,124,240,6,0,17,25,216,22,31,160,1,145,108,136,71, - 216,19,23,152,25,160,71,208,19,43,210,12,43,240,47,0, - 42,58,241,50,0,12,24,216,20,40,168,28,168,14,208,18, - 55,136,67,220,18,32,160,19,168,56,212,18,52,184,44,208, - 12,70,228,18,32,208,35,53,176,104,176,92,208,33,66,200, - 24,212,18,82,208,12,82,248,244,31,0,24,35,242,0,1, - 17,39,216,35,38,149,76,251,240,3,1,17,39,251,244,19, - 0,16,24,242,0,1,9,17,217,12,16,240,3,1,9,17, - 250,115,42,0,0,0,193,10,15,67,34,2,193,57,15,67, - 10,2,195,10,9,67,31,5,195,19,2,67,26,5,195,26, - 5,67,31,5,195,34,9,67,46,5,195,45,1,67,46,5, - 41,46,114,123,0,0,0,218,26,95,102,114,111,122,101,110, - 95,105,109,112,111,114,116,108,105,98,95,101,120,116,101,114, - 110,97,108,114,27,0,0,0,114,2,0,0,0,114,3,0, - 0,0,218,17,95,102,114,111,122,101,110,95,105,109,112,111, - 114,116,108,105,98,114,52,0,0,0,114,212,0,0,0,114, - 154,0,0,0,114,219,0,0,0,114,97,0,0,0,114,182, - 0,0,0,114,94,0,0,0,218,7,95,95,97,108,108,95, - 95,114,26,0,0,0,218,15,112,97,116,104,95,115,101,112, - 97,114,97,116,111,114,115,114,24,0,0,0,114,107,0,0, - 0,114,4,0,0,0,114,34,0,0,0,114,23,0,0,0, - 114,100,0,0,0,114,158,0,0,0,114,160,0,0,0,114, - 162,0,0,0,218,13,95,76,111,97,100,101,114,66,97,115, - 105,99,115,114,5,0,0,0,114,131,0,0,0,114,54,0, - 0,0,114,55,0,0,0,114,51,0,0,0,114,36,0,0, - 0,114,167,0,0,0,114,195,0,0,0,114,198,0,0,0, - 114,75,0,0,0,114,207,0,0,0,114,228,0,0,0,218, - 8,95,95,99,111,100,101,95,95,114,221,0,0,0,114,233, - 0,0,0,114,237,0,0,0,114,247,0,0,0,114,218,0, - 0,0,114,214,0,0,0,114,66,0,0,0,114,11,0,0, - 0,114,12,0,0,0,114,13,0,0,0,218,8,60,109,111, - 100,117,108,101,62,114,11,1,0,0,1,0,0,0,115,51, - 1,0,0,240,3,1,1,1,241,2,12,1,4,243,32,0, - 1,57,223,0,69,219,0,38,219,0,11,219,0,10,219,0, + 53,0,0,0,0,0,0,0,85,7,5,0,0,0,110,8, + 85,8,83,4,5,0,0,0,110,9,91,15,0,0,0,0, + 0,0,0,0,85,0,82,8,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,85,8,53,2,0,0, + 0,0,0,0,110,10,83,0,110,11,85,5,40,0,0,0, + 0,0,0,0,97,15,0,0,30,0,91,17,0,0,0,0, + 0,0,0,0,88,9,88,113,85,10,53,5,0,0,0,0, + 0,0,110,11,79,11,91,21,0,0,0,0,0,0,0,0, + 88,154,53,2,0,0,0,0,0,0,110,11,85,11,99,2, + 0,0,77,135,0,0,85,8,83,4,5,0,0,0,110,9, + 88,182,85,9,52,3,115,2,32,0,36,0,11,0,32,0, + 85,3,40,0,0,0,0,0,0,0,97,15,0,0,83,5, + 85,3,14,0,51,2,110,13,91,25,0,0,0,0,0,0, + 0,0,88,209,83,6,57,2,85,3,101,2,91,25,0,0, + 0,0,0,0,0,0,83,7,85,1,60,2,14,0,51,2, + 85,1,83,6,57,2,101,1,33,0,91,18,0,0,0,0, + 0,0,0,0,7,0,97,12,0,0,110,12,85,12,110,3, + 31,0,83,0,110,12,65,12,78,71,83,0,110,12,65,12, + 102,1,102,0,61,3,31,0,102,1,33,0,91,22,0,0, + 0,0,0,0,0,0,7,0,97,4,0,0,32,0,31,0, + 77,222,0,0,102,0,61,3,31,0,102,1,41,8,78,122, + 13,116,114,121,105,110,103,32,123,125,123,125,123,125,114,146, + 0,0,0,41,1,218,9,118,101,114,98,111,115,105,116,121, + 114,1,0,0,0,122,20,109,111,100,117,108,101,32,108,111, + 97,100,32,102,97,105,108,101,100,58,32,114,95,0,0,0, + 114,94,0,0,0,41,13,114,59,0,0,0,114,151,0,0, + 0,114,57,0,0,0,114,121,0,0,0,114,43,0,0,0, + 114,33,0,0,0,114,82,0,0,0,114,84,0,0,0,114, + 16,1,0,0,114,120,0,0,0,114,25,1,0,0,114,83, + 0,0,0,114,5,0,0,0,41,14,114,46,0,0,0,114, + 63,0,0,0,114,25,0,0,0,218,12,105,109,112,111,114, + 116,95,101,114,114,111,114,114,152,0,0,0,114,153,0,0, + 0,114,75,0,0,0,114,100,0,0,0,114,87,0,0,0, + 114,66,0,0,0,114,207,0,0,0,114,74,0,0,0,218, + 3,101,120,99,114,122,0,0,0,115,14,0,0,0,32,32, + 32,32,32,32,32,32,32,32,32,32,32,32,114,17,0,0, + 0,114,72,0,0,0,114,72,0,0,0,3,3,0,0,115, + 21,1,0,0,128,0,220,11,27,152,68,211,11,43,128,68, + 216,19,23,128,76,223,41,57,209,8,37,136,6,152,73,216, + 19,23,145,61,136,8,220,8,18,215,8,35,210,8,35,160, + 79,176,84,183,92,177,92,196,56,200,88,208,97,98,210,8, + 99,240,2,20,9,44,216,24,28,159,15,153,15,211,24,41, + 168,40,209,24,51,136,73,240,8,0,23,32,160,1,145,108, + 136,71,220,19,28,152,84,159,92,153,92,168,57,211,19,53, + 136,68,216,19,23,136,68,222,15,25,240,2,3,17,39,220, + 27,42,168,52,184,40,200,100,211,27,83,145,68,244,8,0, + 24,39,160,119,211,23,53,144,4,216,15,19,137,124,241,6, + 0,17,25,216,22,31,160,1,145,108,136,71,216,19,23,160, + 71,208,19,43,210,12,43,241,47,0,42,58,246,50,0,12, + 24,216,20,40,168,28,168,14,208,18,55,136,67,220,18,32, + 160,19,209,18,52,184,44,208,12,70,228,18,32,208,35,53, + 176,104,177,92,208,33,66,200,24,209,18,82,208,12,82,248, + 244,31,0,24,35,243,0,1,17,39,216,35,38,149,76,251, + 240,3,1,17,39,251,244,19,0,16,24,243,0,1,9,17, + 218,12,16,240,3,1,9,17,250,115,42,0,0,0,193,5, + 19,67,37,2,193,61,13,67,12,2,195,12,10,67,34,5, + 195,22,2,67,29,5,195,29,5,67,34,5,195,37,10,67, + 51,5,195,50,1,67,51,5,41,53,114,143,0,0,0,218, + 26,95,102,114,111,122,101,110,95,105,109,112,111,114,116,108, + 105,98,95,101,120,116,101,114,110,97,108,114,34,0,0,0, + 114,2,0,0,0,114,3,0,0,0,114,4,0,0,0,218, + 17,95,102,114,111,122,101,110,95,105,109,112,111,114,116,108, + 105,98,114,57,0,0,0,114,0,1,0,0,114,178,0,0, + 0,114,7,1,0,0,114,110,0,0,0,114,219,0,0,0, + 114,107,0,0,0,218,7,95,95,97,108,108,95,95,114,33, + 0,0,0,218,15,112,97,116,104,95,115,101,112,97,114,97, + 116,111,114,115,114,31,0,0,0,114,120,0,0,0,114,5, + 0,0,0,114,41,0,0,0,114,30,0,0,0,114,113,0, + 0,0,114,183,0,0,0,114,184,0,0,0,114,185,0,0, + 0,114,189,0,0,0,218,21,83,84,82,73,78,71,95,69, + 78,68,95,76,79,67,65,84,79,82,95,54,52,114,190,0, + 0,0,114,182,0,0,0,114,196,0,0,0,114,197,0,0, + 0,218,13,95,76,111,97,100,101,114,66,97,115,105,99,115, + 114,6,0,0,0,114,151,0,0,0,114,59,0,0,0,114, + 60,0,0,0,114,56,0,0,0,114,42,0,0,0,114,195, + 0,0,0,114,239,0,0,0,114,242,0,0,0,114,84,0, + 0,0,114,251,0,0,0,114,16,1,0,0,218,8,95,95, + 99,111,100,101,95,95,114,9,1,0,0,114,21,1,0,0, + 114,25,1,0,0,114,35,1,0,0,114,6,1,0,0,114, + 2,1,0,0,114,72,0,0,0,114,10,0,0,0,114,16, + 0,0,0,114,17,0,0,0,218,8,60,109,111,100,117,108, + 101,62,114,55,1,0,0,1,0,0,0,115,88,1,0,0, + 240,3,1,1,1,241,2,10,1,4,243,28,0,1,57,223, + 0,85,209,0,85,219,0,38,219,0,11,219,0,10,219,0, 14,219,0,10,219,0,11,219,0,16,224,11,27,152,93,208, 10,43,128,7,240,6,0,12,31,215,11,39,209,11,39,128, 8,216,15,34,215,15,50,209,15,50,176,49,176,50,208,15, 54,128,12,244,6,1,1,9,144,91,244,0,1,1,9,240, 8,0,24,26,208,0,20,225,15,19,144,67,139,121,128,12, - 224,23,25,208,0,20,216,21,34,208,0,18,216,18,31,128, - 15,244,4,100,3,1,79,1,208,18,37,215,18,51,209,18, - 51,244,0,100,3,1,79,1,240,90,7,0,6,14,144,14, - 209,5,30,160,4,160,100,208,4,43,216,5,13,144,13,209, - 5,29,152,117,160,100,208,4,43,216,4,25,216,4,25,240, - 9,5,20,2,208,0,16,242,18,1,1,53,242,8,6,1, - 34,242,18,6,1,16,242,62,123,1,1,17,240,74,4,24, - 5,47,240,5,0,1,12,240,58,0,19,24,128,15,242,10, - 18,1,22,242,42,40,1,37,242,92,1,2,1,29,242,16, - 38,1,16,241,80,1,0,14,18,144,47,215,18,42,209,18, - 42,211,13,43,128,10,242,10,3,1,18,242,14,2,1,64, - 1,242,12,8,1,21,242,26,13,1,20,242,38,10,1,50, - 243,30,32,1,83,1,114,12,0,0,0, + 224,23,25,208,0,20,216,26,28,208,0,23,216,34,36,208, + 0,31,216,21,34,208,0,18,216,24,37,208,0,21,216,20, + 33,208,0,17,216,18,31,128,15,216,13,23,128,10,216,18, + 21,128,15,244,4,104,3,1,79,1,208,18,37,215,18,51, + 209,18,51,244,0,104,3,1,79,1,240,98,7,0,6,14, + 144,14,209,5,30,160,4,160,100,208,4,43,216,5,13,144, + 13,209,5,29,152,117,160,100,208,4,43,216,4,25,216,4, + 25,240,9,5,20,2,208,0,16,242,18,1,1,53,242,8, + 6,1,40,242,18,6,1,16,242,62,78,3,1,17,240,112, + 6,24,5,47,240,5,0,1,12,240,58,0,19,24,128,15, + 242,10,18,1,22,242,42,40,1,37,242,92,1,2,1,29, + 242,16,38,1,16,241,80,1,0,14,18,144,47,215,18,42, + 209,18,42,211,13,43,128,10,242,10,3,1,18,242,14,2, + 1,64,1,242,12,8,1,21,242,26,13,1,20,242,38,10, + 1,50,243,30,32,1,83,1,114,16,0,0,0, }; diff --git a/contrib/tools/python3/Python/future.c b/contrib/tools/python3/Python/future.c index 998a7f740ea..e411e659dfc 100644 --- a/contrib/tools/python3/Python/future.c +++ b/contrib/tools/python3/Python/future.c @@ -1,10 +1,12 @@ #include "Python.h" #include "pycore_ast.h" // _PyAST_GetDocString() +#include "pycore_symtable.h" // _PyFutureFeatures +#include "pycore_unicodeobject.h" // _PyUnicode_EqualToASCIIString() #define UNDEFINED_FUTURE_FEATURE "future feature %.100s is not defined" static int -future_check_features(PyFutureFeatures *ff, stmt_ty s, PyObject *filename) +future_check_features(_PyFutureFeatures *ff, stmt_ty s, PyObject *filename) { int i; @@ -60,7 +62,7 @@ future_check_features(PyFutureFeatures *ff, stmt_ty s, PyObject *filename) } static int -future_parse(PyFutureFeatures *ff, mod_ty mod, PyObject *filename) +future_parse(_PyFutureFeatures *ff, mod_ty mod, PyObject *filename) { if (!(mod->kind == Module_kind || mod->kind == Interactive_kind)) { return 1; @@ -83,7 +85,7 @@ future_parse(PyFutureFeatures *ff, mod_ty mod, PyObject *filename) * are another future statement and a doc string. */ - if (s->kind == ImportFrom_kind) { + if (s->kind == ImportFrom_kind && s->v.ImportFrom.level == 0) { identifier modname = s->v.ImportFrom.module; if (modname && _PyUnicode_EqualToASCIIString(modname, "__future__")) { @@ -105,10 +107,10 @@ future_parse(PyFutureFeatures *ff, mod_ty mod, PyObject *filename) int -_PyFuture_FromAST(mod_ty mod, PyObject *filename, PyFutureFeatures *ff) +_PyFuture_FromAST(mod_ty mod, PyObject *filename, _PyFutureFeatures *ff) { ff->ff_features = 0; - ff->ff_location = (_PyCompilerSrcLocation){-1, -1, -1, -1}; + ff->ff_location = (_Py_SourceLocation){-1, -1, -1, -1}; if (!future_parse(ff, mod, filename)) { return 0; diff --git a/contrib/tools/python3/Python/gc.c b/contrib/tools/python3/Python/gc.c new file mode 100644 index 00000000000..d28cc41b20a --- /dev/null +++ b/contrib/tools/python3/Python/gc.c @@ -0,0 +1,2005 @@ +// This implements the reference cycle garbage collector. +// The Python module inteface to the collector is in gcmodule.c. +// See https://devguide.python.org/internals/garbage-collector/ + +#include "Python.h" +#include "pycore_ceval.h" // _Py_set_eval_breaker_bit() +#include "pycore_context.h" +#include "pycore_dict.h" // _PyDict_MaybeUntrack() +#include "pycore_initconfig.h" +#include "pycore_interp.h" // PyInterpreterState.gc +#include "pycore_object.h" +#include "pycore_object_alloc.h" // _PyObject_MallocWithType() +#include "pycore_pyerrors.h" +#include "pycore_pystate.h" // _PyThreadState_GET() +#include "pycore_weakref.h" // _PyWeakref_ClearRef() +#include "pydtrace.h" + +#ifndef Py_GIL_DISABLED + +typedef struct _gc_runtime_state GCState; + +#ifdef Py_DEBUG +# ifndef GC_NDEBUG +# define GC_DEBUG +# endif +#endif + +#define GC_NEXT _PyGCHead_NEXT +#define GC_PREV _PyGCHead_PREV + +// update_refs() set this bit for all objects in current generation. +// subtract_refs() and move_unreachable() uses this to distinguish +// visited object is in GCing or not. +// +// move_unreachable() removes this flag from reachable objects. +// Only unreachable objects have this flag. +// +// No objects in interpreter have this flag after GC ends. +#define PREV_MASK_COLLECTING _PyGC_PREV_MASK_COLLECTING + +// Lowest bit of _gc_next is used for UNREACHABLE flag. +// +// This flag represents the object is in unreachable list in move_unreachable() +// +// Although this flag is used only in move_unreachable(), move_unreachable() +// doesn't clear this flag to skip unnecessary iteration. +// move_legacy_finalizers() removes this flag instead. +// Between them, unreachable list is not normal list and we can not use +// most gc_list_* functions for it. +#define NEXT_MASK_UNREACHABLE (1) + +#define AS_GC(op) _Py_AS_GC(op) +#define FROM_GC(gc) _Py_FROM_GC(gc) + +// Automatically choose the generation that needs collecting. +#define GENERATION_AUTO (-1) + +static inline int +gc_is_collecting(PyGC_Head *g) +{ + return (g->_gc_prev & PREV_MASK_COLLECTING) != 0; +} + +static inline void +gc_clear_collecting(PyGC_Head *g) +{ + g->_gc_prev &= ~PREV_MASK_COLLECTING; +} + +static inline Py_ssize_t +gc_get_refs(PyGC_Head *g) +{ + return (Py_ssize_t)(g->_gc_prev >> _PyGC_PREV_SHIFT); +} + +static inline void +gc_set_refs(PyGC_Head *g, Py_ssize_t refs) +{ + g->_gc_prev = (g->_gc_prev & ~_PyGC_PREV_MASK) + | ((uintptr_t)(refs) << _PyGC_PREV_SHIFT); +} + +static inline void +gc_reset_refs(PyGC_Head *g, Py_ssize_t refs) +{ + g->_gc_prev = (g->_gc_prev & _PyGC_PREV_MASK_FINALIZED) + | PREV_MASK_COLLECTING + | ((uintptr_t)(refs) << _PyGC_PREV_SHIFT); +} + +static inline void +gc_decref(PyGC_Head *g) +{ + _PyObject_ASSERT_WITH_MSG(FROM_GC(g), + gc_get_refs(g) > 0, + "refcount is too small"); + g->_gc_prev -= 1 << _PyGC_PREV_SHIFT; +} + + +#define GEN_HEAD(gcstate, n) (&(gcstate)->generations[n].head) + + +static GCState * +get_gc_state(void) +{ + PyInterpreterState *interp = _PyInterpreterState_GET(); + return &interp->gc; +} + + +void +_PyGC_InitState(GCState *gcstate) +{ +#define INIT_HEAD(GEN) \ + do { \ + GEN.head._gc_next = (uintptr_t)&GEN.head; \ + GEN.head._gc_prev = (uintptr_t)&GEN.head; \ + } while (0) + + for (int i = 0; i < NUM_GENERATIONS; i++) { + assert(gcstate->generations[i].count == 0); + INIT_HEAD(gcstate->generations[i]); + }; + gcstate->generation0 = GEN_HEAD(gcstate, 0); + INIT_HEAD(gcstate->permanent_generation); + +#undef INIT_HEAD +} + + +PyStatus +_PyGC_Init(PyInterpreterState *interp) +{ + GCState *gcstate = &interp->gc; + + gcstate->garbage = PyList_New(0); + if (gcstate->garbage == NULL) { + return _PyStatus_NO_MEMORY(); + } + + gcstate->callbacks = PyList_New(0); + if (gcstate->callbacks == NULL) { + return _PyStatus_NO_MEMORY(); + } + + return _PyStatus_OK(); +} + + +/* +_gc_prev values +--------------- + +Between collections, _gc_prev is used for doubly linked list. + +Lowest two bits of _gc_prev are used for flags. +PREV_MASK_COLLECTING is used only while collecting and cleared before GC ends +or _PyObject_GC_UNTRACK() is called. + +During a collection, _gc_prev is temporary used for gc_refs, and the gc list +is singly linked until _gc_prev is restored. + +gc_refs + At the start of a collection, update_refs() copies the true refcount + to gc_refs, for each object in the generation being collected. + subtract_refs() then adjusts gc_refs so that it equals the number of + times an object is referenced directly from outside the generation + being collected. + +PREV_MASK_COLLECTING + Objects in generation being collected are marked PREV_MASK_COLLECTING in + update_refs(). + + +_gc_next values +--------------- + +_gc_next takes these values: + +0 + The object is not tracked + +!= 0 + Pointer to the next object in the GC list. + Additionally, lowest bit is used temporary for + NEXT_MASK_UNREACHABLE flag described below. + +NEXT_MASK_UNREACHABLE + move_unreachable() then moves objects not reachable (whether directly or + indirectly) from outside the generation into an "unreachable" set and + set this flag. + + Objects that are found to be reachable have gc_refs set to 1. + When this flag is set for the reachable object, the object must be in + "unreachable" set. + The flag is unset and the object is moved back to "reachable" set. + + move_legacy_finalizers() will remove this flag from "unreachable" set. +*/ + +/*** list functions ***/ + +static inline void +gc_list_init(PyGC_Head *list) +{ + // List header must not have flags. + // We can assign pointer by simple cast. + list->_gc_prev = (uintptr_t)list; + list->_gc_next = (uintptr_t)list; +} + +static inline int +gc_list_is_empty(PyGC_Head *list) +{ + return (list->_gc_next == (uintptr_t)list); +} + +/* Append `node` to `list`. */ +static inline void +gc_list_append(PyGC_Head *node, PyGC_Head *list) +{ + PyGC_Head *last = (PyGC_Head *)list->_gc_prev; + + // last <-> node + _PyGCHead_SET_PREV(node, last); + _PyGCHead_SET_NEXT(last, node); + + // node <-> list + _PyGCHead_SET_NEXT(node, list); + list->_gc_prev = (uintptr_t)node; +} + +/* Remove `node` from the gc list it's currently in. */ +static inline void +gc_list_remove(PyGC_Head *node) +{ + PyGC_Head *prev = GC_PREV(node); + PyGC_Head *next = GC_NEXT(node); + + _PyGCHead_SET_NEXT(prev, next); + _PyGCHead_SET_PREV(next, prev); + + node->_gc_next = 0; /* object is not currently tracked */ +} + +/* Move `node` from the gc list it's currently in (which is not explicitly + * named here) to the end of `list`. This is semantically the same as + * gc_list_remove(node) followed by gc_list_append(node, list). + */ +static void +gc_list_move(PyGC_Head *node, PyGC_Head *list) +{ + /* Unlink from current list. */ + PyGC_Head *from_prev = GC_PREV(node); + PyGC_Head *from_next = GC_NEXT(node); + _PyGCHead_SET_NEXT(from_prev, from_next); + _PyGCHead_SET_PREV(from_next, from_prev); + + /* Relink at end of new list. */ + // list must not have flags. So we can skip macros. + PyGC_Head *to_prev = (PyGC_Head*)list->_gc_prev; + _PyGCHead_SET_PREV(node, to_prev); + _PyGCHead_SET_NEXT(to_prev, node); + list->_gc_prev = (uintptr_t)node; + _PyGCHead_SET_NEXT(node, list); +} + +/* append list `from` onto list `to`; `from` becomes an empty list */ +static void +gc_list_merge(PyGC_Head *from, PyGC_Head *to) +{ + assert(from != to); + if (!gc_list_is_empty(from)) { + PyGC_Head *to_tail = GC_PREV(to); + PyGC_Head *from_head = GC_NEXT(from); + PyGC_Head *from_tail = GC_PREV(from); + assert(from_head != from); + assert(from_tail != from); + + _PyGCHead_SET_NEXT(to_tail, from_head); + _PyGCHead_SET_PREV(from_head, to_tail); + + _PyGCHead_SET_NEXT(from_tail, to); + _PyGCHead_SET_PREV(to, from_tail); + } + gc_list_init(from); +} + +static Py_ssize_t +gc_list_size(PyGC_Head *list) +{ + PyGC_Head *gc; + Py_ssize_t n = 0; + for (gc = GC_NEXT(list); gc != list; gc = GC_NEXT(gc)) { + n++; + } + return n; +} + +/* Walk the list and mark all objects as non-collecting */ +static inline void +gc_list_clear_collecting(PyGC_Head *collectable) +{ + PyGC_Head *gc; + for (gc = GC_NEXT(collectable); gc != collectable; gc = GC_NEXT(gc)) { + gc_clear_collecting(gc); + } +} + +/* Append objects in a GC list to a Python list. + * Return 0 if all OK, < 0 if error (out of memory for list) + */ +static int +append_objects(PyObject *py_list, PyGC_Head *gc_list) +{ + PyGC_Head *gc; + for (gc = GC_NEXT(gc_list); gc != gc_list; gc = GC_NEXT(gc)) { + PyObject *op = FROM_GC(gc); + if (op != py_list) { + if (PyList_Append(py_list, op)) { + return -1; /* exception */ + } + } + } + return 0; +} + +// Constants for validate_list's flags argument. +enum flagstates {collecting_clear_unreachable_clear, + collecting_clear_unreachable_set, + collecting_set_unreachable_clear, + collecting_set_unreachable_set}; + +#ifdef GC_DEBUG +// validate_list checks list consistency. And it works as document +// describing when flags are expected to be set / unset. +// `head` must be a doubly-linked gc list, although it's fine (expected!) if +// the prev and next pointers are "polluted" with flags. +// What's checked: +// - The `head` pointers are not polluted. +// - The objects' PREV_MASK_COLLECTING and NEXT_MASK_UNREACHABLE flags are all +// `set or clear, as specified by the 'flags' argument. +// - The prev and next pointers are mutually consistent. +static void +validate_list(PyGC_Head *head, enum flagstates flags) +{ + assert((head->_gc_prev & PREV_MASK_COLLECTING) == 0); + assert((head->_gc_next & NEXT_MASK_UNREACHABLE) == 0); + uintptr_t prev_value = 0, next_value = 0; + switch (flags) { + case collecting_clear_unreachable_clear: + break; + case collecting_set_unreachable_clear: + prev_value = PREV_MASK_COLLECTING; + break; + case collecting_clear_unreachable_set: + next_value = NEXT_MASK_UNREACHABLE; + break; + case collecting_set_unreachable_set: + prev_value = PREV_MASK_COLLECTING; + next_value = NEXT_MASK_UNREACHABLE; + break; + default: + assert(! "bad internal flags argument"); + } + PyGC_Head *prev = head; + PyGC_Head *gc = GC_NEXT(head); + while (gc != head) { + PyGC_Head *trueprev = GC_PREV(gc); + PyGC_Head *truenext = (PyGC_Head *)(gc->_gc_next & ~NEXT_MASK_UNREACHABLE); + assert(truenext != NULL); + assert(trueprev == prev); + assert((gc->_gc_prev & PREV_MASK_COLLECTING) == prev_value); + assert((gc->_gc_next & NEXT_MASK_UNREACHABLE) == next_value); + prev = gc; + gc = truenext; + } + assert(prev == GC_PREV(head)); +} +#else +#define validate_list(x, y) do{}while(0) +#endif + +/*** end of list stuff ***/ + + +/* Set all gc_refs = ob_refcnt. After this, gc_refs is > 0 and + * PREV_MASK_COLLECTING bit is set for all objects in containers. + */ +static void +update_refs(PyGC_Head *containers) +{ + PyGC_Head *next; + PyGC_Head *gc = GC_NEXT(containers); + + while (gc != containers) { + next = GC_NEXT(gc); + PyObject *op = FROM_GC(gc); + /* Move any object that might have become immortal to the + * permanent generation as the reference count is not accurately + * reflecting the actual number of live references to this object + */ + if (_Py_IsImmortal(op)) { + gc_list_move(gc, &get_gc_state()->permanent_generation.head); + gc = next; + continue; + } + gc_reset_refs(gc, Py_REFCNT(op)); + /* Python's cyclic gc should never see an incoming refcount + * of 0: if something decref'ed to 0, it should have been + * deallocated immediately at that time. + * Possible cause (if the assert triggers): a tp_dealloc + * routine left a gc-aware object tracked during its teardown + * phase, and did something-- or allowed something to happen -- + * that called back into Python. gc can trigger then, and may + * see the still-tracked dying object. Before this assert + * was added, such mistakes went on to allow gc to try to + * delete the object again. In a debug build, that caused + * a mysterious segfault, when _Py_ForgetReference tried + * to remove the object from the doubly-linked list of all + * objects a second time. In a release build, an actual + * double deallocation occurred, which leads to corruption + * of the allocator's internal bookkeeping pointers. That's + * so serious that maybe this should be a release-build + * check instead of an assert? + */ + _PyObject_ASSERT(op, gc_get_refs(gc) != 0); + gc = next; + } +} + +/* A traversal callback for subtract_refs. */ +static int +visit_decref(PyObject *op, void *parent) +{ + OBJECT_STAT_INC(object_visits); + _PyObject_ASSERT(_PyObject_CAST(parent), !_PyObject_IsFreed(op)); + + if (_PyObject_IS_GC(op)) { + PyGC_Head *gc = AS_GC(op); + /* We're only interested in gc_refs for objects in the + * generation being collected, which can be recognized + * because only they have positive gc_refs. + */ + if (gc_is_collecting(gc)) { + gc_decref(gc); + } + } + return 0; +} + +/* Subtract internal references from gc_refs. After this, gc_refs is >= 0 + * for all objects in containers, and is GC_REACHABLE for all tracked gc + * objects not in containers. The ones with gc_refs > 0 are directly + * reachable from outside containers, and so can't be collected. + */ +static void +subtract_refs(PyGC_Head *containers) +{ + traverseproc traverse; + PyGC_Head *gc = GC_NEXT(containers); + for (; gc != containers; gc = GC_NEXT(gc)) { + PyObject *op = FROM_GC(gc); + traverse = Py_TYPE(op)->tp_traverse; + (void) traverse(op, + visit_decref, + op); + } +} + +/* A traversal callback for move_unreachable. */ +static int +visit_reachable(PyObject *op, void *arg) +{ + PyGC_Head *reachable = arg; + OBJECT_STAT_INC(object_visits); + if (!_PyObject_IS_GC(op)) { + return 0; + } + + PyGC_Head *gc = AS_GC(op); + const Py_ssize_t gc_refs = gc_get_refs(gc); + + // Ignore objects in other generation. + // This also skips objects "to the left" of the current position in + // move_unreachable's scan of the 'young' list - they've already been + // traversed, and no longer have the PREV_MASK_COLLECTING flag. + if (! gc_is_collecting(gc)) { + return 0; + } + // It would be a logic error elsewhere if the collecting flag were set on + // an untracked object. + _PyObject_ASSERT(op, gc->_gc_next != 0); + + if (gc->_gc_next & NEXT_MASK_UNREACHABLE) { + /* This had gc_refs = 0 when move_unreachable got + * to it, but turns out it's reachable after all. + * Move it back to move_unreachable's 'young' list, + * and move_unreachable will eventually get to it + * again. + */ + // Manually unlink gc from unreachable list because the list functions + // don't work right in the presence of NEXT_MASK_UNREACHABLE flags. + PyGC_Head *prev = GC_PREV(gc); + PyGC_Head *next = (PyGC_Head*)(gc->_gc_next & ~NEXT_MASK_UNREACHABLE); + _PyObject_ASSERT(FROM_GC(prev), + prev->_gc_next & NEXT_MASK_UNREACHABLE); + _PyObject_ASSERT(FROM_GC(next), + next->_gc_next & NEXT_MASK_UNREACHABLE); + prev->_gc_next = gc->_gc_next; // copy NEXT_MASK_UNREACHABLE + _PyGCHead_SET_PREV(next, prev); + + gc_list_append(gc, reachable); + gc_set_refs(gc, 1); + } + else if (gc_refs == 0) { + /* This is in move_unreachable's 'young' list, but + * the traversal hasn't yet gotten to it. All + * we need to do is tell move_unreachable that it's + * reachable. + */ + gc_set_refs(gc, 1); + } + /* Else there's nothing to do. + * If gc_refs > 0, it must be in move_unreachable's 'young' + * list, and move_unreachable will eventually get to it. + */ + else { + _PyObject_ASSERT_WITH_MSG(op, gc_refs > 0, "refcount is too small"); + } + return 0; +} + +/* Move the unreachable objects from young to unreachable. After this, + * all objects in young don't have PREV_MASK_COLLECTING flag and + * unreachable have the flag. + * All objects in young after this are directly or indirectly reachable + * from outside the original young; and all objects in unreachable are + * not. + * + * This function restores _gc_prev pointer. young and unreachable are + * doubly linked list after this function. + * But _gc_next in unreachable list has NEXT_MASK_UNREACHABLE flag. + * So we can not gc_list_* functions for unreachable until we remove the flag. + */ +static void +move_unreachable(PyGC_Head *young, PyGC_Head *unreachable) +{ + // previous elem in the young list, used for restore gc_prev. + PyGC_Head *prev = young; + PyGC_Head *gc = GC_NEXT(young); + + /* Invariants: all objects "to the left" of us in young are reachable + * (directly or indirectly) from outside the young list as it was at entry. + * + * All other objects from the original young "to the left" of us are in + * unreachable now, and have NEXT_MASK_UNREACHABLE. All objects to the + * left of us in 'young' now have been scanned, and no objects here + * or to the right have been scanned yet. + */ + + while (gc != young) { + if (gc_get_refs(gc)) { + /* gc is definitely reachable from outside the + * original 'young'. Mark it as such, and traverse + * its pointers to find any other objects that may + * be directly reachable from it. Note that the + * call to tp_traverse may append objects to young, + * so we have to wait until it returns to determine + * the next object to visit. + */ + PyObject *op = FROM_GC(gc); + traverseproc traverse = Py_TYPE(op)->tp_traverse; + _PyObject_ASSERT_WITH_MSG(op, gc_get_refs(gc) > 0, + "refcount is too small"); + // NOTE: visit_reachable may change gc->_gc_next when + // young->_gc_prev == gc. Don't do gc = GC_NEXT(gc) before! + (void) traverse(op, + visit_reachable, + (void *)young); + // relink gc_prev to prev element. + _PyGCHead_SET_PREV(gc, prev); + // gc is not COLLECTING state after here. + gc_clear_collecting(gc); + prev = gc; + } + else { + /* This *may* be unreachable. To make progress, + * assume it is. gc isn't directly reachable from + * any object we've already traversed, but may be + * reachable from an object we haven't gotten to yet. + * visit_reachable will eventually move gc back into + * young if that's so, and we'll see it again. + */ + // Move gc to unreachable. + // No need to gc->next->prev = prev because it is single linked. + prev->_gc_next = gc->_gc_next; + + // We can't use gc_list_append() here because we use + // NEXT_MASK_UNREACHABLE here. + PyGC_Head *last = GC_PREV(unreachable); + // NOTE: Since all objects in unreachable set has + // NEXT_MASK_UNREACHABLE flag, we set it unconditionally. + // But this may pollute the unreachable list head's 'next' pointer + // too. That's semantically senseless but expedient here - the + // damage is repaired when this function ends. + last->_gc_next = (NEXT_MASK_UNREACHABLE | (uintptr_t)gc); + _PyGCHead_SET_PREV(gc, last); + gc->_gc_next = (NEXT_MASK_UNREACHABLE | (uintptr_t)unreachable); + unreachable->_gc_prev = (uintptr_t)gc; + } + gc = (PyGC_Head*)prev->_gc_next; + } + // young->_gc_prev must be last element remained in the list. + young->_gc_prev = (uintptr_t)prev; + // don't let the pollution of the list head's next pointer leak + unreachable->_gc_next &= ~NEXT_MASK_UNREACHABLE; +} + +static void +untrack_tuples(PyGC_Head *head) +{ + PyGC_Head *next, *gc = GC_NEXT(head); + while (gc != head) { + PyObject *op = FROM_GC(gc); + next = GC_NEXT(gc); + if (PyTuple_CheckExact(op)) { + _PyTuple_MaybeUntrack(op); + } + gc = next; + } +} + +/* Try to untrack all currently tracked dictionaries */ +static void +untrack_dicts(PyGC_Head *head) +{ + PyGC_Head *next, *gc = GC_NEXT(head); + while (gc != head) { + PyObject *op = FROM_GC(gc); + next = GC_NEXT(gc); + if (PyDict_CheckExact(op)) { + _PyDict_MaybeUntrack(op); + } + gc = next; + } +} + +/* Return true if object has a pre-PEP 442 finalization method. */ +static int +has_legacy_finalizer(PyObject *op) +{ + return Py_TYPE(op)->tp_del != NULL; +} + +/* Move the objects in unreachable with tp_del slots into `finalizers`. + * + * This function also removes NEXT_MASK_UNREACHABLE flag + * from _gc_next in unreachable. + */ +static void +move_legacy_finalizers(PyGC_Head *unreachable, PyGC_Head *finalizers) +{ + PyGC_Head *gc, *next; + _PyObject_ASSERT( + FROM_GC(unreachable), + (unreachable->_gc_next & NEXT_MASK_UNREACHABLE) == 0); + + /* March over unreachable. Move objects with finalizers into + * `finalizers`. + */ + for (gc = GC_NEXT(unreachable); gc != unreachable; gc = next) { + PyObject *op = FROM_GC(gc); + + _PyObject_ASSERT(op, gc->_gc_next & NEXT_MASK_UNREACHABLE); + gc->_gc_next &= ~NEXT_MASK_UNREACHABLE; + next = (PyGC_Head*)gc->_gc_next; + + if (has_legacy_finalizer(op)) { + gc_clear_collecting(gc); + gc_list_move(gc, finalizers); + } + } +} + +static inline void +clear_unreachable_mask(PyGC_Head *unreachable) +{ + /* Check that the list head does not have the unreachable bit set */ + _PyObject_ASSERT( + FROM_GC(unreachable), + ((uintptr_t)unreachable & NEXT_MASK_UNREACHABLE) == 0); + _PyObject_ASSERT( + FROM_GC(unreachable), + (unreachable->_gc_next & NEXT_MASK_UNREACHABLE) == 0); + + PyGC_Head *gc, *next; + for (gc = GC_NEXT(unreachable); gc != unreachable; gc = next) { + _PyObject_ASSERT((PyObject*)FROM_GC(gc), gc->_gc_next & NEXT_MASK_UNREACHABLE); + gc->_gc_next &= ~NEXT_MASK_UNREACHABLE; + next = (PyGC_Head*)gc->_gc_next; + } + validate_list(unreachable, collecting_set_unreachable_clear); +} + +/* A traversal callback for move_legacy_finalizer_reachable. */ +static int +visit_move(PyObject *op, void *arg) +{ + PyGC_Head *tolist = arg; + OBJECT_STAT_INC(object_visits); + if (_PyObject_IS_GC(op)) { + PyGC_Head *gc = AS_GC(op); + if (gc_is_collecting(gc)) { + gc_list_move(gc, tolist); + gc_clear_collecting(gc); + } + } + return 0; +} + +/* Move objects that are reachable from finalizers, from the unreachable set + * into finalizers set. + */ +static void +move_legacy_finalizer_reachable(PyGC_Head *finalizers) +{ + traverseproc traverse; + PyGC_Head *gc = GC_NEXT(finalizers); + for (; gc != finalizers; gc = GC_NEXT(gc)) { + /* Note that the finalizers list may grow during this. */ + traverse = Py_TYPE(FROM_GC(gc))->tp_traverse; + (void) traverse(FROM_GC(gc), + visit_move, + (void *)finalizers); + } +} + +/* Clear all weakrefs to unreachable objects, and if such a weakref has a + * callback, invoke it if necessary. Note that it's possible for such + * weakrefs to be outside the unreachable set -- indeed, those are precisely + * the weakrefs whose callbacks must be invoked. See gc_weakref.txt for + * overview & some details. Some weakrefs with callbacks may be reclaimed + * directly by this routine; the number reclaimed is the return value. Other + * weakrefs with callbacks may be moved into the `old` generation. Objects + * moved into `old` have gc_refs set to GC_REACHABLE; the objects remaining in + * unreachable are left at GC_TENTATIVELY_UNREACHABLE. When this returns, + * no object in `unreachable` is weakly referenced anymore. + */ +static int +handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old) +{ + PyGC_Head *gc; + PyObject *op; /* generally FROM_GC(gc) */ + PyWeakReference *wr; /* generally a cast of op */ + PyGC_Head wrcb_to_call; /* weakrefs with callbacks to call */ + PyGC_Head *next; + int num_freed = 0; + + gc_list_init(&wrcb_to_call); + + /* Clear all weakrefs to the objects in unreachable. If such a weakref + * also has a callback, move it into `wrcb_to_call` if the callback + * needs to be invoked. Note that we cannot invoke any callbacks until + * all weakrefs to unreachable objects are cleared, lest the callback + * resurrect an unreachable object via a still-active weakref. We + * make another pass over wrcb_to_call, invoking callbacks, after this + * pass completes. + */ + for (gc = GC_NEXT(unreachable); gc != unreachable; gc = next) { + PyWeakReference **wrlist; + + op = FROM_GC(gc); + next = GC_NEXT(gc); + + if (PyWeakref_Check(op)) { + /* A weakref inside the unreachable set must be cleared. If we + * allow its callback to execute inside delete_garbage(), it + * could expose objects that have tp_clear already called on + * them. Or, it could resurrect unreachable objects. One way + * this can happen is if some container objects do not implement + * tp_traverse. Then, wr_object can be outside the unreachable + * set but can be deallocated as a result of breaking the + * reference cycle. If we don't clear the weakref, the callback + * will run and potentially cause a crash. See bpo-38006 for + * one example. + */ + _PyWeakref_ClearRef((PyWeakReference *)op); + } + + if (! _PyType_SUPPORTS_WEAKREFS(Py_TYPE(op))) { + continue; + } + + /* It supports weakrefs. Does it have any? + * + * This is never triggered for static types so we can avoid the + * (slightly) more costly _PyObject_GET_WEAKREFS_LISTPTR(). + */ + wrlist = _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(op); + + /* `op` may have some weakrefs. March over the list, clear + * all the weakrefs, and move the weakrefs with callbacks + * that must be called into wrcb_to_call. + */ + for (wr = *wrlist; wr != NULL; wr = *wrlist) { + PyGC_Head *wrasgc; /* AS_GC(wr) */ + + /* _PyWeakref_ClearRef clears the weakref but leaves + * the callback pointer intact. Obscure: it also + * changes *wrlist. + */ + _PyObject_ASSERT((PyObject *)wr, wr->wr_object == op); + _PyWeakref_ClearRef(wr); + _PyObject_ASSERT((PyObject *)wr, wr->wr_object == Py_None); + if (wr->wr_callback == NULL) { + /* no callback */ + continue; + } + + /* Headache time. `op` is going away, and is weakly referenced by + * `wr`, which has a callback. Should the callback be invoked? If wr + * is also trash, no: + * + * 1. There's no need to call it. The object and the weakref are + * both going away, so it's legitimate to pretend the weakref is + * going away first. The user has to ensure a weakref outlives its + * referent if they want a guarantee that the wr callback will get + * invoked. + * + * 2. It may be catastrophic to call it. If the callback is also in + * cyclic trash (CT), then although the CT is unreachable from + * outside the current generation, CT may be reachable from the + * callback. Then the callback could resurrect insane objects. + * + * Since the callback is never needed and may be unsafe in this case, + * wr is simply left in the unreachable set. Note that because we + * already called _PyWeakref_ClearRef(wr), its callback will never + * trigger. + * + * OTOH, if wr isn't part of CT, we should invoke the callback: the + * weakref outlived the trash. Note that since wr isn't CT in this + * case, its callback can't be CT either -- wr acted as an external + * root to this generation, and therefore its callback did too. So + * nothing in CT is reachable from the callback either, so it's hard + * to imagine how calling it later could create a problem for us. wr + * is moved to wrcb_to_call in this case. + */ + if (gc_is_collecting(AS_GC((PyObject *)wr))) { + /* it should already have been cleared above */ + _PyObject_ASSERT((PyObject*)wr, wr->wr_object == Py_None); + continue; + } + + /* Create a new reference so that wr can't go away + * before we can process it again. + */ + Py_INCREF(wr); + + /* Move wr to wrcb_to_call, for the next pass. */ + wrasgc = AS_GC((PyObject *)wr); + // wrasgc is reachable, but next isn't, so they can't be the same + _PyObject_ASSERT((PyObject *)wr, wrasgc != next); + gc_list_move(wrasgc, &wrcb_to_call); + } + } + + /* Invoke the callbacks we decided to honor. It's safe to invoke them + * because they can't reference unreachable objects. + */ + while (! gc_list_is_empty(&wrcb_to_call)) { + PyObject *temp; + PyObject *callback; + + gc = (PyGC_Head*)wrcb_to_call._gc_next; + op = FROM_GC(gc); + _PyObject_ASSERT(op, PyWeakref_Check(op)); + wr = (PyWeakReference *)op; + callback = wr->wr_callback; + _PyObject_ASSERT(op, callback != NULL); + + /* copy-paste of weakrefobject.c's handle_callback() */ + temp = PyObject_CallOneArg(callback, (PyObject *)wr); + if (temp == NULL) { + PyErr_WriteUnraisable(callback); + } + else { + Py_DECREF(temp); + } + + /* Give up the reference we created in the first pass. When + * op's refcount hits 0 (which it may or may not do right now), + * op's tp_dealloc will decref op->wr_callback too. Note + * that the refcount probably will hit 0 now, and because this + * weakref was reachable to begin with, gc didn't already + * add it to its count of freed objects. Example: a reachable + * weak value dict maps some key to this reachable weakref. + * The callback removes this key->weakref mapping from the + * dict, leaving no other references to the weakref (excepting + * ours). + */ + Py_DECREF(op); + if (wrcb_to_call._gc_next == (uintptr_t)gc) { + /* object is still alive -- move it */ + gc_list_move(gc, old); + } + else { + ++num_freed; + } + } + + return num_freed; +} + +static void +debug_cycle(const char *msg, PyObject *op) +{ + PySys_FormatStderr("gc: %s <%s %p>\n", + msg, Py_TYPE(op)->tp_name, op); +} + +/* Handle uncollectable garbage (cycles with tp_del slots, and stuff reachable + * only from such cycles). + * If _PyGC_DEBUG_SAVEALL, all objects in finalizers are appended to the module + * garbage list (a Python list), else only the objects in finalizers with + * __del__ methods are appended to garbage. All objects in finalizers are + * merged into the old list regardless. + */ +static void +handle_legacy_finalizers(PyThreadState *tstate, + GCState *gcstate, + PyGC_Head *finalizers, PyGC_Head *old) +{ + assert(!_PyErr_Occurred(tstate)); + assert(gcstate->garbage != NULL); + + PyGC_Head *gc = GC_NEXT(finalizers); + for (; gc != finalizers; gc = GC_NEXT(gc)) { + PyObject *op = FROM_GC(gc); + + if ((gcstate->debug & _PyGC_DEBUG_SAVEALL) || has_legacy_finalizer(op)) { + if (PyList_Append(gcstate->garbage, op) < 0) { + _PyErr_Clear(tstate); + break; + } + } + } + + gc_list_merge(finalizers, old); +} + +/* Run first-time finalizers (if any) on all the objects in collectable. + * Note that this may remove some (or even all) of the objects from the + * list, due to refcounts falling to 0. + */ +static void +finalize_garbage(PyThreadState *tstate, PyGC_Head *collectable) +{ + destructor finalize; + PyGC_Head seen; + + /* While we're going through the loop, `finalize(op)` may cause op, or + * other objects, to be reclaimed via refcounts falling to zero. So + * there's little we can rely on about the structure of the input + * `collectable` list across iterations. For safety, we always take the + * first object in that list and move it to a temporary `seen` list. + * If objects vanish from the `collectable` and `seen` lists we don't + * care. + */ + gc_list_init(&seen); + + while (!gc_list_is_empty(collectable)) { + PyGC_Head *gc = GC_NEXT(collectable); + PyObject *op = FROM_GC(gc); + gc_list_move(gc, &seen); + if (!_PyGC_FINALIZED(op) && + (finalize = Py_TYPE(op)->tp_finalize) != NULL) + { + _PyGC_SET_FINALIZED(op); + Py_INCREF(op); + finalize(op); + assert(!_PyErr_Occurred(tstate)); + Py_DECREF(op); + } + } + gc_list_merge(&seen, collectable); +} + +/* Break reference cycles by clearing the containers involved. This is + * tricky business as the lists can be changing and we don't know which + * objects may be freed. It is possible I screwed something up here. + */ +static void +delete_garbage(PyThreadState *tstate, GCState *gcstate, + PyGC_Head *collectable, PyGC_Head *old) +{ + assert(!_PyErr_Occurred(tstate)); + + while (!gc_list_is_empty(collectable)) { + PyGC_Head *gc = GC_NEXT(collectable); + PyObject *op = FROM_GC(gc); + + _PyObject_ASSERT_WITH_MSG(op, Py_REFCNT(op) > 0, + "refcount is too small"); + + if (gcstate->debug & _PyGC_DEBUG_SAVEALL) { + assert(gcstate->garbage != NULL); + if (PyList_Append(gcstate->garbage, op) < 0) { + _PyErr_Clear(tstate); + } + } + else { + inquiry clear; + if ((clear = Py_TYPE(op)->tp_clear) != NULL) { + Py_INCREF(op); + (void) clear(op); + if (_PyErr_Occurred(tstate)) { + PyErr_FormatUnraisable("Exception ignored in tp_clear of %s", + Py_TYPE(op)->tp_name); + } + Py_DECREF(op); + } + } + if (GC_NEXT(collectable) == gc) { + /* object is still alive, move it, it may die later */ + gc_clear_collecting(gc); + gc_list_move(gc, old); + } + } +} + + +// Show stats for objects in each generations +static void +show_stats_each_generations(GCState *gcstate) +{ + char buf[100]; + size_t pos = 0; + + for (int i = 0; i < NUM_GENERATIONS && pos < sizeof(buf); i++) { + pos += PyOS_snprintf(buf+pos, sizeof(buf)-pos, + " %zd", + gc_list_size(GEN_HEAD(gcstate, i))); + } + + PySys_FormatStderr( + "gc: objects in each generation:%s\n" + "gc: objects in permanent generation: %zd\n", + buf, gc_list_size(&gcstate->permanent_generation.head)); +} + +/* Deduce which objects among "base" are unreachable from outside the list + and move them to 'unreachable'. The process consist in the following steps: + +1. Copy all reference counts to a different field (gc_prev is used to hold + this copy to save memory). +2. Traverse all objects in "base" and visit all referred objects using + "tp_traverse" and for every visited object, subtract 1 to the reference + count (the one that we copied in the previous step). After this step, all + objects that can be reached directly from outside must have strictly positive + reference count, while all unreachable objects must have a count of exactly 0. +3. Identify all unreachable objects (the ones with 0 reference count) and move + them to the "unreachable" list. This step also needs to move back to "base" all + objects that were initially marked as unreachable but are referred transitively + by the reachable objects (the ones with strictly positive reference count). + +Contracts: + + * The "base" has to be a valid list with no mask set. + + * The "unreachable" list must be uninitialized (this function calls + gc_list_init over 'unreachable'). + +IMPORTANT: This function leaves 'unreachable' with the NEXT_MASK_UNREACHABLE +flag set but it does not clear it to skip unnecessary iteration. Before the +flag is cleared (for example, by using 'clear_unreachable_mask' function or +by a call to 'move_legacy_finalizers'), the 'unreachable' list is not a normal +list and we can not use most gc_list_* functions for it. */ +static inline void +deduce_unreachable(PyGC_Head *base, PyGC_Head *unreachable) { + validate_list(base, collecting_clear_unreachable_clear); + /* Using ob_refcnt and gc_refs, calculate which objects in the + * container set are reachable from outside the set (i.e., have a + * refcount greater than 0 when all the references within the + * set are taken into account). + */ + update_refs(base); // gc_prev is used for gc_refs + subtract_refs(base); + + /* Leave everything reachable from outside base in base, and move + * everything else (in base) to unreachable. + * + * NOTE: This used to move the reachable objects into a reachable + * set instead. But most things usually turn out to be reachable, + * so it's more efficient to move the unreachable things. It "sounds slick" + * to move the unreachable objects, until you think about it - the reason it + * pays isn't actually obvious. + * + * Suppose we create objects A, B, C in that order. They appear in the young + * generation in the same order. If B points to A, and C to B, and C is + * reachable from outside, then the adjusted refcounts will be 0, 0, and 1 + * respectively. + * + * When move_unreachable finds A, A is moved to the unreachable list. The + * same for B when it's first encountered. Then C is traversed, B is moved + * _back_ to the reachable list. B is eventually traversed, and then A is + * moved back to the reachable list. + * + * So instead of not moving at all, the reachable objects B and A are moved + * twice each. Why is this a win? A straightforward algorithm to move the + * reachable objects instead would move A, B, and C once each. + * + * The key is that this dance leaves the objects in order C, B, A - it's + * reversed from the original order. On all _subsequent_ scans, none of + * them will move. Since most objects aren't in cycles, this can save an + * unbounded number of moves across an unbounded number of later collections. + * It can cost more only the first time the chain is scanned. + * + * Drawback: move_unreachable is also used to find out what's still trash + * after finalizers may resurrect objects. In _that_ case most unreachable + * objects will remain unreachable, so it would be more efficient to move + * the reachable objects instead. But this is a one-time cost, probably not + * worth complicating the code to speed just a little. + */ + gc_list_init(unreachable); + move_unreachable(base, unreachable); // gc_prev is pointer again + validate_list(base, collecting_clear_unreachable_clear); + validate_list(unreachable, collecting_set_unreachable_set); +} + +/* Handle objects that may have resurrected after a call to 'finalize_garbage', moving + them to 'old_generation' and placing the rest on 'still_unreachable'. + + Contracts: + * After this function 'unreachable' must not be used anymore and 'still_unreachable' + will contain the objects that did not resurrect. + + * The "still_unreachable" list must be uninitialized (this function calls + gc_list_init over 'still_unreachable'). + +IMPORTANT: After a call to this function, the 'still_unreachable' set will have the +PREV_MARK_COLLECTING set, but the objects in this set are going to be removed so +we can skip the expense of clearing the flag to avoid extra iteration. */ +static inline void +handle_resurrected_objects(PyGC_Head *unreachable, PyGC_Head* still_unreachable, + PyGC_Head *old_generation) +{ + // Remove the PREV_MASK_COLLECTING from unreachable + // to prepare it for a new call to 'deduce_unreachable' + gc_list_clear_collecting(unreachable); + + // After the call to deduce_unreachable, the 'still_unreachable' set will + // have the PREV_MARK_COLLECTING set, but the objects are going to be + // removed so we can skip the expense of clearing the flag. + PyGC_Head* resurrected = unreachable; + deduce_unreachable(resurrected, still_unreachable); + clear_unreachable_mask(still_unreachable); + + // Move the resurrected objects to the old generation for future collection. + gc_list_merge(resurrected, old_generation); +} + + +/* Invoke progress callbacks to notify clients that garbage collection + * is starting or stopping + */ +static void +invoke_gc_callback(PyThreadState *tstate, const char *phase, + int generation, Py_ssize_t collected, + Py_ssize_t uncollectable) +{ + assert(!_PyErr_Occurred(tstate)); + + /* we may get called very early */ + GCState *gcstate = &tstate->interp->gc; + if (gcstate->callbacks == NULL) { + return; + } + + /* The local variable cannot be rebound, check it for sanity */ + assert(PyList_CheckExact(gcstate->callbacks)); + PyObject *info = NULL; + if (PyList_GET_SIZE(gcstate->callbacks) != 0) { + info = Py_BuildValue("{sisnsn}", + "generation", generation, + "collected", collected, + "uncollectable", uncollectable); + if (info == NULL) { + PyErr_FormatUnraisable("Exception ignored on invoking gc callbacks"); + return; + } + } + + PyObject *phase_obj = PyUnicode_FromString(phase); + if (phase_obj == NULL) { + Py_XDECREF(info); + PyErr_FormatUnraisable("Exception ignored on invoking gc callbacks"); + return; + } + + PyObject *stack[] = {phase_obj, info}; + for (Py_ssize_t i=0; icallbacks); i++) { + PyObject *r, *cb = PyList_GET_ITEM(gcstate->callbacks, i); + Py_INCREF(cb); /* make sure cb doesn't go away */ + r = PyObject_Vectorcall(cb, stack, 2, NULL); + if (r == NULL) { + PyErr_WriteUnraisable(cb); + } + else { + Py_DECREF(r); + } + Py_DECREF(cb); + } + Py_DECREF(phase_obj); + Py_XDECREF(info); + assert(!_PyErr_Occurred(tstate)); +} + + +/* Find the oldest generation (highest numbered) where the count + * exceeds the threshold. Objects in the that generation and + * generations younger than it will be collected. */ +static int +gc_select_generation(GCState *gcstate) +{ + for (int i = NUM_GENERATIONS-1; i >= 0; i--) { + if (gcstate->generations[i].count > gcstate->generations[i].threshold) { + /* Avoid quadratic performance degradation in number + of tracked objects (see also issue #4074): + + To limit the cost of garbage collection, there are two strategies; + - make each collection faster, e.g. by scanning fewer objects + - do less collections + This heuristic is about the latter strategy. + + In addition to the various configurable thresholds, we only trigger a + full collection if the ratio + + long_lived_pending / long_lived_total + + is above a given value (hardwired to 25%). + + The reason is that, while "non-full" collections (i.e., collections of + the young and middle generations) will always examine roughly the same + number of objects -- determined by the aforementioned thresholds --, + the cost of a full collection is proportional to the total number of + long-lived objects, which is virtually unbounded. + + Indeed, it has been remarked that doing a full collection every + of object creations entails a dramatic performance + degradation in workloads which consist in creating and storing lots of + long-lived objects (e.g. building a large list of GC-tracked objects would + show quadratic performance, instead of linear as expected: see issue #4074). + + Using the above ratio, instead, yields amortized linear performance in + the total number of objects (the effect of which can be summarized + thusly: "each full garbage collection is more and more costly as the + number of objects grows, but we do fewer and fewer of them"). + + This heuristic was suggested by Martin von Löwis on python-dev in + June 2008. His original analysis and proposal can be found at: + http://mail.python.org/pipermail/python-dev/2008-June/080579.html + */ + if (i == NUM_GENERATIONS - 1 + && gcstate->long_lived_pending < gcstate->long_lived_total / 4) + { + continue; + } + return i; + } + } + return -1; +} + + +/* This is the main function. Read this to understand how the + * collection process works. */ +static Py_ssize_t +gc_collect_main(PyThreadState *tstate, int generation, _PyGC_Reason reason) +{ + int i; + Py_ssize_t m = 0; /* # objects collected */ + Py_ssize_t n = 0; /* # unreachable objects that couldn't be collected */ + PyGC_Head *young; /* the generation we are examining */ + PyGC_Head *old; /* next older generation */ + PyGC_Head unreachable; /* non-problematic unreachable trash */ + PyGC_Head finalizers; /* objects with, & reachable from, __del__ */ + PyGC_Head *gc; + PyTime_t t1 = 0; /* initialize to prevent a compiler warning */ + GCState *gcstate = &tstate->interp->gc; + + // gc_collect_main() must not be called before _PyGC_Init + // or after _PyGC_Fini() + assert(gcstate->garbage != NULL); + assert(!_PyErr_Occurred(tstate)); + + int expected = 0; + if (!_Py_atomic_compare_exchange_int(&gcstate->collecting, &expected, 1)) { + // Don't start a garbage collection if one is already in progress. + return 0; + } + + if (generation == GENERATION_AUTO) { + // Select the oldest generation that needs collecting. We will collect + // objects from that generation and all generations younger than it. + generation = gc_select_generation(gcstate); + if (generation < 0) { + // No generation needs to be collected. + _Py_atomic_store_int(&gcstate->collecting, 0); + return 0; + } + } + + assert(generation >= 0 && generation < NUM_GENERATIONS); + +#ifdef Py_STATS + if (_Py_stats) { + _Py_stats->object_stats.object_visits = 0; + } +#endif + GC_STAT_ADD(generation, collections, 1); + + if (reason != _Py_GC_REASON_SHUTDOWN) { + invoke_gc_callback(tstate, "start", generation, 0, 0); + } + + if (gcstate->debug & _PyGC_DEBUG_STATS) { + PySys_WriteStderr("gc: collecting generation %d...\n", generation); + show_stats_each_generations(gcstate); + // ignore error: don't interrupt the GC if reading the clock fails + (void)PyTime_PerfCounterRaw(&t1); + } + + if (PyDTrace_GC_START_ENABLED()) { + PyDTrace_GC_START(generation); + } + + /* update collection and allocation counters */ + if (generation+1 < NUM_GENERATIONS) { + gcstate->generations[generation+1].count += 1; + } + for (i = 0; i <= generation; i++) { + gcstate->generations[i].count = 0; + } + + /* merge younger generations with one we are currently collecting */ + for (i = 0; i < generation; i++) { + gc_list_merge(GEN_HEAD(gcstate, i), GEN_HEAD(gcstate, generation)); + } + + /* handy references */ + young = GEN_HEAD(gcstate, generation); + if (generation < NUM_GENERATIONS-1) { + old = GEN_HEAD(gcstate, generation+1); + } + else { + old = young; + } + validate_list(old, collecting_clear_unreachable_clear); + + deduce_unreachable(young, &unreachable); + + untrack_tuples(young); + /* Move reachable objects to next generation. */ + if (young != old) { + if (generation == NUM_GENERATIONS - 2) { + gcstate->long_lived_pending += gc_list_size(young); + } + gc_list_merge(young, old); + } + else { + /* We only un-track dicts in full collections, to avoid quadratic + dict build-up. See issue #14775. */ + untrack_dicts(young); + gcstate->long_lived_pending = 0; + gcstate->long_lived_total = gc_list_size(young); + } + + /* All objects in unreachable are trash, but objects reachable from + * legacy finalizers (e.g. tp_del) can't safely be deleted. + */ + gc_list_init(&finalizers); + // NEXT_MASK_UNREACHABLE is cleared here. + // After move_legacy_finalizers(), unreachable is normal list. + move_legacy_finalizers(&unreachable, &finalizers); + /* finalizers contains the unreachable objects with a legacy finalizer; + * unreachable objects reachable *from* those are also uncollectable, + * and we move those into the finalizers list too. + */ + move_legacy_finalizer_reachable(&finalizers); + + validate_list(&finalizers, collecting_clear_unreachable_clear); + validate_list(&unreachable, collecting_set_unreachable_clear); + + /* Print debugging information. */ + if (gcstate->debug & _PyGC_DEBUG_COLLECTABLE) { + for (gc = GC_NEXT(&unreachable); gc != &unreachable; gc = GC_NEXT(gc)) { + debug_cycle("collectable", FROM_GC(gc)); + } + } + + /* Clear weakrefs and invoke callbacks as necessary. */ + m += handle_weakrefs(&unreachable, old); + + validate_list(old, collecting_clear_unreachable_clear); + validate_list(&unreachable, collecting_set_unreachable_clear); + + /* Call tp_finalize on objects which have one. */ + finalize_garbage(tstate, &unreachable); + + /* Handle any objects that may have resurrected after the call + * to 'finalize_garbage' and continue the collection with the + * objects that are still unreachable */ + PyGC_Head final_unreachable; + handle_resurrected_objects(&unreachable, &final_unreachable, old); + + /* Call tp_clear on objects in the final_unreachable set. This will cause + * the reference cycles to be broken. It may also cause some objects + * in finalizers to be freed. + */ + m += gc_list_size(&final_unreachable); + delete_garbage(tstate, gcstate, &final_unreachable, old); + + /* Collect statistics on uncollectable objects found and print + * debugging information. */ + for (gc = GC_NEXT(&finalizers); gc != &finalizers; gc = GC_NEXT(gc)) { + n++; + if (gcstate->debug & _PyGC_DEBUG_UNCOLLECTABLE) + debug_cycle("uncollectable", FROM_GC(gc)); + } + if (gcstate->debug & _PyGC_DEBUG_STATS) { + PyTime_t t2; + (void)PyTime_PerfCounterRaw(&t2); + double d = PyTime_AsSecondsDouble(t2 - t1); + PySys_WriteStderr( + "gc: done, %zd unreachable, %zd uncollectable, %.4fs elapsed\n", + n+m, n, d); + } + + /* Append instances in the uncollectable set to a Python + * reachable list of garbage. The programmer has to deal with + * this if they insist on creating this type of structure. + */ + handle_legacy_finalizers(tstate, gcstate, &finalizers, old); + validate_list(old, collecting_clear_unreachable_clear); + + /* Clear free list only during the collection of the highest + * generation */ + if (generation == NUM_GENERATIONS-1) { + _PyGC_ClearAllFreeLists(tstate->interp); + } + + if (_PyErr_Occurred(tstate)) { + if (reason == _Py_GC_REASON_SHUTDOWN) { + _PyErr_Clear(tstate); + } + else { + PyErr_FormatUnraisable("Exception ignored in garbage collection"); + } + } + + /* Update stats */ + struct gc_generation_stats *stats = &gcstate->generation_stats[generation]; + stats->collections++; + stats->collected += m; + stats->uncollectable += n; + + GC_STAT_ADD(generation, objects_collected, m); +#ifdef Py_STATS + if (_Py_stats) { + GC_STAT_ADD(generation, object_visits, + _Py_stats->object_stats.object_visits); + _Py_stats->object_stats.object_visits = 0; + } +#endif + + if (PyDTrace_GC_DONE_ENABLED()) { + PyDTrace_GC_DONE(n + m); + } + + if (reason != _Py_GC_REASON_SHUTDOWN) { + invoke_gc_callback(tstate, "stop", generation, m, n); + } + + assert(!_PyErr_Occurred(tstate)); + _Py_atomic_store_int(&gcstate->collecting, 0); + return n + m; +} + +static int +referrersvisit(PyObject* obj, void *arg) +{ + PyObject *objs = arg; + Py_ssize_t i; + for (i = 0; i < PyTuple_GET_SIZE(objs); i++) { + if (PyTuple_GET_ITEM(objs, i) == obj) { + return 1; + } + } + return 0; +} + +static int +gc_referrers_for(PyObject *objs, PyGC_Head *list, PyObject *resultlist) +{ + PyGC_Head *gc; + PyObject *obj; + traverseproc traverse; + for (gc = GC_NEXT(list); gc != list; gc = GC_NEXT(gc)) { + obj = FROM_GC(gc); + traverse = Py_TYPE(obj)->tp_traverse; + if (obj == objs || obj == resultlist) { + continue; + } + if (traverse(obj, referrersvisit, objs)) { + if (PyList_Append(resultlist, obj) < 0) { + return 0; /* error */ + } + } + } + return 1; /* no error */ +} + +PyObject * +_PyGC_GetReferrers(PyInterpreterState *interp, PyObject *objs) +{ + PyObject *result = PyList_New(0); + if (!result) { + return NULL; + } + + GCState *gcstate = &interp->gc; + for (int i = 0; i < NUM_GENERATIONS; i++) { + if (!(gc_referrers_for(objs, GEN_HEAD(gcstate, i), result))) { + Py_DECREF(result); + return NULL; + } + } + return result; +} + +PyObject * +_PyGC_GetObjects(PyInterpreterState *interp, int generation) +{ + assert(generation >= -1 && generation < NUM_GENERATIONS); + GCState *gcstate = &interp->gc; + + PyObject *result = PyList_New(0); + if (result == NULL) { + return NULL; + } + + if (generation == -1) { + /* If generation is -1, get all objects from all generations */ + for (int i = 0; i < NUM_GENERATIONS; i++) { + if (append_objects(result, GEN_HEAD(gcstate, i))) { + goto error; + } + } + } + else { + if (append_objects(result, GEN_HEAD(gcstate, generation))) { + goto error; + } + } + + return result; +error: + Py_DECREF(result); + return NULL; +} + +void +_PyGC_Freeze(PyInterpreterState *interp) +{ + GCState *gcstate = &interp->gc; + for (int i = 0; i < NUM_GENERATIONS; ++i) { + gc_list_merge(GEN_HEAD(gcstate, i), &gcstate->permanent_generation.head); + gcstate->generations[i].count = 0; + } +} + +void +_PyGC_Unfreeze(PyInterpreterState *interp) +{ + GCState *gcstate = &interp->gc; + gc_list_merge(&gcstate->permanent_generation.head, + GEN_HEAD(gcstate, NUM_GENERATIONS-1)); +} + +Py_ssize_t +_PyGC_GetFreezeCount(PyInterpreterState *interp) +{ + GCState *gcstate = &interp->gc; + return gc_list_size(&gcstate->permanent_generation.head); +} + +/* C API for controlling the state of the garbage collector */ +int +PyGC_Enable(void) +{ + GCState *gcstate = get_gc_state(); + int old_state = gcstate->enabled; + gcstate->enabled = 1; + return old_state; +} + +int +PyGC_Disable(void) +{ + GCState *gcstate = get_gc_state(); + int old_state = gcstate->enabled; + gcstate->enabled = 0; + return old_state; +} + +int +PyGC_IsEnabled(void) +{ + GCState *gcstate = get_gc_state(); + return gcstate->enabled; +} + +/* Public API to invoke gc.collect() from C */ +Py_ssize_t +PyGC_Collect(void) +{ + PyThreadState *tstate = _PyThreadState_GET(); + GCState *gcstate = &tstate->interp->gc; + + if (!gcstate->enabled) { + return 0; + } + + Py_ssize_t n; + PyObject *exc = _PyErr_GetRaisedException(tstate); + n = gc_collect_main(tstate, NUM_GENERATIONS - 1, _Py_GC_REASON_MANUAL); + _PyErr_SetRaisedException(tstate, exc); + + return n; +} + +Py_ssize_t +_PyGC_Collect(PyThreadState *tstate, int generation, _PyGC_Reason reason) +{ + return gc_collect_main(tstate, generation, reason); +} + +void +_PyGC_CollectNoFail(PyThreadState *tstate) +{ + /* Ideally, this function is only called on interpreter shutdown, + and therefore not recursively. Unfortunately, when there are daemon + threads, a daemon thread can start a cyclic garbage collection + during interpreter shutdown (and then never finish it). + See http://bugs.python.org/issue8713#msg195178 for an example. + */ + gc_collect_main(tstate, NUM_GENERATIONS - 1, _Py_GC_REASON_SHUTDOWN); +} + +void +_PyGC_DumpShutdownStats(PyInterpreterState *interp) +{ + GCState *gcstate = &interp->gc; + if (!(gcstate->debug & _PyGC_DEBUG_SAVEALL) + && gcstate->garbage != NULL && PyList_GET_SIZE(gcstate->garbage) > 0) { + const char *message; + if (gcstate->debug & _PyGC_DEBUG_UNCOLLECTABLE) { + message = "gc: %zd uncollectable objects at shutdown"; + } + else { + message = "gc: %zd uncollectable objects at shutdown; " \ + "use gc.set_debug(gc.DEBUG_UNCOLLECTABLE) to list them"; + } + /* PyErr_WarnFormat does too many things and we are at shutdown, + the warnings module's dependencies (e.g. linecache) may be gone + already. */ + if (PyErr_WarnExplicitFormat(PyExc_ResourceWarning, "gc", 0, + "gc", NULL, message, + PyList_GET_SIZE(gcstate->garbage))) + { + PyErr_WriteUnraisable(NULL); + } + if (gcstate->debug & _PyGC_DEBUG_UNCOLLECTABLE) { + PyObject *repr = NULL, *bytes = NULL; + repr = PyObject_Repr(gcstate->garbage); + if (!repr || !(bytes = PyUnicode_EncodeFSDefault(repr))) { + PyErr_WriteUnraisable(gcstate->garbage); + } + else { + PySys_WriteStderr( + " %s\n", + PyBytes_AS_STRING(bytes) + ); + } + Py_XDECREF(repr); + Py_XDECREF(bytes); + } + } +} + +static void +finalize_unlink_gc_head(PyGC_Head *gc) { + PyGC_Head *prev = GC_PREV(gc); + PyGC_Head *next = GC_NEXT(gc); + _PyGCHead_SET_NEXT(prev, next); + _PyGCHead_SET_PREV(next, prev); +} + +void +_PyGC_Fini(PyInterpreterState *interp) +{ + GCState *gcstate = &interp->gc; + Py_CLEAR(gcstate->garbage); + Py_CLEAR(gcstate->callbacks); + + /* Prevent a subtle bug that affects sub-interpreters that use basic + * single-phase init extensions (m_size == -1). Those extensions cause objects + * to be shared between interpreters, via the PyDict_Update(mdict, m_copy) call + * in import_find_extension(). + * + * If they are GC objects, their GC head next or prev links could refer to + * the interpreter _gc_runtime_state PyGC_Head nodes. Those nodes go away + * when the interpreter structure is freed and so pointers to them become + * invalid. If those objects are still used by another interpreter and + * UNTRACK is called on them, a crash will happen. We untrack the nodes + * here to avoid that. + * + * This bug was originally fixed when reported as gh-90228. The bug was + * re-introduced in gh-94673. + */ + for (int i = 0; i < NUM_GENERATIONS; i++) { + finalize_unlink_gc_head(&gcstate->generations[i].head); + } + finalize_unlink_gc_head(&gcstate->permanent_generation.head); +} + +/* for debugging */ +void +_PyGC_Dump(PyGC_Head *g) +{ + _PyObject_Dump(FROM_GC(g)); +} + + +#ifdef Py_DEBUG +static int +visit_validate(PyObject *op, void *parent_raw) +{ + PyObject *parent = _PyObject_CAST(parent_raw); + if (_PyObject_IsFreed(op)) { + _PyObject_ASSERT_FAILED_MSG(parent, + "PyObject_GC_Track() object is not valid"); + } + return 0; +} +#endif + + +/* extension modules might be compiled with GC support so these + functions must always be available */ + +void +PyObject_GC_Track(void *op_raw) +{ + PyObject *op = _PyObject_CAST(op_raw); + if (_PyObject_GC_IS_TRACKED(op)) { + _PyObject_ASSERT_FAILED_MSG(op, + "object already tracked " + "by the garbage collector"); + } + _PyObject_GC_TRACK(op); + +#ifdef Py_DEBUG + /* Check that the object is valid: validate objects traversed + by tp_traverse() */ + traverseproc traverse = Py_TYPE(op)->tp_traverse; + (void)traverse(op, visit_validate, op); +#endif +} + +void +PyObject_GC_UnTrack(void *op_raw) +{ + PyObject *op = _PyObject_CAST(op_raw); + /* Obscure: the Py_TRASHCAN mechanism requires that we be able to + * call PyObject_GC_UnTrack twice on an object. + */ + if (_PyObject_GC_IS_TRACKED(op)) { + _PyObject_GC_UNTRACK(op); + } +} + +int +PyObject_IS_GC(PyObject *obj) +{ + return _PyObject_IS_GC(obj); +} + +void +_Py_ScheduleGC(PyThreadState *tstate) +{ + if (!_Py_eval_breaker_bit_is_set(tstate, _PY_GC_SCHEDULED_BIT)) + { + _Py_set_eval_breaker_bit(tstate, _PY_GC_SCHEDULED_BIT); + } +} + +void +_PyObject_GC_Link(PyObject *op) +{ + PyGC_Head *gc = AS_GC(op); + // gc must be correctly aligned + _PyObject_ASSERT(op, ((uintptr_t)gc & (sizeof(uintptr_t)-1)) == 0); + + PyThreadState *tstate = _PyThreadState_GET(); + GCState *gcstate = &tstate->interp->gc; + gc->_gc_next = 0; + gc->_gc_prev = 0; + gcstate->generations[0].count++; /* number of allocated GC objects */ + if (gcstate->generations[0].count > gcstate->generations[0].threshold && + gcstate->enabled && + gcstate->generations[0].threshold && + !_Py_atomic_load_int_relaxed(&gcstate->collecting) && + !_PyErr_Occurred(tstate)) + { + _Py_ScheduleGC(tstate); + } +} + +void +_Py_RunGC(PyThreadState *tstate) +{ + GCState *gcstate = get_gc_state(); + if (!gcstate->enabled) { + return; + } + gc_collect_main(tstate, GENERATION_AUTO, _Py_GC_REASON_HEAP); +} + +static PyObject * +gc_alloc(PyTypeObject *tp, size_t basicsize, size_t presize) +{ + PyThreadState *tstate = _PyThreadState_GET(); + if (basicsize > PY_SSIZE_T_MAX - presize) { + return _PyErr_NoMemory(tstate); + } + size_t size = presize + basicsize; + char *mem = _PyObject_MallocWithType(tp, size); + if (mem == NULL) { + return _PyErr_NoMemory(tstate); + } + ((PyObject **)mem)[0] = NULL; + ((PyObject **)mem)[1] = NULL; + PyObject *op = (PyObject *)(mem + presize); + _PyObject_GC_Link(op); + return op; +} + + +PyObject * +_PyObject_GC_New(PyTypeObject *tp) +{ + size_t presize = _PyType_PreHeaderSize(tp); + size_t size = _PyObject_SIZE(tp); + if (_PyType_HasFeature(tp, Py_TPFLAGS_INLINE_VALUES)) { + size += _PyInlineValuesSize(tp); + } + PyObject *op = gc_alloc(tp, size, presize); + if (op == NULL) { + return NULL; + } + _PyObject_Init(op, tp); + return op; +} + +PyVarObject * +_PyObject_GC_NewVar(PyTypeObject *tp, Py_ssize_t nitems) +{ + PyVarObject *op; + + if (nitems < 0) { + PyErr_BadInternalCall(); + return NULL; + } + size_t presize = _PyType_PreHeaderSize(tp); + size_t size = _PyObject_VAR_SIZE(tp, nitems); + op = (PyVarObject *)gc_alloc(tp, size, presize); + if (op == NULL) { + return NULL; + } + _PyObject_InitVar(op, tp, nitems); + return op; +} + +PyObject * +PyUnstable_Object_GC_NewWithExtraData(PyTypeObject *tp, size_t extra_size) +{ + size_t presize = _PyType_PreHeaderSize(tp); + PyObject *op = gc_alloc(tp, _PyObject_SIZE(tp) + extra_size, presize); + if (op == NULL) { + return NULL; + } + memset(op, 0, _PyObject_SIZE(tp) + extra_size); + _PyObject_Init(op, tp); + return op; +} + +PyVarObject * +_PyObject_GC_Resize(PyVarObject *op, Py_ssize_t nitems) +{ + const size_t basicsize = _PyObject_VAR_SIZE(Py_TYPE(op), nitems); + const size_t presize = _PyType_PreHeaderSize(((PyObject *)op)->ob_type); + _PyObject_ASSERT((PyObject *)op, !_PyObject_GC_IS_TRACKED(op)); + if (basicsize > (size_t)PY_SSIZE_T_MAX - presize) { + return (PyVarObject *)PyErr_NoMemory(); + } + char *mem = (char *)op - presize; + mem = (char *)_PyObject_ReallocWithType(Py_TYPE(op), mem, presize + basicsize); + if (mem == NULL) { + return (PyVarObject *)PyErr_NoMemory(); + } + op = (PyVarObject *) (mem + presize); + Py_SET_SIZE(op, nitems); + return op; +} + +void +PyObject_GC_Del(void *op) +{ + size_t presize = _PyType_PreHeaderSize(((PyObject *)op)->ob_type); + PyGC_Head *g = AS_GC(op); + if (_PyObject_GC_IS_TRACKED(op)) { + gc_list_remove(g); +#ifdef Py_DEBUG + PyObject *exc = PyErr_GetRaisedException(); + if (PyErr_WarnExplicitFormat(PyExc_ResourceWarning, "gc", 0, + "gc", NULL, "Object of type %s is not untracked before destruction", + ((PyObject*)op)->ob_type->tp_name)) { + PyErr_WriteUnraisable(NULL); + } + PyErr_SetRaisedException(exc); +#endif + } + GCState *gcstate = get_gc_state(); + if (gcstate->generations[0].count > 0) { + gcstate->generations[0].count--; + } + PyObject_Free(((char *)op)-presize); +} + +int +PyObject_GC_IsTracked(PyObject* obj) +{ + if (_PyObject_IS_GC(obj) && _PyObject_GC_IS_TRACKED(obj)) { + return 1; + } + return 0; +} + +int +PyObject_GC_IsFinalized(PyObject *obj) +{ + if (_PyObject_IS_GC(obj) && _PyGC_FINALIZED(obj)) { + return 1; + } + return 0; +} + +static int +visit_generation(gcvisitobjects_t callback, void *arg, struct gc_generation *gen) +{ + PyGC_Head *gc_list, *gc; + gc_list = &gen->head; + for (gc = GC_NEXT(gc_list); gc != gc_list; gc = GC_NEXT(gc)) { + PyObject *op = FROM_GC(gc); + Py_INCREF(op); + int res = callback(op, arg); + Py_DECREF(op); + if (!res) { + return -1; + } + } + return 0; +} + +void +PyUnstable_GC_VisitObjects(gcvisitobjects_t callback, void *arg) +{ + size_t i; + GCState *gcstate = get_gc_state(); + int origenstate = gcstate->enabled; + gcstate->enabled = 0; + for (i = 0; i < NUM_GENERATIONS; i++) { + if (visit_generation(callback, arg, &gcstate->generations[i])) { + goto done; + } + } + visit_generation(callback, arg, &gcstate->permanent_generation); +done: + gcstate->enabled = origenstate; +} + +#endif // Py_GIL_DISABLED diff --git a/contrib/tools/python3/Python/gc_free_threading.c b/contrib/tools/python3/Python/gc_free_threading.c new file mode 100644 index 00000000000..7c7e7b21e55 --- /dev/null +++ b/contrib/tools/python3/Python/gc_free_threading.c @@ -0,0 +1,1908 @@ +// Cyclic garbage collector implementation for free-threaded build. +#include "Python.h" +#include "pycore_brc.h" // struct _brc_thread_state +#include "pycore_ceval.h" // _Py_set_eval_breaker_bit() +#include "pycore_context.h" +#include "pycore_dict.h" // _PyDict_MaybeUntrack() +#include "pycore_initconfig.h" +#include "pycore_interp.h" // PyInterpreterState.gc +#include "pycore_object.h" +#include "pycore_object_alloc.h" // _PyObject_MallocWithType() +#include "pycore_object_stack.h" +#include "pycore_pyerrors.h" +#include "pycore_pystate.h" // _PyThreadState_GET() +#include "pycore_tstate.h" // _PyThreadStateImpl +#include "pycore_weakref.h" // _PyWeakref_ClearRef() +#include "pydtrace.h" + +#ifdef Py_GIL_DISABLED + +typedef struct _gc_runtime_state GCState; + +#ifdef Py_DEBUG +# define GC_DEBUG +#endif + +// Each thread buffers the count of allocated objects in a thread-local +// variable up to +/- this amount to reduce the overhead of updating +// the global count. +#define LOCAL_ALLOC_COUNT_THRESHOLD 512 + +// Automatically choose the generation that needs collecting. +#define GENERATION_AUTO (-1) + +// A linked list of objects using the `ob_tid` field as the next pointer. +// The linked list pointers are distinct from any real thread ids, because the +// thread ids returned by _Py_ThreadId() are also pointers to distinct objects. +// No thread will confuse its own id with a linked list pointer. +struct worklist { + uintptr_t head; +}; + +struct worklist_iter { + uintptr_t *ptr; // pointer to current object + uintptr_t *next; // next value of ptr +}; + +struct visitor_args { + size_t offset; // offset of PyObject from start of block +}; + +// Per-collection state +struct collection_state { + struct visitor_args base; + PyInterpreterState *interp; + GCState *gcstate; + Py_ssize_t collected; + Py_ssize_t uncollectable; + Py_ssize_t long_lived_total; + struct worklist unreachable; + struct worklist legacy_finalizers; + struct worklist wrcb_to_call; + struct worklist objs_to_decref; +}; + +// iterate over a worklist +#define WORKSTACK_FOR_EACH(stack, op) \ + for ((op) = (PyObject *)(stack)->head; (op) != NULL; (op) = (PyObject *)(op)->ob_tid) + +// iterate over a worklist with support for removing the current object +#define WORKSTACK_FOR_EACH_ITER(stack, iter, op) \ + for (worklist_iter_init((iter), &(stack)->head), (op) = (PyObject *)(*(iter)->ptr); \ + (op) != NULL; \ + worklist_iter_init((iter), (iter)->next), (op) = (PyObject *)(*(iter)->ptr)) + +static void +worklist_push(struct worklist *worklist, PyObject *op) +{ + assert(op->ob_tid == 0); + op->ob_tid = worklist->head; + worklist->head = (uintptr_t)op; +} + +static PyObject * +worklist_pop(struct worklist *worklist) +{ + PyObject *op = (PyObject *)worklist->head; + if (op != NULL) { + worklist->head = op->ob_tid; + _Py_atomic_store_uintptr_relaxed(&op->ob_tid, 0); + } + return op; +} + +static void +worklist_iter_init(struct worklist_iter *iter, uintptr_t *next) +{ + iter->ptr = next; + PyObject *op = (PyObject *)*(iter->ptr); + if (op) { + iter->next = &op->ob_tid; + } +} + +static void +worklist_remove(struct worklist_iter *iter) +{ + PyObject *op = (PyObject *)*(iter->ptr); + *(iter->ptr) = op->ob_tid; + op->ob_tid = 0; + iter->next = iter->ptr; +} + +static inline int +gc_is_frozen(PyObject *op) +{ + return (op->ob_gc_bits & _PyGC_BITS_FROZEN) != 0; +} + +static inline int +gc_is_unreachable(PyObject *op) +{ + return (op->ob_gc_bits & _PyGC_BITS_UNREACHABLE) != 0; +} + +static void +gc_set_unreachable(PyObject *op) +{ + op->ob_gc_bits |= _PyGC_BITS_UNREACHABLE; +} + +static void +gc_clear_unreachable(PyObject *op) +{ + op->ob_gc_bits &= ~_PyGC_BITS_UNREACHABLE; +} + +// Initialize the `ob_tid` field to zero if the object is not already +// initialized as unreachable. +static void +gc_maybe_init_refs(PyObject *op) +{ + if (!gc_is_unreachable(op)) { + gc_set_unreachable(op); + op->ob_tid = 0; + } +} + +static inline Py_ssize_t +gc_get_refs(PyObject *op) +{ + return (Py_ssize_t)op->ob_tid; +} + +static inline void +gc_add_refs(PyObject *op, Py_ssize_t refs) +{ + assert(_PyObject_GC_IS_TRACKED(op)); + op->ob_tid += refs; +} + +static inline void +gc_decref(PyObject *op) +{ + op->ob_tid -= 1; +} + +static void +disable_deferred_refcounting(PyObject *op) +{ + if (_PyObject_HasDeferredRefcount(op)) { + op->ob_gc_bits &= ~_PyGC_BITS_DEFERRED; + op->ob_ref_shared -= (1 << _Py_REF_SHARED_SHIFT); + } +} + +static Py_ssize_t +merge_refcount(PyObject *op, Py_ssize_t extra) +{ + assert(_PyInterpreterState_GET()->stoptheworld.world_stopped); + + Py_ssize_t refcount = Py_REFCNT(op); + refcount += extra; + +#ifdef Py_REF_DEBUG + _Py_AddRefTotal(_PyThreadState_GET(), extra); +#endif + + // No atomics necessary; all other threads in this interpreter are paused. + op->ob_tid = 0; + op->ob_ref_local = 0; + op->ob_ref_shared = _Py_REF_SHARED(refcount, _Py_REF_MERGED); + return refcount; +} + +static void +gc_restore_tid(PyObject *op) +{ + assert(_PyInterpreterState_GET()->stoptheworld.world_stopped); + mi_segment_t *segment = _mi_ptr_segment(op); + if (_Py_REF_IS_MERGED(op->ob_ref_shared)) { + op->ob_tid = 0; + } + else { + // NOTE: may change ob_tid if the object was re-initialized by + // a different thread or its segment was abandoned and reclaimed. + // The segment thread id might be zero, in which case we should + // ensure the refcounts are now merged. + op->ob_tid = segment->thread_id; + if (op->ob_tid == 0) { + merge_refcount(op, 0); + } + } +} + +static void +gc_restore_refs(PyObject *op) +{ + if (gc_is_unreachable(op)) { + gc_restore_tid(op); + gc_clear_unreachable(op); + } +} + +// Given a mimalloc memory block return the PyObject stored in it or NULL if +// the block is not allocated or the object is not tracked or is immortal. +static PyObject * +op_from_block(void *block, void *arg, bool include_frozen) +{ + struct visitor_args *a = arg; + if (block == NULL) { + return NULL; + } + PyObject *op = (PyObject *)((char*)block + a->offset); + assert(PyObject_IS_GC(op)); + if (!_PyObject_GC_IS_TRACKED(op)) { + return NULL; + } + if (!include_frozen && gc_is_frozen(op)) { + return NULL; + } + return op; +} + +static int +gc_visit_heaps_lock_held(PyInterpreterState *interp, mi_block_visit_fun *visitor, + struct visitor_args *arg) +{ + // Offset of PyObject header from start of memory block. + Py_ssize_t offset_base = 0; + if (_PyMem_DebugEnabled()) { + // The debug allocator adds two words at the beginning of each block. + offset_base += 2 * sizeof(size_t); + } + + // Objects with Py_TPFLAGS_PREHEADER have two extra fields + Py_ssize_t offset_pre = offset_base + 2 * sizeof(PyObject*); + + // visit each thread's heaps for GC objects + for (PyThreadState *p = interp->threads.head; p != NULL; p = p->next) { + struct _mimalloc_thread_state *m = &((_PyThreadStateImpl *)p)->mimalloc; + if (!_Py_atomic_load_int(&m->initialized)) { + // The thread may not have called tstate_mimalloc_bind() yet. + continue; + } + + arg->offset = offset_base; + if (!mi_heap_visit_blocks(&m->heaps[_Py_MIMALLOC_HEAP_GC], true, + visitor, arg)) { + return -1; + } + arg->offset = offset_pre; + if (!mi_heap_visit_blocks(&m->heaps[_Py_MIMALLOC_HEAP_GC_PRE], true, + visitor, arg)) { + return -1; + } + } + + // visit blocks in the per-interpreter abandoned pool (from dead threads) + mi_abandoned_pool_t *pool = &interp->mimalloc.abandoned_pool; + arg->offset = offset_base; + if (!_mi_abandoned_pool_visit_blocks(pool, _Py_MIMALLOC_HEAP_GC, true, + visitor, arg)) { + return -1; + } + arg->offset = offset_pre; + if (!_mi_abandoned_pool_visit_blocks(pool, _Py_MIMALLOC_HEAP_GC_PRE, true, + visitor, arg)) { + return -1; + } + return 0; +} + +// Visits all GC objects in the interpreter's heaps. +// NOTE: It is not safe to allocate or free any mimalloc managed memory while +// this function is running. +static int +gc_visit_heaps(PyInterpreterState *interp, mi_block_visit_fun *visitor, + struct visitor_args *arg) +{ + // Other threads in the interpreter must be paused so that we can safely + // traverse their heaps. + assert(interp->stoptheworld.world_stopped); + + int err; + HEAD_LOCK(&_PyRuntime); + err = gc_visit_heaps_lock_held(interp, visitor, arg); + HEAD_UNLOCK(&_PyRuntime); + return err; +} + +static void +merge_queued_objects(_PyThreadStateImpl *tstate, struct collection_state *state) +{ + struct _brc_thread_state *brc = &tstate->brc; + _PyObjectStack_Merge(&brc->local_objects_to_merge, &brc->objects_to_merge); + + PyObject *op; + while ((op = _PyObjectStack_Pop(&brc->local_objects_to_merge)) != NULL) { + // Subtract one when merging because the queue had a reference. + Py_ssize_t refcount = merge_refcount(op, -1); + + if (!_PyObject_GC_IS_TRACKED(op) && refcount == 0) { + // GC objects with zero refcount are handled subsequently by the + // GC as if they were cyclic trash, but we have to handle dead + // non-GC objects here. Add one to the refcount so that we can + // decref and deallocate the object once we start the world again. + op->ob_ref_shared += (1 << _Py_REF_SHARED_SHIFT); +#ifdef Py_REF_DEBUG + _Py_IncRefTotal(_PyThreadState_GET()); +#endif + worklist_push(&state->objs_to_decref, op); + } + } +} + +static void +merge_all_queued_objects(PyInterpreterState *interp, struct collection_state *state) +{ + HEAD_LOCK(&_PyRuntime); + for (PyThreadState *p = interp->threads.head; p != NULL; p = p->next) { + merge_queued_objects((_PyThreadStateImpl *)p, state); + } + HEAD_UNLOCK(&_PyRuntime); +} + +static void +process_delayed_frees(PyInterpreterState *interp) +{ + // While we are in a "stop the world" pause, we can observe the latest + // write sequence by advancing the write sequence immediately. + _Py_qsbr_advance(&interp->qsbr); + _PyThreadStateImpl *current_tstate = (_PyThreadStateImpl *)_PyThreadState_GET(); + _Py_qsbr_quiescent_state(current_tstate->qsbr); + + // Merge the queues from other threads into our own queue so that we can + // process all of the pending delayed free requests at once. + HEAD_LOCK(&_PyRuntime); + for (PyThreadState *p = interp->threads.head; p != NULL; p = p->next) { + _PyThreadStateImpl *other = (_PyThreadStateImpl *)p; + if (other != current_tstate) { + llist_concat(¤t_tstate->mem_free_queue, &other->mem_free_queue); + } + } + HEAD_UNLOCK(&_PyRuntime); + + _PyMem_ProcessDelayed((PyThreadState *)current_tstate); +} + +// Subtract an incoming reference from the computed "gc_refs" refcount. +static int +visit_decref(PyObject *op, void *arg) +{ + if (_PyObject_GC_IS_TRACKED(op) + && !_Py_IsImmortal(op) + && !gc_is_frozen(op)) + { + // If update_refs hasn't reached this object yet, mark it + // as (tentatively) unreachable and initialize ob_tid to zero. + gc_maybe_init_refs(op); + gc_decref(op); + } + return 0; +} + +// Compute the number of external references to objects in the heap +// by subtracting internal references from the refcount. The difference is +// computed in the ob_tid field (we restore it later). +static bool +update_refs(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, false); + if (op == NULL) { + return true; + } + + // Exclude immortal objects from garbage collection + if (_Py_IsImmortal(op)) { + op->ob_tid = 0; + _PyObject_GC_UNTRACK(op); + gc_clear_unreachable(op); + return true; + } + + Py_ssize_t refcount = Py_REFCNT(op); + refcount -= _PyObject_HasDeferredRefcount(op); + _PyObject_ASSERT(op, refcount >= 0); + + if (refcount > 0 && !_PyObject_HasDeferredRefcount(op)) { + // Untrack tuples and dicts as necessary in this pass, but not objects + // with zero refcount, which we will want to collect. + if (PyTuple_CheckExact(op)) { + _PyTuple_MaybeUntrack(op); + if (!_PyObject_GC_IS_TRACKED(op)) { + gc_restore_refs(op); + return true; + } + } + else if (PyDict_CheckExact(op)) { + _PyDict_MaybeUntrack(op); + if (!_PyObject_GC_IS_TRACKED(op)) { + gc_restore_refs(op); + return true; + } + } + } + + // We repurpose ob_tid to compute "gc_refs", the number of external + // references to the object (i.e., from outside the GC heaps). This means + // that ob_tid is no longer a valid thread id until it is restored by + // scan_heap_visitor(). Until then, we cannot use the standard reference + // counting functions or allow other threads to run Python code. + gc_maybe_init_refs(op); + + // Add the actual refcount to ob_tid. + gc_add_refs(op, refcount); + + // Subtract internal references from ob_tid. Objects with ob_tid > 0 + // are directly reachable from outside containers, and so can't be + // collected. + Py_TYPE(op)->tp_traverse(op, visit_decref, NULL); + return true; +} + +static int +visit_clear_unreachable(PyObject *op, _PyObjectStack *stack) +{ + if (gc_is_unreachable(op)) { + _PyObject_ASSERT(op, _PyObject_GC_IS_TRACKED(op)); + gc_clear_unreachable(op); + return _PyObjectStack_Push(stack, op); + } + return 0; +} + +// Transitively clear the unreachable bit on all objects reachable from op. +static int +mark_reachable(PyObject *op) +{ + _PyObjectStack stack = { NULL }; + do { + traverseproc traverse = Py_TYPE(op)->tp_traverse; + if (traverse(op, (visitproc)&visit_clear_unreachable, &stack) < 0) { + _PyObjectStack_Clear(&stack); + return -1; + } + op = _PyObjectStack_Pop(&stack); + } while (op != NULL); + return 0; +} + +#ifdef GC_DEBUG +static bool +validate_refcounts(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, false); + if (op == NULL) { + return true; + } + + _PyObject_ASSERT_WITH_MSG(op, !gc_is_unreachable(op), + "object should not be marked as unreachable yet"); + + if (_Py_REF_IS_MERGED(op->ob_ref_shared)) { + _PyObject_ASSERT_WITH_MSG(op, op->ob_tid == 0, + "merged objects should have ob_tid == 0"); + } + else if (!_Py_IsImmortal(op)) { + _PyObject_ASSERT_WITH_MSG(op, op->ob_tid != 0, + "unmerged objects should have ob_tid != 0"); + } + + return true; +} + +static bool +validate_gc_objects(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, false); + if (op == NULL) { + return true; + } + + _PyObject_ASSERT(op, gc_is_unreachable(op)); + _PyObject_ASSERT_WITH_MSG(op, gc_get_refs(op) >= 0, + "refcount is too small"); + return true; +} +#endif + +static bool +mark_heap_visitor(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, false); + if (op == NULL) { + return true; + } + + _PyObject_ASSERT_WITH_MSG(op, gc_get_refs(op) >= 0, + "refcount is too small"); + + if (gc_is_unreachable(op) && gc_get_refs(op) != 0) { + // Object is reachable but currently marked as unreachable. + // Mark it as reachable and traverse its pointers to find + // any other object that may be directly reachable from it. + gc_clear_unreachable(op); + + // Transitively mark reachable objects by clearing the unreachable flag. + if (mark_reachable(op) < 0) { + return false; + } + } + + return true; +} + +static bool +restore_refs(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, false); + if (op == NULL) { + return true; + } + gc_restore_tid(op); + gc_clear_unreachable(op); + return true; +} + +/* Return true if object has a pre-PEP 442 finalization method. */ +static int +has_legacy_finalizer(PyObject *op) +{ + return Py_TYPE(op)->tp_del != NULL; +} + +static bool +scan_heap_visitor(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, false); + if (op == NULL) { + return true; + } + + struct collection_state *state = (struct collection_state *)args; + if (gc_is_unreachable(op)) { + // Disable deferred refcounting for unreachable objects so that they + // are collected immediately after finalization. + disable_deferred_refcounting(op); + + // Merge and add one to the refcount to prevent deallocation while we + // are holding on to it in a worklist. + merge_refcount(op, 1); + + if (has_legacy_finalizer(op)) { + // would be unreachable, but has legacy finalizer + gc_clear_unreachable(op); + worklist_push(&state->legacy_finalizers, op); + } + else { + worklist_push(&state->unreachable, op); + } + } + else { + // object is reachable, restore `ob_tid`; we're done with these objects + gc_restore_tid(op); + state->long_lived_total++; + } + + return true; +} + +static int +move_legacy_finalizer_reachable(struct collection_state *state); + +static int +deduce_unreachable_heap(PyInterpreterState *interp, + struct collection_state *state) +{ + +#ifdef GC_DEBUG + // Check that all objects are marked as unreachable and that the computed + // reference count difference (stored in `ob_tid`) is non-negative. + gc_visit_heaps(interp, &validate_refcounts, &state->base); +#endif + + // Identify objects that are directly reachable from outside the GC heap + // by computing the difference between the refcount and the number of + // incoming references. + gc_visit_heaps(interp, &update_refs, &state->base); + +#ifdef GC_DEBUG + // Check that all objects are marked as unreachable and that the computed + // reference count difference (stored in `ob_tid`) is non-negative. + gc_visit_heaps(interp, &validate_gc_objects, &state->base); +#endif + + // Transitively mark reachable objects by clearing the + // _PyGC_BITS_UNREACHABLE flag. + if (gc_visit_heaps(interp, &mark_heap_visitor, &state->base) < 0) { + // On out-of-memory, restore the refcounts and bail out. + gc_visit_heaps(interp, &restore_refs, &state->base); + return -1; + } + + // Identify remaining unreachable objects and push them onto a stack. + // Restores ob_tid for reachable objects. + gc_visit_heaps(interp, &scan_heap_visitor, &state->base); + + if (state->legacy_finalizers.head) { + // There may be objects reachable from legacy finalizers that are in + // the unreachable set. We need to mark them as reachable. + if (move_legacy_finalizer_reachable(state) < 0) { + return -1; + } + } + + return 0; +} + +static int +move_legacy_finalizer_reachable(struct collection_state *state) +{ + // Clear the reachable bit on all objects transitively reachable + // from the objects with legacy finalizers. + PyObject *op; + WORKSTACK_FOR_EACH(&state->legacy_finalizers, op) { + if (mark_reachable(op) < 0) { + return -1; + } + } + + // Move the reachable objects from the unreachable worklist to the legacy + // finalizer worklist. + struct worklist_iter iter; + WORKSTACK_FOR_EACH_ITER(&state->unreachable, &iter, op) { + if (!gc_is_unreachable(op)) { + worklist_remove(&iter); + worklist_push(&state->legacy_finalizers, op); + } + } + + return 0; +} + +// Clear all weakrefs to unreachable objects. Weakrefs with callbacks are +// enqueued in `wrcb_to_call`, but not invoked yet. +static void +clear_weakrefs(struct collection_state *state) +{ + PyObject *op; + WORKSTACK_FOR_EACH(&state->unreachable, op) { + if (PyWeakref_Check(op)) { + // Clear weakrefs that are themselves unreachable to ensure their + // callbacks will not be executed later from a `tp_clear()` + // inside delete_garbage(). That would be unsafe: it could + // resurrect a dead object or access a an already cleared object. + // See bpo-38006 for one example. + _PyWeakref_ClearRef((PyWeakReference *)op); + } + + if (!_PyType_SUPPORTS_WEAKREFS(Py_TYPE(op))) { + continue; + } + + // NOTE: This is never triggered for static types so we can avoid the + // (slightly) more costly _PyObject_GET_WEAKREFS_LISTPTR(). + PyWeakReference **wrlist = _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(op); + + // `op` may have some weakrefs. March over the list, clear + // all the weakrefs, and enqueue the weakrefs with callbacks + // that must be called into wrcb_to_call. + for (PyWeakReference *wr = *wrlist; wr != NULL; wr = *wrlist) { + // _PyWeakref_ClearRef clears the weakref but leaves + // the callback pointer intact. Obscure: it also + // changes *wrlist. + _PyObject_ASSERT((PyObject *)wr, wr->wr_object == op); + _PyWeakref_ClearRef(wr); + _PyObject_ASSERT((PyObject *)wr, wr->wr_object == Py_None); + + // We do not invoke callbacks for weakrefs that are themselves + // unreachable. This is partly for historical reasons: weakrefs + // predate safe object finalization, and a weakref that is itself + // unreachable may have a callback that resurrects other + // unreachable objects. + if (wr->wr_callback == NULL || gc_is_unreachable((PyObject *)wr)) { + continue; + } + + // Create a new reference so that wr can't go away before we can + // process it again. + merge_refcount((PyObject *)wr, 1); + + // Enqueue weakref to be called later. + worklist_push(&state->wrcb_to_call, (PyObject *)wr); + } + } +} + +static void +call_weakref_callbacks(struct collection_state *state) +{ + // Invoke the callbacks we decided to honor. + PyObject *op; + while ((op = worklist_pop(&state->wrcb_to_call)) != NULL) { + _PyObject_ASSERT(op, PyWeakref_Check(op)); + + PyWeakReference *wr = (PyWeakReference *)op; + PyObject *callback = wr->wr_callback; + _PyObject_ASSERT(op, callback != NULL); + + /* copy-paste of weakrefobject.c's handle_callback() */ + PyObject *temp = PyObject_CallOneArg(callback, (PyObject *)wr); + if (temp == NULL) { + PyErr_WriteUnraisable(callback); + } + else { + Py_DECREF(temp); + } + + Py_DECREF(op); // drop worklist reference + } +} + + +static GCState * +get_gc_state(void) +{ + PyInterpreterState *interp = _PyInterpreterState_GET(); + return &interp->gc; +} + + +void +_PyGC_InitState(GCState *gcstate) +{ + // TODO: move to pycore_runtime_init.h once the incremental GC lands. + gcstate->generations[0].threshold = 2000; +} + + +PyStatus +_PyGC_Init(PyInterpreterState *interp) +{ + GCState *gcstate = &interp->gc; + + // gh-117783: immortalize objects that would use deferred refcounting + // once the first non-main thread is created (but not in subinterpreters). + gcstate->immortalize = _Py_IsMainInterpreter(interp) ? 0 : -1; + + gcstate->garbage = PyList_New(0); + if (gcstate->garbage == NULL) { + return _PyStatus_NO_MEMORY(); + } + + gcstate->callbacks = PyList_New(0); + if (gcstate->callbacks == NULL) { + return _PyStatus_NO_MEMORY(); + } + + return _PyStatus_OK(); +} + +static void +debug_cycle(const char *msg, PyObject *op) +{ + PySys_FormatStderr("gc: %s <%s %p>\n", + msg, Py_TYPE(op)->tp_name, op); +} + +/* Run first-time finalizers (if any) on all the objects in collectable. + * Note that this may remove some (or even all) of the objects from the + * list, due to refcounts falling to 0. + */ +static void +finalize_garbage(struct collection_state *state) +{ + // NOTE: the unreachable worklist holds a strong reference to the object + // to prevent it from being deallocated while we are holding on to it. + PyObject *op; + WORKSTACK_FOR_EACH(&state->unreachable, op) { + if (!_PyGC_FINALIZED(op)) { + destructor finalize = Py_TYPE(op)->tp_finalize; + if (finalize != NULL) { + _PyGC_SET_FINALIZED(op); + finalize(op); + assert(!_PyErr_Occurred(_PyThreadState_GET())); + } + } + } +} + +// Break reference cycles by clearing the containers involved. +static void +delete_garbage(struct collection_state *state) +{ + PyThreadState *tstate = _PyThreadState_GET(); + GCState *gcstate = state->gcstate; + + assert(!_PyErr_Occurred(tstate)); + + PyObject *op; + while ((op = worklist_pop(&state->objs_to_decref)) != NULL) { + Py_DECREF(op); + } + + while ((op = worklist_pop(&state->unreachable)) != NULL) { + _PyObject_ASSERT(op, gc_is_unreachable(op)); + + // Clear the unreachable flag. + gc_clear_unreachable(op); + + if (!_PyObject_GC_IS_TRACKED(op)) { + // Object might have been untracked by some other tp_clear() call. + Py_DECREF(op); // drop the reference from the worklist + continue; + } + + state->collected++; + + if (gcstate->debug & _PyGC_DEBUG_SAVEALL) { + assert(gcstate->garbage != NULL); + if (PyList_Append(gcstate->garbage, op) < 0) { + _PyErr_Clear(tstate); + } + } + else { + inquiry clear = Py_TYPE(op)->tp_clear; + if (clear != NULL) { + (void) clear(op); + if (_PyErr_Occurred(tstate)) { + PyErr_FormatUnraisable("Exception ignored in tp_clear of %s", + Py_TYPE(op)->tp_name); + } + } + } + + Py_DECREF(op); // drop the reference from the worklist + } +} + +static void +handle_legacy_finalizers(struct collection_state *state) +{ + GCState *gcstate = state->gcstate; + assert(gcstate->garbage != NULL); + + PyObject *op; + while ((op = worklist_pop(&state->legacy_finalizers)) != NULL) { + state->uncollectable++; + + if (gcstate->debug & _PyGC_DEBUG_UNCOLLECTABLE) { + debug_cycle("uncollectable", op); + } + + if ((gcstate->debug & _PyGC_DEBUG_SAVEALL) || has_legacy_finalizer(op)) { + if (PyList_Append(gcstate->garbage, op) < 0) { + PyErr_Clear(); + } + } + Py_DECREF(op); // drop worklist reference + } +} + +// Show stats for objects in each generations +static void +show_stats_each_generations(GCState *gcstate) +{ + // TODO +} + +// Traversal callback for handle_resurrected_objects. +static int +visit_decref_unreachable(PyObject *op, void *data) +{ + if (gc_is_unreachable(op) && _PyObject_GC_IS_TRACKED(op)) { + op->ob_ref_local -= 1; + } + return 0; +} + +// Handle objects that may have resurrected after a call to 'finalize_garbage'. +static int +handle_resurrected_objects(struct collection_state *state) +{ + // First, find externally reachable objects by computing the reference + // count difference in ob_ref_local. We can't use ob_tid here because + // that's already used to store the unreachable worklist. + PyObject *op; + struct worklist_iter iter; + WORKSTACK_FOR_EACH_ITER(&state->unreachable, &iter, op) { + assert(gc_is_unreachable(op)); + assert(_Py_REF_IS_MERGED(op->ob_ref_shared)); + + if (!_PyObject_GC_IS_TRACKED(op)) { + // Object was untracked by a finalizer. Schedule it for a Py_DECREF + // after we finish with the stop-the-world pause. + gc_clear_unreachable(op); + worklist_remove(&iter); + worklist_push(&state->objs_to_decref, op); + continue; + } + + Py_ssize_t refcount = (op->ob_ref_shared >> _Py_REF_SHARED_SHIFT); + if (refcount > INT32_MAX) { + // The refcount is too big to fit in `ob_ref_local`. Mark the + // object as immortal and bail out. + gc_clear_unreachable(op); + worklist_remove(&iter); + _Py_SetImmortal(op); + continue; + } + + op->ob_ref_local += (uint32_t)refcount; + + // Subtract one to account for the reference from the worklist. + op->ob_ref_local -= 1; + + traverseproc traverse = Py_TYPE(op)->tp_traverse; + (void) traverse(op, + (visitproc)visit_decref_unreachable, + NULL); + } + + // Find resurrected objects + bool any_resurrected = false; + WORKSTACK_FOR_EACH(&state->unreachable, op) { + int32_t gc_refs = (int32_t)op->ob_ref_local; + op->ob_ref_local = 0; // restore ob_ref_local + + _PyObject_ASSERT(op, gc_refs >= 0); + + if (gc_is_unreachable(op) && gc_refs > 0) { + // Clear the unreachable flag on any transitively reachable objects + // from this one. + any_resurrected = true; + gc_clear_unreachable(op); + if (mark_reachable(op) < 0) { + return -1; + } + } + } + + if (any_resurrected) { + // Remove resurrected objects from the unreachable list. + WORKSTACK_FOR_EACH_ITER(&state->unreachable, &iter, op) { + if (!gc_is_unreachable(op)) { + _PyObject_ASSERT(op, Py_REFCNT(op) > 1); + worklist_remove(&iter); + merge_refcount(op, -1); // remove worklist reference + } + } + } + +#ifdef GC_DEBUG + WORKSTACK_FOR_EACH(&state->unreachable, op) { + _PyObject_ASSERT(op, gc_is_unreachable(op)); + _PyObject_ASSERT(op, _PyObject_GC_IS_TRACKED(op)); + _PyObject_ASSERT(op, op->ob_ref_local == 0); + _PyObject_ASSERT(op, _Py_REF_IS_MERGED(op->ob_ref_shared)); + } +#endif + + return 0; +} + + +/* Invoke progress callbacks to notify clients that garbage collection + * is starting or stopping + */ +static void +invoke_gc_callback(PyThreadState *tstate, const char *phase, + int generation, Py_ssize_t collected, + Py_ssize_t uncollectable) +{ + assert(!_PyErr_Occurred(tstate)); + + /* we may get called very early */ + GCState *gcstate = &tstate->interp->gc; + if (gcstate->callbacks == NULL) { + return; + } + + /* The local variable cannot be rebound, check it for sanity */ + assert(PyList_CheckExact(gcstate->callbacks)); + PyObject *info = NULL; + if (PyList_GET_SIZE(gcstate->callbacks) != 0) { + info = Py_BuildValue("{sisnsn}", + "generation", generation, + "collected", collected, + "uncollectable", uncollectable); + if (info == NULL) { + PyErr_FormatUnraisable("Exception ignored on invoking gc callbacks"); + return; + } + } + + PyObject *phase_obj = PyUnicode_FromString(phase); + if (phase_obj == NULL) { + Py_XDECREF(info); + PyErr_FormatUnraisable("Exception ignored on invoking gc callbacks"); + return; + } + + PyObject *stack[] = {phase_obj, info}; + for (Py_ssize_t i=0; icallbacks); i++) { + PyObject *r, *cb = PyList_GET_ITEM(gcstate->callbacks, i); + Py_INCREF(cb); /* make sure cb doesn't go away */ + r = PyObject_Vectorcall(cb, stack, 2, NULL); + if (r == NULL) { + PyErr_WriteUnraisable(cb); + } + else { + Py_DECREF(r); + } + Py_DECREF(cb); + } + Py_DECREF(phase_obj); + Py_XDECREF(info); + assert(!_PyErr_Occurred(tstate)); +} + +static void +cleanup_worklist(struct worklist *worklist) +{ + PyObject *op; + while ((op = worklist_pop(worklist)) != NULL) { + gc_clear_unreachable(op); + Py_DECREF(op); + } +} + +static bool +gc_should_collect(GCState *gcstate) +{ + int count = _Py_atomic_load_int_relaxed(&gcstate->generations[0].count); + int threshold = gcstate->generations[0].threshold; + int gc_enabled = _Py_atomic_load_int_relaxed(&gcstate->enabled); + if (count <= threshold || threshold == 0 || !gc_enabled) { + return false; + } + // Avoid quadratic behavior by scaling threshold to the number of live + // objects. A few tests rely on immediate scheduling of the GC so we ignore + // the scaled threshold if generations[1].threshold is set to zero. + return (count > gcstate->long_lived_total / 4 || + gcstate->generations[1].threshold == 0); +} + +static void +record_allocation(PyThreadState *tstate) +{ + struct _gc_thread_state *gc = &((_PyThreadStateImpl *)tstate)->gc; + + // We buffer the allocation count to avoid the overhead of atomic + // operations for every allocation. + gc->alloc_count++; + if (gc->alloc_count >= LOCAL_ALLOC_COUNT_THRESHOLD) { + // TODO: Use Py_ssize_t for the generation count. + GCState *gcstate = &tstate->interp->gc; + _Py_atomic_add_int(&gcstate->generations[0].count, (int)gc->alloc_count); + gc->alloc_count = 0; + + if (gc_should_collect(gcstate) && + !_Py_atomic_load_int_relaxed(&gcstate->collecting)) + { + _Py_ScheduleGC(tstate); + } + } +} + +static void +record_deallocation(PyThreadState *tstate) +{ + struct _gc_thread_state *gc = &((_PyThreadStateImpl *)tstate)->gc; + + gc->alloc_count--; + if (gc->alloc_count <= -LOCAL_ALLOC_COUNT_THRESHOLD) { + GCState *gcstate = &tstate->interp->gc; + int count = _Py_atomic_load_int_relaxed(&gcstate->generations[0].count); + int new_count; + do { + if (count == 0) { + break; + } + new_count = count + (int)gc->alloc_count; + if (new_count < 0) { + new_count = 0; + } + } while (!_Py_atomic_compare_exchange_int(&gcstate->generations[0].count, + &count, + new_count)); + gc->alloc_count = 0; + } +} + +static void +gc_collect_internal(PyInterpreterState *interp, struct collection_state *state, int generation) +{ + _PyEval_StopTheWorld(interp); + + // update collection and allocation counters + if (generation+1 < NUM_GENERATIONS) { + state->gcstate->generations[generation+1].count += 1; + } + for (int i = 0; i <= generation; i++) { + state->gcstate->generations[i].count = 0; + } + + // merge refcounts for all queued objects + merge_all_queued_objects(interp, state); + process_delayed_frees(interp); + + // Find unreachable objects + int err = deduce_unreachable_heap(interp, state); + if (err < 0) { + _PyEval_StartTheWorld(interp); + PyErr_NoMemory(); + return; + } + + // Print debugging information. + if (interp->gc.debug & _PyGC_DEBUG_COLLECTABLE) { + PyObject *op; + WORKSTACK_FOR_EACH(&state->unreachable, op) { + debug_cycle("collectable", op); + } + } + + // Record the number of live GC objects + interp->gc.long_lived_total = state->long_lived_total; + + // Clear weakrefs and enqueue callbacks (but do not call them). + clear_weakrefs(state); + _PyEval_StartTheWorld(interp); + + // Deallocate any object from the refcount merge step + cleanup_worklist(&state->objs_to_decref); + + // Call weakref callbacks and finalizers after unpausing other threads to + // avoid potential deadlocks. + call_weakref_callbacks(state); + finalize_garbage(state); + + // Handle any objects that may have resurrected after the finalization. + _PyEval_StopTheWorld(interp); + err = handle_resurrected_objects(state); + // Clear free lists in all threads + _PyGC_ClearAllFreeLists(interp); + _PyEval_StartTheWorld(interp); + + if (err < 0) { + cleanup_worklist(&state->unreachable); + cleanup_worklist(&state->legacy_finalizers); + cleanup_worklist(&state->wrcb_to_call); + cleanup_worklist(&state->objs_to_decref); + PyErr_NoMemory(); + return; + } + + // Call tp_clear on objects in the unreachable set. This will cause + // the reference cycles to be broken. It may also cause some objects + // to be freed. + delete_garbage(state); + + // Append objects with legacy finalizers to the "gc.garbage" list. + handle_legacy_finalizers(state); +} + +/* This is the main function. Read this to understand how the + * collection process works. */ +static Py_ssize_t +gc_collect_main(PyThreadState *tstate, int generation, _PyGC_Reason reason) +{ + Py_ssize_t m = 0; /* # objects collected */ + Py_ssize_t n = 0; /* # unreachable objects that couldn't be collected */ + PyTime_t t1 = 0; /* initialize to prevent a compiler warning */ + GCState *gcstate = &tstate->interp->gc; + + // gc_collect_main() must not be called before _PyGC_Init + // or after _PyGC_Fini() + assert(gcstate->garbage != NULL); + assert(!_PyErr_Occurred(tstate)); + + int expected = 0; + if (!_Py_atomic_compare_exchange_int(&gcstate->collecting, &expected, 1)) { + // Don't start a garbage collection if one is already in progress. + return 0; + } + + if (reason == _Py_GC_REASON_HEAP && !gc_should_collect(gcstate)) { + // Don't collect if the threshold is not exceeded. + _Py_atomic_store_int(&gcstate->collecting, 0); + return 0; + } + + assert(generation >= 0 && generation < NUM_GENERATIONS); + +#ifdef Py_STATS + if (_Py_stats) { + _Py_stats->object_stats.object_visits = 0; + } +#endif + GC_STAT_ADD(generation, collections, 1); + + if (reason != _Py_GC_REASON_SHUTDOWN) { + invoke_gc_callback(tstate, "start", generation, 0, 0); + } + + if (gcstate->debug & _PyGC_DEBUG_STATS) { + PySys_WriteStderr("gc: collecting generation %d...\n", generation); + show_stats_each_generations(gcstate); + // ignore error: don't interrupt the GC if reading the clock fails + (void)PyTime_PerfCounterRaw(&t1); + } + + if (PyDTrace_GC_START_ENABLED()) { + PyDTrace_GC_START(generation); + } + + PyInterpreterState *interp = tstate->interp; + + struct collection_state state = { + .interp = interp, + .gcstate = gcstate, + }; + + gc_collect_internal(interp, &state, generation); + + m = state.collected; + n = state.uncollectable; + + if (gcstate->debug & _PyGC_DEBUG_STATS) { + PyTime_t t2; + (void)PyTime_PerfCounterRaw(&t2); + double d = PyTime_AsSecondsDouble(t2 - t1); + PySys_WriteStderr( + "gc: done, %zd unreachable, %zd uncollectable, %.4fs elapsed\n", + n+m, n, d); + } + + // Clear the current thread's free-list again. + _PyThreadStateImpl *tstate_impl = (_PyThreadStateImpl *)tstate; + _PyObject_ClearFreeLists(&tstate_impl->freelists, 0); + + if (_PyErr_Occurred(tstate)) { + if (reason == _Py_GC_REASON_SHUTDOWN) { + _PyErr_Clear(tstate); + } + else { + PyErr_FormatUnraisable("Exception ignored in garbage collection"); + } + } + + /* Update stats */ + struct gc_generation_stats *stats = &gcstate->generation_stats[generation]; + stats->collections++; + stats->collected += m; + stats->uncollectable += n; + + GC_STAT_ADD(generation, objects_collected, m); +#ifdef Py_STATS + if (_Py_stats) { + GC_STAT_ADD(generation, object_visits, + _Py_stats->object_stats.object_visits); + _Py_stats->object_stats.object_visits = 0; + } +#endif + + if (PyDTrace_GC_DONE_ENABLED()) { + PyDTrace_GC_DONE(n + m); + } + + if (reason != _Py_GC_REASON_SHUTDOWN) { + invoke_gc_callback(tstate, "stop", generation, m, n); + } + + assert(!_PyErr_Occurred(tstate)); + _Py_atomic_store_int(&gcstate->collecting, 0); + return n + m; +} + +static PyObject * +list_from_object_stack(_PyObjectStack *stack) +{ + PyObject *list = PyList_New(_PyObjectStack_Size(stack)); + if (list == NULL) { + PyObject *op; + while ((op = _PyObjectStack_Pop(stack)) != NULL) { + Py_DECREF(op); + } + return NULL; + } + + PyObject *op; + Py_ssize_t idx = 0; + while ((op = _PyObjectStack_Pop(stack)) != NULL) { + assert(idx < PyList_GET_SIZE(list)); + PyList_SET_ITEM(list, idx++, op); + } + assert(idx == PyList_GET_SIZE(list)); + return list; +} + +struct get_referrers_args { + struct visitor_args base; + PyObject *objs; + _PyObjectStack results; +}; + +static int +referrersvisit(PyObject* obj, void *arg) +{ + PyObject *objs = arg; + Py_ssize_t i; + for (i = 0; i < PyTuple_GET_SIZE(objs); i++) { + if (PyTuple_GET_ITEM(objs, i) == obj) { + return 1; + } + } + return 0; +} + +static bool +visit_get_referrers(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, true); + if (op == NULL) { + return true; + } + if (op->ob_gc_bits & (_PyGC_BITS_UNREACHABLE | _PyGC_BITS_FROZEN)) { + // Exclude unreachable objects (in-progress GC) and frozen + // objects from gc.get_objects() to match the default build. + return true; + } + + struct get_referrers_args *arg = (struct get_referrers_args *)args; + if (op == arg->objs) { + // Don't include the tuple itself in the referrers list. + return true; + } + if (Py_TYPE(op)->tp_traverse(op, referrersvisit, arg->objs)) { + if (_PyObjectStack_Push(&arg->results, Py_NewRef(op)) < 0) { + return false; + } + } + + return true; +} + +PyObject * +_PyGC_GetReferrers(PyInterpreterState *interp, PyObject *objs) +{ + // NOTE: We can't append to the PyListObject during gc_visit_heaps() + // because PyList_Append() may reclaim an abandoned mimalloc segments + // while we are traversing them. + struct get_referrers_args args = { .objs = objs }; + _PyEval_StopTheWorld(interp); + int err = gc_visit_heaps(interp, &visit_get_referrers, &args.base); + _PyEval_StartTheWorld(interp); + + PyObject *list = list_from_object_stack(&args.results); + if (err < 0) { + PyErr_NoMemory(); + Py_CLEAR(list); + } + return list; +} + +struct get_objects_args { + struct visitor_args base; + _PyObjectStack objects; +}; + +static bool +visit_get_objects(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, true); + if (op == NULL) { + return true; + } + if (op->ob_gc_bits & (_PyGC_BITS_UNREACHABLE | _PyGC_BITS_FROZEN)) { + // Exclude unreachable objects (in-progress GC) and frozen + // objects from gc.get_objects() to match the default build. + return true; + } + + struct get_objects_args *arg = (struct get_objects_args *)args; + if (_PyObjectStack_Push(&arg->objects, Py_NewRef(op)) < 0) { + return false; + } + return true; +} + +PyObject * +_PyGC_GetObjects(PyInterpreterState *interp, int generation) +{ + // NOTE: We can't append to the PyListObject during gc_visit_heaps() + // because PyList_Append() may reclaim an abandoned mimalloc segments + // while we are traversing them. + struct get_objects_args args = { 0 }; + _PyEval_StopTheWorld(interp); + int err = gc_visit_heaps(interp, &visit_get_objects, &args.base); + _PyEval_StartTheWorld(interp); + + PyObject *list = list_from_object_stack(&args.objects); + if (err < 0) { + PyErr_NoMemory(); + Py_CLEAR(list); + } + return list; +} + +static bool +visit_freeze(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, true); + if (op != NULL && !gc_is_unreachable(op)) { + op->ob_gc_bits |= _PyGC_BITS_FROZEN; + } + return true; +} + +void +_PyGC_Freeze(PyInterpreterState *interp) +{ + struct visitor_args args; + _PyEval_StopTheWorld(interp); + gc_visit_heaps(interp, &visit_freeze, &args); + _PyEval_StartTheWorld(interp); +} + +static bool +visit_unfreeze(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, true); + if (op != NULL) { + op->ob_gc_bits &= ~_PyGC_BITS_FROZEN; + } + return true; +} + +void +_PyGC_Unfreeze(PyInterpreterState *interp) +{ + struct visitor_args args; + _PyEval_StopTheWorld(interp); + gc_visit_heaps(interp, &visit_unfreeze, &args); + _PyEval_StartTheWorld(interp); +} + +struct count_frozen_args { + struct visitor_args base; + Py_ssize_t count; +}; + +static bool +visit_count_frozen(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, true); + if (op != NULL && gc_is_frozen(op)) { + struct count_frozen_args *arg = (struct count_frozen_args *)args; + arg->count++; + } + return true; +} + +Py_ssize_t +_PyGC_GetFreezeCount(PyInterpreterState *interp) +{ + struct count_frozen_args args = { .count = 0 }; + _PyEval_StopTheWorld(interp); + gc_visit_heaps(interp, &visit_count_frozen, &args.base); + _PyEval_StartTheWorld(interp); + return args.count; +} + +/* C API for controlling the state of the garbage collector */ +int +PyGC_Enable(void) +{ + GCState *gcstate = get_gc_state(); + return _Py_atomic_exchange_int(&gcstate->enabled, 1); +} + +int +PyGC_Disable(void) +{ + GCState *gcstate = get_gc_state(); + return _Py_atomic_exchange_int(&gcstate->enabled, 0); +} + +int +PyGC_IsEnabled(void) +{ + GCState *gcstate = get_gc_state(); + return _Py_atomic_load_int_relaxed(&gcstate->enabled); +} + +/* Public API to invoke gc.collect() from C */ +Py_ssize_t +PyGC_Collect(void) +{ + PyThreadState *tstate = _PyThreadState_GET(); + GCState *gcstate = &tstate->interp->gc; + + if (!_Py_atomic_load_int_relaxed(&gcstate->enabled)) { + return 0; + } + + Py_ssize_t n; + PyObject *exc = _PyErr_GetRaisedException(tstate); + n = gc_collect_main(tstate, NUM_GENERATIONS - 1, _Py_GC_REASON_MANUAL); + _PyErr_SetRaisedException(tstate, exc); + + return n; +} + +Py_ssize_t +_PyGC_Collect(PyThreadState *tstate, int generation, _PyGC_Reason reason) +{ + return gc_collect_main(tstate, generation, reason); +} + +void +_PyGC_CollectNoFail(PyThreadState *tstate) +{ + /* Ideally, this function is only called on interpreter shutdown, + and therefore not recursively. Unfortunately, when there are daemon + threads, a daemon thread can start a cyclic garbage collection + during interpreter shutdown (and then never finish it). + See http://bugs.python.org/issue8713#msg195178 for an example. + */ + gc_collect_main(tstate, NUM_GENERATIONS - 1, _Py_GC_REASON_SHUTDOWN); +} + +void +_PyGC_DumpShutdownStats(PyInterpreterState *interp) +{ + GCState *gcstate = &interp->gc; + if (!(gcstate->debug & _PyGC_DEBUG_SAVEALL) + && gcstate->garbage != NULL && PyList_GET_SIZE(gcstate->garbage) > 0) { + const char *message; + if (gcstate->debug & _PyGC_DEBUG_UNCOLLECTABLE) { + message = "gc: %zd uncollectable objects at shutdown"; + } + else { + message = "gc: %zd uncollectable objects at shutdown; " \ + "use gc.set_debug(gc.DEBUG_UNCOLLECTABLE) to list them"; + } + /* PyErr_WarnFormat does too many things and we are at shutdown, + the warnings module's dependencies (e.g. linecache) may be gone + already. */ + if (PyErr_WarnExplicitFormat(PyExc_ResourceWarning, "gc", 0, + "gc", NULL, message, + PyList_GET_SIZE(gcstate->garbage))) + { + PyErr_WriteUnraisable(NULL); + } + if (gcstate->debug & _PyGC_DEBUG_UNCOLLECTABLE) { + PyObject *repr = NULL, *bytes = NULL; + repr = PyObject_Repr(gcstate->garbage); + if (!repr || !(bytes = PyUnicode_EncodeFSDefault(repr))) { + PyErr_WriteUnraisable(gcstate->garbage); + } + else { + PySys_WriteStderr( + " %s\n", + PyBytes_AS_STRING(bytes) + ); + } + Py_XDECREF(repr); + Py_XDECREF(bytes); + } + } +} + + +void +_PyGC_Fini(PyInterpreterState *interp) +{ + GCState *gcstate = &interp->gc; + Py_CLEAR(gcstate->garbage); + Py_CLEAR(gcstate->callbacks); + + /* We expect that none of this interpreters objects are shared + with other interpreters. + See https://github.com/python/cpython/issues/90228. */ +} + +/* for debugging */ + +#ifdef Py_DEBUG +static int +visit_validate(PyObject *op, void *parent_raw) +{ + PyObject *parent = _PyObject_CAST(parent_raw); + if (_PyObject_IsFreed(op)) { + _PyObject_ASSERT_FAILED_MSG(parent, + "PyObject_GC_Track() object is not valid"); + } + return 0; +} +#endif + + +/* extension modules might be compiled with GC support so these + functions must always be available */ + +void +PyObject_GC_Track(void *op_raw) +{ + PyObject *op = _PyObject_CAST(op_raw); + if (_PyObject_GC_IS_TRACKED(op)) { + _PyObject_ASSERT_FAILED_MSG(op, + "object already tracked " + "by the garbage collector"); + } + _PyObject_GC_TRACK(op); + +#ifdef Py_DEBUG + /* Check that the object is valid: validate objects traversed + by tp_traverse() */ + traverseproc traverse = Py_TYPE(op)->tp_traverse; + (void)traverse(op, visit_validate, op); +#endif +} + +void +PyObject_GC_UnTrack(void *op_raw) +{ + PyObject *op = _PyObject_CAST(op_raw); + /* Obscure: the Py_TRASHCAN mechanism requires that we be able to + * call PyObject_GC_UnTrack twice on an object. + */ + if (_PyObject_GC_IS_TRACKED(op)) { + _PyObject_GC_UNTRACK(op); + } +} + +int +PyObject_IS_GC(PyObject *obj) +{ + return _PyObject_IS_GC(obj); +} + +void +_Py_ScheduleGC(PyThreadState *tstate) +{ + if (!_Py_eval_breaker_bit_is_set(tstate, _PY_GC_SCHEDULED_BIT)) + { + _Py_set_eval_breaker_bit(tstate, _PY_GC_SCHEDULED_BIT); + } +} + +void +_PyObject_GC_Link(PyObject *op) +{ + record_allocation(_PyThreadState_GET()); +} + +void +_Py_RunGC(PyThreadState *tstate) +{ + if (!PyGC_IsEnabled()) { + return; + } + gc_collect_main(tstate, 0, _Py_GC_REASON_HEAP); +} + +static PyObject * +gc_alloc(PyTypeObject *tp, size_t basicsize, size_t presize) +{ + PyThreadState *tstate = _PyThreadState_GET(); + if (basicsize > PY_SSIZE_T_MAX - presize) { + return _PyErr_NoMemory(tstate); + } + size_t size = presize + basicsize; + char *mem = _PyObject_MallocWithType(tp, size); + if (mem == NULL) { + return _PyErr_NoMemory(tstate); + } + if (presize) { + ((PyObject **)mem)[0] = NULL; + ((PyObject **)mem)[1] = NULL; + } + PyObject *op = (PyObject *)(mem + presize); + record_allocation(tstate); + return op; +} + +PyObject * +_PyObject_GC_New(PyTypeObject *tp) +{ + size_t presize = _PyType_PreHeaderSize(tp); + size_t size = _PyObject_SIZE(tp); + if (_PyType_HasFeature(tp, Py_TPFLAGS_INLINE_VALUES)) { + size += _PyInlineValuesSize(tp); + } + PyObject *op = gc_alloc(tp, size, presize); + if (op == NULL) { + return NULL; + } + _PyObject_Init(op, tp); + return op; +} + +PyVarObject * +_PyObject_GC_NewVar(PyTypeObject *tp, Py_ssize_t nitems) +{ + PyVarObject *op; + + if (nitems < 0) { + PyErr_BadInternalCall(); + return NULL; + } + size_t presize = _PyType_PreHeaderSize(tp); + size_t size = _PyObject_VAR_SIZE(tp, nitems); + op = (PyVarObject *)gc_alloc(tp, size, presize); + if (op == NULL) { + return NULL; + } + _PyObject_InitVar(op, tp, nitems); + return op; +} + +PyObject * +PyUnstable_Object_GC_NewWithExtraData(PyTypeObject *tp, size_t extra_size) +{ + size_t presize = _PyType_PreHeaderSize(tp); + PyObject *op = gc_alloc(tp, _PyObject_SIZE(tp) + extra_size, presize); + if (op == NULL) { + return NULL; + } + memset(op, 0, _PyObject_SIZE(tp) + extra_size); + _PyObject_Init(op, tp); + return op; +} + +PyVarObject * +_PyObject_GC_Resize(PyVarObject *op, Py_ssize_t nitems) +{ + const size_t basicsize = _PyObject_VAR_SIZE(Py_TYPE(op), nitems); + const size_t presize = _PyType_PreHeaderSize(((PyObject *)op)->ob_type); + _PyObject_ASSERT((PyObject *)op, !_PyObject_GC_IS_TRACKED(op)); + if (basicsize > (size_t)PY_SSIZE_T_MAX - presize) { + return (PyVarObject *)PyErr_NoMemory(); + } + char *mem = (char *)op - presize; + mem = (char *)_PyObject_ReallocWithType(Py_TYPE(op), mem, presize + basicsize); + if (mem == NULL) { + return (PyVarObject *)PyErr_NoMemory(); + } + op = (PyVarObject *) (mem + presize); + Py_SET_SIZE(op, nitems); + return op; +} + +void +PyObject_GC_Del(void *op) +{ + size_t presize = _PyType_PreHeaderSize(((PyObject *)op)->ob_type); + if (_PyObject_GC_IS_TRACKED(op)) { + _PyObject_GC_UNTRACK(op); +#ifdef Py_DEBUG + PyObject *exc = PyErr_GetRaisedException(); + if (PyErr_WarnExplicitFormat(PyExc_ResourceWarning, "gc", 0, + "gc", NULL, "Object of type %s is not untracked before destruction", + ((PyObject*)op)->ob_type->tp_name)) { + PyErr_WriteUnraisable(NULL); + } + PyErr_SetRaisedException(exc); +#endif + } + + record_deallocation(_PyThreadState_GET()); + PyObject *self = (PyObject *)op; + if (_PyObject_GC_IS_SHARED_INLINE(self)) { + _PyObject_FreeDelayed(((char *)op)-presize); + } + else { + PyObject_Free(((char *)op)-presize); + } +} + +int +PyObject_GC_IsTracked(PyObject* obj) +{ + return _PyObject_GC_IS_TRACKED(obj); +} + +int +PyObject_GC_IsFinalized(PyObject *obj) +{ + return _PyGC_FINALIZED(obj); +} + +struct custom_visitor_args { + struct visitor_args base; + gcvisitobjects_t callback; + void *arg; +}; + +static bool +custom_visitor_wrapper(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, false); + if (op == NULL) { + return true; + } + + struct custom_visitor_args *wrapper = (struct custom_visitor_args *)args; + if (!wrapper->callback(op, wrapper->arg)) { + return false; + } + + return true; +} + +// gh-117783: Immortalize objects that use deferred reference counting to +// temporarily work around scaling bottlenecks. +static bool +immortalize_visitor(const mi_heap_t *heap, const mi_heap_area_t *area, + void *block, size_t block_size, void *args) +{ + PyObject *op = op_from_block(block, args, false); + if (op != NULL && _PyObject_HasDeferredRefcount(op)) { + _Py_SetImmortal(op); + op->ob_gc_bits &= ~_PyGC_BITS_DEFERRED; + } + return true; +} + +void +_PyGC_ImmortalizeDeferredObjects(PyInterpreterState *interp) +{ + struct visitor_args args; + _PyEval_StopTheWorld(interp); + if (interp->gc.immortalize == 0) { + gc_visit_heaps(interp, &immortalize_visitor, &args); + interp->gc.immortalize = 1; + } + _PyEval_StartTheWorld(interp); +} + +void +PyUnstable_GC_VisitObjects(gcvisitobjects_t callback, void *arg) +{ + PyInterpreterState *interp = _PyInterpreterState_GET(); + struct custom_visitor_args wrapper = { + .callback = callback, + .arg = arg, + }; + + _PyEval_StopTheWorld(interp); + gc_visit_heaps(interp, &custom_visitor_wrapper, &wrapper.base); + _PyEval_StartTheWorld(interp); +} + +/* Clear all free lists + * All free lists are cleared during the collection of the highest generation. + * Allocated items in the free list may keep a pymalloc arena occupied. + * Clearing the free lists may give back memory to the OS earlier. + * Free-threading version: Since freelists are managed per thread, + * GC should clear all freelists by traversing all threads. + */ +void +_PyGC_ClearAllFreeLists(PyInterpreterState *interp) +{ + HEAD_LOCK(&_PyRuntime); + _PyThreadStateImpl *tstate = (_PyThreadStateImpl *)interp->threads.head; + while (tstate != NULL) { + _PyObject_ClearFreeLists(&tstate->freelists, 0); + tstate = (_PyThreadStateImpl *)tstate->base.next; + } + HEAD_UNLOCK(&_PyRuntime); +} + +#endif // Py_GIL_DISABLED diff --git a/contrib/tools/python3/Python/gc_gil.c b/contrib/tools/python3/Python/gc_gil.c new file mode 100644 index 00000000000..48646c7af86 --- /dev/null +++ b/contrib/tools/python3/Python/gc_gil.c @@ -0,0 +1,17 @@ +#include "Python.h" +#include "pycore_pystate.h" // _Py_ClearFreeLists() + +#ifndef Py_GIL_DISABLED + +/* Clear all free lists + * All free lists are cleared during the collection of the highest generation. + * Allocated items in the free list may keep a pymalloc arena occupied. + * Clearing the free lists may give back memory to the OS earlier. + */ +void +_PyGC_ClearAllFreeLists(PyInterpreterState *interp) +{ + _PyObject_ClearFreeLists(&interp->object_state.freelists, 0); +} + +#endif diff --git a/contrib/tools/python3/Python/generated_cases.c.h b/contrib/tools/python3/Python/generated_cases.c.h index 246d37e771e..d21499b2f57 100644 --- a/contrib/tools/python3/Python/generated_cases.c.h +++ b/contrib/tools/python3/Python/generated_cases.c.h @@ -1,638 +1,530 @@ -// This file is generated by Tools/cases_generator/generate_cases.py +// This file is generated by Tools/cases_generator/tier1_generator.py // from: // Python/bytecodes.c // Do not edit! - TARGET(NOP) { - DISPATCH(); - } +#ifdef TIER_TWO + #error "This file is for Tier 1 only" +#endif +#define TIER_ONE 1 - TARGET(RESUME) { - #line 137 "Python/bytecodes.c" - assert(tstate->cframe == &cframe); - assert(frame == cframe.current_frame); - /* Possibly combine this with eval breaker */ - if (frame->f_code->_co_instrumentation_version != tstate->interp->monitoring_version) { - int err = _Py_Instrument(frame->f_code, tstate->interp); - if (err) goto error; - next_instr--; + + TARGET(BEFORE_ASYNC_WITH) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(BEFORE_ASYNC_WITH); + PyObject *mgr; + PyObject *exit; + PyObject *res; + mgr = stack_pointer[-1]; + PyObject *enter = _PyObject_LookupSpecial(mgr, &_Py_ID(__aenter__)); + if (enter == NULL) { + if (!_PyErr_Occurred(tstate)) { + _PyErr_Format(tstate, PyExc_TypeError, + "'%.200s' object does not support the " + "asynchronous context manager protocol", + Py_TYPE(mgr)->tp_name); + } + goto error; + } + exit = _PyObject_LookupSpecial(mgr, &_Py_ID(__aexit__)); + if (exit == NULL) { + if (!_PyErr_Occurred(tstate)) { + _PyErr_Format(tstate, PyExc_TypeError, + "'%.200s' object does not support the " + "asynchronous context manager protocol " + "(missed __aexit__ method)", + Py_TYPE(mgr)->tp_name); + } + Py_DECREF(enter); + goto error; } - else if (_Py_atomic_load_relaxed_int32(&tstate->interp->ceval.eval_breaker) && oparg < 2) { - goto handle_eval_breaker; + Py_DECREF(mgr); + res = PyObject_CallNoArgs(enter); + Py_DECREF(enter); + if (res == NULL) { + Py_DECREF(exit); + if (true) goto pop_1_error; } - #line 24 "Python/generated_cases.c.h" + stack_pointer[-1] = exit; + stack_pointer[0] = res; + stack_pointer += 1; DISPATCH(); } - TARGET(INSTRUMENTED_RESUME) { - #line 151 "Python/bytecodes.c" - /* Possible performance enhancement: - * We need to check the eval breaker anyway, can we - * combine the instrument verison check and the eval breaker test? + TARGET(BEFORE_WITH) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(BEFORE_WITH); + PyObject *mgr; + PyObject *exit; + PyObject *res; + mgr = stack_pointer[-1]; + /* pop the context manager, push its __exit__ and the + * value returned from calling its __enter__ */ - if (frame->f_code->_co_instrumentation_version != tstate->interp->monitoring_version) { - if (_Py_Instrument(frame->f_code, tstate->interp)) { - goto error; + PyObject *enter = _PyObject_LookupSpecial(mgr, &_Py_ID(__enter__)); + if (enter == NULL) { + if (!_PyErr_Occurred(tstate)) { + _PyErr_Format(tstate, PyExc_TypeError, + "'%.200s' object does not support the " + "context manager protocol", + Py_TYPE(mgr)->tp_name); } - next_instr--; + goto error; } - else { - _PyFrame_SetStackPointer(frame, stack_pointer); - int err = _Py_call_instrumentation( - tstate, oparg > 0, frame, next_instr-1); - stack_pointer = _PyFrame_GetStackPointer(frame); - if (err) goto error; - if (frame->prev_instr != next_instr-1) { - /* Instrumentation has jumped */ - next_instr = frame->prev_instr; - DISPATCH(); - } - if (_Py_atomic_load_relaxed_int32(&tstate->interp->ceval.eval_breaker) && oparg < 2) { - goto handle_eval_breaker; + exit = _PyObject_LookupSpecial(mgr, &_Py_ID(__exit__)); + if (exit == NULL) { + if (!_PyErr_Occurred(tstate)) { + _PyErr_Format(tstate, PyExc_TypeError, + "'%.200s' object does not support the " + "context manager protocol " + "(missed __exit__ method)", + Py_TYPE(mgr)->tp_name); } + Py_DECREF(enter); + goto error; } - #line 55 "Python/generated_cases.c.h" - DISPATCH(); - } - - TARGET(LOAD_CLOSURE) { - PyObject *value; - #line 179 "Python/bytecodes.c" - /* We keep LOAD_CLOSURE so that the bytecode stays more readable. */ - value = GETLOCAL(oparg); - if (value == NULL) goto unbound_local_error; - Py_INCREF(value); - #line 66 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = value; - DISPATCH(); - } - - TARGET(LOAD_FAST_CHECK) { - PyObject *value; - #line 186 "Python/bytecodes.c" - value = GETLOCAL(oparg); - if (value == NULL) goto unbound_local_error; - Py_INCREF(value); - #line 78 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = value; - DISPATCH(); - } - - TARGET(LOAD_FAST) { - PyObject *value; - #line 192 "Python/bytecodes.c" - value = GETLOCAL(oparg); - assert(value != NULL); - Py_INCREF(value); - #line 90 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = value; - DISPATCH(); - } - - TARGET(LOAD_FAST_AND_CLEAR) { - PyObject *value; - #line 198 "Python/bytecodes.c" - value = GETLOCAL(oparg); - // do not use SETLOCAL here, it decrefs the old value - GETLOCAL(oparg) = NULL; - #line 102 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = value; - DISPATCH(); - } - - TARGET(LOAD_CONST) { - PREDICTED(LOAD_CONST); - PyObject *value; - #line 204 "Python/bytecodes.c" - value = GETITEM(frame->f_code->co_consts, oparg); - Py_INCREF(value); - #line 114 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = value; - DISPATCH(); - } - - TARGET(STORE_FAST) { - PyObject *value = stack_pointer[-1]; - #line 209 "Python/bytecodes.c" - SETLOCAL(oparg, value); - #line 124 "Python/generated_cases.c.h" - STACK_SHRINK(1); + Py_DECREF(mgr); + res = PyObject_CallNoArgs(enter); + Py_DECREF(enter); + if (res == NULL) { + Py_DECREF(exit); + if (true) goto pop_1_error; + } + stack_pointer[-1] = exit; + stack_pointer[0] = res; + stack_pointer += 1; DISPATCH(); } - TARGET(LOAD_FAST__LOAD_FAST) { - PyObject *_tmp_1; - PyObject *_tmp_2; + TARGET(BINARY_OP) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_OP); + PREDICTED(BINARY_OP); + _Py_CODEUNIT *this_instr = next_instr - 2; + (void)this_instr; + PyObject *rhs; + PyObject *lhs; + PyObject *res; + // _SPECIALIZE_BINARY_OP + rhs = stack_pointer[-1]; + lhs = stack_pointer[-2]; { - PyObject *value; - #line 192 "Python/bytecodes.c" - value = GETLOCAL(oparg); - assert(value != NULL); - Py_INCREF(value); - #line 138 "Python/generated_cases.c.h" - _tmp_2 = value; + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + next_instr = this_instr; + _Py_Specialize_BinaryOp(lhs, rhs, next_instr, oparg, LOCALS_ARRAY); + DISPATCH_SAME_OPARG(); + } + STAT_INC(BINARY_OP, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ + assert(NB_ADD <= oparg); + assert(oparg <= NB_INPLACE_XOR); } - oparg = (next_instr++)->op.arg; + // _BINARY_OP { - PyObject *value; - #line 192 "Python/bytecodes.c" - value = GETLOCAL(oparg); - assert(value != NULL); - Py_INCREF(value); - #line 148 "Python/generated_cases.c.h" - _tmp_1 = value; + assert(_PyEval_BinaryOps[oparg]); + res = _PyEval_BinaryOps[oparg](lhs, rhs); + Py_DECREF(lhs); + Py_DECREF(rhs); + if (res == NULL) goto pop_2_error; } - STACK_GROW(2); - stack_pointer[-1] = _tmp_1; - stack_pointer[-2] = _tmp_2; + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(LOAD_FAST__LOAD_CONST) { - PyObject *_tmp_1; - PyObject *_tmp_2; + TARGET(BINARY_OP_ADD_FLOAT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_OP_ADD_FLOAT); + static_assert(INLINE_CACHE_ENTRIES_BINARY_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; + PyObject *res; + // _GUARD_BOTH_FLOAT + right = stack_pointer[-1]; + left = stack_pointer[-2]; { - PyObject *value; - #line 192 "Python/bytecodes.c" - value = GETLOCAL(oparg); - assert(value != NULL); - Py_INCREF(value); - #line 166 "Python/generated_cases.c.h" - _tmp_2 = value; + DEOPT_IF(!PyFloat_CheckExact(left), BINARY_OP); + DEOPT_IF(!PyFloat_CheckExact(right), BINARY_OP); } - oparg = (next_instr++)->op.arg; + /* Skip 1 cache entry */ + // _BINARY_OP_ADD_FLOAT { - PyObject *value; - #line 204 "Python/bytecodes.c" - value = GETITEM(frame->f_code->co_consts, oparg); - Py_INCREF(value); - #line 175 "Python/generated_cases.c.h" - _tmp_1 = value; + STAT_INC(BINARY_OP, hit); + double dres = + ((PyFloatObject *)left)->ob_fval + + ((PyFloatObject *)right)->ob_fval; + DECREF_INPUTS_AND_REUSE_FLOAT(left, right, dres, res); } - STACK_GROW(2); - stack_pointer[-1] = _tmp_1; - stack_pointer[-2] = _tmp_2; + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(STORE_FAST__LOAD_FAST) { - PyObject *_tmp_1 = stack_pointer[-1]; + TARGET(BINARY_OP_ADD_INT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_OP_ADD_INT); + static_assert(INLINE_CACHE_ENTRIES_BINARY_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; + PyObject *res; + // _GUARD_BOTH_INT + right = stack_pointer[-1]; + left = stack_pointer[-2]; { - PyObject *value = _tmp_1; - #line 209 "Python/bytecodes.c" - SETLOCAL(oparg, value); - #line 190 "Python/generated_cases.c.h" + DEOPT_IF(!PyLong_CheckExact(left), BINARY_OP); + DEOPT_IF(!PyLong_CheckExact(right), BINARY_OP); } - oparg = (next_instr++)->op.arg; + /* Skip 1 cache entry */ + // _BINARY_OP_ADD_INT { - PyObject *value; - #line 192 "Python/bytecodes.c" - value = GETLOCAL(oparg); - assert(value != NULL); - Py_INCREF(value); - #line 199 "Python/generated_cases.c.h" - _tmp_1 = value; + STAT_INC(BINARY_OP, hit); + res = _PyLong_Add((PyLongObject *)left, (PyLongObject *)right); + _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); + _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); + if (res == NULL) goto pop_2_error; } - stack_pointer[-1] = _tmp_1; + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(STORE_FAST__STORE_FAST) { - PyObject *_tmp_1 = stack_pointer[-1]; - PyObject *_tmp_2 = stack_pointer[-2]; + TARGET(BINARY_OP_ADD_UNICODE) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_OP_ADD_UNICODE); + static_assert(INLINE_CACHE_ENTRIES_BINARY_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; + PyObject *res; + // _GUARD_BOTH_UNICODE + right = stack_pointer[-1]; + left = stack_pointer[-2]; { - PyObject *value = _tmp_1; - #line 209 "Python/bytecodes.c" - SETLOCAL(oparg, value); - #line 213 "Python/generated_cases.c.h" + DEOPT_IF(!PyUnicode_CheckExact(left), BINARY_OP); + DEOPT_IF(!PyUnicode_CheckExact(right), BINARY_OP); } - oparg = (next_instr++)->op.arg; + /* Skip 1 cache entry */ + // _BINARY_OP_ADD_UNICODE { - PyObject *value = _tmp_2; - #line 209 "Python/bytecodes.c" - SETLOCAL(oparg, value); - #line 220 "Python/generated_cases.c.h" + STAT_INC(BINARY_OP, hit); + res = PyUnicode_Concat(left, right); + _Py_DECREF_SPECIALIZED(left, _PyUnicode_ExactDealloc); + _Py_DECREF_SPECIALIZED(right, _PyUnicode_ExactDealloc); + if (res == NULL) goto pop_2_error; } - STACK_SHRINK(2); + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(LOAD_CONST__LOAD_FAST) { - PyObject *_tmp_1; - PyObject *_tmp_2; + TARGET(BINARY_OP_INPLACE_ADD_UNICODE) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_OP_INPLACE_ADD_UNICODE); + static_assert(INLINE_CACHE_ENTRIES_BINARY_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; + // _GUARD_BOTH_UNICODE + right = stack_pointer[-1]; + left = stack_pointer[-2]; { - PyObject *value; - #line 204 "Python/bytecodes.c" - value = GETITEM(frame->f_code->co_consts, oparg); - Py_INCREF(value); - #line 234 "Python/generated_cases.c.h" - _tmp_2 = value; + DEOPT_IF(!PyUnicode_CheckExact(left), BINARY_OP); + DEOPT_IF(!PyUnicode_CheckExact(right), BINARY_OP); } - oparg = (next_instr++)->op.arg; + /* Skip 1 cache entry */ + // _BINARY_OP_INPLACE_ADD_UNICODE { - PyObject *value; - #line 192 "Python/bytecodes.c" - value = GETLOCAL(oparg); - assert(value != NULL); - Py_INCREF(value); - #line 244 "Python/generated_cases.c.h" - _tmp_1 = value; - } - STACK_GROW(2); - stack_pointer[-1] = _tmp_1; - stack_pointer[-2] = _tmp_2; - DISPATCH(); - } - - TARGET(POP_TOP) { - PyObject *value = stack_pointer[-1]; - #line 219 "Python/bytecodes.c" - #line 256 "Python/generated_cases.c.h" - Py_DECREF(value); - STACK_SHRINK(1); + assert(next_instr->op.code == STORE_FAST); + PyObject **target_local = &GETLOCAL(next_instr->op.arg); + DEOPT_IF(*target_local != left, BINARY_OP); + STAT_INC(BINARY_OP, hit); + /* Handle `left = left + right` or `left += right` for str. + * + * When possible, extend `left` in place rather than + * allocating a new PyUnicodeObject. This attempts to avoid + * quadratic behavior when one neglects to use str.join(). + * + * If `left` has only two references remaining (one from + * the stack, one in the locals), DECREFing `left` leaves + * only the locals reference, so PyUnicode_Append knows + * that the string is safe to mutate. + */ + assert(Py_REFCNT(left) >= 2); + _Py_DECREF_NO_DEALLOC(left); + PyUnicode_Append(target_local, right); + _Py_DECREF_SPECIALIZED(right, _PyUnicode_ExactDealloc); + if (*target_local == NULL) goto pop_2_error; + // The STORE_FAST is already done. + assert(next_instr->op.code == STORE_FAST); + SKIP_OVER(1); + } + stack_pointer += -2; DISPATCH(); } - TARGET(PUSH_NULL) { + TARGET(BINARY_OP_MULTIPLY_FLOAT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_OP_MULTIPLY_FLOAT); + static_assert(INLINE_CACHE_ENTRIES_BINARY_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; PyObject *res; - #line 223 "Python/bytecodes.c" - res = NULL; - #line 266 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = res; - DISPATCH(); - } - - TARGET(END_FOR) { - PyObject *_tmp_1 = stack_pointer[-1]; - PyObject *_tmp_2 = stack_pointer[-2]; + // _GUARD_BOTH_FLOAT + right = stack_pointer[-1]; + left = stack_pointer[-2]; { - PyObject *value = _tmp_1; - #line 219 "Python/bytecodes.c" - #line 278 "Python/generated_cases.c.h" - Py_DECREF(value); + DEOPT_IF(!PyFloat_CheckExact(left), BINARY_OP); + DEOPT_IF(!PyFloat_CheckExact(right), BINARY_OP); } + /* Skip 1 cache entry */ + // _BINARY_OP_MULTIPLY_FLOAT { - PyObject *value = _tmp_2; - #line 219 "Python/bytecodes.c" - #line 284 "Python/generated_cases.c.h" - Py_DECREF(value); + STAT_INC(BINARY_OP, hit); + double dres = + ((PyFloatObject *)left)->ob_fval * + ((PyFloatObject *)right)->ob_fval; + DECREF_INPUTS_AND_REUSE_FLOAT(left, right, dres, res); } - STACK_SHRINK(2); + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(INSTRUMENTED_END_FOR) { - PyObject *value = stack_pointer[-1]; - PyObject *receiver = stack_pointer[-2]; - #line 229 "Python/bytecodes.c" - /* Need to create a fake StopIteration error here, - * to conform to PEP 380 */ - if (PyGen_Check(receiver)) { - PyErr_SetObject(PyExc_StopIteration, value); - if (monitor_stop_iteration(tstate, frame, next_instr-1)) { - goto error; - } - PyErr_SetRaisedException(NULL); + TARGET(BINARY_OP_MULTIPLY_INT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_OP_MULTIPLY_INT); + static_assert(INLINE_CACHE_ENTRIES_BINARY_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; + PyObject *res; + // _GUARD_BOTH_INT + right = stack_pointer[-1]; + left = stack_pointer[-2]; + { + DEOPT_IF(!PyLong_CheckExact(left), BINARY_OP); + DEOPT_IF(!PyLong_CheckExact(right), BINARY_OP); } - #line 304 "Python/generated_cases.c.h" - Py_DECREF(receiver); - Py_DECREF(value); - STACK_SHRINK(2); + /* Skip 1 cache entry */ + // _BINARY_OP_MULTIPLY_INT + { + STAT_INC(BINARY_OP, hit); + res = _PyLong_Multiply((PyLongObject *)left, (PyLongObject *)right); + _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); + _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); + if (res == NULL) goto pop_2_error; + } + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(END_SEND) { - PyObject *value = stack_pointer[-1]; - PyObject *receiver = stack_pointer[-2]; - #line 242 "Python/bytecodes.c" - Py_DECREF(receiver); - #line 316 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = value; + TARGET(BINARY_OP_SUBTRACT_FLOAT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_OP_SUBTRACT_FLOAT); + static_assert(INLINE_CACHE_ENTRIES_BINARY_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; + PyObject *res; + // _GUARD_BOTH_FLOAT + right = stack_pointer[-1]; + left = stack_pointer[-2]; + { + DEOPT_IF(!PyFloat_CheckExact(left), BINARY_OP); + DEOPT_IF(!PyFloat_CheckExact(right), BINARY_OP); + } + /* Skip 1 cache entry */ + // _BINARY_OP_SUBTRACT_FLOAT + { + STAT_INC(BINARY_OP, hit); + double dres = + ((PyFloatObject *)left)->ob_fval - + ((PyFloatObject *)right)->ob_fval; + DECREF_INPUTS_AND_REUSE_FLOAT(left, right, dres, res); + } + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(INSTRUMENTED_END_SEND) { - PyObject *value = stack_pointer[-1]; - PyObject *receiver = stack_pointer[-2]; - #line 246 "Python/bytecodes.c" - if (PyGen_Check(receiver) || PyCoro_CheckExact(receiver)) { - PyErr_SetObject(PyExc_StopIteration, value); - if (monitor_stop_iteration(tstate, frame, next_instr-1)) { - goto error; - } - PyErr_SetRaisedException(NULL); + TARGET(BINARY_OP_SUBTRACT_INT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_OP_SUBTRACT_INT); + static_assert(INLINE_CACHE_ENTRIES_BINARY_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; + PyObject *res; + // _GUARD_BOTH_INT + right = stack_pointer[-1]; + left = stack_pointer[-2]; + { + DEOPT_IF(!PyLong_CheckExact(left), BINARY_OP); + DEOPT_IF(!PyLong_CheckExact(right), BINARY_OP); } - Py_DECREF(receiver); - #line 334 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = value; + /* Skip 1 cache entry */ + // _BINARY_OP_SUBTRACT_INT + { + STAT_INC(BINARY_OP, hit); + res = _PyLong_Subtract((PyLongObject *)left, (PyLongObject *)right); + _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); + _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); + if (res == NULL) goto pop_2_error; + } + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(UNARY_NEGATIVE) { - PyObject *value = stack_pointer[-1]; + TARGET(BINARY_SLICE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(BINARY_SLICE); + PyObject *stop; + PyObject *start; + PyObject *container; PyObject *res; - #line 257 "Python/bytecodes.c" - res = PyNumber_Negative(value); - #line 345 "Python/generated_cases.c.h" - Py_DECREF(value); - #line 259 "Python/bytecodes.c" - if (res == NULL) goto pop_1_error; - #line 349 "Python/generated_cases.c.h" - stack_pointer[-1] = res; + stop = stack_pointer[-1]; + start = stack_pointer[-2]; + container = stack_pointer[-3]; + PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); + // Can't use ERROR_IF() here, because we haven't + // DECREF'ed container yet, and we still own slice. + if (slice == NULL) { + res = NULL; + } + else { + res = PyObject_GetItem(container, slice); + Py_DECREF(slice); + } + Py_DECREF(container); + if (res == NULL) goto pop_3_error; + stack_pointer[-3] = res; + stack_pointer += -2; DISPATCH(); } - TARGET(UNARY_NOT) { - PyObject *value = stack_pointer[-1]; + TARGET(BINARY_SUBSCR) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_SUBSCR); + PREDICTED(BINARY_SUBSCR); + _Py_CODEUNIT *this_instr = next_instr - 2; + (void)this_instr; + PyObject *sub; + PyObject *container; PyObject *res; - #line 263 "Python/bytecodes.c" - int err = PyObject_IsTrue(value); - #line 359 "Python/generated_cases.c.h" - Py_DECREF(value); - #line 265 "Python/bytecodes.c" - if (err < 0) goto pop_1_error; - if (err == 0) { - res = Py_True; + // _SPECIALIZE_BINARY_SUBSCR + sub = stack_pointer[-1]; + container = stack_pointer[-2]; + { + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + next_instr = this_instr; + _Py_Specialize_BinarySubscr(container, sub, next_instr); + DISPATCH_SAME_OPARG(); + } + STAT_INC(BINARY_SUBSCR, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ } - else { - res = Py_False; + // _BINARY_SUBSCR + { + res = PyObject_GetItem(container, sub); + Py_DECREF(container); + Py_DECREF(sub); + if (res == NULL) goto pop_2_error; } - #line 369 "Python/generated_cases.c.h" - stack_pointer[-1] = res; + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(UNARY_INVERT) { - PyObject *value = stack_pointer[-1]; + TARGET(BINARY_SUBSCR_DICT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_SUBSCR_DICT); + static_assert(INLINE_CACHE_ENTRIES_BINARY_SUBSCR == 1, "incorrect cache size"); + PyObject *sub; + PyObject *dict; PyObject *res; - #line 275 "Python/bytecodes.c" - res = PyNumber_Invert(value); - #line 379 "Python/generated_cases.c.h" - Py_DECREF(value); - #line 277 "Python/bytecodes.c" - if (res == NULL) goto pop_1_error; - #line 383 "Python/generated_cases.c.h" - stack_pointer[-1] = res; + /* Skip 1 cache entry */ + sub = stack_pointer[-1]; + dict = stack_pointer[-2]; + DEOPT_IF(!PyDict_CheckExact(dict), BINARY_SUBSCR); + STAT_INC(BINARY_SUBSCR, hit); + int rc = PyDict_GetItemRef(dict, sub, &res); + if (rc == 0) { + _PyErr_SetKeyError(sub); + } + Py_DECREF(dict); + Py_DECREF(sub); + if (rc <= 0) goto pop_2_error; + // not found or error + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(BINARY_OP_MULTIPLY_INT) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *prod; - #line 294 "Python/bytecodes.c" - DEOPT_IF(!PyLong_CheckExact(left), BINARY_OP); - DEOPT_IF(!PyLong_CheckExact(right), BINARY_OP); - STAT_INC(BINARY_OP, hit); - prod = _PyLong_Multiply((PyLongObject *)left, (PyLongObject *)right); - _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); - _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); - if (prod == NULL) goto pop_2_error; - #line 400 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = prod; - next_instr += 1; - DISPATCH(); - } - - TARGET(BINARY_OP_MULTIPLY_FLOAT) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *prod; - #line 304 "Python/bytecodes.c" - DEOPT_IF(!PyFloat_CheckExact(left), BINARY_OP); - DEOPT_IF(!PyFloat_CheckExact(right), BINARY_OP); - STAT_INC(BINARY_OP, hit); - double dprod = ((PyFloatObject *)left)->ob_fval * - ((PyFloatObject *)right)->ob_fval; - DECREF_INPUTS_AND_REUSE_FLOAT(left, right, dprod, prod); - #line 418 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = prod; - next_instr += 1; - DISPATCH(); - } - - TARGET(BINARY_OP_SUBTRACT_INT) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *sub; - #line 313 "Python/bytecodes.c" - DEOPT_IF(!PyLong_CheckExact(left), BINARY_OP); - DEOPT_IF(!PyLong_CheckExact(right), BINARY_OP); - STAT_INC(BINARY_OP, hit); - sub = _PyLong_Subtract((PyLongObject *)left, (PyLongObject *)right); - _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); - _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); - if (sub == NULL) goto pop_2_error; - #line 437 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = sub; - next_instr += 1; - DISPATCH(); - } - - TARGET(BINARY_OP_SUBTRACT_FLOAT) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *sub; - #line 323 "Python/bytecodes.c" - DEOPT_IF(!PyFloat_CheckExact(left), BINARY_OP); - DEOPT_IF(!PyFloat_CheckExact(right), BINARY_OP); - STAT_INC(BINARY_OP, hit); - double dsub = ((PyFloatObject *)left)->ob_fval - ((PyFloatObject *)right)->ob_fval; - DECREF_INPUTS_AND_REUSE_FLOAT(left, right, dsub, sub); - #line 454 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = sub; - next_instr += 1; - DISPATCH(); - } - - TARGET(BINARY_OP_ADD_UNICODE) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *res; - #line 331 "Python/bytecodes.c" - DEOPT_IF(!PyUnicode_CheckExact(left), BINARY_OP); - DEOPT_IF(Py_TYPE(right) != Py_TYPE(left), BINARY_OP); - STAT_INC(BINARY_OP, hit); - res = PyUnicode_Concat(left, right); - _Py_DECREF_SPECIALIZED(left, _PyUnicode_ExactDealloc); - _Py_DECREF_SPECIALIZED(right, _PyUnicode_ExactDealloc); - if (res == NULL) goto pop_2_error; - #line 473 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 1; - DISPATCH(); - } - - TARGET(BINARY_OP_INPLACE_ADD_UNICODE) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - #line 347 "Python/bytecodes.c" - DEOPT_IF(!PyUnicode_CheckExact(left), BINARY_OP); - DEOPT_IF(Py_TYPE(right) != Py_TYPE(left), BINARY_OP); - _Py_CODEUNIT true_next = next_instr[INLINE_CACHE_ENTRIES_BINARY_OP]; - assert(true_next.op.code == STORE_FAST || - true_next.op.code == STORE_FAST__LOAD_FAST); - PyObject **target_local = &GETLOCAL(true_next.op.arg); - DEOPT_IF(*target_local != left, BINARY_OP); - STAT_INC(BINARY_OP, hit); - /* Handle `left = left + right` or `left += right` for str. - * - * When possible, extend `left` in place rather than - * allocating a new PyUnicodeObject. This attempts to avoid - * quadratic behavior when one neglects to use str.join(). - * - * If `left` has only two references remaining (one from - * the stack, one in the locals), DECREFing `left` leaves - * only the locals reference, so PyUnicode_Append knows - * that the string is safe to mutate. - */ - assert(Py_REFCNT(left) >= 2); - _Py_DECREF_NO_DEALLOC(left); - PyUnicode_Append(target_local, right); - _Py_DECREF_SPECIALIZED(right, _PyUnicode_ExactDealloc); - if (*target_local == NULL) goto pop_2_error; - // The STORE_FAST is already done. - JUMPBY(INLINE_CACHE_ENTRIES_BINARY_OP + 1); - #line 510 "Python/generated_cases.c.h" - STACK_SHRINK(2); - DISPATCH(); - } - - TARGET(BINARY_OP_ADD_FLOAT) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *sum; - #line 376 "Python/bytecodes.c" - DEOPT_IF(!PyFloat_CheckExact(left), BINARY_OP); - DEOPT_IF(Py_TYPE(right) != Py_TYPE(left), BINARY_OP); - STAT_INC(BINARY_OP, hit); - double dsum = ((PyFloatObject *)left)->ob_fval + - ((PyFloatObject *)right)->ob_fval; - DECREF_INPUTS_AND_REUSE_FLOAT(left, right, dsum, sum); - #line 526 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = sum; - next_instr += 1; - DISPATCH(); - } - - TARGET(BINARY_OP_ADD_INT) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *sum; - #line 385 "Python/bytecodes.c" - DEOPT_IF(!PyLong_CheckExact(left), BINARY_OP); - DEOPT_IF(Py_TYPE(right) != Py_TYPE(left), BINARY_OP); - STAT_INC(BINARY_OP, hit); - sum = _PyLong_Add((PyLongObject *)left, (PyLongObject *)right); - _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); - _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); - if (sum == NULL) goto pop_2_error; - #line 545 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = sum; - next_instr += 1; - DISPATCH(); - } - - TARGET(BINARY_SUBSCR) { - PREDICTED(BINARY_SUBSCR); + TARGET(BINARY_SUBSCR_GETITEM) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_SUBSCR_GETITEM); static_assert(INLINE_CACHE_ENTRIES_BINARY_SUBSCR == 1, "incorrect cache size"); - PyObject *sub = stack_pointer[-1]; - PyObject *container = stack_pointer[-2]; - PyObject *res; - #line 403 "Python/bytecodes.c" - #if ENABLE_SPECIALIZATION - _PyBinarySubscrCache *cache = (_PyBinarySubscrCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { - next_instr--; - _Py_Specialize_BinarySubscr(container, sub, next_instr); - DISPATCH_SAME_OPARG(); - } - STAT_INC(BINARY_SUBSCR, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache->counter); - #endif /* ENABLE_SPECIALIZATION */ - res = PyObject_GetItem(container, sub); - #line 570 "Python/generated_cases.c.h" - Py_DECREF(container); - Py_DECREF(sub); - #line 415 "Python/bytecodes.c" - if (res == NULL) goto pop_2_error; - #line 575 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 1; - DISPATCH(); - } - - TARGET(BINARY_SLICE) { - PyObject *stop = stack_pointer[-1]; - PyObject *start = stack_pointer[-2]; - PyObject *container = stack_pointer[-3]; - PyObject *res; - #line 419 "Python/bytecodes.c" - PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); - // Can't use ERROR_IF() here, because we haven't - // DECREF'ed container yet, and we still own slice. - if (slice == NULL) { - res = NULL; - } - else { - res = PyObject_GetItem(container, slice); - Py_DECREF(slice); - } - Py_DECREF(container); - if (res == NULL) goto pop_3_error; - #line 600 "Python/generated_cases.c.h" + PyObject *sub; + PyObject *container; + /* Skip 1 cache entry */ + sub = stack_pointer[-1]; + container = stack_pointer[-2]; + DEOPT_IF(tstate->interp->eval_frame, BINARY_SUBSCR); + PyTypeObject *tp = Py_TYPE(container); + DEOPT_IF(!PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE), BINARY_SUBSCR); + PyHeapTypeObject *ht = (PyHeapTypeObject *)tp; + PyObject *cached = ht->_spec_cache.getitem; + DEOPT_IF(cached == NULL, BINARY_SUBSCR); + assert(PyFunction_Check(cached)); + PyFunctionObject *getitem = (PyFunctionObject *)cached; + uint32_t cached_version = ht->_spec_cache.getitem_version; + DEOPT_IF(getitem->func_version != cached_version, BINARY_SUBSCR); + PyCodeObject *code = (PyCodeObject *)getitem->func_code; + assert(code->co_argcount == 2); + DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), BINARY_SUBSCR); + STAT_INC(BINARY_SUBSCR, hit); + Py_INCREF(getitem); + _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, getitem, 2); STACK_SHRINK(2); - stack_pointer[-1] = res; - DISPATCH(); - } - - TARGET(STORE_SLICE) { - PyObject *stop = stack_pointer[-1]; - PyObject *start = stack_pointer[-2]; - PyObject *container = stack_pointer[-3]; - PyObject *v = stack_pointer[-4]; - #line 434 "Python/bytecodes.c" - PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); - int err; - if (slice == NULL) { - err = 1; - } - else { - err = PyObject_SetItem(container, slice, v); - Py_DECREF(slice); - } - Py_DECREF(v); - Py_DECREF(container); - if (err) goto pop_4_error; - #line 624 "Python/generated_cases.c.h" - STACK_SHRINK(4); - DISPATCH(); + new_frame->localsplus[0] = container; + new_frame->localsplus[1] = sub; + frame->return_offset = (uint16_t)(next_instr - this_instr); + DISPATCH_INLINED(new_frame); } TARGET(BINARY_SUBSCR_LIST_INT) { - PyObject *sub = stack_pointer[-1]; - PyObject *list = stack_pointer[-2]; + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_SUBSCR_LIST_INT); + static_assert(INLINE_CACHE_ENTRIES_BINARY_SUBSCR == 1, "incorrect cache size"); + PyObject *sub; + PyObject *list; PyObject *res; - #line 449 "Python/bytecodes.c" + /* Skip 1 cache entry */ + sub = stack_pointer[-1]; + list = stack_pointer[-2]; DEOPT_IF(!PyLong_CheckExact(sub), BINARY_SUBSCR); DEOPT_IF(!PyList_CheckExact(list), BINARY_SUBSCR); - // Deopt unless 0 <= sub < PyList_Size(list) DEOPT_IF(!_PyLong_IsNonNegativeCompact((PyLongObject *)sub), BINARY_SUBSCR); Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0]; @@ -643,21 +535,52 @@ Py_INCREF(res); _Py_DECREF_SPECIALIZED(sub, (destructor)PyObject_Free); Py_DECREF(list); - #line 647 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 1; + stack_pointer[-2] = res; + stack_pointer += -1; + DISPATCH(); + } + + TARGET(BINARY_SUBSCR_STR_INT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_SUBSCR_STR_INT); + static_assert(INLINE_CACHE_ENTRIES_BINARY_SUBSCR == 1, "incorrect cache size"); + PyObject *sub; + PyObject *str; + PyObject *res; + /* Skip 1 cache entry */ + sub = stack_pointer[-1]; + str = stack_pointer[-2]; + DEOPT_IF(!PyLong_CheckExact(sub), BINARY_SUBSCR); + DEOPT_IF(!PyUnicode_CheckExact(str), BINARY_SUBSCR); + DEOPT_IF(!_PyLong_IsNonNegativeCompact((PyLongObject *)sub), BINARY_SUBSCR); + Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0]; + DEOPT_IF(PyUnicode_GET_LENGTH(str) <= index, BINARY_SUBSCR); + // Specialize for reading an ASCII character from any string: + Py_UCS4 c = PyUnicode_READ_CHAR(str, index); + DEOPT_IF(Py_ARRAY_LENGTH(_Py_SINGLETON(strings).ascii) <= c, BINARY_SUBSCR); + STAT_INC(BINARY_SUBSCR, hit); + res = (PyObject*)&_Py_SINGLETON(strings).ascii[c]; + _Py_DECREF_SPECIALIZED(sub, (destructor)PyObject_Free); + Py_DECREF(str); + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } TARGET(BINARY_SUBSCR_TUPLE_INT) { - PyObject *sub = stack_pointer[-1]; - PyObject *tuple = stack_pointer[-2]; + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(BINARY_SUBSCR_TUPLE_INT); + static_assert(INLINE_CACHE_ENTRIES_BINARY_SUBSCR == 1, "incorrect cache size"); + PyObject *sub; + PyObject *tuple; PyObject *res; - #line 465 "Python/bytecodes.c" + /* Skip 1 cache entry */ + sub = stack_pointer[-1]; + tuple = stack_pointer[-2]; DEOPT_IF(!PyLong_CheckExact(sub), BINARY_SUBSCR); DEOPT_IF(!PyTuple_CheckExact(tuple), BINARY_SUBSCR); - // Deopt unless 0 <= sub < PyTuple_Size(list) DEOPT_IF(!_PyLong_IsNonNegativeCompact((PyLongObject *)sub), BINARY_SUBSCR); Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0]; @@ -668,1981 +591,3565 @@ Py_INCREF(res); _Py_DECREF_SPECIALIZED(sub, (destructor)PyObject_Free); Py_DECREF(tuple); - #line 672 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 1; + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(BINARY_SUBSCR_DICT) { - PyObject *sub = stack_pointer[-1]; - PyObject *dict = stack_pointer[-2]; - PyObject *res; - #line 481 "Python/bytecodes.c" - DEOPT_IF(!PyDict_CheckExact(dict), BINARY_SUBSCR); - STAT_INC(BINARY_SUBSCR, hit); - res = PyDict_GetItemWithError(dict, sub); - if (res == NULL) { - if (!_PyErr_Occurred(tstate)) { - _PyErr_SetKeyError(sub); - } - #line 691 "Python/generated_cases.c.h" - Py_DECREF(dict); - Py_DECREF(sub); - #line 489 "Python/bytecodes.c" - if (true) goto pop_2_error; - } - Py_INCREF(res); // Do this before DECREF'ing dict, sub - #line 698 "Python/generated_cases.c.h" - Py_DECREF(dict); - Py_DECREF(sub); - STACK_SHRINK(1); - stack_pointer[-1] = res; + TARGET(BUILD_CONST_KEY_MAP) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(BUILD_CONST_KEY_MAP); + PyObject *keys; + PyObject **values; + PyObject *map; + keys = stack_pointer[-1]; + values = &stack_pointer[-1 - oparg]; + assert(PyTuple_CheckExact(keys)); + assert(PyTuple_GET_SIZE(keys) == (Py_ssize_t)oparg); + map = _PyDict_FromItems( + &PyTuple_GET_ITEM(keys, 0), 1, + values, 1, oparg); + for (int _i = oparg; --_i >= 0;) { + Py_DECREF(values[_i]); + } + Py_DECREF(keys); + if (map == NULL) { stack_pointer += -1 - oparg; goto error; } + stack_pointer[-1 - oparg] = map; + stack_pointer += -oparg; DISPATCH(); } - TARGET(BINARY_SUBSCR_GETITEM) { - PyObject *sub = stack_pointer[-1]; - PyObject *container = stack_pointer[-2]; - #line 496 "Python/bytecodes.c" - DEOPT_IF(tstate->interp->eval_frame, BINARY_SUBSCR); - PyTypeObject *tp = Py_TYPE(container); - DEOPT_IF(!PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE), BINARY_SUBSCR); - PyHeapTypeObject *ht = (PyHeapTypeObject *)tp; - PyObject *cached = ht->_spec_cache.getitem; - DEOPT_IF(cached == NULL, BINARY_SUBSCR); - assert(PyFunction_Check(cached)); - PyFunctionObject *getitem = (PyFunctionObject *)cached; - uint32_t cached_version = ht->_spec_cache.getitem_version; - DEOPT_IF(getitem->func_version != cached_version, BINARY_SUBSCR); - PyCodeObject *code = (PyCodeObject *)getitem->func_code; - assert(code->co_argcount == 2); - DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), BINARY_SUBSCR); - STAT_INC(BINARY_SUBSCR, hit); - Py_INCREF(getitem); - _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, getitem, 2); - STACK_SHRINK(2); - new_frame->localsplus[0] = container; - new_frame->localsplus[1] = sub; - JUMPBY(INLINE_CACHE_ENTRIES_BINARY_SUBSCR); - frame->return_offset = 0; - DISPATCH_INLINED(new_frame); - #line 733 "Python/generated_cases.c.h" - } - - TARGET(LIST_APPEND) { - PyObject *v = stack_pointer[-1]; - PyObject *list = stack_pointer[-(2 + (oparg-1))]; - #line 521 "Python/bytecodes.c" - if (_PyList_AppendTakeRef((PyListObject *)list, v) < 0) goto pop_1_error; - #line 741 "Python/generated_cases.c.h" - STACK_SHRINK(1); - PREDICT(JUMP_BACKWARD); + TARGET(BUILD_LIST) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(BUILD_LIST); + PyObject **values; + PyObject *list; + values = &stack_pointer[-oparg]; + list = _PyList_FromArraySteal(values, oparg); + if (list == NULL) { stack_pointer += -oparg; goto error; } + stack_pointer[-oparg] = list; + stack_pointer += 1 - oparg; DISPATCH(); } - TARGET(SET_ADD) { - PyObject *v = stack_pointer[-1]; - PyObject *set = stack_pointer[-(2 + (oparg-1))]; - #line 526 "Python/bytecodes.c" - int err = PySet_Add(set, v); - #line 752 "Python/generated_cases.c.h" - Py_DECREF(v); - #line 528 "Python/bytecodes.c" - if (err) goto pop_1_error; - #line 756 "Python/generated_cases.c.h" - STACK_SHRINK(1); - PREDICT(JUMP_BACKWARD); + TARGET(BUILD_MAP) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(BUILD_MAP); + PyObject **values; + PyObject *map; + values = &stack_pointer[-oparg*2]; + map = _PyDict_FromItems( + values, 2, + values+1, 2, + oparg); + for (int _i = oparg*2; --_i >= 0;) { + Py_DECREF(values[_i]); + } + if (map == NULL) { stack_pointer += -oparg*2; goto error; } + stack_pointer[-oparg*2] = map; + stack_pointer += 1 - oparg*2; DISPATCH(); } - TARGET(STORE_SUBSCR) { - PREDICTED(STORE_SUBSCR); - static_assert(INLINE_CACHE_ENTRIES_STORE_SUBSCR == 1, "incorrect cache size"); - PyObject *sub = stack_pointer[-1]; - PyObject *container = stack_pointer[-2]; - PyObject *v = stack_pointer[-3]; - uint16_t counter = read_u16(&next_instr[0].cache); - #line 539 "Python/bytecodes.c" - #if ENABLE_SPECIALIZATION - if (ADAPTIVE_COUNTER_IS_ZERO(counter)) { - next_instr--; - _Py_Specialize_StoreSubscr(container, sub, next_instr); - DISPATCH_SAME_OPARG(); - } - STAT_INC(STORE_SUBSCR, deferred); - _PyStoreSubscrCache *cache = (_PyStoreSubscrCache *)next_instr; - DECREMENT_ADAPTIVE_COUNTER(cache->counter); - #else - (void)counter; // Unused. - #endif /* ENABLE_SPECIALIZATION */ - /* container[sub] = v */ - int err = PyObject_SetItem(container, sub, v); - #line 784 "Python/generated_cases.c.h" - Py_DECREF(v); - Py_DECREF(container); - Py_DECREF(sub); - #line 554 "Python/bytecodes.c" - if (err) goto pop_3_error; - #line 790 "Python/generated_cases.c.h" - STACK_SHRINK(3); + TARGET(BUILD_SET) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(BUILD_SET); + PyObject **values; + PyObject *set; + values = &stack_pointer[-oparg]; + set = PySet_New(NULL); + if (set == NULL) + goto error; + int err = 0; + for (int i = 0; i < oparg; i++) { + PyObject *item = values[i]; + if (err == 0) + err = PySet_Add(set, item); + Py_DECREF(item); + } + if (err != 0) { + Py_DECREF(set); + if (true) { stack_pointer += -oparg; goto error; } + } + stack_pointer[-oparg] = set; + stack_pointer += 1 - oparg; DISPATCH(); } - TARGET(STORE_SUBSCR_LIST_INT) { - PyObject *sub = stack_pointer[-1]; - PyObject *list = stack_pointer[-2]; - PyObject *value = stack_pointer[-3]; - #line 558 "Python/bytecodes.c" - DEOPT_IF(!PyLong_CheckExact(sub), STORE_SUBSCR); - DEOPT_IF(!PyList_CheckExact(list), STORE_SUBSCR); - - // Ensure nonnegative, zero-or-one-digit ints. - DEOPT_IF(!_PyLong_IsNonNegativeCompact((PyLongObject *)sub), STORE_SUBSCR); - Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0]; - // Ensure index < len(list) - DEOPT_IF(index >= PyList_GET_SIZE(list), STORE_SUBSCR); - STAT_INC(STORE_SUBSCR, hit); - - PyObject *old_value = PyList_GET_ITEM(list, index); - PyList_SET_ITEM(list, index, value); - assert(old_value != NULL); - Py_DECREF(old_value); - _Py_DECREF_SPECIALIZED(sub, (destructor)PyObject_Free); - Py_DECREF(list); - #line 817 "Python/generated_cases.c.h" - STACK_SHRINK(3); + TARGET(BUILD_SLICE) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(BUILD_SLICE); + PyObject *step = NULL; + PyObject *stop; + PyObject *start; + PyObject *slice; + if (oparg == 3) { step = stack_pointer[-((oparg == 3) ? 1 : 0)]; } + stop = stack_pointer[-1 - ((oparg == 3) ? 1 : 0)]; + start = stack_pointer[-2 - ((oparg == 3) ? 1 : 0)]; + slice = PySlice_New(start, stop, step); + Py_DECREF(start); + Py_DECREF(stop); + Py_XDECREF(step); + if (slice == NULL) { stack_pointer += -2 - ((oparg == 3) ? 1 : 0); goto error; } + stack_pointer[-2 - ((oparg == 3) ? 1 : 0)] = slice; + stack_pointer += -1 - ((oparg == 3) ? 1 : 0); DISPATCH(); } - TARGET(STORE_SUBSCR_DICT) { - PyObject *sub = stack_pointer[-1]; - PyObject *dict = stack_pointer[-2]; - PyObject *value = stack_pointer[-3]; - #line 577 "Python/bytecodes.c" - DEOPT_IF(!PyDict_CheckExact(dict), STORE_SUBSCR); - STAT_INC(STORE_SUBSCR, hit); - int err = _PyDict_SetItem_Take2((PyDictObject *)dict, sub, value); - Py_DECREF(dict); - if (err) goto pop_3_error; - #line 833 "Python/generated_cases.c.h" - STACK_SHRINK(3); + TARGET(BUILD_STRING) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(BUILD_STRING); + PyObject **pieces; + PyObject *str; + pieces = &stack_pointer[-oparg]; + str = _PyUnicode_JoinArray(&_Py_STR(empty), pieces, oparg); + for (int _i = oparg; --_i >= 0;) { + Py_DECREF(pieces[_i]); + } + if (str == NULL) { stack_pointer += -oparg; goto error; } + stack_pointer[-oparg] = str; + stack_pointer += 1 - oparg; DISPATCH(); } - TARGET(DELETE_SUBSCR) { - PyObject *sub = stack_pointer[-1]; - PyObject *container = stack_pointer[-2]; - #line 585 "Python/bytecodes.c" - /* del container[sub] */ - int err = PyObject_DelItem(container, sub); - #line 845 "Python/generated_cases.c.h" - Py_DECREF(container); - Py_DECREF(sub); - #line 588 "Python/bytecodes.c" - if (err) goto pop_2_error; - #line 850 "Python/generated_cases.c.h" - STACK_SHRINK(2); + TARGET(BUILD_TUPLE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(BUILD_TUPLE); + PyObject **values; + PyObject *tup; + values = &stack_pointer[-oparg]; + tup = _PyTuple_FromArraySteal(values, oparg); + if (tup == NULL) { stack_pointer += -oparg; goto error; } + stack_pointer[-oparg] = tup; + stack_pointer += 1 - oparg; DISPATCH(); } - TARGET(CALL_INTRINSIC_1) { - PyObject *value = stack_pointer[-1]; - PyObject *res; - #line 592 "Python/bytecodes.c" - assert(oparg <= MAX_INTRINSIC_1); - res = _PyIntrinsics_UnaryFunctions[oparg](tstate, value); - #line 861 "Python/generated_cases.c.h" - Py_DECREF(value); - #line 595 "Python/bytecodes.c" - if (res == NULL) goto pop_1_error; - #line 865 "Python/generated_cases.c.h" - stack_pointer[-1] = res; + TARGET(CACHE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(CACHE); + assert(0 && "Executing a cache."); + Py_FatalError("Executing a cache."); DISPATCH(); } - TARGET(CALL_INTRINSIC_2) { - PyObject *value1 = stack_pointer[-1]; - PyObject *value2 = stack_pointer[-2]; + TARGET(CALL) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL); + PREDICTED(CALL); + _Py_CODEUNIT *this_instr = next_instr - 4; + (void)this_instr; + PyObject **args; + PyObject *self_or_null; + PyObject *callable; PyObject *res; - #line 599 "Python/bytecodes.c" - assert(oparg <= MAX_INTRINSIC_2); - res = _PyIntrinsics_BinaryFunctions[oparg](tstate, value2, value1); - #line 877 "Python/generated_cases.c.h" - Py_DECREF(value2); - Py_DECREF(value1); - #line 602 "Python/bytecodes.c" - if (res == NULL) goto pop_2_error; - #line 882 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = res; - DISPATCH(); - } - - TARGET(RAISE_VARARGS) { - PyObject **args = (stack_pointer - oparg); - #line 606 "Python/bytecodes.c" - PyObject *cause = NULL, *exc = NULL; - switch (oparg) { - case 2: - cause = args[1]; - /* fall through */ - case 1: - exc = args[0]; - /* fall through */ - case 0: - if (do_raise(tstate, exc, cause)) { - assert(oparg == 0); - monitor_reraise(tstate, frame, next_instr-1); - goto exception_unwind; + // _SPECIALIZE_CALL + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + { + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + next_instr = this_instr; + _Py_Specialize_Call(callable, next_instr, oparg + (self_or_null != NULL)); + DISPATCH_SAME_OPARG(); } - break; - default: - _PyErr_SetString(tstate, PyExc_SystemError, - "bad RAISE_VARARGS oparg"); - break; + STAT_INC(CALL, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ } - if (true) { STACK_SHRINK(oparg); goto error; } - #line 912 "Python/generated_cases.c.h" - } - - TARGET(INTERPRETER_EXIT) { - PyObject *retval = stack_pointer[-1]; - #line 630 "Python/bytecodes.c" - assert(frame == &entry_frame); - assert(_PyFrame_IsIncomplete(frame)); - STACK_SHRINK(1); // Since we're not going to DISPATCH() - assert(EMPTY()); - /* Restore previous cframe and return. */ - tstate->cframe = cframe.previous; - assert(tstate->cframe->current_frame == frame->previous); - assert(!_PyErr_Occurred(tstate)); - tstate->c_recursion_remaining += PY_EVAL_C_STACK_UNITS; - return retval; - #line 928 "Python/generated_cases.c.h" - } - - TARGET(RETURN_VALUE) { - PyObject *retval = stack_pointer[-1]; - #line 643 "Python/bytecodes.c" - STACK_SHRINK(1); - assert(EMPTY()); - _PyFrame_SetStackPointer(frame, stack_pointer); - _Py_LeaveRecursiveCallPy(tstate); - assert(frame != &entry_frame); - // GH-99729: We need to unlink the frame *before* clearing it: - _PyInterpreterFrame *dying = frame; - frame = cframe.current_frame = dying->previous; - _PyEvalFrameClearAndPop(tstate, dying); - frame->prev_instr += frame->return_offset; - _PyFrame_StackPush(frame, retval); - goto resume_frame; - #line 946 "Python/generated_cases.c.h" - } - - TARGET(INSTRUMENTED_RETURN_VALUE) { - PyObject *retval = stack_pointer[-1]; - #line 658 "Python/bytecodes.c" - int err = _Py_call_instrumentation_arg( - tstate, PY_MONITORING_EVENT_PY_RETURN, - frame, next_instr-1, retval); - if (err) goto error; - STACK_SHRINK(1); - assert(EMPTY()); - _PyFrame_SetStackPointer(frame, stack_pointer); - _Py_LeaveRecursiveCallPy(tstate); - assert(frame != &entry_frame); - // GH-99729: We need to unlink the frame *before* clearing it: - _PyInterpreterFrame *dying = frame; - frame = cframe.current_frame = dying->previous; - _PyEvalFrameClearAndPop(tstate, dying); - frame->prev_instr += frame->return_offset; - _PyFrame_StackPush(frame, retval); - goto resume_frame; - #line 968 "Python/generated_cases.c.h" + /* Skip 2 cache entries */ + // _CALL + { + // oparg counts all of the args, but *not* self: + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + else if (Py_TYPE(callable) == &PyMethod_Type) { + args--; + total_args++; + PyObject *self = ((PyMethodObject *)callable)->im_self; + args[0] = Py_NewRef(self); + PyObject *method = ((PyMethodObject *)callable)->im_func; + args[-1] = Py_NewRef(method); + Py_DECREF(callable); + callable = method; + } + // Check if the call can be inlined or not + if (Py_TYPE(callable) == &PyFunction_Type && + tstate->interp->eval_frame == NULL && + ((PyFunctionObject *)callable)->vectorcall == _PyFunction_Vectorcall) + { + int code_flags = ((PyCodeObject*)PyFunction_GET_CODE(callable))->co_flags; + PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(callable)); + _PyInterpreterFrame *new_frame = _PyEvalFramePushAndInit( + tstate, (PyFunctionObject *)callable, locals, + args, total_args, NULL + ); + // Manipulate stack directly since we leave using DISPATCH_INLINED(). + STACK_SHRINK(oparg + 2); + // The frame has stolen all the arguments from the stack, + // so there is no need to clean them up. + if (new_frame == NULL) { + goto error; + } + frame->return_offset = (uint16_t)(next_instr - this_instr); + DISPATCH_INLINED(new_frame); + } + /* Callable is not a normal Python function */ + res = PyObject_Vectorcall( + callable, args, + total_args | PY_VECTORCALL_ARGUMENTS_OFFSET, + NULL); + if (opcode == INSTRUMENTED_CALL) { + PyObject *arg = total_args == 0 ? + &_PyInstrumentation_MISSING : args[0]; + if (res == NULL) { + _Py_call_instrumentation_exc2( + tstate, PY_MONITORING_EVENT_C_RAISE, + frame, this_instr, callable, arg); + } + else { + int err = _Py_call_instrumentation_2args( + tstate, PY_MONITORING_EVENT_C_RETURN, + frame, this_instr, callable, arg); + if (err < 0) { + Py_CLEAR(res); + } + } + } + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + Py_DECREF(callable); + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + if (res == NULL) { stack_pointer += -2 - oparg; goto error; } + } + // _CHECK_PERIODIC + { + } + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + CHECK_EVAL_BREAKER(); + DISPATCH(); } - TARGET(RETURN_CONST) { - #line 677 "Python/bytecodes.c" - PyObject *retval = GETITEM(frame->f_code->co_consts, oparg); - Py_INCREF(retval); - assert(EMPTY()); + TARGET(CALL_ALLOC_AND_ENTER_INIT) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_ALLOC_AND_ENTER_INIT); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject **args; + PyObject *null; + PyObject *callable; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + args = &stack_pointer[-oparg]; + null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + /* This instruction does the following: + * 1. Creates the object (by calling ``object.__new__``) + * 2. Pushes a shim frame to the frame stack (to cleanup after ``__init__``) + * 3. Pushes the frame for ``__init__`` to the frame stack + * */ + _PyCallCache *cache = (_PyCallCache *)&this_instr[1]; + DEOPT_IF(null != NULL, CALL); + DEOPT_IF(!PyType_Check(callable), CALL); + PyTypeObject *tp = (PyTypeObject *)callable; + DEOPT_IF(tp->tp_version_tag != read_u32(cache->func_version), CALL); + assert(tp->tp_flags & Py_TPFLAGS_INLINE_VALUES); + PyHeapTypeObject *cls = (PyHeapTypeObject *)callable; + PyFunctionObject *init = (PyFunctionObject *)cls->_spec_cache.init; + PyCodeObject *code = (PyCodeObject *)init->func_code; + DEOPT_IF(code->co_argcount != oparg+1, CALL); + DEOPT_IF((code->co_flags & (CO_VARKEYWORDS | CO_VARARGS | CO_OPTIMIZED)) != CO_OPTIMIZED, CALL); + DEOPT_IF(code->co_kwonlyargcount, CALL); + DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize + _Py_InitCleanup.co_framesize), CALL); + STAT_INC(CALL, hit); + PyObject *self = _PyType_NewManagedObject(tp); + if (self == NULL) { + goto error; + } + Py_DECREF(tp); + _PyInterpreterFrame *shim = _PyFrame_PushTrampolineUnchecked( + tstate, (PyCodeObject *)&_Py_InitCleanup, 1); + assert(_PyCode_CODE((PyCodeObject *)shim->f_executable)[0].op.code == EXIT_INIT_CHECK); + /* Push self onto stack of shim */ + Py_INCREF(self); + shim->localsplus[0] = self; + Py_INCREF(init); + _PyInterpreterFrame *init_frame = _PyFrame_PushUnchecked(tstate, init, oparg+1); + /* Copy self followed by args to __init__ frame */ + init_frame->localsplus[0] = self; + for (int i = 0; i < oparg; i++) { + init_frame->localsplus[i+1] = args[i]; + } + frame->return_offset = (uint16_t)(next_instr - this_instr); + STACK_SHRINK(oparg+2); _PyFrame_SetStackPointer(frame, stack_pointer); - _Py_LeaveRecursiveCallPy(tstate); - assert(frame != &entry_frame); - // GH-99729: We need to unlink the frame *before* clearing it: - _PyInterpreterFrame *dying = frame; - frame = cframe.current_frame = dying->previous; - _PyEvalFrameClearAndPop(tstate, dying); - frame->prev_instr += frame->return_offset; - _PyFrame_StackPush(frame, retval); - goto resume_frame; - #line 986 "Python/generated_cases.c.h" + /* Link frames */ + init_frame->previous = shim; + shim->previous = frame; + frame = tstate->current_frame = init_frame; + CALL_STAT_INC(inlined_py_calls); + /* Account for pushing the extra frame. + * We don't check recursion depth here, + * as it will be checked after start_frame */ + tstate->py_recursion_remaining--; + goto start_frame; } - TARGET(INSTRUMENTED_RETURN_CONST) { - #line 693 "Python/bytecodes.c" - PyObject *retval = GETITEM(frame->f_code->co_consts, oparg); - int err = _Py_call_instrumentation_arg( - tstate, PY_MONITORING_EVENT_PY_RETURN, - frame, next_instr-1, retval); - if (err) goto error; - Py_INCREF(retval); - assert(EMPTY()); - _PyFrame_SetStackPointer(frame, stack_pointer); - _Py_LeaveRecursiveCallPy(tstate); - assert(frame != &entry_frame); - // GH-99729: We need to unlink the frame *before* clearing it: - _PyInterpreterFrame *dying = frame; - frame = cframe.current_frame = dying->previous; - _PyEvalFrameClearAndPop(tstate, dying); - frame->prev_instr += frame->return_offset; - _PyFrame_StackPush(frame, retval); - goto resume_frame; - #line 1008 "Python/generated_cases.c.h" + TARGET(CALL_BOUND_METHOD_EXACT_ARGS) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_BOUND_METHOD_EXACT_ARGS); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject *null; + PyObject *callable; + PyObject *func; + PyObject *self; + PyObject *self_or_null; + PyObject **args; + _PyInterpreterFrame *new_frame; + /* Skip 1 cache entry */ + // _CHECK_PEP_523 + { + DEOPT_IF(tstate->interp->eval_frame, CALL); + } + // _CHECK_CALL_BOUND_METHOD_EXACT_ARGS + null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + { + DEOPT_IF(null != NULL, CALL); + DEOPT_IF(Py_TYPE(callable) != &PyMethod_Type, CALL); + } + // _INIT_CALL_BOUND_METHOD_EXACT_ARGS + { + STAT_INC(CALL, hit); + self = Py_NewRef(((PyMethodObject *)callable)->im_self); + stack_pointer[-1 - oparg] = self; // Patch stack as it is used by _INIT_CALL_PY_EXACT_ARGS + func = Py_NewRef(((PyMethodObject *)callable)->im_func); + stack_pointer[-2 - oparg] = func; // This is used by CALL, upon deoptimization + Py_DECREF(callable); + } + // _CHECK_FUNCTION_EXACT_ARGS + self_or_null = self; + callable = func; + { + uint32_t func_version = read_u32(&this_instr[2].cache); + DEOPT_IF(!PyFunction_Check(callable), CALL); + PyFunctionObject *func = (PyFunctionObject *)callable; + DEOPT_IF(func->func_version != func_version, CALL); + PyCodeObject *code = (PyCodeObject *)func->func_code; + DEOPT_IF(code->co_argcount != oparg + (self_or_null != NULL), CALL); + } + // _CHECK_STACK_SPACE + { + PyFunctionObject *func = (PyFunctionObject *)callable; + PyCodeObject *code = (PyCodeObject *)func->func_code; + DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), CALL); + } + // _CHECK_RECURSION_REMAINING + { + DEOPT_IF(tstate->py_recursion_remaining <= 1, CALL); + } + // _INIT_CALL_PY_EXACT_ARGS + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + { + int has_self = (self_or_null != NULL); + STAT_INC(CALL, hit); + PyFunctionObject *func = (PyFunctionObject *)callable; + new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self); + PyObject **first_non_self_local = new_frame->localsplus + has_self; + new_frame->localsplus[0] = self_or_null; + for (int i = 0; i < oparg; i++) { + first_non_self_local[i] = args[i]; + } + } + // _SAVE_RETURN_OFFSET + { + #if TIER_ONE + frame->return_offset = (uint16_t)(next_instr - this_instr); + #endif + #if TIER_TWO + frame->return_offset = oparg; + #endif + } + // _PUSH_FRAME + { + // Write it out explicitly because it's subtly different. + // Eventually this should be the only occurrence of this code. + assert(tstate->interp->eval_frame == NULL); + stack_pointer += -2 - oparg; + _PyFrame_SetStackPointer(frame, stack_pointer); + new_frame->previous = frame; + CALL_STAT_INC(inlined_py_calls); + frame = tstate->current_frame = new_frame; + tstate->py_recursion_remaining--; + LOAD_SP(); + LOAD_IP(0); + LLTRACE_RESUME_FRAME(); + } + DISPATCH(); } - TARGET(GET_AITER) { - PyObject *obj = stack_pointer[-1]; - PyObject *iter; - #line 713 "Python/bytecodes.c" - unaryfunc getter = NULL; - PyTypeObject *type = Py_TYPE(obj); - - if (type->tp_as_async != NULL) { - getter = type->tp_as_async->am_aiter; + TARGET(CALL_BOUND_METHOD_GENERAL) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_BOUND_METHOD_GENERAL); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject *null; + PyObject *callable; + PyObject *method; + PyObject *self; + PyObject **args; + PyObject *self_or_null; + _PyInterpreterFrame *new_frame; + /* Skip 1 cache entry */ + // _CHECK_PEP_523 + { + DEOPT_IF(tstate->interp->eval_frame, CALL); } - - if (getter == NULL) { - _PyErr_Format(tstate, PyExc_TypeError, - "'async for' requires an object with " - "__aiter__ method, got %.100s", - type->tp_name); - #line 1027 "Python/generated_cases.c.h" - Py_DECREF(obj); - #line 726 "Python/bytecodes.c" - if (true) goto pop_1_error; + // _CHECK_METHOD_VERSION + null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + { + uint32_t func_version = read_u32(&this_instr[2].cache); + DEOPT_IF(Py_TYPE(callable) != &PyMethod_Type, CALL); + PyObject *func = ((PyMethodObject *)callable)->im_func; + DEOPT_IF(!PyFunction_Check(func), CALL); + DEOPT_IF(((PyFunctionObject *)func)->func_version != func_version, CALL); + DEOPT_IF(null != NULL, CALL); + } + // _EXPAND_METHOD + { + assert(null == NULL); + assert(Py_TYPE(callable) == &PyMethod_Type); + self = ((PyMethodObject *)callable)->im_self; + Py_INCREF(self); + stack_pointer[-1 - oparg] = self; // Patch stack as it is used by _PY_FRAME_GENERAL + method = ((PyMethodObject *)callable)->im_func; + assert(PyFunction_Check(method)); + Py_INCREF(method); + Py_DECREF(callable); } - - iter = (*getter)(obj); - #line 1034 "Python/generated_cases.c.h" - Py_DECREF(obj); - #line 731 "Python/bytecodes.c" - if (iter == NULL) goto pop_1_error; - - if (Py_TYPE(iter)->tp_as_async == NULL || - Py_TYPE(iter)->tp_as_async->am_anext == NULL) { - - _PyErr_Format(tstate, PyExc_TypeError, - "'async for' received an object from __aiter__ " - "that does not implement __anext__: %.100s", - Py_TYPE(iter)->tp_name); - Py_DECREF(iter); - if (true) goto pop_1_error; + // _CHECK_RECURSION_REMAINING + { + DEOPT_IF(tstate->py_recursion_remaining <= 1, CALL); + } + // _PY_FRAME_GENERAL + args = &stack_pointer[-oparg]; + self_or_null = self; + callable = method; + { + // oparg counts all of the args, but *not* self: + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + assert(Py_TYPE(callable) == &PyFunction_Type); + int code_flags = ((PyCodeObject*)PyFunction_GET_CODE(callable))->co_flags; + PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(callable)); + new_frame = _PyEvalFramePushAndInit( + tstate, (PyFunctionObject *)callable, locals, + args, total_args, NULL + ); + // The frame has stolen all the arguments from the stack, + // so there is no need to clean them up. + stack_pointer += -2 - oparg; + if (new_frame == NULL) { + goto error; + } + } + // _SAVE_RETURN_OFFSET + { + #if TIER_ONE + frame->return_offset = (uint16_t)(next_instr - this_instr); + #endif + #if TIER_TWO + frame->return_offset = oparg; + #endif + } + // _PUSH_FRAME + { + // Write it out explicitly because it's subtly different. + // Eventually this should be the only occurrence of this code. + assert(tstate->interp->eval_frame == NULL); + _PyFrame_SetStackPointer(frame, stack_pointer); + new_frame->previous = frame; + CALL_STAT_INC(inlined_py_calls); + frame = tstate->current_frame = new_frame; + tstate->py_recursion_remaining--; + LOAD_SP(); + LOAD_IP(0); + LLTRACE_RESUME_FRAME(); } - #line 1049 "Python/generated_cases.c.h" - stack_pointer[-1] = iter; DISPATCH(); } - TARGET(GET_ANEXT) { - PyObject *aiter = stack_pointer[-1]; - PyObject *awaitable; - #line 746 "Python/bytecodes.c" - unaryfunc getter = NULL; - PyObject *next_iter = NULL; - PyTypeObject *type = Py_TYPE(aiter); - - if (PyAsyncGen_CheckExact(aiter)) { - awaitable = type->tp_as_async->am_anext(aiter); - if (awaitable == NULL) { - goto error; + TARGET(CALL_BUILTIN_CLASS) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_BUILTIN_CLASS); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + // _CALL_BUILTIN_CLASS + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + { + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; } - } else { - if (type->tp_as_async != NULL){ - getter = type->tp_as_async->am_anext; + DEOPT_IF(!PyType_Check(callable), CALL); + PyTypeObject *tp = (PyTypeObject *)callable; + DEOPT_IF(tp->tp_vectorcall == NULL, CALL); + STAT_INC(CALL, hit); + res = tp->tp_vectorcall((PyObject *)tp, args, total_args, NULL); + /* Free the arguments. */ + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); } - - if (getter != NULL) { - next_iter = (*getter)(aiter); - if (next_iter == NULL) { + Py_DECREF(tp); + if (res == NULL) { stack_pointer += -2 - oparg; goto error; } + } + // _CHECK_PERIODIC + { + } + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + + TARGET(CALL_BUILTIN_FAST) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_BUILTIN_FAST); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + // _CALL_BUILTIN_FAST + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + { + /* Builtin METH_FASTCALL functions, without keywords */ + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + DEOPT_IF(!PyCFunction_CheckExact(callable), CALL); + DEOPT_IF(PyCFunction_GET_FLAGS(callable) != METH_FASTCALL, CALL); + STAT_INC(CALL, hit); + PyCFunction cfunc = PyCFunction_GET_FUNCTION(callable); + /* res = func(self, args, nargs) */ + res = ((PyCFunctionFast)(void(*)(void))cfunc)( + PyCFunction_GET_SELF(callable), + args, + total_args); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + /* Free the arguments. */ + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + Py_DECREF(callable); + if (res == NULL) { stack_pointer += -2 - oparg; goto error; } + } + // _CHECK_PERIODIC + { + } + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + + TARGET(CALL_BUILTIN_FAST_WITH_KEYWORDS) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_BUILTIN_FAST_WITH_KEYWORDS); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + // _CALL_BUILTIN_FAST_WITH_KEYWORDS + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + { + /* Builtin METH_FASTCALL | METH_KEYWORDS functions */ + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + DEOPT_IF(!PyCFunction_CheckExact(callable), CALL); + DEOPT_IF(PyCFunction_GET_FLAGS(callable) != (METH_FASTCALL | METH_KEYWORDS), CALL); + STAT_INC(CALL, hit); + /* res = func(self, args, nargs, kwnames) */ + PyCFunctionFastWithKeywords cfunc = + (PyCFunctionFastWithKeywords)(void(*)(void)) + PyCFunction_GET_FUNCTION(callable); + res = cfunc(PyCFunction_GET_SELF(callable), args, total_args, NULL); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + /* Free the arguments. */ + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + Py_DECREF(callable); + if (res == NULL) { stack_pointer += -2 - oparg; goto error; } + } + // _CHECK_PERIODIC + { + } + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + + TARGET(CALL_BUILTIN_O) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_BUILTIN_O); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + // _CALL_BUILTIN_O + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + { + /* Builtin METH_O functions */ + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + DEOPT_IF(total_args != 1, CALL); + DEOPT_IF(!PyCFunction_CheckExact(callable), CALL); + DEOPT_IF(PyCFunction_GET_FLAGS(callable) != METH_O, CALL); + // CPython promises to check all non-vectorcall function calls. + DEOPT_IF(tstate->c_recursion_remaining <= 0, CALL); + STAT_INC(CALL, hit); + PyCFunction cfunc = PyCFunction_GET_FUNCTION(callable); + PyObject *arg = args[0]; + _Py_EnterRecursiveCallTstateUnchecked(tstate); + res = _PyCFunction_TrampolineCall(cfunc, PyCFunction_GET_SELF(callable), arg); + _Py_LeaveRecursiveCallTstate(tstate); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + Py_DECREF(arg); + Py_DECREF(callable); + if (res == NULL) { stack_pointer += -2 - oparg; goto error; } + } + // _CHECK_PERIODIC + { + } + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + + TARGET(CALL_FUNCTION_EX) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(CALL_FUNCTION_EX); + PREDICTED(CALL_FUNCTION_EX); + _Py_CODEUNIT *this_instr = next_instr - 1; + (void)this_instr; + PyObject *kwargs = NULL; + PyObject *callargs; + PyObject *func; + PyObject *result; + if (oparg & 1) { kwargs = stack_pointer[-(oparg & 1)]; } + callargs = stack_pointer[-1 - (oparg & 1)]; + func = stack_pointer[-3 - (oparg & 1)]; + // DICT_MERGE is called before this opcode if there are kwargs. + // It converts all dict subtypes in kwargs into regular dicts. + assert(kwargs == NULL || PyDict_CheckExact(kwargs)); + if (!PyTuple_CheckExact(callargs)) { + if (check_args_iterable(tstate, func, callargs) < 0) { + goto error; + } + PyObject *tuple = PySequence_Tuple(callargs); + if (tuple == NULL) { + goto error; + } + Py_SETREF(callargs, tuple); + } + assert(PyTuple_CheckExact(callargs)); + EVAL_CALL_STAT_INC_IF_FUNCTION(EVAL_CALL_FUNCTION_EX, func); + if (opcode == INSTRUMENTED_CALL_FUNCTION_EX) { + PyObject *arg = PyTuple_GET_SIZE(callargs) > 0 ? + PyTuple_GET_ITEM(callargs, 0) : &_PyInstrumentation_MISSING; + int err = _Py_call_instrumentation_2args( + tstate, PY_MONITORING_EVENT_CALL, + frame, this_instr, func, arg); + if (err) goto error; + result = PyObject_Call(func, callargs, kwargs); + if (!PyFunction_Check(func) && !PyMethod_Check(func)) { + if (result == NULL) { + _Py_call_instrumentation_exc2( + tstate, PY_MONITORING_EVENT_C_RAISE, + frame, this_instr, func, arg); + } + else { + int err = _Py_call_instrumentation_2args( + tstate, PY_MONITORING_EVENT_C_RETURN, + frame, this_instr, func, arg); + if (err < 0) { + Py_CLEAR(result); + } + } + } + } + else { + if (Py_TYPE(func) == &PyFunction_Type && + tstate->interp->eval_frame == NULL && + ((PyFunctionObject *)func)->vectorcall == _PyFunction_Vectorcall) { + assert(PyTuple_CheckExact(callargs)); + Py_ssize_t nargs = PyTuple_GET_SIZE(callargs); + int code_flags = ((PyCodeObject *)PyFunction_GET_CODE(func))->co_flags; + PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(func)); + _PyInterpreterFrame *new_frame = _PyEvalFramePushAndInit_Ex(tstate, + (PyFunctionObject *)func, locals, + nargs, callargs, kwargs); + // Need to manually shrink the stack since we exit with DISPATCH_INLINED. + STACK_SHRINK(oparg + 3); + if (new_frame == NULL) { goto error; } + assert(next_instr - this_instr == 1); + frame->return_offset = 1; + DISPATCH_INLINED(new_frame); } - else { - _PyErr_Format(tstate, PyExc_TypeError, - "'async for' requires an iterator with " - "__anext__ method, got %.100s", - type->tp_name); + result = PyObject_Call(func, callargs, kwargs); + } + Py_DECREF(func); + Py_DECREF(callargs); + Py_XDECREF(kwargs); + assert(PEEK(2 + (oparg & 1)) == NULL); + if (result == NULL) { stack_pointer += -3 - (oparg & 1); goto error; } + stack_pointer[-3 - (oparg & 1)] = result; + stack_pointer += -2 - (oparg & 1); + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + + TARGET(CALL_INTRINSIC_1) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(CALL_INTRINSIC_1); + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + assert(oparg <= MAX_INTRINSIC_1); + res = _PyIntrinsics_UnaryFunctions[oparg].func(tstate, value); + Py_DECREF(value); + if (res == NULL) goto pop_1_error; + stack_pointer[-1] = res; + DISPATCH(); + } + + TARGET(CALL_INTRINSIC_2) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(CALL_INTRINSIC_2); + PyObject *value1; + PyObject *value2; + PyObject *res; + value1 = stack_pointer[-1]; + value2 = stack_pointer[-2]; + assert(oparg <= MAX_INTRINSIC_2); + res = _PyIntrinsics_BinaryFunctions[oparg].func(tstate, value2, value1); + Py_DECREF(value2); + Py_DECREF(value1); + if (res == NULL) goto pop_2_error; + stack_pointer[-2] = res; + stack_pointer += -1; + DISPATCH(); + } + + TARGET(CALL_ISINSTANCE) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_ISINSTANCE); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + /* isinstance(o, o2) */ + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + DEOPT_IF(total_args != 2, CALL); + PyInterpreterState *interp = tstate->interp; + DEOPT_IF(callable != interp->callable_cache.isinstance, CALL); + STAT_INC(CALL, hit); + PyObject *cls = args[1]; + PyObject *inst = args[0]; + int retval = PyObject_IsInstance(inst, cls); + if (retval < 0) { + goto error; + } + res = PyBool_FromLong(retval); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + if (res == NULL) { + GOTO_ERROR(error); + } + Py_DECREF(inst); + Py_DECREF(cls); + Py_DECREF(callable); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + DISPATCH(); + } + + TARGET(CALL_KW) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(CALL_KW); + PREDICTED(CALL_KW); + _Py_CODEUNIT *this_instr = next_instr - 1; + (void)this_instr; + PyObject *kwnames; + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + kwnames = stack_pointer[-1]; + args = &stack_pointer[-1 - oparg]; + self_or_null = stack_pointer[-2 - oparg]; + callable = stack_pointer[-3 - oparg]; + // oparg counts all of the args, but *not* self: + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + if (self_or_null == NULL && Py_TYPE(callable) == &PyMethod_Type) { + args--; + total_args++; + PyObject *self = ((PyMethodObject *)callable)->im_self; + args[0] = Py_NewRef(self); + PyObject *method = ((PyMethodObject *)callable)->im_func; + args[-1] = Py_NewRef(method); + Py_DECREF(callable); + callable = method; + } + int positional_args = total_args - (int)PyTuple_GET_SIZE(kwnames); + // Check if the call can be inlined or not + if (Py_TYPE(callable) == &PyFunction_Type && + tstate->interp->eval_frame == NULL && + ((PyFunctionObject *)callable)->vectorcall == _PyFunction_Vectorcall) + { + int code_flags = ((PyCodeObject*)PyFunction_GET_CODE(callable))->co_flags; + PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(callable)); + _PyInterpreterFrame *new_frame = _PyEvalFramePushAndInit( + tstate, (PyFunctionObject *)callable, locals, + args, positional_args, kwnames + ); + Py_DECREF(kwnames); + // Manipulate stack directly since we leave using DISPATCH_INLINED(). + STACK_SHRINK(oparg + 3); + // The frame has stolen all the arguments from the stack, + // so there is no need to clean them up. + if (new_frame == NULL) { goto error; } + assert(next_instr - this_instr == 1); + frame->return_offset = 1; + DISPATCH_INLINED(new_frame); + } + /* Callable is not a normal Python function */ + res = PyObject_Vectorcall( + callable, args, + positional_args | PY_VECTORCALL_ARGUMENTS_OFFSET, + kwnames); + if (opcode == INSTRUMENTED_CALL_KW) { + PyObject *arg = total_args == 0 ? + &_PyInstrumentation_MISSING : args[0]; + if (res == NULL) { + _Py_call_instrumentation_exc2( + tstate, PY_MONITORING_EVENT_C_RAISE, + frame, this_instr, callable, arg); + } + else { + int err = _Py_call_instrumentation_2args( + tstate, PY_MONITORING_EVENT_C_RETURN, + frame, this_instr, callable, arg); + if (err < 0) { + Py_CLEAR(res); + } + } + } + Py_DECREF(kwnames); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + Py_DECREF(callable); + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + if (res == NULL) { stack_pointer += -3 - oparg; goto error; } + stack_pointer[-3 - oparg] = res; + stack_pointer += -2 - oparg; + CHECK_EVAL_BREAKER(); + DISPATCH(); + } - awaitable = _PyCoro_GetAwaitableIter(next_iter); - if (awaitable == NULL) { - _PyErr_FormatFromCause( - PyExc_TypeError, - "'async for' received an invalid object " - "from __anext__: %.100s", - Py_TYPE(next_iter)->tp_name); + TARGET(CALL_LEN) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_LEN); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + /* len(o) */ + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + DEOPT_IF(total_args != 1, CALL); + PyInterpreterState *interp = tstate->interp; + DEOPT_IF(callable != interp->callable_cache.len, CALL); + STAT_INC(CALL, hit); + PyObject *arg = args[0]; + Py_ssize_t len_i = PyObject_Length(arg); + if (len_i < 0) { + goto error; + } + res = PyLong_FromSsize_t(len_i); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + if (res == NULL) { + GOTO_ERROR(error); + } + Py_DECREF(callable); + Py_DECREF(arg); + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + DISPATCH(); + } - Py_DECREF(next_iter); + TARGET(CALL_LIST_APPEND) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_LIST_APPEND); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject *arg; + PyObject *self; + PyObject *callable; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + arg = stack_pointer[-1]; + self = stack_pointer[-2]; + callable = stack_pointer[-3]; + assert(oparg == 1); + PyInterpreterState *interp = tstate->interp; + DEOPT_IF(callable != interp->callable_cache.list_append, CALL); + DEOPT_IF(self == NULL, CALL); + DEOPT_IF(!PyList_Check(self), CALL); + STAT_INC(CALL, hit); + if (_PyList_AppendTakeRef((PyListObject *)self, arg) < 0) { + goto pop_1_error; // Since arg is DECREF'ed already + } + Py_DECREF(self); + Py_DECREF(callable); + STACK_SHRINK(3); + // Skip POP_TOP + assert(next_instr->op.code == POP_TOP); + SKIP_OVER(1); + DISPATCH(); + } + + TARGET(CALL_METHOD_DESCRIPTOR_FAST) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_METHOD_DESCRIPTOR_FAST); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + // _CALL_METHOD_DESCRIPTOR_FAST + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + { + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + PyMethodDescrObject *method = (PyMethodDescrObject *)callable; + DEOPT_IF(total_args == 0, CALL); + /* Builtin METH_FASTCALL methods, without keywords */ + DEOPT_IF(!Py_IS_TYPE(method, &PyMethodDescr_Type), CALL); + PyMethodDef *meth = method->d_method; + DEOPT_IF(meth->ml_flags != METH_FASTCALL, CALL); + PyObject *self = args[0]; + assert(self != NULL); + DEOPT_IF(!Py_IS_TYPE(self, method->d_common.d_type), CALL); + STAT_INC(CALL, hit); + PyCFunctionFast cfunc = + (PyCFunctionFast)(void(*)(void))meth->ml_meth; + int nargs = total_args - 1; + res = cfunc(self, args + 1, nargs); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + /* Clear the stack of the arguments. */ + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + Py_DECREF(callable); + if (res == NULL) { stack_pointer += -2 - oparg; goto error; } + } + // _CHECK_PERIODIC + { + } + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + + TARGET(CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + // _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + { + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + DEOPT_IF(total_args == 0, CALL); + PyMethodDescrObject *method = (PyMethodDescrObject *)callable; + DEOPT_IF(!Py_IS_TYPE(method, &PyMethodDescr_Type), CALL); + PyMethodDef *meth = method->d_method; + DEOPT_IF(meth->ml_flags != (METH_FASTCALL|METH_KEYWORDS), CALL); + PyTypeObject *d_type = method->d_common.d_type; + PyObject *self = args[0]; + assert(self != NULL); + DEOPT_IF(!Py_IS_TYPE(self, d_type), CALL); + STAT_INC(CALL, hit); + int nargs = total_args - 1; + PyCFunctionFastWithKeywords cfunc = + (PyCFunctionFastWithKeywords)(void(*)(void))meth->ml_meth; + res = cfunc(self, args + 1, nargs, NULL); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + /* Free the arguments. */ + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + Py_DECREF(callable); + if (res == NULL) { stack_pointer += -2 - oparg; goto error; } + } + // _CHECK_PERIODIC + { + } + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + + TARGET(CALL_METHOD_DESCRIPTOR_NOARGS) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_METHOD_DESCRIPTOR_NOARGS); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + // _CALL_METHOD_DESCRIPTOR_NOARGS + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + { + assert(oparg == 0 || oparg == 1); + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + DEOPT_IF(total_args != 1, CALL); + PyMethodDescrObject *method = (PyMethodDescrObject *)callable; + DEOPT_IF(!Py_IS_TYPE(method, &PyMethodDescr_Type), CALL); + PyMethodDef *meth = method->d_method; + PyObject *self = args[0]; + DEOPT_IF(!Py_IS_TYPE(self, method->d_common.d_type), CALL); + DEOPT_IF(meth->ml_flags != METH_NOARGS, CALL); + // CPython promises to check all non-vectorcall function calls. + DEOPT_IF(tstate->c_recursion_remaining <= 0, CALL); + STAT_INC(CALL, hit); + PyCFunction cfunc = meth->ml_meth; + _Py_EnterRecursiveCallTstateUnchecked(tstate); + res = _PyCFunction_TrampolineCall(cfunc, self, NULL); + _Py_LeaveRecursiveCallTstate(tstate); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + Py_DECREF(self); + Py_DECREF(callable); + if (res == NULL) { stack_pointer += -2 - oparg; goto error; } + } + // _CHECK_PERIODIC + { + } + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + + TARGET(CALL_METHOD_DESCRIPTOR_O) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_METHOD_DESCRIPTOR_O); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject **args; + PyObject *self_or_null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + // _CALL_METHOD_DESCRIPTOR_O + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + { + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + PyMethodDescrObject *method = (PyMethodDescrObject *)callable; + DEOPT_IF(total_args != 2, CALL); + DEOPT_IF(!Py_IS_TYPE(method, &PyMethodDescr_Type), CALL); + PyMethodDef *meth = method->d_method; + DEOPT_IF(meth->ml_flags != METH_O, CALL); + // CPython promises to check all non-vectorcall function calls. + DEOPT_IF(tstate->c_recursion_remaining <= 0, CALL); + PyObject *arg = args[1]; + PyObject *self = args[0]; + DEOPT_IF(!Py_IS_TYPE(self, method->d_common.d_type), CALL); + STAT_INC(CALL, hit); + PyCFunction cfunc = meth->ml_meth; + _Py_EnterRecursiveCallTstateUnchecked(tstate); + res = _PyCFunction_TrampolineCall(cfunc, self, arg); + _Py_LeaveRecursiveCallTstate(tstate); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + Py_DECREF(self); + Py_DECREF(arg); + Py_DECREF(callable); + if (res == NULL) { stack_pointer += -2 - oparg; goto error; } + } + // _CHECK_PERIODIC + { + } + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + + TARGET(CALL_NON_PY_GENERAL) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_NON_PY_GENERAL); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject *callable; + PyObject **args; + PyObject *self_or_null; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + // _CHECK_IS_NOT_PY_CALLABLE + callable = stack_pointer[-2 - oparg]; + { + DEOPT_IF(PyFunction_Check(callable), CALL); + DEOPT_IF(Py_TYPE(callable) == &PyMethod_Type, CALL); + } + // _CALL_NON_PY_GENERAL + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + { + #if TIER_ONE + assert(opcode != INSTRUMENTED_CALL); + #endif + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + /* Callable is not a normal Python function */ + res = PyObject_Vectorcall( + callable, args, + total_args | PY_VECTORCALL_ARGUMENTS_OFFSET, + NULL); + assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + Py_DECREF(callable); + for (int i = 0; i < total_args; i++) { + Py_DECREF(args[i]); + } + if (res == NULL) { stack_pointer += -2 - oparg; goto error; } + } + // _CHECK_PERIODIC + { + } + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + CHECK_EVAL_BREAKER(); + DISPATCH(); + } + + TARGET(CALL_PY_EXACT_ARGS) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_PY_EXACT_ARGS); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject *self_or_null; + PyObject *callable; + PyObject **args; + _PyInterpreterFrame *new_frame; + /* Skip 1 cache entry */ + // _CHECK_PEP_523 + { + DEOPT_IF(tstate->interp->eval_frame, CALL); + } + // _CHECK_FUNCTION_EXACT_ARGS + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + { + uint32_t func_version = read_u32(&this_instr[2].cache); + DEOPT_IF(!PyFunction_Check(callable), CALL); + PyFunctionObject *func = (PyFunctionObject *)callable; + DEOPT_IF(func->func_version != func_version, CALL); + PyCodeObject *code = (PyCodeObject *)func->func_code; + DEOPT_IF(code->co_argcount != oparg + (self_or_null != NULL), CALL); + } + // _CHECK_STACK_SPACE + { + PyFunctionObject *func = (PyFunctionObject *)callable; + PyCodeObject *code = (PyCodeObject *)func->func_code; + DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), CALL); + } + // _CHECK_RECURSION_REMAINING + { + DEOPT_IF(tstate->py_recursion_remaining <= 1, CALL); + } + // _INIT_CALL_PY_EXACT_ARGS + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + { + int has_self = (self_or_null != NULL); + STAT_INC(CALL, hit); + PyFunctionObject *func = (PyFunctionObject *)callable; + new_frame = _PyFrame_PushUnchecked(tstate, func, oparg + has_self); + PyObject **first_non_self_local = new_frame->localsplus + has_self; + new_frame->localsplus[0] = self_or_null; + for (int i = 0; i < oparg; i++) { + first_non_self_local[i] = args[i]; + } + } + // _SAVE_RETURN_OFFSET + { + #if TIER_ONE + frame->return_offset = (uint16_t)(next_instr - this_instr); + #endif + #if TIER_TWO + frame->return_offset = oparg; + #endif + } + // _PUSH_FRAME + { + // Write it out explicitly because it's subtly different. + // Eventually this should be the only occurrence of this code. + assert(tstate->interp->eval_frame == NULL); + stack_pointer += -2 - oparg; + _PyFrame_SetStackPointer(frame, stack_pointer); + new_frame->previous = frame; + CALL_STAT_INC(inlined_py_calls); + frame = tstate->current_frame = new_frame; + tstate->py_recursion_remaining--; + LOAD_SP(); + LOAD_IP(0); + LLTRACE_RESUME_FRAME(); + } + DISPATCH(); + } + + TARGET(CALL_PY_GENERAL) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_PY_GENERAL); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject *callable; + PyObject **args; + PyObject *self_or_null; + _PyInterpreterFrame *new_frame; + /* Skip 1 cache entry */ + // _CHECK_PEP_523 + { + DEOPT_IF(tstate->interp->eval_frame, CALL); + } + // _CHECK_FUNCTION_VERSION + callable = stack_pointer[-2 - oparg]; + { + uint32_t func_version = read_u32(&this_instr[2].cache); + DEOPT_IF(!PyFunction_Check(callable), CALL); + PyFunctionObject *func = (PyFunctionObject *)callable; + DEOPT_IF(func->func_version != func_version, CALL); + } + // _CHECK_RECURSION_REMAINING + { + DEOPT_IF(tstate->py_recursion_remaining <= 1, CALL); + } + // _PY_FRAME_GENERAL + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + { + // oparg counts all of the args, but *not* self: + int total_args = oparg; + if (self_or_null != NULL) { + args--; + total_args++; + } + assert(Py_TYPE(callable) == &PyFunction_Type); + int code_flags = ((PyCodeObject*)PyFunction_GET_CODE(callable))->co_flags; + PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(callable)); + new_frame = _PyEvalFramePushAndInit( + tstate, (PyFunctionObject *)callable, locals, + args, total_args, NULL + ); + // The frame has stolen all the arguments from the stack, + // so there is no need to clean them up. + stack_pointer += -2 - oparg; + if (new_frame == NULL) { goto error; - } else { - Py_DECREF(next_iter); } } + // _SAVE_RETURN_OFFSET + { + #if TIER_ONE + frame->return_offset = (uint16_t)(next_instr - this_instr); + #endif + #if TIER_TWO + frame->return_offset = oparg; + #endif + } + // _PUSH_FRAME + { + // Write it out explicitly because it's subtly different. + // Eventually this should be the only occurrence of this code. + assert(tstate->interp->eval_frame == NULL); + _PyFrame_SetStackPointer(frame, stack_pointer); + new_frame->previous = frame; + CALL_STAT_INC(inlined_py_calls); + frame = tstate->current_frame = new_frame; + tstate->py_recursion_remaining--; + LOAD_SP(); + LOAD_IP(0); + LLTRACE_RESUME_FRAME(); + } + DISPATCH(); + } - #line 1101 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = awaitable; - PREDICT(LOAD_CONST); + TARGET(CALL_STR_1) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_STR_1); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject *arg; + PyObject *null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + // _CALL_STR_1 + arg = stack_pointer[-1]; + null = stack_pointer[-2]; + callable = stack_pointer[-3]; + { + assert(oparg == 1); + DEOPT_IF(null != NULL, CALL); + DEOPT_IF(callable != (PyObject *)&PyUnicode_Type, CALL); + STAT_INC(CALL, hit); + res = PyObject_Str(arg); + Py_DECREF(arg); + if (res == NULL) goto pop_3_error; + } + // _CHECK_PERIODIC + { + } + stack_pointer[-3] = res; + stack_pointer += -2; + CHECK_EVAL_BREAKER(); DISPATCH(); } - TARGET(GET_AWAITABLE) { - PREDICTED(GET_AWAITABLE); - PyObject *iterable = stack_pointer[-1]; - PyObject *iter; - #line 793 "Python/bytecodes.c" - iter = _PyCoro_GetAwaitableIter(iterable); + TARGET(CALL_TUPLE_1) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_TUPLE_1); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject *arg; + PyObject *null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + // _CALL_TUPLE_1 + arg = stack_pointer[-1]; + null = stack_pointer[-2]; + callable = stack_pointer[-3]; + { + assert(oparg == 1); + DEOPT_IF(null != NULL, CALL); + DEOPT_IF(callable != (PyObject *)&PyTuple_Type, CALL); + STAT_INC(CALL, hit); + res = PySequence_Tuple(arg); + Py_DECREF(arg); + if (res == NULL) goto pop_3_error; + } + // _CHECK_PERIODIC + { + } + stack_pointer[-3] = res; + stack_pointer += -2; + CHECK_EVAL_BREAKER(); + DISPATCH(); + } - if (iter == NULL) { - format_awaitable_error(tstate, Py_TYPE(iterable), oparg); + TARGET(CALL_TYPE_1) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(CALL_TYPE_1); + static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); + PyObject *arg; + PyObject *null; + PyObject *callable; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + arg = stack_pointer[-1]; + null = stack_pointer[-2]; + callable = stack_pointer[-3]; + assert(oparg == 1); + DEOPT_IF(null != NULL, CALL); + DEOPT_IF(callable != (PyObject *)&PyType_Type, CALL); + STAT_INC(CALL, hit); + res = Py_NewRef(Py_TYPE(arg)); + Py_DECREF(arg); + stack_pointer[-3] = res; + stack_pointer += -2; + DISPATCH(); + } + + TARGET(CHECK_EG_MATCH) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(CHECK_EG_MATCH); + PyObject *match_type; + PyObject *exc_value; + PyObject *rest; + PyObject *match; + match_type = stack_pointer[-1]; + exc_value = stack_pointer[-2]; + if (_PyEval_CheckExceptStarTypeValid(tstate, match_type) < 0) { + Py_DECREF(exc_value); + Py_DECREF(match_type); + if (true) goto pop_2_error; } + match = NULL; + rest = NULL; + int res = _PyEval_ExceptionGroupMatch(exc_value, match_type, + &match, &rest); + Py_DECREF(exc_value); + Py_DECREF(match_type); + if (res < 0) goto pop_2_error; + assert((match == NULL) == (rest == NULL)); + if (match == NULL) goto pop_2_error; + if (!Py_IsNone(match)) { + PyErr_SetHandledException(match); + } + stack_pointer[-2] = rest; + stack_pointer[-1] = match; + DISPATCH(); + } - #line 1119 "Python/generated_cases.c.h" - Py_DECREF(iterable); - #line 800 "Python/bytecodes.c" + TARGET(CHECK_EXC_MATCH) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(CHECK_EXC_MATCH); + PyObject *right; + PyObject *left; + PyObject *b; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + assert(PyExceptionInstance_Check(left)); + if (_PyEval_CheckExceptTypeValid(tstate, right) < 0) { + Py_DECREF(right); + if (true) goto pop_1_error; + } + int res = PyErr_GivenExceptionMatches(left, right); + Py_DECREF(right); + b = res ? Py_True : Py_False; + stack_pointer[-1] = b; + DISPATCH(); + } - if (iter != NULL && PyCoro_CheckExact(iter)) { - PyObject *yf = _PyGen_yf((PyGenObject*)iter); - if (yf != NULL) { - /* `iter` is a coroutine object that is being - awaited, `yf` is a pointer to the current awaitable - being awaited on. */ - Py_DECREF(yf); - Py_CLEAR(iter); - _PyErr_SetString(tstate, PyExc_RuntimeError, - "coroutine is being awaited already"); - /* The code below jumps to `error` if `iter` is NULL. */ + TARGET(CLEANUP_THROW) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(CLEANUP_THROW); + PyObject *exc_value; + PyObject *last_sent_val; + PyObject *sub_iter; + PyObject *none; + PyObject *value; + exc_value = stack_pointer[-1]; + last_sent_val = stack_pointer[-2]; + sub_iter = stack_pointer[-3]; + assert(throwflag); + assert(exc_value && PyExceptionInstance_Check(exc_value)); + if (PyErr_GivenExceptionMatches(exc_value, PyExc_StopIteration)) { + value = Py_NewRef(((PyStopIterationObject *)exc_value)->value); + Py_DECREF(sub_iter); + Py_DECREF(last_sent_val); + Py_DECREF(exc_value); + none = Py_None; + } + else { + _PyErr_SetRaisedException(tstate, Py_NewRef(exc_value)); + monitor_reraise(tstate, frame, this_instr); + goto exception_unwind; + } + stack_pointer[-3] = none; + stack_pointer[-2] = value; + stack_pointer += -1; + DISPATCH(); + } + + TARGET(COMPARE_OP) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(COMPARE_OP); + PREDICTED(COMPARE_OP); + _Py_CODEUNIT *this_instr = next_instr - 2; + (void)this_instr; + PyObject *right; + PyObject *left; + PyObject *res; + // _SPECIALIZE_COMPARE_OP + right = stack_pointer[-1]; + left = stack_pointer[-2]; + { + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + next_instr = this_instr; + _Py_Specialize_CompareOp(left, right, next_instr, oparg); + DISPATCH_SAME_OPARG(); } + STAT_INC(COMPARE_OP, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ } + // _COMPARE_OP + { + assert((oparg >> 5) <= Py_GE); + res = PyObject_RichCompare(left, right, oparg >> 5); + Py_DECREF(left); + Py_DECREF(right); + if (res == NULL) goto pop_2_error; + if (oparg & 16) { + int res_bool = PyObject_IsTrue(res); + Py_DECREF(res); + if (res_bool < 0) goto pop_2_error; + res = res_bool ? Py_True : Py_False; + } + } + stack_pointer[-2] = res; + stack_pointer += -1; + DISPATCH(); + } - if (iter == NULL) goto pop_1_error; - - #line 1139 "Python/generated_cases.c.h" - stack_pointer[-1] = iter; - PREDICT(LOAD_CONST); + TARGET(COMPARE_OP_FLOAT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(COMPARE_OP_FLOAT); + static_assert(INLINE_CACHE_ENTRIES_COMPARE_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; + PyObject *res; + // _GUARD_BOTH_FLOAT + right = stack_pointer[-1]; + left = stack_pointer[-2]; + { + DEOPT_IF(!PyFloat_CheckExact(left), COMPARE_OP); + DEOPT_IF(!PyFloat_CheckExact(right), COMPARE_OP); + } + /* Skip 1 cache entry */ + // _COMPARE_OP_FLOAT + { + STAT_INC(COMPARE_OP, hit); + double dleft = PyFloat_AS_DOUBLE(left); + double dright = PyFloat_AS_DOUBLE(right); + // 1 if NaN, 2 if <, 4 if >, 8 if ==; this matches low four bits of the oparg + int sign_ish = COMPARISON_BIT(dleft, dright); + _Py_DECREF_SPECIALIZED(left, _PyFloat_ExactDealloc); + _Py_DECREF_SPECIALIZED(right, _PyFloat_ExactDealloc); + res = (sign_ish & oparg) ? Py_True : Py_False; + // It's always a bool, so we don't care about oparg & 16. + } + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(SEND) { - PREDICTED(SEND); - static_assert(INLINE_CACHE_ENTRIES_SEND == 1, "incorrect cache size"); - PyObject *v = stack_pointer[-1]; - PyObject *receiver = stack_pointer[-2]; - PyObject *retval; - #line 826 "Python/bytecodes.c" - #if ENABLE_SPECIALIZATION - _PySendCache *cache = (_PySendCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { - next_instr--; - _Py_Specialize_Send(receiver, next_instr); - DISPATCH_SAME_OPARG(); - } - STAT_INC(SEND, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache->counter); - #endif /* ENABLE_SPECIALIZATION */ - assert(frame != &entry_frame); - if ((tstate->interp->eval_frame == NULL) && - (Py_TYPE(receiver) == &PyGen_Type || Py_TYPE(receiver) == &PyCoro_Type) && - ((PyGenObject *)receiver)->gi_frame_state < FRAME_EXECUTING) + TARGET(COMPARE_OP_INT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(COMPARE_OP_INT); + static_assert(INLINE_CACHE_ENTRIES_COMPARE_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; + PyObject *res; + // _GUARD_BOTH_INT + right = stack_pointer[-1]; + left = stack_pointer[-2]; { - PyGenObject *gen = (PyGenObject *)receiver; - _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe; - frame->return_offset = oparg; - STACK_SHRINK(1); - _PyFrame_StackPush(gen_frame, v); - gen->gi_frame_state = FRAME_EXECUTING; - gen->gi_exc_state.previous_item = tstate->exc_info; - tstate->exc_info = &gen->gi_exc_state; - JUMPBY(INLINE_CACHE_ENTRIES_SEND); - DISPATCH_INLINED(gen_frame); + DEOPT_IF(!PyLong_CheckExact(left), COMPARE_OP); + DEOPT_IF(!PyLong_CheckExact(right), COMPARE_OP); + } + /* Skip 1 cache entry */ + // _COMPARE_OP_INT + { + DEOPT_IF(!_PyLong_IsCompact((PyLongObject *)left), COMPARE_OP); + DEOPT_IF(!_PyLong_IsCompact((PyLongObject *)right), COMPARE_OP); + STAT_INC(COMPARE_OP, hit); + assert(_PyLong_DigitCount((PyLongObject *)left) <= 1 && + _PyLong_DigitCount((PyLongObject *)right) <= 1); + Py_ssize_t ileft = _PyLong_CompactValue((PyLongObject *)left); + Py_ssize_t iright = _PyLong_CompactValue((PyLongObject *)right); + // 2 if <, 4 if >, 8 if ==; this matches the low 4 bits of the oparg + int sign_ish = COMPARISON_BIT(ileft, iright); + _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); + _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); + res = (sign_ish & oparg) ? Py_True : Py_False; + // It's always a bool, so we don't care about oparg & 16. } - if (Py_IsNone(v) && PyIter_Check(receiver)) { - retval = Py_TYPE(receiver)->tp_iternext(receiver); + stack_pointer[-2] = res; + stack_pointer += -1; + DISPATCH(); + } + + TARGET(COMPARE_OP_STR) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(COMPARE_OP_STR); + static_assert(INLINE_CACHE_ENTRIES_COMPARE_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; + PyObject *res; + // _GUARD_BOTH_UNICODE + right = stack_pointer[-1]; + left = stack_pointer[-2]; + { + DEOPT_IF(!PyUnicode_CheckExact(left), COMPARE_OP); + DEOPT_IF(!PyUnicode_CheckExact(right), COMPARE_OP); } - else { - retval = PyObject_CallMethodOneArg(receiver, &_Py_ID(send), v); + /* Skip 1 cache entry */ + // _COMPARE_OP_STR + { + STAT_INC(COMPARE_OP, hit); + int eq = _PyUnicode_Equal(left, right); + assert((oparg >> 5) == Py_EQ || (oparg >> 5) == Py_NE); + _Py_DECREF_SPECIALIZED(left, _PyUnicode_ExactDealloc); + _Py_DECREF_SPECIALIZED(right, _PyUnicode_ExactDealloc); + assert(eq == 0 || eq == 1); + assert((oparg & 0xf) == COMPARISON_NOT_EQUALS || (oparg & 0xf) == COMPARISON_EQUALS); + assert(COMPARISON_NOT_EQUALS + 1 == COMPARISON_EQUALS); + res = ((COMPARISON_NOT_EQUALS + eq) & oparg) ? Py_True : Py_False; + // It's always a bool, so we don't care about oparg & 16. } - if (retval == NULL) { - if (_PyErr_ExceptionMatches(tstate, PyExc_StopIteration) - ) { - monitor_raise(tstate, frame, next_instr-1); - } - if (_PyGen_FetchStopIterationValue(&retval) == 0) { - assert(retval != NULL); - JUMPBY(oparg); - } - else { - goto error; + stack_pointer[-2] = res; + stack_pointer += -1; + DISPATCH(); + } + + TARGET(CONTAINS_OP) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(CONTAINS_OP); + PREDICTED(CONTAINS_OP); + _Py_CODEUNIT *this_instr = next_instr - 2; + (void)this_instr; + PyObject *right; + PyObject *left; + PyObject *b; + // _SPECIALIZE_CONTAINS_OP + right = stack_pointer[-1]; + left = stack_pointer[-2]; + { + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + next_instr = this_instr; + _Py_Specialize_ContainsOp(right, next_instr); + DISPATCH_SAME_OPARG(); } + STAT_INC(CONTAINS_OP, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ } - Py_DECREF(v); - #line 1198 "Python/generated_cases.c.h" - stack_pointer[-1] = retval; - next_instr += 1; + // _CONTAINS_OP + { + int res = PySequence_Contains(right, left); + Py_DECREF(left); + Py_DECREF(right); + if (res < 0) goto pop_2_error; + b = (res ^ oparg) ? Py_True : Py_False; + } + stack_pointer[-2] = b; + stack_pointer += -1; DISPATCH(); } - TARGET(SEND_GEN) { - PyObject *v = stack_pointer[-1]; - PyObject *receiver = stack_pointer[-2]; - #line 875 "Python/bytecodes.c" - DEOPT_IF(tstate->interp->eval_frame, SEND); - PyGenObject *gen = (PyGenObject *)receiver; - DEOPT_IF(Py_TYPE(gen) != &PyGen_Type && - Py_TYPE(gen) != &PyCoro_Type, SEND); - DEOPT_IF(gen->gi_frame_state >= FRAME_EXECUTING, SEND); - STAT_INC(SEND, hit); - _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe; - frame->return_offset = oparg; - STACK_SHRINK(1); - _PyFrame_StackPush(gen_frame, v); - gen->gi_frame_state = FRAME_EXECUTING; - gen->gi_exc_state.previous_item = tstate->exc_info; - tstate->exc_info = &gen->gi_exc_state; - JUMPBY(INLINE_CACHE_ENTRIES_SEND); - DISPATCH_INLINED(gen_frame); - #line 1223 "Python/generated_cases.c.h" + TARGET(CONTAINS_OP_DICT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(CONTAINS_OP_DICT); + static_assert(INLINE_CACHE_ENTRIES_CONTAINS_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; + PyObject *b; + /* Skip 1 cache entry */ + right = stack_pointer[-1]; + left = stack_pointer[-2]; + DEOPT_IF(!PyDict_CheckExact(right), CONTAINS_OP); + STAT_INC(CONTAINS_OP, hit); + int res = PyDict_Contains(right, left); + Py_DECREF(left); + Py_DECREF(right); + if (res < 0) goto pop_2_error; + b = (res ^ oparg) ? Py_True : Py_False; + stack_pointer[-2] = b; + stack_pointer += -1; + DISPATCH(); } - TARGET(INSTRUMENTED_YIELD_VALUE) { - PyObject *retval = stack_pointer[-1]; - #line 893 "Python/bytecodes.c" - assert(frame != &entry_frame); - PyGenObject *gen = _PyFrame_GetGenerator(frame); - gen->gi_frame_state = FRAME_SUSPENDED; - _PyFrame_SetStackPointer(frame, stack_pointer - 1); - int err = _Py_call_instrumentation_arg( - tstate, PY_MONITORING_EVENT_PY_YIELD, - frame, next_instr-1, retval); - if (err) goto error; - tstate->exc_info = gen->gi_exc_state.previous_item; - gen->gi_exc_state.previous_item = NULL; - _Py_LeaveRecursiveCallPy(tstate); - _PyInterpreterFrame *gen_frame = frame; - frame = cframe.current_frame = frame->previous; - gen_frame->previous = NULL; - _PyFrame_StackPush(frame, retval); - goto resume_frame; - #line 1245 "Python/generated_cases.c.h" + TARGET(CONTAINS_OP_SET) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(CONTAINS_OP_SET); + static_assert(INLINE_CACHE_ENTRIES_CONTAINS_OP == 1, "incorrect cache size"); + PyObject *right; + PyObject *left; + PyObject *b; + /* Skip 1 cache entry */ + right = stack_pointer[-1]; + left = stack_pointer[-2]; + DEOPT_IF(!(PySet_CheckExact(right) || PyFrozenSet_CheckExact(right)), CONTAINS_OP); + STAT_INC(CONTAINS_OP, hit); + // Note: both set and frozenset use the same seq_contains method! + int res = _PySet_Contains((PySetObject *)right, left); + Py_DECREF(left); + Py_DECREF(right); + if (res < 0) goto pop_2_error; + b = (res ^ oparg) ? Py_True : Py_False; + stack_pointer[-2] = b; + stack_pointer += -1; + DISPATCH(); } - TARGET(YIELD_VALUE) { - PyObject *retval = stack_pointer[-1]; - #line 912 "Python/bytecodes.c" - // NOTE: It's important that YIELD_VALUE never raises an exception! - // The compiler treats any exception raised here as a failed close() - // or throw() call. - assert(frame != &entry_frame); - PyGenObject *gen = _PyFrame_GetGenerator(frame); - gen->gi_frame_state = FRAME_SUSPENDED; - _PyFrame_SetStackPointer(frame, stack_pointer - 1); - tstate->exc_info = gen->gi_exc_state.previous_item; - gen->gi_exc_state.previous_item = NULL; - _Py_LeaveRecursiveCallPy(tstate); - _PyInterpreterFrame *gen_frame = frame; - frame = cframe.current_frame = frame->previous; - gen_frame->previous = NULL; - _PyFrame_StackPush(frame, retval); - goto resume_frame; - #line 1266 "Python/generated_cases.c.h" + TARGET(CONVERT_VALUE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(CONVERT_VALUE); + PyObject *value; + PyObject *result; + value = stack_pointer[-1]; + conversion_func conv_fn; + assert(oparg >= FVC_STR && oparg <= FVC_ASCII); + conv_fn = _PyEval_ConversionFuncs[oparg]; + result = conv_fn(value); + Py_DECREF(value); + if (result == NULL) goto pop_1_error; + stack_pointer[-1] = result; + DISPATCH(); } - TARGET(POP_EXCEPT) { - PyObject *exc_value = stack_pointer[-1]; - #line 930 "Python/bytecodes.c" - _PyErr_StackItem *exc_info = tstate->exc_info; - Py_XSETREF(exc_info->exc_value, exc_value); - #line 1274 "Python/generated_cases.c.h" - STACK_SHRINK(1); + TARGET(COPY) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(COPY); + PyObject *bottom; + PyObject *top; + bottom = stack_pointer[-1 - (oparg-1)]; + assert(oparg > 0); + top = Py_NewRef(bottom); + stack_pointer[0] = top; + stack_pointer += 1; DISPATCH(); } - TARGET(RERAISE) { - PyObject *exc = stack_pointer[-1]; - PyObject **values = (stack_pointer - (1 + oparg)); - #line 935 "Python/bytecodes.c" - assert(oparg >= 0 && oparg <= 2); - if (oparg) { - PyObject *lasti = values[0]; - if (PyLong_Check(lasti)) { - frame->prev_instr = _PyCode_CODE(frame->f_code) + PyLong_AsLong(lasti); - assert(!_PyErr_Occurred(tstate)); - } - else { - assert(PyLong_Check(lasti)); - _PyErr_SetString(tstate, PyExc_SystemError, "lasti is not an int"); - goto error; - } + TARGET(COPY_FREE_VARS) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(COPY_FREE_VARS); + /* Copy closure variables to free variables */ + PyCodeObject *co = _PyFrame_GetCode(frame); + assert(PyFunction_Check(frame->f_funcobj)); + PyObject *closure = ((PyFunctionObject *)frame->f_funcobj)->func_closure; + assert(oparg == co->co_nfreevars); + int offset = co->co_nlocalsplus - oparg; + for (int i = 0; i < oparg; ++i) { + PyObject *o = PyTuple_GET_ITEM(closure, i); + frame->localsplus[offset + i] = Py_NewRef(o); } - assert(exc && PyExceptionInstance_Check(exc)); - Py_INCREF(exc); - _PyErr_SetRaisedException(tstate, exc); - monitor_reraise(tstate, frame, next_instr-1); - goto exception_unwind; - #line 1301 "Python/generated_cases.c.h" + DISPATCH(); } - TARGET(END_ASYNC_FOR) { - PyObject *exc = stack_pointer[-1]; - PyObject *awaitable = stack_pointer[-2]; - #line 956 "Python/bytecodes.c" - assert(exc && PyExceptionInstance_Check(exc)); - if (PyErr_GivenExceptionMatches(exc, PyExc_StopAsyncIteration)) { - #line 1310 "Python/generated_cases.c.h" - Py_DECREF(awaitable); - Py_DECREF(exc); - #line 959 "Python/bytecodes.c" - } - else { - Py_INCREF(exc); - _PyErr_SetRaisedException(tstate, exc); - monitor_reraise(tstate, frame, next_instr-1); - goto exception_unwind; - } - #line 1321 "Python/generated_cases.c.h" - STACK_SHRINK(2); + TARGET(DELETE_ATTR) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(DELETE_ATTR); + PyObject *owner; + owner = stack_pointer[-1]; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + int err = PyObject_DelAttr(owner, name); + Py_DECREF(owner); + if (err) goto pop_1_error; + stack_pointer += -1; DISPATCH(); } - TARGET(CLEANUP_THROW) { - PyObject *exc_value = stack_pointer[-1]; - PyObject *last_sent_val = stack_pointer[-2]; - PyObject *sub_iter = stack_pointer[-3]; - PyObject *none; - PyObject *value; - #line 969 "Python/bytecodes.c" - assert(throwflag); - assert(exc_value && PyExceptionInstance_Check(exc_value)); - if (PyErr_GivenExceptionMatches(exc_value, PyExc_StopIteration)) { - value = Py_NewRef(((PyStopIterationObject *)exc_value)->value); - #line 1337 "Python/generated_cases.c.h" - Py_DECREF(sub_iter); - Py_DECREF(last_sent_val); - Py_DECREF(exc_value); - #line 974 "Python/bytecodes.c" - none = Py_None; - } - else { - _PyErr_SetRaisedException(tstate, Py_NewRef(exc_value)); - monitor_reraise(tstate, frame, next_instr-1); - goto exception_unwind; + TARGET(DELETE_DEREF) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(DELETE_DEREF); + PyObject *cell = GETLOCAL(oparg); + // Can't use ERROR_IF here. + // Fortunately we don't need its superpower. + PyObject *oldobj = PyCell_SwapTakeRef((PyCellObject *)cell, NULL); + if (oldobj == NULL) { + _PyEval_FormatExcUnbound(tstate, _PyFrame_GetCode(frame), oparg); + goto error; } - #line 1349 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = value; - stack_pointer[-2] = none; + Py_DECREF(oldobj); DISPATCH(); } - TARGET(LOAD_ASSERTION_ERROR) { - PyObject *value; - #line 984 "Python/bytecodes.c" - value = Py_NewRef(PyExc_AssertionError); - #line 1360 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = value; + TARGET(DELETE_FAST) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(DELETE_FAST); + PyObject *v = GETLOCAL(oparg); + if (v == NULL) { + _PyEval_FormatExcCheckArg(tstate, PyExc_UnboundLocalError, + UNBOUNDLOCAL_ERROR_MSG, + PyTuple_GetItem(_PyFrame_GetCode(frame)->co_localsplusnames, oparg) + ); + if (1) goto error; + } + SETLOCAL(oparg, NULL); DISPATCH(); } - TARGET(LOAD_BUILD_CLASS) { - PyObject *bc; - #line 988 "Python/bytecodes.c" - if (PyDict_CheckExact(BUILTINS())) { - bc = _PyDict_GetItemWithError(BUILTINS(), - &_Py_ID(__build_class__)); - if (bc == NULL) { - if (!_PyErr_Occurred(tstate)) { - _PyErr_SetString(tstate, PyExc_NameError, - "__build_class__ not found"); - } - if (true) goto error; - } - Py_INCREF(bc); + TARGET(DELETE_GLOBAL) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(DELETE_GLOBAL); + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + int err = PyDict_Pop(GLOBALS(), name, NULL); + // Can't use ERROR_IF here. + if (err < 0) { + goto error; } - else { - bc = PyObject_GetItem(BUILTINS(), &_Py_ID(__build_class__)); - if (bc == NULL) { - if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) - _PyErr_SetString(tstate, PyExc_NameError, - "__build_class__ not found"); - if (true) goto error; - } + if (err == 0) { + _PyEval_FormatExcCheckArg(tstate, PyExc_NameError, + NAME_ERROR_MSG, name); + goto error; } - #line 1390 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = bc; DISPATCH(); } - TARGET(STORE_NAME) { - PyObject *v = stack_pointer[-1]; - #line 1013 "Python/bytecodes.c" - PyObject *name = GETITEM(frame->f_code->co_names, oparg); + TARGET(DELETE_NAME) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(DELETE_NAME); + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); PyObject *ns = LOCALS(); int err; if (ns == NULL) { _PyErr_Format(tstate, PyExc_SystemError, - "no locals found when storing %R", name); - #line 1405 "Python/generated_cases.c.h" - Py_DECREF(v); - #line 1020 "Python/bytecodes.c" + "no locals when deleting %R", name); + goto error; + } + err = PyObject_DelItem(ns, name); + // Can't use ERROR_IF here. + if (err != 0) { + _PyEval_FormatExcCheckArg(tstate, PyExc_NameError, + NAME_ERROR_MSG, + name); + goto error; + } + DISPATCH(); + } + + TARGET(DELETE_SUBSCR) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(DELETE_SUBSCR); + PyObject *sub; + PyObject *container; + sub = stack_pointer[-1]; + container = stack_pointer[-2]; + /* del container[sub] */ + int err = PyObject_DelItem(container, sub); + Py_DECREF(container); + Py_DECREF(sub); + if (err) goto pop_2_error; + stack_pointer += -2; + DISPATCH(); + } + + TARGET(DICT_MERGE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(DICT_MERGE); + PyObject *update; + PyObject *dict; + PyObject *callable; + update = stack_pointer[-1]; + dict = stack_pointer[-2 - (oparg - 1)]; + callable = stack_pointer[-5 - (oparg - 1)]; + if (_PyDict_MergeEx(dict, update, 2) < 0) { + _PyEval_FormatKwargsError(tstate, callable, update); + Py_DECREF(update); + if (true) goto pop_1_error; + } + Py_DECREF(update); + stack_pointer += -1; + DISPATCH(); + } + + TARGET(DICT_UPDATE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(DICT_UPDATE); + PyObject *update; + PyObject *dict; + update = stack_pointer[-1]; + dict = stack_pointer[-2 - (oparg - 1)]; + if (PyDict_Update(dict, update) < 0) { + if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) { + _PyErr_Format(tstate, PyExc_TypeError, + "'%.200s' object is not a mapping", + Py_TYPE(update)->tp_name); + } + Py_DECREF(update); if (true) goto pop_1_error; } - if (PyDict_CheckExact(ns)) - err = PyDict_SetItem(ns, name, v); - else - err = PyObject_SetItem(ns, name, v); - #line 1414 "Python/generated_cases.c.h" - Py_DECREF(v); - #line 1027 "Python/bytecodes.c" - if (err) goto pop_1_error; - #line 1418 "Python/generated_cases.c.h" - STACK_SHRINK(1); + Py_DECREF(update); + stack_pointer += -1; DISPATCH(); } - TARGET(DELETE_NAME) { - #line 1031 "Python/bytecodes.c" - PyObject *name = GETITEM(frame->f_code->co_names, oparg); - PyObject *ns = LOCALS(); - int err; - if (ns == NULL) { - _PyErr_Format(tstate, PyExc_SystemError, - "no locals when deleting %R", name); - goto error; + TARGET(END_ASYNC_FOR) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(END_ASYNC_FOR); + PyObject *exc; + PyObject *awaitable; + exc = stack_pointer[-1]; + awaitable = stack_pointer[-2]; + assert(exc && PyExceptionInstance_Check(exc)); + if (PyErr_GivenExceptionMatches(exc, PyExc_StopAsyncIteration)) { + Py_DECREF(awaitable); + Py_DECREF(exc); } - err = PyObject_DelItem(ns, name); - // Can't use ERROR_IF here. - if (err != 0) { - format_exc_check_arg(tstate, PyExc_NameError, - NAME_ERROR_MSG, - name); - goto error; + else { + Py_INCREF(exc); + _PyErr_SetRaisedException(tstate, exc); + monitor_reraise(tstate, frame, this_instr); + goto exception_unwind; } - #line 1441 "Python/generated_cases.c.h" + stack_pointer += -2; DISPATCH(); } - TARGET(UNPACK_SEQUENCE) { - PREDICTED(UNPACK_SEQUENCE); - static_assert(INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE == 1, "incorrect cache size"); - PyObject *seq = stack_pointer[-1]; - #line 1057 "Python/bytecodes.c" - #if ENABLE_SPECIALIZATION - _PyUnpackSequenceCache *cache = (_PyUnpackSequenceCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { - next_instr--; - _Py_Specialize_UnpackSequence(seq, next_instr, oparg); - DISPATCH_SAME_OPARG(); - } - STAT_INC(UNPACK_SEQUENCE, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache->counter); - #endif /* ENABLE_SPECIALIZATION */ - PyObject **top = stack_pointer + oparg - 1; - int res = unpack_iterable(tstate, seq, oparg, -1, top); - #line 1462 "Python/generated_cases.c.h" - Py_DECREF(seq); - #line 1070 "Python/bytecodes.c" - if (res == 0) goto pop_1_error; - #line 1466 "Python/generated_cases.c.h" - STACK_SHRINK(1); - STACK_GROW(oparg); + TARGET(END_FOR) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(END_FOR); + PyObject *value; + value = stack_pointer[-1]; + Py_DECREF(value); + stack_pointer += -1; DISPATCH(); } - TARGET(UNPACK_SEQUENCE_TWO_TUPLE) { - PyObject *seq = stack_pointer[-1]; - PyObject **values = stack_pointer - (1); - #line 1074 "Python/bytecodes.c" - DEOPT_IF(!PyTuple_CheckExact(seq), UNPACK_SEQUENCE); - DEOPT_IF(PyTuple_GET_SIZE(seq) != 2, UNPACK_SEQUENCE); - assert(oparg == 2); - STAT_INC(UNPACK_SEQUENCE, hit); - values[0] = Py_NewRef(PyTuple_GET_ITEM(seq, 1)); - values[1] = Py_NewRef(PyTuple_GET_ITEM(seq, 0)); - #line 1483 "Python/generated_cases.c.h" - Py_DECREF(seq); - STACK_SHRINK(1); - STACK_GROW(oparg); + TARGET(END_SEND) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(END_SEND); + PyObject *value; + PyObject *receiver; + value = stack_pointer[-1]; + receiver = stack_pointer[-2]; + Py_DECREF(receiver); + stack_pointer[-2] = value; + stack_pointer += -1; DISPATCH(); } - TARGET(UNPACK_SEQUENCE_TUPLE) { - PyObject *seq = stack_pointer[-1]; - PyObject **values = stack_pointer - (1); - #line 1084 "Python/bytecodes.c" - DEOPT_IF(!PyTuple_CheckExact(seq), UNPACK_SEQUENCE); - DEOPT_IF(PyTuple_GET_SIZE(seq) != oparg, UNPACK_SEQUENCE); - STAT_INC(UNPACK_SEQUENCE, hit); - PyObject **items = _PyTuple_ITEMS(seq); - for (int i = oparg; --i >= 0; ) { - *values++ = Py_NewRef(items[i]); - } - #line 1502 "Python/generated_cases.c.h" - Py_DECREF(seq); - STACK_SHRINK(1); - STACK_GROW(oparg); + TARGET(ENTER_EXECUTOR) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; next_instr += 1; + INSTRUCTION_STATS(ENTER_EXECUTOR); + #ifdef _Py_TIER2 + PyCodeObject *code = _PyFrame_GetCode(frame); + _PyExecutorObject *executor = code->co_executors->executors[oparg & 255]; + assert(executor->vm_data.index == INSTR_OFFSET() - 1); + assert(executor->vm_data.code == code); + assert(executor->vm_data.valid); + assert(tstate->previous_executor == NULL); + /* If the eval breaker is set then stay in tier 1. + * This avoids any potentially infinite loops + * involving _RESUME_CHECK */ + if (_Py_atomic_load_uintptr_relaxed(&tstate->eval_breaker) & _PY_EVAL_EVENTS_MASK) { + opcode = executor->vm_data.opcode; + oparg = (oparg & ~255) | executor->vm_data.oparg; + next_instr = this_instr; + if (_PyOpcode_Caches[_PyOpcode_Deopt[opcode]]) { + PAUSE_ADAPTIVE_COUNTER(this_instr[1].counter); + } + DISPATCH_GOTO(); + } + tstate->previous_executor = Py_None; + Py_INCREF(executor); + GOTO_TIER_TWO(executor); + #else + Py_FatalError("ENTER_EXECUTOR is not supported in this build"); + #endif /* _Py_TIER2 */ DISPATCH(); } - TARGET(UNPACK_SEQUENCE_LIST) { - PyObject *seq = stack_pointer[-1]; - PyObject **values = stack_pointer - (1); - #line 1095 "Python/bytecodes.c" - DEOPT_IF(!PyList_CheckExact(seq), UNPACK_SEQUENCE); - DEOPT_IF(PyList_GET_SIZE(seq) != oparg, UNPACK_SEQUENCE); - STAT_INC(UNPACK_SEQUENCE, hit); - PyObject **items = _PyList_ITEMS(seq); - for (int i = oparg; --i >= 0; ) { - *values++ = Py_NewRef(items[i]); - } - #line 1521 "Python/generated_cases.c.h" - Py_DECREF(seq); - STACK_SHRINK(1); - STACK_GROW(oparg); + TARGET(EXIT_INIT_CHECK) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(EXIT_INIT_CHECK); + PyObject *should_be_none; + should_be_none = stack_pointer[-1]; + assert(STACK_LEVEL() == 2); + if (should_be_none != Py_None) { + PyErr_Format(PyExc_TypeError, + "__init__() should return None, not '%.200s'", + Py_TYPE(should_be_none)->tp_name); + goto error; + } + stack_pointer += -1; DISPATCH(); } - TARGET(UNPACK_EX) { - PyObject *seq = stack_pointer[-1]; - #line 1106 "Python/bytecodes.c" - int totalargs = 1 + (oparg & 0xFF) + (oparg >> 8); - PyObject **top = stack_pointer + totalargs - 1; - int res = unpack_iterable(tstate, seq, oparg & 0xFF, oparg >> 8, top); - #line 1535 "Python/generated_cases.c.h" - Py_DECREF(seq); - #line 1110 "Python/bytecodes.c" - if (res == 0) goto pop_1_error; - #line 1539 "Python/generated_cases.c.h" - STACK_GROW((oparg & 0xFF) + (oparg >> 8)); + TARGET(EXTENDED_ARG) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(EXTENDED_ARG); + assert(oparg); + opcode = next_instr->op.code; + oparg = oparg << 8 | next_instr->op.arg; + PRE_DISPATCH_GOTO(); + DISPATCH_GOTO(); + } + + TARGET(FORMAT_SIMPLE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(FORMAT_SIMPLE); + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + /* If value is a unicode object, then we know the result + * of format(value) is value itself. */ + if (!PyUnicode_CheckExact(value)) { + res = PyObject_Format(value, NULL); + Py_DECREF(value); + if (res == NULL) goto pop_1_error; + } + else { + res = value; + } + stack_pointer[-1] = res; DISPATCH(); } - TARGET(STORE_ATTR) { - PREDICTED(STORE_ATTR); - static_assert(INLINE_CACHE_ENTRIES_STORE_ATTR == 4, "incorrect cache size"); - PyObject *owner = stack_pointer[-1]; - PyObject *v = stack_pointer[-2]; - uint16_t counter = read_u16(&next_instr[0].cache); - #line 1121 "Python/bytecodes.c" - #if ENABLE_SPECIALIZATION - if (ADAPTIVE_COUNTER_IS_ZERO(counter)) { - PyObject *name = GETITEM(frame->f_code->co_names, oparg); - next_instr--; - _Py_Specialize_StoreAttr(owner, next_instr, name); - DISPATCH_SAME_OPARG(); - } - STAT_INC(STORE_ATTR, deferred); - _PyAttrCache *cache = (_PyAttrCache *)next_instr; - DECREMENT_ADAPTIVE_COUNTER(cache->counter); - #else - (void)counter; // Unused. - #endif /* ENABLE_SPECIALIZATION */ - PyObject *name = GETITEM(frame->f_code->co_names, oparg); - int err = PyObject_SetAttr(owner, name, v); - #line 1566 "Python/generated_cases.c.h" - Py_DECREF(v); - Py_DECREF(owner); - #line 1137 "Python/bytecodes.c" - if (err) goto pop_2_error; - #line 1571 "Python/generated_cases.c.h" - STACK_SHRINK(2); - next_instr += 4; + TARGET(FORMAT_WITH_SPEC) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(FORMAT_WITH_SPEC); + PyObject *fmt_spec; + PyObject *value; + PyObject *res; + fmt_spec = stack_pointer[-1]; + value = stack_pointer[-2]; + res = PyObject_Format(value, fmt_spec); + Py_DECREF(value); + Py_DECREF(fmt_spec); + if (res == NULL) goto pop_2_error; + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(DELETE_ATTR) { - PyObject *owner = stack_pointer[-1]; - #line 1141 "Python/bytecodes.c" - PyObject *name = GETITEM(frame->f_code->co_names, oparg); - int err = PyObject_SetAttr(owner, name, (PyObject *)NULL); - #line 1582 "Python/generated_cases.c.h" - Py_DECREF(owner); - #line 1144 "Python/bytecodes.c" - if (err) goto pop_1_error; - #line 1586 "Python/generated_cases.c.h" - STACK_SHRINK(1); + TARGET(FOR_ITER) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(FOR_ITER); + PREDICTED(FOR_ITER); + _Py_CODEUNIT *this_instr = next_instr - 2; + (void)this_instr; + PyObject *iter; + PyObject *next; + // _SPECIALIZE_FOR_ITER + iter = stack_pointer[-1]; + { + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + next_instr = this_instr; + _Py_Specialize_ForIter(iter, next_instr, oparg); + DISPATCH_SAME_OPARG(); + } + STAT_INC(FOR_ITER, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ + } + // _FOR_ITER + { + /* before: [iter]; after: [iter, iter()] *or* [] (and jump over END_FOR.) */ + next = (*Py_TYPE(iter)->tp_iternext)(iter); + if (next == NULL) { + if (_PyErr_Occurred(tstate)) { + if (!_PyErr_ExceptionMatches(tstate, PyExc_StopIteration)) { + goto error; + } + _PyEval_MonitorRaise(tstate, frame, this_instr); + _PyErr_Clear(tstate); + } + /* iterator ended normally */ + assert(next_instr[oparg].op.code == END_FOR || + next_instr[oparg].op.code == INSTRUMENTED_END_FOR); + Py_DECREF(iter); + STACK_SHRINK(1); + /* Jump forward oparg, then skip following END_FOR and POP_TOP instruction */ + JUMPBY(oparg + 2); + DISPATCH(); + } + // Common case: no jump, leave it to the code generator + } + stack_pointer[0] = next; + stack_pointer += 1; DISPATCH(); } - TARGET(STORE_GLOBAL) { - PyObject *v = stack_pointer[-1]; - #line 1148 "Python/bytecodes.c" - PyObject *name = GETITEM(frame->f_code->co_names, oparg); - int err = PyDict_SetItem(GLOBALS(), name, v); - #line 1596 "Python/generated_cases.c.h" - Py_DECREF(v); - #line 1151 "Python/bytecodes.c" - if (err) goto pop_1_error; - #line 1600 "Python/generated_cases.c.h" - STACK_SHRINK(1); + TARGET(FOR_ITER_GEN) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(FOR_ITER_GEN); + static_assert(INLINE_CACHE_ENTRIES_FOR_ITER == 1, "incorrect cache size"); + PyObject *iter; + _PyInterpreterFrame *gen_frame; + _PyInterpreterFrame *new_frame; + /* Skip 1 cache entry */ + // _CHECK_PEP_523 + { + DEOPT_IF(tstate->interp->eval_frame, FOR_ITER); + } + // _FOR_ITER_GEN_FRAME + iter = stack_pointer[-1]; + { + PyGenObject *gen = (PyGenObject *)iter; + DEOPT_IF(Py_TYPE(gen) != &PyGen_Type, FOR_ITER); + DEOPT_IF(gen->gi_frame_state >= FRAME_EXECUTING, FOR_ITER); + STAT_INC(FOR_ITER, hit); + gen_frame = (_PyInterpreterFrame *)gen->gi_iframe; + _PyFrame_StackPush(gen_frame, Py_None); + gen->gi_frame_state = FRAME_EXECUTING; + gen->gi_exc_state.previous_item = tstate->exc_info; + tstate->exc_info = &gen->gi_exc_state; + // oparg is the return offset from the next instruction. + frame->return_offset = (uint16_t)(1 + INLINE_CACHE_ENTRIES_FOR_ITER + oparg); + } + // _PUSH_FRAME + new_frame = gen_frame; + { + // Write it out explicitly because it's subtly different. + // Eventually this should be the only occurrence of this code. + assert(tstate->interp->eval_frame == NULL); + _PyFrame_SetStackPointer(frame, stack_pointer); + new_frame->previous = frame; + CALL_STAT_INC(inlined_py_calls); + frame = tstate->current_frame = new_frame; + tstate->py_recursion_remaining--; + LOAD_SP(); + LOAD_IP(0); + LLTRACE_RESUME_FRAME(); + } DISPATCH(); } - TARGET(DELETE_GLOBAL) { - #line 1155 "Python/bytecodes.c" - PyObject *name = GETITEM(frame->f_code->co_names, oparg); - int err; - err = PyDict_DelItem(GLOBALS(), name); - // Can't use ERROR_IF here. - if (err != 0) { - if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) { - format_exc_check_arg(tstate, PyExc_NameError, - NAME_ERROR_MSG, name); + TARGET(FOR_ITER_LIST) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(FOR_ITER_LIST); + static_assert(INLINE_CACHE_ENTRIES_FOR_ITER == 1, "incorrect cache size"); + PyObject *iter; + PyObject *next; + /* Skip 1 cache entry */ + // _ITER_CHECK_LIST + iter = stack_pointer[-1]; + { + DEOPT_IF(Py_TYPE(iter) != &PyListIter_Type, FOR_ITER); + } + // _ITER_JUMP_LIST + { + _PyListIterObject *it = (_PyListIterObject *)iter; + assert(Py_TYPE(iter) == &PyListIter_Type); + STAT_INC(FOR_ITER, hit); + PyListObject *seq = it->it_seq; + if (seq == NULL || (size_t)it->it_index >= (size_t)PyList_GET_SIZE(seq)) { + it->it_index = -1; + #ifndef Py_GIL_DISABLED + if (seq != NULL) { + it->it_seq = NULL; + Py_DECREF(seq); + } + #endif + Py_DECREF(iter); + STACK_SHRINK(1); + /* Jump forward oparg, then skip following END_FOR and POP_TOP instructions */ + JUMPBY(oparg + 2); + DISPATCH(); } - goto error; } - #line 1618 "Python/generated_cases.c.h" + // _ITER_NEXT_LIST + { + _PyListIterObject *it = (_PyListIterObject *)iter; + assert(Py_TYPE(iter) == &PyListIter_Type); + PyListObject *seq = it->it_seq; + assert(seq); + assert(it->it_index < PyList_GET_SIZE(seq)); + next = Py_NewRef(PyList_GET_ITEM(seq, it->it_index++)); + } + stack_pointer[0] = next; + stack_pointer += 1; DISPATCH(); } - TARGET(LOAD_LOCALS) { - PyObject *locals; - #line 1169 "Python/bytecodes.c" - locals = LOCALS(); - if (locals == NULL) { - _PyErr_SetString(tstate, PyExc_SystemError, - "no locals found"); - if (true) goto error; + TARGET(FOR_ITER_RANGE) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(FOR_ITER_RANGE); + static_assert(INLINE_CACHE_ENTRIES_FOR_ITER == 1, "incorrect cache size"); + PyObject *iter; + PyObject *next; + /* Skip 1 cache entry */ + // _ITER_CHECK_RANGE + iter = stack_pointer[-1]; + { + _PyRangeIterObject *r = (_PyRangeIterObject *)iter; + DEOPT_IF(Py_TYPE(r) != &PyRangeIter_Type, FOR_ITER); } - Py_INCREF(locals); - #line 1632 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = locals; + // _ITER_JUMP_RANGE + { + _PyRangeIterObject *r = (_PyRangeIterObject *)iter; + assert(Py_TYPE(r) == &PyRangeIter_Type); + STAT_INC(FOR_ITER, hit); + if (r->len <= 0) { + STACK_SHRINK(1); + Py_DECREF(r); + // Jump over END_FOR and POP_TOP instructions. + JUMPBY(oparg + 2); + DISPATCH(); + } + } + // _ITER_NEXT_RANGE + { + _PyRangeIterObject *r = (_PyRangeIterObject *)iter; + assert(Py_TYPE(r) == &PyRangeIter_Type); + assert(r->len > 0); + long value = r->start; + r->start = value + r->step; + r->len--; + next = PyLong_FromLong(value); + if (next == NULL) goto error; + } + stack_pointer[0] = next; + stack_pointer += 1; DISPATCH(); } - TARGET(LOAD_FROM_DICT_OR_GLOBALS) { - PyObject *mod_or_class_dict = stack_pointer[-1]; - PyObject *v; - #line 1179 "Python/bytecodes.c" - PyObject *name = GETITEM(frame->f_code->co_names, oparg); - if (PyDict_CheckExact(mod_or_class_dict)) { - v = PyDict_GetItemWithError(mod_or_class_dict, name); - if (v != NULL) { - Py_INCREF(v); - } - else if (_PyErr_Occurred(tstate)) { - goto error; - } + TARGET(FOR_ITER_TUPLE) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(FOR_ITER_TUPLE); + static_assert(INLINE_CACHE_ENTRIES_FOR_ITER == 1, "incorrect cache size"); + PyObject *iter; + PyObject *next; + /* Skip 1 cache entry */ + // _ITER_CHECK_TUPLE + iter = stack_pointer[-1]; + { + DEOPT_IF(Py_TYPE(iter) != &PyTupleIter_Type, FOR_ITER); } - else { - v = PyObject_GetItem(mod_or_class_dict, name); - if (v == NULL) { - if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) { - goto error; + // _ITER_JUMP_TUPLE + { + _PyTupleIterObject *it = (_PyTupleIterObject *)iter; + assert(Py_TYPE(iter) == &PyTupleIter_Type); + STAT_INC(FOR_ITER, hit); + PyTupleObject *seq = it->it_seq; + if (seq == NULL || it->it_index >= PyTuple_GET_SIZE(seq)) { + if (seq != NULL) { + it->it_seq = NULL; + Py_DECREF(seq); } - _PyErr_Clear(tstate); + Py_DECREF(iter); + STACK_SHRINK(1); + /* Jump forward oparg, then skip following END_FOR and POP_TOP instructions */ + JUMPBY(oparg + 2); + DISPATCH(); } } - if (v == NULL) { - if (PyDict_CheckExact(GLOBALS()) - && PyDict_CheckExact(BUILTINS())) - { - v = _PyDict_LoadGlobal((PyDictObject *)GLOBALS(), - (PyDictObject *)BUILTINS(), - name); - if (v == NULL) { - if (!_PyErr_Occurred(tstate)) { - /* _PyDict_LoadGlobal() returns NULL without raising - * an exception if the key doesn't exist */ - format_exc_check_arg(tstate, PyExc_NameError, - NAME_ERROR_MSG, name); - } - Py_DECREF(mod_or_class_dict); - if (true) goto pop_1_error; - } - Py_INCREF(v); - } - else { - /* Slow-path if globals or builtins is not a dict */ - - /* namespace 1: globals */ - v = PyObject_GetItem(GLOBALS(), name); - if (v == NULL) { - if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) goto pop_1_error; - _PyErr_Clear(tstate); + // _ITER_NEXT_TUPLE + { + _PyTupleIterObject *it = (_PyTupleIterObject *)iter; + assert(Py_TYPE(iter) == &PyTupleIter_Type); + PyTupleObject *seq = it->it_seq; + assert(seq); + assert(it->it_index < PyTuple_GET_SIZE(seq)); + next = Py_NewRef(PyTuple_GET_ITEM(seq, it->it_index++)); + } + stack_pointer[0] = next; + stack_pointer += 1; + DISPATCH(); + } - /* namespace 2: builtins */ - v = PyObject_GetItem(BUILTINS(), name); - if (v == NULL) { - if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) { - format_exc_check_arg( - tstate, PyExc_NameError, - NAME_ERROR_MSG, name); - } - Py_DECREF(mod_or_class_dict); - if (true) goto pop_1_error; - } - } - } + TARGET(GET_AITER) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(GET_AITER); + PyObject *obj; + PyObject *iter; + obj = stack_pointer[-1]; + unaryfunc getter = NULL; + PyTypeObject *type = Py_TYPE(obj); + if (type->tp_as_async != NULL) { + getter = type->tp_as_async->am_aiter; + } + if (getter == NULL) { + _PyErr_Format(tstate, PyExc_TypeError, + "'async for' requires an object with " + "__aiter__ method, got %.100s", + type->tp_name); + Py_DECREF(obj); + if (true) goto pop_1_error; + } + iter = (*getter)(obj); + Py_DECREF(obj); + if (iter == NULL) goto pop_1_error; + if (Py_TYPE(iter)->tp_as_async == NULL || + Py_TYPE(iter)->tp_as_async->am_anext == NULL) { + _PyErr_Format(tstate, PyExc_TypeError, + "'async for' received an object from __aiter__ " + "that does not implement __anext__: %.100s", + Py_TYPE(iter)->tp_name); + Py_DECREF(iter); + if (true) goto pop_1_error; } - #line 1703 "Python/generated_cases.c.h" - Py_DECREF(mod_or_class_dict); - stack_pointer[-1] = v; + stack_pointer[-1] = iter; DISPATCH(); } - TARGET(LOAD_NAME) { - PyObject *v; - #line 1244 "Python/bytecodes.c" - PyObject *mod_or_class_dict = LOCALS(); - if (mod_or_class_dict == NULL) { - _PyErr_SetString(tstate, PyExc_SystemError, - "no locals found"); - if (true) goto error; - } - PyObject *name = GETITEM(frame->f_code->co_names, oparg); - if (PyDict_CheckExact(mod_or_class_dict)) { - v = PyDict_GetItemWithError(mod_or_class_dict, name); - if (v != NULL) { - Py_INCREF(v); - } - else if (_PyErr_Occurred(tstate)) { + TARGET(GET_ANEXT) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(GET_ANEXT); + PyObject *aiter; + PyObject *awaitable; + aiter = stack_pointer[-1]; + unaryfunc getter = NULL; + PyObject *next_iter = NULL; + PyTypeObject *type = Py_TYPE(aiter); + if (PyAsyncGen_CheckExact(aiter)) { + awaitable = type->tp_as_async->am_anext(aiter); + if (awaitable == NULL) { goto error; } - } - else { - v = PyObject_GetItem(mod_or_class_dict, name); - if (v == NULL) { - if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) { + } else { + if (type->tp_as_async != NULL){ + getter = type->tp_as_async->am_anext; + } + if (getter != NULL) { + next_iter = (*getter)(aiter); + if (next_iter == NULL) { goto error; } - _PyErr_Clear(tstate); } - } - if (v == NULL) { - v = PyDict_GetItemWithError(GLOBALS(), name); - if (v != NULL) { - Py_INCREF(v); - } - else if (_PyErr_Occurred(tstate)) { + else { + _PyErr_Format(tstate, PyExc_TypeError, + "'async for' requires an iterator with " + "__anext__ method, got %.100s", + type->tp_name); goto error; } - else { - if (PyDict_CheckExact(BUILTINS())) { - v = PyDict_GetItemWithError(BUILTINS(), name); - if (v == NULL) { - if (!_PyErr_Occurred(tstate)) { - format_exc_check_arg( - tstate, PyExc_NameError, - NAME_ERROR_MSG, name); - } - goto error; - } - Py_INCREF(v); - } - else { - v = PyObject_GetItem(BUILTINS(), name); - if (v == NULL) { - if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) { - format_exc_check_arg( - tstate, PyExc_NameError, - NAME_ERROR_MSG, name); - } - goto error; - } - } + awaitable = _PyCoro_GetAwaitableIter(next_iter); + if (awaitable == NULL) { + _PyErr_FormatFromCause( + PyExc_TypeError, + "'async for' received an invalid object " + "from __anext__: %.100s", + Py_TYPE(next_iter)->tp_name); + Py_DECREF(next_iter); + goto error; + } else { + Py_DECREF(next_iter); } } - #line 1771 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = v; + stack_pointer[0] = awaitable; + stack_pointer += 1; DISPATCH(); } - TARGET(LOAD_GLOBAL) { - PREDICTED(LOAD_GLOBAL); - static_assert(INLINE_CACHE_ENTRIES_LOAD_GLOBAL == 4, "incorrect cache size"); - PyObject *null = NULL; - PyObject *v; - #line 1312 "Python/bytecodes.c" - #if ENABLE_SPECIALIZATION - _PyLoadGlobalCache *cache = (_PyLoadGlobalCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { - PyObject *name = GETITEM(frame->f_code->co_names, oparg>>1); - next_instr--; - _Py_Specialize_LoadGlobal(GLOBALS(), BUILTINS(), next_instr, name); - DISPATCH_SAME_OPARG(); - } - STAT_INC(LOAD_GLOBAL, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache->counter); - #endif /* ENABLE_SPECIALIZATION */ - PyObject *name = GETITEM(frame->f_code->co_names, oparg>>1); - if (PyDict_CheckExact(GLOBALS()) - && PyDict_CheckExact(BUILTINS())) - { - v = _PyDict_LoadGlobal((PyDictObject *)GLOBALS(), - (PyDictObject *)BUILTINS(), - name); - if (v == NULL) { - if (!_PyErr_Occurred(tstate)) { - /* _PyDict_LoadGlobal() returns NULL without raising - * an exception if the key doesn't exist */ - format_exc_check_arg(tstate, PyExc_NameError, - NAME_ERROR_MSG, name); - } - if (true) goto error; + TARGET(GET_AWAITABLE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(GET_AWAITABLE); + PyObject *iterable; + PyObject *iter; + iterable = stack_pointer[-1]; + iter = _PyCoro_GetAwaitableIter(iterable); + if (iter == NULL) { + _PyEval_FormatAwaitableError(tstate, Py_TYPE(iterable), oparg); + } + Py_DECREF(iterable); + if (iter != NULL && PyCoro_CheckExact(iter)) { + PyObject *yf = _PyGen_yf((PyGenObject*)iter); + if (yf != NULL) { + /* `iter` is a coroutine object that is being + awaited, `yf` is a pointer to the current awaitable + being awaited on. */ + Py_DECREF(yf); + Py_CLEAR(iter); + _PyErr_SetString(tstate, PyExc_RuntimeError, + "coroutine is being awaited already"); + /* The code below jumps to `error` if `iter` is NULL. */ } - Py_INCREF(v); } - else { - /* Slow-path if globals or builtins is not a dict */ + if (iter == NULL) goto pop_1_error; + stack_pointer[-1] = iter; + DISPATCH(); + } - /* namespace 1: globals */ - v = PyObject_GetItem(GLOBALS(), name); - if (v == NULL) { - if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) goto error; - _PyErr_Clear(tstate); + TARGET(GET_ITER) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(GET_ITER); + PyObject *iterable; + PyObject *iter; + iterable = stack_pointer[-1]; + /* before: [obj]; after [getiter(obj)] */ + iter = PyObject_GetIter(iterable); + Py_DECREF(iterable); + if (iter == NULL) goto pop_1_error; + stack_pointer[-1] = iter; + DISPATCH(); + } - /* namespace 2: builtins */ - v = PyObject_GetItem(BUILTINS(), name); - if (v == NULL) { - if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) { - format_exc_check_arg( - tstate, PyExc_NameError, - NAME_ERROR_MSG, name); - } - if (true) goto error; - } + TARGET(GET_LEN) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(GET_LEN); + PyObject *obj; + PyObject *len_o; + obj = stack_pointer[-1]; + // PUSH(len(TOS)) + Py_ssize_t len_i = PyObject_Length(obj); + if (len_i < 0) goto error; + len_o = PyLong_FromSsize_t(len_i); + if (len_o == NULL) goto error; + stack_pointer[0] = len_o; + stack_pointer += 1; + DISPATCH(); + } + + TARGET(GET_YIELD_FROM_ITER) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(GET_YIELD_FROM_ITER); + PyObject *iterable; + PyObject *iter; + iterable = stack_pointer[-1]; + /* before: [obj]; after [getiter(obj)] */ + if (PyCoro_CheckExact(iterable)) { + /* `iterable` is a coroutine */ + if (!(_PyFrame_GetCode(frame)->co_flags & (CO_COROUTINE | CO_ITERABLE_COROUTINE))) { + /* and it is used in a 'yield from' expression of a + regular generator. */ + _PyErr_SetString(tstate, PyExc_TypeError, + "cannot 'yield from' a coroutine object " + "in a non-coroutine generator"); + goto error; } + iter = iterable; } - null = NULL; - #line 1834 "Python/generated_cases.c.h" - STACK_GROW(1); - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = v; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = null; } - next_instr += 4; + else if (PyGen_CheckExact(iterable)) { + iter = iterable; + } + else { + /* `iterable` is not a generator. */ + iter = PyObject_GetIter(iterable); + if (iter == NULL) { + goto error; + } + Py_DECREF(iterable); + } + stack_pointer[-1] = iter; DISPATCH(); } - TARGET(LOAD_GLOBAL_MODULE) { - PyObject *null = NULL; + TARGET(IMPORT_FROM) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(IMPORT_FROM); + PyObject *from; PyObject *res; - uint16_t index = read_u16(&next_instr[1].cache); - uint16_t version = read_u16(&next_instr[2].cache); - #line 1366 "Python/bytecodes.c" - DEOPT_IF(!PyDict_CheckExact(GLOBALS()), LOAD_GLOBAL); - PyDictObject *dict = (PyDictObject *)GLOBALS(); - DEOPT_IF(dict->ma_keys->dk_version != version, LOAD_GLOBAL); - assert(DK_IS_UNICODE(dict->ma_keys)); - PyDictUnicodeEntry *entries = DK_UNICODE_ENTRIES(dict->ma_keys); - res = entries[index].me_value; - DEOPT_IF(res == NULL, LOAD_GLOBAL); - Py_INCREF(res); - STAT_INC(LOAD_GLOBAL, hit); - null = NULL; - #line 1859 "Python/generated_cases.c.h" - STACK_GROW(1); - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = null; } - next_instr += 4; + from = stack_pointer[-1]; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + res = import_from(tstate, from, name); + if (res == NULL) goto error; + stack_pointer[0] = res; + stack_pointer += 1; DISPATCH(); } - TARGET(LOAD_GLOBAL_BUILTIN) { - PyObject *null = NULL; + TARGET(IMPORT_NAME) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(IMPORT_NAME); + PyObject *fromlist; + PyObject *level; PyObject *res; - uint16_t index = read_u16(&next_instr[1].cache); - uint16_t mod_version = read_u16(&next_instr[2].cache); - uint16_t bltn_version = read_u16(&next_instr[3].cache); - #line 1379 "Python/bytecodes.c" - DEOPT_IF(!PyDict_CheckExact(GLOBALS()), LOAD_GLOBAL); - DEOPT_IF(!PyDict_CheckExact(BUILTINS()), LOAD_GLOBAL); - PyDictObject *mdict = (PyDictObject *)GLOBALS(); - PyDictObject *bdict = (PyDictObject *)BUILTINS(); - assert(opcode == LOAD_GLOBAL_BUILTIN); - DEOPT_IF(mdict->ma_keys->dk_version != mod_version, LOAD_GLOBAL); - DEOPT_IF(bdict->ma_keys->dk_version != bltn_version, LOAD_GLOBAL); - assert(DK_IS_UNICODE(bdict->ma_keys)); - PyDictUnicodeEntry *entries = DK_UNICODE_ENTRIES(bdict->ma_keys); - res = entries[index].me_value; - DEOPT_IF(res == NULL, LOAD_GLOBAL); - Py_INCREF(res); - STAT_INC(LOAD_GLOBAL, hit); - null = NULL; - #line 1889 "Python/generated_cases.c.h" - STACK_GROW(1); - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = null; } - next_instr += 4; + fromlist = stack_pointer[-1]; + level = stack_pointer[-2]; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + res = import_name(tstate, frame, name, fromlist, level); + Py_DECREF(level); + Py_DECREF(fromlist); + if (res == NULL) goto pop_2_error; + stack_pointer[-2] = res; + stack_pointer += -1; DISPATCH(); } - TARGET(DELETE_FAST) { - #line 1396 "Python/bytecodes.c" - PyObject *v = GETLOCAL(oparg); - if (v == NULL) goto unbound_local_error; - SETLOCAL(oparg, NULL); - #line 1903 "Python/generated_cases.c.h" - DISPATCH(); + TARGET(INSTRUMENTED_CALL) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 4; + INSTRUCTION_STATS(INSTRUMENTED_CALL); + /* Skip 3 cache entries */ + int is_meth = PEEK(oparg + 1) != NULL; + int total_args = oparg + is_meth; + PyObject *function = PEEK(oparg + 2); + PyObject *arg = total_args == 0 ? + &_PyInstrumentation_MISSING : PEEK(total_args); + int err = _Py_call_instrumentation_2args( + tstate, PY_MONITORING_EVENT_CALL, + frame, this_instr, function, arg); + if (err) goto error; + PAUSE_ADAPTIVE_COUNTER(this_instr[1].counter); + GO_TO_INSTRUCTION(CALL); } - TARGET(MAKE_CELL) { - #line 1402 "Python/bytecodes.c" - // "initial" is probably NULL but not if it's an arg (or set - // via PyFrame_LocalsToFast() before MAKE_CELL has run). - PyObject *initial = GETLOCAL(oparg); - PyObject *cell = PyCell_New(initial); - if (cell == NULL) { - goto resume_with_error; - } - SETLOCAL(oparg, cell); - #line 1917 "Python/generated_cases.c.h" - DISPATCH(); + TARGET(INSTRUMENTED_CALL_FUNCTION_EX) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(INSTRUMENTED_CALL_FUNCTION_EX); + GO_TO_INSTRUCTION(CALL_FUNCTION_EX); } - TARGET(DELETE_DEREF) { - #line 1413 "Python/bytecodes.c" - PyObject *cell = GETLOCAL(oparg); - PyObject *oldobj = PyCell_GET(cell); - // Can't use ERROR_IF here. - // Fortunately we don't need its superpower. - if (oldobj == NULL) { - format_exc_unbound(tstate, frame->f_code, oparg); - goto error; - } - PyCell_SET(cell, NULL); - Py_DECREF(oldobj); - #line 1933 "Python/generated_cases.c.h" - DISPATCH(); + TARGET(INSTRUMENTED_CALL_KW) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(INSTRUMENTED_CALL_KW); + int is_meth = PEEK(oparg + 2) != NULL; + int total_args = oparg + is_meth; + PyObject *function = PEEK(oparg + 3); + PyObject *arg = total_args == 0 ? &_PyInstrumentation_MISSING + : PEEK(total_args + 1); + int err = _Py_call_instrumentation_2args( + tstate, PY_MONITORING_EVENT_CALL, + frame, this_instr, function, arg); + if (err) goto error; + GO_TO_INSTRUCTION(CALL_KW); } - TARGET(LOAD_FROM_DICT_OR_DEREF) { - PyObject *class_dict = stack_pointer[-1]; + TARGET(INSTRUMENTED_END_FOR) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(INSTRUMENTED_END_FOR); PyObject *value; - #line 1426 "Python/bytecodes.c" - PyObject *name; - assert(class_dict); - assert(oparg >= 0 && oparg < frame->f_code->co_nlocalsplus); - name = PyTuple_GET_ITEM(frame->f_code->co_localsplusnames, oparg); - if (PyDict_CheckExact(class_dict)) { - value = PyDict_GetItemWithError(class_dict, name); - if (value != NULL) { - Py_INCREF(value); - } - else if (_PyErr_Occurred(tstate)) { - goto error; - } - } - else { - value = PyObject_GetItem(class_dict, name); - if (value == NULL) { - if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) { - goto error; - } - _PyErr_Clear(tstate); - } - } - if (!value) { - PyObject *cell = GETLOCAL(oparg); - value = PyCell_GET(cell); - if (value == NULL) { - format_exc_unbound(tstate, frame->f_code, oparg); + PyObject *receiver; + value = stack_pointer[-1]; + receiver = stack_pointer[-2]; + /* Need to create a fake StopIteration error here, + * to conform to PEP 380 */ + if (PyGen_Check(receiver)) { + if (monitor_stop_iteration(tstate, frame, this_instr, value)) { goto error; } - Py_INCREF(value); } - Py_DECREF(class_dict); - #line 1973 "Python/generated_cases.c.h" - stack_pointer[-1] = value; + Py_DECREF(value); + stack_pointer += -1; DISPATCH(); } - TARGET(LOAD_DEREF) { + TARGET(INSTRUMENTED_END_SEND) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(INSTRUMENTED_END_SEND); PyObject *value; - #line 1461 "Python/bytecodes.c" - PyObject *cell = GETLOCAL(oparg); - value = PyCell_GET(cell); - if (value == NULL) { - format_exc_unbound(tstate, frame->f_code, oparg); - if (true) goto error; + PyObject *receiver; + value = stack_pointer[-1]; + receiver = stack_pointer[-2]; + if (PyGen_Check(receiver) || PyCoro_CheckExact(receiver)) { + if (monitor_stop_iteration(tstate, frame, this_instr, value)) { + goto error; + } } - Py_INCREF(value); - #line 1988 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = value; + Py_DECREF(receiver); + stack_pointer[-2] = value; + stack_pointer += -1; DISPATCH(); } - TARGET(STORE_DEREF) { - PyObject *v = stack_pointer[-1]; - #line 1471 "Python/bytecodes.c" - PyObject *cell = GETLOCAL(oparg); - PyObject *oldobj = PyCell_GET(cell); - PyCell_SET(cell, v); - Py_XDECREF(oldobj); - #line 2001 "Python/generated_cases.c.h" - STACK_SHRINK(1); + TARGET(INSTRUMENTED_FOR_ITER) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 2; + INSTRUCTION_STATS(INSTRUMENTED_FOR_ITER); + /* Skip 1 cache entry */ + _Py_CODEUNIT *target; + PyObject *iter = TOP(); + PyObject *next = (*Py_TYPE(iter)->tp_iternext)(iter); + if (next != NULL) { + PUSH(next); + target = next_instr; + } + else { + if (_PyErr_Occurred(tstate)) { + if (!_PyErr_ExceptionMatches(tstate, PyExc_StopIteration)) { + goto error; + } + _PyEval_MonitorRaise(tstate, frame, this_instr); + _PyErr_Clear(tstate); + } + /* iterator ended normally */ + assert(next_instr[oparg].op.code == END_FOR || + next_instr[oparg].op.code == INSTRUMENTED_END_FOR); + STACK_SHRINK(1); + Py_DECREF(iter); + /* Skip END_FOR and POP_TOP */ + target = next_instr + oparg + 2; + } + INSTRUMENTED_JUMP(this_instr, target, PY_MONITORING_EVENT_BRANCH); DISPATCH(); } - TARGET(COPY_FREE_VARS) { - #line 1478 "Python/bytecodes.c" - /* Copy closure variables to free variables */ - PyCodeObject *co = frame->f_code; - assert(PyFunction_Check(frame->f_funcobj)); - PyObject *closure = ((PyFunctionObject *)frame->f_funcobj)->func_closure; - assert(oparg == co->co_nfreevars); - int offset = co->co_nlocalsplus - oparg; - for (int i = 0; i < oparg; ++i) { - PyObject *o = PyTuple_GET_ITEM(closure, i); - frame->localsplus[offset + i] = Py_NewRef(o); + TARGET(INSTRUMENTED_INSTRUCTION) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(INSTRUMENTED_INSTRUCTION); + int next_opcode = _Py_call_instrumentation_instruction( + tstate, frame, this_instr); + if (next_opcode < 0) goto error; + next_instr = this_instr; + if (_PyOpcode_Caches[next_opcode]) { + PAUSE_ADAPTIVE_COUNTER(next_instr[1].counter); } - #line 2018 "Python/generated_cases.c.h" - DISPATCH(); + assert(next_opcode > 0 && next_opcode < 256); + opcode = next_opcode; + DISPATCH_GOTO(); } - TARGET(BUILD_STRING) { - PyObject **pieces = (stack_pointer - oparg); - PyObject *str; - #line 1491 "Python/bytecodes.c" - str = _PyUnicode_JoinArray(&_Py_STR(empty), pieces, oparg); - #line 2027 "Python/generated_cases.c.h" - for (int _i = oparg; --_i >= 0;) { - Py_DECREF(pieces[_i]); - } - #line 1493 "Python/bytecodes.c" - if (str == NULL) { STACK_SHRINK(oparg); goto error; } - #line 2033 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_GROW(1); - stack_pointer[-1] = str; + TARGET(INSTRUMENTED_JUMP_BACKWARD) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 2; + INSTRUCTION_STATS(INSTRUMENTED_JUMP_BACKWARD); + /* Skip 1 cache entry */ + CHECK_EVAL_BREAKER(); + INSTRUMENTED_JUMP(this_instr, next_instr - oparg, PY_MONITORING_EVENT_JUMP); DISPATCH(); } - TARGET(BUILD_TUPLE) { - PyObject **values = (stack_pointer - oparg); - PyObject *tup; - #line 1497 "Python/bytecodes.c" - tup = _PyTuple_FromArraySteal(values, oparg); - if (tup == NULL) { STACK_SHRINK(oparg); goto error; } - #line 2046 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_GROW(1); - stack_pointer[-1] = tup; + TARGET(INSTRUMENTED_JUMP_FORWARD) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(INSTRUMENTED_JUMP_FORWARD); + INSTRUMENTED_JUMP(this_instr, next_instr + oparg, PY_MONITORING_EVENT_JUMP); DISPATCH(); } - TARGET(BUILD_LIST) { - PyObject **values = (stack_pointer - oparg); - PyObject *list; - #line 1502 "Python/bytecodes.c" - list = _PyList_FromArraySteal(values, oparg); - if (list == NULL) { STACK_SHRINK(oparg); goto error; } - #line 2059 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_GROW(1); - stack_pointer[-1] = list; - DISPATCH(); + TARGET(INSTRUMENTED_LOAD_SUPER_ATTR) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 2; + INSTRUCTION_STATS(INSTRUMENTED_LOAD_SUPER_ATTR); + /* Skip 1 cache entry */ + // cancel out the decrement that will happen in LOAD_SUPER_ATTR; we + // don't want to specialize instrumented instructions + PAUSE_ADAPTIVE_COUNTER(this_instr[1].counter); + GO_TO_INSTRUCTION(LOAD_SUPER_ATTR); } - TARGET(LIST_EXTEND) { - PyObject *iterable = stack_pointer[-1]; - PyObject *list = stack_pointer[-(2 + (oparg-1))]; - #line 1507 "Python/bytecodes.c" - PyObject *none_val = _PyList_Extend((PyListObject *)list, iterable); - if (none_val == NULL) { - if (_PyErr_ExceptionMatches(tstate, PyExc_TypeError) && - (Py_TYPE(iterable)->tp_iter == NULL && !PySequence_Check(iterable))) - { - _PyErr_Clear(tstate); - _PyErr_Format(tstate, PyExc_TypeError, - "Value after * must be an iterable, not %.200s", - Py_TYPE(iterable)->tp_name); - } - #line 2080 "Python/generated_cases.c.h" - Py_DECREF(iterable); - #line 1518 "Python/bytecodes.c" - if (true) goto pop_1_error; - } - assert(Py_IsNone(none_val)); - #line 2086 "Python/generated_cases.c.h" - Py_DECREF(iterable); - STACK_SHRINK(1); + TARGET(INSTRUMENTED_POP_JUMP_IF_FALSE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 2; + INSTRUCTION_STATS(INSTRUMENTED_POP_JUMP_IF_FALSE); + /* Skip 1 cache entry */ + PyObject *cond = POP(); + assert(PyBool_Check(cond)); + int flag = Py_IsFalse(cond); + int offset = flag * oparg; + #if ENABLE_SPECIALIZATION + this_instr[1].cache = (this_instr[1].cache << 1) | flag; + #endif + INSTRUMENTED_JUMP(this_instr, next_instr + offset, PY_MONITORING_EVENT_BRANCH); DISPATCH(); } - TARGET(SET_UPDATE) { - PyObject *iterable = stack_pointer[-1]; - PyObject *set = stack_pointer[-(2 + (oparg-1))]; - #line 1525 "Python/bytecodes.c" - int err = _PySet_Update(set, iterable); - #line 2097 "Python/generated_cases.c.h" - Py_DECREF(iterable); - #line 1527 "Python/bytecodes.c" - if (err < 0) goto pop_1_error; - #line 2101 "Python/generated_cases.c.h" - STACK_SHRINK(1); + TARGET(INSTRUMENTED_POP_JUMP_IF_NONE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 2; + INSTRUCTION_STATS(INSTRUMENTED_POP_JUMP_IF_NONE); + /* Skip 1 cache entry */ + PyObject *value = POP(); + int flag = Py_IsNone(value); + int offset; + if (flag) { + offset = oparg; + } + else { + Py_DECREF(value); + offset = 0; + } + #if ENABLE_SPECIALIZATION + this_instr[1].cache = (this_instr[1].cache << 1) | flag; + #endif + INSTRUMENTED_JUMP(this_instr, next_instr + offset, PY_MONITORING_EVENT_BRANCH); DISPATCH(); } - TARGET(BUILD_SET) { - PyObject **values = (stack_pointer - oparg); - PyObject *set; - #line 1531 "Python/bytecodes.c" - set = PySet_New(NULL); - if (set == NULL) - goto error; - int err = 0; - for (int i = 0; i < oparg; i++) { - PyObject *item = values[i]; - if (err == 0) - err = PySet_Add(set, item); - Py_DECREF(item); + TARGET(INSTRUMENTED_POP_JUMP_IF_NOT_NONE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 2; + INSTRUCTION_STATS(INSTRUMENTED_POP_JUMP_IF_NOT_NONE); + /* Skip 1 cache entry */ + PyObject *value = POP(); + int offset; + int nflag = Py_IsNone(value); + if (nflag) { + offset = 0; } - if (err != 0) { - Py_DECREF(set); - if (true) { STACK_SHRINK(oparg); goto error; } + else { + Py_DECREF(value); + offset = oparg; } - #line 2124 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_GROW(1); - stack_pointer[-1] = set; + #if ENABLE_SPECIALIZATION + this_instr[1].cache = (this_instr[1].cache << 1) | !nflag; + #endif + INSTRUMENTED_JUMP(this_instr, next_instr + offset, PY_MONITORING_EVENT_BRANCH); DISPATCH(); } - TARGET(BUILD_MAP) { - PyObject **values = (stack_pointer - oparg*2); - PyObject *map; - #line 1548 "Python/bytecodes.c" - map = _PyDict_FromItems( - values, 2, - values+1, 2, - oparg); - #line 2139 "Python/generated_cases.c.h" - for (int _i = oparg*2; --_i >= 0;) { - Py_DECREF(values[_i]); - } - #line 1553 "Python/bytecodes.c" - if (map == NULL) { STACK_SHRINK(oparg*2); goto error; } - #line 2145 "Python/generated_cases.c.h" - STACK_SHRINK(oparg*2); - STACK_GROW(1); - stack_pointer[-1] = map; + TARGET(INSTRUMENTED_POP_JUMP_IF_TRUE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 2; + INSTRUCTION_STATS(INSTRUMENTED_POP_JUMP_IF_TRUE); + /* Skip 1 cache entry */ + PyObject *cond = POP(); + assert(PyBool_Check(cond)); + int flag = Py_IsTrue(cond); + int offset = flag * oparg; + #if ENABLE_SPECIALIZATION + this_instr[1].cache = (this_instr[1].cache << 1) | flag; + #endif + INSTRUMENTED_JUMP(this_instr, next_instr + offset, PY_MONITORING_EVENT_BRANCH); DISPATCH(); } - TARGET(SETUP_ANNOTATIONS) { - #line 1557 "Python/bytecodes.c" - int err; - PyObject *ann_dict; - if (LOCALS() == NULL) { - _PyErr_Format(tstate, PyExc_SystemError, - "no locals found when setting up annotations"); - if (true) goto error; - } - /* check if __annotations__ in locals()... */ - if (PyDict_CheckExact(LOCALS())) { - ann_dict = _PyDict_GetItemWithError(LOCALS(), - &_Py_ID(__annotations__)); - if (ann_dict == NULL) { - if (_PyErr_Occurred(tstate)) goto error; - /* ...if not, create a new one */ - ann_dict = PyDict_New(); - if (ann_dict == NULL) goto error; - err = PyDict_SetItem(LOCALS(), &_Py_ID(__annotations__), - ann_dict); - Py_DECREF(ann_dict); - if (err) goto error; + TARGET(INSTRUMENTED_RESUME) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(INSTRUMENTED_RESUME); + uintptr_t global_version = _Py_atomic_load_uintptr_relaxed(&tstate->eval_breaker) & ~_PY_EVAL_EVENTS_MASK; + uintptr_t code_version = FT_ATOMIC_LOAD_UINTPTR_ACQUIRE(_PyFrame_GetCode(frame)->_co_instrumentation_version); + if (code_version != global_version && tstate->tracing == 0) { + if (_Py_Instrument(_PyFrame_GetCode(frame), tstate->interp)) { + goto error; } + next_instr = this_instr; } else { - /* do the same if locals() is not a dict */ - ann_dict = PyObject_GetItem(LOCALS(), &_Py_ID(__annotations__)); - if (ann_dict == NULL) { - if (!_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) goto error; - _PyErr_Clear(tstate); - ann_dict = PyDict_New(); - if (ann_dict == NULL) goto error; - err = PyObject_SetItem(LOCALS(), &_Py_ID(__annotations__), - ann_dict); - Py_DECREF(ann_dict); - if (err) goto error; + if ((oparg & RESUME_OPARG_LOCATION_MASK) < RESUME_AFTER_YIELD_FROM) { + CHECK_EVAL_BREAKER(); } - else { - Py_DECREF(ann_dict); + _PyFrame_SetStackPointer(frame, stack_pointer); + int err = _Py_call_instrumentation( + tstate, oparg > 0, frame, this_instr); + stack_pointer = _PyFrame_GetStackPointer(frame); + if (err) goto error; + if (frame->instr_ptr != this_instr) { + /* Instrumentation has jumped */ + next_instr = frame->instr_ptr; + DISPATCH(); } } - #line 2193 "Python/generated_cases.c.h" DISPATCH(); } - TARGET(BUILD_CONST_KEY_MAP) { - PyObject *keys = stack_pointer[-1]; - PyObject **values = (stack_pointer - (1 + oparg)); - PyObject *map; - #line 1599 "Python/bytecodes.c" - if (!PyTuple_CheckExact(keys) || - PyTuple_GET_SIZE(keys) != (Py_ssize_t)oparg) { - _PyErr_SetString(tstate, PyExc_SystemError, - "bad BUILD_CONST_KEY_MAP keys argument"); - goto error; // Pop the keys and values. - } - map = _PyDict_FromItems( - &PyTuple_GET_ITEM(keys, 0), 1, - values, 1, oparg); - #line 2211 "Python/generated_cases.c.h" - for (int _i = oparg; --_i >= 0;) { - Py_DECREF(values[_i]); - } - Py_DECREF(keys); - #line 1609 "Python/bytecodes.c" - if (map == NULL) { STACK_SHRINK(oparg); goto pop_1_error; } - #line 2218 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - stack_pointer[-1] = map; - DISPATCH(); + TARGET(INSTRUMENTED_RETURN_CONST) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(INSTRUMENTED_RETURN_CONST); + PyObject *retval = GETITEM(FRAME_CO_CONSTS, oparg); + int err = _Py_call_instrumentation_arg( + tstate, PY_MONITORING_EVENT_PY_RETURN, + frame, this_instr, retval); + if (err) goto error; + Py_INCREF(retval); + assert(EMPTY()); + _PyFrame_SetStackPointer(frame, stack_pointer); + _Py_LeaveRecursiveCallPy(tstate); + assert(frame != &entry_frame); + // GH-99729: We need to unlink the frame *before* clearing it: + _PyInterpreterFrame *dying = frame; + frame = tstate->current_frame = dying->previous; + _PyEval_FrameClearAndPop(tstate, dying); + _PyFrame_StackPush(frame, retval); + LOAD_IP(frame->return_offset); + goto resume_frame; } - TARGET(DICT_UPDATE) { - PyObject *update = stack_pointer[-1]; - #line 1613 "Python/bytecodes.c" - PyObject *dict = PEEK(oparg + 1); // update is still on the stack - if (PyDict_Update(dict, update) < 0) { - if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) { - _PyErr_Format(tstate, PyExc_TypeError, - "'%.200s' object is not a mapping", - Py_TYPE(update)->tp_name); - } - #line 2234 "Python/generated_cases.c.h" - Py_DECREF(update); - #line 1621 "Python/bytecodes.c" - if (true) goto pop_1_error; - } - #line 2239 "Python/generated_cases.c.h" - Py_DECREF(update); + TARGET(INSTRUMENTED_RETURN_VALUE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(INSTRUMENTED_RETURN_VALUE); + PyObject *retval; + retval = stack_pointer[-1]; + int err = _Py_call_instrumentation_arg( + tstate, PY_MONITORING_EVENT_PY_RETURN, + frame, this_instr, retval); + if (err) goto error; STACK_SHRINK(1); - DISPATCH(); + assert(EMPTY()); + _PyFrame_SetStackPointer(frame, stack_pointer); + _Py_LeaveRecursiveCallPy(tstate); + assert(frame != &entry_frame); + // GH-99729: We need to unlink the frame *before* clearing it: + _PyInterpreterFrame *dying = frame; + frame = tstate->current_frame = dying->previous; + _PyEval_FrameClearAndPop(tstate, dying); + _PyFrame_StackPush(frame, retval); + LOAD_IP(frame->return_offset); + goto resume_frame; } - TARGET(DICT_MERGE) { - PyObject *update = stack_pointer[-1]; - #line 1627 "Python/bytecodes.c" - PyObject *dict = PEEK(oparg + 1); // update is still on the stack - - if (_PyDict_MergeEx(dict, update, 2) < 0) { - format_kwargs_error(tstate, PEEK(3 + oparg), update); - #line 2252 "Python/generated_cases.c.h" - Py_DECREF(update); - #line 1632 "Python/bytecodes.c" - if (true) goto pop_1_error; - } - #line 2257 "Python/generated_cases.c.h" - Py_DECREF(update); - STACK_SHRINK(1); - PREDICT(CALL_FUNCTION_EX); - DISPATCH(); + TARGET(INSTRUMENTED_YIELD_VALUE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(INSTRUMENTED_YIELD_VALUE); + PyObject *retval; + retval = stack_pointer[-1]; + assert(frame != &entry_frame); + frame->instr_ptr = next_instr; + PyGenObject *gen = _PyFrame_GetGenerator(frame); + assert(FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1); + assert(oparg == 0 || oparg == 1); + gen->gi_frame_state = FRAME_SUSPENDED + oparg; + _PyFrame_SetStackPointer(frame, stack_pointer - 1); + int err = _Py_call_instrumentation_arg( + tstate, PY_MONITORING_EVENT_PY_YIELD, + frame, this_instr, retval); + if (err) goto error; + tstate->exc_info = gen->gi_exc_state.previous_item; + gen->gi_exc_state.previous_item = NULL; + _Py_LeaveRecursiveCallPy(tstate); + _PyInterpreterFrame *gen_frame = frame; + frame = tstate->current_frame = frame->previous; + gen_frame->previous = NULL; + _PyFrame_StackPush(frame, retval); + /* We don't know which of these is relevant here, so keep them equal */ + assert(INLINE_CACHE_ENTRIES_SEND == INLINE_CACHE_ENTRIES_FOR_ITER); + LOAD_IP(1 + INLINE_CACHE_ENTRIES_SEND); + goto resume_frame; } - TARGET(MAP_ADD) { - PyObject *value = stack_pointer[-1]; - PyObject *key = stack_pointer[-2]; - #line 1639 "Python/bytecodes.c" - PyObject *dict = PEEK(oparg + 2); // key, value are still on the stack - assert(PyDict_CheckExact(dict)); - /* dict[key] = value */ - // Do not DECREF INPUTS because the function steals the references - if (_PyDict_SetItem_Take2((PyDictObject *)dict, key, value) != 0) goto pop_2_error; - #line 2273 "Python/generated_cases.c.h" - STACK_SHRINK(2); - PREDICT(JUMP_BACKWARD); - DISPATCH(); + TARGET(INTERPRETER_EXIT) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(INTERPRETER_EXIT); + PyObject *retval; + retval = stack_pointer[-1]; + assert(frame == &entry_frame); + assert(_PyFrame_IsIncomplete(frame)); + /* Restore previous frame and return. */ + tstate->current_frame = frame->previous; + assert(!_PyErr_Occurred(tstate)); + tstate->c_recursion_remaining += PY_EVAL_C_STACK_UNITS; + return retval; } - TARGET(INSTRUMENTED_LOAD_SUPER_ATTR) { - #line 1648 "Python/bytecodes.c" - _PySuperAttrCache *cache = (_PySuperAttrCache *)next_instr; - // cancel out the decrement that will happen in LOAD_SUPER_ATTR; we - // don't want to specialize instrumented instructions - INCREMENT_ADAPTIVE_COUNTER(cache->counter); - GO_TO_INSTRUCTION(LOAD_SUPER_ATTR); - #line 2286 "Python/generated_cases.c.h" + TARGET(IS_OP) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(IS_OP); + PyObject *right; + PyObject *left; + PyObject *b; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + int res = Py_Is(left, right) ^ oparg; + Py_DECREF(left); + Py_DECREF(right); + b = res ? Py_True : Py_False; + stack_pointer[-2] = b; + stack_pointer += -1; + DISPATCH(); } - TARGET(LOAD_SUPER_ATTR) { - PREDICTED(LOAD_SUPER_ATTR); - static_assert(INLINE_CACHE_ENTRIES_LOAD_SUPER_ATTR == 1, "incorrect cache size"); - PyObject *self = stack_pointer[-1]; - PyObject *class = stack_pointer[-2]; - PyObject *global_super = stack_pointer[-3]; - PyObject *res2 = NULL; - PyObject *res; - #line 1662 "Python/bytecodes.c" - PyObject *name = GETITEM(frame->f_code->co_names, oparg >> 2); - int load_method = oparg & 1; + TARGET(JUMP_BACKWARD) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 2; + INSTRUCTION_STATS(JUMP_BACKWARD); + /* Skip 1 cache entry */ + CHECK_EVAL_BREAKER(); + assert(oparg <= INSTR_OFFSET()); + JUMPBY(-oparg); + #ifdef _Py_TIER2 #if ENABLE_SPECIALIZATION - _PySuperAttrCache *cache = (_PySuperAttrCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { - next_instr--; - _Py_Specialize_LoadSuperAttr(global_super, class, next_instr, load_method); - DISPATCH_SAME_OPARG(); - } - STAT_INC(LOAD_SUPER_ATTR, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache->counter); - #endif /* ENABLE_SPECIALIZATION */ - - if (opcode == INSTRUMENTED_LOAD_SUPER_ATTR) { - PyObject *arg = oparg & 2 ? class : &_PyInstrumentation_MISSING; - int err = _Py_call_instrumentation_2args( - tstate, PY_MONITORING_EVENT_CALL, - frame, next_instr-1, global_super, arg); - if (err) goto pop_3_error; - } - - // we make no attempt to optimize here; specializations should - // handle any case whose performance we care about - PyObject *stack[] = {class, self}; - PyObject *super = PyObject_Vectorcall(global_super, stack, oparg & 2, NULL); - if (opcode == INSTRUMENTED_LOAD_SUPER_ATTR) { - PyObject *arg = oparg & 2 ? class : &_PyInstrumentation_MISSING; - if (super == NULL) { - _Py_call_instrumentation_exc2( - tstate, PY_MONITORING_EVENT_C_RAISE, - frame, next_instr-1, global_super, arg); + _Py_BackoffCounter counter = this_instr[1].counter; + if (backoff_counter_triggers(counter) && this_instr->op.code == JUMP_BACKWARD) { + _Py_CODEUNIT *start = this_instr; + /* Back up over EXTENDED_ARGs so optimizer sees the whole instruction */ + while (oparg > 255) { + oparg >>= 8; + start--; + } + _PyExecutorObject *executor; + int optimized = _PyOptimizer_Optimize(frame, start, stack_pointer, &executor); + if (optimized < 0) goto error; + if (optimized) { + assert(tstate->previous_executor == NULL); + tstate->previous_executor = Py_None; + GOTO_TIER_TWO(executor); } else { - int err = _Py_call_instrumentation_2args( - tstate, PY_MONITORING_EVENT_C_RETURN, - frame, next_instr-1, global_super, arg); - if (err < 0) { - Py_CLEAR(super); - } + this_instr[1].counter = restart_backoff_counter(counter); } } - #line 2339 "Python/generated_cases.c.h" - Py_DECREF(global_super); - Py_DECREF(class); - Py_DECREF(self); - #line 1704 "Python/bytecodes.c" - if (super == NULL) goto pop_3_error; - res = PyObject_GetAttr(super, name); - Py_DECREF(super); - if (res == NULL) goto pop_3_error; - #line 2348 "Python/generated_cases.c.h" - STACK_SHRINK(2); - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } + else { + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + } + #endif /* ENABLE_SPECIALIZATION */ + #endif /* _Py_TIER2 */ + DISPATCH(); + } + + TARGET(JUMP_BACKWARD_NO_INTERRUPT) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(JUMP_BACKWARD_NO_INTERRUPT); + /* This bytecode is used in the `yield from` or `await` loop. + * If there is an interrupt, we want it handled in the innermost + * generator or coroutine, so we deliberately do not check it here. + * (see bpo-30039). + */ + JUMPBY(-oparg); DISPATCH(); } - TARGET(LOAD_SUPER_ATTR_ATTR) { - PyObject *self = stack_pointer[-1]; - PyObject *class = stack_pointer[-2]; - PyObject *global_super = stack_pointer[-3]; - PyObject *res2 = NULL; - PyObject *res; - #line 1711 "Python/bytecodes.c" - assert(!(oparg & 1)); - DEOPT_IF(global_super != (PyObject *)&PySuper_Type, LOAD_SUPER_ATTR); - DEOPT_IF(!PyType_Check(class), LOAD_SUPER_ATTR); - STAT_INC(LOAD_SUPER_ATTR, hit); - PyObject *name = GETITEM(frame->f_code->co_names, oparg >> 2); - res = _PySuper_Lookup((PyTypeObject *)class, self, name, NULL); - #line 2370 "Python/generated_cases.c.h" - Py_DECREF(global_super); - Py_DECREF(class); - Py_DECREF(self); - #line 1718 "Python/bytecodes.c" - if (res == NULL) goto pop_3_error; - #line 2376 "Python/generated_cases.c.h" - STACK_SHRINK(2); - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } + TARGET(JUMP_FORWARD) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(JUMP_FORWARD); + JUMPBY(oparg); DISPATCH(); } - TARGET(LOAD_SUPER_ATTR_METHOD) { - PyObject *self = stack_pointer[-1]; - PyObject *class = stack_pointer[-2]; - PyObject *global_super = stack_pointer[-3]; - PyObject *res2; - PyObject *res; - #line 1722 "Python/bytecodes.c" - assert(oparg & 1); - DEOPT_IF(global_super != (PyObject *)&PySuper_Type, LOAD_SUPER_ATTR); - DEOPT_IF(!PyType_Check(class), LOAD_SUPER_ATTR); - STAT_INC(LOAD_SUPER_ATTR, hit); - PyObject *name = GETITEM(frame->f_code->co_names, oparg >> 2); - PyTypeObject *cls = (PyTypeObject *)class; - int method_found = 0; - res2 = _PySuper_Lookup(cls, self, name, - Py_TYPE(self)->tp_getattro == PyObject_GenericGetAttr ? &method_found : NULL); - Py_DECREF(global_super); - Py_DECREF(class); - if (res2 == NULL) { - Py_DECREF(self); - if (true) goto pop_3_error; - } - if (method_found) { - res = self; // transfer ownership - } else { - Py_DECREF(self); - res = res2; - res2 = NULL; + TARGET(LIST_APPEND) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(LIST_APPEND); + PyObject *v; + PyObject *list; + v = stack_pointer[-1]; + list = stack_pointer[-2 - (oparg-1)]; + if (_PyList_AppendTakeRef((PyListObject *)list, v) < 0) goto pop_1_error; + stack_pointer += -1; + DISPATCH(); + } + + TARGET(LIST_EXTEND) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(LIST_EXTEND); + PyObject *iterable; + PyObject *list; + iterable = stack_pointer[-1]; + list = stack_pointer[-2 - (oparg-1)]; + PyObject *none_val = _PyList_Extend((PyListObject *)list, iterable); + if (none_val == NULL) { + if (_PyErr_ExceptionMatches(tstate, PyExc_TypeError) && + (Py_TYPE(iterable)->tp_iter == NULL && !PySequence_Check(iterable))) + { + _PyErr_Clear(tstate); + _PyErr_Format(tstate, PyExc_TypeError, + "Value after * must be an iterable, not %.200s", + Py_TYPE(iterable)->tp_name); + } + Py_DECREF(iterable); + if (true) goto pop_1_error; } - #line 2414 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = res; - stack_pointer[-2] = res2; + assert(Py_IsNone(none_val)); + Py_DECREF(iterable); + stack_pointer += -1; + DISPATCH(); + } + + TARGET(LOAD_ASSERTION_ERROR) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(LOAD_ASSERTION_ERROR); + PyObject *value; + value = Py_NewRef(PyExc_AssertionError); + stack_pointer[0] = value; + stack_pointer += 1; DISPATCH(); } TARGET(LOAD_ATTR) { + frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR); PREDICTED(LOAD_ATTR); - static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); - PyObject *owner = stack_pointer[-1]; - PyObject *res2 = NULL; - PyObject *res; - #line 1761 "Python/bytecodes.c" - #if ENABLE_SPECIALIZATION - _PyAttrCache *cache = (_PyAttrCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { - PyObject *name = GETITEM(frame->f_code->co_names, oparg>>1); - next_instr--; - _Py_Specialize_LoadAttr(owner, next_instr, name); - DISPATCH_SAME_OPARG(); - } - STAT_INC(LOAD_ATTR, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache->counter); - #endif /* ENABLE_SPECIALIZATION */ - PyObject *name = GETITEM(frame->f_code->co_names, oparg >> 1); - if (oparg & 1) { - /* Designed to work in tandem with CALL, pushes two values. */ - PyObject* meth = NULL; - if (_PyObject_GetMethod(owner, name, &meth)) { - /* We can bypass temporary bound method object. - meth is unbound method and obj is self. - - meth | self | arg1 | ... | argN - */ - assert(meth != NULL); // No errors on this branch - res2 = meth; - res = owner; // Transfer ownership + _Py_CODEUNIT *this_instr = next_instr - 10; + (void)this_instr; + PyObject *owner; + PyObject *attr; + PyObject *self_or_null = NULL; + // _SPECIALIZE_LOAD_ATTR + owner = stack_pointer[-1]; + { + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg>>1); + next_instr = this_instr; + _Py_Specialize_LoadAttr(owner, next_instr, name); + DISPATCH_SAME_OPARG(); + } + STAT_INC(LOAD_ATTR, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ + } + /* Skip 8 cache entries */ + // _LOAD_ATTR + { + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg >> 1); + if (oparg & 1) { + /* Designed to work in tandem with CALL, pushes two values. */ + attr = NULL; + if (_PyObject_GetMethod(owner, name, &attr)) { + /* We can bypass temporary bound method object. + meth is unbound method and obj is self. + meth | self | arg1 | ... | argN + */ + assert(attr != NULL); // No errors on this branch + self_or_null = owner; // Transfer ownership + } + else { + /* meth is not an unbound method (but a regular attr, or + something was returned by a descriptor protocol). Set + the second element of the stack to NULL, to signal + CALL that it's not a method call. + meth | NULL | arg1 | ... | argN + */ + Py_DECREF(owner); + if (attr == NULL) goto pop_1_error; + self_or_null = NULL; + } } else { - /* meth is not an unbound method (but a regular attr, or - something was returned by a descriptor protocol). Set - the second element of the stack to NULL, to signal - CALL that it's not a method call. - - NULL | meth | arg1 | ... | argN - */ - #line 2462 "Python/generated_cases.c.h" + /* Classic, pushes one value. */ + attr = PyObject_GetAttr(owner, name); Py_DECREF(owner); - #line 1795 "Python/bytecodes.c" - if (meth == NULL) goto pop_1_error; - res2 = NULL; - res = meth; + if (attr == NULL) goto pop_1_error; } } - else { - /* Classic, pushes one value. */ - res = PyObject_GetAttr(owner, name); - #line 2473 "Python/generated_cases.c.h" + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = self_or_null; + stack_pointer += (oparg & 1); + DISPATCH(); + } + + TARGET(LOAD_ATTR_CLASS) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR_CLASS); + static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + /* Skip 1 cache entry */ + // _CHECK_ATTR_CLASS + owner = stack_pointer[-1]; + { + uint32_t type_version = read_u32(&this_instr[2].cache); + DEOPT_IF(!PyType_Check(owner), LOAD_ATTR); + assert(type_version != 0); + DEOPT_IF(((PyTypeObject *)owner)->tp_version_tag != type_version, LOAD_ATTR); + } + /* Skip 2 cache entries */ + // _LOAD_ATTR_CLASS + { + PyObject *descr = read_obj(&this_instr[6].cache); + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + attr = Py_NewRef(descr); + null = NULL; Py_DECREF(owner); - #line 1804 "Python/bytecodes.c" - if (res == NULL) goto pop_1_error; } - #line 2478 "Python/generated_cases.c.h" - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } - next_instr += 9; + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = null; + stack_pointer += (oparg & 1); DISPATCH(); } - TARGET(LOAD_ATTR_INSTANCE_VALUE) { - PyObject *owner = stack_pointer[-1]; - PyObject *res2 = NULL; - PyObject *res; - uint32_t type_version = read_u32(&next_instr[1].cache); - uint16_t index = read_u16(&next_instr[3].cache); - #line 1809 "Python/bytecodes.c" - PyTypeObject *tp = Py_TYPE(owner); + TARGET(LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN); + static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); + PyObject *owner; + /* Skip 1 cache entry */ + owner = stack_pointer[-1]; + uint32_t type_version = read_u32(&this_instr[2].cache); + uint32_t func_version = read_u32(&this_instr[4].cache); + PyObject *getattribute = read_obj(&this_instr[6].cache); + assert((oparg & 1) == 0); + DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); + PyTypeObject *cls = Py_TYPE(owner); assert(type_version != 0); - DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); - assert(tp->tp_dictoffset < 0); - assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); - DEOPT_IF(!_PyDictOrValues_IsValues(dorv), LOAD_ATTR); - res = _PyDictOrValues_GetValues(dorv)->values[index]; - DEOPT_IF(res == NULL, LOAD_ATTR); + DEOPT_IF(cls->tp_version_tag != type_version, LOAD_ATTR); + assert(Py_IS_TYPE(getattribute, &PyFunction_Type)); + PyFunctionObject *f = (PyFunctionObject *)getattribute; + assert(func_version != 0); + DEOPT_IF(f->func_version != func_version, LOAD_ATTR); + PyCodeObject *code = (PyCodeObject *)f->func_code; + assert(code->co_argcount == 2); + DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), LOAD_ATTR); STAT_INC(LOAD_ATTR, hit); - Py_INCREF(res); - res2 = NULL; - #line 2505 "Python/generated_cases.c.h" - Py_DECREF(owner); - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } - next_instr += 9; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg >> 1); + Py_INCREF(f); + _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, f, 2); + // Manipulate stack directly because we exit with DISPATCH_INLINED(). + STACK_SHRINK(1); + new_frame->localsplus[0] = owner; + new_frame->localsplus[1] = Py_NewRef(name); + frame->return_offset = (uint16_t)(next_instr - this_instr); + DISPATCH_INLINED(new_frame); + } + + TARGET(LOAD_ATTR_INSTANCE_VALUE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR_INSTANCE_VALUE); + static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + owner = stack_pointer[-1]; + { + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); + } + // _CHECK_MANAGED_OBJECT_HAS_VALUES + { + assert(Py_TYPE(owner)->tp_dictoffset < 0); + assert(Py_TYPE(owner)->tp_flags & Py_TPFLAGS_INLINE_VALUES); + DEOPT_IF(!_PyObject_InlineValues(owner)->valid, LOAD_ATTR); + } + // _LOAD_ATTR_INSTANCE_VALUE + { + uint16_t index = read_u16(&this_instr[4].cache); + attr = _PyObject_InlineValues(owner)->values[index]; + DEOPT_IF(attr == NULL, LOAD_ATTR); + STAT_INC(LOAD_ATTR, hit); + Py_INCREF(attr); + null = NULL; + Py_DECREF(owner); + } + /* Skip 5 cache entries */ + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = null; + stack_pointer += (oparg & 1); DISPATCH(); } - TARGET(LOAD_ATTR_MODULE) { - PyObject *owner = stack_pointer[-1]; - PyObject *res2 = NULL; - PyObject *res; - uint32_t type_version = read_u32(&next_instr[1].cache); - uint16_t index = read_u16(&next_instr[3].cache); - #line 1825 "Python/bytecodes.c" - DEOPT_IF(!PyModule_CheckExact(owner), LOAD_ATTR); - PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; - assert(dict != NULL); - DEOPT_IF(dict->ma_keys->dk_version != type_version, LOAD_ATTR); - assert(dict->ma_keys->dk_kind == DICT_KEYS_UNICODE); - assert(index < dict->ma_keys->dk_nentries); - PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(dict->ma_keys) + index; - res = ep->me_value; - DEOPT_IF(res == NULL, LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); - Py_INCREF(res); - res2 = NULL; - #line 2533 "Python/generated_cases.c.h" - Py_DECREF(owner); - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } - next_instr += 9; + TARGET(LOAD_ATTR_METHOD_LAZY_DICT) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR_METHOD_LAZY_DICT); + static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); + PyObject *owner; + PyObject *attr; + PyObject *self = NULL; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + owner = stack_pointer[-1]; + { + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); + } + // _CHECK_ATTR_METHOD_LAZY_DICT + { + uint16_t dictoffset = read_u16(&this_instr[4].cache); + char *ptr = ((char *)owner) + MANAGED_DICT_OFFSET + dictoffset; + PyObject *dict = *(PyObject **)ptr; + /* This object has a __dict__, just not yet created */ + DEOPT_IF(dict != NULL, LOAD_ATTR); + } + /* Skip 1 cache entry */ + // _LOAD_ATTR_METHOD_LAZY_DICT + { + PyObject *descr = read_obj(&this_instr[6].cache); + assert(oparg & 1); + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + assert(_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)); + attr = Py_NewRef(descr); + self = owner; + } + stack_pointer[-1] = attr; + stack_pointer[0] = self; + stack_pointer += 1; DISPATCH(); } - TARGET(LOAD_ATTR_WITH_HINT) { - PyObject *owner = stack_pointer[-1]; - PyObject *res2 = NULL; - PyObject *res; - uint32_t type_version = read_u32(&next_instr[1].cache); - uint16_t index = read_u16(&next_instr[3].cache); - #line 1841 "Python/bytecodes.c" - PyTypeObject *tp = Py_TYPE(owner); - assert(type_version != 0); - DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); - assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); - DEOPT_IF(_PyDictOrValues_IsValues(dorv), LOAD_ATTR); - PyDictObject *dict = (PyDictObject *)_PyDictOrValues_GetDict(dorv); - DEOPT_IF(dict == NULL, LOAD_ATTR); - assert(PyDict_CheckExact((PyObject *)dict)); - PyObject *name = GETITEM(frame->f_code->co_names, oparg>>1); - uint16_t hint = index; - DEOPT_IF(hint >= (size_t)dict->ma_keys->dk_nentries, LOAD_ATTR); - if (DK_IS_UNICODE(dict->ma_keys)) { - PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(dict->ma_keys) + hint; - DEOPT_IF(ep->me_key != name, LOAD_ATTR); - res = ep->me_value; + TARGET(LOAD_ATTR_METHOD_NO_DICT) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR_METHOD_NO_DICT); + static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); + PyObject *owner; + PyObject *attr; + PyObject *self = NULL; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + owner = stack_pointer[-1]; + { + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); } - else { - PyDictKeyEntry *ep = DK_ENTRIES(dict->ma_keys) + hint; - DEOPT_IF(ep->me_key != name, LOAD_ATTR); - res = ep->me_value; + /* Skip 2 cache entries */ + // _LOAD_ATTR_METHOD_NO_DICT + { + PyObject *descr = read_obj(&this_instr[6].cache); + assert(oparg & 1); + assert(Py_TYPE(owner)->tp_dictoffset == 0); + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + assert(_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)); + attr = Py_NewRef(descr); + self = owner; } - DEOPT_IF(res == NULL, LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); - Py_INCREF(res); - res2 = NULL; - #line 2575 "Python/generated_cases.c.h" - Py_DECREF(owner); - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } - next_instr += 9; + stack_pointer[-1] = attr; + stack_pointer[0] = self; + stack_pointer += 1; DISPATCH(); } - TARGET(LOAD_ATTR_SLOT) { - PyObject *owner = stack_pointer[-1]; - PyObject *res2 = NULL; - PyObject *res; - uint32_t type_version = read_u32(&next_instr[1].cache); - uint16_t index = read_u16(&next_instr[3].cache); - #line 1871 "Python/bytecodes.c" - PyTypeObject *tp = Py_TYPE(owner); - assert(type_version != 0); - DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); - char *addr = (char *)owner + index; - res = *(PyObject **)addr; - DEOPT_IF(res == NULL, LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); - Py_INCREF(res); - res2 = NULL; - #line 2600 "Python/generated_cases.c.h" - Py_DECREF(owner); - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } - next_instr += 9; + TARGET(LOAD_ATTR_METHOD_WITH_VALUES) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR_METHOD_WITH_VALUES); + static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); + PyObject *owner; + PyObject *attr; + PyObject *self = NULL; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + owner = stack_pointer[-1]; + { + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); + } + // _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT + { + assert(Py_TYPE(owner)->tp_flags & Py_TPFLAGS_INLINE_VALUES); + DEOPT_IF(!_PyObject_InlineValues(owner)->valid, LOAD_ATTR); + } + // _GUARD_KEYS_VERSION + { + uint32_t keys_version = read_u32(&this_instr[4].cache); + PyTypeObject *owner_cls = Py_TYPE(owner); + PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject *)owner_cls; + DEOPT_IF(owner_heap_type->ht_cached_keys->dk_version != keys_version, LOAD_ATTR); + } + // _LOAD_ATTR_METHOD_WITH_VALUES + { + PyObject *descr = read_obj(&this_instr[6].cache); + assert(oparg & 1); + /* Cached method object */ + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + attr = Py_NewRef(descr); + assert(_PyType_HasFeature(Py_TYPE(attr), Py_TPFLAGS_METHOD_DESCRIPTOR)); + self = owner; + } + stack_pointer[-1] = attr; + stack_pointer[0] = self; + stack_pointer += 1; DISPATCH(); } - TARGET(LOAD_ATTR_CLASS) { - PyObject *cls = stack_pointer[-1]; - PyObject *res2 = NULL; - PyObject *res; - uint32_t type_version = read_u32(&next_instr[1].cache); - PyObject *descr = read_obj(&next_instr[5].cache); - #line 1884 "Python/bytecodes.c" + TARGET(LOAD_ATTR_MODULE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR_MODULE); + static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + /* Skip 1 cache entry */ + // _CHECK_ATTR_MODULE + owner = stack_pointer[-1]; + { + uint32_t dict_version = read_u32(&this_instr[2].cache); + DEOPT_IF(!PyModule_CheckExact(owner), LOAD_ATTR); + PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; + assert(dict != NULL); + DEOPT_IF(dict->ma_keys->dk_version != dict_version, LOAD_ATTR); + } + // _LOAD_ATTR_MODULE + { + uint16_t index = read_u16(&this_instr[4].cache); + PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; + assert(dict->ma_keys->dk_kind == DICT_KEYS_UNICODE); + assert(index < dict->ma_keys->dk_nentries); + PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(dict->ma_keys) + index; + attr = ep->me_value; + DEOPT_IF(attr == NULL, LOAD_ATTR); + STAT_INC(LOAD_ATTR, hit); + Py_INCREF(attr); + null = NULL; + Py_DECREF(owner); + } + /* Skip 5 cache entries */ + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = null; + stack_pointer += (oparg & 1); + DISPATCH(); + } - DEOPT_IF(!PyType_Check(cls), LOAD_ATTR); - DEOPT_IF(((PyTypeObject *)cls)->tp_version_tag != type_version, - LOAD_ATTR); - assert(type_version != 0); + TARGET(LOAD_ATTR_NONDESCRIPTOR_NO_DICT) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR_NONDESCRIPTOR_NO_DICT); + static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); + PyObject *owner; + PyObject *attr; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + owner = stack_pointer[-1]; + { + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); + } + /* Skip 2 cache entries */ + // _LOAD_ATTR_NONDESCRIPTOR_NO_DICT + { + PyObject *descr = read_obj(&this_instr[6].cache); + assert((oparg & 1) == 0); + assert(Py_TYPE(owner)->tp_dictoffset == 0); + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + Py_DECREF(owner); + attr = Py_NewRef(descr); + } + stack_pointer[-1] = attr; + DISPATCH(); + } - STAT_INC(LOAD_ATTR, hit); - res2 = NULL; - res = descr; - assert(res != NULL); - Py_INCREF(res); - #line 2627 "Python/generated_cases.c.h" - Py_DECREF(cls); - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } - next_instr += 9; + TARGET(LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES); + static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); + PyObject *owner; + PyObject *attr; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + owner = stack_pointer[-1]; + { + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); + } + // _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT + { + assert(Py_TYPE(owner)->tp_flags & Py_TPFLAGS_INLINE_VALUES); + DEOPT_IF(!_PyObject_InlineValues(owner)->valid, LOAD_ATTR); + } + // _GUARD_KEYS_VERSION + { + uint32_t keys_version = read_u32(&this_instr[4].cache); + PyTypeObject *owner_cls = Py_TYPE(owner); + PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject *)owner_cls; + DEOPT_IF(owner_heap_type->ht_cached_keys->dk_version != keys_version, LOAD_ATTR); + } + // _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES + { + PyObject *descr = read_obj(&this_instr[6].cache); + assert((oparg & 1) == 0); + STAT_INC(LOAD_ATTR, hit); + assert(descr != NULL); + Py_DECREF(owner); + attr = Py_NewRef(descr); + } + stack_pointer[-1] = attr; DISPATCH(); } TARGET(LOAD_ATTR_PROPERTY) { - PyObject *owner = stack_pointer[-1]; - uint32_t type_version = read_u32(&next_instr[1].cache); - uint32_t func_version = read_u32(&next_instr[3].cache); - PyObject *fget = read_obj(&next_instr[5].cache); - #line 1899 "Python/bytecodes.c" + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR_PROPERTY); + static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); + PyObject *owner; + /* Skip 1 cache entry */ + owner = stack_pointer[-1]; + uint32_t type_version = read_u32(&this_instr[2].cache); + uint32_t func_version = read_u32(&this_instr[4].cache); + PyObject *fget = read_obj(&this_instr[6].cache); + assert((oparg & 1) == 0); DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); - PyTypeObject *cls = Py_TYPE(owner); - DEOPT_IF(cls->tp_version_tag != type_version, LOAD_ATTR); assert(type_version != 0); + DEOPT_IF(cls->tp_version_tag != type_version, LOAD_ATTR); assert(Py_IS_TYPE(fget, &PyFunction_Type)); PyFunctionObject *f = (PyFunctionObject *)fget; assert(func_version != 0); @@ -2654,932 +4161,894 @@ Py_INCREF(fget); _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, f, 1); // Manipulate stack directly because we exit with DISPATCH_INLINED(). - SET_TOP(NULL); - int shrink_stack = !(oparg & 1); - STACK_SHRINK(shrink_stack); - new_frame->localsplus[0] = owner; - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - frame->return_offset = 0; - DISPATCH_INLINED(new_frame); - #line 2665 "Python/generated_cases.c.h" - } - - TARGET(LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN) { - PyObject *owner = stack_pointer[-1]; - uint32_t type_version = read_u32(&next_instr[1].cache); - uint32_t func_version = read_u32(&next_instr[3].cache); - PyObject *getattribute = read_obj(&next_instr[5].cache); - #line 1925 "Python/bytecodes.c" - DEOPT_IF(tstate->interp->eval_frame, LOAD_ATTR); - PyTypeObject *cls = Py_TYPE(owner); - DEOPT_IF(cls->tp_version_tag != type_version, LOAD_ATTR); - assert(type_version != 0); - assert(Py_IS_TYPE(getattribute, &PyFunction_Type)); - PyFunctionObject *f = (PyFunctionObject *)getattribute; - assert(func_version != 0); - DEOPT_IF(f->func_version != func_version, LOAD_ATTR); - PyCodeObject *code = (PyCodeObject *)f->func_code; - assert(code->co_argcount == 2); - DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); - - PyObject *name = GETITEM(frame->f_code->co_names, oparg >> 1); - Py_INCREF(f); - _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, f, 2); - // Manipulate stack directly because we exit with DISPATCH_INLINED(). - SET_TOP(NULL); - int shrink_stack = !(oparg & 1); - STACK_SHRINK(shrink_stack); + STACK_SHRINK(1); new_frame->localsplus[0] = owner; - new_frame->localsplus[1] = Py_NewRef(name); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - frame->return_offset = 0; + frame->return_offset = (uint16_t)(next_instr - this_instr); DISPATCH_INLINED(new_frame); - #line 2699 "Python/generated_cases.c.h" } - TARGET(STORE_ATTR_INSTANCE_VALUE) { - PyObject *owner = stack_pointer[-1]; - PyObject *value = stack_pointer[-2]; - uint32_t type_version = read_u32(&next_instr[1].cache); - uint16_t index = read_u16(&next_instr[3].cache); - #line 1953 "Python/bytecodes.c" - PyTypeObject *tp = Py_TYPE(owner); - assert(type_version != 0); - DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); - assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); - DEOPT_IF(!_PyDictOrValues_IsValues(dorv), STORE_ATTR); - STAT_INC(STORE_ATTR, hit); - PyDictValues *values = _PyDictOrValues_GetValues(dorv); - PyObject *old_value = values->values[index]; - values->values[index] = value; - if (old_value == NULL) { - _PyDictValues_AddToInsertionOrder(values, index); + TARGET(LOAD_ATTR_SLOT) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR_SLOT); + static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + owner = stack_pointer[-1]; + { + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); } - else { - Py_DECREF(old_value); + // _LOAD_ATTR_SLOT + { + uint16_t index = read_u16(&this_instr[4].cache); + char *addr = (char *)owner + index; + attr = *(PyObject **)addr; + DEOPT_IF(attr == NULL, LOAD_ATTR); + STAT_INC(LOAD_ATTR, hit); + Py_INCREF(attr); + null = NULL; + Py_DECREF(owner); } - Py_DECREF(owner); - #line 2725 "Python/generated_cases.c.h" - STACK_SHRINK(2); - next_instr += 4; + /* Skip 5 cache entries */ + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = null; + stack_pointer += (oparg & 1); DISPATCH(); } - TARGET(STORE_ATTR_WITH_HINT) { - PyObject *owner = stack_pointer[-1]; - PyObject *value = stack_pointer[-2]; - uint32_t type_version = read_u32(&next_instr[1].cache); - uint16_t hint = read_u16(&next_instr[3].cache); - #line 1973 "Python/bytecodes.c" - PyTypeObject *tp = Py_TYPE(owner); - assert(type_version != 0); - DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); - assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); - DEOPT_IF(_PyDictOrValues_IsValues(dorv), STORE_ATTR); - PyDictObject *dict = (PyDictObject *)_PyDictOrValues_GetDict(dorv); - DEOPT_IF(dict == NULL, STORE_ATTR); - assert(PyDict_CheckExact((PyObject *)dict)); - PyObject *name = GETITEM(frame->f_code->co_names, oparg); - DEOPT_IF(hint >= (size_t)dict->ma_keys->dk_nentries, STORE_ATTR); - PyObject *old_value; - uint64_t new_version; - if (DK_IS_UNICODE(dict->ma_keys)) { - PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(dict->ma_keys) + hint; - DEOPT_IF(ep->me_key != name, STORE_ATTR); - old_value = ep->me_value; - DEOPT_IF(old_value == NULL, STORE_ATTR); - new_version = _PyDict_NotifyEvent(tstate->interp, PyDict_EVENT_MODIFIED, dict, name, value); - ep->me_value = value; + TARGET(LOAD_ATTR_WITH_HINT) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 10; + INSTRUCTION_STATS(LOAD_ATTR_WITH_HINT); + static_assert(INLINE_CACHE_ENTRIES_LOAD_ATTR == 9, "incorrect cache size"); + PyObject *owner; + PyObject *attr; + PyObject *null = NULL; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + owner = stack_pointer[-1]; + { + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + DEOPT_IF(tp->tp_version_tag != type_version, LOAD_ATTR); } - else { - PyDictKeyEntry *ep = DK_ENTRIES(dict->ma_keys) + hint; - DEOPT_IF(ep->me_key != name, STORE_ATTR); - old_value = ep->me_value; - DEOPT_IF(old_value == NULL, STORE_ATTR); - new_version = _PyDict_NotifyEvent(tstate->interp, PyDict_EVENT_MODIFIED, dict, name, value); - ep->me_value = value; + // _CHECK_ATTR_WITH_HINT + { + assert(Py_TYPE(owner)->tp_flags & Py_TPFLAGS_MANAGED_DICT); + PyDictObject *dict = _PyObject_GetManagedDict(owner); + DEOPT_IF(dict == NULL, LOAD_ATTR); + assert(PyDict_CheckExact((PyObject *)dict)); } - /* Ensure dict is GC tracked if it needs to be */ - if (!_PyObject_GC_IS_TRACKED(dict) && _PyObject_GC_MAY_BE_TRACKED(value)) { - _PyObject_GC_TRACK(dict); + // _LOAD_ATTR_WITH_HINT + { + uint16_t hint = read_u16(&this_instr[4].cache); + PyDictObject *dict = _PyObject_GetManagedDict(owner); + DEOPT_IF(hint >= (size_t)dict->ma_keys->dk_nentries, LOAD_ATTR); + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg>>1); + if (DK_IS_UNICODE(dict->ma_keys)) { + PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(dict->ma_keys) + hint; + DEOPT_IF(ep->me_key != name, LOAD_ATTR); + attr = ep->me_value; + } + else { + PyDictKeyEntry *ep = DK_ENTRIES(dict->ma_keys) + hint; + DEOPT_IF(ep->me_key != name, LOAD_ATTR); + attr = ep->me_value; + } + DEOPT_IF(attr == NULL, LOAD_ATTR); + STAT_INC(LOAD_ATTR, hit); + Py_INCREF(attr); + null = NULL; + Py_DECREF(owner); } - dict->ma_version_tag = new_version; // PEP 509 - // old_value should be DECREFed after GC track checking is done, if not, it could raise a segmentation fault, - // when dict only holds the strong reference to value in ep->me_value. - Py_DECREF(old_value); - STAT_INC(STORE_ATTR, hit); - Py_DECREF(owner); - #line 2776 "Python/generated_cases.c.h" - STACK_SHRINK(2); - next_instr += 4; + /* Skip 5 cache entries */ + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = null; + stack_pointer += (oparg & 1); DISPATCH(); } - TARGET(STORE_ATTR_SLOT) { - PyObject *owner = stack_pointer[-1]; - PyObject *value = stack_pointer[-2]; - uint32_t type_version = read_u32(&next_instr[1].cache); - uint16_t index = read_u16(&next_instr[3].cache); - #line 2015 "Python/bytecodes.c" - PyTypeObject *tp = Py_TYPE(owner); - assert(type_version != 0); - DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); - char *addr = (char *)owner + index; - STAT_INC(STORE_ATTR, hit); - PyObject *old_value = *(PyObject **)addr; - *(PyObject **)addr = value; - Py_XDECREF(old_value); - Py_DECREF(owner); - #line 2797 "Python/generated_cases.c.h" - STACK_SHRINK(2); - next_instr += 4; + TARGET(LOAD_BUILD_CLASS) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(LOAD_BUILD_CLASS); + PyObject *bc; + if (PyMapping_GetOptionalItem(BUILTINS(), &_Py_ID(__build_class__), &bc) < 0) goto error; + if (bc == NULL) { + _PyErr_SetString(tstate, PyExc_NameError, + "__build_class__ not found"); + if (true) goto error; + } + stack_pointer[0] = bc; + stack_pointer += 1; DISPATCH(); } - TARGET(COMPARE_OP) { - PREDICTED(COMPARE_OP); - static_assert(INLINE_CACHE_ENTRIES_COMPARE_OP == 1, "incorrect cache size"); - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *res; - #line 2034 "Python/bytecodes.c" - #if ENABLE_SPECIALIZATION - _PyCompareOpCache *cache = (_PyCompareOpCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { - next_instr--; - _Py_Specialize_CompareOp(left, right, next_instr, oparg); - DISPATCH_SAME_OPARG(); - } - STAT_INC(COMPARE_OP, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache->counter); - #endif /* ENABLE_SPECIALIZATION */ - assert((oparg >> 4) <= Py_GE); - res = PyObject_RichCompare(left, right, oparg>>4); - #line 2822 "Python/generated_cases.c.h" - Py_DECREF(left); - Py_DECREF(right); - #line 2047 "Python/bytecodes.c" - if (res == NULL) goto pop_2_error; - #line 2827 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = res; + TARGET(LOAD_CONST) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(LOAD_CONST); + PyObject *value; + value = GETITEM(FRAME_CO_CONSTS, oparg); + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; DISPATCH(); } - TARGET(COMPARE_OP_FLOAT) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *res; - #line 2051 "Python/bytecodes.c" - DEOPT_IF(!PyFloat_CheckExact(left), COMPARE_OP); - DEOPT_IF(!PyFloat_CheckExact(right), COMPARE_OP); - STAT_INC(COMPARE_OP, hit); - double dleft = PyFloat_AS_DOUBLE(left); - double dright = PyFloat_AS_DOUBLE(right); - // 1 if NaN, 2 if <, 4 if >, 8 if ==; this matches low four bits of the oparg - int sign_ish = COMPARISON_BIT(dleft, dright); - _Py_DECREF_SPECIALIZED(left, _PyFloat_ExactDealloc); - _Py_DECREF_SPECIALIZED(right, _PyFloat_ExactDealloc); - res = (sign_ish & oparg) ? Py_True : Py_False; - #line 2849 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = res; + TARGET(LOAD_DEREF) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(LOAD_DEREF); + PyObject *value; + PyCellObject *cell = (PyCellObject *)GETLOCAL(oparg); + value = PyCell_GetRef(cell); + if (value == NULL) { + _PyEval_FormatExcUnbound(tstate, _PyFrame_GetCode(frame), oparg); + if (true) goto error; + } + stack_pointer[0] = value; + stack_pointer += 1; DISPATCH(); } - TARGET(COMPARE_OP_INT) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *res; - #line 2065 "Python/bytecodes.c" - DEOPT_IF(!PyLong_CheckExact(left), COMPARE_OP); - DEOPT_IF(!PyLong_CheckExact(right), COMPARE_OP); - DEOPT_IF(!_PyLong_IsCompact((PyLongObject *)left), COMPARE_OP); - DEOPT_IF(!_PyLong_IsCompact((PyLongObject *)right), COMPARE_OP); - STAT_INC(COMPARE_OP, hit); - assert(_PyLong_DigitCount((PyLongObject *)left) <= 1 && - _PyLong_DigitCount((PyLongObject *)right) <= 1); - Py_ssize_t ileft = _PyLong_CompactValue((PyLongObject *)left); - Py_ssize_t iright = _PyLong_CompactValue((PyLongObject *)right); - // 2 if <, 4 if >, 8 if ==; this matches the low 4 bits of the oparg - int sign_ish = COMPARISON_BIT(ileft, iright); - _Py_DECREF_SPECIALIZED(left, (destructor)PyObject_Free); - _Py_DECREF_SPECIALIZED(right, (destructor)PyObject_Free); - res = (sign_ish & oparg) ? Py_True : Py_False; - #line 2875 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = res; + TARGET(LOAD_FAST) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(LOAD_FAST); + PyObject *value; + value = GETLOCAL(oparg); + assert(value != NULL); + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; DISPATCH(); } - TARGET(COMPARE_OP_STR) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *res; - #line 2083 "Python/bytecodes.c" - DEOPT_IF(!PyUnicode_CheckExact(left), COMPARE_OP); - DEOPT_IF(!PyUnicode_CheckExact(right), COMPARE_OP); - STAT_INC(COMPARE_OP, hit); - int eq = _PyUnicode_Equal(left, right); - assert((oparg >>4) == Py_EQ || (oparg >>4) == Py_NE); - _Py_DECREF_SPECIALIZED(left, _PyUnicode_ExactDealloc); - _Py_DECREF_SPECIALIZED(right, _PyUnicode_ExactDealloc); - assert(eq == 0 || eq == 1); - assert((oparg & 0xf) == COMPARISON_NOT_EQUALS || (oparg & 0xf) == COMPARISON_EQUALS); - assert(COMPARISON_NOT_EQUALS + 1 == COMPARISON_EQUALS); - res = ((COMPARISON_NOT_EQUALS + eq) & oparg) ? Py_True : Py_False; - #line 2898 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = res; + TARGET(LOAD_FAST_AND_CLEAR) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(LOAD_FAST_AND_CLEAR); + PyObject *value; + value = GETLOCAL(oparg); + // do not use SETLOCAL here, it decrefs the old value + GETLOCAL(oparg) = NULL; + stack_pointer[0] = value; + stack_pointer += 1; DISPATCH(); } - TARGET(IS_OP) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *b; - #line 2097 "Python/bytecodes.c" - int res = Py_Is(left, right) ^ oparg; - #line 2911 "Python/generated_cases.c.h" - Py_DECREF(left); - Py_DECREF(right); - #line 2099 "Python/bytecodes.c" - b = res ? Py_True : Py_False; - #line 2916 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = b; + TARGET(LOAD_FAST_CHECK) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(LOAD_FAST_CHECK); + PyObject *value; + value = GETLOCAL(oparg); + if (value == NULL) { + _PyEval_FormatExcCheckArg(tstate, PyExc_UnboundLocalError, + UNBOUNDLOCAL_ERROR_MSG, + PyTuple_GetItem(_PyFrame_GetCode(frame)->co_localsplusnames, oparg) + ); + if (1) goto error; + } + Py_INCREF(value); + stack_pointer[0] = value; + stack_pointer += 1; DISPATCH(); } - TARGET(CONTAINS_OP) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *b; - #line 2103 "Python/bytecodes.c" - int res = PySequence_Contains(right, left); - #line 2928 "Python/generated_cases.c.h" - Py_DECREF(left); - Py_DECREF(right); - #line 2105 "Python/bytecodes.c" - if (res < 0) goto pop_2_error; - b = (res ^ oparg) ? Py_True : Py_False; - #line 2934 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = b; + TARGET(LOAD_FAST_LOAD_FAST) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(LOAD_FAST_LOAD_FAST); + PyObject *value1; + PyObject *value2; + uint32_t oparg1 = oparg >> 4; + uint32_t oparg2 = oparg & 15; + value1 = GETLOCAL(oparg1); + value2 = GETLOCAL(oparg2); + Py_INCREF(value1); + Py_INCREF(value2); + stack_pointer[0] = value1; + stack_pointer[1] = value2; + stack_pointer += 2; DISPATCH(); } - TARGET(CHECK_EG_MATCH) { - PyObject *match_type = stack_pointer[-1]; - PyObject *exc_value = stack_pointer[-2]; - PyObject *rest; - PyObject *match; - #line 2110 "Python/bytecodes.c" - if (check_except_star_type_valid(tstate, match_type) < 0) { - #line 2947 "Python/generated_cases.c.h" - Py_DECREF(exc_value); - Py_DECREF(match_type); - #line 2112 "Python/bytecodes.c" - if (true) goto pop_2_error; + TARGET(LOAD_FROM_DICT_OR_DEREF) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(LOAD_FROM_DICT_OR_DEREF); + PyObject *class_dict; + PyObject *value; + class_dict = stack_pointer[-1]; + PyObject *name; + assert(class_dict); + assert(oparg >= 0 && oparg < _PyFrame_GetCode(frame)->co_nlocalsplus); + name = PyTuple_GET_ITEM(_PyFrame_GetCode(frame)->co_localsplusnames, oparg); + if (PyMapping_GetOptionalItem(class_dict, name, &value) < 0) { + goto error; } - - match = NULL; - rest = NULL; - int res = exception_group_match(frame, exc_value, match_type, - &match, &rest); - #line 2958 "Python/generated_cases.c.h" - Py_DECREF(exc_value); - Py_DECREF(match_type); - #line 2120 "Python/bytecodes.c" - if (res < 0) goto pop_2_error; - - assert((match == NULL) == (rest == NULL)); - if (match == NULL) goto pop_2_error; - - if (!Py_IsNone(match)) { - PyErr_SetHandledException(match); + if (!value) { + PyCellObject *cell = (PyCellObject *)GETLOCAL(oparg); + value = PyCell_GetRef(cell); + if (value == NULL) { + _PyEval_FormatExcUnbound(tstate, _PyFrame_GetCode(frame), oparg); + goto error; + } } - #line 2970 "Python/generated_cases.c.h" - stack_pointer[-1] = match; - stack_pointer[-2] = rest; + Py_DECREF(class_dict); + stack_pointer[-1] = value; DISPATCH(); } - TARGET(CHECK_EXC_MATCH) { - PyObject *right = stack_pointer[-1]; - PyObject *left = stack_pointer[-2]; - PyObject *b; - #line 2131 "Python/bytecodes.c" - assert(PyExceptionInstance_Check(left)); - if (check_except_type_valid(tstate, right) < 0) { - #line 2983 "Python/generated_cases.c.h" - Py_DECREF(right); - #line 2134 "Python/bytecodes.c" - if (true) goto pop_1_error; + TARGET(LOAD_FROM_DICT_OR_GLOBALS) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(LOAD_FROM_DICT_OR_GLOBALS); + PyObject *mod_or_class_dict; + PyObject *v; + mod_or_class_dict = stack_pointer[-1]; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + if (PyMapping_GetOptionalItem(mod_or_class_dict, name, &v) < 0) { + goto error; } - - int res = PyErr_GivenExceptionMatches(left, right); - #line 2990 "Python/generated_cases.c.h" - Py_DECREF(right); - #line 2139 "Python/bytecodes.c" - b = res ? Py_True : Py_False; - #line 2994 "Python/generated_cases.c.h" - stack_pointer[-1] = b; + if (v == NULL) { + if (PyDict_CheckExact(GLOBALS()) + && PyDict_CheckExact(BUILTINS())) + { + v = _PyDict_LoadGlobal((PyDictObject *)GLOBALS(), + (PyDictObject *)BUILTINS(), + name); + if (v == NULL) { + if (!_PyErr_Occurred(tstate)) { + /* _PyDict_LoadGlobal() returns NULL without raising + * an exception if the key doesn't exist */ + _PyEval_FormatExcCheckArg(tstate, PyExc_NameError, + NAME_ERROR_MSG, name); + } + goto error; + } + } + else { + /* Slow-path if globals or builtins is not a dict */ + /* namespace 1: globals */ + if (PyMapping_GetOptionalItem(GLOBALS(), name, &v) < 0) goto pop_1_error; + if (v == NULL) { + /* namespace 2: builtins */ + if (PyMapping_GetOptionalItem(BUILTINS(), name, &v) < 0) goto pop_1_error; + if (v == NULL) { + _PyEval_FormatExcCheckArg( + tstate, PyExc_NameError, + NAME_ERROR_MSG, name); + if (true) goto pop_1_error; + } + } + } + } + Py_DECREF(mod_or_class_dict); + stack_pointer[-1] = v; DISPATCH(); } - TARGET(IMPORT_NAME) { - PyObject *fromlist = stack_pointer[-1]; - PyObject *level = stack_pointer[-2]; + TARGET(LOAD_GLOBAL) { + frame->instr_ptr = next_instr; + next_instr += 5; + INSTRUCTION_STATS(LOAD_GLOBAL); + PREDICTED(LOAD_GLOBAL); + _Py_CODEUNIT *this_instr = next_instr - 5; + (void)this_instr; PyObject *res; - #line 2143 "Python/bytecodes.c" - PyObject *name = GETITEM(frame->f_code->co_names, oparg); - res = import_name(tstate, frame, name, fromlist, level); - #line 3006 "Python/generated_cases.c.h" - Py_DECREF(level); - Py_DECREF(fromlist); - #line 2146 "Python/bytecodes.c" - if (res == NULL) goto pop_2_error; - #line 3011 "Python/generated_cases.c.h" - STACK_SHRINK(1); - stack_pointer[-1] = res; + PyObject *null = NULL; + // _SPECIALIZE_LOAD_GLOBAL + { + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg>>1); + next_instr = this_instr; + _Py_Specialize_LoadGlobal(GLOBALS(), BUILTINS(), next_instr, name); + DISPATCH_SAME_OPARG(); + } + STAT_INC(LOAD_GLOBAL, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ + } + /* Skip 1 cache entry */ + /* Skip 1 cache entry */ + /* Skip 1 cache entry */ + // _LOAD_GLOBAL + { + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg>>1); + if (PyDict_CheckExact(GLOBALS()) + && PyDict_CheckExact(BUILTINS())) + { + res = _PyDict_LoadGlobal((PyDictObject *)GLOBALS(), + (PyDictObject *)BUILTINS(), + name); + if (res == NULL) { + if (!_PyErr_Occurred(tstate)) { + /* _PyDict_LoadGlobal() returns NULL without raising + * an exception if the key doesn't exist */ + _PyEval_FormatExcCheckArg(tstate, PyExc_NameError, + NAME_ERROR_MSG, name); + } + if (true) goto error; + } + } + else { + /* Slow-path if globals or builtins is not a dict */ + /* namespace 1: globals */ + if (PyMapping_GetOptionalItem(GLOBALS(), name, &res) < 0) goto error; + if (res == NULL) { + /* namespace 2: builtins */ + if (PyMapping_GetOptionalItem(BUILTINS(), name, &res) < 0) goto error; + if (res == NULL) { + _PyEval_FormatExcCheckArg( + tstate, PyExc_NameError, + NAME_ERROR_MSG, name); + if (true) goto error; + } + } + } + null = NULL; + } + stack_pointer[0] = res; + if (oparg & 1) stack_pointer[1] = null; + stack_pointer += 1 + (oparg & 1); DISPATCH(); } - TARGET(IMPORT_FROM) { - PyObject *from = stack_pointer[-1]; + TARGET(LOAD_GLOBAL_BUILTIN) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 5; + INSTRUCTION_STATS(LOAD_GLOBAL_BUILTIN); + static_assert(INLINE_CACHE_ENTRIES_LOAD_GLOBAL == 4, "incorrect cache size"); PyObject *res; - #line 2150 "Python/bytecodes.c" - PyObject *name = GETITEM(frame->f_code->co_names, oparg); - res = import_from(tstate, from, name); - if (res == NULL) goto error; - #line 3024 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = res; + PyObject *null = NULL; + /* Skip 1 cache entry */ + // _GUARD_GLOBALS_VERSION + { + uint16_t version = read_u16(&this_instr[2].cache); + PyDictObject *dict = (PyDictObject *)GLOBALS(); + DEOPT_IF(!PyDict_CheckExact(dict), LOAD_GLOBAL); + DEOPT_IF(dict->ma_keys->dk_version != version, LOAD_GLOBAL); + assert(DK_IS_UNICODE(dict->ma_keys)); + } + // _GUARD_BUILTINS_VERSION + { + uint16_t version = read_u16(&this_instr[3].cache); + PyDictObject *dict = (PyDictObject *)BUILTINS(); + DEOPT_IF(!PyDict_CheckExact(dict), LOAD_GLOBAL); + DEOPT_IF(dict->ma_keys->dk_version != version, LOAD_GLOBAL); + assert(DK_IS_UNICODE(dict->ma_keys)); + } + // _LOAD_GLOBAL_BUILTINS + { + uint16_t index = read_u16(&this_instr[4].cache); + PyDictObject *bdict = (PyDictObject *)BUILTINS(); + PyDictUnicodeEntry *entries = DK_UNICODE_ENTRIES(bdict->ma_keys); + res = entries[index].me_value; + DEOPT_IF(res == NULL, LOAD_GLOBAL); + Py_INCREF(res); + STAT_INC(LOAD_GLOBAL, hit); + null = NULL; + } + stack_pointer[0] = res; + if (oparg & 1) stack_pointer[1] = null; + stack_pointer += 1 + (oparg & 1); DISPATCH(); } - TARGET(JUMP_FORWARD) { - #line 2156 "Python/bytecodes.c" - JUMPBY(oparg); - #line 3033 "Python/generated_cases.c.h" + TARGET(LOAD_GLOBAL_MODULE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 5; + INSTRUCTION_STATS(LOAD_GLOBAL_MODULE); + static_assert(INLINE_CACHE_ENTRIES_LOAD_GLOBAL == 4, "incorrect cache size"); + PyObject *res; + PyObject *null = NULL; + /* Skip 1 cache entry */ + // _GUARD_GLOBALS_VERSION + { + uint16_t version = read_u16(&this_instr[2].cache); + PyDictObject *dict = (PyDictObject *)GLOBALS(); + DEOPT_IF(!PyDict_CheckExact(dict), LOAD_GLOBAL); + DEOPT_IF(dict->ma_keys->dk_version != version, LOAD_GLOBAL); + assert(DK_IS_UNICODE(dict->ma_keys)); + } + /* Skip 1 cache entry */ + // _LOAD_GLOBAL_MODULE + { + uint16_t index = read_u16(&this_instr[4].cache); + PyDictObject *dict = (PyDictObject *)GLOBALS(); + PyDictUnicodeEntry *entries = DK_UNICODE_ENTRIES(dict->ma_keys); + res = entries[index].me_value; + DEOPT_IF(res == NULL, LOAD_GLOBAL); + Py_INCREF(res); + STAT_INC(LOAD_GLOBAL, hit); + null = NULL; + } + stack_pointer[0] = res; + if (oparg & 1) stack_pointer[1] = null; + stack_pointer += 1 + (oparg & 1); DISPATCH(); } - TARGET(JUMP_BACKWARD) { - PREDICTED(JUMP_BACKWARD); - #line 2160 "Python/bytecodes.c" - assert(oparg < INSTR_OFFSET()); - JUMPBY(-oparg); - #line 3042 "Python/generated_cases.c.h" - CHECK_EVAL_BREAKER(); + TARGET(LOAD_LOCALS) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(LOAD_LOCALS); + PyObject *locals; + locals = LOCALS(); + if (locals == NULL) { + _PyErr_SetString(tstate, PyExc_SystemError, + "no locals found"); + if (true) goto error; + } + Py_INCREF(locals); + stack_pointer[0] = locals; + stack_pointer += 1; DISPATCH(); } - TARGET(POP_JUMP_IF_FALSE) { - PREDICTED(POP_JUMP_IF_FALSE); - PyObject *cond = stack_pointer[-1]; - #line 2166 "Python/bytecodes.c" - if (Py_IsFalse(cond)) { - JUMPBY(oparg); - } - else if (!Py_IsTrue(cond)) { - int err = PyObject_IsTrue(cond); - #line 3056 "Python/generated_cases.c.h" - Py_DECREF(cond); - #line 2172 "Python/bytecodes.c" - if (err == 0) { - JUMPBY(oparg); + TARGET(LOAD_NAME) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(LOAD_NAME); + PyObject *v; + PyObject *mod_or_class_dict = LOCALS(); + if (mod_or_class_dict == NULL) { + _PyErr_SetString(tstate, PyExc_SystemError, + "no locals found"); + if (true) goto error; + } + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + if (PyMapping_GetOptionalItem(mod_or_class_dict, name, &v) < 0) { + goto error; + } + if (v == NULL) { + if (PyDict_GetItemRef(GLOBALS(), name, &v) < 0) { + goto error; } - else { - if (err < 0) goto pop_1_error; + if (v == NULL) { + if (PyMapping_GetOptionalItem(BUILTINS(), name, &v) < 0) { + goto error; + } + if (v == NULL) { + _PyEval_FormatExcCheckArg( + tstate, PyExc_NameError, + NAME_ERROR_MSG, name); + goto error; + } } } - #line 3066 "Python/generated_cases.c.h" - STACK_SHRINK(1); + stack_pointer[0] = v; + stack_pointer += 1; DISPATCH(); } - TARGET(POP_JUMP_IF_TRUE) { - PyObject *cond = stack_pointer[-1]; - #line 2182 "Python/bytecodes.c" - if (Py_IsTrue(cond)) { - JUMPBY(oparg); - } - else if (!Py_IsFalse(cond)) { - int err = PyObject_IsTrue(cond); - #line 3079 "Python/generated_cases.c.h" - Py_DECREF(cond); - #line 2188 "Python/bytecodes.c" - if (err > 0) { - JUMPBY(oparg); + TARGET(LOAD_SUPER_ATTR) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(LOAD_SUPER_ATTR); + PREDICTED(LOAD_SUPER_ATTR); + _Py_CODEUNIT *this_instr = next_instr - 2; + (void)this_instr; + PyObject *class; + PyObject *global_super; + PyObject *self; + PyObject *attr; + PyObject *null = NULL; + // _SPECIALIZE_LOAD_SUPER_ATTR + class = stack_pointer[-2]; + global_super = stack_pointer[-3]; + { + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + int load_method = oparg & 1; + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + next_instr = this_instr; + _Py_Specialize_LoadSuperAttr(global_super, class, next_instr, load_method); + DISPATCH_SAME_OPARG(); } - else { - if (err < 0) goto pop_1_error; + STAT_INC(LOAD_SUPER_ATTR, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ + } + // _LOAD_SUPER_ATTR + self = stack_pointer[-1]; + { + if (opcode == INSTRUMENTED_LOAD_SUPER_ATTR) { + PyObject *arg = oparg & 2 ? class : &_PyInstrumentation_MISSING; + int err = _Py_call_instrumentation_2args( + tstate, PY_MONITORING_EVENT_CALL, + frame, this_instr, global_super, arg); + if (err) goto pop_3_error; + } + // we make no attempt to optimize here; specializations should + // handle any case whose performance we care about + PyObject *stack[] = {class, self}; + PyObject *super = PyObject_Vectorcall(global_super, stack, oparg & 2, NULL); + if (opcode == INSTRUMENTED_LOAD_SUPER_ATTR) { + PyObject *arg = oparg & 2 ? class : &_PyInstrumentation_MISSING; + if (super == NULL) { + _Py_call_instrumentation_exc2( + tstate, PY_MONITORING_EVENT_C_RAISE, + frame, this_instr, global_super, arg); + } + else { + int err = _Py_call_instrumentation_2args( + tstate, PY_MONITORING_EVENT_C_RETURN, + frame, this_instr, global_super, arg); + if (err < 0) { + Py_CLEAR(super); + } + } } + Py_DECREF(global_super); + Py_DECREF(class); + Py_DECREF(self); + if (super == NULL) goto pop_3_error; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg >> 2); + attr = PyObject_GetAttr(super, name); + Py_DECREF(super); + if (attr == NULL) goto pop_3_error; + null = NULL; } - #line 3089 "Python/generated_cases.c.h" - STACK_SHRINK(1); + stack_pointer[-3] = attr; + if (oparg & 1) stack_pointer[-2] = null; + stack_pointer += -2 + (oparg & 1); DISPATCH(); } - TARGET(POP_JUMP_IF_NOT_NONE) { - PyObject *value = stack_pointer[-1]; - #line 2198 "Python/bytecodes.c" - if (!Py_IsNone(value)) { - #line 3098 "Python/generated_cases.c.h" - Py_DECREF(value); - #line 2200 "Python/bytecodes.c" - JUMPBY(oparg); - } - #line 3103 "Python/generated_cases.c.h" - STACK_SHRINK(1); + TARGET(LOAD_SUPER_ATTR_ATTR) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(LOAD_SUPER_ATTR_ATTR); + static_assert(INLINE_CACHE_ENTRIES_LOAD_SUPER_ATTR == 1, "incorrect cache size"); + PyObject *self; + PyObject *class; + PyObject *global_super; + PyObject *attr; + /* Skip 1 cache entry */ + self = stack_pointer[-1]; + class = stack_pointer[-2]; + global_super = stack_pointer[-3]; + assert(!(oparg & 1)); + DEOPT_IF(global_super != (PyObject *)&PySuper_Type, LOAD_SUPER_ATTR); + DEOPT_IF(!PyType_Check(class), LOAD_SUPER_ATTR); + STAT_INC(LOAD_SUPER_ATTR, hit); + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg >> 2); + attr = _PySuper_Lookup((PyTypeObject *)class, self, name, NULL); + Py_DECREF(global_super); + Py_DECREF(class); + Py_DECREF(self); + if (attr == NULL) goto pop_3_error; + stack_pointer[-3] = attr; + stack_pointer += -2; DISPATCH(); } - TARGET(POP_JUMP_IF_NONE) { - PyObject *value = stack_pointer[-1]; - #line 2205 "Python/bytecodes.c" - if (Py_IsNone(value)) { - JUMPBY(oparg); + TARGET(LOAD_SUPER_ATTR_METHOD) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(LOAD_SUPER_ATTR_METHOD); + static_assert(INLINE_CACHE_ENTRIES_LOAD_SUPER_ATTR == 1, "incorrect cache size"); + PyObject *self; + PyObject *class; + PyObject *global_super; + PyObject *attr; + PyObject *self_or_null; + /* Skip 1 cache entry */ + self = stack_pointer[-1]; + class = stack_pointer[-2]; + global_super = stack_pointer[-3]; + assert(oparg & 1); + DEOPT_IF(global_super != (PyObject *)&PySuper_Type, LOAD_SUPER_ATTR); + DEOPT_IF(!PyType_Check(class), LOAD_SUPER_ATTR); + STAT_INC(LOAD_SUPER_ATTR, hit); + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg >> 2); + PyTypeObject *cls = (PyTypeObject *)class; + int method_found = 0; + attr = _PySuper_Lookup(cls, self, name, + Py_TYPE(self)->tp_getattro == PyObject_GenericGetAttr ? &method_found : NULL); + Py_DECREF(global_super); + Py_DECREF(class); + if (attr == NULL) { + Py_DECREF(self); + if (true) goto pop_3_error; } - else { - #line 3115 "Python/generated_cases.c.h" - Py_DECREF(value); - #line 2210 "Python/bytecodes.c" + if (method_found) { + self_or_null = self; // transfer ownership + } else { + Py_DECREF(self); + self_or_null = NULL; } - #line 3119 "Python/generated_cases.c.h" - STACK_SHRINK(1); + stack_pointer[-3] = attr; + stack_pointer[-2] = self_or_null; + stack_pointer += -1; DISPATCH(); } - TARGET(JUMP_BACKWARD_NO_INTERRUPT) { - #line 2214 "Python/bytecodes.c" - /* This bytecode is used in the `yield from` or `await` loop. - * If there is an interrupt, we want it handled in the innermost - * generator or coroutine, so we deliberately do not check it here. - * (see bpo-30039). - */ - JUMPBY(-oparg); - #line 3132 "Python/generated_cases.c.h" + TARGET(MAKE_CELL) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(MAKE_CELL); + // "initial" is probably NULL but not if it's an arg (or set + // via the f_locals proxy before MAKE_CELL has run). + PyObject *initial = GETLOCAL(oparg); + PyObject *cell = PyCell_New(initial); + if (cell == NULL) { + goto error; + } + SETLOCAL(oparg, cell); DISPATCH(); } - TARGET(GET_LEN) { - PyObject *obj = stack_pointer[-1]; - PyObject *len_o; - #line 2223 "Python/bytecodes.c" - // PUSH(len(TOS)) - Py_ssize_t len_i = PyObject_Length(obj); - if (len_i < 0) goto error; - len_o = PyLong_FromSsize_t(len_i); - if (len_o == NULL) goto error; - #line 3145 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = len_o; + TARGET(MAKE_FUNCTION) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(MAKE_FUNCTION); + PyObject *codeobj; + PyObject *func; + codeobj = stack_pointer[-1]; + PyFunctionObject *func_obj = (PyFunctionObject *) + PyFunction_New(codeobj, GLOBALS()); + Py_DECREF(codeobj); + if (func_obj == NULL) { + goto error; + } + _PyFunction_SetVersion( + func_obj, ((PyCodeObject *)codeobj)->co_version); + func = (PyObject *)func_obj; + stack_pointer[-1] = func; + DISPATCH(); + } + + TARGET(MAP_ADD) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(MAP_ADD); + PyObject *value; + PyObject *key; + PyObject *dict; + value = stack_pointer[-1]; + key = stack_pointer[-2]; + dict = stack_pointer[-3 - (oparg - 1)]; + assert(PyDict_CheckExact(dict)); + /* dict[key] = value */ + // Do not DECREF INPUTS because the function steals the references + if (_PyDict_SetItem_Take2((PyDictObject *)dict, key, value) != 0) goto pop_2_error; + stack_pointer += -2; DISPATCH(); } TARGET(MATCH_CLASS) { - PyObject *names = stack_pointer[-1]; - PyObject *type = stack_pointer[-2]; - PyObject *subject = stack_pointer[-3]; + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(MATCH_CLASS); + PyObject *names; + PyObject *type; + PyObject *subject; PyObject *attrs; - #line 2231 "Python/bytecodes.c" + names = stack_pointer[-1]; + type = stack_pointer[-2]; + subject = stack_pointer[-3]; // Pop TOS and TOS1. Set TOS to a tuple of attributes on success, or // None on failure. assert(PyTuple_CheckExact(names)); - attrs = match_class(tstate, subject, type, oparg, names); - #line 3161 "Python/generated_cases.c.h" + attrs = _PyEval_MatchClass(tstate, subject, type, oparg, names); Py_DECREF(subject); Py_DECREF(type); Py_DECREF(names); - #line 2236 "Python/bytecodes.c" if (attrs) { assert(PyTuple_CheckExact(attrs)); // Success! } else { if (_PyErr_Occurred(tstate)) goto pop_3_error; + // Error! attrs = Py_None; // Failure! } - #line 3173 "Python/generated_cases.c.h" - STACK_SHRINK(2); - stack_pointer[-1] = attrs; - DISPATCH(); - } - - TARGET(MATCH_MAPPING) { - PyObject *subject = stack_pointer[-1]; - PyObject *res; - #line 2246 "Python/bytecodes.c" - int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_MAPPING; - res = match ? Py_True : Py_False; - #line 3185 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = res; - PREDICT(POP_JUMP_IF_FALSE); - DISPATCH(); - } - - TARGET(MATCH_SEQUENCE) { - PyObject *subject = stack_pointer[-1]; - PyObject *res; - #line 2252 "Python/bytecodes.c" - int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_SEQUENCE; - res = match ? Py_True : Py_False; - #line 3198 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = res; - PREDICT(POP_JUMP_IF_FALSE); + stack_pointer[-3] = attrs; + stack_pointer += -2; DISPATCH(); } TARGET(MATCH_KEYS) { - PyObject *keys = stack_pointer[-1]; - PyObject *subject = stack_pointer[-2]; + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(MATCH_KEYS); + PyObject *keys; + PyObject *subject; PyObject *values_or_none; - #line 2258 "Python/bytecodes.c" + keys = stack_pointer[-1]; + subject = stack_pointer[-2]; // On successful match, PUSH(values). Otherwise, PUSH(None). - values_or_none = match_keys(tstate, subject, keys); + values_or_none = _PyEval_MatchKeys(tstate, subject, keys); if (values_or_none == NULL) goto error; - #line 3213 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = values_or_none; - DISPATCH(); - } - - TARGET(GET_ITER) { - PyObject *iterable = stack_pointer[-1]; - PyObject *iter; - #line 2264 "Python/bytecodes.c" - /* before: [obj]; after [getiter(obj)] */ - iter = PyObject_GetIter(iterable); - #line 3225 "Python/generated_cases.c.h" - Py_DECREF(iterable); - #line 2267 "Python/bytecodes.c" - if (iter == NULL) goto pop_1_error; - #line 3229 "Python/generated_cases.c.h" - stack_pointer[-1] = iter; - DISPATCH(); - } - - TARGET(GET_YIELD_FROM_ITER) { - PyObject *iterable = stack_pointer[-1]; - PyObject *iter; - #line 2271 "Python/bytecodes.c" - /* before: [obj]; after [getiter(obj)] */ - if (PyCoro_CheckExact(iterable)) { - /* `iterable` is a coroutine */ - if (!(frame->f_code->co_flags & (CO_COROUTINE | CO_ITERABLE_COROUTINE))) { - /* and it is used in a 'yield from' expression of a - regular generator. */ - _PyErr_SetString(tstate, PyExc_TypeError, - "cannot 'yield from' a coroutine object " - "in a non-coroutine generator"); - goto error; - } - iter = iterable; - } - else if (PyGen_CheckExact(iterable)) { - iter = iterable; - } - else { - /* `iterable` is not a generator. */ - iter = PyObject_GetIter(iterable); - if (iter == NULL) { - goto error; - } - #line 3260 "Python/generated_cases.c.h" - Py_DECREF(iterable); - #line 2294 "Python/bytecodes.c" - } - #line 3264 "Python/generated_cases.c.h" - stack_pointer[-1] = iter; - PREDICT(LOAD_CONST); + stack_pointer[0] = values_or_none; + stack_pointer += 1; DISPATCH(); } - TARGET(FOR_ITER) { - PREDICTED(FOR_ITER); - static_assert(INLINE_CACHE_ENTRIES_FOR_ITER == 1, "incorrect cache size"); - PyObject *iter = stack_pointer[-1]; - PyObject *next; - #line 2313 "Python/bytecodes.c" - #if ENABLE_SPECIALIZATION - _PyForIterCache *cache = (_PyForIterCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { - next_instr--; - _Py_Specialize_ForIter(iter, next_instr, oparg); - DISPATCH_SAME_OPARG(); - } - STAT_INC(FOR_ITER, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache->counter); - #endif /* ENABLE_SPECIALIZATION */ - /* before: [iter]; after: [iter, iter()] *or* [] (and jump over END_FOR.) */ - next = (*Py_TYPE(iter)->tp_iternext)(iter); - if (next == NULL) { - if (_PyErr_Occurred(tstate)) { - if (!_PyErr_ExceptionMatches(tstate, PyExc_StopIteration)) { - goto error; - } - monitor_raise(tstate, frame, next_instr-1); - _PyErr_Clear(tstate); - } - /* iterator ended normally */ - assert(next_instr[INLINE_CACHE_ENTRIES_FOR_ITER + oparg].op.code == END_FOR || - next_instr[INLINE_CACHE_ENTRIES_FOR_ITER + oparg].op.code == INSTRUMENTED_END_FOR); - Py_DECREF(iter); - STACK_SHRINK(1); - /* Jump forward oparg, then skip following END_FOR instruction */ - JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER + oparg + 1); - DISPATCH(); - } - // Common case: no jump, leave it to the code generator - #line 3306 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = next; + TARGET(MATCH_MAPPING) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(MATCH_MAPPING); + PyObject *subject; + PyObject *res; + subject = stack_pointer[-1]; + int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_MAPPING; + res = match ? Py_True : Py_False; + stack_pointer[0] = res; + stack_pointer += 1; DISPATCH(); } - TARGET(INSTRUMENTED_FOR_ITER) { - #line 2346 "Python/bytecodes.c" - _Py_CODEUNIT *here = next_instr-1; - _Py_CODEUNIT *target; - PyObject *iter = TOP(); - PyObject *next = (*Py_TYPE(iter)->tp_iternext)(iter); - if (next != NULL) { - PUSH(next); - target = next_instr + INLINE_CACHE_ENTRIES_FOR_ITER; - } - else { - if (_PyErr_Occurred(tstate)) { - if (!_PyErr_ExceptionMatches(tstate, PyExc_StopIteration)) { - goto error; - } - monitor_raise(tstate, frame, here); - _PyErr_Clear(tstate); - } - /* iterator ended normally */ - assert(next_instr[INLINE_CACHE_ENTRIES_FOR_ITER + oparg].op.code == END_FOR || - next_instr[INLINE_CACHE_ENTRIES_FOR_ITER + oparg].op.code == INSTRUMENTED_END_FOR); - STACK_SHRINK(1); - Py_DECREF(iter); - /* Skip END_FOR */ - target = next_instr + INLINE_CACHE_ENTRIES_FOR_ITER + oparg + 1; - } - INSTRUMENTED_JUMP(here, target, PY_MONITORING_EVENT_BRANCH); - #line 3340 "Python/generated_cases.c.h" - DISPATCH(); - } - - TARGET(FOR_ITER_LIST) { - PyObject *iter = stack_pointer[-1]; - PyObject *next; - #line 2374 "Python/bytecodes.c" - DEOPT_IF(Py_TYPE(iter) != &PyListIter_Type, FOR_ITER); - _PyListIterObject *it = (_PyListIterObject *)iter; - STAT_INC(FOR_ITER, hit); - PyListObject *seq = it->it_seq; - if (seq) { - if (it->it_index < PyList_GET_SIZE(seq)) { - next = Py_NewRef(PyList_GET_ITEM(seq, it->it_index++)); - goto end_for_iter_list; // End of this instruction - } - it->it_seq = NULL; - Py_DECREF(seq); - } - Py_DECREF(iter); - STACK_SHRINK(1); - /* Jump forward oparg, then skip following END_FOR instruction */ - JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER + oparg + 1); - DISPATCH(); - end_for_iter_list: - // Common case: no jump, leave it to the code generator - #line 3367 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = next; + TARGET(MATCH_SEQUENCE) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(MATCH_SEQUENCE); + PyObject *subject; + PyObject *res; + subject = stack_pointer[-1]; + int match = Py_TYPE(subject)->tp_flags & Py_TPFLAGS_SEQUENCE; + res = match ? Py_True : Py_False; + stack_pointer[0] = res; + stack_pointer += 1; DISPATCH(); } - TARGET(FOR_ITER_TUPLE) { - PyObject *iter = stack_pointer[-1]; - PyObject *next; - #line 2396 "Python/bytecodes.c" - _PyTupleIterObject *it = (_PyTupleIterObject *)iter; - DEOPT_IF(Py_TYPE(it) != &PyTupleIter_Type, FOR_ITER); - STAT_INC(FOR_ITER, hit); - PyTupleObject *seq = it->it_seq; - if (seq) { - if (it->it_index < PyTuple_GET_SIZE(seq)) { - next = Py_NewRef(PyTuple_GET_ITEM(seq, it->it_index++)); - goto end_for_iter_tuple; // End of this instruction - } - it->it_seq = NULL; - Py_DECREF(seq); - } - Py_DECREF(iter); - STACK_SHRINK(1); - /* Jump forward oparg, then skip following END_FOR instruction */ - JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER + oparg + 1); - DISPATCH(); - end_for_iter_tuple: - // Common case: no jump, leave it to the code generator - #line 3397 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = next; + TARGET(NOP) { + frame->instr_ptr = next_instr; next_instr += 1; + INSTRUCTION_STATS(NOP); DISPATCH(); } - TARGET(FOR_ITER_RANGE) { - PyObject *iter = stack_pointer[-1]; - PyObject *next; - #line 2418 "Python/bytecodes.c" - _PyRangeIterObject *r = (_PyRangeIterObject *)iter; - DEOPT_IF(Py_TYPE(r) != &PyRangeIter_Type, FOR_ITER); - STAT_INC(FOR_ITER, hit); - if (r->len <= 0) { - STACK_SHRINK(1); - Py_DECREF(r); - // Jump over END_FOR instruction. - JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER + oparg + 1); - DISPATCH(); - } - long value = r->start; - r->start = value + r->step; - r->len--; - next = PyLong_FromLong(value); - if (next == NULL) { - goto error; - } - #line 3425 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = next; + TARGET(POP_EXCEPT) { + frame->instr_ptr = next_instr; next_instr += 1; - DISPATCH(); - } - - TARGET(FOR_ITER_GEN) { - PyObject *iter = stack_pointer[-1]; - #line 2438 "Python/bytecodes.c" - DEOPT_IF(tstate->interp->eval_frame, FOR_ITER); - PyGenObject *gen = (PyGenObject *)iter; - DEOPT_IF(Py_TYPE(gen) != &PyGen_Type, FOR_ITER); - DEOPT_IF(gen->gi_frame_state >= FRAME_EXECUTING, FOR_ITER); - STAT_INC(FOR_ITER, hit); - _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe; - frame->return_offset = oparg; - _PyFrame_StackPush(gen_frame, Py_None); - gen->gi_frame_state = FRAME_EXECUTING; - gen->gi_exc_state.previous_item = tstate->exc_info; - tstate->exc_info = &gen->gi_exc_state; - JUMPBY(INLINE_CACHE_ENTRIES_FOR_ITER); - assert(next_instr[oparg].op.code == END_FOR || - next_instr[oparg].op.code == INSTRUMENTED_END_FOR); - DISPATCH_INLINED(gen_frame); - #line 3450 "Python/generated_cases.c.h" + INSTRUCTION_STATS(POP_EXCEPT); + PyObject *exc_value; + exc_value = stack_pointer[-1]; + _PyErr_StackItem *exc_info = tstate->exc_info; + Py_XSETREF(exc_info->exc_value, exc_value == Py_None ? NULL : exc_value); + stack_pointer += -1; + DISPATCH(); } - TARGET(BEFORE_ASYNC_WITH) { - PyObject *mgr = stack_pointer[-1]; - PyObject *exit; - PyObject *res; - #line 2456 "Python/bytecodes.c" - PyObject *enter = _PyObject_LookupSpecial(mgr, &_Py_ID(__aenter__)); - if (enter == NULL) { - if (!_PyErr_Occurred(tstate)) { - _PyErr_Format(tstate, PyExc_TypeError, - "'%.200s' object does not support the " - "asynchronous context manager protocol", - Py_TYPE(mgr)->tp_name); + TARGET(POP_JUMP_IF_FALSE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 2; + INSTRUCTION_STATS(POP_JUMP_IF_FALSE); + PyObject *cond; + /* Skip 1 cache entry */ + cond = stack_pointer[-1]; + assert(PyBool_Check(cond)); + int flag = Py_IsFalse(cond); + #if ENABLE_SPECIALIZATION + this_instr[1].cache = (this_instr[1].cache << 1) | flag; + #endif + JUMPBY(oparg * flag); + stack_pointer += -1; + DISPATCH(); + } + + TARGET(POP_JUMP_IF_NONE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 2; + INSTRUCTION_STATS(POP_JUMP_IF_NONE); + PyObject *value; + PyObject *b; + PyObject *cond; + /* Skip 1 cache entry */ + // _IS_NONE + value = stack_pointer[-1]; + { + if (Py_IsNone(value)) { + b = Py_True; } - goto error; - } - exit = _PyObject_LookupSpecial(mgr, &_Py_ID(__aexit__)); - if (exit == NULL) { - if (!_PyErr_Occurred(tstate)) { - _PyErr_Format(tstate, PyExc_TypeError, - "'%.200s' object does not support the " - "asynchronous context manager protocol " - "(missed __aexit__ method)", - Py_TYPE(mgr)->tp_name); + else { + b = Py_False; + Py_DECREF(value); } - Py_DECREF(enter); - goto error; } - #line 3480 "Python/generated_cases.c.h" - Py_DECREF(mgr); - #line 2479 "Python/bytecodes.c" - res = _PyObject_CallNoArgs(enter); - Py_DECREF(enter); - if (res == NULL) { - Py_DECREF(exit); - if (true) goto pop_1_error; + // _POP_JUMP_IF_TRUE + cond = b; + { + assert(PyBool_Check(cond)); + int flag = Py_IsTrue(cond); + #if ENABLE_SPECIALIZATION + this_instr[1].cache = (this_instr[1].cache << 1) | flag; + #endif + JUMPBY(oparg * flag); } - #line 3489 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = res; - stack_pointer[-2] = exit; - PREDICT(GET_AWAITABLE); + stack_pointer += -1; DISPATCH(); } - TARGET(BEFORE_WITH) { - PyObject *mgr = stack_pointer[-1]; - PyObject *exit; - PyObject *res; - #line 2489 "Python/bytecodes.c" - /* pop the context manager, push its __exit__ and the - * value returned from calling its __enter__ - */ - PyObject *enter = _PyObject_LookupSpecial(mgr, &_Py_ID(__enter__)); - if (enter == NULL) { - if (!_PyErr_Occurred(tstate)) { - _PyErr_Format(tstate, PyExc_TypeError, - "'%.200s' object does not support the " - "context manager protocol", - Py_TYPE(mgr)->tp_name); + TARGET(POP_JUMP_IF_NOT_NONE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 2; + INSTRUCTION_STATS(POP_JUMP_IF_NOT_NONE); + PyObject *value; + PyObject *b; + PyObject *cond; + /* Skip 1 cache entry */ + // _IS_NONE + value = stack_pointer[-1]; + { + if (Py_IsNone(value)) { + b = Py_True; } - goto error; - } - exit = _PyObject_LookupSpecial(mgr, &_Py_ID(__exit__)); - if (exit == NULL) { - if (!_PyErr_Occurred(tstate)) { - _PyErr_Format(tstate, PyExc_TypeError, - "'%.200s' object does not support the " - "context manager protocol " - "(missed __exit__ method)", - Py_TYPE(mgr)->tp_name); + else { + b = Py_False; + Py_DECREF(value); } - Py_DECREF(enter); - goto error; } - #line 3527 "Python/generated_cases.c.h" - Py_DECREF(mgr); - #line 2515 "Python/bytecodes.c" - res = _PyObject_CallNoArgs(enter); - Py_DECREF(enter); - if (res == NULL) { - Py_DECREF(exit); - if (true) goto pop_1_error; + // _POP_JUMP_IF_FALSE + cond = b; + { + assert(PyBool_Check(cond)); + int flag = Py_IsFalse(cond); + #if ENABLE_SPECIALIZATION + this_instr[1].cache = (this_instr[1].cache << 1) | flag; + #endif + JUMPBY(oparg * flag); } - #line 3536 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = res; - stack_pointer[-2] = exit; + stack_pointer += -1; DISPATCH(); } - TARGET(WITH_EXCEPT_START) { - PyObject *val = stack_pointer[-1]; - PyObject *lasti = stack_pointer[-3]; - PyObject *exit_func = stack_pointer[-4]; - PyObject *res; - #line 2524 "Python/bytecodes.c" - /* At the top of the stack are 4 values: - - val: TOP = exc_info() - - unused: SECOND = previous exception - - lasti: THIRD = lasti of exception in exc_info() - - exit_func: FOURTH = the context.__exit__ bound method - We call FOURTH(type(TOP), TOP, GetTraceback(TOP)). - Then we push the __exit__ return value. - */ - PyObject *exc, *tb; + TARGET(POP_JUMP_IF_TRUE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 2; + INSTRUCTION_STATS(POP_JUMP_IF_TRUE); + PyObject *cond; + /* Skip 1 cache entry */ + cond = stack_pointer[-1]; + assert(PyBool_Check(cond)); + int flag = Py_IsTrue(cond); + #if ENABLE_SPECIALIZATION + this_instr[1].cache = (this_instr[1].cache << 1) | flag; + #endif + JUMPBY(oparg * flag); + stack_pointer += -1; + DISPATCH(); + } - assert(val && PyExceptionInstance_Check(val)); - exc = PyExceptionInstance_Class(val); - tb = PyException_GetTraceback(val); - if (tb == NULL) { - tb = Py_None; - } - else { - Py_DECREF(tb); - } - assert(PyLong_Check(lasti)); - (void)lasti; // Shut up compiler warning if asserts are off - PyObject *stack[4] = {NULL, exc, val, tb}; - res = PyObject_Vectorcall(exit_func, stack + 1, - 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL); - if (res == NULL) goto error; - #line 3574 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = res; + TARGET(POP_TOP) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(POP_TOP); + PyObject *value; + value = stack_pointer[-1]; + Py_DECREF(value); + stack_pointer += -1; DISPATCH(); } TARGET(PUSH_EXC_INFO) { - PyObject *new_exc = stack_pointer[-1]; + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(PUSH_EXC_INFO); + PyObject *new_exc; PyObject *prev_exc; - #line 2552 "Python/bytecodes.c" + new_exc = stack_pointer[-1]; _PyErr_StackItem *exc_info = tstate->exc_info; if (exc_info->exc_value != NULL) { prev_exc = exc_info->exc_value; @@ -3589,1221 +5058,1226 @@ } assert(PyExceptionInstance_Check(new_exc)); exc_info->exc_value = Py_NewRef(new_exc); - #line 3593 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = new_exc; - stack_pointer[-2] = prev_exc; + stack_pointer[-1] = prev_exc; + stack_pointer[0] = new_exc; + stack_pointer += 1; DISPATCH(); } - TARGET(LOAD_ATTR_METHOD_WITH_VALUES) { - PyObject *self = stack_pointer[-1]; - PyObject *res2 = NULL; + TARGET(PUSH_NULL) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(PUSH_NULL); PyObject *res; - uint32_t type_version = read_u32(&next_instr[1].cache); - uint32_t keys_version = read_u32(&next_instr[3].cache); - PyObject *descr = read_obj(&next_instr[5].cache); - #line 2564 "Python/bytecodes.c" - /* Cached method object */ - PyTypeObject *self_cls = Py_TYPE(self); - assert(type_version != 0); - DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); - assert(self_cls->tp_flags & Py_TPFLAGS_MANAGED_DICT); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(self); - DEOPT_IF(!_PyDictOrValues_IsValues(dorv), LOAD_ATTR); - PyHeapTypeObject *self_heap_type = (PyHeapTypeObject *)self_cls; - DEOPT_IF(self_heap_type->ht_cached_keys->dk_version != - keys_version, LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); - assert(descr != NULL); - res2 = Py_NewRef(descr); - assert(_PyType_HasFeature(Py_TYPE(res2), Py_TPFLAGS_METHOD_DESCRIPTOR)); - res = self; - assert(oparg & 1); - #line 3624 "Python/generated_cases.c.h" - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } - next_instr += 9; + res = NULL; + stack_pointer[0] = res; + stack_pointer += 1; DISPATCH(); } - TARGET(LOAD_ATTR_METHOD_NO_DICT) { - PyObject *self = stack_pointer[-1]; - PyObject *res2 = NULL; - PyObject *res; - uint32_t type_version = read_u32(&next_instr[1].cache); - PyObject *descr = read_obj(&next_instr[5].cache); - #line 2583 "Python/bytecodes.c" - PyTypeObject *self_cls = Py_TYPE(self); - DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); - assert(self_cls->tp_dictoffset == 0); - STAT_INC(LOAD_ATTR, hit); - assert(descr != NULL); - assert(_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)); - res2 = Py_NewRef(descr); - res = self; - assert(oparg & 1); - #line 3648 "Python/generated_cases.c.h" - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } - next_instr += 9; + TARGET(RAISE_VARARGS) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(RAISE_VARARGS); + PyObject **args; + args = &stack_pointer[-oparg]; + PyObject *cause = NULL, *exc = NULL; + switch (oparg) { + case 2: + cause = args[1]; + /* fall through */ + case 1: + exc = args[0]; + /* fall through */ + case 0: + if (do_raise(tstate, exc, cause)) { + assert(oparg == 0); + monitor_reraise(tstate, frame, this_instr); + goto exception_unwind; + } + break; + default: + _PyErr_SetString(tstate, PyExc_SystemError, + "bad RAISE_VARARGS oparg"); + break; + } + if (true) { stack_pointer += -oparg; goto error; } + } + + TARGET(RERAISE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + (void)this_instr; + next_instr += 1; + INSTRUCTION_STATS(RERAISE); + PyObject *exc; + PyObject **values; + exc = stack_pointer[-1]; + values = &stack_pointer[-1 - oparg]; + assert(oparg >= 0 && oparg <= 2); + if (oparg) { + PyObject *lasti = values[0]; + if (PyLong_Check(lasti)) { + frame->instr_ptr = _PyCode_CODE(_PyFrame_GetCode(frame)) + PyLong_AsLong(lasti); + assert(!_PyErr_Occurred(tstate)); + } + else { + assert(PyLong_Check(lasti)); + _PyErr_SetString(tstate, PyExc_SystemError, "lasti is not an int"); + goto error; + } + } + assert(exc && PyExceptionInstance_Check(exc)); + Py_INCREF(exc); + _PyErr_SetRaisedException(tstate, exc); + monitor_reraise(tstate, frame, this_instr); + goto exception_unwind; + } + + TARGET(RESERVED) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(RESERVED); + assert(0 && "Executing RESERVED instruction."); + Py_FatalError("Executing RESERVED instruction."); DISPATCH(); } - TARGET(LOAD_ATTR_METHOD_LAZY_DICT) { - PyObject *self = stack_pointer[-1]; - PyObject *res2 = NULL; - PyObject *res; - uint32_t type_version = read_u32(&next_instr[1].cache); - PyObject *descr = read_obj(&next_instr[5].cache); - #line 2595 "Python/bytecodes.c" - PyTypeObject *self_cls = Py_TYPE(self); - DEOPT_IF(self_cls->tp_version_tag != type_version, LOAD_ATTR); - Py_ssize_t dictoffset = self_cls->tp_dictoffset; - assert(dictoffset > 0); - PyObject *dict = *(PyObject **)((char *)self + dictoffset); - /* This object has a __dict__, just not yet created */ - DEOPT_IF(dict != NULL, LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); - assert(descr != NULL); - assert(_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)); - res2 = Py_NewRef(descr); - res = self; - assert(oparg & 1); - #line 3676 "Python/generated_cases.c.h" - STACK_GROW(((oparg & 1) ? 1 : 0)); - stack_pointer[-1] = res; - if (oparg & 1) { stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))] = res2; } - next_instr += 9; + TARGET(RESUME) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(RESUME); + PREDICTED(RESUME); + _Py_CODEUNIT *this_instr = next_instr - 1; + (void)this_instr; + assert(frame == tstate->current_frame); + #ifdef Py_GIL_DISABLED + // For thread-safety, we need to check instrumentation version + // even when tracing. Otherwise, another thread may concurrently + // re-write the bytecode while we are executing this function. + int check_instrumentation = 1; + #else + int check_instrumentation = (tstate->tracing == 0); + #endif + if (check_instrumentation) { + uintptr_t global_version = + _Py_atomic_load_uintptr_relaxed(&tstate->eval_breaker) & + ~_PY_EVAL_EVENTS_MASK; + PyCodeObject* code = _PyFrame_GetCode(frame); + uintptr_t code_version = FT_ATOMIC_LOAD_UINTPTR_ACQUIRE(code->_co_instrumentation_version); + assert((code_version & 255) == 0); + if (code_version != global_version) { + int err = _Py_Instrument(_PyFrame_GetCode(frame), tstate->interp); + if (err) goto error; + next_instr = this_instr; + DISPATCH(); + } + assert(this_instr->op.code == RESUME || + this_instr->op.code == RESUME_CHECK || + this_instr->op.code == INSTRUMENTED_RESUME || + this_instr->op.code == ENTER_EXECUTOR); + if (this_instr->op.code == RESUME) { + #if ENABLE_SPECIALIZATION + FT_ATOMIC_STORE_UINT8_RELAXED(this_instr->op.code, RESUME_CHECK); + #endif /* ENABLE_SPECIALIZATION */ + } + } + if ((oparg & RESUME_OPARG_LOCATION_MASK) < RESUME_AFTER_YIELD_FROM) { + CHECK_EVAL_BREAKER(); + } DISPATCH(); } - TARGET(KW_NAMES) { - #line 2611 "Python/bytecodes.c" - assert(kwnames == NULL); - assert(oparg < PyTuple_GET_SIZE(frame->f_code->co_consts)); - kwnames = GETITEM(frame->f_code->co_consts, oparg); - #line 3689 "Python/generated_cases.c.h" + TARGET(RESUME_CHECK) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(RESUME_CHECK); + static_assert(0 == 0, "incorrect cache size"); + #if defined(__EMSCRIPTEN__) + DEOPT_IF(_Py_emscripten_signal_clock == 0, RESUME); + _Py_emscripten_signal_clock -= Py_EMSCRIPTEN_SIGNAL_HANDLING; + #endif + uintptr_t eval_breaker = _Py_atomic_load_uintptr_relaxed(&tstate->eval_breaker); + uintptr_t version = FT_ATOMIC_LOAD_UINTPTR_ACQUIRE(_PyFrame_GetCode(frame)->_co_instrumentation_version); + assert((version & _PY_EVAL_EVENTS_MASK) == 0); + DEOPT_IF(eval_breaker != version, RESUME); DISPATCH(); } - TARGET(INSTRUMENTED_CALL) { - #line 2617 "Python/bytecodes.c" - int is_meth = PEEK(oparg+2) != NULL; - int total_args = oparg + is_meth; - PyObject *function = PEEK(total_args + 1); - PyObject *arg = total_args == 0 ? - &_PyInstrumentation_MISSING : PEEK(total_args); - int err = _Py_call_instrumentation_2args( - tstate, PY_MONITORING_EVENT_CALL, - frame, next_instr-1, function, arg); - if (err) goto error; - _PyCallCache *cache = (_PyCallCache *)next_instr; - INCREMENT_ADAPTIVE_COUNTER(cache->counter); - GO_TO_INSTRUCTION(CALL); - #line 3707 "Python/generated_cases.c.h" + TARGET(RETURN_CONST) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(RETURN_CONST); + PyObject *value; + PyObject *retval; + // _LOAD_CONST + { + value = GETITEM(FRAME_CO_CONSTS, oparg); + Py_INCREF(value); + } + // _POP_FRAME + retval = value; + { + #if TIER_ONE + assert(frame != &entry_frame); + #endif + _PyFrame_SetStackPointer(frame, stack_pointer); + assert(EMPTY()); + _Py_LeaveRecursiveCallPy(tstate); + // GH-99729: We need to unlink the frame *before* clearing it: + _PyInterpreterFrame *dying = frame; + frame = tstate->current_frame = dying->previous; + _PyEval_FrameClearAndPop(tstate, dying); + _PyFrame_StackPush(frame, retval); + LOAD_SP(); + LOAD_IP(frame->return_offset); + LLTRACE_RESUME_FRAME(); + } + DISPATCH(); } - TARGET(CALL) { - PREDICTED(CALL); - static_assert(INLINE_CACHE_ENTRIES_CALL == 3, "incorrect cache size"); - PyObject **args = (stack_pointer - oparg); - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *method = stack_pointer[-(2 + oparg)]; + TARGET(RETURN_GENERATOR) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(RETURN_GENERATOR); PyObject *res; - #line 2662 "Python/bytecodes.c" - int is_meth = method != NULL; - int total_args = oparg; - if (is_meth) { - callable = method; - args--; - total_args++; - } - #if ENABLE_SPECIALIZATION - _PyCallCache *cache = (_PyCallCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { - next_instr--; - _Py_Specialize_Call(callable, next_instr, total_args, kwnames); - DISPATCH_SAME_OPARG(); - } - STAT_INC(CALL, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache->counter); - #endif /* ENABLE_SPECIALIZATION */ - if (!is_meth && Py_TYPE(callable) == &PyMethod_Type) { - is_meth = 1; // For consistenct; it's dead, though - args--; - total_args++; - PyObject *self = ((PyMethodObject *)callable)->im_self; - args[0] = Py_NewRef(self); - method = ((PyMethodObject *)callable)->im_func; - args[-1] = Py_NewRef(method); - Py_DECREF(callable); - callable = method; + assert(PyFunction_Check(frame->f_funcobj)); + PyFunctionObject *func = (PyFunctionObject *)frame->f_funcobj; + PyGenObject *gen = (PyGenObject *)_Py_MakeCoro(func); + if (gen == NULL) { + goto error; } - int positional_args = total_args - KWNAMES_LEN(); - // Check if the call can be inlined or not - if (Py_TYPE(callable) == &PyFunction_Type && - tstate->interp->eval_frame == NULL && - ((PyFunctionObject *)callable)->vectorcall == _PyFunction_Vectorcall) + assert(EMPTY()); + _PyFrame_SetStackPointer(frame, stack_pointer); + _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe; + frame->instr_ptr++; + _PyFrame_Copy(frame, gen_frame); + assert(frame->frame_obj == NULL); + gen->gi_frame_state = FRAME_CREATED; + gen_frame->owner = FRAME_OWNED_BY_GENERATOR; + _Py_LeaveRecursiveCallPy(tstate); + res = (PyObject *)gen; + _PyInterpreterFrame *prev = frame->previous; + _PyThreadState_PopFrame(tstate, frame); + frame = tstate->current_frame = prev; + LOAD_IP(frame->return_offset); + LOAD_SP(); + LLTRACE_RESUME_FRAME(); + stack_pointer[0] = res; + stack_pointer += 1; + DISPATCH(); + } + + TARGET(RETURN_VALUE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(RETURN_VALUE); + PyObject *retval; + retval = stack_pointer[-1]; + #if TIER_ONE + assert(frame != &entry_frame); + #endif + stack_pointer += -1; + _PyFrame_SetStackPointer(frame, stack_pointer); + assert(EMPTY()); + _Py_LeaveRecursiveCallPy(tstate); + // GH-99729: We need to unlink the frame *before* clearing it: + _PyInterpreterFrame *dying = frame; + frame = tstate->current_frame = dying->previous; + _PyEval_FrameClearAndPop(tstate, dying); + _PyFrame_StackPush(frame, retval); + LOAD_SP(); + LOAD_IP(frame->return_offset); + LLTRACE_RESUME_FRAME(); + DISPATCH(); + } + + TARGET(SEND) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(SEND); + PREDICTED(SEND); + _Py_CODEUNIT *this_instr = next_instr - 2; + (void)this_instr; + PyObject *receiver; + PyObject *v; + PyObject *retval; + // _SPECIALIZE_SEND + receiver = stack_pointer[-2]; { - int code_flags = ((PyCodeObject*)PyFunction_GET_CODE(callable))->co_flags; - PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(callable)); - _PyInterpreterFrame *new_frame = _PyEvalFramePushAndInit( - tstate, (PyFunctionObject *)callable, locals, - args, positional_args, kwnames - ); - kwnames = NULL; - // Manipulate stack directly since we leave using DISPATCH_INLINED(). - STACK_SHRINK(oparg + 2); - // The frame has stolen all the arguments from the stack, - // so there is no need to clean them up. - if (new_frame == NULL) { - goto error; + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + next_instr = this_instr; + _Py_Specialize_Send(receiver, next_instr); + DISPATCH_SAME_OPARG(); } - JUMPBY(INLINE_CACHE_ENTRIES_CALL); - frame->return_offset = 0; - DISPATCH_INLINED(new_frame); + STAT_INC(SEND, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ } - /* Callable is not a normal Python function */ - res = PyObject_Vectorcall( - callable, args, - positional_args | PY_VECTORCALL_ARGUMENTS_OFFSET, - kwnames); - if (opcode == INSTRUMENTED_CALL) { - PyObject *arg = total_args == 0 ? - &_PyInstrumentation_MISSING : PEEK(total_args); - if (res == NULL) { - _Py_call_instrumentation_exc2( - tstate, PY_MONITORING_EVENT_C_RAISE, - frame, next_instr-1, callable, arg); + // _SEND + v = stack_pointer[-1]; + { + assert(frame != &entry_frame); + if ((tstate->interp->eval_frame == NULL) && + (Py_TYPE(receiver) == &PyGen_Type || Py_TYPE(receiver) == &PyCoro_Type) && + ((PyGenObject *)receiver)->gi_frame_state < FRAME_EXECUTING) + { + PyGenObject *gen = (PyGenObject *)receiver; + _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe; + STACK_SHRINK(1); + _PyFrame_StackPush(gen_frame, v); + gen->gi_frame_state = FRAME_EXECUTING; + gen->gi_exc_state.previous_item = tstate->exc_info; + tstate->exc_info = &gen->gi_exc_state; + assert(next_instr - this_instr + oparg <= UINT16_MAX); + frame->return_offset = (uint16_t)(next_instr - this_instr + oparg); + DISPATCH_INLINED(gen_frame); + } + if (Py_IsNone(v) && PyIter_Check(receiver)) { + retval = Py_TYPE(receiver)->tp_iternext(receiver); } else { - int err = _Py_call_instrumentation_2args( - tstate, PY_MONITORING_EVENT_C_RETURN, - frame, next_instr-1, callable, arg); - if (err < 0) { - Py_CLEAR(res); + retval = PyObject_CallMethodOneArg(receiver, &_Py_ID(send), v); + } + if (retval == NULL) { + if (_PyErr_ExceptionMatches(tstate, PyExc_StopIteration) + ) { + _PyEval_MonitorRaise(tstate, frame, this_instr); + } + if (_PyGen_FetchStopIterationValue(&retval) == 0) { + assert(retval != NULL); + JUMPBY(oparg); + } + else { + goto error; } } + Py_DECREF(v); } - kwnames = NULL; - assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); - Py_DECREF(callable); - for (int i = 0; i < total_args; i++) { - Py_DECREF(args[i]); - } - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3799 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; - CHECK_EVAL_BREAKER(); + stack_pointer[-1] = retval; DISPATCH(); } - TARGET(CALL_BOUND_METHOD_EXACT_ARGS) { - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *method = stack_pointer[-(2 + oparg)]; - #line 2750 "Python/bytecodes.c" - DEOPT_IF(method != NULL, CALL); - DEOPT_IF(Py_TYPE(callable) != &PyMethod_Type, CALL); - STAT_INC(CALL, hit); - PyObject *self = ((PyMethodObject *)callable)->im_self; - PEEK(oparg + 1) = Py_NewRef(self); // callable - PyObject *meth = ((PyMethodObject *)callable)->im_func; - PEEK(oparg + 2) = Py_NewRef(meth); // method - Py_DECREF(callable); - GO_TO_INSTRUCTION(CALL_PY_EXACT_ARGS); - #line 3821 "Python/generated_cases.c.h" - } - - TARGET(CALL_PY_EXACT_ARGS) { - PREDICTED(CALL_PY_EXACT_ARGS); - PyObject **args = (stack_pointer - oparg); - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *method = stack_pointer[-(2 + oparg)]; - uint32_t func_version = read_u32(&next_instr[1].cache); - #line 2762 "Python/bytecodes.c" - assert(kwnames == NULL); - DEOPT_IF(tstate->interp->eval_frame, CALL); - int is_meth = method != NULL; - int argcount = oparg; - if (is_meth) { - callable = method; - args--; - argcount++; - } - DEOPT_IF(!PyFunction_Check(callable), CALL); - PyFunctionObject *func = (PyFunctionObject *)callable; - DEOPT_IF(func->func_version != func_version, CALL); - PyCodeObject *code = (PyCodeObject *)func->func_code; - DEOPT_IF(code->co_argcount != argcount, CALL); - DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), CALL); - STAT_INC(CALL, hit); - _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, func, argcount); - for (int i = 0; i < argcount; i++) { - new_frame->localsplus[i] = args[i]; - } - // Manipulate stack directly since we leave using DISPATCH_INLINED(). - STACK_SHRINK(oparg + 2); - JUMPBY(INLINE_CACHE_ENTRIES_CALL); - frame->return_offset = 0; - DISPATCH_INLINED(new_frame); - #line 3856 "Python/generated_cases.c.h" - } - - TARGET(CALL_PY_WITH_DEFAULTS) { - PyObject **args = (stack_pointer - oparg); - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *method = stack_pointer[-(2 + oparg)]; - uint32_t func_version = read_u32(&next_instr[1].cache); - #line 2790 "Python/bytecodes.c" - assert(kwnames == NULL); - DEOPT_IF(tstate->interp->eval_frame, CALL); - int is_meth = method != NULL; - int argcount = oparg; - if (is_meth) { - callable = method; - args--; - argcount++; - } - DEOPT_IF(!PyFunction_Check(callable), CALL); - PyFunctionObject *func = (PyFunctionObject *)callable; - DEOPT_IF(func->func_version != func_version, CALL); - PyCodeObject *code = (PyCodeObject *)func->func_code; - assert(func->func_defaults); - assert(PyTuple_CheckExact(func->func_defaults)); - int defcount = (int)PyTuple_GET_SIZE(func->func_defaults); - assert(defcount <= code->co_argcount); - int min_args = code->co_argcount - defcount; - DEOPT_IF(argcount > code->co_argcount, CALL); - DEOPT_IF(argcount < min_args, CALL); - DEOPT_IF(!_PyThreadState_HasStackSpace(tstate, code->co_framesize), CALL); - STAT_INC(CALL, hit); - _PyInterpreterFrame *new_frame = _PyFrame_PushUnchecked(tstate, func, code->co_argcount); - for (int i = 0; i < argcount; i++) { - new_frame->localsplus[i] = args[i]; - } - for (int i = argcount; i < code->co_argcount; i++) { - PyObject *def = PyTuple_GET_ITEM(func->func_defaults, i - min_args); - new_frame->localsplus[i] = Py_NewRef(def); - } - // Manipulate stack and cache directly since we leave using DISPATCH_INLINED(). - STACK_SHRINK(oparg + 2); - JUMPBY(INLINE_CACHE_ENTRIES_CALL); - frame->return_offset = 0; - DISPATCH_INLINED(new_frame); - #line 3900 "Python/generated_cases.c.h" + TARGET(SEND_GEN) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(SEND_GEN); + static_assert(INLINE_CACHE_ENTRIES_SEND == 1, "incorrect cache size"); + PyObject *v; + PyObject *receiver; + /* Skip 1 cache entry */ + v = stack_pointer[-1]; + receiver = stack_pointer[-2]; + DEOPT_IF(tstate->interp->eval_frame, SEND); + PyGenObject *gen = (PyGenObject *)receiver; + DEOPT_IF(Py_TYPE(gen) != &PyGen_Type && Py_TYPE(gen) != &PyCoro_Type, SEND); + DEOPT_IF(gen->gi_frame_state >= FRAME_EXECUTING, SEND); + STAT_INC(SEND, hit); + _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe; + STACK_SHRINK(1); + _PyFrame_StackPush(gen_frame, v); + gen->gi_frame_state = FRAME_EXECUTING; + gen->gi_exc_state.previous_item = tstate->exc_info; + tstate->exc_info = &gen->gi_exc_state; + assert(next_instr - this_instr + oparg <= UINT16_MAX); + frame->return_offset = (uint16_t)(next_instr - this_instr + oparg); + DISPATCH_INLINED(gen_frame); } - TARGET(CALL_NO_KW_TYPE_1) { - PyObject **args = (stack_pointer - oparg); - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *null = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 2828 "Python/bytecodes.c" - assert(kwnames == NULL); - assert(oparg == 1); - DEOPT_IF(null != NULL, CALL); - PyObject *obj = args[0]; - DEOPT_IF(callable != (PyObject *)&PyType_Type, CALL); - STAT_INC(CALL, hit); - res = Py_NewRef(Py_TYPE(obj)); - Py_DECREF(obj); - Py_DECREF(&PyType_Type); // I.e., callable - #line 3918 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; + TARGET(SETUP_ANNOTATIONS) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(SETUP_ANNOTATIONS); + int err; + PyObject *ann_dict; + if (LOCALS() == NULL) { + _PyErr_Format(tstate, PyExc_SystemError, + "no locals found when setting up annotations"); + if (true) goto error; + } + /* check if __annotations__ in locals()... */ + if (PyMapping_GetOptionalItem(LOCALS(), &_Py_ID(__annotations__), &ann_dict) < 0) goto error; + if (ann_dict == NULL) { + ann_dict = PyDict_New(); + if (ann_dict == NULL) goto error; + err = PyObject_SetItem(LOCALS(), &_Py_ID(__annotations__), + ann_dict); + Py_DECREF(ann_dict); + if (err) goto error; + } + else { + Py_DECREF(ann_dict); + } DISPATCH(); } - TARGET(CALL_NO_KW_STR_1) { - PyObject **args = (stack_pointer - oparg); - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *null = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 2840 "Python/bytecodes.c" - assert(kwnames == NULL); - assert(oparg == 1); - DEOPT_IF(null != NULL, CALL); - DEOPT_IF(callable != (PyObject *)&PyUnicode_Type, CALL); - STAT_INC(CALL, hit); - PyObject *arg = args[0]; - res = PyObject_Str(arg); - Py_DECREF(arg); - Py_DECREF(&PyUnicode_Type); // I.e., callable - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3942 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; - CHECK_EVAL_BREAKER(); + TARGET(SET_ADD) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(SET_ADD); + PyObject *v; + PyObject *set; + v = stack_pointer[-1]; + set = stack_pointer[-2 - (oparg-1)]; + int err = PySet_Add(set, v); + Py_DECREF(v); + if (err) goto pop_1_error; + stack_pointer += -1; DISPATCH(); } - TARGET(CALL_NO_KW_TUPLE_1) { - PyObject **args = (stack_pointer - oparg); - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *null = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 2854 "Python/bytecodes.c" - assert(kwnames == NULL); - assert(oparg == 1); - DEOPT_IF(null != NULL, CALL); - DEOPT_IF(callable != (PyObject *)&PyTuple_Type, CALL); - STAT_INC(CALL, hit); - PyObject *arg = args[0]; - res = PySequence_Tuple(arg); - Py_DECREF(arg); - Py_DECREF(&PyTuple_Type); // I.e., tuple - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 3967 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; - CHECK_EVAL_BREAKER(); + TARGET(SET_FUNCTION_ATTRIBUTE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(SET_FUNCTION_ATTRIBUTE); + PyObject *func; + PyObject *attr; + func = stack_pointer[-1]; + attr = stack_pointer[-2]; + assert(PyFunction_Check(func)); + PyFunctionObject *func_obj = (PyFunctionObject *)func; + switch(oparg) { + case MAKE_FUNCTION_CLOSURE: + assert(func_obj->func_closure == NULL); + func_obj->func_closure = attr; + break; + case MAKE_FUNCTION_ANNOTATIONS: + assert(func_obj->func_annotations == NULL); + func_obj->func_annotations = attr; + break; + case MAKE_FUNCTION_KWDEFAULTS: + assert(PyDict_CheckExact(attr)); + assert(func_obj->func_kwdefaults == NULL); + func_obj->func_kwdefaults = attr; + break; + case MAKE_FUNCTION_DEFAULTS: + assert(PyTuple_CheckExact(attr)); + assert(func_obj->func_defaults == NULL); + func_obj->func_defaults = attr; + break; + default: + Py_UNREACHABLE(); + } + stack_pointer[-2] = func; + stack_pointer += -1; DISPATCH(); } - TARGET(CALL_BUILTIN_CLASS) { - PyObject **args = (stack_pointer - oparg); - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *method = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 2868 "Python/bytecodes.c" - int is_meth = method != NULL; - int total_args = oparg; - if (is_meth) { - callable = method; - args--; - total_args++; - } - int kwnames_len = KWNAMES_LEN(); - DEOPT_IF(!PyType_Check(callable), CALL); - PyTypeObject *tp = (PyTypeObject *)callable; - DEOPT_IF(tp->tp_vectorcall == NULL, CALL); - STAT_INC(CALL, hit); - res = tp->tp_vectorcall((PyObject *)tp, args, - total_args - kwnames_len, kwnames); - kwnames = NULL; - /* Free the arguments. */ - for (int i = 0; i < total_args; i++) { - Py_DECREF(args[i]); - } - Py_DECREF(tp); - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4003 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; - CHECK_EVAL_BREAKER(); + TARGET(SET_UPDATE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(SET_UPDATE); + PyObject *iterable; + PyObject *set; + iterable = stack_pointer[-1]; + set = stack_pointer[-2 - (oparg-1)]; + int err = _PySet_Update(set, iterable); + Py_DECREF(iterable); + if (err < 0) goto pop_1_error; + stack_pointer += -1; DISPATCH(); } - TARGET(CALL_NO_KW_BUILTIN_O) { - PyObject **args = (stack_pointer - oparg); - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *method = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 2893 "Python/bytecodes.c" - /* Builtin METH_O functions */ - assert(kwnames == NULL); - int is_meth = method != NULL; - int total_args = oparg; - if (is_meth) { - callable = method; - args--; - total_args++; + TARGET(STORE_ATTR) { + frame->instr_ptr = next_instr; + next_instr += 5; + INSTRUCTION_STATS(STORE_ATTR); + PREDICTED(STORE_ATTR); + _Py_CODEUNIT *this_instr = next_instr - 5; + (void)this_instr; + PyObject *owner; + PyObject *v; + // _SPECIALIZE_STORE_ATTR + owner = stack_pointer[-1]; + { + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + next_instr = this_instr; + _Py_Specialize_StoreAttr(owner, next_instr, name); + DISPATCH_SAME_OPARG(); + } + STAT_INC(STORE_ATTR, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ } - DEOPT_IF(total_args != 1, CALL); - DEOPT_IF(!PyCFunction_CheckExact(callable), CALL); - DEOPT_IF(PyCFunction_GET_FLAGS(callable) != METH_O, CALL); - STAT_INC(CALL, hit); - PyCFunction cfunc = PyCFunction_GET_FUNCTION(callable); - // This is slower but CPython promises to check all non-vectorcall - // function calls. - if (_Py_EnterRecursiveCallTstate(tstate, " while calling a Python object")) { - goto error; + /* Skip 3 cache entries */ + // _STORE_ATTR + v = stack_pointer[-2]; + { + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + int err = PyObject_SetAttr(owner, name, v); + Py_DECREF(v); + Py_DECREF(owner); + if (err) goto pop_2_error; } - PyObject *arg = args[0]; - res = _PyCFunction_TrampolineCall(cfunc, PyCFunction_GET_SELF(callable), arg); - _Py_LeaveRecursiveCallTstate(tstate); - assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); - - Py_DECREF(arg); - Py_DECREF(callable); - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4045 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; - CHECK_EVAL_BREAKER(); + stack_pointer += -2; DISPATCH(); } - TARGET(CALL_NO_KW_BUILTIN_FAST) { - PyObject **args = (stack_pointer - oparg); - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *method = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 2924 "Python/bytecodes.c" - /* Builtin METH_FASTCALL functions, without keywords */ - assert(kwnames == NULL); - int is_meth = method != NULL; - int total_args = oparg; - if (is_meth) { - callable = method; - args--; - total_args++; + TARGET(STORE_ATTR_INSTANCE_VALUE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 5; + INSTRUCTION_STATS(STORE_ATTR_INSTANCE_VALUE); + static_assert(INLINE_CACHE_ENTRIES_STORE_ATTR == 4, "incorrect cache size"); + PyObject *owner; + PyObject *value; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + owner = stack_pointer[-1]; + { + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); } - DEOPT_IF(!PyCFunction_CheckExact(callable), CALL); - DEOPT_IF(PyCFunction_GET_FLAGS(callable) != METH_FASTCALL, CALL); - STAT_INC(CALL, hit); - PyCFunction cfunc = PyCFunction_GET_FUNCTION(callable); - /* res = func(self, args, nargs) */ - res = ((_PyCFunctionFast)(void(*)(void))cfunc)( - PyCFunction_GET_SELF(callable), - args, - total_args); - assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); - - /* Free the arguments. */ - for (int i = 0; i < total_args; i++) { - Py_DECREF(args[i]); + // _GUARD_DORV_NO_DICT + { + assert(Py_TYPE(owner)->tp_dictoffset < 0); + assert(Py_TYPE(owner)->tp_flags & Py_TPFLAGS_INLINE_VALUES); + DEOPT_IF(_PyObject_GetManagedDict(owner), STORE_ATTR); + DEOPT_IF(_PyObject_InlineValues(owner)->valid == 0, STORE_ATTR); } - Py_DECREF(callable); - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - /* Not deopting because this doesn't mean our optimization was - wrong. `res` can be NULL for valid reasons. Eg. getattr(x, - 'invalid'). In those cases an exception is set, so we must - handle it. - */ - #line 4091 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; - CHECK_EVAL_BREAKER(); + // _STORE_ATTR_INSTANCE_VALUE + value = stack_pointer[-2]; + { + uint16_t index = read_u16(&this_instr[4].cache); + STAT_INC(STORE_ATTR, hit); + assert(_PyObject_GetManagedDict(owner) == NULL); + PyDictValues *values = _PyObject_InlineValues(owner); + PyObject *old_value = values->values[index]; + values->values[index] = value; + if (old_value == NULL) { + _PyDictValues_AddToInsertionOrder(values, index); + } + else { + Py_DECREF(old_value); + } + Py_DECREF(owner); + } + stack_pointer += -2; DISPATCH(); } - TARGET(CALL_BUILTIN_FAST_WITH_KEYWORDS) { - PyObject **args = (stack_pointer - oparg); - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *method = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 2959 "Python/bytecodes.c" - /* Builtin METH_FASTCALL | METH_KEYWORDS functions */ - int is_meth = method != NULL; - int total_args = oparg; - if (is_meth) { - callable = method; - args--; - total_args++; + TARGET(STORE_ATTR_SLOT) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 5; + INSTRUCTION_STATS(STORE_ATTR_SLOT); + static_assert(INLINE_CACHE_ENTRIES_STORE_ATTR == 4, "incorrect cache size"); + PyObject *owner; + PyObject *value; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + owner = stack_pointer[-1]; + { + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); } - DEOPT_IF(!PyCFunction_CheckExact(callable), CALL); - DEOPT_IF(PyCFunction_GET_FLAGS(callable) != - (METH_FASTCALL | METH_KEYWORDS), CALL); - STAT_INC(CALL, hit); - /* res = func(self, args, nargs, kwnames) */ - _PyCFunctionFastWithKeywords cfunc = - (_PyCFunctionFastWithKeywords)(void(*)(void)) - PyCFunction_GET_FUNCTION(callable); - res = cfunc( - PyCFunction_GET_SELF(callable), - args, - total_args - KWNAMES_LEN(), - kwnames - ); - assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); - kwnames = NULL; - - /* Free the arguments. */ - for (int i = 0; i < total_args; i++) { - Py_DECREF(args[i]); + // _STORE_ATTR_SLOT + value = stack_pointer[-2]; + { + uint16_t index = read_u16(&this_instr[4].cache); + char *addr = (char *)owner + index; + STAT_INC(STORE_ATTR, hit); + PyObject *old_value = *(PyObject **)addr; + *(PyObject **)addr = value; + Py_XDECREF(old_value); + Py_DECREF(owner); } - Py_DECREF(callable); - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4137 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; - CHECK_EVAL_BREAKER(); + stack_pointer += -2; DISPATCH(); } - TARGET(CALL_NO_KW_LEN) { - PyObject **args = (stack_pointer - oparg); - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *method = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 2994 "Python/bytecodes.c" - assert(kwnames == NULL); - /* len(o) */ - int is_meth = method != NULL; - int total_args = oparg; - if (is_meth) { - callable = method; - args--; - total_args++; + TARGET(STORE_ATTR_WITH_HINT) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 5; + INSTRUCTION_STATS(STORE_ATTR_WITH_HINT); + static_assert(INLINE_CACHE_ENTRIES_STORE_ATTR == 4, "incorrect cache size"); + PyObject *owner; + PyObject *value; + /* Skip 1 cache entry */ + owner = stack_pointer[-1]; + value = stack_pointer[-2]; + uint32_t type_version = read_u32(&this_instr[2].cache); + uint16_t hint = read_u16(&this_instr[4].cache); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + DEOPT_IF(tp->tp_version_tag != type_version, STORE_ATTR); + assert(tp->tp_flags & Py_TPFLAGS_MANAGED_DICT); + PyDictObject *dict = _PyObject_GetManagedDict(owner); + DEOPT_IF(dict == NULL, STORE_ATTR); + DEOPT_IF(!PyDict_CheckExact((PyObject *)dict), STORE_ATTR); + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + DEOPT_IF(hint >= (size_t)dict->ma_keys->dk_nentries, STORE_ATTR); + PyObject *old_value; + uint64_t new_version; + if (DK_IS_UNICODE(dict->ma_keys)) { + PyDictUnicodeEntry *ep = DK_UNICODE_ENTRIES(dict->ma_keys) + hint; + DEOPT_IF(ep->me_key != name, STORE_ATTR); + old_value = ep->me_value; + DEOPT_IF(old_value == NULL, STORE_ATTR); + new_version = _PyDict_NotifyEvent(tstate->interp, PyDict_EVENT_MODIFIED, dict, name, value); + ep->me_value = value; } - DEOPT_IF(total_args != 1, CALL); - PyInterpreterState *interp = _PyInterpreterState_GET(); - DEOPT_IF(callable != interp->callable_cache.len, CALL); - STAT_INC(CALL, hit); - PyObject *arg = args[0]; - Py_ssize_t len_i = PyObject_Length(arg); - if (len_i < 0) { - goto error; + else { + PyDictKeyEntry *ep = DK_ENTRIES(dict->ma_keys) + hint; + DEOPT_IF(ep->me_key != name, STORE_ATTR); + old_value = ep->me_value; + DEOPT_IF(old_value == NULL, STORE_ATTR); + new_version = _PyDict_NotifyEvent(tstate->interp, PyDict_EVENT_MODIFIED, dict, name, value); + ep->me_value = value; } - res = PyLong_FromSsize_t(len_i); - assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); - - Py_DECREF(callable); - Py_DECREF(arg); - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4176 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; + /* Ensure dict is GC tracked if it needs to be */ + if (!_PyObject_GC_IS_TRACKED(dict) && _PyObject_GC_MAY_BE_TRACKED(value)) { + _PyObject_GC_TRACK(dict); + } + dict->ma_version_tag = new_version; // PEP 509 + // old_value should be DECREFed after GC track checking is done, if not, it could raise a segmentation fault, + // when dict only holds the strong reference to value in ep->me_value. + Py_DECREF(old_value); + STAT_INC(STORE_ATTR, hit); + Py_DECREF(owner); + stack_pointer += -2; DISPATCH(); } - TARGET(CALL_NO_KW_ISINSTANCE) { - PyObject **args = (stack_pointer - oparg); - PyObject *callable = stack_pointer[-(1 + oparg)]; - PyObject *method = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 3021 "Python/bytecodes.c" - assert(kwnames == NULL); - /* isinstance(o, o2) */ - int is_meth = method != NULL; - int total_args = oparg; - if (is_meth) { - callable = method; - args--; - total_args++; - } - DEOPT_IF(total_args != 2, CALL); - PyInterpreterState *interp = _PyInterpreterState_GET(); - DEOPT_IF(callable != interp->callable_cache.isinstance, CALL); - STAT_INC(CALL, hit); - PyObject *cls = args[1]; - PyObject *inst = args[0]; - int retval = PyObject_IsInstance(inst, cls); - if (retval < 0) { - goto error; - } - res = PyBool_FromLong(retval); - assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); + TARGET(STORE_DEREF) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(STORE_DEREF); + PyObject *v; + v = stack_pointer[-1]; + PyCellObject *cell = (PyCellObject *)GETLOCAL(oparg); + PyCell_SetTakeRef(cell, v); + stack_pointer += -1; + DISPATCH(); + } - Py_DECREF(inst); - Py_DECREF(cls); - Py_DECREF(callable); - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4216 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; + TARGET(STORE_FAST) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(STORE_FAST); + PyObject *value; + value = stack_pointer[-1]; + SETLOCAL(oparg, value); + stack_pointer += -1; DISPATCH(); } - TARGET(CALL_NO_KW_LIST_APPEND) { - PyObject **args = (stack_pointer - oparg); - PyObject *self = stack_pointer[-(1 + oparg)]; - PyObject *method = stack_pointer[-(2 + oparg)]; - #line 3051 "Python/bytecodes.c" - assert(kwnames == NULL); - assert(oparg == 1); - PyInterpreterState *interp = _PyInterpreterState_GET(); - DEOPT_IF(method != interp->callable_cache.list_append, CALL); - assert(self != NULL); - DEOPT_IF(!PyList_Check(self), CALL); - STAT_INC(CALL, hit); - if (_PyList_AppendTakeRef((PyListObject *)self, args[0]) < 0) { - goto pop_1_error; // Since arg is DECREF'ed already - } - Py_DECREF(self); - Py_DECREF(method); - STACK_SHRINK(3); - // CALL + POP_TOP - JUMPBY(INLINE_CACHE_ENTRIES_CALL + 1); - assert(next_instr[-1].op.code == POP_TOP); + TARGET(STORE_FAST_LOAD_FAST) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(STORE_FAST_LOAD_FAST); + PyObject *value1; + PyObject *value2; + value1 = stack_pointer[-1]; + uint32_t oparg1 = oparg >> 4; + uint32_t oparg2 = oparg & 15; + SETLOCAL(oparg1, value1); + value2 = GETLOCAL(oparg2); + Py_INCREF(value2); + stack_pointer[-1] = value2; DISPATCH(); - #line 4246 "Python/generated_cases.c.h" } - TARGET(CALL_NO_KW_METHOD_DESCRIPTOR_O) { - PyObject **args = (stack_pointer - oparg); - PyObject *method = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 3071 "Python/bytecodes.c" - assert(kwnames == NULL); - int is_meth = method != NULL; - int total_args = oparg; - if (is_meth) { - args--; - total_args++; - } - PyMethodDescrObject *callable = - (PyMethodDescrObject *)PEEK(total_args + 1); - DEOPT_IF(total_args != 2, CALL); - DEOPT_IF(!Py_IS_TYPE(callable, &PyMethodDescr_Type), CALL); - PyMethodDef *meth = callable->d_method; - DEOPT_IF(meth->ml_flags != METH_O, CALL); - PyObject *arg = args[1]; - PyObject *self = args[0]; - DEOPT_IF(!Py_IS_TYPE(self, callable->d_common.d_type), CALL); - STAT_INC(CALL, hit); - PyCFunction cfunc = meth->ml_meth; - // This is slower but CPython promises to check all non-vectorcall - // function calls. - if (_Py_EnterRecursiveCallTstate(tstate, " while calling a Python object")) { - goto error; - } - res = _PyCFunction_TrampolineCall(cfunc, self, arg); - _Py_LeaveRecursiveCallTstate(tstate); - assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); - Py_DECREF(self); - Py_DECREF(arg); - Py_DECREF(callable); - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4284 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; - CHECK_EVAL_BREAKER(); + TARGET(STORE_FAST_STORE_FAST) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(STORE_FAST_STORE_FAST); + PyObject *value1; + PyObject *value2; + value1 = stack_pointer[-1]; + value2 = stack_pointer[-2]; + uint32_t oparg1 = oparg >> 4; + uint32_t oparg2 = oparg & 15; + SETLOCAL(oparg1, value1); + SETLOCAL(oparg2, value2); + stack_pointer += -2; DISPATCH(); } - TARGET(CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS) { - PyObject **args = (stack_pointer - oparg); - PyObject *method = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 3105 "Python/bytecodes.c" - int is_meth = method != NULL; - int total_args = oparg; - if (is_meth) { - args--; - total_args++; - } - PyMethodDescrObject *callable = - (PyMethodDescrObject *)PEEK(total_args + 1); - DEOPT_IF(!Py_IS_TYPE(callable, &PyMethodDescr_Type), CALL); - PyMethodDef *meth = callable->d_method; - DEOPT_IF(meth->ml_flags != (METH_FASTCALL|METH_KEYWORDS), CALL); - PyTypeObject *d_type = callable->d_common.d_type; - PyObject *self = args[0]; - DEOPT_IF(!Py_IS_TYPE(self, d_type), CALL); - STAT_INC(CALL, hit); - int nargs = total_args - 1; - _PyCFunctionFastWithKeywords cfunc = - (_PyCFunctionFastWithKeywords)(void(*)(void))meth->ml_meth; - res = cfunc(self, args + 1, nargs - KWNAMES_LEN(), kwnames); - assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); - kwnames = NULL; + TARGET(STORE_GLOBAL) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(STORE_GLOBAL); + PyObject *v; + v = stack_pointer[-1]; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + int err = PyDict_SetItem(GLOBALS(), name, v); + Py_DECREF(v); + if (err) goto pop_1_error; + stack_pointer += -1; + DISPATCH(); + } - /* Free the arguments. */ - for (int i = 0; i < total_args; i++) { - Py_DECREF(args[i]); + TARGET(STORE_NAME) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(STORE_NAME); + PyObject *v; + v = stack_pointer[-1]; + PyObject *name = GETITEM(FRAME_CO_NAMES, oparg); + PyObject *ns = LOCALS(); + int err; + if (ns == NULL) { + _PyErr_Format(tstate, PyExc_SystemError, + "no locals found when storing %R", name); + Py_DECREF(v); + if (true) goto pop_1_error; } - Py_DECREF(callable); - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4326 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; - CHECK_EVAL_BREAKER(); + if (PyDict_CheckExact(ns)) + err = PyDict_SetItem(ns, name, v); + else + err = PyObject_SetItem(ns, name, v); + Py_DECREF(v); + if (err) goto pop_1_error; + stack_pointer += -1; DISPATCH(); } - TARGET(CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS) { - PyObject **args = (stack_pointer - oparg); - PyObject *method = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 3137 "Python/bytecodes.c" - assert(kwnames == NULL); - assert(oparg == 0 || oparg == 1); - int is_meth = method != NULL; - int total_args = oparg; - if (is_meth) { - args--; - total_args++; + TARGET(STORE_SLICE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(STORE_SLICE); + PyObject *stop; + PyObject *start; + PyObject *container; + PyObject *v; + stop = stack_pointer[-1]; + start = stack_pointer[-2]; + container = stack_pointer[-3]; + v = stack_pointer[-4]; + PyObject *slice = _PyBuildSlice_ConsumeRefs(start, stop); + int err; + if (slice == NULL) { + err = 1; } - DEOPT_IF(total_args != 1, CALL); - PyMethodDescrObject *callable = (PyMethodDescrObject *)SECOND(); - DEOPT_IF(!Py_IS_TYPE(callable, &PyMethodDescr_Type), CALL); - PyMethodDef *meth = callable->d_method; - PyObject *self = args[0]; - DEOPT_IF(!Py_IS_TYPE(self, callable->d_common.d_type), CALL); - DEOPT_IF(meth->ml_flags != METH_NOARGS, CALL); - STAT_INC(CALL, hit); - PyCFunction cfunc = meth->ml_meth; - // This is slower but CPython promises to check all non-vectorcall - // function calls. - if (_Py_EnterRecursiveCallTstate(tstate, " while calling a Python object")) { - goto error; + else { + err = PyObject_SetItem(container, slice, v); + Py_DECREF(slice); } - res = _PyCFunction_TrampolineCall(cfunc, self, NULL); - _Py_LeaveRecursiveCallTstate(tstate); - assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); - Py_DECREF(self); - Py_DECREF(callable); - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4368 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; - CHECK_EVAL_BREAKER(); + Py_DECREF(v); + Py_DECREF(container); + if (err) goto pop_4_error; + stack_pointer += -4; DISPATCH(); } - TARGET(CALL_NO_KW_METHOD_DESCRIPTOR_FAST) { - PyObject **args = (stack_pointer - oparg); - PyObject *method = stack_pointer[-(2 + oparg)]; - PyObject *res; - #line 3169 "Python/bytecodes.c" - assert(kwnames == NULL); - int is_meth = method != NULL; - int total_args = oparg; - if (is_meth) { - args--; - total_args++; + TARGET(STORE_SUBSCR) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(STORE_SUBSCR); + PREDICTED(STORE_SUBSCR); + _Py_CODEUNIT *this_instr = next_instr - 2; + (void)this_instr; + PyObject *sub; + PyObject *container; + PyObject *v; + // _SPECIALIZE_STORE_SUBSCR + sub = stack_pointer[-1]; + container = stack_pointer[-2]; + { + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + next_instr = this_instr; + _Py_Specialize_StoreSubscr(container, sub, next_instr); + DISPATCH_SAME_OPARG(); + } + STAT_INC(STORE_SUBSCR, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ } - PyMethodDescrObject *callable = - (PyMethodDescrObject *)PEEK(total_args + 1); - /* Builtin METH_FASTCALL methods, without keywords */ - DEOPT_IF(!Py_IS_TYPE(callable, &PyMethodDescr_Type), CALL); - PyMethodDef *meth = callable->d_method; - DEOPT_IF(meth->ml_flags != METH_FASTCALL, CALL); - PyObject *self = args[0]; - DEOPT_IF(!Py_IS_TYPE(self, callable->d_common.d_type), CALL); - STAT_INC(CALL, hit); - _PyCFunctionFast cfunc = - (_PyCFunctionFast)(void(*)(void))meth->ml_meth; - int nargs = total_args - 1; - res = cfunc(self, args + 1, nargs); - assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL)); - /* Clear the stack of the arguments. */ - for (int i = 0; i < total_args; i++) { - Py_DECREF(args[i]); + // _STORE_SUBSCR + v = stack_pointer[-3]; + { + /* container[sub] = v */ + int err = PyObject_SetItem(container, sub, v); + Py_DECREF(v); + Py_DECREF(container); + Py_DECREF(sub); + if (err) goto pop_3_error; } - Py_DECREF(callable); - if (res == NULL) { STACK_SHRINK(oparg); goto pop_2_error; } - #line 4409 "Python/generated_cases.c.h" - STACK_SHRINK(oparg); - STACK_SHRINK(1); - stack_pointer[-1] = res; - next_instr += 3; - CHECK_EVAL_BREAKER(); + stack_pointer += -3; DISPATCH(); } - TARGET(INSTRUMENTED_CALL_FUNCTION_EX) { - #line 3200 "Python/bytecodes.c" - GO_TO_INSTRUCTION(CALL_FUNCTION_EX); - #line 4421 "Python/generated_cases.c.h" + TARGET(STORE_SUBSCR_DICT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(STORE_SUBSCR_DICT); + static_assert(INLINE_CACHE_ENTRIES_STORE_SUBSCR == 1, "incorrect cache size"); + PyObject *sub; + PyObject *dict; + PyObject *value; + /* Skip 1 cache entry */ + sub = stack_pointer[-1]; + dict = stack_pointer[-2]; + value = stack_pointer[-3]; + DEOPT_IF(!PyDict_CheckExact(dict), STORE_SUBSCR); + STAT_INC(STORE_SUBSCR, hit); + int err = _PyDict_SetItem_Take2((PyDictObject *)dict, sub, value); + Py_DECREF(dict); + if (err) goto pop_3_error; + stack_pointer += -3; + DISPATCH(); } - TARGET(CALL_FUNCTION_EX) { - PREDICTED(CALL_FUNCTION_EX); - PyObject *kwargs = (oparg & 1) ? stack_pointer[-(((oparg & 1) ? 1 : 0))] : NULL; - PyObject *callargs = stack_pointer[-(1 + ((oparg & 1) ? 1 : 0))]; - PyObject *func = stack_pointer[-(2 + ((oparg & 1) ? 1 : 0))]; - PyObject *result; - #line 3204 "Python/bytecodes.c" - // DICT_MERGE is called before this opcode if there are kwargs. - // It converts all dict subtypes in kwargs into regular dicts. - assert(kwargs == NULL || PyDict_CheckExact(kwargs)); - if (!PyTuple_CheckExact(callargs)) { - if (check_args_iterable(tstate, func, callargs) < 0) { - goto error; - } - PyObject *tuple = PySequence_Tuple(callargs); - if (tuple == NULL) { - goto error; - } - Py_SETREF(callargs, tuple); - } - assert(PyTuple_CheckExact(callargs)); - EVAL_CALL_STAT_INC_IF_FUNCTION(EVAL_CALL_FUNCTION_EX, func); - if (opcode == INSTRUMENTED_CALL_FUNCTION_EX) { - PyObject *arg = PyTuple_GET_SIZE(callargs) > 0 ? - PyTuple_GET_ITEM(callargs, 0) : &_PyInstrumentation_MISSING; - int err = _Py_call_instrumentation_2args( - tstate, PY_MONITORING_EVENT_CALL, - frame, next_instr-1, func, arg); - if (err) goto error; - result = PyObject_Call(func, callargs, kwargs); - if (!PyFunction_Check(func) && !PyMethod_Check(func)) { - if (result == NULL) { - _Py_call_instrumentation_exc2( - tstate, PY_MONITORING_EVENT_C_RAISE, - frame, next_instr-1, func, arg); - } - else { - int err = _Py_call_instrumentation_2args( - tstate, PY_MONITORING_EVENT_C_RETURN, - frame, next_instr-1, func, arg); - if (err < 0) { - Py_CLEAR(result); - } - } - } - } - else { - if (Py_TYPE(func) == &PyFunction_Type && - tstate->interp->eval_frame == NULL && - ((PyFunctionObject *)func)->vectorcall == _PyFunction_Vectorcall) { - assert(PyTuple_CheckExact(callargs)); - Py_ssize_t nargs = PyTuple_GET_SIZE(callargs); - int code_flags = ((PyCodeObject *)PyFunction_GET_CODE(func))->co_flags; - PyObject *locals = code_flags & CO_OPTIMIZED ? NULL : Py_NewRef(PyFunction_GET_GLOBALS(func)); + TARGET(STORE_SUBSCR_LIST_INT) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(STORE_SUBSCR_LIST_INT); + static_assert(INLINE_CACHE_ENTRIES_STORE_SUBSCR == 1, "incorrect cache size"); + PyObject *sub; + PyObject *list; + PyObject *value; + /* Skip 1 cache entry */ + sub = stack_pointer[-1]; + list = stack_pointer[-2]; + value = stack_pointer[-3]; + DEOPT_IF(!PyLong_CheckExact(sub), STORE_SUBSCR); + DEOPT_IF(!PyList_CheckExact(list), STORE_SUBSCR); + // Ensure nonnegative, zero-or-one-digit ints. + DEOPT_IF(!_PyLong_IsNonNegativeCompact((PyLongObject *)sub), STORE_SUBSCR); + Py_ssize_t index = ((PyLongObject*)sub)->long_value.ob_digit[0]; + // Ensure index < len(list) + DEOPT_IF(index >= PyList_GET_SIZE(list), STORE_SUBSCR); + STAT_INC(STORE_SUBSCR, hit); + PyObject *old_value = PyList_GET_ITEM(list, index); + PyList_SET_ITEM(list, index, value); + assert(old_value != NULL); + Py_DECREF(old_value); + _Py_DECREF_SPECIALIZED(sub, (destructor)PyObject_Free); + Py_DECREF(list); + stack_pointer += -3; + DISPATCH(); + } - _PyInterpreterFrame *new_frame = _PyEvalFramePushAndInit_Ex(tstate, - (PyFunctionObject *)func, locals, - nargs, callargs, kwargs); - // Need to manually shrink the stack since we exit with DISPATCH_INLINED. - STACK_SHRINK(oparg + 3); - if (new_frame == NULL) { - goto error; - } - frame->return_offset = 0; - DISPATCH_INLINED(new_frame); - } - result = PyObject_Call(func, callargs, kwargs); - } - #line 4492 "Python/generated_cases.c.h" - Py_DECREF(func); - Py_DECREF(callargs); - Py_XDECREF(kwargs); - #line 3266 "Python/bytecodes.c" - assert(PEEK(3 + (oparg & 1)) == NULL); - if (result == NULL) { STACK_SHRINK(((oparg & 1) ? 1 : 0)); goto pop_3_error; } - #line 4499 "Python/generated_cases.c.h" - STACK_SHRINK(((oparg & 1) ? 1 : 0)); - STACK_SHRINK(2); - stack_pointer[-1] = result; - CHECK_EVAL_BREAKER(); + TARGET(SWAP) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(SWAP); + PyObject *top; + PyObject *bottom; + top = stack_pointer[-1]; + bottom = stack_pointer[-2 - (oparg-2)]; + assert(oparg >= 2); + stack_pointer[-2 - (oparg-2)] = top; + stack_pointer[-1] = bottom; DISPATCH(); } - TARGET(MAKE_FUNCTION) { - PyObject *codeobj = stack_pointer[-1]; - PyObject *closure = (oparg & 0x08) ? stack_pointer[-(1 + ((oparg & 0x08) ? 1 : 0))] : NULL; - PyObject *annotations = (oparg & 0x04) ? stack_pointer[-(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0))] : NULL; - PyObject *kwdefaults = (oparg & 0x02) ? stack_pointer[-(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0))] : NULL; - PyObject *defaults = (oparg & 0x01) ? stack_pointer[-(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0) + ((oparg & 0x01) ? 1 : 0))] : NULL; - PyObject *func; - #line 3276 "Python/bytecodes.c" - - PyFunctionObject *func_obj = (PyFunctionObject *) - PyFunction_New(codeobj, GLOBALS()); - - Py_DECREF(codeobj); - if (func_obj == NULL) { - goto error; - } - - if (oparg & 0x08) { - assert(PyTuple_CheckExact(closure)); - func_obj->func_closure = closure; - } - if (oparg & 0x04) { - assert(PyTuple_CheckExact(annotations)); - func_obj->func_annotations = annotations; - } - if (oparg & 0x02) { - assert(PyDict_CheckExact(kwdefaults)); - func_obj->func_kwdefaults = kwdefaults; + TARGET(TO_BOOL) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(TO_BOOL); + PREDICTED(TO_BOOL); + _Py_CODEUNIT *this_instr = next_instr - 4; + (void)this_instr; + PyObject *value; + PyObject *res; + // _SPECIALIZE_TO_BOOL + value = stack_pointer[-1]; + { + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + next_instr = this_instr; + _Py_Specialize_ToBool(value, next_instr); + DISPATCH_SAME_OPARG(); + } + STAT_INC(TO_BOOL, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ } - if (oparg & 0x01) { - assert(PyTuple_CheckExact(defaults)); - func_obj->func_defaults = defaults; + /* Skip 2 cache entries */ + // _TO_BOOL + { + int err = PyObject_IsTrue(value); + Py_DECREF(value); + if (err < 0) goto pop_1_error; + res = err ? Py_True : Py_False; } - - func_obj->func_version = ((PyCodeObject *)codeobj)->co_version; - func = (PyObject *)func_obj; - #line 4543 "Python/generated_cases.c.h" - STACK_SHRINK(((oparg & 0x01) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x08) ? 1 : 0)); - stack_pointer[-1] = func; + stack_pointer[-1] = res; DISPATCH(); } - TARGET(RETURN_GENERATOR) { - #line 3307 "Python/bytecodes.c" - assert(PyFunction_Check(frame->f_funcobj)); - PyFunctionObject *func = (PyFunctionObject *)frame->f_funcobj; - PyGenObject *gen = (PyGenObject *)_Py_MakeCoro(func); - if (gen == NULL) { - goto error; + TARGET(TO_BOOL_ALWAYS_TRUE) { + _Py_CODEUNIT *this_instr = frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(TO_BOOL_ALWAYS_TRUE); + static_assert(INLINE_CACHE_ENTRIES_TO_BOOL == 3, "incorrect cache size"); + PyObject *owner; + PyObject *value; + PyObject *res; + /* Skip 1 cache entry */ + // _GUARD_TYPE_VERSION + owner = stack_pointer[-1]; + { + uint32_t type_version = read_u32(&this_instr[2].cache); + PyTypeObject *tp = Py_TYPE(owner); + assert(type_version != 0); + DEOPT_IF(tp->tp_version_tag != type_version, TO_BOOL); } - assert(EMPTY()); - _PyFrame_SetStackPointer(frame, stack_pointer); - _PyInterpreterFrame *gen_frame = (_PyInterpreterFrame *)gen->gi_iframe; - _PyFrame_Copy(frame, gen_frame); - assert(frame->frame_obj == NULL); - gen->gi_frame_state = FRAME_CREATED; - gen_frame->owner = FRAME_OWNED_BY_GENERATOR; - _Py_LeaveRecursiveCallPy(tstate); - assert(frame != &entry_frame); - _PyInterpreterFrame *prev = frame->previous; - _PyThreadState_PopFrame(tstate, frame); - frame = cframe.current_frame = prev; - _PyFrame_StackPush(frame, (PyObject *)gen); - goto resume_frame; - #line 4571 "Python/generated_cases.c.h" + // _REPLACE_WITH_TRUE + value = owner; + { + Py_DECREF(value); + res = Py_True; + } + stack_pointer[-1] = res; + DISPATCH(); } - TARGET(BUILD_SLICE) { - PyObject *step = (oparg == 3) ? stack_pointer[-(((oparg == 3) ? 1 : 0))] : NULL; - PyObject *stop = stack_pointer[-(1 + ((oparg == 3) ? 1 : 0))]; - PyObject *start = stack_pointer[-(2 + ((oparg == 3) ? 1 : 0))]; - PyObject *slice; - #line 3330 "Python/bytecodes.c" - slice = PySlice_New(start, stop, step); - #line 4581 "Python/generated_cases.c.h" - Py_DECREF(start); - Py_DECREF(stop); - Py_XDECREF(step); - #line 3332 "Python/bytecodes.c" - if (slice == NULL) { STACK_SHRINK(((oparg == 3) ? 1 : 0)); goto pop_2_error; } - #line 4587 "Python/generated_cases.c.h" - STACK_SHRINK(((oparg == 3) ? 1 : 0)); - STACK_SHRINK(1); - stack_pointer[-1] = slice; + TARGET(TO_BOOL_BOOL) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(TO_BOOL_BOOL); + static_assert(INLINE_CACHE_ENTRIES_TO_BOOL == 3, "incorrect cache size"); + PyObject *value; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + value = stack_pointer[-1]; + DEOPT_IF(!PyBool_Check(value), TO_BOOL); + STAT_INC(TO_BOOL, hit); DISPATCH(); } - TARGET(FORMAT_VALUE) { - PyObject *fmt_spec = ((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? stack_pointer[-((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0))] : NULL; - PyObject *value = stack_pointer[-(1 + (((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0))]; - PyObject *result; - #line 3336 "Python/bytecodes.c" - /* Handles f-string value formatting. */ - PyObject *(*conv_fn)(PyObject *); - int which_conversion = oparg & FVC_MASK; - - /* See if any conversion is specified. */ - switch (which_conversion) { - case FVC_NONE: conv_fn = NULL; break; - case FVC_STR: conv_fn = PyObject_Str; break; - case FVC_REPR: conv_fn = PyObject_Repr; break; - case FVC_ASCII: conv_fn = PyObject_ASCII; break; - default: - _PyErr_Format(tstate, PyExc_SystemError, - "unexpected conversion flag %d", - which_conversion); - goto error; + TARGET(TO_BOOL_INT) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(TO_BOOL_INT); + static_assert(INLINE_CACHE_ENTRIES_TO_BOOL == 3, "incorrect cache size"); + PyObject *value; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + value = stack_pointer[-1]; + DEOPT_IF(!PyLong_CheckExact(value), TO_BOOL); + STAT_INC(TO_BOOL, hit); + if (_PyLong_IsZero((PyLongObject *)value)) { + assert(_Py_IsImmortalLoose(value)); + res = Py_False; } - - /* If there's a conversion function, call it and replace - value with that result. Otherwise, just use value, - without conversion. */ - if (conv_fn != NULL) { - result = conv_fn(value); + else { Py_DECREF(value); - if (result == NULL) { - Py_XDECREF(fmt_spec); - if (true) { STACK_SHRINK((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0)); goto pop_1_error; } - } - value = result; + res = Py_True; } - - result = PyObject_Format(value, fmt_spec); - Py_DECREF(value); - Py_XDECREF(fmt_spec); - if (result == NULL) { STACK_SHRINK((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0)); goto pop_1_error; } - #line 4633 "Python/generated_cases.c.h" - STACK_SHRINK((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0)); - stack_pointer[-1] = result; - DISPATCH(); - } - - TARGET(COPY) { - PyObject *bottom = stack_pointer[-(1 + (oparg-1))]; - PyObject *top; - #line 3373 "Python/bytecodes.c" - assert(oparg > 0); - top = Py_NewRef(bottom); - #line 4645 "Python/generated_cases.c.h" - STACK_GROW(1); - stack_pointer[-1] = top; + stack_pointer[-1] = res; DISPATCH(); } - TARGET(BINARY_OP) { - PREDICTED(BINARY_OP); - static_assert(INLINE_CACHE_ENTRIES_BINARY_OP == 1, "incorrect cache size"); - PyObject *rhs = stack_pointer[-1]; - PyObject *lhs = stack_pointer[-2]; + TARGET(TO_BOOL_LIST) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(TO_BOOL_LIST); + static_assert(INLINE_CACHE_ENTRIES_TO_BOOL == 3, "incorrect cache size"); + PyObject *value; PyObject *res; - #line 3378 "Python/bytecodes.c" - #if ENABLE_SPECIALIZATION - _PyBinaryOpCache *cache = (_PyBinaryOpCache *)next_instr; - if (ADAPTIVE_COUNTER_IS_ZERO(cache->counter)) { - next_instr--; - _Py_Specialize_BinaryOp(lhs, rhs, next_instr, oparg, &GETLOCAL(0)); - DISPATCH_SAME_OPARG(); - } - STAT_INC(BINARY_OP, deferred); - DECREMENT_ADAPTIVE_COUNTER(cache->counter); - #endif /* ENABLE_SPECIALIZATION */ - assert(0 <= oparg); - assert((unsigned)oparg < Py_ARRAY_LENGTH(binary_ops)); - assert(binary_ops[oparg]); - res = binary_ops[oparg](lhs, rhs); - #line 4672 "Python/generated_cases.c.h" - Py_DECREF(lhs); - Py_DECREF(rhs); - #line 3393 "Python/bytecodes.c" - if (res == NULL) goto pop_2_error; - #line 4677 "Python/generated_cases.c.h" - STACK_SHRINK(1); + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + value = stack_pointer[-1]; + DEOPT_IF(!PyList_CheckExact(value), TO_BOOL); + STAT_INC(TO_BOOL, hit); + res = Py_SIZE(value) ? Py_True : Py_False; + Py_DECREF(value); stack_pointer[-1] = res; - next_instr += 1; DISPATCH(); } - TARGET(SWAP) { - PyObject *top = stack_pointer[-1]; - PyObject *bottom = stack_pointer[-(2 + (oparg-2))]; - #line 3398 "Python/bytecodes.c" - assert(oparg >= 2); - #line 4689 "Python/generated_cases.c.h" - stack_pointer[-1] = bottom; - stack_pointer[-(2 + (oparg-2))] = top; + TARGET(TO_BOOL_NONE) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(TO_BOOL_NONE); + static_assert(INLINE_CACHE_ENTRIES_TO_BOOL == 3, "incorrect cache size"); + PyObject *value; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + value = stack_pointer[-1]; + // This one is a bit weird, because we expect *some* failures: + DEOPT_IF(!Py_IsNone(value), TO_BOOL); + STAT_INC(TO_BOOL, hit); + res = Py_False; + stack_pointer[-1] = res; DISPATCH(); } - TARGET(INSTRUMENTED_INSTRUCTION) { - #line 3402 "Python/bytecodes.c" - int next_opcode = _Py_call_instrumentation_instruction( - tstate, frame, next_instr-1); - if (next_opcode < 0) goto error; - next_instr--; - if (_PyOpcode_Caches[next_opcode]) { - _PyBinaryOpCache *cache = (_PyBinaryOpCache *)(next_instr+1); - INCREMENT_ADAPTIVE_COUNTER(cache->counter); + TARGET(TO_BOOL_STR) { + frame->instr_ptr = next_instr; + next_instr += 4; + INSTRUCTION_STATS(TO_BOOL_STR); + static_assert(INLINE_CACHE_ENTRIES_TO_BOOL == 3, "incorrect cache size"); + PyObject *value; + PyObject *res; + /* Skip 1 cache entry */ + /* Skip 2 cache entries */ + value = stack_pointer[-1]; + DEOPT_IF(!PyUnicode_CheckExact(value), TO_BOOL); + STAT_INC(TO_BOOL, hit); + if (value == &_Py_STR(empty)) { + assert(_Py_IsImmortalLoose(value)); + res = Py_False; } - assert(next_opcode > 0 && next_opcode < 256); - opcode = next_opcode; - DISPATCH_GOTO(); - #line 4708 "Python/generated_cases.c.h" + else { + assert(Py_SIZE(value)); + Py_DECREF(value); + res = Py_True; + } + stack_pointer[-1] = res; + DISPATCH(); } - TARGET(INSTRUMENTED_JUMP_FORWARD) { - #line 3416 "Python/bytecodes.c" - INSTRUMENTED_JUMP(next_instr-1, next_instr+oparg, PY_MONITORING_EVENT_JUMP); - #line 4714 "Python/generated_cases.c.h" + TARGET(UNARY_INVERT) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(UNARY_INVERT); + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + res = PyNumber_Invert(value); + Py_DECREF(value); + if (res == NULL) goto pop_1_error; + stack_pointer[-1] = res; DISPATCH(); } - TARGET(INSTRUMENTED_JUMP_BACKWARD) { - #line 3420 "Python/bytecodes.c" - INSTRUMENTED_JUMP(next_instr-1, next_instr-oparg, PY_MONITORING_EVENT_JUMP); - #line 4721 "Python/generated_cases.c.h" - CHECK_EVAL_BREAKER(); + TARGET(UNARY_NEGATIVE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(UNARY_NEGATIVE); + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + res = PyNumber_Negative(value); + Py_DECREF(value); + if (res == NULL) goto pop_1_error; + stack_pointer[-1] = res; DISPATCH(); } - TARGET(INSTRUMENTED_POP_JUMP_IF_TRUE) { - #line 3425 "Python/bytecodes.c" - PyObject *cond = POP(); - int err = PyObject_IsTrue(cond); - Py_DECREF(cond); - if (err < 0) goto error; - _Py_CODEUNIT *here = next_instr-1; - assert(err == 0 || err == 1); - int offset = err*oparg; - INSTRUMENTED_JUMP(here, next_instr + offset, PY_MONITORING_EVENT_BRANCH); - #line 4736 "Python/generated_cases.c.h" + TARGET(UNARY_NOT) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(UNARY_NOT); + PyObject *value; + PyObject *res; + value = stack_pointer[-1]; + assert(PyBool_Check(value)); + res = Py_IsFalse(value) ? Py_True : Py_False; + stack_pointer[-1] = res; DISPATCH(); } - TARGET(INSTRUMENTED_POP_JUMP_IF_FALSE) { - #line 3436 "Python/bytecodes.c" - PyObject *cond = POP(); - int err = PyObject_IsTrue(cond); - Py_DECREF(cond); - if (err < 0) goto error; - _Py_CODEUNIT *here = next_instr-1; - assert(err == 0 || err == 1); - int offset = (1-err)*oparg; - INSTRUMENTED_JUMP(here, next_instr + offset, PY_MONITORING_EVENT_BRANCH); - #line 4750 "Python/generated_cases.c.h" + TARGET(UNPACK_EX) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(UNPACK_EX); + PyObject *seq; + seq = stack_pointer[-1]; + int totalargs = 1 + (oparg & 0xFF) + (oparg >> 8); + PyObject **top = stack_pointer + totalargs - 1; + int res = _PyEval_UnpackIterable(tstate, seq, oparg & 0xFF, oparg >> 8, top); + Py_DECREF(seq); + if (res == 0) goto pop_1_error; + stack_pointer += (oparg >> 8) + (oparg & 0xFF); DISPATCH(); } - TARGET(INSTRUMENTED_POP_JUMP_IF_NONE) { - #line 3447 "Python/bytecodes.c" - PyObject *value = POP(); - _Py_CODEUNIT *here = next_instr-1; - int offset; - if (Py_IsNone(value)) { - offset = oparg; + TARGET(UNPACK_SEQUENCE) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(UNPACK_SEQUENCE); + PREDICTED(UNPACK_SEQUENCE); + _Py_CODEUNIT *this_instr = next_instr - 2; + (void)this_instr; + PyObject *seq; + // _SPECIALIZE_UNPACK_SEQUENCE + seq = stack_pointer[-1]; + { + uint16_t counter = read_u16(&this_instr[1].cache); + (void)counter; + #if ENABLE_SPECIALIZATION + if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { + next_instr = this_instr; + _Py_Specialize_UnpackSequence(seq, next_instr, oparg); + DISPATCH_SAME_OPARG(); + } + STAT_INC(UNPACK_SEQUENCE, deferred); + ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); + #endif /* ENABLE_SPECIALIZATION */ + (void)seq; + (void)counter; } - else { - Py_DECREF(value); - offset = 0; + // _UNPACK_SEQUENCE + { + PyObject **top = stack_pointer + oparg - 1; + int res = _PyEval_UnpackIterable(tstate, seq, oparg, -1, top); + Py_DECREF(seq); + if (res == 0) goto pop_1_error; } - INSTRUMENTED_JUMP(here, next_instr + offset, PY_MONITORING_EVENT_BRANCH); - #line 4767 "Python/generated_cases.c.h" + stack_pointer += -1 + oparg; DISPATCH(); } - TARGET(INSTRUMENTED_POP_JUMP_IF_NOT_NONE) { - #line 3461 "Python/bytecodes.c" - PyObject *value = POP(); - _Py_CODEUNIT *here = next_instr-1; - int offset; - if (Py_IsNone(value)) { - offset = 0; - } - else { - Py_DECREF(value); - offset = oparg; + TARGET(UNPACK_SEQUENCE_LIST) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(UNPACK_SEQUENCE_LIST); + static_assert(INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE == 1, "incorrect cache size"); + PyObject *seq; + PyObject **values; + /* Skip 1 cache entry */ + seq = stack_pointer[-1]; + values = &stack_pointer[-1]; + DEOPT_IF(!PyList_CheckExact(seq), UNPACK_SEQUENCE); + DEOPT_IF(PyList_GET_SIZE(seq) != oparg, UNPACK_SEQUENCE); + STAT_INC(UNPACK_SEQUENCE, hit); + PyObject **items = _PyList_ITEMS(seq); + for (int i = oparg; --i >= 0; ) { + *values++ = Py_NewRef(items[i]); } - INSTRUMENTED_JUMP(here, next_instr + offset, PY_MONITORING_EVENT_BRANCH); - #line 4784 "Python/generated_cases.c.h" + Py_DECREF(seq); + stack_pointer += -1 + oparg; DISPATCH(); } - TARGET(EXTENDED_ARG) { - #line 3475 "Python/bytecodes.c" - assert(oparg); - opcode = next_instr->op.code; - oparg = oparg << 8 | next_instr->op.arg; - PRE_DISPATCH_GOTO(); - DISPATCH_GOTO(); - #line 4795 "Python/generated_cases.c.h" + TARGET(UNPACK_SEQUENCE_TUPLE) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(UNPACK_SEQUENCE_TUPLE); + static_assert(INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE == 1, "incorrect cache size"); + PyObject *seq; + PyObject **values; + /* Skip 1 cache entry */ + seq = stack_pointer[-1]; + values = &stack_pointer[-1]; + DEOPT_IF(!PyTuple_CheckExact(seq), UNPACK_SEQUENCE); + DEOPT_IF(PyTuple_GET_SIZE(seq) != oparg, UNPACK_SEQUENCE); + STAT_INC(UNPACK_SEQUENCE, hit); + PyObject **items = _PyTuple_ITEMS(seq); + for (int i = oparg; --i >= 0; ) { + *values++ = Py_NewRef(items[i]); + } + Py_DECREF(seq); + stack_pointer += -1 + oparg; + DISPATCH(); } - TARGET(CACHE) { - #line 3483 "Python/bytecodes.c" - assert(0 && "Executing a cache."); - Py_UNREACHABLE(); - #line 4802 "Python/generated_cases.c.h" + TARGET(UNPACK_SEQUENCE_TWO_TUPLE) { + frame->instr_ptr = next_instr; + next_instr += 2; + INSTRUCTION_STATS(UNPACK_SEQUENCE_TWO_TUPLE); + static_assert(INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE == 1, "incorrect cache size"); + PyObject *seq; + PyObject *val1; + PyObject *val0; + /* Skip 1 cache entry */ + seq = stack_pointer[-1]; + assert(oparg == 2); + DEOPT_IF(!PyTuple_CheckExact(seq), UNPACK_SEQUENCE); + DEOPT_IF(PyTuple_GET_SIZE(seq) != 2, UNPACK_SEQUENCE); + STAT_INC(UNPACK_SEQUENCE, hit); + val0 = Py_NewRef(PyTuple_GET_ITEM(seq, 0)); + val1 = Py_NewRef(PyTuple_GET_ITEM(seq, 1)); + Py_DECREF(seq); + stack_pointer[-1] = val1; + stack_pointer[0] = val0; + stack_pointer += 1; + DISPATCH(); } - TARGET(RESERVED) { - #line 3488 "Python/bytecodes.c" - assert(0 && "Executing RESERVED instruction."); - Py_UNREACHABLE(); - #line 4809 "Python/generated_cases.c.h" + TARGET(WITH_EXCEPT_START) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(WITH_EXCEPT_START); + PyObject *val; + PyObject *lasti; + PyObject *exit_func; + PyObject *res; + val = stack_pointer[-1]; + lasti = stack_pointer[-3]; + exit_func = stack_pointer[-4]; + /* At the top of the stack are 4 values: + - val: TOP = exc_info() + - unused: SECOND = previous exception + - lasti: THIRD = lasti of exception in exc_info() + - exit_func: FOURTH = the context.__exit__ bound method + We call FOURTH(type(TOP), TOP, GetTraceback(TOP)). + Then we push the __exit__ return value. + */ + PyObject *exc, *tb; + assert(val && PyExceptionInstance_Check(val)); + exc = PyExceptionInstance_Class(val); + tb = PyException_GetTraceback(val); + if (tb == NULL) { + tb = Py_None; + } + else { + Py_DECREF(tb); + } + assert(PyLong_Check(lasti)); + (void)lasti; // Shut up compiler warning if asserts are off + PyObject *stack[4] = {NULL, exc, val, tb}; + res = PyObject_Vectorcall(exit_func, stack + 1, + 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL); + if (res == NULL) goto error; + stack_pointer[0] = res; + stack_pointer += 1; + DISPATCH(); } + + TARGET(YIELD_VALUE) { + frame->instr_ptr = next_instr; + next_instr += 1; + INSTRUCTION_STATS(YIELD_VALUE); + PyObject *retval; + PyObject *value; + retval = stack_pointer[-1]; + // NOTE: It's important that YIELD_VALUE never raises an exception! + // The compiler treats any exception raised here as a failed close() + // or throw() call. + #if TIER_ONE + assert(frame != &entry_frame); + #endif + frame->instr_ptr++; + PyGenObject *gen = _PyFrame_GetGenerator(frame); + assert(FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1); + assert(oparg == 0 || oparg == 1); + gen->gi_frame_state = FRAME_SUSPENDED + oparg; + stack_pointer += -1; + _PyFrame_SetStackPointer(frame, stack_pointer); + tstate->exc_info = gen->gi_exc_state.previous_item; + gen->gi_exc_state.previous_item = NULL; + _Py_LeaveRecursiveCallPy(tstate); + _PyInterpreterFrame *gen_frame = frame; + frame = tstate->current_frame = frame->previous; + gen_frame->previous = NULL; + /* We don't know which of these is relevant here, so keep them equal */ + assert(INLINE_CACHE_ENTRIES_SEND == INLINE_CACHE_ENTRIES_FOR_ITER); + #if TIER_ONE + assert(frame->instr_ptr->op.code == INSTRUMENTED_LINE || + frame->instr_ptr->op.code == INSTRUMENTED_INSTRUCTION || + _PyOpcode_Deopt[frame->instr_ptr->op.code] == SEND || + _PyOpcode_Deopt[frame->instr_ptr->op.code] == FOR_ITER || + _PyOpcode_Deopt[frame->instr_ptr->op.code] == INTERPRETER_EXIT || + _PyOpcode_Deopt[frame->instr_ptr->op.code] == ENTER_EXECUTOR); + #endif + LOAD_IP(1 + INLINE_CACHE_ENTRIES_SEND); + LOAD_SP(); + value = retval; + LLTRACE_RESUME_FRAME(); + stack_pointer[0] = value; + stack_pointer += 1; + DISPATCH(); + } +#undef TIER_ONE diff --git a/contrib/tools/python3/Python/getargs.c b/contrib/tools/python3/Python/getargs.c index 0bba8b1d514..e95ccec851f 100644 --- a/contrib/tools/python3/Python/getargs.c +++ b/contrib/tools/python3/Python/getargs.c @@ -1,56 +1,26 @@ /* New getargs implementation */ +#define PY_CXX_CONST const #include "Python.h" -#include "pycore_tuple.h" // _PyTuple_ITEMS() +#include "pycore_abstract.h" // _PyNumber_Index() +#include "pycore_dict.h" // _PyDict_HasOnlyStringKeys() +#include "pycore_modsupport.h" // export _PyArg_NoKeywords() #include "pycore_pylifecycle.h" // _PyArg_Fini #include "pycore_pystate.h" // _Py_IsMainInterpreter() +#include "pycore_tuple.h" // _PyTuple_ITEMS() +#include "pycore_pyerrors.h" // _Py_CalculateSuggestions() -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif -int PyArg_Parse(PyObject *, const char *, ...); -int PyArg_ParseTuple(PyObject *, const char *, ...); -int PyArg_VaParse(PyObject *, const char *, va_list); - -int PyArg_ParseTupleAndKeywords(PyObject *, PyObject *, - const char *, char **, ...); -int PyArg_VaParseTupleAndKeywords(PyObject *, PyObject *, - const char *, char **, va_list); - -int _PyArg_ParseTupleAndKeywordsFast(PyObject *, PyObject *, - struct _PyArg_Parser *, ...); -int _PyArg_VaParseTupleAndKeywordsFast(PyObject *, PyObject *, - struct _PyArg_Parser *, va_list); - -#ifdef HAVE_DECLSPEC_DLL -/* Export functions */ +/* Export Stable ABIs (abi only) */ PyAPI_FUNC(int) _PyArg_Parse_SizeT(PyObject *, const char *, ...); -PyAPI_FUNC(int) _PyArg_ParseStack_SizeT(PyObject *const *args, Py_ssize_t nargs, - const char *format, ...); -PyAPI_FUNC(int) _PyArg_ParseStackAndKeywords_SizeT(PyObject *const *args, Py_ssize_t nargs, - PyObject *kwnames, - struct _PyArg_Parser *parser, ...); PyAPI_FUNC(int) _PyArg_ParseTuple_SizeT(PyObject *, const char *, ...); PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywords_SizeT(PyObject *, PyObject *, - const char *, char **, ...); -PyAPI_FUNC(PyObject *) _Py_BuildValue_SizeT(const char *, ...); + const char *, const char * const *, ...); PyAPI_FUNC(int) _PyArg_VaParse_SizeT(PyObject *, const char *, va_list); PyAPI_FUNC(int) _PyArg_VaParseTupleAndKeywords_SizeT(PyObject *, PyObject *, - const char *, char **, va_list); - -PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast_SizeT(PyObject *, PyObject *, - struct _PyArg_Parser *, ...); -PyAPI_FUNC(int) _PyArg_VaParseTupleAndKeywordsFast_SizeT(PyObject *, PyObject *, - struct _PyArg_Parser *, va_list); -#endif + const char *, const char * const *, va_list); #define FLAG_COMPAT 1 -#define FLAG_SIZE_T 2 typedef int (*destr_t)(PyObject *, void *); @@ -80,14 +50,14 @@ static void seterror(Py_ssize_t, const char *, int *, const char *, const char * static const char *convertitem(PyObject *, const char **, va_list *, int, int *, char *, size_t, freelist_t *); static const char *converttuple(PyObject *, const char **, va_list *, int, - int *, char *, size_t, int, freelist_t *); + int *, char *, size_t, freelist_t *); static const char *convertsimple(PyObject *, const char **, va_list *, int, char *, size_t, freelist_t *); static Py_ssize_t convertbuffer(PyObject *, const void **p, const char **); static int getbuffer(PyObject *, Py_buffer *, const char**); static int vgetargskeywords(PyObject *, PyObject *, - const char *, char **, va_list *, int); + const char *, const char * const *, va_list *, int); static int vgetargskeywordsfast(PyObject *, PyObject *, struct _PyArg_Parser *, va_list *, int); static int vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, @@ -115,7 +85,7 @@ _PyArg_Parse_SizeT(PyObject *args, const char *format, ...) va_list va; va_start(va, format); - retval = vgetargs1(args, format, &va, FLAG_COMPAT|FLAG_SIZE_T); + retval = vgetargs1(args, format, &va, FLAG_COMPAT); va_end(va); return retval; } @@ -133,14 +103,14 @@ PyArg_ParseTuple(PyObject *args, const char *format, ...) return retval; } -PyAPI_FUNC(int) +int _PyArg_ParseTuple_SizeT(PyObject *args, const char *format, ...) { int retval; va_list va; va_start(va, format); - retval = vgetargs1(args, format, &va, FLAG_SIZE_T); + retval = vgetargs1(args, format, &va, 0); va_end(va); return retval; } @@ -158,19 +128,6 @@ _PyArg_ParseStack(PyObject *const *args, Py_ssize_t nargs, const char *format, . return retval; } -PyAPI_FUNC(int) -_PyArg_ParseStack_SizeT(PyObject *const *args, Py_ssize_t nargs, const char *format, ...) -{ - int retval; - va_list va; - - va_start(va, format); - retval = vgetargs1_impl(NULL, args, nargs, format, &va, FLAG_SIZE_T); - va_end(va); - return retval; -} - - int PyArg_VaParse(PyObject *args, const char *format, va_list va) { @@ -184,7 +141,7 @@ PyArg_VaParse(PyObject *args, const char *format, va_list va) return retval; } -PyAPI_FUNC(int) +int _PyArg_VaParse_SizeT(PyObject *args, const char *format, va_list va) { va_list lva; @@ -192,7 +149,7 @@ _PyArg_VaParse_SizeT(PyObject *args, const char *format, va_list va) va_copy(lva, va); - retval = vgetargs1(args, format, &lva, FLAG_SIZE_T); + retval = vgetargs1(args, format, &lva, 0); va_end(lva); return retval; } @@ -500,7 +457,7 @@ seterror(Py_ssize_t iarg, const char *msg, int *levels, const char *fname, static const char * converttuple(PyObject *arg, const char **p_format, va_list *p_va, int flags, - int *levels, char *msgbuf, size_t bufsize, int toplevel, + int *levels, char *msgbuf, size_t bufsize, freelist_t *freelist) { int level = 0; @@ -530,7 +487,6 @@ converttuple(PyObject *arg, const char **p_format, va_list *p_va, int flags, if (!PySequence_Check(arg) || PyBytes_Check(arg)) { levels[0] = 0; PyOS_snprintf(msgbuf, bufsize, - toplevel ? "expected %d arguments, not %.50s" : "must be %d-item sequence, not %.50s", n, arg == Py_None ? "None" : Py_TYPE(arg)->tp_name); @@ -540,18 +496,9 @@ converttuple(PyObject *arg, const char **p_format, va_list *p_va, int flags, len = PySequence_Size(arg); if (len != n) { levels[0] = 0; - if (toplevel) { - PyOS_snprintf(msgbuf, bufsize, - "expected %d argument%s, not %zd", - n, - n == 1 ? "" : "s", - len); - } - else { - PyOS_snprintf(msgbuf, bufsize, - "must be sequence of length %d, not %zd", - n, len); - } + PyOS_snprintf(msgbuf, bufsize, + "must be sequence of length %d, not %zd", + n, len); return msgbuf; } @@ -594,7 +541,7 @@ convertitem(PyObject *arg, const char **p_format, va_list *p_va, int flags, if (*format == '(' /* ')' */) { format++; msg = converttuple(arg, &format, p_va, flags, levels, msgbuf, - bufsize, 0, freelist); + bufsize, freelist); if (msg == NULL) format++; } @@ -658,13 +605,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, char *msgbuf, size_t bufsize, freelist_t *freelist) { #define RETURN_ERR_OCCURRED return msgbuf - /* For # codes */ -#define REQUIRE_PY_SSIZE_T_CLEAN \ - if (!(flags & FLAG_SIZE_T)) { \ - PyErr_SetString(PyExc_SystemError, \ - "PY_SSIZE_T_CLEAN macro must be defined for '#' formats"); \ - RETURN_ERR_OCCURRED; \ - } const char *format = *p_format; char c = *format++; @@ -872,9 +812,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, if (!PyUnicode_Check(arg)) return converterr("a unicode character", arg, msgbuf, bufsize); - if (PyUnicode_READY(arg)) - RETURN_ERR_OCCURRED; - if (PyUnicode_GET_LENGTH(arg) != 1) return converterr("a unicode character", arg, msgbuf, bufsize); @@ -918,7 +855,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, if (count < 0) return converterr(buf, arg, msgbuf, bufsize); if (*format == '#') { - REQUIRE_PY_SSIZE_T_CLEAN; Py_ssize_t *psize = va_arg(*p_va, Py_ssize_t*); *psize = count; format++; @@ -962,7 +898,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, } else if (*format == '#') { /* a string or read-only bytes-like object */ /* "s#" or "z#" */ const void **p = (const void **)va_arg(*p_va, const char **); - REQUIRE_PY_SSIZE_T_CLEAN; Py_ssize_t *psize = va_arg(*p_va, Py_ssize_t*); if (c == 'z' && arg == Py_None) { @@ -1100,7 +1035,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, trailing 0-byte */ - REQUIRE_PY_SSIZE_T_CLEAN; Py_ssize_t *psize = va_arg(*p_va, Py_ssize_t*); format++; @@ -1195,8 +1129,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, case 'U': { /* PyUnicode object */ PyObject **p = va_arg(*p_va, PyObject **); if (PyUnicode_Check(arg)) { - if (PyUnicode_READY(arg) == -1) - RETURN_ERR_OCCURRED; *p = arg; } else @@ -1248,17 +1180,15 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, arg, msgbuf, bufsize); format++; - /* Caller is interested in Py_buffer, and the object - supports it directly. */ + /* Caller is interested in Py_buffer, and the object supports it + directly. The request implicitly asks for PyBUF_SIMPLE, so the + result is C-contiguous with format 'B'. */ if (PyObject_GetBuffer(arg, (Py_buffer*)p, PyBUF_WRITABLE) < 0) { PyErr_Clear(); return converterr("read-write bytes-like object", arg, msgbuf, bufsize); } - if (!PyBuffer_IsContiguous((Py_buffer*)p, 'C')) { - PyBuffer_Release((Py_buffer*)p); - return converterr("contiguous buffer", arg, msgbuf, bufsize); - } + assert(PyBuffer_IsContiguous((Py_buffer *)p, 'C')); if (addcleanup(p, freelist, cleanup_buffer)) { return converterr( "(cleanup problem)", @@ -1275,7 +1205,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, *p_format = format; return NULL; -#undef REQUIRE_PY_SSIZE_T_CLEAN #undef RETURN_ERR_OCCURRED } @@ -1304,15 +1233,12 @@ convertbuffer(PyObject *arg, const void **p, const char **errmsg) static int getbuffer(PyObject *arg, Py_buffer *view, const char **errmsg) { + /* PyBUF_SIMPLE implies C-contiguous */ if (PyObject_GetBuffer(arg, view, PyBUF_SIMPLE) != 0) { *errmsg = "bytes-like object"; return -1; } - if (!PyBuffer_IsContiguous(view, 'C')) { - PyBuffer_Release(view); - *errmsg = "contiguous buffer"; - return -1; - } + assert(PyBuffer_IsContiguous(view, 'C')); return 0; } @@ -1324,7 +1250,7 @@ int PyArg_ParseTupleAndKeywords(PyObject *args, PyObject *keywords, const char *format, - char **kwlist, ...) + const char * const *kwlist, ...) { int retval; va_list va; @@ -1344,11 +1270,11 @@ PyArg_ParseTupleAndKeywords(PyObject *args, return retval; } -PyAPI_FUNC(int) +int _PyArg_ParseTupleAndKeywords_SizeT(PyObject *args, PyObject *keywords, const char *format, - char **kwlist, ...) + const char * const *kwlist, ...) { int retval; va_list va; @@ -1364,7 +1290,7 @@ _PyArg_ParseTupleAndKeywords_SizeT(PyObject *args, va_start(va, kwlist); retval = vgetargskeywords(args, keywords, format, - kwlist, &va, FLAG_SIZE_T); + kwlist, &va, 0); va_end(va); return retval; } @@ -1374,7 +1300,7 @@ int PyArg_VaParseTupleAndKeywords(PyObject *args, PyObject *keywords, const char *format, - char **kwlist, va_list va) + const char * const *kwlist, va_list va) { int retval; va_list lva; @@ -1395,11 +1321,11 @@ PyArg_VaParseTupleAndKeywords(PyObject *args, return retval; } -PyAPI_FUNC(int) +int _PyArg_VaParseTupleAndKeywords_SizeT(PyObject *args, PyObject *keywords, const char *format, - char **kwlist, va_list va) + const char * const *kwlist, va_list va) { int retval; va_list lva; @@ -1416,7 +1342,7 @@ _PyArg_VaParseTupleAndKeywords_SizeT(PyObject *args, va_copy(lva, va); retval = vgetargskeywords(args, keywords, format, - kwlist, &lva, FLAG_SIZE_T); + kwlist, &lva, 0); va_end(lva); return retval; } @@ -1434,7 +1360,7 @@ _PyArg_ParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords, return retval; } -PyAPI_FUNC(int) +int _PyArg_ParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords, struct _PyArg_Parser *parser, ...) { @@ -1442,12 +1368,12 @@ _PyArg_ParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords, va_list va; va_start(va, parser); - retval = vgetargskeywordsfast(args, keywords, parser, &va, FLAG_SIZE_T); + retval = vgetargskeywordsfast(args, keywords, parser, &va, 0); va_end(va); return retval; } -PyAPI_FUNC(int) +int _PyArg_ParseStackAndKeywords(PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames, struct _PyArg_Parser *parser, ...) { @@ -1460,7 +1386,7 @@ _PyArg_ParseStackAndKeywords(PyObject *const *args, Py_ssize_t nargs, PyObject * return retval; } -PyAPI_FUNC(int) +int _PyArg_ParseStackAndKeywords_SizeT(PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames, struct _PyArg_Parser *parser, ...) { @@ -1468,40 +1394,12 @@ _PyArg_ParseStackAndKeywords_SizeT(PyObject *const *args, Py_ssize_t nargs, PyOb va_list va; va_start(va, parser); - retval = vgetargskeywordsfast_impl(args, nargs, NULL, kwnames, parser, &va, FLAG_SIZE_T); + retval = vgetargskeywordsfast_impl(args, nargs, NULL, kwnames, parser, &va, 0); va_end(va); return retval; } -PyAPI_FUNC(int) -_PyArg_VaParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords, - struct _PyArg_Parser *parser, va_list va) -{ - int retval; - va_list lva; - - va_copy(lva, va); - - retval = vgetargskeywordsfast(args, keywords, parser, &lva, 0); - va_end(lva); - return retval; -} - -PyAPI_FUNC(int) -_PyArg_VaParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords, - struct _PyArg_Parser *parser, va_list va) -{ - int retval; - va_list lva; - - va_copy(lva, va); - - retval = vgetargskeywordsfast(args, keywords, parser, &lva, FLAG_SIZE_T); - va_end(lva); - return retval; -} - static void error_unexpected_keyword_arg(PyObject *kwargs, PyObject *kwnames, PyObject *kwtuple, const char *fname) { @@ -1528,12 +1426,31 @@ error_unexpected_keyword_arg(PyObject *kwargs, PyObject *kwnames, PyObject *kwtu int match = PySequence_Contains(kwtuple, keyword); if (match <= 0) { if (!match) { - PyErr_Format(PyExc_TypeError, - "'%S' is an invalid keyword " - "argument for %.200s%s", - keyword, - (fname == NULL) ? "this function" : fname, - (fname == NULL) ? "" : "()"); + PyObject *kwlist = PySequence_List(kwtuple); + if (!kwlist) { + return; + } + PyObject *suggestion_keyword = _Py_CalculateSuggestions(kwlist, keyword); + Py_DECREF(kwlist); + + if (suggestion_keyword) { + PyErr_Format(PyExc_TypeError, + "%.200s%s got an unexpected keyword argument '%S'." + " Did you mean '%S'?", + (fname == NULL) ? "this function" : fname, + (fname == NULL) ? "" : "()", + keyword, + suggestion_keyword); + Py_DECREF(suggestion_keyword); + } + else { + PyErr_Format(PyExc_TypeError, + "%.200s%s got an unexpected keyword argument '%S'", + (fname == NULL) ? "this function" : fname, + (fname == NULL) ? "" : "()", + keyword); + } + } return; } @@ -1561,11 +1478,14 @@ PyArg_ValidateKeywordArguments(PyObject *kwargs) return 1; } +static PyObject * +new_kwtuple(const char * const *keywords, int total, int pos); + #define IS_END_OF_FORMAT(c) (c == '\0' || c == ';' || c == ':') static int vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format, - char **kwlist, va_list *p_va, int flags) + const char * const *kwlist, va_list *p_va, int flags) { char msgbuf[512]; int levels[32]; @@ -1575,7 +1495,6 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format, int i, pos, len; int skip = 0; Py_ssize_t nargs, nkwargs; - PyObject *current_arg; freelistentry_t static_entries[STATIC_FREELIST_ENTRIES]; freelist_t freelist; @@ -1705,17 +1624,17 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format, return cleanreturn(0, &freelist); } if (!skip) { + PyObject *current_arg; if (i < nargs) { - current_arg = PyTuple_GET_ITEM(args, i); + current_arg = Py_NewRef(PyTuple_GET_ITEM(args, i)); } else if (nkwargs && i >= pos) { - current_arg = _PyDict_GetItemStringWithError(kwargs, kwlist[i]); + if (PyDict_GetItemStringRef(kwargs, kwlist[i], ¤t_arg) < 0) { + return cleanreturn(0, &freelist); + } if (current_arg) { --nkwargs; } - else if (PyErr_Occurred()) { - return cleanreturn(0, &freelist); - } } else { current_arg = NULL; @@ -1724,6 +1643,7 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format, if (current_arg) { msg = convertitem(current_arg, &format, p_va, flags, levels, msgbuf, sizeof(msgbuf), &freelist); + Py_DECREF(current_arg); if (msg) { seterror(i+1, msg, levels, fname, custom_msg); return cleanreturn(0, &freelist); @@ -1794,8 +1714,12 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format, Py_ssize_t j; /* make sure there are no arguments given by name and position */ for (i = pos; i < nargs; i++) { - current_arg = _PyDict_GetItemStringWithError(kwargs, kwlist[i]); + PyObject *current_arg; + if (PyDict_GetItemStringRef(kwargs, kwlist[i], ¤t_arg) < 0) { + return cleanreturn(0, &freelist); + } if (current_arg) { + Py_DECREF(current_arg); /* arg present in tuple and in dict */ PyErr_Format(PyExc_TypeError, "argument for %.200s%s given by name ('%s') " @@ -1805,9 +1729,6 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format, kwlist[i], i+1); return cleanreturn(0, &freelist); } - else if (PyErr_Occurred()) { - return cleanreturn(0, &freelist); - } } /* make sure there are no extraneous keyword arguments */ j = 0; @@ -1819,18 +1740,41 @@ vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format, return cleanreturn(0, &freelist); } for (i = pos; i < len; i++) { - if (_PyUnicode_EqualToASCIIString(key, kwlist[i])) { + if (PyUnicode_EqualToUTF8(key, kwlist[i])) { match = 1; break; } } if (!match) { - PyErr_Format(PyExc_TypeError, - "'%U' is an invalid keyword " - "argument for %.200s%s", - key, - (fname == NULL) ? "this function" : fname, - (fname == NULL) ? "" : "()"); + PyObject *_pykwtuple = new_kwtuple(kwlist, len, pos); + if (!_pykwtuple) { + return cleanreturn(0, &freelist); + } + PyObject *pykwlist = PySequence_List(_pykwtuple); + Py_DECREF(_pykwtuple); + if (!pykwlist) { + return cleanreturn(0, &freelist); + } + PyObject *suggestion_keyword = _Py_CalculateSuggestions(pykwlist, key); + Py_DECREF(pykwlist); + + if (suggestion_keyword) { + PyErr_Format(PyExc_TypeError, + "%.200s%s got an unexpected keyword argument '%S'." + " Did you mean '%S'?", + (fname == NULL) ? "this function" : fname, + (fname == NULL) ? "" : "()", + key, + suggestion_keyword); + Py_DECREF(suggestion_keyword); + } + else { + PyErr_Format(PyExc_TypeError, + "%.200s%s got an unexpected keyword argument '%S'", + (fname == NULL) ? "this function" : fname, + (fname == NULL) ? "" : "()", + key); + } return cleanreturn(0, &freelist); } } @@ -1972,8 +1916,9 @@ new_kwtuple(const char * const *keywords, int total, int pos) } static int -_parser_init(struct _PyArg_Parser *parser) +_parser_init(void *arg) { + struct _PyArg_Parser *parser = (struct _PyArg_Parser *)arg; const char * const *keywords = parser->keywords; assert(keywords != NULL); assert(parser->pos == 0 && @@ -1984,7 +1929,7 @@ _parser_init(struct _PyArg_Parser *parser) int len, pos; if (scan_keywords(keywords, &len, &pos) < 0) { - return 0; + return -1; } const char *fname, *custommsg = NULL; @@ -1993,7 +1938,7 @@ _parser_init(struct _PyArg_Parser *parser) assert(parser->fname == NULL); if (parse_format(parser->format, len, pos, &fname, &custommsg, &min, &max) < 0) { - return 0; + return -1; } } else { @@ -2022,7 +1967,7 @@ _parser_init(struct _PyArg_Parser *parser) PyThreadState_Delete(temp_tstate); } if (kwtuple == NULL) { - return 0; + return -1; } owned = 1; } @@ -2036,40 +1981,27 @@ _parser_init(struct _PyArg_Parser *parser) parser->min = min; parser->max = max; parser->kwtuple = kwtuple; - parser->initialized = owned ? 1 : -1; + parser->is_kwtuple_owned = owned; assert(parser->next == NULL); - parser->next = _PyRuntime.getargs.static_parsers; - _PyRuntime.getargs.static_parsers = parser; - return 1; + parser->next = _Py_atomic_load_ptr(&_PyRuntime.getargs.static_parsers); + do { + // compare-exchange updates parser->next on failure + } while (!_Py_atomic_compare_exchange_ptr(&_PyRuntime.getargs.static_parsers, + &parser->next, parser)); + return 0; } static int parser_init(struct _PyArg_Parser *parser) { - // volatile as it can be modified by other threads - // and should not be optimized or reordered by compiler - if (*((volatile int *)&parser->initialized)) { - assert(parser->kwtuple != NULL); - return 1; - } - PyThread_acquire_lock(_PyRuntime.getargs.mutex, WAIT_LOCK); - // Check again if another thread initialized the parser - // while we were waiting for the lock. - if (*((volatile int *)&parser->initialized)) { - assert(parser->kwtuple != NULL); - PyThread_release_lock(_PyRuntime.getargs.mutex); - return 1; - } - int ret = _parser_init(parser); - PyThread_release_lock(_PyRuntime.getargs.mutex); - return ret; + return _PyOnceFlag_CallOnce(&parser->once, &_parser_init, parser); } static void parser_clear(struct _PyArg_Parser *parser) { - if (parser->initialized == 1) { + if (parser->is_kwtuple_owned) { Py_CLEAR(parser->kwtuple); } @@ -2083,7 +2015,8 @@ parser_clear(struct _PyArg_Parser *parser) parser->pos = 0; parser->min = 0; parser->max = 0; - parser->initialized = 0; + parser->is_kwtuple_owned = 0; + parser->once.v = 0; } static PyObject* @@ -2098,7 +2031,7 @@ find_keyword(PyObject *kwnames, PyObject *const *kwstack, PyObject *key) /* kwname == key will normally find a match in since keyword keys should be interned strings; if not retry below in a new loop. */ if (kwname == key) { - return kwstack[i]; + return Py_NewRef(kwstack[i]); } } @@ -2106,7 +2039,7 @@ find_keyword(PyObject *kwnames, PyObject *const *kwstack, PyObject *key) PyObject *kwname = PyTuple_GET_ITEM(kwnames, i); assert(PyUnicode_Check(kwname)); if (_PyUnicode_EQ(kwname, key)) { - return kwstack[i]; + return Py_NewRef(kwstack[i]); } } return NULL; @@ -2126,7 +2059,6 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, PyObject *keyword; int i, pos, len; Py_ssize_t nkwargs; - PyObject *current_arg; freelistentry_t static_entries[STATIC_FREELIST_ENTRIES]; freelist_t freelist; PyObject *const *kwstack = NULL; @@ -2149,7 +2081,7 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, return 0; } - if (!parser_init(parser)) { + if (parser_init(parser) < 0) { return 0; } @@ -2221,14 +2153,14 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, } assert(!IS_END_OF_FORMAT(*format)); + PyObject *current_arg; if (i < nargs) { - current_arg = args[i]; + current_arg = Py_NewRef(args[i]); } else if (nkwargs && i >= pos) { keyword = PyTuple_GET_ITEM(kwtuple, i - pos); if (kwargs != NULL) { - current_arg = PyDict_GetItemWithError(kwargs, keyword); - if (!current_arg && PyErr_Occurred()) { + if (PyDict_GetItemRef(kwargs, keyword, ¤t_arg) < 0) { return cleanreturn(0, &freelist); } } @@ -2246,6 +2178,7 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, if (current_arg) { msg = convertitem(current_arg, &format, p_va, flags, levels, msgbuf, sizeof(msgbuf), &freelist); + Py_DECREF(current_arg); if (msg) { seterror(i+1, msg, levels, parser->fname, parser->custom_msg); return cleanreturn(0, &freelist); @@ -2296,10 +2229,10 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, if (nkwargs > 0) { /* make sure there are no arguments given by name and position */ for (i = pos; i < nargs; i++) { + PyObject *current_arg; keyword = PyTuple_GET_ITEM(kwtuple, i - pos); if (kwargs != NULL) { - current_arg = PyDict_GetItemWithError(kwargs, keyword); - if (!current_arg && PyErr_Occurred()) { + if (PyDict_GetItemRef(kwargs, keyword, ¤t_arg) < 0) { return cleanreturn(0, &freelist); } } @@ -2307,6 +2240,7 @@ vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs, current_arg = find_keyword(kwnames, kwstack, keyword); } if (current_arg) { + Py_DECREF(current_arg); /* arg present in tuple and in dict */ PyErr_Format(PyExc_TypeError, "argument for %.200s%s given by name ('%U') " @@ -2361,7 +2295,6 @@ _PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs, int i, posonly, minposonly, maxargs; int reqlimit = minkw ? maxpos + minkw : minpos; Py_ssize_t nkwargs; - PyObject *current_arg; PyObject * const *kwstack = NULL; assert(kwargs == NULL || PyDict_Check(kwargs)); @@ -2381,7 +2314,7 @@ _PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs, args = buf; } - if (!parser_init(parser)) { + if (parser_init(parser) < 0) { return NULL; } @@ -2456,11 +2389,11 @@ _PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs, /* copy keyword args using kwtuple to drive process */ for (i = Py_MAX((int)nargs, posonly); i < maxargs; i++) { + PyObject *current_arg; if (nkwargs) { keyword = PyTuple_GET_ITEM(kwtuple, i - posonly); if (kwargs != NULL) { - current_arg = PyDict_GetItemWithError(kwargs, keyword); - if (!current_arg && PyErr_Occurred()) { + if (PyDict_GetItemRef(kwargs, keyword, ¤t_arg) < 0) { return NULL; } } @@ -2478,6 +2411,7 @@ _PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs, buf[i] = current_arg; if (current_arg) { + Py_DECREF(current_arg); --nkwargs; } else if (i < minpos || (maxpos <= i && i < reqlimit)) { @@ -2495,10 +2429,10 @@ _PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs, if (nkwargs > 0) { /* make sure there are no arguments given by name and position */ for (i = posonly; i < nargs; i++) { + PyObject *current_arg; keyword = PyTuple_GET_ITEM(kwtuple, i - posonly); if (kwargs != NULL) { - current_arg = PyDict_GetItemWithError(kwargs, keyword); - if (!current_arg && PyErr_Occurred()) { + if (PyDict_GetItemRef(kwargs, keyword, ¤t_arg) < 0) { return NULL; } } @@ -2506,6 +2440,7 @@ _PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t nargs, current_arg = find_keyword(kwnames, kwstack, keyword); } if (current_arg) { + Py_DECREF(current_arg); /* arg present in tuple and in dict */ PyErr_Format(PyExc_TypeError, "argument for %.200s%s given by name ('%U') " @@ -2537,7 +2472,6 @@ _PyArg_UnpackKeywordsWithVararg(PyObject *const *args, Py_ssize_t nargs, int i, posonly, minposonly, maxargs; int reqlimit = minkw ? maxpos + minkw : minpos; Py_ssize_t nkwargs; - PyObject *current_arg; PyObject * const *kwstack = NULL; assert(kwargs == NULL || PyDict_Check(kwargs)); @@ -2557,7 +2491,7 @@ _PyArg_UnpackKeywordsWithVararg(PyObject *const *args, Py_ssize_t nargs, args = buf; } - if (!parser_init(parser)) { + if (parser_init(parser) < 0) { return NULL; } @@ -2610,13 +2544,12 @@ _PyArg_UnpackKeywordsWithVararg(PyObject *const *args, Py_ssize_t nargs, } /* copy keyword args using kwtuple to drive process */ - for (i = Py_MAX((int)nargs, posonly) - - Py_SAFE_DOWNCAST(varargssize, Py_ssize_t, int); i < maxargs; i++) { + for (i = Py_MAX((int)nargs, posonly) - Py_SAFE_DOWNCAST(varargssize, Py_ssize_t, int); i < maxargs; i++) { + PyObject *current_arg; if (nkwargs) { keyword = PyTuple_GET_ITEM(kwtuple, i - posonly); if (kwargs != NULL) { - current_arg = PyDict_GetItemWithError(kwargs, keyword); - if (!current_arg && PyErr_Occurred()) { + if (PyDict_GetItemRef(kwargs, keyword, ¤t_arg) < 0) { goto exit; } } @@ -2649,6 +2582,7 @@ _PyArg_UnpackKeywordsWithVararg(PyObject *const *args, Py_ssize_t nargs, } if (current_arg) { + Py_DECREF(current_arg); --nkwargs; } else if (i < minpos || (maxpos <= i && i < reqlimit)) { @@ -2738,11 +2672,13 @@ skipitem(const char **p_format, va_list *p_va, int flags) if (p_va != NULL) { (void) va_arg(*p_va, char **); } + if (c == 'w' && *format != '*') + { + /* after 'w', only '*' is allowed */ + goto err; + } if (*format == '#') { if (p_va != NULL) { - if (!(flags & FLAG_SIZE_T)) { - return "PY_SSIZE_T_CLEAN macro must be defined for '#' formats"; - } (void) va_arg(*p_va, Py_ssize_t *); } format++; @@ -2984,7 +2920,3 @@ _PyArg_Fini(void) } _PyRuntime.getargs.static_parsers = NULL; } - -#ifdef __cplusplus -}; -#endif diff --git a/contrib/tools/python3/Python/getcopyright.c b/contrib/tools/python3/Python/getcopyright.c index c1f1aad9b84..066c2ed66ac 100644 --- a/contrib/tools/python3/Python/getcopyright.c +++ b/contrib/tools/python3/Python/getcopyright.c @@ -4,7 +4,7 @@ static const char cprt[] = "\ -Copyright (c) 2001-2023 Python Software Foundation.\n\ +Copyright (c) 2001-2024 Python Software Foundation.\n\ All Rights Reserved.\n\ \n\ Copyright (c) 2000 BeOpen.com.\n\ diff --git a/contrib/tools/python3/Python/getopt.c b/contrib/tools/python3/Python/getopt.c index 4135bf1446e..f64c89fa227 100644 --- a/contrib/tools/python3/Python/getopt.c +++ b/contrib/tools/python3/Python/getopt.c @@ -29,10 +29,6 @@ #include #include "pycore_getopt.h" -#ifdef __cplusplus -extern "C" { -#endif - int _PyOS_opterr = 1; /* generate error messages */ Py_ssize_t _PyOS_optind = 1; /* index into argv array */ const wchar_t *_PyOS_optarg = NULL; /* optional argument */ @@ -172,8 +168,3 @@ int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex) return option; } - -#ifdef __cplusplus -} -#endif - diff --git a/contrib/tools/python3/Python/getversion.c b/contrib/tools/python3/Python/getversion.c index 5db836ab4bf..226b2f999a6 100644 --- a/contrib/tools/python3/Python/getversion.c +++ b/contrib/tools/python3/Python/getversion.c @@ -6,7 +6,7 @@ #include "patchlevel.h" static int initialized = 0; -static char version[250]; +static char version[300]; void _Py_InitVersion(void) { @@ -14,7 +14,12 @@ void _Py_InitVersion(void) return; } initialized = 1; - PyOS_snprintf(version, sizeof(version), "%.80s (%.80s) %.80s", +#ifdef Py_GIL_DISABLED + const char *buildinfo_format = "%.80s experimental free-threading build (%.80s) %.80s"; +#else + const char *buildinfo_format = "%.80s (%.80s) %.80s"; +#endif + PyOS_snprintf(version, sizeof(version), buildinfo_format, PY_VERSION, Py_GetBuildInfo(), Py_GetCompiler()); } diff --git a/contrib/tools/python3/Python/hamt.c b/contrib/tools/python3/Python/hamt.c index 8cb94641bef..91abaecd3e7 100644 --- a/contrib/tools/python3/Python/hamt.c +++ b/contrib/tools/python3/Python/hamt.c @@ -1,9 +1,10 @@ #include "Python.h" - -#include "pycore_bitutils.h" // _Py_popcount32 +#include "pycore_bitutils.h" // _Py_popcount32() #include "pycore_hamt.h" #include "pycore_initconfig.h" // _PyStatus_OK() +#include "pycore_long.h" // _PyLong_Format() #include "pycore_object.h" // _PyObject_GC_TRACK() + #include // offsetof() /* @@ -255,9 +256,9 @@ Debug ===== The HAMT datatype is accessible for testing purposes under the -`_testcapi` module: +`_testinternalcapi` module: - >>> from _testcapi import hamt + >>> from _testinternalcapi import hamt >>> h = hamt() >>> h2 = h.set('a', 2) >>> h3 = h2.set('b', 3) @@ -514,7 +515,7 @@ hamt_node_bitmap_new(Py_ssize_t size) /* Since bitmap nodes are immutable, we can cache the instance for size=0 and reuse it whenever we need an empty bitmap node. */ - return (PyHamtNode *)Py_NewRef(&_Py_SINGLETON(hamt_bitmap_node_empty)); + return (PyHamtNode *)&_Py_SINGLETON(hamt_bitmap_node_empty); } assert(size >= 0); @@ -2425,7 +2426,7 @@ hamt_alloc(void) } #define _empty_hamt \ - (&_Py_INTERP_SINGLETON(_PyInterpreterState_Get(), hamt_empty)) + (&_Py_INTERP_SINGLETON(_PyInterpreterState_GET(), hamt_empty)) PyHamtObject * _PyHamt_New(void) diff --git a/contrib/tools/python3/Python/hashtable.c b/contrib/tools/python3/Python/hashtable.c index 9f005c7ad96..faf68fe4ff0 100644 --- a/contrib/tools/python3/Python/hashtable.c +++ b/contrib/tools/python3/Python/hashtable.c @@ -45,7 +45,8 @@ */ #include "Python.h" -#include "pycore_hashtable.h" +#include "pycore_hashtable.h" // export _Py_hashtable_new() +#include "pycore_pyhash.h" // _Py_HashPointerRaw() #define HASHTABLE_MIN_SIZE 16 #define HASHTABLE_HIGH 0.50 @@ -225,7 +226,6 @@ _Py_hashtable_set(_Py_hashtable_t *ht, const void *key, void *value) assert(entry == NULL); #endif - entry = ht->alloc.malloc(sizeof(_Py_hashtable_entry_t)); if (entry == NULL) { /* memory allocation failed */ diff --git a/contrib/tools/python3/Python/import.c b/contrib/tools/python3/Python/import.c index fe70169202c..32a25e4478c 100644 --- a/contrib/tools/python3/Python/import.c +++ b/contrib/tools/python3/Python/import.c @@ -1,7 +1,7 @@ /* Module definition and import implementation */ #include "Python.h" - +#include "pycore_ceval.h" #include "pycore_hashtable.h" // _Py_hashtable_new_full() #include "pycore_import.h" // _PyImport_BootstrapImp() #include "pycore_initconfig.h" // _PyStatus_OK() @@ -14,17 +14,17 @@ #include "pycore_pymem.h" // _PyMem_SetDefaultAllocator() #include "pycore_pystate.h" // _PyInterpreterState_GET() #include "pycore_sysmodule.h" // _PySys_Audit() +#include "pycore_time.h" // _PyTime_AsMicroseconds() +#include "pycore_weakref.h" // _PyWeakref_GET_REF() + #include "marshal.h" // PyMarshal_ReadObjectFromString() -#include "importdl.h" // _PyImport_DynLoadFiletab +#include "pycore_importdl.h" // _PyImport_DynLoadFiletab #include "pydtrace.h" // PyDTrace_IMPORT_FIND_LOAD_START_ENABLED() #include // bool #ifdef HAVE_FCNTL_H #include #endif -#ifdef __cplusplus -extern "C" { -#endif /*[clinic input] @@ -35,6 +35,17 @@ module _imp #include "clinic/import.c.h" +#ifndef NDEBUG +static bool +is_interpreter_isolated(PyInterpreterState *interp) +{ + return !_Py_IsMainInterpreter(interp) + && !(interp->feature_flags & Py_RTFLAGS_USE_MAIN_OBMALLOC) + && interp->ceval.own_gil; +} +#endif + + /*******************************/ /* process-global import state */ /*******************************/ @@ -83,11 +94,7 @@ static struct _inittab *inittab_copy = NULL; (interp)->imports.import_func #define IMPORT_LOCK(interp) \ - (interp)->imports.lock.mutex -#define IMPORT_LOCK_THREAD(interp) \ - (interp)->imports.lock.thread -#define IMPORT_LOCK_LEVEL(interp) \ - (interp)->imports.lock.level + (interp)->imports.lock #define FIND_AND_LOAD(interp) \ (interp)->imports.find_and_load @@ -104,74 +111,21 @@ static struct _inittab *inittab_copy = NULL; void _PyImport_AcquireLock(PyInterpreterState *interp) { - unsigned long me = PyThread_get_thread_ident(); - if (me == PYTHREAD_INVALID_THREAD_ID) - return; /* Too bad */ - if (IMPORT_LOCK(interp) == NULL) { - IMPORT_LOCK(interp) = PyThread_allocate_lock(); - if (IMPORT_LOCK(interp) == NULL) - return; /* Nothing much we can do. */ - } - if (IMPORT_LOCK_THREAD(interp) == me) { - IMPORT_LOCK_LEVEL(interp)++; - return; - } - if (IMPORT_LOCK_THREAD(interp) != PYTHREAD_INVALID_THREAD_ID || - !PyThread_acquire_lock(IMPORT_LOCK(interp), 0)) - { - PyThreadState *tstate = PyEval_SaveThread(); - PyThread_acquire_lock(IMPORT_LOCK(interp), WAIT_LOCK); - PyEval_RestoreThread(tstate); - } - assert(IMPORT_LOCK_LEVEL(interp) == 0); - IMPORT_LOCK_THREAD(interp) = me; - IMPORT_LOCK_LEVEL(interp) = 1; + _PyRecursiveMutex_Lock(&IMPORT_LOCK(interp)); } -int +void _PyImport_ReleaseLock(PyInterpreterState *interp) { - unsigned long me = PyThread_get_thread_ident(); - if (me == PYTHREAD_INVALID_THREAD_ID || IMPORT_LOCK(interp) == NULL) - return 0; /* Too bad */ - if (IMPORT_LOCK_THREAD(interp) != me) - return -1; - IMPORT_LOCK_LEVEL(interp)--; - assert(IMPORT_LOCK_LEVEL(interp) >= 0); - if (IMPORT_LOCK_LEVEL(interp) == 0) { - IMPORT_LOCK_THREAD(interp) = PYTHREAD_INVALID_THREAD_ID; - PyThread_release_lock(IMPORT_LOCK(interp)); - } - return 1; + _PyRecursiveMutex_Unlock(&IMPORT_LOCK(interp)); } -#ifdef HAVE_FORK -/* This function is called from PyOS_AfterFork_Child() to ensure that newly - created child processes do not share locks with the parent. - We now acquire the import lock around fork() calls but on some platforms - (Solaris 9 and earlier? see isue7242) that still left us with problems. */ -PyStatus +void _PyImport_ReInitLock(PyInterpreterState *interp) { - if (IMPORT_LOCK(interp) != NULL) { - if (_PyThread_at_fork_reinit(&IMPORT_LOCK(interp)) < 0) { - return _PyStatus_ERR("failed to create a new lock"); - } - } - - if (IMPORT_LOCK_LEVEL(interp) > 1) { - /* Forked as a side effect of import */ - unsigned long me = PyThread_get_thread_ident(); - PyThread_acquire_lock(IMPORT_LOCK(interp), WAIT_LOCK); - IMPORT_LOCK_THREAD(interp) = me; - IMPORT_LOCK_LEVEL(interp)--; - } else { - IMPORT_LOCK_THREAD(interp) = PYTHREAD_INVALID_THREAD_ID; - IMPORT_LOCK_LEVEL(interp) = 0; - } - return _PyStatus_OK(); + // gh-126688: Thread id may change after fork() on some operating systems. + IMPORT_LOCK(interp).thread = PyThread_get_thread_ident_ex(); } -#endif /***************/ @@ -201,65 +155,60 @@ _PyImport_ClearModules(PyInterpreterState *interp) Py_SETREF(MODULES(interp), NULL); } -PyObject * -PyImport_GetModuleDict(void) +static inline PyObject * +get_modules_dict(PyThreadState *tstate, bool fatal) { - PyInterpreterState *interp = _PyInterpreterState_GET(); - if (MODULES(interp) == NULL) { - Py_FatalError("interpreter has no modules dictionary"); + /* Technically, it would make sense to incref the dict, + * since sys.modules could be swapped out and decref'ed to 0 + * before the caller is done using it. However, that is highly + * unlikely, especially since we can rely on a global lock + * (i.e. the GIL) for thread-safety. */ + PyObject *modules = MODULES(tstate->interp); + if (modules == NULL) { + if (fatal) { + Py_FatalError("interpreter has no modules dictionary"); + } + _PyErr_SetString(tstate, PyExc_RuntimeError, + "unable to get sys.modules"); + return NULL; } - return MODULES(interp); + return modules; } -// This is only kept around for extensions that use _Py_IDENTIFIER. PyObject * -_PyImport_GetModuleId(_Py_Identifier *nameid) +PyImport_GetModuleDict(void) { - PyObject *name = _PyUnicode_FromId(nameid); /* borrowed */ - if (name == NULL) { - return NULL; - } - return PyImport_GetModule(name); + PyThreadState *tstate = _PyThreadState_GET(); + return get_modules_dict(tstate, true); } int _PyImport_SetModule(PyObject *name, PyObject *m) { - PyInterpreterState *interp = _PyInterpreterState_GET(); - PyObject *modules = MODULES(interp); + PyThreadState *tstate = _PyThreadState_GET(); + PyObject *modules = get_modules_dict(tstate, true); return PyObject_SetItem(modules, name, m); } int _PyImport_SetModuleString(const char *name, PyObject *m) { - PyInterpreterState *interp = _PyInterpreterState_GET(); - PyObject *modules = MODULES(interp); + PyThreadState *tstate = _PyThreadState_GET(); + PyObject *modules = get_modules_dict(tstate, true); return PyMapping_SetItemString(modules, name, m); } static PyObject * import_get_module(PyThreadState *tstate, PyObject *name) { - PyObject *modules = MODULES(tstate->interp); + PyObject *modules = get_modules_dict(tstate, false); if (modules == NULL) { - _PyErr_SetString(tstate, PyExc_RuntimeError, - "unable to get sys.modules"); return NULL; } PyObject *m; Py_INCREF(modules); - if (PyDict_CheckExact(modules)) { - m = PyDict_GetItemWithError(modules, name); /* borrowed */ - Py_XINCREF(m); - } - else { - m = PyObject_GetItem(modules, name); - if (m == NULL && _PyErr_ExceptionMatches(tstate, PyExc_KeyError)) { - _PyErr_Clear(tstate); - } - } + (void)PyMapping_GetOptionalItem(modules, name, &m); Py_DECREF(modules); return m; } @@ -274,18 +223,21 @@ import_ensure_initialized(PyInterpreterState *interp, PyObject *mod, PyObject *n NOTE: because of this, initializing must be set *before* stuffing the new module in sys.modules. */ - spec = PyObject_GetAttr(mod, &_Py_ID(__spec__)); - int busy = _PyModuleSpec_IsInitializing(spec); - Py_XDECREF(spec); - if (busy) { - /* Wait until module is done importing. */ - PyObject *value = _PyObject_CallMethodOneArg( - IMPORTLIB(interp), &_Py_ID(_lock_unlock_module), name); - if (value == NULL) { - return -1; - } - Py_DECREF(value); + int rc = PyObject_GetOptionalAttr(mod, &_Py_ID(__spec__), &spec); + if (rc > 0) { + rc = _PyModuleSpec_IsInitializing(spec); + Py_DECREF(spec); + } + if (rc <= 0) { + return rc; + } + /* Wait until module is done importing. */ + PyObject *value = PyObject_CallMethodOneArg( + IMPORTLIB(interp), &_Py_ID(_lock_unlock_module), name); + if (value == NULL) { + return -1; } + Py_DECREF(value); return 0; } @@ -315,26 +267,13 @@ PyImport_GetModule(PyObject *name) static PyObject * import_add_module(PyThreadState *tstate, PyObject *name) { - PyObject *modules = MODULES(tstate->interp); + PyObject *modules = get_modules_dict(tstate, false); if (modules == NULL) { - _PyErr_SetString(tstate, PyExc_RuntimeError, - "no import module dictionary"); return NULL; } PyObject *m; - if (PyDict_CheckExact(modules)) { - m = Py_XNewRef(PyDict_GetItemWithError(modules, name)); - } - else { - m = PyObject_GetItem(modules, name); - // For backward-compatibility we copy the behavior - // of PyDict_GetItemWithError(). - if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) { - _PyErr_Clear(tstate); - } - } - if (_PyErr_Occurred(tstate)) { + if (PyMapping_GetOptionalItem(modules, name, &m) < 0) { return NULL; } if (m != NULL && PyModule_Check(m)) { @@ -352,19 +291,52 @@ import_add_module(PyThreadState *tstate, PyObject *name) return m; } +PyObject * +PyImport_AddModuleRef(const char *name) +{ + PyObject *name_obj = PyUnicode_FromString(name); + if (name_obj == NULL) { + return NULL; + } + PyThreadState *tstate = _PyThreadState_GET(); + PyObject *module = import_add_module(tstate, name_obj); + Py_DECREF(name_obj); + return module; +} + + PyObject * PyImport_AddModuleObject(PyObject *name) { PyThreadState *tstate = _PyThreadState_GET(); PyObject *mod = import_add_module(tstate, name); - if (mod) { - PyObject *ref = PyWeakref_NewRef(mod, NULL); - Py_DECREF(mod); - if (ref == NULL) { - return NULL; - } - mod = PyWeakref_GetObject(ref); - Py_DECREF(ref); + if (!mod) { + return NULL; + } + + // gh-86160: PyImport_AddModuleObject() returns a borrowed reference. + // Create a weak reference to produce a borrowed reference, since it can + // become NULL. sys.modules type can be different than dict and it is not + // guaranteed that it keeps a strong reference to the module. It can be a + // custom mapping with __getitem__() which returns a new object or removes + // returned object, or __setitem__ which does nothing. There is so much + // unknown. With weakref we can be sure that we get either a reference to + // live object or NULL. + // + // Use PyImport_AddModuleRef() to avoid these issues. + PyObject *ref = PyWeakref_NewRef(mod, NULL); + Py_DECREF(mod); + if (ref == NULL) { + return NULL; + } + mod = _PyWeakref_GET_REF(ref); + Py_DECREF(ref); + Py_XDECREF(mod); + + if (mod == NULL && !PyErr_Occurred()) { + PyErr_SetString(PyExc_RuntimeError, + "sys.modules does not hold a strong reference " + "to the module"); } return mod; /* borrowed reference */ } @@ -393,10 +365,10 @@ remove_module(PyThreadState *tstate, PyObject *name) { PyObject *exc = _PyErr_GetRaisedException(tstate); - PyObject *modules = MODULES(tstate->interp); + PyObject *modules = get_modules_dict(tstate, true); if (PyDict_CheckExact(modules)) { - PyObject *mod = _PyDict_Pop(modules, name, Py_None); - Py_XDECREF(mod); + // Error is reported to the caller + (void)PyDict_Pop(modules, name, NULL); } else if (PyMapping_DelItem(modules, name) < 0) { if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) { @@ -415,32 +387,65 @@ remove_module(PyThreadState *tstate, PyObject *name) Py_ssize_t _PyImport_GetNextModuleIndex(void) { - PyThread_acquire_lock(EXTENSIONS.mutex, WAIT_LOCK); - LAST_MODULE_INDEX++; - Py_ssize_t index = LAST_MODULE_INDEX; - PyThread_release_lock(EXTENSIONS.mutex); + return _Py_atomic_add_ssize(&LAST_MODULE_INDEX, 1) + 1; +} + +#ifndef NDEBUG +struct extensions_cache_value; +static struct extensions_cache_value * _find_cached_def(PyModuleDef *); +static Py_ssize_t _get_cached_module_index(struct extensions_cache_value *); +#endif + +static Py_ssize_t +_get_module_index_from_def(PyModuleDef *def) +{ + Py_ssize_t index = def->m_base.m_index; +#ifndef NDEBUG + struct extensions_cache_value *cached = _find_cached_def(def); + assert(cached == NULL || index == _get_cached_module_index(cached)); +#endif return index; } +static void +_set_module_index(PyModuleDef *def, Py_ssize_t index) +{ + assert(index > 0); + if (index == def->m_base.m_index) { + /* There's nothing to do. */ + } + else if (def->m_base.m_index == 0) { + /* It should have been initialized by PyModuleDef_Init(). + * We assert here to catch this in dev, but keep going otherwise. */ + assert(def->m_base.m_index != 0); + def->m_base.m_index = index; + } + else { + /* It was already set for a different module. + * We replace the old value. */ + assert(def->m_base.m_index > 0); + def->m_base.m_index = index; + } +} + static const char * _modules_by_index_check(PyInterpreterState *interp, Py_ssize_t index) { - if (index == 0) { + if (index <= 0) { return "invalid module index"; } if (MODULES_BY_INDEX(interp) == NULL) { return "Interpreters module-list not accessible."; } - if (index > PyList_GET_SIZE(MODULES_BY_INDEX(interp))) { + if (index >= PyList_GET_SIZE(MODULES_BY_INDEX(interp))) { return "Module index out of bounds."; } return NULL; } static PyObject * -_modules_by_index_get(PyInterpreterState *interp, PyModuleDef *def) +_modules_by_index_get(PyInterpreterState *interp, Py_ssize_t index) { - Py_ssize_t index = def->m_base.m_index; if (_modules_by_index_check(interp, index) != NULL) { return NULL; } @@ -450,11 +455,9 @@ _modules_by_index_get(PyInterpreterState *interp, PyModuleDef *def) static int _modules_by_index_set(PyInterpreterState *interp, - PyModuleDef *def, PyObject *module) + Py_ssize_t index, PyObject *module) { - assert(def != NULL); - assert(def->m_slots == NULL); - assert(def->m_base.m_index > 0); + assert(index > 0); if (MODULES_BY_INDEX(interp) == NULL) { MODULES_BY_INDEX(interp) = PyList_New(0); @@ -463,7 +466,6 @@ _modules_by_index_set(PyInterpreterState *interp, } } - Py_ssize_t index = def->m_base.m_index; while (PyList_GET_SIZE(MODULES_BY_INDEX(interp)) <= index) { if (PyList_Append(MODULES_BY_INDEX(interp), Py_None) < 0) { return -1; @@ -474,9 +476,8 @@ _modules_by_index_set(PyInterpreterState *interp, } static int -_modules_by_index_clear_one(PyInterpreterState *interp, PyModuleDef *def) +_modules_by_index_clear_one(PyInterpreterState *interp, Py_ssize_t index) { - Py_ssize_t index = def->m_base.m_index; const char *err = _modules_by_index_check(interp, index); if (err != NULL) { Py_FatalError(err); @@ -493,7 +494,8 @@ PyState_FindModule(PyModuleDef* module) if (module->m_slots) { return NULL; } - return _modules_by_index_get(interp, module); + Py_ssize_t index = _get_module_index_from_def(module); + return _modules_by_index_get(interp, index); } /* _PyState_AddModule() has been completely removed from the C-API @@ -513,7 +515,9 @@ _PyState_AddModule(PyThreadState *tstate, PyObject* module, PyModuleDef* def) "PyState_AddModule called on module with slots"); return -1; } - return _modules_by_index_set(tstate->interp, def, module); + assert(def->m_slots == NULL); + Py_ssize_t index = _get_module_index_from_def(def); + return _modules_by_index_set(tstate->interp, index, module); } int @@ -533,7 +537,7 @@ PyState_AddModule(PyObject* module, PyModuleDef* def) } PyInterpreterState *interp = tstate->interp; - Py_ssize_t index = def->m_base.m_index; + Py_ssize_t index = _get_module_index_from_def(def); if (MODULES_BY_INDEX(interp) && index < PyList_GET_SIZE(MODULES_BY_INDEX(interp)) && module == PyList_GET_ITEM(MODULES_BY_INDEX(interp), index)) @@ -542,7 +546,8 @@ PyState_AddModule(PyObject* module, PyModuleDef* def) return -1; } - return _modules_by_index_set(interp, def, module); + assert(def->m_slots == NULL); + return _modules_by_index_set(interp, index, module); } int @@ -555,7 +560,8 @@ PyState_RemoveModule(PyModuleDef* def) "PyState_RemoveModule called on module with slots"); return -1; } - return _modules_by_index_clear_one(tstate->interp, def); + Py_ssize_t index = _get_module_index_from_def(def); + return _modules_by_index_clear_one(tstate->interp, index); } @@ -574,6 +580,8 @@ _PyImport_ClearModulesByIndex(PyInterpreterState *interp) /* cleanup the saved copy of module dicts */ PyModuleDef *md = PyModule_GetDef(m); if (md) { + // XXX Do this more carefully. The dict might be owned + // by another interpreter. Py_CLEAR(md->m_base.m_copy); } } @@ -584,7 +592,7 @@ _PyImport_ClearModulesByIndex(PyInterpreterState *interp) if (PyList_SetSlice(MODULES_BY_INDEX(interp), 0, PyList_GET_SIZE(MODULES_BY_INDEX(interp)), NULL)) { - PyErr_WriteUnraisable(MODULES_BY_INDEX(interp)); + PyErr_FormatUnraisable("Exception ignored on clearing interpreters module list"); } } @@ -598,7 +606,7 @@ _PyImport_ClearModulesByIndex(PyInterpreterState *interp) when an extension is loaded. This includes when it is imported for the first time. - Here's a summary, using importlib._boostrap._load() as a starting point. + Here's a summary, using importlib._bootstrap._load() as a starting point. 1. importlib._bootstrap._load() 2. _load(): acquire import lock @@ -618,77 +626,100 @@ _PyImport_ClearModulesByIndex(PyInterpreterState *interp) ...for single-phase init modules, where m_size == -1: (6). first time (not found in _PyRuntime.imports.extensions): - 1. _imp_create_dynamic_impl() -> import_find_extension() - 2. _imp_create_dynamic_impl() -> _PyImport_LoadDynamicModuleWithSpec() - 3. _PyImport_LoadDynamicModuleWithSpec(): load - 4. _PyImport_LoadDynamicModuleWithSpec(): call - 5. -> PyModule_Create() -> PyModule_Create2() -> PyModule_CreateInitialized() - 6. PyModule_CreateInitialized() -> PyModule_New() - 7. PyModule_CreateInitialized(): allocate mod->md_state - 8. PyModule_CreateInitialized() -> PyModule_AddFunctions() - 9. PyModule_CreateInitialized() -> PyModule_SetDocString() - 10. PyModule_CreateInitialized(): set mod->md_def - 11. : initialize the module - 12. _PyImport_LoadDynamicModuleWithSpec() -> _PyImport_CheckSubinterpIncompatibleExtensionAllowed() - 13. _PyImport_LoadDynamicModuleWithSpec(): set def->m_base.m_init - 14. _PyImport_LoadDynamicModuleWithSpec(): set __file__ - 15. _PyImport_LoadDynamicModuleWithSpec() -> _PyImport_FixupExtensionObject() - 16. _PyImport_FixupExtensionObject(): add it to interp->imports.modules_by_index - 17. _PyImport_FixupExtensionObject(): copy __dict__ into def->m_base.m_copy - 18. _PyImport_FixupExtensionObject(): add it to _PyRuntime.imports.extensions + A. _imp_create_dynamic_impl() -> import_find_extension() + B. _imp_create_dynamic_impl() -> _PyImport_GetModInitFunc() + C. _PyImport_GetModInitFunc(): load + D. _imp_create_dynamic_impl() -> import_run_extension() + E. import_run_extension() -> _PyImport_RunModInitFunc() + F. _PyImport_RunModInitFunc(): call + G. -> PyModule_Create() -> PyModule_Create2() + -> PyModule_CreateInitialized() + H. PyModule_CreateInitialized() -> PyModule_New() + I. PyModule_CreateInitialized(): allocate mod->md_state + J. PyModule_CreateInitialized() -> PyModule_AddFunctions() + K. PyModule_CreateInitialized() -> PyModule_SetDocString() + L. PyModule_CreateInitialized(): set mod->md_def + M. : initialize the module, etc. + N. import_run_extension() + -> _PyImport_CheckSubinterpIncompatibleExtensionAllowed() + O. import_run_extension(): set __file__ + P. import_run_extension() -> update_global_state_for_extension() + Q. update_global_state_for_extension(): + copy __dict__ into def->m_base.m_copy + R. update_global_state_for_extension(): + add it to _PyRuntime.imports.extensions + S. import_run_extension() -> finish_singlephase_extension() + T. finish_singlephase_extension(): + add it to interp->imports.modules_by_index + U. finish_singlephase_extension(): add it to sys.modules + + Step (Q) is skipped for core modules (sys/builtins). (6). subsequent times (found in _PyRuntime.imports.extensions): - 1. _imp_create_dynamic_impl() -> import_find_extension() - 2. import_find_extension() -> import_add_module() - 3. if name in sys.modules: use that module - 4. else: - 1. import_add_module() -> PyModule_NewObject() - 2. import_add_module(): set it on sys.modules - 5. import_find_extension(): copy the "m_copy" dict into __dict__ - 6. _imp_create_dynamic_impl() -> _PyImport_CheckSubinterpIncompatibleExtensionAllowed() + A. _imp_create_dynamic_impl() -> import_find_extension() + B. import_find_extension() -> reload_singlephase_extension() + C. reload_singlephase_extension() + -> _PyImport_CheckSubinterpIncompatibleExtensionAllowed() + D. reload_singlephase_extension() -> import_add_module() + E. if name in sys.modules: use that module + F. else: + 1. import_add_module() -> PyModule_NewObject() + 2. import_add_module(): set it on sys.modules + G. reload_singlephase_extension(): copy the "m_copy" dict into __dict__ + H. reload_singlephase_extension(): add to modules_by_index (10). (every time): - 1. noop + A. noop ...for single-phase init modules, where m_size >= 0: (6). not main interpreter and never loaded there - every time (not found in _PyRuntime.imports.extensions): - 1-16. (same as for m_size == -1) + A-P. (same as for m_size == -1) + Q. _PyImport_RunModInitFunc(): set def->m_base.m_init + R. (skipped) + S-U. (same as for m_size == -1) (6). main interpreter - first time (not found in _PyRuntime.imports.extensions): - 1-16. (same as for m_size == -1) - 17. _PyImport_FixupExtensionObject(): add it to _PyRuntime.imports.extensions + A-P. (same as for m_size == -1) + Q. _PyImport_RunModInitFunc(): set def->m_base.m_init + R-U. (same as for m_size == -1) - (6). previously loaded in main interpreter (found in _PyRuntime.imports.extensions): - 1. _imp_create_dynamic_impl() -> import_find_extension() - 2. import_find_extension(): call def->m_base.m_init - 3. import_find_extension(): add the module to sys.modules + (6). subsequent times (found in _PyRuntime.imports.extensions): + A. _imp_create_dynamic_impl() -> import_find_extension() + B. import_find_extension() -> reload_singlephase_extension() + C. reload_singlephase_extension() + -> _PyImport_CheckSubinterpIncompatibleExtensionAllowed() + D. reload_singlephase_extension(): call def->m_base.m_init (see above) + E. reload_singlephase_extension(): add the module to sys.modules + F. reload_singlephase_extension(): add to modules_by_index (10). every time: - 1. noop + A. noop ...for multi-phase init modules: (6). every time: - 1. _imp_create_dynamic_impl() -> import_find_extension() (not found) - 2. _imp_create_dynamic_impl() -> _PyImport_LoadDynamicModuleWithSpec() - 3. _PyImport_LoadDynamicModuleWithSpec(): load module init func - 4. _PyImport_LoadDynamicModuleWithSpec(): call module init func - 5. _PyImport_LoadDynamicModuleWithSpec() -> PyModule_FromDefAndSpec() - 6. PyModule_FromDefAndSpec(): gather/check moduledef slots - 7. if there's a Py_mod_create slot: + A. _imp_create_dynamic_impl() -> import_find_extension() (not found) + B. _imp_create_dynamic_impl() -> _PyImport_GetModInitFunc() + C. _PyImport_GetModInitFunc(): load + D. _imp_create_dynamic_impl() -> import_run_extension() + E. import_run_extension() -> _PyImport_RunModInitFunc() + F. _PyImport_RunModInitFunc(): call + G. import_run_extension() -> PyModule_FromDefAndSpec() + H. PyModule_FromDefAndSpec(): gather/check moduledef slots + I. if there's a Py_mod_create slot: 1. PyModule_FromDefAndSpec(): call its function - 8. else: + J. else: 1. PyModule_FromDefAndSpec() -> PyModule_NewObject() - 9: PyModule_FromDefAndSpec(): set mod->md_def - 10. PyModule_FromDefAndSpec() -> _add_methods_to_object() - 11. PyModule_FromDefAndSpec() -> PyModule_SetDocString() + K: PyModule_FromDefAndSpec(): set mod->md_def + L. PyModule_FromDefAndSpec() -> _add_methods_to_object() + M. PyModule_FromDefAndSpec() -> PyModule_SetDocString() (10). every time: - 1. _imp_exec_dynamic_impl() -> exec_builtin_or_dynamic() - 2. if mod->md_state == NULL (including if m_size == 0): + A. _imp_exec_dynamic_impl() -> exec_builtin_or_dynamic() + B. if mod->md_state == NULL (including if m_size == 0): 1. exec_builtin_or_dynamic() -> PyModule_ExecDef() 2. PyModule_ExecDef(): allocate mod->md_state 3. if there's a Py_mod_exec slot: @@ -716,7 +747,7 @@ const char * _PyImport_ResolveNameWithPackageContext(const char *name) { #ifndef HAVE_THREAD_LOCAL - PyThread_acquire_lock(EXTENSIONS.mutex, WAIT_LOCK); + PyMutex_Lock(&EXTENSIONS.mutex); #endif if (PKGCONTEXT != NULL) { const char *p = strrchr(PKGCONTEXT, '.'); @@ -726,7 +757,7 @@ _PyImport_ResolveNameWithPackageContext(const char *name) } } #ifndef HAVE_THREAD_LOCAL - PyThread_release_lock(EXTENSIONS.mutex); + PyMutex_Unlock(&EXTENSIONS.mutex); #endif return name; } @@ -735,12 +766,12 @@ const char * _PyImport_SwapPackageContext(const char *newcontext) { #ifndef HAVE_THREAD_LOCAL - PyThread_acquire_lock(EXTENSIONS.mutex, WAIT_LOCK); + PyMutex_Lock(&EXTENSIONS.mutex); #endif const char *oldcontext = PKGCONTEXT; PKGCONTEXT = newcontext; #ifndef HAVE_THREAD_LOCAL - PyThread_release_lock(EXTENSIONS.mutex); + PyMutex_Unlock(&EXTENSIONS.mutex); #endif return oldcontext; } @@ -790,6 +821,8 @@ static int clear_singlephase_extension(PyInterpreterState *interp, // Currently, this is only used for testing. // (See _testinternalcapi.clear_extension().) +// If adding another use, be careful about modules that import themselves +// recursively (see gh-123880). int _PyImport_ClearExtension(PyObject *name, PyObject *filename) { @@ -807,16 +840,6 @@ _PyImport_ClearExtension(PyObject *name, PyObject *filename) } -/*******************/ - -#if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) -#error #include -EM_JS(PyObject*, _PyImport_InitFunc_TrampolineCall, (PyModInitFunction func), { - return wasmTable.get(func)(); -}); -#endif // __EMSCRIPTEN__ && PY_CALL_TRAMPOLINE - - /*****************************/ /* single-phase init modules */ /*****************************/ @@ -889,22 +912,23 @@ gets even messier. static inline void extensions_lock_acquire(void) { - PyThread_acquire_lock(_PyRuntime.imports.extensions.mutex, WAIT_LOCK); + PyMutex_Lock(&_PyRuntime.imports.extensions.mutex); } static inline void extensions_lock_release(void) { - PyThread_release_lock(_PyRuntime.imports.extensions.mutex); + PyMutex_Unlock(&_PyRuntime.imports.extensions.mutex); } + /* Magic for extension modules (built-in as well as dynamically loaded). To prevent initializing an extension module more than once, we keep a static dictionary 'extensions' keyed by the tuple (module name, module name) (for built-in modules) or by (filename, module name) (for dynamically loaded modules), containing these modules. A copy of the module's dictionary is stored by calling - _PyImport_FixupExtensionObject() immediately after the module initialization + fix_up_extension() immediately after the module initialization function succeeds. A copy can be retrieved from there by calling import_find_extension(). @@ -914,6 +938,220 @@ extensions_lock_release(void) dictionary, to avoid loading shared libraries twice. */ +typedef struct cached_m_dict { + /* A shallow copy of the original module's __dict__. */ + PyObject *copied; + /* The interpreter that owns the copy. */ + int64_t interpid; +} *cached_m_dict_t; + +struct extensions_cache_value { + PyModuleDef *def; + + /* The function used to re-initialize the module. + This is only set for legacy (single-phase init) extension modules + and only used for those that support multiple initializations + (m_size >= 0). + It is set by update_global_state_for_extension(). */ + PyModInitFunction m_init; + + /* The module's index into its interpreter's modules_by_index cache. + This is set for all extension modules but only used for legacy ones. + (See PyInterpreterState.modules_by_index for more info.) */ + Py_ssize_t m_index; + + /* A copy of the module's __dict__ after the first time it was loaded. + This is only set/used for legacy modules that do not support + multiple initializations. + It is set exclusively by fixup_cached_def(). */ + cached_m_dict_t m_dict; + struct cached_m_dict _m_dict; + + _Py_ext_module_origin origin; + +#ifdef Py_GIL_DISABLED + /* The module's md_gil slot, for legacy modules that are reinitialized from + m_dict rather than calling their initialization function again. */ + void *md_gil; +#endif +}; + +static struct extensions_cache_value * +alloc_extensions_cache_value(void) +{ + struct extensions_cache_value *value + = PyMem_RawMalloc(sizeof(struct extensions_cache_value)); + if (value == NULL) { + PyErr_NoMemory(); + return NULL; + } + *value = (struct extensions_cache_value){0}; + return value; +} + +static void +free_extensions_cache_value(struct extensions_cache_value *value) +{ + PyMem_RawFree(value); +} + +static Py_ssize_t +_get_cached_module_index(struct extensions_cache_value *cached) +{ + assert(cached->m_index > 0); + return cached->m_index; +} + +static void +fixup_cached_def(struct extensions_cache_value *value) +{ + /* For the moment, the values in the def's m_base may belong + * to another module, and we're replacing them here. This can + * cause problems later if the old module is reloaded. + * + * Also, we don't decref any old cached values first when we + * replace them here, in case we need to restore them in the + * near future. Instead, the caller is responsible for wrapping + * this up by calling cleanup_old_cached_def() or + * restore_old_cached_def() if there was an error. */ + PyModuleDef *def = value->def; + assert(def != NULL); + + /* We assume that all module defs are statically allocated + and will never be freed. Otherwise, we would incref here. */ + _Py_SetImmortalUntracked((PyObject *)def); + + def->m_base.m_init = value->m_init; + + assert(value->m_index > 0); + _set_module_index(def, value->m_index); + + /* Different modules can share the same def, so we can't just + * expect m_copy to be NULL. */ + assert(def->m_base.m_copy == NULL + || def->m_base.m_init == NULL + || value->m_dict != NULL); + if (value->m_dict != NULL) { + assert(value->m_dict->copied != NULL); + /* As noted above, we don't first decref the old value, if any. */ + def->m_base.m_copy = Py_NewRef(value->m_dict->copied); + } +} + +static void +restore_old_cached_def(PyModuleDef *def, PyModuleDef_Base *oldbase) +{ + def->m_base = *oldbase; +} + +static void +cleanup_old_cached_def(PyModuleDef_Base *oldbase) +{ + Py_XDECREF(oldbase->m_copy); +} + +static void +del_cached_def(struct extensions_cache_value *value) +{ + /* If we hadn't made the stored defs immortal, we would decref here. + However, this decref would be problematic if the module def were + dynamically allocated, it were the last ref, and this function + were called with an interpreter other than the def's owner. */ + assert(value->def == NULL || _Py_IsImmortalLoose(value->def)); + + Py_XDECREF(value->def->m_base.m_copy); + value->def->m_base.m_copy = NULL; +} + +static int +init_cached_m_dict(struct extensions_cache_value *value, PyObject *m_dict) +{ + assert(value != NULL); + /* This should only have been called without an m_dict already set. */ + assert(value->m_dict == NULL); + if (m_dict == NULL) { + return 0; + } + assert(PyDict_Check(m_dict)); + assert(value->origin != _Py_ext_module_origin_CORE); + + PyInterpreterState *interp = _PyInterpreterState_GET(); + assert(!is_interpreter_isolated(interp)); + + /* XXX gh-88216: The copied dict is owned by the current + * interpreter. That's a problem if the interpreter has + * its own obmalloc state or if the module is successfully + * imported into such an interpreter. If the interpreter + * has its own GIL then there may be data races and + * PyImport_ClearModulesByIndex() can crash. Normally, + * a single-phase init module cannot be imported in an + * isolated interpreter, but there are ways around that. + * Hence, heere be dragons! Ideally we would instead do + * something like make a read-only, immortal copy of the + * dict using PyMem_RawMalloc() and store *that* in m_copy. + * Then we'd need to make sure to clear that when the + * runtime is finalized, rather than in + * PyImport_ClearModulesByIndex(). */ + PyObject *copied = PyDict_Copy(m_dict); + if (copied == NULL) { + /* We expect this can only be "out of memory". */ + return -1; + } + // XXX We may want to make the copy immortal. + + value->_m_dict = (struct cached_m_dict){ + .copied=copied, + .interpid=PyInterpreterState_GetID(interp), + }; + + value->m_dict = &value->_m_dict; + return 0; +} + +static void +del_cached_m_dict(struct extensions_cache_value *value) +{ + if (value->m_dict != NULL) { + assert(value->m_dict == &value->_m_dict); + assert(value->m_dict->copied != NULL); + /* In the future we can take advantage of m_dict->interpid + * to decref the dict using the owning interpreter. */ + Py_XDECREF(value->m_dict->copied); + value->m_dict = NULL; + } +} + +static PyObject * get_core_module_dict( + PyInterpreterState *interp, PyObject *name, PyObject *path); + +static PyObject * +get_cached_m_dict(struct extensions_cache_value *value, + PyObject *name, PyObject *path) +{ + assert(value != NULL); + PyInterpreterState *interp = _PyInterpreterState_GET(); + /* It might be a core module (e.g. sys & builtins), + for which we don't cache m_dict. */ + if (value->origin == _Py_ext_module_origin_CORE) { + return get_core_module_dict(interp, name, path); + } + assert(value->def != NULL); + // XXX Switch to value->m_dict. + PyObject *m_dict = value->def->m_base.m_copy; + Py_XINCREF(m_dict); + return m_dict; +} + +static void +del_extensions_cache_value(struct extensions_cache_value *value) +{ + if (value != NULL) { + del_cached_m_dict(value); + del_cached_def(value); + free_extensions_cache_value(value); + } +} + static void * hashtable_key_from_2_strings(PyObject *str1, PyObject *str2, const char sep) { @@ -929,6 +1167,7 @@ hashtable_key_from_2_strings(PyObject *str1, PyObject *str2, const char sep) assert(SIZE_MAX - str1_len - str2_len > 2); size_t size = str1_len + 1 + str2_len + 1; + // XXX Use a buffer if it's a temp value (every case but "set"). char *key = PyMem_RawMalloc(size); if (key == NULL) { PyErr_NoMemory(); @@ -960,102 +1199,225 @@ hashtable_destroy_str(void *ptr) PyMem_RawFree(ptr); } -#define HTSEP ':' +#ifndef NDEBUG +struct hashtable_next_match_def_data { + PyModuleDef *def; + struct extensions_cache_value *matched; +}; -static PyModuleDef * -_extensions_cache_get(PyObject *filename, PyObject *name) +static int +hashtable_next_match_def(_Py_hashtable_t *ht, + const void *key, const void *value, void *user_data) { - PyModuleDef *def = NULL; - void *key = NULL; - extensions_lock_acquire(); + if (value == NULL) { + /* It was previously deleted. */ + return 0; + } + struct hashtable_next_match_def_data *data + = (struct hashtable_next_match_def_data *)user_data; + struct extensions_cache_value *cur + = (struct extensions_cache_value *)value; + if (cur->def == data->def) { + data->matched = cur; + return 1; + } + return 0; +} + +static struct extensions_cache_value * +_find_cached_def(PyModuleDef *def) +{ + struct hashtable_next_match_def_data data = {0}; + (void)_Py_hashtable_foreach( + EXTENSIONS.hashtable, hashtable_next_match_def, &data); + return data.matched; +} +#endif + +#define HTSEP ':' +static int +_extensions_cache_init(void) +{ + _Py_hashtable_allocator_t alloc = {PyMem_RawMalloc, PyMem_RawFree}; + EXTENSIONS.hashtable = _Py_hashtable_new_full( + hashtable_hash_str, + hashtable_compare_str, + hashtable_destroy_str, // key + (_Py_hashtable_destroy_func)del_extensions_cache_value, // value + &alloc + ); if (EXTENSIONS.hashtable == NULL) { - goto finally; + PyErr_NoMemory(); + return -1; } + return 0; +} - key = hashtable_key_from_2_strings(filename, name, HTSEP); +static _Py_hashtable_entry_t * +_extensions_cache_find_unlocked(PyObject *path, PyObject *name, + void **p_key) +{ + if (EXTENSIONS.hashtable == NULL) { + return NULL; + } + void *key = hashtable_key_from_2_strings(path, name, HTSEP); if (key == NULL) { - goto finally; + return NULL; + } + _Py_hashtable_entry_t *entry = + _Py_hashtable_get_entry(EXTENSIONS.hashtable, key); + if (p_key != NULL) { + *p_key = key; + } + else { + hashtable_destroy_str(key); } - _Py_hashtable_entry_t *entry = _Py_hashtable_get_entry( - EXTENSIONS.hashtable, key); + return entry; +} + +/* This can only fail with "out of memory". */ +static struct extensions_cache_value * +_extensions_cache_get(PyObject *path, PyObject *name) +{ + struct extensions_cache_value *value = NULL; + extensions_lock_acquire(); + + _Py_hashtable_entry_t *entry = + _extensions_cache_find_unlocked(path, name, NULL); if (entry == NULL) { + /* It was never added. */ goto finally; } - def = (PyModuleDef *)entry->value; + value = (struct extensions_cache_value *)entry->value; finally: extensions_lock_release(); - if (key != NULL) { - PyMem_RawFree(key); - } - return def; + return value; } -static int -_extensions_cache_set(PyObject *filename, PyObject *name, PyModuleDef *def) +/* This can only fail with "out of memory". */ +static struct extensions_cache_value * +_extensions_cache_set(PyObject *path, PyObject *name, + PyModuleDef *def, PyModInitFunction m_init, + Py_ssize_t m_index, PyObject *m_dict, + _Py_ext_module_origin origin, void *md_gil) { - int res = -1; + struct extensions_cache_value *value = NULL; + void *key = NULL; + struct extensions_cache_value *newvalue = NULL; + PyModuleDef_Base olddefbase = def->m_base; + + assert(def != NULL); + assert(m_init == NULL || m_dict == NULL); + /* We expect the same symbol to be used and the shared object file + * to have remained loaded, so it must be the same pointer. */ + assert(def->m_base.m_init == NULL || def->m_base.m_init == m_init); + /* For now we don't worry about comparing value->m_copy. */ + assert(def->m_base.m_copy == NULL || m_dict != NULL); + assert((origin == _Py_ext_module_origin_DYNAMIC) == (name != path)); + assert(origin != _Py_ext_module_origin_CORE || m_dict == NULL); + extensions_lock_acquire(); if (EXTENSIONS.hashtable == NULL) { - _Py_hashtable_allocator_t alloc = {PyMem_RawMalloc, PyMem_RawFree}; - EXTENSIONS.hashtable = _Py_hashtable_new_full( - hashtable_hash_str, - hashtable_compare_str, - hashtable_destroy_str, // key - /* There's no need to decref the def since it's immortal. */ - NULL, // value - &alloc - ); - if (EXTENSIONS.hashtable == NULL) { - PyErr_NoMemory(); + if (_extensions_cache_init() < 0) { goto finally; } } - void *key = hashtable_key_from_2_strings(filename, name, HTSEP); - if (key == NULL) { + /* Create a cached value to populate for the module. */ + _Py_hashtable_entry_t *entry = + _extensions_cache_find_unlocked(path, name, &key); + value = entry == NULL + ? NULL + : (struct extensions_cache_value *)entry->value; + if (value != NULL) { + /* gh-123880: If there's an existing cache value, it means a module is + * being imported recursively from its PyInit_* or Py_mod_* function. + * (That function presumably handles returning a partially + * constructed module in such a case.) + * We can reuse the existing cache value; it is owned by the cache. + * (Entries get removed from it in exceptional circumstances, + * after interpreter shutdown, and in runtime shutdown.) + */ + goto finally_oldvalue; + } + newvalue = alloc_extensions_cache_value(); + if (newvalue == NULL) { + goto finally; + } + + /* Populate the new cache value data. */ + *newvalue = (struct extensions_cache_value){ + .def=def, + .m_init=m_init, + .m_index=m_index, + /* m_dict is set by set_cached_m_dict(). */ + .origin=origin, +#ifdef Py_GIL_DISABLED + .md_gil=md_gil, +#endif + }; +#ifndef Py_GIL_DISABLED + (void)md_gil; +#endif + if (init_cached_m_dict(newvalue, m_dict) < 0) { goto finally; } + fixup_cached_def(newvalue); - int already_set = 0; - _Py_hashtable_entry_t *entry = _Py_hashtable_get_entry( - EXTENSIONS.hashtable, key); if (entry == NULL) { - if (_Py_hashtable_set(EXTENSIONS.hashtable, key, def) < 0) { - PyMem_RawFree(key); + /* It was never added. */ + if (_Py_hashtable_set(EXTENSIONS.hashtable, key, newvalue) < 0) { PyErr_NoMemory(); goto finally; } + /* The hashtable owns the key now. */ + key = NULL; + } + else if (value == NULL) { + /* It was previously deleted. */ + entry->value = newvalue; } else { - if (entry->value == NULL) { - entry->value = def; - } - else { - /* We expect it to be static, so it must be the same pointer. */ - assert((PyModuleDef *)entry->value == def); - already_set = 1; + /* We are updating the entry for an existing module. */ + /* We expect def to be static, so it must be the same pointer. */ + assert(value->def == def); + /* We expect the same symbol to be used and the shared object file + * to have remained loaded, so it must be the same pointer. */ + assert(value->m_init == m_init); + /* The same module can't switch between caching __dict__ and not. */ + assert((value->m_dict == NULL) == (m_dict == NULL)); + /* This shouldn't ever happen. */ + Py_UNREACHABLE(); + } + + value = newvalue; + +finally: + if (value == NULL) { + restore_old_cached_def(def, &olddefbase); + if (newvalue != NULL) { + del_extensions_cache_value(newvalue); } - PyMem_RawFree(key); } - if (!already_set) { - /* We assume that all module defs are statically allocated - and will never be freed. Otherwise, we would incref here. */ - _Py_SetImmortal(def); + else { + cleanup_old_cached_def(&olddefbase); } - res = 0; -finally: +finally_oldvalue: extensions_lock_release(); - return res; + if (key != NULL) { + hashtable_destroy_str(key); + } + + return value; } static void -_extensions_cache_delete(PyObject *filename, PyObject *name) +_extensions_cache_delete(PyObject *path, PyObject *name) { - void *key = NULL; extensions_lock_acquire(); if (EXTENSIONS.hashtable == NULL) { @@ -1063,13 +1425,8 @@ _extensions_cache_delete(PyObject *filename, PyObject *name) goto finally; } - key = hashtable_key_from_2_strings(filename, name, HTSEP); - if (key == NULL) { - goto finally; - } - - _Py_hashtable_entry_t *entry = _Py_hashtable_get_entry( - EXTENSIONS.hashtable, key); + _Py_hashtable_entry_t *entry = + _extensions_cache_find_unlocked(path, name, NULL); if (entry == NULL) { /* It was never added. */ goto finally; @@ -1078,18 +1435,13 @@ _extensions_cache_delete(PyObject *filename, PyObject *name) /* It was already removed. */ goto finally; } - /* If we hadn't made the stored defs immortal, we would decref here. - However, this decref would be problematic if the module def were - dynamically allocated, it were the last ref, and this function - were called with an interpreter other than the def's owner. */ - assert(_Py_IsImmortal(entry->value)); + struct extensions_cache_value *value = entry->value; entry->value = NULL; + del_extensions_cache_value(value); + finally: extensions_lock_release(); - if (key != NULL) { - PyMem_RawFree(key); - } } static void @@ -1124,7 +1476,7 @@ check_multi_interp_extensions(PyInterpreterState *interp) int _PyImport_CheckSubinterpIncompatibleExtensionAllowed(const char *name) { - PyInterpreterState *interp = _PyInterpreterState_Get(); + PyInterpreterState *interp = _PyInterpreterState_GET(); if (check_multi_interp_extensions(interp)) { assert(!_Py_IsMainInterpreter(interp)); PyErr_Format(PyExc_ImportError, @@ -1135,31 +1487,122 @@ _PyImport_CheckSubinterpIncompatibleExtensionAllowed(const char *name) return 0; } +#ifdef Py_GIL_DISABLED +int +_PyImport_CheckGILForModule(PyObject* module, PyObject *module_name) +{ + PyThreadState *tstate = _PyThreadState_GET(); + if (module == NULL) { + _PyEval_DisableGIL(tstate); + return 0; + } + + if (!PyModule_Check(module) || + ((PyModuleObject *)module)->md_gil == Py_MOD_GIL_USED) { + if (_PyEval_EnableGILPermanent(tstate)) { + int warn_result = PyErr_WarnFormat( + PyExc_RuntimeWarning, + 1, + "The global interpreter lock (GIL) has been enabled to load " + "module '%U', which has not declared that it can run safely " + "without the GIL. To override this behavior and keep the GIL " + "disabled (at your own risk), run with PYTHON_GIL=0 or -Xgil=0.", + module_name + ); + if (warn_result < 0) { + return warn_result; + } + } + + const PyConfig *config = _PyInterpreterState_GetConfig(tstate->interp); + if (config->enable_gil == _PyConfig_GIL_DEFAULT && config->verbose) { + PySys_FormatStderr("# loading module '%U', which requires the GIL\n", + module_name); + } + } + else { + _PyEval_DisableGIL(tstate); + } + + return 0; +} +#endif + +static PyThreadState * +switch_to_main_interpreter(PyThreadState *tstate) +{ + if (_Py_IsMainInterpreter(tstate->interp)) { + return tstate; + } + PyThreadState *main_tstate = _PyThreadState_NewBound( + _PyInterpreterState_Main(), _PyThreadState_WHENCE_EXEC); + if (main_tstate == NULL) { + return NULL; + } +#ifndef NDEBUG + PyThreadState *old_tstate = PyThreadState_Swap(main_tstate); + assert(old_tstate == tstate); +#else + (void)PyThreadState_Swap(main_tstate); +#endif + return main_tstate; +} + +static void +switch_back_from_main_interpreter(PyThreadState *tstate, + PyThreadState *main_tstate, + PyObject *tempobj) +{ + assert(main_tstate == PyThreadState_GET()); + assert(_Py_IsMainInterpreter(main_tstate->interp)); + assert(tstate->interp != main_tstate->interp); + + /* Handle any exceptions, which we cannot propagate directly + * to the subinterpreter. */ + if (PyErr_Occurred()) { + if (PyErr_ExceptionMatches(PyExc_MemoryError)) { + /* We trust it will be caught again soon. */ + PyErr_Clear(); + } + else { + /* Printing the exception should be sufficient. */ + PyErr_PrintEx(0); + } + } + + Py_XDECREF(tempobj); + + PyThreadState_Clear(main_tstate); + (void)PyThreadState_Swap(tstate); + PyThreadState_Delete(main_tstate); +} + static PyObject * get_core_module_dict(PyInterpreterState *interp, - PyObject *name, PyObject *filename) + PyObject *name, PyObject *path) { /* Only builtin modules are core. */ - if (filename == name) { + if (path == name) { assert(!PyErr_Occurred()); if (PyUnicode_CompareWithASCIIString(name, "sys") == 0) { - return interp->sysdict_copy; + return Py_NewRef(interp->sysdict_copy); } assert(!PyErr_Occurred()); if (PyUnicode_CompareWithASCIIString(name, "builtins") == 0) { - return interp->builtins_copy; + return Py_NewRef(interp->builtins_copy); } assert(!PyErr_Occurred()); } return NULL; } +#ifndef NDEBUG static inline int -is_core_module(PyInterpreterState *interp, PyObject *name, PyObject *filename) +is_core_module(PyInterpreterState *interp, PyObject *name, PyObject *path) { /* This might be called before the core dict copies are in place, so we can't rely on get_core_module_dict() here. */ - if (filename == name) { + if (path == name) { if (PyUnicode_CompareWithASCIIString(name, "sys") == 0) { return 1; } @@ -1170,171 +1613,577 @@ is_core_module(PyInterpreterState *interp, PyObject *name, PyObject *filename) return 0; } -static int -fix_up_extension(PyObject *mod, PyObject *name, PyObject *filename) + +static _Py_ext_module_kind +_get_extension_kind(PyModuleDef *def, bool check_size) { - if (mod == NULL || !PyModule_Check(mod)) { - PyErr_BadInternalCall(); - return -1; + _Py_ext_module_kind kind; + if (def == NULL) { + /* It must be a module created by reload_singlephase_extension() + * from m_copy. Ideally we'd do away with this case. */ + kind = _Py_ext_module_kind_SINGLEPHASE; } - - struct PyModuleDef *def = PyModule_GetDef(mod); - if (!def) { - PyErr_BadInternalCall(); - return -1; + else if (def->m_slots != NULL) { + kind = _Py_ext_module_kind_MULTIPHASE; } - - PyThreadState *tstate = _PyThreadState_GET(); - if (_modules_by_index_set(tstate->interp, def, mod) < 0) { - return -1; + else if (check_size && def->m_size == -1) { + kind = _Py_ext_module_kind_SINGLEPHASE; + } + else if (def->m_base.m_init != NULL) { + kind = _Py_ext_module_kind_SINGLEPHASE; } + else { + // This is probably single-phase init, but a multi-phase + // module *can* have NULL m_slots. + kind = _Py_ext_module_kind_UNKNOWN; + } + return kind; +} + +/* The module might not be fully initialized yet + * and PyModule_FromDefAndSpec() checks m_size + * so we skip m_size. */ +#define assert_multiphase_def(def) \ + do { \ + _Py_ext_module_kind kind = _get_extension_kind(def, false); \ + assert(kind == _Py_ext_module_kind_MULTIPHASE \ + /* m_slots can be NULL. */ \ + || kind == _Py_ext_module_kind_UNKNOWN); \ + } while (0) + +#define assert_singlephase_def(def) \ + do { \ + _Py_ext_module_kind kind = _get_extension_kind(def, true); \ + assert(kind == _Py_ext_module_kind_SINGLEPHASE \ + || kind == _Py_ext_module_kind_UNKNOWN); \ + } while (0) + +#define assert_singlephase(cached) \ + do { \ + _Py_ext_module_kind kind = _get_extension_kind(cached->def, true); \ + assert(kind == _Py_ext_module_kind_SINGLEPHASE); \ + } while (0) + +#else /* defined(NDEBUG) */ +#define assert_multiphase_def(def) +#define assert_singlephase_def(def) +#define assert_singlephase(cached) +#endif - // bpo-44050: Extensions and def->m_base.m_copy can be updated - // when the extension module doesn't support sub-interpreters. - if (def->m_size == -1) { - if (!is_core_module(tstate->interp, name, filename)) { + +struct singlephase_global_update { + PyModInitFunction m_init; + Py_ssize_t m_index; + PyObject *m_dict; + _Py_ext_module_origin origin; + void *md_gil; +}; + +static struct extensions_cache_value * +update_global_state_for_extension(PyThreadState *tstate, + PyObject *path, PyObject *name, + PyModuleDef *def, + struct singlephase_global_update *singlephase) +{ + struct extensions_cache_value *cached = NULL; + PyModInitFunction m_init = NULL; + PyObject *m_dict = NULL; + + /* Set up for _extensions_cache_set(). */ + if (singlephase == NULL) { + assert(def->m_base.m_init == NULL); + assert(def->m_base.m_copy == NULL); + } + else { + if (singlephase->m_init != NULL) { + assert(singlephase->m_dict == NULL); + assert(def->m_base.m_copy == NULL); + assert(def->m_size >= 0); + /* Remember pointer to module init function. */ + // XXX If two modules share a def then def->m_base will + // reflect the last one added (here) to the global cache. + // We should prevent this somehow. The simplest solution + // is probably to store m_copy/m_init in the cache along + // with the def, rather than within the def. + m_init = singlephase->m_init; + } + else if (singlephase->m_dict == NULL) { + /* It must be a core builtin module. */ + assert(is_core_module(tstate->interp, name, path)); + assert(def->m_size == -1); + assert(def->m_base.m_copy == NULL); + assert(def->m_base.m_init == NULL); + } + else { + assert(PyDict_Check(singlephase->m_dict)); + // gh-88216: Extensions and def->m_base.m_copy can be updated + // when the extension module doesn't support sub-interpreters. + assert(def->m_size == -1); + assert(!is_core_module(tstate->interp, name, path)); assert(PyUnicode_CompareWithASCIIString(name, "sys") != 0); assert(PyUnicode_CompareWithASCIIString(name, "builtins") != 0); - if (def->m_base.m_copy) { - /* Somebody already imported the module, - likely under a different name. - XXX this should really not happen. */ - Py_CLEAR(def->m_base.m_copy); - } - PyObject *dict = PyModule_GetDict(mod); - if (dict == NULL) { - return -1; - } - def->m_base.m_copy = PyDict_Copy(dict); - if (def->m_base.m_copy == NULL) { - return -1; - } + m_dict = singlephase->m_dict; } } + /* Add the module's def to the global cache. */ // XXX Why special-case the main interpreter? if (_Py_IsMainInterpreter(tstate->interp) || def->m_size == -1) { - if (_extensions_cache_set(filename, name, def) < 0) { - return -1; +#ifndef NDEBUG + cached = _extensions_cache_get(path, name); + assert(cached == NULL || cached->def == def); +#endif + cached = _extensions_cache_set( + path, name, def, m_init, singlephase->m_index, m_dict, + singlephase->origin, singlephase->md_gil); + if (cached == NULL) { + // XXX Ignore this error? Doing so would effectively + // mark the module as not loadable. + return NULL; } } - return 0; + return cached; } -int -_PyImport_FixupExtensionObject(PyObject *mod, PyObject *name, - PyObject *filename, PyObject *modules) +/* For multi-phase init modules, the module is finished + * by PyModule_FromDefAndSpec(). */ +static int +finish_singlephase_extension(PyThreadState *tstate, PyObject *mod, + struct extensions_cache_value *cached, + PyObject *name, PyObject *modules) { - if (PyObject_SetItem(modules, name, mod) < 0) { + assert(mod != NULL && PyModule_Check(mod)); + assert(cached->def == _PyModule_GetDef(mod)); + + Py_ssize_t index = _get_cached_module_index(cached); + if (_modules_by_index_set(tstate->interp, index, mod) < 0) { return -1; } - if (fix_up_extension(mod, name, filename) < 0) { - PyMapping_DelItem(modules, name); - return -1; + + if (modules != NULL) { + if (PyObject_SetItem(modules, name, mod) < 0) { + return -1; + } } + return 0; } static PyObject * -import_find_extension(PyThreadState *tstate, PyObject *name, - PyObject *filename) +reload_singlephase_extension(PyThreadState *tstate, + struct extensions_cache_value *cached, + struct _Py_ext_module_loader_info *info) { - /* Only single-phase init modules will be in the cache. */ - PyModuleDef *def = _extensions_cache_get(filename, name); - if (def == NULL) { - return NULL; - } + PyModuleDef *def = cached->def; + assert(def != NULL); + assert_singlephase(cached); + PyObject *mod = NULL; /* It may have been successfully imported previously in an interpreter that allows legacy modules but is not allowed in the current interpreter. */ - const char *name_buf = PyUnicode_AsUTF8(name); + const char *name_buf = PyUnicode_AsUTF8(info->name); assert(name_buf != NULL); if (_PyImport_CheckSubinterpIncompatibleExtensionAllowed(name_buf) < 0) { return NULL; } - PyObject *mod, *mdict; - PyObject *modules = MODULES(tstate->interp); - + PyObject *modules = get_modules_dict(tstate, true); if (def->m_size == -1) { - PyObject *m_copy = def->m_base.m_copy; /* Module does not support repeated initialization */ + assert(cached->m_init == NULL); + assert(def->m_base.m_init == NULL); + // XXX Copying the cached dict may break interpreter isolation. + // We could solve this by temporarily acquiring the original + // interpreter's GIL. + PyObject *m_copy = get_cached_m_dict(cached, info->name, info->path); if (m_copy == NULL) { - /* It might be a core module (e.g. sys & builtins), - for which we don't set m_copy. */ - m_copy = get_core_module_dict(tstate->interp, name, filename); - if (m_copy == NULL) { - return NULL; - } + assert(!PyErr_Occurred()); + return NULL; } - mod = import_add_module(tstate, name); + mod = import_add_module(tstate, info->name); if (mod == NULL) { + Py_DECREF(m_copy); return NULL; } - mdict = PyModule_GetDict(mod); + PyObject *mdict = PyModule_GetDict(mod); if (mdict == NULL) { + Py_DECREF(m_copy); Py_DECREF(mod); return NULL; } - if (PyDict_Update(mdict, m_copy)) { + int rc = PyDict_Update(mdict, m_copy); + Py_DECREF(m_copy); + if (rc < 0) { Py_DECREF(mod); return NULL; } +#ifdef Py_GIL_DISABLED + if (def->m_base.m_copy != NULL) { + // For non-core modules, fetch the GIL slot that was stored by + // import_run_extension(). + ((PyModuleObject *)mod)->md_gil = cached->md_gil; + } +#endif + /* We can't set mod->md_def if it's missing, + * because _PyImport_ClearModulesByIndex() might break + * due to violating interpreter isolation. + * See the note in set_cached_m_dict(). + * Until that is solved, we leave md_def set to NULL. */ + assert(_PyModule_GetDef(mod) == NULL + || _PyModule_GetDef(mod) == def); } else { - if (def->m_base.m_init == NULL) + assert(cached->m_dict == NULL); + assert(def->m_base.m_copy == NULL); + // XXX Use cached->m_init. + PyModInitFunction p0 = def->m_base.m_init; + if (p0 == NULL) { + assert(!PyErr_Occurred()); return NULL; - mod = _PyImport_InitFunc_TrampolineCall(def->m_base.m_init); - if (mod == NULL) + } + struct _Py_ext_module_loader_result res; + if (_PyImport_RunModInitFunc(p0, info, &res) < 0) { + _Py_ext_module_loader_result_apply_error(&res, name_buf); return NULL; - if (PyObject_SetItem(modules, name, mod) == -1) { + } + assert(!PyErr_Occurred()); + assert(res.err == NULL); + assert(res.kind == _Py_ext_module_kind_SINGLEPHASE); + mod = res.module; + /* Tchnically, the init function could return a different module def. + * Then we would probably need to update the global cache. + * However, we don't expect anyone to change the def. */ + assert(res.def == def); + _Py_ext_module_loader_result_clear(&res); + + /* Remember the filename as the __file__ attribute */ + if (info->filename != NULL) { + if (PyModule_AddObjectRef(mod, "__file__", info->filename) < 0) { + PyErr_Clear(); /* Not important enough to report */ + } + } + + if (PyObject_SetItem(modules, info->name, mod) == -1) { Py_DECREF(mod); return NULL; } } - if (_modules_by_index_set(tstate->interp, def, mod) < 0) { - PyMapping_DelItem(modules, name); + + Py_ssize_t index = _get_cached_module_index(cached); + if (_modules_by_index_set(tstate->interp, index, mod) < 0) { + PyMapping_DelItem(modules, info->name); Py_DECREF(mod); return NULL; } + return mod; +} + +static PyObject * +import_find_extension(PyThreadState *tstate, + struct _Py_ext_module_loader_info *info, + struct extensions_cache_value **p_cached) +{ + /* Only single-phase init modules will be in the cache. */ + struct extensions_cache_value *cached + = _extensions_cache_get(info->path, info->name); + if (cached == NULL) { + return NULL; + } + assert(cached->def != NULL); + assert_singlephase(cached); + *p_cached = cached; + + /* It may have been successfully imported previously + in an interpreter that allows legacy modules + but is not allowed in the current interpreter. */ + const char *name_buf = PyUnicode_AsUTF8(info->name); + assert(name_buf != NULL); + if (_PyImport_CheckSubinterpIncompatibleExtensionAllowed(name_buf) < 0) { + return NULL; + } + + PyObject *mod = reload_singlephase_extension(tstate, cached, info); + if (mod == NULL) { + return NULL; + } + int verbose = _PyInterpreterState_GetConfig(tstate->interp)->verbose; if (verbose) { PySys_FormatStderr("import %U # previously loaded (%R)\n", - name, filename); + info->name, info->path); + } + + return mod; +} + +static PyObject * +import_run_extension(PyThreadState *tstate, PyModInitFunction p0, + struct _Py_ext_module_loader_info *info, + PyObject *spec, PyObject *modules) +{ + /* Core modules go through _PyImport_FixupBuiltin(). */ + assert(!is_core_module(tstate->interp, info->name, info->path)); + + PyObject *mod = NULL; + PyModuleDef *def = NULL; + struct extensions_cache_value *cached = NULL; + const char *name_buf = PyBytes_AS_STRING(info->name_encoded); + + /* We cannot know if the module is single-phase init or + * multi-phase init until after we call its init function. Even + * in isolated interpreters (that do not support single-phase init), + * the init function will run without restriction. For multi-phase + * init modules that isn't a problem because the init function only + * runs PyModuleDef_Init() on the module's def and then returns it. + * + * However, for single-phase init the module's init function will + * create the module, create other objects (and allocate other + * memory), populate it and its module state, and initialze static + * types. Some modules store other objects and data in global C + * variables and register callbacks with the runtime/stdlib or + * even external libraries (which is part of why we can't just + * dlclose() the module in the error case). That's a problem + * for isolated interpreters since all of the above happens + * and only then * will the import fail. Memory will leak, + * callbacks will still get used, and sometimes there + * will be crashes (memory access violations + * and use-after-free). + * + * To put it another way, if the module is single-phase init + * then the import will probably break interpreter isolation + * and should fail ASAP. However, the module's init function + * will still get run. That means it may still store state + * in the shared-object/DLL address space (which never gets + * closed/cleared), including objects (e.g. static types). + * This is a problem for isolated subinterpreters since each + * has its own object allocator. If the loaded shared-object + * still holds a reference to an object after the corresponding + * interpreter has finalized then either we must let it leak + * or else any later use of that object by another interpreter + * (or across multiple init-fini cycles) will crash the process. + * + * To avoid all of that, we make sure the module's init function + * is always run first with the main interpreter active. If it was + * already the main interpreter then we can continue loading the + * module like normal. Otherwise, right after the init function, + * we take care of some import state bookkeeping, switch back + * to the subinterpreter, check for single-phase init, + * and then continue loading like normal. */ + + bool switched = false; + /* We *could* leave in place a legacy interpreter here + * (one that shares obmalloc/GIL with main interp), + * but there isn't a big advantage, we anticipate + * such interpreters will be increasingly uncommon, + * and the code is a bit simpler if we always switch + * to the main interpreter. */ + PyThreadState *main_tstate = switch_to_main_interpreter(tstate); + if (main_tstate == NULL) { + return NULL; + } + else if (main_tstate != tstate) { + switched = true; + /* In the switched case, we could play it safe + * by getting the main interpreter's import lock here. + * It's unlikely to matter though. */ + } + + struct _Py_ext_module_loader_result res; + int rc = _PyImport_RunModInitFunc(p0, info, &res); + if (rc < 0) { + /* We discard res.def. */ + assert(res.module == NULL); + } + else { + assert(!PyErr_Occurred()); + assert(res.err == NULL); + + mod = res.module; + res.module = NULL; + def = res.def; + assert(def != NULL); + + /* Do anything else that should be done + * while still using the main interpreter. */ + if (res.kind == _Py_ext_module_kind_SINGLEPHASE) { + /* Remember the filename as the __file__ attribute */ + if (info->filename != NULL) { + PyObject *filename = NULL; + if (switched) { + // The original filename may be allocated by subinterpreter's + // obmalloc, so we create a copy here. + filename = _PyUnicode_Copy(info->filename); + if (filename == NULL) { + return NULL; + } + } else { + filename = Py_NewRef(info->filename); + } + // XXX There's a refleak somewhere with the filename. + // Until we can track it down, we immortalize it. + PyInterpreterState *interp = _PyInterpreterState_GET(); + _PyUnicode_InternImmortal(interp, &filename); + + if (PyModule_AddObjectRef(mod, "__file__", filename) < 0) { + PyErr_Clear(); /* Not important enough to report */ + } + } + + /* Update global import state. */ + assert(def->m_base.m_index != 0); + struct singlephase_global_update singlephase = { + // XXX Modules that share a def should each get their own index, + // whereas currently they share (which means the per-interpreter + // cache is less reliable than it should be). + .m_index=def->m_base.m_index, + .origin=info->origin, +#ifdef Py_GIL_DISABLED + .md_gil=((PyModuleObject *)mod)->md_gil, +#endif + }; + // gh-88216: Extensions and def->m_base.m_copy can be updated + // when the extension module doesn't support sub-interpreters. + if (def->m_size == -1) { + /* We will reload from m_copy. */ + assert(def->m_base.m_init == NULL); + singlephase.m_dict = PyModule_GetDict(mod); + assert(singlephase.m_dict != NULL); + } + else { + /* We will reload via the init function. */ + assert(def->m_size >= 0); + assert(def->m_base.m_copy == NULL); + singlephase.m_init = p0; + } + cached = update_global_state_for_extension( + main_tstate, info->path, info->name, def, &singlephase); + if (cached == NULL) { + assert(PyErr_Occurred()); + goto main_finally; + } + } + } + +main_finally: + /* Switch back to the subinterpreter. */ + if (switched) { + assert(main_tstate != tstate); + switch_back_from_main_interpreter(tstate, main_tstate, mod); + /* Any module we got from the init function will have to be + * reloaded in the subinterpreter. */ + mod = NULL; + } + + /*****************************************************************/ + /* At this point we are back to the interpreter we started with. */ + /*****************************************************************/ + + /* Finally we handle the error return from _PyImport_RunModInitFunc(). */ + if (rc < 0) { + _Py_ext_module_loader_result_apply_error(&res, name_buf); + goto error; + } + + if (res.kind == _Py_ext_module_kind_MULTIPHASE) { + assert_multiphase_def(def); + assert(mod == NULL); + /* Note that we cheat a little by not repeating the calls + * to _PyImport_GetModInitFunc() and _PyImport_RunModInitFunc(). */ + mod = PyModule_FromDefAndSpec(def, spec); + if (mod == NULL) { + goto error; + } + } + else { + assert(res.kind == _Py_ext_module_kind_SINGLEPHASE); + assert_singlephase_def(def); + + if (_PyImport_CheckSubinterpIncompatibleExtensionAllowed(name_buf) < 0) { + goto error; + } + assert(!PyErr_Occurred()); + + if (switched) { + /* We switched to the main interpreter to run the init + * function, so now we will "reload" the module from the + * cached data using the original subinterpreter. */ + assert(mod == NULL); + mod = reload_singlephase_extension(tstate, cached, info); + if (mod == NULL) { + goto error; + } + assert(!PyErr_Occurred()); + assert(PyModule_Check(mod)); + } + else { + assert(mod != NULL); + assert(PyModule_Check(mod)); + + /* Update per-interpreter import state. */ + PyObject *modules = get_modules_dict(tstate, true); + if (finish_singlephase_extension( + tstate, mod, cached, info->name, modules) < 0) + { + goto error; + } + } } + + _Py_ext_module_loader_result_clear(&res); return mod; + +error: + Py_XDECREF(mod); + _Py_ext_module_loader_result_clear(&res); + return NULL; } + +// Used in _PyImport_ClearExtension; see notes there. static int clear_singlephase_extension(PyInterpreterState *interp, - PyObject *name, PyObject *filename) + PyObject *name, PyObject *path) { - PyModuleDef *def = _extensions_cache_get(filename, name); - if (def == NULL) { + struct extensions_cache_value *cached = _extensions_cache_get(path, name); + if (cached == NULL) { if (PyErr_Occurred()) { return -1; } return 0; } + PyModuleDef *def = cached->def; /* Clear data set when the module was initially loaded. */ def->m_base.m_init = NULL; Py_CLEAR(def->m_base.m_copy); - // We leave m_index alone since there's no reason to reset it. + def->m_base.m_index = 0; /* Clear the PyState_*Module() cache entry. */ - if (_modules_by_index_check(interp, def->m_base.m_index) == NULL) { - if (_modules_by_index_clear_one(interp, def) < 0) { + Py_ssize_t index = _get_cached_module_index(cached); + if (_modules_by_index_check(interp, index) == NULL) { + if (_modules_by_index_clear_one(interp, index) < 0) { return -1; } } + /* We must use the main interpreter to clean up the cache. + * See the note in import_run_extension(). */ + PyThreadState *tstate = PyThreadState_GET(); + PyThreadState *main_tstate = switch_to_main_interpreter(tstate); + if (main_tstate == NULL) { + return -1; + } + /* Clear the cached module def. */ - _extensions_cache_delete(filename, name); + _extensions_cache_delete(path, name); + + if (main_tstate != tstate) { + switch_back_from_main_interpreter(tstate, main_tstate, NULL); + } return 0; } @@ -1345,21 +2194,62 @@ clear_singlephase_extension(PyInterpreterState *interp, /*******************/ int -_PyImport_FixupBuiltin(PyObject *mod, const char *name, PyObject *modules) +_PyImport_FixupBuiltin(PyThreadState *tstate, PyObject *mod, const char *name, + PyObject *modules) { int res = -1; + assert(mod != NULL && PyModule_Check(mod)); + PyObject *nameobj; nameobj = PyUnicode_InternFromString(name); if (nameobj == NULL) { return -1; } - if (PyObject_SetItem(modules, nameobj, mod) < 0) { + + PyModuleDef *def = PyModule_GetDef(mod); + if (def == NULL) { + PyErr_BadInternalCall(); goto finally; } - if (fix_up_extension(mod, nameobj, nameobj) < 0) { - PyMapping_DelItem(modules, nameobj); + + /* We only use _PyImport_FixupBuiltin() for the core builtin modules + * (sys and builtins). These modules are single-phase init with no + * module state, but we also don't populate def->m_base.m_copy + * for them. */ + assert(is_core_module(tstate->interp, nameobj, nameobj)); + assert_singlephase_def(def); + assert(def->m_size == -1); + assert(def->m_base.m_copy == NULL); + assert(def->m_base.m_index >= 0); + + /* We aren't using import_find_extension() for core modules, + * so we have to do the extra check to make sure the module + * isn't already in the global cache before calling + * update_global_state_for_extension(). */ + struct extensions_cache_value *cached + = _extensions_cache_get(nameobj, nameobj); + if (cached == NULL) { + struct singlephase_global_update singlephase = { + .m_index=def->m_base.m_index, + /* We don't want def->m_base.m_copy populated. */ + .m_dict=NULL, + .origin=_Py_ext_module_origin_CORE, +#ifdef Py_GIL_DISABLED + /* Unused when m_dict == NULL. */ + .md_gil=NULL, +#endif + }; + cached = update_global_state_for_extension( + tstate, nameobj, nameobj, def, &singlephase); + if (cached == NULL) { + goto finally; + } + } + + if (finish_singlephase_extension(tstate, mod, cached, nameobj, modules) < 0) { goto finally; } + res = 0; finally: @@ -1388,53 +2278,76 @@ is_builtin(PyObject *name) static PyObject* create_builtin(PyThreadState *tstate, PyObject *name, PyObject *spec) { - const char *oldcontext, *newcontext; - PyObject *mod = import_find_extension(tstate, name, name); - if (mod || _PyErr_Occurred(tstate)) { - return mod; + struct _Py_ext_module_loader_info info; + if (_Py_ext_module_loader_info_init_for_builtin(&info, name) < 0) { + return NULL; } - PyObject *modules = MODULES(tstate->interp); - for (struct _inittab *p = INITTAB; p->name != NULL; p++) { - if (_PyUnicode_EqualToASCIIString(name, p->name)) { - if (p->initfunc == NULL) { - /* Cannot re-init internal module ("sys" or "builtins") */ - mod = PyImport_AddModuleObject(name); - return Py_XNewRef(mod); - } - newcontext = PyUnicode_AsUTF8(name); - if (newcontext == NULL) { - Py_RETURN_NONE; - } - oldcontext = _PyImport_SwapPackageContext(newcontext); - mod = _PyImport_InitFunc_TrampolineCall(*p->initfunc); - _PyImport_SwapPackageContext(oldcontext); - if (mod == NULL) { - return NULL; - } + struct extensions_cache_value *cached = NULL; + PyObject *mod = import_find_extension(tstate, &info, &cached); + if (mod != NULL) { + assert(!_PyErr_Occurred(tstate)); + assert(cached != NULL); + /* The module might not have md_def set in certain reload cases. */ + assert(_PyModule_GetDef(mod) == NULL + || cached->def == _PyModule_GetDef(mod)); + assert_singlephase(cached); + goto finally; + } + else if (_PyErr_Occurred(tstate)) { + goto finally; + } - if (PyObject_TypeCheck(mod, &PyModuleDef_Type)) { - return PyModule_FromDefAndSpec((PyModuleDef*)mod, spec); - } - else { - /* Remember pointer to module init function. */ - PyModuleDef *def = PyModule_GetDef(mod); - if (def == NULL) { - return NULL; - } + /* If the module was added to the global cache + * but def->m_base.m_copy was cleared (e.g. subinterp fini) + * then we have to do a little dance here. */ + if (cached != NULL) { + assert(cached->def->m_base.m_copy == NULL); + /* For now we clear the cache and move on. */ + _extensions_cache_delete(info.path, info.name); + } - def->m_base.m_init = p->initfunc; - if (_PyImport_FixupExtensionObject(mod, name, name, - modules) < 0) { - return NULL; - } - return mod; - } + struct _inittab *found = NULL; + for (struct _inittab *p = INITTAB; p->name != NULL; p++) { + if (_PyUnicode_EqualToASCIIString(info.name, p->name)) { + found = p; } } + if (found == NULL) { + // not found + mod = Py_NewRef(Py_None); + goto finally; + } - // not found - Py_RETURN_NONE; + PyModInitFunction p0 = (PyModInitFunction)found->initfunc; + if (p0 == NULL) { + /* Cannot re-init internal module ("sys" or "builtins") */ + assert(is_core_module(tstate->interp, info.name, info.path)); + mod = import_add_module(tstate, info.name); + goto finally; + } + +#ifdef Py_GIL_DISABLED + // This call (and the corresponding call to _PyImport_CheckGILForModule()) + // would ideally be inside import_run_extension(). They are kept in the + // callers for now because that would complicate the control flow inside + // import_run_extension(). It should be possible to restructure + // import_run_extension() to address this. + _PyEval_EnableGILTransient(tstate); +#endif + /* Now load it. */ + mod = import_run_extension( + tstate, p0, &info, spec, get_modules_dict(tstate, true)); +#ifdef Py_GIL_DISABLED + if (_PyImport_CheckGILForModule(mod, info.name) < 0) { + Py_CLEAR(mod); + goto finally; + } +#endif + +finally: + _Py_ext_module_loader_info_clear(&info); + return mod; } @@ -1668,7 +2581,7 @@ PyImport_ExecCodeModuleWithPathnames(const char *name, PyObject *co, external= PyObject_GetAttrString(IMPORTLIB(interp), "_bootstrap_external"); if (external != NULL) { - pathobj = _PyObject_CallMethodOneArg( + pathobj = PyObject_CallMethodOneArg( external, &_Py_ID(_get_sourcefile), cpathobj); Py_DECREF(external); } @@ -2022,7 +2935,6 @@ look_up_frozen(const char *name) struct frozen_info { PyObject *nameobj; const char *data; - PyObject *(*get_code)(void); Py_ssize_t size; bool is_package; bool is_alias; @@ -2056,7 +2968,6 @@ find_frozen(PyObject *nameobj, struct frozen_info *info) if (info != NULL) { info->nameobj = nameobj; // borrowed info->data = (const char *)p->code; - info->get_code = p->get_code; info->size = p->size; info->is_package = p->is_package; if (p->size < 0) { @@ -2068,10 +2979,6 @@ find_frozen(PyObject *nameobj, struct frozen_info *info) info->is_alias = resolve_module_alias(name, _PyImport_FrozenAliases, &info->origname); } - if (p->code == NULL && p->size == 0 && p->get_code != NULL) { - /* It is only deepfrozen. */ - return FROZEN_OKAY; - } if (p->code == NULL) { /* It is frozen but marked as un-importable. */ return FROZEN_EXCLUDED; @@ -2086,11 +2993,6 @@ find_frozen(PyObject *nameobj, struct frozen_info *info) static PyObject * unmarshal_frozen_code(PyInterpreterState *interp, struct frozen_info *info) { - if (info->get_code && _Py_IsMainInterpreter(interp)) { - PyObject *code = info->get_code(); - assert(code != NULL); - return code; - } PyObject *co = PyMarshal_ReadObjectFromString(info->data, info->size); if (co == NULL) { /* Does not contain executable code. */ @@ -2282,11 +3184,12 @@ init_importlib(PyThreadState *tstate, PyObject *sysmod) if (PyImport_ImportFrozenModule("_frozen_importlib") <= 0) { return -1; } - PyObject *importlib = PyImport_AddModule("_frozen_importlib"); // borrowed + + PyObject *importlib = PyImport_AddModuleRef("_frozen_importlib"); if (importlib == NULL) { return -1; } - IMPORTLIB(interp) = Py_NewRef(importlib); + IMPORTLIB(interp) = importlib; // Import the _imp module if (verbose) { @@ -2409,11 +3312,11 @@ get_path_importer(PyThreadState *tstate, PyObject *path_importer_cache, if (nhooks < 0) return NULL; /* Shouldn't happen */ - importer = PyDict_GetItemWithError(path_importer_cache, p); - if (importer != NULL || _PyErr_Occurred(tstate)) { - return Py_XNewRef(importer); + if (PyDict_GetItemRef(path_importer_cache, p, &importer) != 0) { + // found or error + return importer; } - + // not found /* set path_importer_cache[p] to None to avoid recursion */ if (PyDict_SetItem(path_importer_cache, p, Py_None) != 0) return NULL; @@ -2469,12 +3372,11 @@ int _PyImport_InitDefaultImportFunc(PyInterpreterState *interp) { // Get the __import__ function - PyObject *import_func = _PyDict_GetItemStringWithError(interp->builtins, - "__import__"); - if (import_func == NULL) { + PyObject *import_func; + if (PyDict_GetItemStringRef(interp->builtins, "__import__", &import_func) <= 0) { return -1; } - IMPORT_FUNC(interp) = Py_NewRef(import_func); + IMPORT_FUNC(interp) = import_func; return 0; } @@ -2515,6 +3417,12 @@ PyImport_ImportModule(const char *name) PyObject * PyImport_ImportModuleNoBlock(const char *name) { + if (PyErr_WarnEx(PyExc_DeprecationWarning, + "PyImport_ImportModuleNoBlock() is deprecated and scheduled for " + "removal in Python 3.15. Use PyImport_ImportModule() instead.", 1)) + { + return NULL; + } return PyImport_ImportModule(name); } @@ -2595,7 +3503,7 @@ resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level { PyObject *abs_name; PyObject *package = NULL; - PyObject *spec; + PyObject *spec = NULL; Py_ssize_t last_dot; PyObject *base; int level_up; @@ -2608,20 +3516,18 @@ resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level _PyErr_SetString(tstate, PyExc_TypeError, "globals must be a dict"); goto error; } - package = PyDict_GetItemWithError(globals, &_Py_ID(__package__)); + if (PyDict_GetItemRef(globals, &_Py_ID(__package__), &package) < 0) { + goto error; + } if (package == Py_None) { + Py_DECREF(package); package = NULL; } - else if (package == NULL && _PyErr_Occurred(tstate)) { - goto error; - } - spec = PyDict_GetItemWithError(globals, &_Py_ID(__spec__)); - if (spec == NULL && _PyErr_Occurred(tstate)) { + if (PyDict_GetItemRef(globals, &_Py_ID(__spec__), &spec) < 0) { goto error; } if (package != NULL) { - Py_INCREF(package); if (!PyUnicode_Check(package)) { _PyErr_SetString(tstate, PyExc_TypeError, "package must be a string"); @@ -2665,16 +3571,15 @@ resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level goto error; } - package = PyDict_GetItemWithError(globals, &_Py_ID(__name__)); + if (PyDict_GetItemRef(globals, &_Py_ID(__name__), &package) < 0) { + goto error; + } if (package == NULL) { - if (!_PyErr_Occurred(tstate)) { - _PyErr_SetString(tstate, PyExc_KeyError, - "'__name__' not in globals"); - } + _PyErr_SetString(tstate, PyExc_KeyError, + "'__name__' not in globals"); goto error; } - Py_INCREF(package); if (!PyUnicode_Check(package)) { _PyErr_SetString(tstate, PyExc_TypeError, "__name__ must be a string"); @@ -2688,10 +3593,6 @@ resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level if (!haspath) { Py_ssize_t dot; - if (PyUnicode_READY(package) < 0) { - goto error; - } - dot = PyUnicode_FindChar(package, '.', 0, PyUnicode_GET_LENGTH(package), -1); if (dot == -2) { @@ -2726,6 +3627,7 @@ resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level } } + Py_XDECREF(spec); base = PyUnicode_Substring(package, 0, last_dot); Py_DECREF(package); if (base == NULL || PyUnicode_GET_LENGTH(name) == 0) { @@ -2742,6 +3644,7 @@ resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level "with no known parent package"); error: + Py_XDECREF(spec); Py_XDECREF(package); return NULL; } @@ -2755,7 +3658,7 @@ import_find_and_load(PyThreadState *tstate, PyObject *abs_name) #define import_level FIND_AND_LOAD(interp).import_level #define accumulated FIND_AND_LOAD(interp).accumulated - _PyTime_t t1 = 0, accumulated_copy = accumulated; + PyTime_t t1 = 0, accumulated_copy = accumulated; PyObject *sys_path, *sys_meta_path, *sys_path_hooks; if (_PySys_GetOptionalAttrString("path", &sys_path) < 0) { @@ -2799,7 +3702,8 @@ import_find_and_load(PyThreadState *tstate, PyObject *abs_name) #undef header import_level++; - t1 = _PyTime_GetPerfCounter(); + // ignore error: don't block import if reading the clock fails + (void)PyTime_PerfCounterRaw(&t1); accumulated = 0; } @@ -2814,7 +3718,9 @@ import_find_and_load(PyThreadState *tstate, PyObject *abs_name) mod != NULL); if (import_time) { - _PyTime_t cum = _PyTime_GetPerfCounter() - t1; + PyTime_t t2; + (void)PyTime_PerfCounterRaw(&t2); + PyTime_t cum = t2 - t1; import_level--; fprintf(stderr, "import time: %9ld | %10ld | %*s%s\n", @@ -2856,9 +3762,6 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *globals, "module name must be a string"); goto error; } - if (PyUnicode_READY(name) < 0) { - goto error; - } if (level < 0) { _PyErr_SetString(tstate, PyExc_ValueError, "level must be >= 0"); goto error; @@ -2936,15 +3839,17 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *globals, } final_mod = import_get_module(tstate, to_return); - Py_DECREF(to_return); if (final_mod == NULL) { if (!_PyErr_Occurred(tstate)) { _PyErr_Format(tstate, PyExc_KeyError, "%R not in sys.modules as expected", to_return); } + Py_DECREF(to_return); goto error; } + + Py_DECREF(to_return); } } else { @@ -2952,12 +3857,11 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *globals, } } else { - PyObject *path; - if (_PyObject_LookupAttr(mod, &_Py_ID(__path__), &path) < 0) { + int has_path = PyObject_HasAttrWithError(mod, &_Py_ID(__path__)); + if (has_path < 0) { goto error; } - if (path) { - Py_DECREF(path); + if (has_path) { final_mod = PyObject_CallMethodObjArgs( IMPORTLIB(interp), &_Py_ID(_handle_fromlist), mod, fromlist, IMPORT_FUNC(interp), NULL); @@ -3210,18 +4114,13 @@ _PyImport_FiniCore(PyInterpreterState *interp) int verbose = _PyInterpreterState_GetConfig(interp)->verbose; if (_PySys_ClearAttrString(interp, "meta_path", verbose) < 0) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on clearing sys.meta_path"); } // XXX Pull in most of finalize_modules() in pylifecycle.c. if (_PySys_ClearAttrString(interp, "modules", verbose) < 0) { - PyErr_WriteUnraisable(NULL); - } - - if (IMPORT_LOCK(interp) != NULL) { - PyThread_free_lock(IMPORT_LOCK(interp)); - IMPORT_LOCK(interp) = NULL; + PyErr_FormatUnraisable("Exception ignored on clearing sys.modules"); } _PyImport_ClearCore(interp); @@ -3296,10 +4195,10 @@ _PyImport_FiniExternal(PyInterpreterState *interp) // XXX Uninstall importlib metapath importers here? if (_PySys_ClearAttrString(interp, "path_importer_cache", verbose) < 0) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on clearing sys.path_importer_cache"); } if (_PySys_ClearAttrString(interp, "path_hooks", verbose) < 0) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on clearing sys.path_hooks"); } } @@ -3356,8 +4255,7 @@ _imp_lock_held_impl(PyObject *module) /*[clinic end generated code: output=8b89384b5e1963fc input=9b088f9b217d9bdf]*/ { PyInterpreterState *interp = _PyInterpreterState_GET(); - return PyBool_FromLong( - IMPORT_LOCK_THREAD(interp) != PYTHREAD_INVALID_THREAD_ID); + return PyBool_FromLong(PyMutex_IsLocked(&IMPORT_LOCK(interp).mutex)); } /*[clinic input] @@ -3391,11 +4289,12 @@ _imp_release_lock_impl(PyObject *module) /*[clinic end generated code: output=7faab6d0be178b0a input=934fb11516dd778b]*/ { PyInterpreterState *interp = _PyInterpreterState_GET(); - if (_PyImport_ReleaseLock(interp) < 0) { + if (!_PyRecursiveMutex_IsLockedByCurrentThread(&IMPORT_LOCK(interp))) { PyErr_SetString(PyExc_RuntimeError, "not holding the import lock"); return NULL; } + _PyImport_ReleaseLock(interp); Py_RETURN_NONE; } @@ -3621,7 +4520,7 @@ _imp_get_frozen_object_impl(PyObject *module, PyObject *name, if (info.nameobj == NULL) { info.nameobj = name; } - if (info.size == 0 && info.get_code == NULL) { + if (info.size == 0) { /* Does not contain executable code. */ set_frozen_error(FROZEN_INVALID, name); return NULL; @@ -3751,9 +4650,16 @@ _imp__override_multi_interp_extensions_check_impl(PyObject *module, "cannot be used in the main interpreter"); return NULL; } +#ifdef Py_GIL_DISABLED + PyErr_SetString(PyExc_RuntimeError, + "_imp._override_multi_interp_extensions_check() " + "cannot be used in the free-threaded build"); + return NULL; +#else int oldvalue = OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK(interp); OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK(interp) = override; return PyLong_FromLong(oldvalue); +#endif } #ifdef HAVE_DYNAMIC_LOADING @@ -3772,44 +4678,88 @@ static PyObject * _imp_create_dynamic_impl(PyObject *module, PyObject *spec, PyObject *file) /*[clinic end generated code: output=83249b827a4fde77 input=c31b954f4cf4e09d]*/ { - PyObject *mod, *name, *path; - FILE *fp; + PyObject *mod = NULL; + PyThreadState *tstate = _PyThreadState_GET(); - name = PyObject_GetAttrString(spec, "name"); - if (name == NULL) { + struct _Py_ext_module_loader_info info; + if (_Py_ext_module_loader_info_init_from_spec(&info, spec) < 0) { return NULL; } - path = PyObject_GetAttrString(spec, "origin"); - if (path == NULL) { - Py_DECREF(name); - return NULL; + struct extensions_cache_value *cached = NULL; + mod = import_find_extension(tstate, &info, &cached); + if (mod != NULL) { + assert(!_PyErr_Occurred(tstate)); + assert(cached != NULL); + /* The module might not have md_def set in certain reload cases. */ + assert(_PyModule_GetDef(mod) == NULL + || cached->def == _PyModule_GetDef(mod)); + assert_singlephase(cached); + goto finally; + } + else if (_PyErr_Occurred(tstate)) { + goto finally; } + /* Otherwise it must be multi-phase init or the first time it's loaded. */ - PyThreadState *tstate = _PyThreadState_GET(); - mod = import_find_extension(tstate, name, path); - if (mod != NULL || _PyErr_Occurred(tstate)) { - assert(mod == NULL || !_PyErr_Occurred(tstate)); + /* If the module was added to the global cache + * but def->m_base.m_copy was cleared (e.g. subinterp fini) + * then we have to do a little dance here. */ + if (cached != NULL) { + assert(cached->def->m_base.m_copy == NULL); + /* For now we clear the cache and move on. */ + _extensions_cache_delete(info.path, info.name); + } + + if (PySys_Audit("import", "OOOOO", info.name, info.filename, + Py_None, Py_None, Py_None) < 0) + { goto finally; } + /* We would move this (and the fclose() below) into + * _PyImport_GetModInitFunc(), but it isn't clear if the intervening + * code relies on fp still being open. */ + FILE *fp; if (file != NULL) { - fp = _Py_fopen_obj(path, "r"); + fp = _Py_fopen_obj(info.filename, "r"); if (fp == NULL) { goto finally; } } - else + else { fp = NULL; + } + + PyModInitFunction p0 = _PyImport_GetModInitFunc(&info, fp); + if (p0 == NULL) { + goto finally; + } - mod = _PyImport_LoadDynamicModuleWithSpec(spec, fp); +#ifdef Py_GIL_DISABLED + // This call (and the corresponding call to _PyImport_CheckGILForModule()) + // would ideally be inside import_run_extension(). They are kept in the + // callers for now because that would complicate the control flow inside + // import_run_extension(). It should be possible to restructure + // import_run_extension() to address this. + _PyEval_EnableGILTransient(tstate); +#endif + mod = import_run_extension( + tstate, p0, &info, spec, get_modules_dict(tstate, true)); +#ifdef Py_GIL_DISABLED + if (_PyImport_CheckGILForModule(mod, info.name) < 0) { + Py_CLEAR(mod); + goto finally; + } +#endif - if (fp) + // XXX Shouldn't this happen in the error cases too (i.e. in "finally")? + if (fp) { fclose(fp); + } finally: - Py_DECREF(name); - Py_DECREF(path); + _Py_ext_module_loader_info_clear(&info); return mod; } @@ -3909,14 +4859,9 @@ imp_module_exec(PyObject *module) { const wchar_t *mode = _Py_GetConfig()->check_hash_pycs_mode; PyObject *pyc_mode = PyUnicode_FromWideChar(mode, -1); - if (pyc_mode == NULL) { - return -1; - } - if (PyModule_AddObjectRef(module, "check_hash_based_pycs", pyc_mode) < 0) { - Py_DECREF(pyc_mode); + if (PyModule_Add(module, "check_hash_based_pycs", pyc_mode) < 0) { return -1; } - Py_DECREF(pyc_mode); return 0; } @@ -3925,6 +4870,7 @@ imp_module_exec(PyObject *module) static PyModuleDef_Slot imp_slots[] = { {Py_mod_exec, imp_module_exec}, {Py_mod_multiple_interpreters, Py_MOD_PER_INTERPRETER_GIL_SUPPORTED}, + {Py_mod_gil, Py_MOD_GIL_NOT_USED}, {0, NULL} }; @@ -3942,8 +4888,3 @@ PyInit__imp(void) { return PyModuleDef_Init(&imp_module); } - - -#ifdef __cplusplus -} -#endif diff --git a/contrib/tools/python3/Python/importdl.c b/contrib/tools/python3/Python/importdl.c index 3a3a30ddbdc..e575e56c3ff 100644 --- a/contrib/tools/python3/Python/importdl.c +++ b/contrib/tools/python3/Python/importdl.c @@ -4,9 +4,12 @@ #include "Python.h" #include "pycore_call.h" #include "pycore_import.h" +#include "pycore_pyerrors.h" // _PyErr_FormatFromCause() #include "pycore_pystate.h" #include "pycore_runtime.h" +#include "pycore_importdl.h" + /* ./configure sets HAVE_DYNAMIC_LOADING if dynamic loading of modules is supported on this platform. configure will then compile and link in one of the dynload_*.c files, as appropriate. We will call a function in @@ -14,8 +17,6 @@ */ #ifdef HAVE_DYNAMIC_LOADING -#include "importdl.h" - #ifdef MS_WINDOWS extern dl_funcptr _PyImport_FindSharedFuncptrWindows(const char *prefix, const char *shortname, @@ -27,6 +28,13 @@ extern dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix, const char *pathname, FILE *fp); #endif +#endif /* HAVE_DYNAMIC_LOADING */ + + +/***********************************/ +/* module info to use when loading */ +/***********************************/ + static const char * const ascii_only_prefix = "PyInit"; static const char * const nonascii_prefix = "PyInitU"; @@ -92,59 +100,302 @@ error: return NULL; } -PyObject * -_PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *fp) +void +_Py_ext_module_loader_info_clear(struct _Py_ext_module_loader_info *info) { + Py_CLEAR(info->filename); #ifndef MS_WINDOWS - PyObject *pathbytes = NULL; + Py_CLEAR(info->filename_encoded); #endif - PyObject *name_unicode = NULL, *name = NULL, *path = NULL, *m = NULL; - const char *name_buf, *hook_prefix; - const char *oldcontext, *newcontext; - dl_funcptr exportfunc; - PyModuleDef *def; - PyModInitFunction p0; + Py_CLEAR(info->name); + Py_CLEAR(info->name_encoded); +} - name_unicode = PyObject_GetAttrString(spec, "name"); - if (name_unicode == NULL) { - return NULL; - } - if (!PyUnicode_Check(name_unicode)) { +int +_Py_ext_module_loader_info_init(struct _Py_ext_module_loader_info *p_info, + PyObject *name, PyObject *filename, + _Py_ext_module_origin origin) +{ + struct _Py_ext_module_loader_info info = { + .origin=origin, + }; + + assert(name != NULL); + if (!PyUnicode_Check(name)) { PyErr_SetString(PyExc_TypeError, - "spec.name must be a string"); - goto error; + "module name must be a string"); + _Py_ext_module_loader_info_clear(&info); + return -1; } - newcontext = PyUnicode_AsUTF8(name_unicode); - if (newcontext == NULL) { - goto error; + assert(PyUnicode_GetLength(name) > 0); + info.name = Py_NewRef(name); + + info.name_encoded = get_encoded_name(info.name, &info.hook_prefix); + if (info.name_encoded == NULL) { + _Py_ext_module_loader_info_clear(&info); + return -1; + } + + info.newcontext = PyUnicode_AsUTF8(info.name); + if (info.newcontext == NULL) { + _Py_ext_module_loader_info_clear(&info); + return -1; + } + + if (filename != NULL) { + if (!PyUnicode_Check(filename)) { + PyErr_SetString(PyExc_TypeError, + "module filename must be a string"); + _Py_ext_module_loader_info_clear(&info); + return -1; + } + info.filename = Py_NewRef(filename); + +#ifndef MS_WINDOWS + info.filename_encoded = PyUnicode_EncodeFSDefault(info.filename); + if (info.filename_encoded == NULL) { + _Py_ext_module_loader_info_clear(&info); + return -1; + } +#endif + + info.path = info.filename; + } + else { + info.path = info.name; + } + + *p_info = info; + return 0; +} + +int +_Py_ext_module_loader_info_init_for_builtin( + struct _Py_ext_module_loader_info *info, + PyObject *name) +{ + assert(PyUnicode_Check(name)); + assert(PyUnicode_GetLength(name) > 0); + + PyObject *name_encoded = PyUnicode_AsEncodedString(name, "ascii", NULL); + if (name_encoded == NULL) { + return -1; + } + + *info = (struct _Py_ext_module_loader_info){ + .name=Py_NewRef(name), + .name_encoded=name_encoded, + /* We won't need filename. */ + .path=name, + .origin=_Py_ext_module_origin_BUILTIN, + .hook_prefix=ascii_only_prefix, + .newcontext=NULL, + }; + info->newcontext = PyUnicode_AsUTF8(name); + if (info->newcontext == NULL) { + _Py_ext_module_loader_info_clear(info); + return -1; } + return 0; +} - name = get_encoded_name(name_unicode, &hook_prefix); +int +_Py_ext_module_loader_info_init_for_core( + struct _Py_ext_module_loader_info *info, + PyObject *name) +{ + if (_Py_ext_module_loader_info_init_for_builtin(info, name) < 0) { + return -1; + } + info->origin = _Py_ext_module_origin_CORE; + return 0; +} + +#ifdef HAVE_DYNAMIC_LOADING +int +_Py_ext_module_loader_info_init_from_spec( + struct _Py_ext_module_loader_info *p_info, + PyObject *spec) +{ + PyObject *name = PyObject_GetAttrString(spec, "name"); if (name == NULL) { - goto error; + return -1; + } + PyObject *filename = PyObject_GetAttrString(spec, "origin"); + if (filename == NULL) { + Py_DECREF(name); + return -1; } - name_buf = PyBytes_AS_STRING(name); + /* We could also accommodate builtin modules here without much trouble. */ + _Py_ext_module_origin origin = _Py_ext_module_origin_DYNAMIC; + int err = _Py_ext_module_loader_info_init(p_info, name, filename, origin); + Py_DECREF(name); + Py_DECREF(filename); + return err; +} +#endif /* HAVE_DYNAMIC_LOADING */ - path = PyObject_GetAttrString(spec, "origin"); - if (path == NULL) - goto error; - if (PySys_Audit("import", "OOOOO", name_unicode, path, - Py_None, Py_None, Py_None) < 0) { - goto error; +/********************************/ +/* module init function results */ +/********************************/ + +void +_Py_ext_module_loader_result_clear(struct _Py_ext_module_loader_result *res) +{ + /* Instead, the caller should have called + * _Py_ext_module_loader_result_apply_error(). */ + assert(res->err == NULL); + *res = (struct _Py_ext_module_loader_result){0}; +} + +static void +_Py_ext_module_loader_result_set_error( + struct _Py_ext_module_loader_result *res, + enum _Py_ext_module_loader_result_error_kind kind) +{ +#ifndef NDEBUG + switch (kind) { + case _Py_ext_module_loader_result_EXCEPTION: /* fall through */ + case _Py_ext_module_loader_result_ERR_UNREPORTED_EXC: + assert(PyErr_Occurred()); + break; + case _Py_ext_module_loader_result_ERR_MISSING: /* fall through */ + case _Py_ext_module_loader_result_ERR_UNINITIALIZED: /* fall through */ + case _Py_ext_module_loader_result_ERR_NONASCII_NOT_MULTIPHASE: /* fall through */ + case _Py_ext_module_loader_result_ERR_NOT_MODULE: /* fall through */ + case _Py_ext_module_loader_result_ERR_MISSING_DEF: + assert(!PyErr_Occurred()); + break; + default: + /* We added a new error kind but forgot to add it to this switch. */ + assert(0); + } +#endif + + assert(res->err == NULL && res->_err.exc == NULL); + res->err = &res->_err; + *res->err = (struct _Py_ext_module_loader_result_error){ + .kind=kind, + .exc=PyErr_GetRaisedException(), + }; + + /* For some kinds, we also set/check res->kind. */ + switch (kind) { + case _Py_ext_module_loader_result_ERR_UNINITIALIZED: + assert(res->kind == _Py_ext_module_kind_UNKNOWN); + res->kind = _Py_ext_module_kind_INVALID; + break; + /* None of the rest affect the result kind. */ + case _Py_ext_module_loader_result_EXCEPTION: /* fall through */ + case _Py_ext_module_loader_result_ERR_MISSING: /* fall through */ + case _Py_ext_module_loader_result_ERR_UNREPORTED_EXC: /* fall through */ + case _Py_ext_module_loader_result_ERR_NONASCII_NOT_MULTIPHASE: /* fall through */ + case _Py_ext_module_loader_result_ERR_NOT_MODULE: /* fall through */ + case _Py_ext_module_loader_result_ERR_MISSING_DEF: + break; + default: + /* We added a new error kind but forgot to add it to this switch. */ + assert(0); } +} + +void +_Py_ext_module_loader_result_apply_error( + struct _Py_ext_module_loader_result *res, + const char *name) +{ + assert(!PyErr_Occurred()); + assert(res->err != NULL && res->err == &res->_err); + struct _Py_ext_module_loader_result_error err = *res->err; + res->err = NULL; + + /* We're otherwise done with the result at this point. */ + _Py_ext_module_loader_result_clear(res); + +#ifndef NDEBUG + switch (err.kind) { + case _Py_ext_module_loader_result_EXCEPTION: /* fall through */ + case _Py_ext_module_loader_result_ERR_UNREPORTED_EXC: + assert(err.exc != NULL); + break; + case _Py_ext_module_loader_result_ERR_MISSING: /* fall through */ + case _Py_ext_module_loader_result_ERR_UNINITIALIZED: /* fall through */ + case _Py_ext_module_loader_result_ERR_NONASCII_NOT_MULTIPHASE: /* fall through */ + case _Py_ext_module_loader_result_ERR_NOT_MODULE: /* fall through */ + case _Py_ext_module_loader_result_ERR_MISSING_DEF: + assert(err.exc == NULL); + break; + default: + /* We added a new error kind but forgot to add it to this switch. */ + assert(0); + } +#endif + + const char *msg = NULL; + switch (err.kind) { + case _Py_ext_module_loader_result_EXCEPTION: + break; + case _Py_ext_module_loader_result_ERR_MISSING: + msg = "initialization of %s failed without raising an exception"; + break; + case _Py_ext_module_loader_result_ERR_UNREPORTED_EXC: + msg = "initialization of %s raised unreported exception"; + break; + case _Py_ext_module_loader_result_ERR_UNINITIALIZED: + msg = "init function of %s returned uninitialized object"; + break; + case _Py_ext_module_loader_result_ERR_NONASCII_NOT_MULTIPHASE: + msg = "initialization of %s did not return PyModuleDef"; + break; + case _Py_ext_module_loader_result_ERR_NOT_MODULE: + msg = "initialization of %s did not return an extension module"; + break; + case _Py_ext_module_loader_result_ERR_MISSING_DEF: + msg = "initialization of %s did not return a valid extension module"; + break; + default: + /* We added a new error kind but forgot to add it to this switch. */ + assert(0); + PyErr_Format(PyExc_SystemError, + "loading %s failed due to init function", name); + return; + } + + if (err.exc != NULL) { + PyErr_SetRaisedException(err.exc); + err.exc = NULL; /* PyErr_SetRaisedException() stole our reference. */ + if (msg != NULL) { + _PyErr_FormatFromCause(PyExc_SystemError, msg, name); + } + } + else { + assert(msg != NULL); + PyErr_Format(PyExc_SystemError, msg, name); + } +} + +/********************************************/ +/* getting/running the module init function */ +/********************************************/ + +#ifdef HAVE_DYNAMIC_LOADING +PyModInitFunction +_PyImport_GetModInitFunc(struct _Py_ext_module_loader_info *info, + FILE *fp) +{ + const char *name_buf = PyBytes_AS_STRING(info->name_encoded); + dl_funcptr exportfunc; #ifdef MS_WINDOWS - exportfunc = _PyImport_FindSharedFuncptrWindows(hook_prefix, name_buf, - path, fp); + exportfunc = _PyImport_FindSharedFuncptrWindows( + info->hook_prefix, name_buf, info->filename, fp); #else - pathbytes = PyUnicode_EncodeFSDefault(path); - if (pathbytes == NULL) - goto error; - exportfunc = _PyImport_FindSharedFuncptr(hook_prefix, name_buf, - PyBytes_AS_STRING(pathbytes), - fp); - Py_DECREF(pathbytes); + { + const char *path_buf = PyBytes_AS_STRING(info->filename_encoded); + exportfunc = _PyImport_FindSharedFuncptr( + info->hook_prefix, name_buf, path_buf, fp); + } #endif if (exportfunc == NULL) { @@ -153,101 +404,122 @@ _PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *fp) msg = PyUnicode_FromFormat( "dynamic module does not define " "module export function (%s_%s)", - hook_prefix, name_buf); - if (msg == NULL) - goto error; - PyErr_SetImportError(msg, name_unicode, path); - Py_DECREF(msg); + info->hook_prefix, name_buf); + if (msg != NULL) { + PyErr_SetImportError(msg, info->name, info->filename); + Py_DECREF(msg); + } } - goto error; + return NULL; } - p0 = (PyModInitFunction)exportfunc; + return (PyModInitFunction)exportfunc; +} +#endif /* HAVE_DYNAMIC_LOADING */ + +int +_PyImport_RunModInitFunc(PyModInitFunction p0, + struct _Py_ext_module_loader_info *info, + struct _Py_ext_module_loader_result *p_res) +{ + struct _Py_ext_module_loader_result res = { + .kind=_Py_ext_module_kind_UNKNOWN, + }; + + /* Call the module init function. */ /* Package context is needed for single-phase init */ - oldcontext = _PyImport_SwapPackageContext(newcontext); - m = _PyImport_InitFunc_TrampolineCall(p0); + const char *oldcontext = _PyImport_SwapPackageContext(info->newcontext); + PyObject *m = p0(); _PyImport_SwapPackageContext(oldcontext); + /* Validate the result (and populate "res". */ + if (m == NULL) { - if (!PyErr_Occurred()) { - PyErr_Format( - PyExc_SystemError, - "initialization of %s failed without raising an exception", - name_buf); + /* The init func for multi-phase init modules is expected + * to return a PyModuleDef after calling PyModuleDef_Init(). + * That function never raises an exception nor returns NULL, + * so at this point it must be a single-phase init modules. */ + res.kind = _Py_ext_module_kind_SINGLEPHASE; + if (PyErr_Occurred()) { + _Py_ext_module_loader_result_set_error( + &res, _Py_ext_module_loader_result_EXCEPTION); + } + else { + _Py_ext_module_loader_result_set_error( + &res, _Py_ext_module_loader_result_ERR_MISSING); } goto error; } else if (PyErr_Occurred()) { - _PyErr_FormatFromCause( - PyExc_SystemError, - "initialization of %s raised unreported exception", - name_buf); + /* Likewise, we infer that this is a single-phase init module. */ + res.kind = _Py_ext_module_kind_SINGLEPHASE; + _Py_ext_module_loader_result_set_error( + &res, _Py_ext_module_loader_result_ERR_UNREPORTED_EXC); + /* We would probably be correct to decref m here, + * but we weren't doing so before, + * so we stick with doing nothing. */ m = NULL; goto error; } + if (Py_IS_TYPE(m, NULL)) { /* This can happen when a PyModuleDef is returned without calling * PyModuleDef_Init on it */ - PyErr_Format(PyExc_SystemError, - "init function of %s returned uninitialized object", - name_buf); + _Py_ext_module_loader_result_set_error( + &res, _Py_ext_module_loader_result_ERR_UNINITIALIZED); + /* Likewise, decref'ing here makes sense. However, the original + * code has a note about "prevent segfault in DECREF", + * so we play it safe and leave it alone. */ m = NULL; /* prevent segfault in DECREF */ goto error; } - if (PyObject_TypeCheck(m, &PyModuleDef_Type)) { - Py_DECREF(name_unicode); - Py_DECREF(name); - Py_DECREF(path); - return PyModule_FromDefAndSpec((PyModuleDef*)m, spec); - } - /* Fall back to single-phase init mechanism */ - - if (_PyImport_CheckSubinterpIncompatibleExtensionAllowed(name_buf) < 0) { - goto error; + if (PyObject_TypeCheck(m, &PyModuleDef_Type)) { + /* multi-phase init */ + res.kind = _Py_ext_module_kind_MULTIPHASE; + res.def = (PyModuleDef *)m; + /* Run PyModule_FromDefAndSpec() to finish loading the module. */ } - - if (hook_prefix == nonascii_prefix) { - /* don't allow legacy init for non-ASCII module names */ - PyErr_Format( - PyExc_SystemError, - "initialization of %s did not return PyModuleDef", - name_buf); + else if (info->hook_prefix == nonascii_prefix) { + /* Non-ASCII is only supported for multi-phase init. */ + res.kind = _Py_ext_module_kind_MULTIPHASE; + /* Don't allow legacy init for non-ASCII module names. */ + _Py_ext_module_loader_result_set_error( + &res, _Py_ext_module_loader_result_ERR_NONASCII_NOT_MULTIPHASE); goto error; } + else { + /* single-phase init (legacy) */ + res.kind = _Py_ext_module_kind_SINGLEPHASE; + res.module = m; - /* Remember pointer to module init function. */ - def = PyModule_GetDef(m); - if (def == NULL) { - PyErr_Format(PyExc_SystemError, - "initialization of %s did not return an extension " - "module", name_buf); - goto error; - } - def->m_base.m_init = p0; + if (!PyModule_Check(m)) { + _Py_ext_module_loader_result_set_error( + &res, _Py_ext_module_loader_result_ERR_NOT_MODULE); + goto error; + } - /* Remember the filename as the __file__ attribute */ - if (PyModule_AddObjectRef(m, "__file__", path) < 0) { - PyErr_Clear(); /* Not important enough to report */ + res.def = _PyModule_GetDef(m); + if (res.def == NULL) { + PyErr_Clear(); + _Py_ext_module_loader_result_set_error( + &res, _Py_ext_module_loader_result_ERR_MISSING_DEF); + goto error; + } } - PyObject *modules = PyImport_GetModuleDict(); - if (_PyImport_FixupExtensionObject(m, name_unicode, path, modules) < 0) - goto error; - - Py_DECREF(name_unicode); - Py_DECREF(name); - Py_DECREF(path); - - return m; + assert(!PyErr_Occurred()); + assert(res.err == NULL); + *p_res = res; + return 0; error: - Py_DECREF(name_unicode); - Py_XDECREF(name); - Py_XDECREF(path); - Py_XDECREF(m); - return NULL; + assert(!PyErr_Occurred()); + assert(res.err != NULL); + Py_CLEAR(res.module); + res.def = NULL; + *p_res = res; + p_res->err = &p_res->_err; + return -1; } - -#endif /* HAVE_DYNAMIC_LOADING */ diff --git a/contrib/tools/python3/Python/importdl.h b/contrib/tools/python3/Python/importdl.h deleted file mode 100644 index 26d18b626df..00000000000 --- a/contrib/tools/python3/Python/importdl.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef Py_IMPORTDL_H -#define Py_IMPORTDL_H - -#ifdef __cplusplus -extern "C" { -#endif - - -extern const char *_PyImport_DynLoadFiletab[]; - -extern PyObject *_PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *); - -typedef PyObject *(*PyModInitFunction)(void); - -#if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) -extern PyObject *_PyImport_InitFunc_TrampolineCall(PyModInitFunction func); -#else -#define _PyImport_InitFunc_TrampolineCall(func) (func)() -#endif - -/* Max length of module suffix searched for -- accommodates "module.slb" */ -#define MAXSUFFIXSIZE 12 - -#ifdef MS_WINDOWS -#include -typedef FARPROC dl_funcptr; -#else -typedef void (*dl_funcptr)(void); -#endif - - -#ifdef __cplusplus -} -#endif -#endif /* !Py_IMPORTDL_H */ diff --git a/contrib/tools/python3/Python/initconfig.c b/contrib/tools/python3/Python/initconfig.c index 2c76cf86f0b..7542cb0d375 100644 --- a/contrib/tools/python3/Python/initconfig.c +++ b/contrib/tools/python3/Python/initconfig.c @@ -9,6 +9,7 @@ #include "pycore_pylifecycle.h" // _Py_PreInitializeFromConfig() #include "pycore_pymem.h" // _PyMem_SetDefaultAllocator() #include "pycore_pystate.h" // _PyThreadState_GET() +#include "pycore_pystats.h" // _Py_StatsOn() #include "pycore_sysmodule.h" // _PySys_GetOptionalAttrString() #include "osdefs.h" // DELIM @@ -24,6 +25,118 @@ # endif #endif +#include "config_common.h" + + +/* --- PyConfig spec ---------------------------------------------- */ + +typedef enum { + PyConfig_MEMBER_INT = 0, + PyConfig_MEMBER_UINT = 1, + PyConfig_MEMBER_ULONG = 2, + PyConfig_MEMBER_BOOL = 3, + + PyConfig_MEMBER_WSTR = 10, + PyConfig_MEMBER_WSTR_OPT = 11, + PyConfig_MEMBER_WSTR_LIST = 12, +} PyConfigMemberType; + +typedef struct { + const char *name; + size_t offset; + PyConfigMemberType type; +} PyConfigSpec; + +#define SPEC(MEMBER, TYPE) \ + {#MEMBER, offsetof(PyConfig, MEMBER), PyConfig_MEMBER_##TYPE} + +// Update _test_embed_set_config when adding new members +static const PyConfigSpec PYCONFIG_SPEC[] = { + SPEC(_config_init, UINT), + SPEC(isolated, BOOL), + SPEC(use_environment, BOOL), + SPEC(dev_mode, BOOL), + SPEC(install_signal_handlers, BOOL), + SPEC(use_hash_seed, BOOL), + SPEC(hash_seed, ULONG), + SPEC(faulthandler, BOOL), + SPEC(tracemalloc, UINT), + SPEC(perf_profiling, UINT), + SPEC(import_time, BOOL), + SPEC(code_debug_ranges, BOOL), + SPEC(show_ref_count, BOOL), + SPEC(dump_refs, BOOL), + SPEC(dump_refs_file, WSTR_OPT), + SPEC(malloc_stats, BOOL), + SPEC(filesystem_encoding, WSTR), + SPEC(filesystem_errors, WSTR), + SPEC(pycache_prefix, WSTR_OPT), + SPEC(parse_argv, BOOL), + SPEC(orig_argv, WSTR_LIST), + SPEC(argv, WSTR_LIST), + SPEC(xoptions, WSTR_LIST), + SPEC(warnoptions, WSTR_LIST), + SPEC(site_import, BOOL), + SPEC(bytes_warning, UINT), + SPEC(warn_default_encoding, BOOL), + SPEC(inspect, BOOL), + SPEC(interactive, BOOL), + SPEC(optimization_level, UINT), + SPEC(parser_debug, BOOL), + SPEC(write_bytecode, BOOL), + SPEC(verbose, UINT), + SPEC(quiet, BOOL), + SPEC(user_site_directory, BOOL), + SPEC(configure_c_stdio, BOOL), + SPEC(buffered_stdio, BOOL), + SPEC(stdio_encoding, WSTR), + SPEC(stdio_errors, WSTR), +#ifdef MS_WINDOWS + SPEC(legacy_windows_stdio, BOOL), +#endif + SPEC(check_hash_pycs_mode, WSTR), + SPEC(use_frozen_modules, BOOL), + SPEC(safe_path, BOOL), + SPEC(int_max_str_digits, INT), + SPEC(cpu_count, INT), +#ifdef Py_GIL_DISABLED + SPEC(enable_gil, INT), +#endif + SPEC(pathconfig_warnings, BOOL), + SPEC(program_name, WSTR), + SPEC(pythonpath_env, WSTR_OPT), + SPEC(home, WSTR_OPT), + SPEC(platlibdir, WSTR), + SPEC(sys_path_0, WSTR_OPT), + SPEC(module_search_paths_set, BOOL), + SPEC(module_search_paths, WSTR_LIST), + SPEC(stdlib_dir, WSTR_OPT), + SPEC(executable, WSTR_OPT), + SPEC(base_executable, WSTR_OPT), + SPEC(prefix, WSTR_OPT), + SPEC(base_prefix, WSTR_OPT), + SPEC(exec_prefix, WSTR_OPT), + SPEC(base_exec_prefix, WSTR_OPT), + SPEC(skip_source_first_line, BOOL), + SPEC(run_command, WSTR_OPT), + SPEC(run_module, WSTR_OPT), + SPEC(run_filename, WSTR_OPT), + SPEC(_install_importlib, BOOL), + SPEC(_init_main, BOOL), + SPEC(_is_python_build, BOOL), +#ifdef Py_STATS + SPEC(_pystats, BOOL), +#endif +#ifdef Py_DEBUG + SPEC(run_presite, WSTR_OPT), +#endif + + {NULL, 0, 0}, +}; + +#undef SPEC + + /* --- Command line options --------------------------------------- */ /* Short usage message (with %s for argv0) */ @@ -79,17 +192,27 @@ arg ...: arguments passed to program in sys.argv[1:]\n\ static const char usage_xoptions[] = "\ The following implementation-specific options are available:\n\ +-X cpu_count=N: override the return value of os.cpu_count();\n\ + -X cpu_count=default cancels overriding; also PYTHON_CPU_COUNT\n\ -X dev : enable Python Development Mode; also PYTHONDEVMODE\n\ -X faulthandler: dump the Python traceback on fatal errors;\n\ also PYTHONFAULTHANDLER\n\ -X frozen_modules=[on|off]: whether to use frozen modules; the default is \"on\"\n\ - for installed Python and \"off\" for a local build\n\ + for installed Python and \"off\" for a local build;\n\ + also PYTHON_FROZEN_MODULES\n\ +" +#ifdef Py_GIL_DISABLED +"-X gil=[0|1]: enable (1) or disable (0) the GIL; also PYTHON_GIL\n" +#endif +"\ -X importtime: show how long each import takes; also PYTHONPROFILEIMPORTTIME\n\ -X int_max_str_digits=N: limit the size of int<->str conversions;\n\ 0 disables the limit; also PYTHONINTMAXSTRDIGITS\n\ -X no_debug_ranges: don't include extra location information in code objects;\n\ also PYTHONNODEBUGRANGES\n\ -X perf: support the Linux \"perf\" profiler; also PYTHONPERFSUPPORT=1\n\ +-X perf_jit: support the Linux \"perf\" profiler with DWARF support;\n\ + also PYTHON_PERF_JIT_SUPPORT=1\n\ " #ifdef Py_DEBUG "-X presite=MOD: import this module before site; also PYTHON_PRESITE\n" @@ -137,12 +260,23 @@ static const char usage_envvars[] = "PYTHONBREAKPOINT: if this variable is set to 0, it disables the default\n" " debugger. It can be set to the callable of your debugger of\n" " choice.\n" +"PYTHON_COLORS : if this variable is set to 1, the interpreter will colorize\n" +" various kinds of output. Setting it to 0 deactivates\n" +" this behavior.\n" +"PYTHON_HISTORY : the location of a .python_history file.\n" "\n" "These variables have equivalent command-line options (see --help for details):\n" +"PYTHON_CPU_COUNT: override the return value of os.cpu_count() (-X cpu_count)\n" "PYTHONDEBUG : enable parser debug mode (-d)\n" "PYTHONDEVMODE : enable Python Development Mode (-X dev)\n" "PYTHONDONTWRITEBYTECODE: don't write .pyc files (-B)\n" "PYTHONFAULTHANDLER: dump the Python traceback on fatal errors (-X faulthandler)\n" +"PYTHON_FROZEN_MODULES: whether to use frozen modules; the default is \"on\"\n" +" for installed Python and \"off\" for a local build\n" +" (-X frozen_modules)\n" +#ifdef Py_GIL_DISABLED +"PYTHON_GIL : when set to 0, disables the GIL (-X gil)\n" +#endif "PYTHONINSPECT : inspect interactively after running script (-i)\n" "PYTHONINTMAXSTRDIGITS: limit the size of int<->str conversions;\n" " 0 disables the limit (-X int_max_str_digits=N)\n" @@ -151,10 +285,16 @@ static const char usage_envvars[] = "PYTHONNOUSERSITE: disable user site directory (-s)\n" "PYTHONOPTIMIZE : enable level 1 optimizations (-O)\n" "PYTHONPERFSUPPORT: support the Linux \"perf\" profiler (-X perf)\n" +#ifdef Py_DEBUG +"PYTHON_PRESITE: import this module before site (-X presite)\n" +#endif "PYTHONPROFILEIMPORTTIME: show how long each import takes (-X importtime)\n" "PYTHONPYCACHEPREFIX: root directory for bytecode cache (pyc) files\n" " (-X pycache_prefix)\n" "PYTHONSAFEPATH : don't prepend a potentially unsafe path to sys.path.\n" +#ifdef Py_STATS +"PYTHONSTATS : turns on statistics gathering (-X pystats)\n" +#endif "PYTHONTRACEMALLOC: trace Python memory allocations (-X tracemalloc)\n" "PYTHONUNBUFFERED: disable stdout/stderr buffering (-u)\n" "PYTHONUTF8 : control the UTF-8 mode (-X utf8)\n" @@ -311,21 +451,34 @@ int PyStatus_IsExit(PyStatus status) int PyStatus_Exception(PyStatus status) { return _PyStatus_EXCEPTION(status); } -PyObject* +void _PyErr_SetFromPyStatus(PyStatus status) { if (!_PyStatus_IS_ERROR(status)) { PyErr_Format(PyExc_SystemError, - "%s() expects an error PyStatus", - _PyStatus_GET_FUNC()); + "_PyErr_SetFromPyStatus() status is not an error"); + return; } - else if (status.func) { - PyErr_Format(PyExc_ValueError, "%s: %s", status.func, status.err_msg); + + const char *err_msg = status.err_msg; + if (err_msg == NULL || strlen(err_msg) == 0) { + PyErr_Format(PyExc_SystemError, + "_PyErr_SetFromPyStatus() status has no error message"); + return; + } + + if (strcmp(err_msg, _PyStatus_NO_MEMORY_ERRMSG) == 0) { + PyErr_NoMemory(); + return; + } + + const char *func = status.func; + if (func) { + PyErr_Format(PyExc_RuntimeError, "%s: %s", func, err_msg); } else { - PyErr_Format(PyExc_ValueError, "%s", status.err_msg); + PyErr_Format(PyExc_RuntimeError, "%s", err_msg); } - return NULL; } @@ -490,94 +643,6 @@ _PyWideStringList_AsList(const PyWideStringList *list) } -/* --- Py_SetStandardStreamEncoding() ----------------------------- */ - -/* Helper to allow an embedding application to override the normal - * mechanism that attempts to figure out an appropriate IO encoding - */ - -static char *_Py_StandardStreamEncoding = NULL; -static char *_Py_StandardStreamErrors = NULL; - -int -Py_SetStandardStreamEncoding(const char *encoding, const char *errors) -{ - if (Py_IsInitialized()) { - /* This is too late to have any effect */ - return -1; - } - - int res = 0; - - /* Py_SetStandardStreamEncoding() can be called before Py_Initialize(), - but Py_Initialize() can change the allocator. Use a known allocator - to be able to release the memory later. */ - PyMemAllocatorEx old_alloc; - _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc); - - /* Can't call PyErr_NoMemory() on errors, as Python hasn't been - * initialised yet. - * - * However, the raw memory allocators are initialised appropriately - * as C static variables, so _PyMem_RawStrdup is OK even though - * Py_Initialize hasn't been called yet. - */ - if (encoding) { - PyMem_RawFree(_Py_StandardStreamEncoding); - _Py_StandardStreamEncoding = _PyMem_RawStrdup(encoding); - if (!_Py_StandardStreamEncoding) { - res = -2; - goto done; - } - } - if (errors) { - PyMem_RawFree(_Py_StandardStreamErrors); - _Py_StandardStreamErrors = _PyMem_RawStrdup(errors); - if (!_Py_StandardStreamErrors) { - PyMem_RawFree(_Py_StandardStreamEncoding); - _Py_StandardStreamEncoding = NULL; - res = -3; - goto done; - } - } -#ifdef MS_WINDOWS - if (_Py_StandardStreamEncoding) { -_Py_COMP_DIAG_PUSH -_Py_COMP_DIAG_IGNORE_DEPR_DECLS - /* Overriding the stream encoding implies legacy streams */ - Py_LegacyWindowsStdioFlag = 1; -_Py_COMP_DIAG_POP - } -#endif - -done: - PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); - - return res; -} - - -void -_Py_ClearStandardStreamEncoding(void) -{ - /* Use the same allocator than Py_SetStandardStreamEncoding() */ - PyMemAllocatorEx old_alloc; - _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc); - - /* We won't need them anymore. */ - if (_Py_StandardStreamEncoding) { - PyMem_RawFree(_Py_StandardStreamEncoding); - _Py_StandardStreamEncoding = NULL; - } - if (_Py_StandardStreamErrors) { - PyMem_RawFree(_Py_StandardStreamErrors); - _Py_StandardStreamErrors = NULL; - } - - PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); -} - - /* --- Py_GetArgcArgv() ------------------------------------------- */ void @@ -602,7 +667,7 @@ _Py_SetArgcArgv(Py_ssize_t argc, wchar_t * const *argv) _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc); // XXX _PyRuntime.orig_argv only gets cleared by Py_Main(), - // so it it currently leaks for embedders. + // so it currently leaks for embedders. res = _PyWideStringList_Copy(&_PyRuntime.orig_argv, &argv_list); PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); @@ -679,8 +744,13 @@ config_check_consistency(const PyConfig *config) assert(config->_is_python_build >= 0); assert(config->safe_path >= 0); assert(config->int_max_str_digits >= 0); + // cpu_count can be -1 if the user doesn't override it. + assert(config->cpu_count != 0); // config->use_frozen_modules is initialized later // by _PyConfig_InitImportConfig(). +#ifdef Py_STATS + assert(config->_pystats >= 0); +#endif return 1; } #endif @@ -715,6 +785,7 @@ PyConfig_Clear(PyConfig *config) CLEAR(config->exec_prefix); CLEAR(config->base_exec_prefix); CLEAR(config->platlibdir); + CLEAR(config->sys_path_0); CLEAR(config->filesystem_encoding); CLEAR(config->filesystem_errors); @@ -724,6 +795,9 @@ PyConfig_Clear(PyConfig *config) CLEAR(config->run_module); CLEAR(config->run_filename); CLEAR(config->check_hash_pycs_mode); +#ifdef Py_DEBUG + CLEAR(config->run_presite); +#endif _PyWideStringList_Clear(&config->orig_argv); #undef CLEAR @@ -775,6 +849,10 @@ _PyConfig_InitCompatConfig(PyConfig *config) config->int_max_str_digits = -1; config->_is_python_build = 0; config->code_debug_ranges = 1; + config->cpu_count = -1; +#ifdef Py_GIL_DISABLED + config->enable_gil = _PyConfig_GIL_DEFAULT; +#endif } @@ -912,100 +990,48 @@ PyConfig_SetBytesString(PyConfig *config, wchar_t **config_str, PyStatus _PyConfig_Copy(PyConfig *config, const PyConfig *config2) { - PyStatus status; - PyConfig_Clear(config); -#define COPY_ATTR(ATTR) config->ATTR = config2->ATTR -#define COPY_WSTR_ATTR(ATTR) \ - do { \ - status = PyConfig_SetString(config, &config->ATTR, config2->ATTR); \ - if (_PyStatus_EXCEPTION(status)) { \ - return status; \ - } \ - } while (0) -#define COPY_WSTRLIST(LIST) \ - do { \ - if (_PyWideStringList_Copy(&config->LIST, &config2->LIST) < 0) { \ - return _PyStatus_NO_MEMORY(); \ - } \ - } while (0) - - COPY_ATTR(_config_init); - COPY_ATTR(isolated); - COPY_ATTR(use_environment); - COPY_ATTR(dev_mode); - COPY_ATTR(install_signal_handlers); - COPY_ATTR(use_hash_seed); - COPY_ATTR(hash_seed); - COPY_ATTR(_install_importlib); - COPY_ATTR(faulthandler); - COPY_ATTR(tracemalloc); - COPY_ATTR(perf_profiling); - COPY_ATTR(import_time); - COPY_ATTR(code_debug_ranges); - COPY_ATTR(show_ref_count); - COPY_ATTR(dump_refs); - COPY_ATTR(dump_refs_file); - COPY_ATTR(malloc_stats); - - COPY_WSTR_ATTR(pycache_prefix); - COPY_WSTR_ATTR(pythonpath_env); - COPY_WSTR_ATTR(home); - COPY_WSTR_ATTR(program_name); - - COPY_ATTR(parse_argv); - COPY_WSTRLIST(argv); - COPY_WSTRLIST(warnoptions); - COPY_WSTRLIST(xoptions); - COPY_WSTRLIST(module_search_paths); - COPY_ATTR(module_search_paths_set); - COPY_WSTR_ATTR(stdlib_dir); - - COPY_WSTR_ATTR(executable); - COPY_WSTR_ATTR(base_executable); - COPY_WSTR_ATTR(prefix); - COPY_WSTR_ATTR(base_prefix); - COPY_WSTR_ATTR(exec_prefix); - COPY_WSTR_ATTR(base_exec_prefix); - COPY_WSTR_ATTR(platlibdir); - - COPY_ATTR(site_import); - COPY_ATTR(bytes_warning); - COPY_ATTR(warn_default_encoding); - COPY_ATTR(inspect); - COPY_ATTR(interactive); - COPY_ATTR(optimization_level); - COPY_ATTR(parser_debug); - COPY_ATTR(write_bytecode); - COPY_ATTR(verbose); - COPY_ATTR(quiet); - COPY_ATTR(user_site_directory); - COPY_ATTR(configure_c_stdio); - COPY_ATTR(buffered_stdio); - COPY_WSTR_ATTR(filesystem_encoding); - COPY_WSTR_ATTR(filesystem_errors); - COPY_WSTR_ATTR(stdio_encoding); - COPY_WSTR_ATTR(stdio_errors); -#ifdef MS_WINDOWS - COPY_ATTR(legacy_windows_stdio); -#endif - COPY_ATTR(skip_source_first_line); - COPY_WSTR_ATTR(run_command); - COPY_WSTR_ATTR(run_module); - COPY_WSTR_ATTR(run_filename); - COPY_WSTR_ATTR(check_hash_pycs_mode); - COPY_ATTR(pathconfig_warnings); - COPY_ATTR(_init_main); - COPY_ATTR(use_frozen_modules); - COPY_ATTR(safe_path); - COPY_WSTRLIST(orig_argv); - COPY_ATTR(_is_python_build); - COPY_ATTR(int_max_str_digits); - -#undef COPY_ATTR -#undef COPY_WSTR_ATTR -#undef COPY_WSTRLIST + PyStatus status; + const PyConfigSpec *spec = PYCONFIG_SPEC; + for (; spec->name != NULL; spec++) { + char *member = (char *)config + spec->offset; + char *member2 = (char *)config2 + spec->offset; + switch (spec->type) { + case PyConfig_MEMBER_INT: + case PyConfig_MEMBER_UINT: + case PyConfig_MEMBER_BOOL: + { + *(int*)member = *(int*)member2; + break; + } + case PyConfig_MEMBER_ULONG: + { + *(unsigned long*)member = *(unsigned long*)member2; + break; + } + case PyConfig_MEMBER_WSTR: + case PyConfig_MEMBER_WSTR_OPT: + { + const wchar_t *str = *(const wchar_t**)member2; + status = PyConfig_SetString(config, (wchar_t**)member, str); + if (_PyStatus_EXCEPTION(status)) { + return status; + } + break; + } + case PyConfig_MEMBER_WSTR_LIST: + { + if (_PyWideStringList_Copy((PyWideStringList*)member, + (const PyWideStringList*)member2) < 0) { + return _PyStatus_NO_MEMORY(); + } + break; + } + default: + Py_UNREACHABLE(); + } + } return _PyStatus_OK(); } @@ -1018,122 +1044,64 @@ _PyConfig_AsDict(const PyConfig *config) return NULL; } -#define SET_ITEM(KEY, EXPR) \ - do { \ - PyObject *obj = (EXPR); \ - if (obj == NULL) { \ - goto fail; \ - } \ - int res = PyDict_SetItemString(dict, (KEY), obj); \ - Py_DECREF(obj); \ - if (res < 0) { \ - goto fail; \ - } \ - } while (0) -#define SET_ITEM_INT(ATTR) \ - SET_ITEM(#ATTR, PyLong_FromLong(config->ATTR)) -#define SET_ITEM_UINT(ATTR) \ - SET_ITEM(#ATTR, PyLong_FromUnsignedLong(config->ATTR)) -#define FROM_WSTRING(STR) \ - ((STR != NULL) ? \ - PyUnicode_FromWideChar(STR, -1) \ - : Py_NewRef(Py_None)) -#define SET_ITEM_WSTR(ATTR) \ - SET_ITEM(#ATTR, FROM_WSTRING(config->ATTR)) -#define SET_ITEM_WSTRLIST(LIST) \ - SET_ITEM(#LIST, _PyWideStringList_AsList(&config->LIST)) - - SET_ITEM_INT(_config_init); - SET_ITEM_INT(isolated); - SET_ITEM_INT(use_environment); - SET_ITEM_INT(dev_mode); - SET_ITEM_INT(install_signal_handlers); - SET_ITEM_INT(use_hash_seed); - SET_ITEM_UINT(hash_seed); - SET_ITEM_INT(faulthandler); - SET_ITEM_INT(tracemalloc); - SET_ITEM_INT(perf_profiling); - SET_ITEM_INT(import_time); - SET_ITEM_INT(code_debug_ranges); - SET_ITEM_INT(show_ref_count); - SET_ITEM_INT(dump_refs); - SET_ITEM_INT(malloc_stats); - SET_ITEM_WSTR(filesystem_encoding); - SET_ITEM_WSTR(filesystem_errors); - SET_ITEM_WSTR(pycache_prefix); - SET_ITEM_WSTR(program_name); - SET_ITEM_INT(parse_argv); - SET_ITEM_WSTRLIST(argv); - SET_ITEM_WSTRLIST(xoptions); - SET_ITEM_WSTRLIST(warnoptions); - SET_ITEM_WSTR(pythonpath_env); - SET_ITEM_WSTR(home); - SET_ITEM_INT(module_search_paths_set); - SET_ITEM_WSTRLIST(module_search_paths); - SET_ITEM_WSTR(stdlib_dir); - SET_ITEM_WSTR(executable); - SET_ITEM_WSTR(base_executable); - SET_ITEM_WSTR(prefix); - SET_ITEM_WSTR(base_prefix); - SET_ITEM_WSTR(exec_prefix); - SET_ITEM_WSTR(base_exec_prefix); - SET_ITEM_WSTR(platlibdir); - SET_ITEM_INT(site_import); - SET_ITEM_INT(bytes_warning); - SET_ITEM_INT(warn_default_encoding); - SET_ITEM_INT(inspect); - SET_ITEM_INT(interactive); - SET_ITEM_INT(optimization_level); - SET_ITEM_INT(parser_debug); - SET_ITEM_INT(write_bytecode); - SET_ITEM_INT(verbose); - SET_ITEM_INT(quiet); - SET_ITEM_INT(user_site_directory); - SET_ITEM_INT(configure_c_stdio); - SET_ITEM_INT(buffered_stdio); - SET_ITEM_WSTR(stdio_encoding); - SET_ITEM_WSTR(stdio_errors); -#ifdef MS_WINDOWS - SET_ITEM_INT(legacy_windows_stdio); -#endif - SET_ITEM_INT(skip_source_first_line); - SET_ITEM_WSTR(run_command); - SET_ITEM_WSTR(run_module); - SET_ITEM_WSTR(run_filename); - SET_ITEM_INT(_install_importlib); - SET_ITEM_WSTR(check_hash_pycs_mode); - SET_ITEM_INT(pathconfig_warnings); - SET_ITEM_INT(_init_main); - SET_ITEM_WSTRLIST(orig_argv); - SET_ITEM_INT(use_frozen_modules); - SET_ITEM_INT(safe_path); - SET_ITEM_INT(_is_python_build); - SET_ITEM_INT(int_max_str_digits); - - return dict; - -fail: - Py_DECREF(dict); - return NULL; - -#undef FROM_WSTRING -#undef SET_ITEM -#undef SET_ITEM_INT -#undef SET_ITEM_UINT -#undef SET_ITEM_WSTR -#undef SET_ITEM_WSTRLIST -} - + const PyConfigSpec *spec = PYCONFIG_SPEC; + for (; spec->name != NULL; spec++) { + char *member = (char *)config + spec->offset; + PyObject *obj; + switch (spec->type) { + case PyConfig_MEMBER_INT: + case PyConfig_MEMBER_UINT: + { + int value = *(int*)member; + obj = PyLong_FromLong(value); + break; + } + case PyConfig_MEMBER_BOOL: + { + int value = *(int*)member; + obj = PyBool_FromLong(value); + break; + } + case PyConfig_MEMBER_ULONG: + { + unsigned long value = *(unsigned long*)member; + obj = PyLong_FromUnsignedLong(value); + break; + } + case PyConfig_MEMBER_WSTR: + case PyConfig_MEMBER_WSTR_OPT: + { + const wchar_t *wstr = *(const wchar_t**)member; + if (wstr != NULL) { + obj = PyUnicode_FromWideChar(wstr, -1); + } + else { + obj = Py_NewRef(Py_None); + } + break; + } + case PyConfig_MEMBER_WSTR_LIST: + { + const PyWideStringList *list = (const PyWideStringList*)member; + obj = _PyWideStringList_AsList(list); + break; + } + default: + Py_UNREACHABLE(); + } -static PyObject* -config_dict_get(PyObject *dict, const char *name) -{ - PyObject *item = _PyDict_GetItemStringWithError(dict, name); - if (item == NULL && !PyErr_Occurred()) { - PyErr_Format(PyExc_ValueError, "missing config key: %s", name); - return NULL; + if (obj == NULL) { + Py_DECREF(dict); + return NULL; + } + int res = PyDict_SetItemString(dict, spec->name, obj); + Py_DECREF(obj); + if (res < 0) { + Py_DECREF(dict); + return NULL; + } } - return item; + return dict; } @@ -1144,13 +1112,6 @@ config_dict_invalid_value(const char *name) } -static void -config_dict_invalid_type(const char *name) -{ - PyErr_Format(PyExc_TypeError, "invalid config type: %s", name); -} - - static int config_dict_get_int(PyObject *dict, const char *name, int *result) { @@ -1158,7 +1119,8 @@ config_dict_get_int(PyObject *dict, const char *name, int *result) if (item == NULL) { return -1; } - int value = _PyLong_AsInt(item); + int value = PyLong_AsInt(item); + Py_DECREF(item); if (value == -1 && PyErr_Occurred()) { if (PyErr_ExceptionMatches(PyExc_TypeError)) { config_dict_invalid_type(name); @@ -1181,6 +1143,7 @@ config_dict_get_ulong(PyObject *dict, const char *name, unsigned long *result) return -1; } unsigned long value = PyLong_AsUnsignedLong(item); + Py_DECREF(item); if (value == (unsigned long)-1 && PyErr_Occurred()) { if (PyErr_ExceptionMatches(PyExc_TypeError)) { config_dict_invalid_type(name); @@ -1203,27 +1166,33 @@ config_dict_get_wstr(PyObject *dict, const char *name, PyConfig *config, if (item == NULL) { return -1; } + PyStatus status; if (item == Py_None) { status = PyConfig_SetString(config, result, NULL); } else if (!PyUnicode_Check(item)) { config_dict_invalid_type(name); - return -1; + goto error; } else { wchar_t *wstr = PyUnicode_AsWideCharString(item, NULL); if (wstr == NULL) { - return -1; + goto error; } status = PyConfig_SetString(config, result, wstr); PyMem_Free(wstr); } if (_PyStatus_EXCEPTION(status)) { PyErr_NoMemory(); - return -1; + goto error; } + Py_DECREF(item); return 0; + +error: + Py_DECREF(item); + return -1; } @@ -1237,6 +1206,7 @@ config_dict_get_wstrlist(PyObject *dict, const char *name, PyConfig *config, } if (!PyList_CheckExact(list)) { + Py_DECREF(list); config_dict_invalid_type(name); return -1; } @@ -1270,10 +1240,12 @@ config_dict_get_wstrlist(PyObject *dict, const char *name, PyConfig *config, goto error; } _PyWideStringList_Clear(&wstrlist); + Py_DECREF(list); return 0; error: _PyWideStringList_Clear(&wstrlist); + Py_DECREF(list); return -1; } @@ -1286,128 +1258,82 @@ _PyConfig_FromDict(PyConfig *config, PyObject *dict) return -1; } -#define CHECK_VALUE(NAME, TEST) \ - if (!(TEST)) { \ - config_dict_invalid_value(NAME); \ - return -1; \ + const PyConfigSpec *spec = PYCONFIG_SPEC; + for (; spec->name != NULL; spec++) { + char *member = (char *)config + spec->offset; + switch (spec->type) { + case PyConfig_MEMBER_INT: + case PyConfig_MEMBER_UINT: + case PyConfig_MEMBER_BOOL: + { + int value; + if (config_dict_get_int(dict, spec->name, &value) < 0) { + return -1; + } + if (spec->type == PyConfig_MEMBER_BOOL + || spec->type == PyConfig_MEMBER_UINT) + { + if (value < 0) { + config_dict_invalid_value(spec->name); + return -1; + } + } + *(int*)member = value; + break; + } + case PyConfig_MEMBER_ULONG: + { + if (config_dict_get_ulong(dict, spec->name, + (unsigned long*)member) < 0) { + return -1; + } + break; + } + case PyConfig_MEMBER_WSTR: + { + wchar_t **wstr = (wchar_t**)member; + if (config_dict_get_wstr(dict, spec->name, config, wstr) < 0) { + return -1; + } + if (*wstr == NULL) { + config_dict_invalid_value(spec->name); + return -1; + } + break; + } + case PyConfig_MEMBER_WSTR_OPT: + { + wchar_t **wstr = (wchar_t**)member; + if (config_dict_get_wstr(dict, spec->name, config, wstr) < 0) { + return -1; + } + break; + } + case PyConfig_MEMBER_WSTR_LIST: + { + if (config_dict_get_wstrlist(dict, spec->name, config, + (PyWideStringList*)member) < 0) { + return -1; + } + break; + } + default: + Py_UNREACHABLE(); + } } -#define GET_UINT(KEY) \ - do { \ - if (config_dict_get_int(dict, #KEY, &config->KEY) < 0) { \ - return -1; \ - } \ - CHECK_VALUE(#KEY, config->KEY >= 0); \ - } while (0) -#define GET_INT(KEY) \ - do { \ - if (config_dict_get_int(dict, #KEY, &config->KEY) < 0) { \ - return -1; \ - } \ - } while (0) -#define GET_WSTR(KEY) \ - do { \ - if (config_dict_get_wstr(dict, #KEY, config, &config->KEY) < 0) { \ - return -1; \ - } \ - CHECK_VALUE(#KEY, config->KEY != NULL); \ - } while (0) -#define GET_WSTR_OPT(KEY) \ - do { \ - if (config_dict_get_wstr(dict, #KEY, config, &config->KEY) < 0) { \ - return -1; \ - } \ - } while (0) -#define GET_WSTRLIST(KEY) \ - do { \ - if (config_dict_get_wstrlist(dict, #KEY, config, &config->KEY) < 0) { \ - return -1; \ - } \ - } while (0) - GET_UINT(_config_init); - CHECK_VALUE("_config_init", - config->_config_init == _PyConfig_INIT_COMPAT - || config->_config_init == _PyConfig_INIT_PYTHON - || config->_config_init == _PyConfig_INIT_ISOLATED); - GET_UINT(isolated); - GET_UINT(use_environment); - GET_UINT(dev_mode); - GET_UINT(install_signal_handlers); - GET_UINT(use_hash_seed); - if (config_dict_get_ulong(dict, "hash_seed", &config->hash_seed) < 0) { + if (!(config->_config_init == _PyConfig_INIT_COMPAT + || config->_config_init == _PyConfig_INIT_PYTHON + || config->_config_init == _PyConfig_INIT_ISOLATED)) + { + config_dict_invalid_value("_config_init"); + return -1; + } + + if (config->hash_seed > MAX_HASH_SEED) { + config_dict_invalid_value("hash_seed"); return -1; } - CHECK_VALUE("hash_seed", config->hash_seed <= MAX_HASH_SEED); - GET_UINT(faulthandler); - GET_UINT(tracemalloc); - GET_UINT(perf_profiling); - GET_UINT(import_time); - GET_UINT(code_debug_ranges); - GET_UINT(show_ref_count); - GET_UINT(dump_refs); - GET_UINT(malloc_stats); - GET_WSTR(filesystem_encoding); - GET_WSTR(filesystem_errors); - GET_WSTR_OPT(pycache_prefix); - GET_UINT(parse_argv); - GET_WSTRLIST(orig_argv); - GET_WSTRLIST(argv); - GET_WSTRLIST(xoptions); - GET_WSTRLIST(warnoptions); - GET_UINT(site_import); - GET_UINT(bytes_warning); - GET_UINT(warn_default_encoding); - GET_UINT(inspect); - GET_UINT(interactive); - GET_UINT(optimization_level); - GET_UINT(parser_debug); - GET_UINT(write_bytecode); - GET_UINT(verbose); - GET_UINT(quiet); - GET_UINT(user_site_directory); - GET_UINT(configure_c_stdio); - GET_UINT(buffered_stdio); - GET_WSTR(stdio_encoding); - GET_WSTR(stdio_errors); -#ifdef MS_WINDOWS - GET_UINT(legacy_windows_stdio); -#endif - GET_WSTR(check_hash_pycs_mode); - - GET_UINT(pathconfig_warnings); - GET_WSTR(program_name); - GET_WSTR_OPT(pythonpath_env); - GET_WSTR_OPT(home); - GET_WSTR(platlibdir); - - // Path configuration output - GET_UINT(module_search_paths_set); - GET_WSTRLIST(module_search_paths); - GET_WSTR_OPT(stdlib_dir); - GET_WSTR_OPT(executable); - GET_WSTR_OPT(base_executable); - GET_WSTR_OPT(prefix); - GET_WSTR_OPT(base_prefix); - GET_WSTR_OPT(exec_prefix); - GET_WSTR_OPT(base_exec_prefix); - - GET_UINT(skip_source_first_line); - GET_WSTR_OPT(run_command); - GET_WSTR_OPT(run_module); - GET_WSTR_OPT(run_filename); - - GET_UINT(_install_importlib); - GET_UINT(_init_main); - GET_UINT(use_frozen_modules); - GET_UINT(safe_path); - GET_UINT(_is_python_build); - GET_INT(int_max_str_digits); - -#undef CHECK_VALUE -#undef GET_UINT -#undef GET_INT -#undef GET_WSTR -#undef GET_WSTR_OPT return 0; } @@ -1617,6 +1543,28 @@ config_wstr_to_int(const wchar_t *wstr, int *result) return 0; } +static PyStatus +config_read_gil(PyConfig *config, size_t len, wchar_t first_char) +{ + if (len == 1 && first_char == L'0') { +#ifdef Py_GIL_DISABLED + config->enable_gil = _PyConfig_GIL_DISABLE; +#else + return _PyStatus_ERR("Disabling the GIL is not supported by this build"); +#endif + } + else if (len == 1 && first_char == L'1') { +#ifdef Py_GIL_DISABLED + config->enable_gil = _PyConfig_GIL_ENABLE; +#else + return _PyStatus_OK(); +#endif + } + else { + return _PyStatus_ERR("PYTHON_GIL / -X gil must be \"0\" or \"1\""); + } + return _PyStatus_OK(); +} static PyStatus config_read_env_vars(PyConfig *config) @@ -1695,7 +1643,55 @@ config_read_env_vars(PyConfig *config) config->safe_path = 1; } + const char *gil = config_get_env(config, "PYTHON_GIL"); + if (gil != NULL) { + size_t len = strlen(gil); + status = config_read_gil(config, len, gil[0]); + if (_PyStatus_EXCEPTION(status)) { + return status; + } + } + + return _PyStatus_OK(); +} + +static PyStatus +config_init_cpu_count(PyConfig *config) +{ + const char *env = config_get_env(config, "PYTHON_CPU_COUNT"); + if (env) { + int cpu_count = -1; + if (strcmp(env, "default") == 0) { + cpu_count = -1; + } + else if (_Py_str_to_int(env, &cpu_count) < 0 || cpu_count < 1) { + goto error; + } + config->cpu_count = cpu_count; + } + + const wchar_t *xoption = config_get_xoption(config, L"cpu_count"); + if (xoption) { + int cpu_count = -1; + const wchar_t *sep = wcschr(xoption, L'='); + if (sep) { + if (wcscmp(sep + 1, L"default") == 0) { + cpu_count = -1; + } + else if (config_wstr_to_int(sep + 1, &cpu_count) < 0 || cpu_count < 1) { + goto error; + } + } + else { + goto error; + } + config->cpu_count = cpu_count; + } return _PyStatus_OK(); + +error: + return _PyStatus_ERR("-X cpu_count=n option: n is missing or an invalid number, " + "n must be greater than 0"); } static PyStatus @@ -1715,6 +1711,20 @@ config_init_perf_profiling(PyConfig *config) if (xoption) { config->perf_profiling = 1; } + env = config_get_env(config, "PYTHON_PERF_JIT_SUPPORT"); + if (env) { + if (_Py_str_to_int(env, &active) != 0) { + active = 0; + } + if (active) { + config->perf_profiling = 2; + } + } + xoption = config_get_xoption(config, L"perf_jit"); + if (xoption) { + config->perf_profiling = 2; + } + return _PyStatus_OK(); } @@ -1838,6 +1848,36 @@ config_init_pycache_prefix(PyConfig *config) } +#ifdef Py_DEBUG +static PyStatus +config_init_run_presite(PyConfig *config) +{ + assert(config->run_presite == NULL); + + const wchar_t *xoption = config_get_xoption(config, L"presite"); + if (xoption) { + const wchar_t *sep = wcschr(xoption, L'='); + if (sep && wcslen(sep) > 1) { + config->run_presite = _PyMem_RawWcsdup(sep + 1); + if (config->run_presite == NULL) { + return _PyStatus_NO_MEMORY(); + } + } + else { + // PYTHON_PRESITE env var ignored + // if "-X presite=" option is used + config->run_presite = NULL; + } + return _PyStatus_OK(); + } + + return CONFIG_GET_ENV_DUP(config, &config->run_presite, + L"PYTHON_PRESITE", + "PYTHON_PRESITE"); +} +#endif + + static PyStatus config_read_complex_options(PyConfig *config) { @@ -1880,12 +1920,29 @@ config_read_complex_options(PyConfig *config) } } + if (config->cpu_count < 0) { + status = config_init_cpu_count(config); + if (_PyStatus_EXCEPTION(status)) { + return status; + } + } + if (config->pycache_prefix == NULL) { status = config_init_pycache_prefix(config); if (_PyStatus_EXCEPTION(status)) { return status; } } + +#ifdef Py_DEBUG + if (config->run_presite == NULL) { + status = config_init_run_presite(config); + if (_PyStatus_EXCEPTION(status)) { + return status; + } + } +#endif + return _PyStatus_OK(); } @@ -1949,26 +2006,6 @@ config_init_stdio_encoding(PyConfig *config, { PyStatus status; - /* If Py_SetStandardStreamEncoding() has been called, use its - arguments if they are not NULL. */ - if (config->stdio_encoding == NULL && _Py_StandardStreamEncoding != NULL) { - status = CONFIG_SET_BYTES_STR(config, &config->stdio_encoding, - _Py_StandardStreamEncoding, - "_Py_StandardStreamEncoding"); - if (_PyStatus_EXCEPTION(status)) { - return status; - } - } - - if (config->stdio_errors == NULL && _Py_StandardStreamErrors != NULL) { - status = CONFIG_SET_BYTES_STR(config, &config->stdio_errors, - _Py_StandardStreamErrors, - "_Py_StandardStreamErrors"); - if (_PyStatus_EXCEPTION(status)) { - return status; - } - } - // Exit if encoding and errors are defined if (config->stdio_encoding != NULL && config->stdio_errors != NULL) { return _PyStatus_OK(); @@ -2123,6 +2160,19 @@ config_init_import(PyConfig *config, int compute_path_config) return status; } + const char *env = config_get_env(config, "PYTHON_FROZEN_MODULES"); + if (env == NULL) { + } + else if (strcmp(env, "on") == 0) { + config->use_frozen_modules = 1; + } + else if (strcmp(env, "off") == 0) { + config->use_frozen_modules = 0; + } else { + return PyStatus_Error("bad value for PYTHON_FROZEN_MODULES " + "(expected \"on\" or \"off\")"); + } + /* -X frozen_modules=[on|off] */ const wchar_t *value = config_get_xoption_value(config, L"frozen_modules"); if (value == NULL) { @@ -2171,9 +2221,24 @@ config_read(PyConfig *config, int compute_path_config) config->show_ref_count = 1; } + const wchar_t *x_gil = config_get_xoption_value(config, L"gil"); + if (x_gil != NULL) { + size_t len = wcslen(x_gil); + status = config_read_gil(config, len, x_gil[0]); + if (_PyStatus_EXCEPTION(status)) { + return status; + } + } + #ifdef Py_STATS if (config_get_xoption(config, L"pystats")) { - _py_stats = &_py_stats_struct; + config->_pystats = 1; + } + else if (config_get_env(config, "PYTHONSTATS")) { + config->_pystats = 1; + } + if (config->_pystats < 0) { + config->_pystats = 0; } #endif @@ -2311,6 +2376,13 @@ _PyConfig_Write(const PyConfig *config, _PyRuntimeState *runtime) { return _PyStatus_NO_MEMORY(); } + +#ifdef Py_STATS + if (config->_pystats) { + _Py_StatsOn(); + } +#endif + return _PyStatus_OK(); } @@ -3141,6 +3213,7 @@ _Py_DumpPathConfig(PyThreadState *tstate) PySys_WriteStderr(" import site = %i\n", config->site_import); PySys_WriteStderr(" is in build tree = %i\n", config->_is_python_build); DUMP_CONFIG("stdlib dir", stdlib_dir); + DUMP_CONFIG("sys.path[0]", sys_path_0); #undef DUMP_CONFIG #define DUMP_SYS(NAME) \ diff --git a/contrib/tools/python3/Python/instruction_sequence.c b/contrib/tools/python3/Python/instruction_sequence.c new file mode 100644 index 00000000000..e713ebb9b87 --- /dev/null +++ b/contrib/tools/python3/Python/instruction_sequence.c @@ -0,0 +1,453 @@ +/* + * This file implements a data structure representing a sequence of + * instructions, which is used by different parts of the compilation + * pipeline. + */ + + +#include "Python.h" + +#include "pycore_compile.h" // _PyCompile_EnsureArrayLargeEnough +#include "pycore_opcode_utils.h" +#include "pycore_opcode_metadata.h" // OPCODE_HAS_ARG, etc + +typedef _PyInstruction instruction; +typedef _PyInstructionSequence instr_sequence; +typedef _Py_SourceLocation location; + +#define INITIAL_INSTR_SEQUENCE_SIZE 100 +#define INITIAL_INSTR_SEQUENCE_LABELS_MAP_SIZE 10 + +#include "clinic/instruction_sequence.c.h" + +#include + +#undef SUCCESS +#undef ERROR +#define SUCCESS 0 +#define ERROR -1 + +#define RETURN_IF_ERROR(X) \ + if ((X) == -1) { \ + return ERROR; \ + } + +static int +instr_sequence_next_inst(instr_sequence *seq) { + assert(seq->s_instrs != NULL || seq->s_used == 0); + + RETURN_IF_ERROR( + _PyCompile_EnsureArrayLargeEnough(seq->s_used + 1, + (void**)&seq->s_instrs, + &seq->s_allocated, + INITIAL_INSTR_SEQUENCE_SIZE, + sizeof(instruction))); + assert(seq->s_allocated >= 0); + assert(seq->s_used < seq->s_allocated); + return seq->s_used++; +} + +_PyJumpTargetLabel +_PyInstructionSequence_NewLabel(instr_sequence *seq) +{ + _PyJumpTargetLabel lbl = {++seq->s_next_free_label}; + return lbl; +} + +int +_PyInstructionSequence_UseLabel(instr_sequence *seq, int lbl) +{ + int old_size = seq->s_labelmap_size; + RETURN_IF_ERROR( + _PyCompile_EnsureArrayLargeEnough(lbl, + (void**)&seq->s_labelmap, + &seq->s_labelmap_size, + INITIAL_INSTR_SEQUENCE_LABELS_MAP_SIZE, + sizeof(int))); + + for(int i = old_size; i < seq->s_labelmap_size; i++) { + seq->s_labelmap[i] = -111; /* something weird, for debugging */ + } + seq->s_labelmap[lbl] = seq->s_used; /* label refers to the next instruction */ + return SUCCESS; +} + +int +_PyInstructionSequence_ApplyLabelMap(instr_sequence *instrs) +{ + if (instrs->s_labelmap == NULL) { + /* Already applied - nothing to do */ + return SUCCESS; + } + /* Replace labels by offsets in the code */ + for (int i=0; i < instrs->s_used; i++) { + instruction *instr = &instrs->s_instrs[i]; + if (HAS_TARGET(instr->i_opcode)) { + assert(instr->i_oparg < instrs->s_labelmap_size); + instr->i_oparg = instrs->s_labelmap[instr->i_oparg]; + } + _PyExceptHandlerInfo *hi = &instr->i_except_handler_info; + if (hi->h_label >= 0) { + assert(hi->h_label < instrs->s_labelmap_size); + hi->h_label = instrs->s_labelmap[hi->h_label]; + } + } + /* Clear label map so it's never used again */ + PyMem_Free(instrs->s_labelmap); + instrs->s_labelmap = NULL; + instrs->s_labelmap_size = 0; + return SUCCESS; +} + +#define MAX_OPCODE 511 + +int +_PyInstructionSequence_Addop(instr_sequence *seq, int opcode, int oparg, + location loc) +{ + assert(0 <= opcode && opcode <= MAX_OPCODE); + assert(IS_WITHIN_OPCODE_RANGE(opcode)); + assert(OPCODE_HAS_ARG(opcode) || HAS_TARGET(opcode) || oparg == 0); + assert(0 <= oparg && oparg < (1 << 30)); + + int idx = instr_sequence_next_inst(seq); + RETURN_IF_ERROR(idx); + instruction *ci = &seq->s_instrs[idx]; + ci->i_opcode = opcode; + ci->i_oparg = oparg; + ci->i_loc = loc; + return SUCCESS; +} + +int +_PyInstructionSequence_InsertInstruction(instr_sequence *seq, int pos, + int opcode, int oparg, location loc) +{ + assert(pos >= 0 && pos <= seq->s_used); + int last_idx = instr_sequence_next_inst(seq); + RETURN_IF_ERROR(last_idx); + for (int i=last_idx-1; i >= pos; i--) { + seq->s_instrs[i+1] = seq->s_instrs[i]; + } + instruction *ci = &seq->s_instrs[pos]; + ci->i_opcode = opcode; + ci->i_oparg = oparg; + ci->i_loc = loc; + + /* fix the labels map */ + for(int lbl=0; lbl < seq->s_labelmap_size; lbl++) { + if (seq->s_labelmap[lbl] >= pos) { + seq->s_labelmap[lbl]++; + } + } + return SUCCESS; +} + +int +_PyInstructionSequence_AddNested(instr_sequence *seq, instr_sequence *nested) +{ + if (seq->s_nested == NULL) { + seq->s_nested = PyList_New(0); + if (seq->s_nested == NULL) { + return ERROR; + } + } + if (PyList_Append(seq->s_nested, (PyObject*)nested) < 0) { + return ERROR; + } + return SUCCESS; +} + +void +PyInstructionSequence_Fini(instr_sequence *seq) { + Py_XDECREF(seq->s_nested); + + PyMem_Free(seq->s_labelmap); + seq->s_labelmap = NULL; + + PyMem_Free(seq->s_instrs); + seq->s_instrs = NULL; +} + +/*[clinic input] +class InstructionSequenceType "_PyInstructionSequence *" "&_PyInstructionSequence_Type" +[clinic start generated code]*/ +/*[clinic end generated code: output=da39a3ee5e6b4b0d input=589963e07480390f]*/ + +static _PyInstructionSequence* +inst_seq_create(void) +{ + _PyInstructionSequence *seq; + seq = PyObject_GC_New(_PyInstructionSequence, &_PyInstructionSequence_Type); + if (seq == NULL) { + return NULL; + } + seq->s_instrs = NULL; + seq->s_allocated = 0; + seq->s_used = 0; + seq->s_next_free_label = 0; + seq->s_labelmap = NULL; + seq->s_labelmap_size = 0; + seq->s_nested = NULL; + + PyObject_GC_Track(seq); + return seq; +} + +PyObject* +_PyInstructionSequence_New(void) +{ + _PyInstructionSequence *seq = inst_seq_create(); + if (seq == NULL) { + return NULL; + } + return (PyObject*)seq; +} + +/*[clinic input] +@classmethod +InstructionSequenceType.__new__ as inst_seq_new + +Create a new InstructionSequence object. +[clinic start generated code]*/ + +static PyObject * +inst_seq_new_impl(PyTypeObject *type) +/*[clinic end generated code: output=98881de92c8876f6 input=b393150146849c74]*/ +{ + return (PyObject*)inst_seq_create(); +} + +/*[clinic input] +InstructionSequenceType.use_label + + label: int + +Place label at current location. +[clinic start generated code]*/ + +static PyObject * +InstructionSequenceType_use_label_impl(_PyInstructionSequence *self, + int label) +/*[clinic end generated code: output=4c06bbacb2854755 input=da55f49bb91841f3]*/ + +{ + if (_PyInstructionSequence_UseLabel(self, label) < 0) { + return NULL; + } + Py_RETURN_NONE; +} + +/*[clinic input] +InstructionSequenceType.addop + + opcode: int + oparg: int + lineno: int + col_offset: int + end_lineno: int + end_col_offset: int + +Append an instruction. +[clinic start generated code]*/ + +static PyObject * +InstructionSequenceType_addop_impl(_PyInstructionSequence *self, int opcode, + int oparg, int lineno, int col_offset, + int end_lineno, int end_col_offset) +/*[clinic end generated code: output=af0cc22c048dfbf3 input=012762ac88198713]*/ +{ + _Py_SourceLocation loc = {lineno, col_offset, end_lineno, end_col_offset}; + if (_PyInstructionSequence_Addop(self, opcode, oparg, loc) < 0) { + return NULL; + } + Py_RETURN_NONE; +} + +/*[clinic input] +InstructionSequenceType.new_label -> int + +Return a new label. +[clinic start generated code]*/ + +static int +InstructionSequenceType_new_label_impl(_PyInstructionSequence *self) +/*[clinic end generated code: output=dcb0589e4f5bf4bd input=c66040b9897bc327]*/ +{ + _PyJumpTargetLabel lbl = _PyInstructionSequence_NewLabel(self); + return lbl.id; +} + +/*[clinic input] +InstructionSequenceType.add_nested + + nested: object + +Add a nested sequence. +[clinic start generated code]*/ + +static PyObject * +InstructionSequenceType_add_nested_impl(_PyInstructionSequence *self, + PyObject *nested) +/*[clinic end generated code: output=14540fad459f7971 input=f2c482568b3b3c0f]*/ +{ + if (!_PyInstructionSequence_Check(nested)) { + PyErr_Format(PyExc_TypeError, + "expected an instruction sequence, not %T", + Py_TYPE(nested)); + return NULL; + } + if (_PyInstructionSequence_AddNested(self, (_PyInstructionSequence*)nested) < 0) { + return NULL; + } + Py_RETURN_NONE; +} + +/*[clinic input] +InstructionSequenceType.get_nested + +Add a nested sequence. +[clinic start generated code]*/ + +static PyObject * +InstructionSequenceType_get_nested_impl(_PyInstructionSequence *self) +/*[clinic end generated code: output=f415112c292630cb input=e429e474c57b95b4]*/ +{ + if (self->s_nested == NULL) { + return PyList_New(0); + } + return Py_NewRef(self->s_nested); +} + +/*[clinic input] +InstructionSequenceType.get_instructions + +Return the instructions as a list of tuples or labels. +[clinic start generated code]*/ + +static PyObject * +InstructionSequenceType_get_instructions_impl(_PyInstructionSequence *self) +/*[clinic end generated code: output=23f4f3f894c301b3 input=fbadb5dadb611291]*/ +{ + if (_PyInstructionSequence_ApplyLabelMap(self) < 0) { + return NULL; + } + PyObject *instructions = PyList_New(0); + if (instructions == NULL) { + return NULL; + } + for (int i = 0; i < self->s_used; i++) { + instruction *instr = &self->s_instrs[i]; + location loc = instr->i_loc; + PyObject *inst_tuple; + + if (OPCODE_HAS_ARG(instr->i_opcode)) { + inst_tuple = Py_BuildValue( + "(iiiiii)", instr->i_opcode, instr->i_oparg, + loc.lineno, loc.end_lineno, + loc.col_offset, loc.end_col_offset); + } + else { + inst_tuple = Py_BuildValue( + "(iOiiii)", instr->i_opcode, Py_None, + loc.lineno, loc.end_lineno, + loc.col_offset, loc.end_col_offset); + } + if (inst_tuple == NULL) { + goto error; + } + + int res = PyList_Append(instructions, inst_tuple); + Py_DECREF(inst_tuple); + if (res != 0) { + goto error; + } + } + return instructions; +error: + Py_XDECREF(instructions); + return NULL; +} + +static PyMethodDef inst_seq_methods[] = { + INSTRUCTIONSEQUENCETYPE_ADDOP_METHODDEF + INSTRUCTIONSEQUENCETYPE_NEW_LABEL_METHODDEF + INSTRUCTIONSEQUENCETYPE_USE_LABEL_METHODDEF + INSTRUCTIONSEQUENCETYPE_ADD_NESTED_METHODDEF + INSTRUCTIONSEQUENCETYPE_GET_NESTED_METHODDEF + INSTRUCTIONSEQUENCETYPE_GET_INSTRUCTIONS_METHODDEF + {NULL, NULL, 0, NULL}, +}; + +static PyMemberDef inst_seq_memberlist[] = { + {NULL} /* Sentinel */ +}; + +static PyGetSetDef inst_seq_getsetters[] = { + {NULL} /* Sentinel */ +}; + +static void +inst_seq_dealloc(_PyInstructionSequence *seq) +{ + PyObject_GC_UnTrack(seq); + Py_TRASHCAN_BEGIN(seq, inst_seq_dealloc) + PyInstructionSequence_Fini(seq); + PyObject_GC_Del(seq); + Py_TRASHCAN_END +} + +static int +inst_seq_traverse(_PyInstructionSequence *seq, visitproc visit, void *arg) +{ + Py_VISIT(seq->s_nested); + return 0; +} + +static int +inst_seq_clear(_PyInstructionSequence *seq) +{ + Py_CLEAR(seq->s_nested); + return 0; +} + +PyTypeObject _PyInstructionSequence_Type = { + PyVarObject_HEAD_INIT(&PyType_Type, 0) + "InstructionSequence", + sizeof(_PyInstructionSequence), + 0, + (destructor)inst_seq_dealloc, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + PyObject_GenericGetAttr, /* tp_getattro */ + 0, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */ + inst_seq_new__doc__, /* tp_doc */ + (traverseproc)inst_seq_traverse, /* tp_traverse */ + (inquiry)inst_seq_clear, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + inst_seq_methods, /* tp_methods */ + inst_seq_memberlist, /* tp_members */ + inst_seq_getsetters, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + inst_seq_new, /* tp_new */ +}; diff --git a/contrib/tools/python3/Python/instrumentation.c b/contrib/tools/python3/Python/instrumentation.c index 2f94f103e43..21d9692b586 100644 --- a/contrib/tools/python3/Python/instrumentation.c +++ b/contrib/tools/python3/Python/instrumentation.c @@ -1,32 +1,59 @@ +#include "Python.h" +#include "opcode_ids.h" - - -#include "Python.h" +#include "pycore_bitutils.h" // _Py_popcount32 #include "pycore_call.h" +#include "pycore_ceval.h" // _PY_EVAL_EVENTS_BITS +#include "pycore_code.h" // _PyCode_Clear_Executors() +#include "pycore_critical_section.h" #include "pycore_frame.h" #include "pycore_interp.h" #include "pycore_long.h" +#include "pycore_modsupport.h" // _PyModule_CreateInitialized() #include "pycore_namespace.h" #include "pycore_object.h" -#include "pycore_opcode.h" +#include "pycore_opcode_metadata.h" // IS_VALID_OPCODE, _PyOpcode_Caches +#include "pycore_pyatomic_ft_wrappers.h" // FT_ATOMIC_STORE_UINTPTR_RELEASE #include "pycore_pyerrors.h" -#include "pycore_pystate.h" +#include "pycore_pystate.h" // _PyInterpreterState_GET() /* Uncomment this to dump debugging output when assertions fail */ // #define INSTRUMENT_DEBUG 1 -PyObject _PyInstrumentation_DISABLE = -{ - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBaseObject_Type -}; +#if defined(Py_DEBUG) && defined(Py_GIL_DISABLED) -PyObject _PyInstrumentation_MISSING = -{ - .ob_refcnt = _Py_IMMORTAL_REFCNT, - .ob_type = &PyBaseObject_Type -}; +#define ASSERT_WORLD_STOPPED_OR_LOCKED(obj) \ + if (!_PyInterpreterState_GET()->stoptheworld.world_stopped) { \ + _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(obj); \ + } +#define ASSERT_WORLD_STOPPED() assert(_PyInterpreterState_GET()->stoptheworld.world_stopped); + +#else + +#define ASSERT_WORLD_STOPPED_OR_LOCKED(obj) +#define ASSERT_WORLD_STOPPED() + +#endif + +#ifdef Py_GIL_DISABLED + +#define LOCK_CODE(code) \ + assert(!_PyInterpreterState_GET()->stoptheworld.world_stopped); \ + Py_BEGIN_CRITICAL_SECTION(code) + +#define UNLOCK_CODE() Py_END_CRITICAL_SECTION() + +#else + +#define LOCK_CODE(code) +#define UNLOCK_CODE() + +#endif + +PyObject _PyInstrumentation_DISABLE = _PyObject_HEAD_INIT(&PyBaseObject_Type); + +PyObject _PyInstrumentation_MISSING = _PyObject_HEAD_INIT(&PyBaseObject_Type); static const int8_t EVENT_FOR_OPCODE[256] = { [RETURN_CONST] = PY_MONITORING_EVENT_PY_RETURN, @@ -35,6 +62,8 @@ static const int8_t EVENT_FOR_OPCODE[256] = { [INSTRUMENTED_RETURN_VALUE] = PY_MONITORING_EVENT_PY_RETURN, [CALL] = PY_MONITORING_EVENT_CALL, [INSTRUMENTED_CALL] = PY_MONITORING_EVENT_CALL, + [CALL_KW] = PY_MONITORING_EVENT_CALL, + [INSTRUMENTED_CALL_KW] = PY_MONITORING_EVENT_CALL, [CALL_FUNCTION_EX] = PY_MONITORING_EVENT_CALL, [INSTRUMENTED_CALL_FUNCTION_EX] = PY_MONITORING_EVENT_CALL, [LOAD_SUPER_ATTR] = PY_MONITORING_EVENT_CALL, @@ -67,6 +96,7 @@ static const uint8_t DE_INSTRUMENT[256] = { [INSTRUMENTED_RETURN_VALUE] = RETURN_VALUE, [INSTRUMENTED_RETURN_CONST] = RETURN_CONST, [INSTRUMENTED_CALL] = CALL, + [INSTRUMENTED_CALL_KW] = CALL_KW, [INSTRUMENTED_CALL_FUNCTION_EX] = CALL_FUNCTION_EX, [INSTRUMENTED_YIELD_VALUE] = YIELD_VALUE, [INSTRUMENTED_JUMP_FORWARD] = JUMP_FORWARD, @@ -88,6 +118,8 @@ static const uint8_t INSTRUMENTED_OPCODES[256] = { [INSTRUMENTED_RETURN_VALUE] = INSTRUMENTED_RETURN_VALUE, [CALL] = INSTRUMENTED_CALL, [INSTRUMENTED_CALL] = INSTRUMENTED_CALL, + [CALL_KW] = INSTRUMENTED_CALL_KW, + [INSTRUMENTED_CALL_KW] = INSTRUMENTED_CALL_KW, [CALL_FUNCTION_EX] = INSTRUMENTED_CALL_FUNCTION_EX, [INSTRUMENTED_CALL_FUNCTION_EX] = INSTRUMENTED_CALL_FUNCTION_EX, [YIELD_VALUE] = INSTRUMENTED_YIELD_VALUE, @@ -123,7 +155,7 @@ static inline bool opcode_has_event(int opcode) { return ( - opcode < INSTRUMENTED_LINE && + opcode != INSTRUMENTED_LINE && INSTRUMENTED_OPCODES[opcode] > 0 ); } @@ -232,57 +264,54 @@ get_events(_Py_GlobalMonitors *m, int tool_id) return result; } -/* Line delta. - * 8 bit value. - * if line_delta == -128: - * line = None # represented as -1 - * elif line_delta == -127: - * line = PyCode_Addr2Line(code, offset * sizeof(_Py_CODEUNIT)); +/* Module code can have line 0, even though modules start at line 1, + * so -1 is a legal delta. */ +#define NO_LINE (-2) + +/* Returns the line delta. Defined as: + * if line is None: + * line_delta = NO_LINE * else: - * line = first_line + (offset >> OFFSET_SHIFT) + line_delta; + * line_delta = line - first_line */ - -#define NO_LINE -128 -#define COMPUTED_LINE -127 - -#define OFFSET_SHIFT 4 - -static int8_t -compute_line_delta(PyCodeObject *code, int offset, int line) +static int +compute_line_delta(PyCodeObject *code, int line) { if (line < 0) { + assert(line == -1); return NO_LINE; } - int delta = line - code->co_firstlineno - (offset >> OFFSET_SHIFT); - if (delta <= INT8_MAX && delta > COMPUTED_LINE) { - return delta; - } - return COMPUTED_LINE; + int delta = line - code->co_firstlineno; + assert(delta > NO_LINE); + return delta; } static int -compute_line(PyCodeObject *code, int offset, int8_t line_delta) +compute_line(PyCodeObject *code, int line_delta) { - if (line_delta > COMPUTED_LINE) { - return code->co_firstlineno + (offset >> OFFSET_SHIFT) + line_delta; - } if (line_delta == NO_LINE) { - return -1; } - assert(line_delta == COMPUTED_LINE); - /* Look it up */ - return PyCode_Addr2Line(code, offset * sizeof(_Py_CODEUNIT)); + assert(line_delta > NO_LINE); + return code->co_firstlineno + line_delta; } -static int -instruction_length(PyCodeObject *code, int offset) +static inline uint8_t +get_original_opcode(_PyCoLineInstrumentationData *line_data, int index) { + return line_data->data[index*line_data->bytes_per_entry]; +} + +int +_PyInstruction_GetLength(PyCodeObject *code, int offset) +{ + ASSERT_WORLD_STOPPED_OR_LOCKED(code); + int opcode = _PyCode_CODE(code)[offset].op.code; assert(opcode != 0); assert(opcode != RESERVED); if (opcode == INSTRUMENTED_LINE) { - opcode = code->_co_monitoring->lines[offset].original_opcode; + opcode = get_original_opcode(code->_co_monitoring->lines, offset); } if (opcode == INSTRUMENTED_INSTRUCTION) { opcode = code->_co_monitoring->per_instruction_opcodes[offset]; @@ -296,10 +325,62 @@ instruction_length(PyCodeObject *code, int offset) } assert(opcode != 0); assert(!is_instrumented(opcode)); + if (opcode == ENTER_EXECUTOR) { + int exec_index = _PyCode_CODE(code)[offset].op.arg; + _PyExecutorObject *exec = code->co_executors->executors[exec_index]; + opcode = _PyOpcode_Deopt[exec->vm_data.opcode]; + + } + assert(opcode != ENTER_EXECUTOR); assert(opcode == _PyOpcode_Deopt[opcode]); return 1 + _PyOpcode_Caches[opcode]; } +static inline uint8_t * +get_original_opcode_ptr(_PyCoLineInstrumentationData *line_data, int index) +{ + return &line_data->data[index*line_data->bytes_per_entry]; +} + +static inline void +set_original_opcode(_PyCoLineInstrumentationData *line_data, int index, uint8_t opcode) +{ + line_data->data[index*line_data->bytes_per_entry] = opcode; +} + +static inline int +get_line_delta(_PyCoLineInstrumentationData *line_data, int index) +{ + uint8_t *ptr = &line_data->data[index*line_data->bytes_per_entry+1]; + assert(line_data->bytes_per_entry >= 2); + uint32_t value = *ptr; + for (int idx = 2; idx < line_data->bytes_per_entry; idx++) { + ptr++; + int shift = (idx-1)*8; + value |= ((uint32_t)(*ptr)) << shift; + } + assert(value < INT_MAX); + /* NO_LINE is stored as zero. */ + return ((int)value) + NO_LINE; +} + +static inline void +set_line_delta(_PyCoLineInstrumentationData *line_data, int index, int line_delta) +{ + /* Store line_delta + 2 as we need -2 to represent no line number */ + assert(line_delta >= NO_LINE); + uint32_t adjusted = line_delta - NO_LINE; + uint8_t *ptr = &line_data->data[index*line_data->bytes_per_entry+1]; + assert(adjusted < (1ULL << ((line_data->bytes_per_entry-1)*8))); + assert(line_data->bytes_per_entry >= 2); + *ptr = adjusted & 0xff; + for (int idx = 2; idx < line_data->bytes_per_entry; idx++) { + ptr++; + adjusted >>= 8; + *ptr = adjusted & 0xff; + } +} + #ifdef INSTRUMENT_DEBUG static void @@ -319,11 +400,15 @@ dump_instrumentation_data_lines(PyCodeObject *code, _PyCoLineInstrumentationData if (lines == NULL) { fprintf(out, ", lines = NULL"); } - else if (lines[i].original_opcode == 0) { - fprintf(out, ", lines = {original_opcode = No LINE (0), line_delta = %d)", lines[i].line_delta); - } else { - fprintf(out, ", lines = {original_opcode = %s, line_delta = %d)", _PyOpcode_OpName[lines[i].original_opcode], lines[i].line_delta); + int opcode = get_original_opcode(lines, i); + int line_delta = get_line_delta(lines, i); + if (opcode == 0) { + fprintf(out, ", lines = {original_opcode = No LINE (0), line_delta = %d)", line_delta); + } + else { + fprintf(out, ", lines = {original_opcode = %s, line_delta = %d)", _PyOpcode_OpName[opcode], line_delta); + } } } @@ -373,6 +458,12 @@ dump_local_monitors(const char *prefix, _Py_LocalMonitors monitors, FILE*out) } } +/** NOTE: + * Do not use PyCode_Addr2Line to determine the line number in instrumentation, + * as `PyCode_Addr2Line` uses the monitoring data if it is available. + */ + + /* No error checking -- Don't use this for anything but experimental debugging */ static void dump_instrumentation_data(PyCodeObject *code, int star, FILE*out) @@ -390,14 +481,16 @@ dump_instrumentation_data(PyCodeObject *code, int star, FILE*out) dump_local_monitors("Active", data->active_monitors, out); int code_len = (int)Py_SIZE(code); bool starred = false; - for (int i = 0; i < code_len; i += instruction_length(code, i)) { + PyCodeAddressRange range; + _PyCode_InitAddressRange(code, &range); + for (int i = 0; i < code_len; i += _PyInstruction_GetLength(code, i)) { _Py_CODEUNIT *instr = &_PyCode_CODE(code)[i]; int opcode = instr->op.code; if (i == star) { fprintf(out, "** "); starred = true; } - fprintf(out, "Offset: %d, line: %d %s: ", i, PyCode_Addr2Line(code, i*2), _PyOpcode_OpName[opcode]); + fprintf(out, "Offset: %d, line: %d %s: ", i, _PyCode_CheckLineNumber(i*2, &range), _PyOpcode_OpName[opcode]); dump_instrumentation_data_tools(code, data->tools, i, out); dump_instrumentation_data_lines(code, data->lines, i, out); dump_instrumentation_data_line_tools(code, data->line_tools, i, out); @@ -426,11 +519,13 @@ dump_instrumentation_data(PyCodeObject *code, int star, FILE*out) static bool valid_opcode(int opcode) { - if (opcode > 0 && + if (opcode == INSTRUMENTED_LINE) { + return true; + } + if (IS_VALID_OPCODE(opcode) && + opcode != CACHE && opcode != RESERVED && - opcode < 255 && - _PyOpcode_OpName[opcode] && - _PyOpcode_OpName[opcode][0] != '<') + opcode < 255) { return true; } @@ -440,6 +535,8 @@ valid_opcode(int opcode) static void sanity_check_instrumentation(PyCodeObject *code) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); + _PyCoMonitoringData *data = code->_co_monitoring; if (data == NULL) { return; @@ -458,10 +555,12 @@ sanity_check_instrumentation(PyCodeObject *code) code->_co_monitoring->active_monitors, active_monitors)); int code_len = (int)Py_SIZE(code); + PyCodeAddressRange range; + _PyCode_InitAddressRange(co, &range); for (int i = 0; i < code_len;) { _Py_CODEUNIT *instr = &_PyCode_CODE(code)[i]; int opcode = instr->op.code; - int base_opcode = _Py_GetBaseOpcode(code, i); + int base_opcode = _Py_GetBaseCodeUnit(code, i).op.code; CHECK(valid_opcode(opcode)); CHECK(valid_opcode(base_opcode)); if (opcode == INSTRUMENTED_INSTRUCTION) { @@ -469,15 +568,11 @@ sanity_check_instrumentation(PyCodeObject *code) if (!is_instrumented(opcode)) { CHECK(_PyOpcode_Deopt[opcode] == opcode); } - if (data->per_instruction_tools) { - uint8_t tools = active_monitors.tools[PY_MONITORING_EVENT_INSTRUCTION]; - CHECK((tools & data->per_instruction_tools[i]) == data->per_instruction_tools[i]); - } } if (opcode == INSTRUMENTED_LINE) { CHECK(data->lines); - CHECK(valid_opcode(data->lines[i].original_opcode)); - opcode = data->lines[i].original_opcode; + opcode = get_original_opcode(data->lines, i); + CHECK(valid_opcode(opcode)); CHECK(opcode != END_FOR); CHECK(opcode != RESUME); CHECK(opcode != RESUME_CHECK); @@ -492,7 +587,7 @@ sanity_check_instrumentation(PyCodeObject *code) * *and* we are executing a INSTRUMENTED_LINE instruction * that has de-instrumented itself, then we will execute * an invalid INSTRUMENTED_INSTRUCTION */ - CHECK(data->lines[i].original_opcode != INSTRUMENTED_INSTRUCTION); + CHECK(get_original_opcode(data->lines, i) != INSTRUMENTED_INSTRUCTION); } if (opcode == INSTRUMENTED_INSTRUCTION) { CHECK(data->per_instruction_opcodes[i] != 0); @@ -507,9 +602,9 @@ sanity_check_instrumentation(PyCodeObject *code) } CHECK(active_monitors.tools[event] != 0); } - if (data->lines && base_opcode != END_FOR) { - int line1 = compute_line(code, i, data->lines[i].line_delta); - int line2 = PyCode_Addr2Line(code, i*sizeof(_Py_CODEUNIT)); + if (data->lines && get_original_opcode(data->lines, i)) { + int line1 = compute_line(code, get_line_delta(data->lines, i)); + int line2 = _PyCode_CheckLineNumber(i*sizeof(_Py_CODEUNIT), &range); CHECK(line1 == line2); } CHECK(valid_opcode(opcode)); @@ -527,7 +622,7 @@ sanity_check_instrumentation(PyCodeObject *code) CHECK(local_tools == 0xff); } } - i += instruction_length(code, i); + i += _PyInstruction_GetLength(code, i); assert(i <= code_len); } } @@ -542,7 +637,7 @@ int _Py_GetBaseOpcode(PyCodeObject *code, int i) { int opcode = _PyCode_CODE(code)[i].op.code; if (opcode == INSTRUMENTED_LINE) { - opcode = code->_co_monitoring->lines[i].original_opcode; + opcode = get_original_opcode(code->_co_monitoring->lines, i); } if (opcode == INSTRUMENTED_INSTRUCTION) { opcode = code->_co_monitoring->per_instruction_opcodes[i]; @@ -565,8 +660,9 @@ de_instrument(PyCodeObject *code, int i, int event) _Py_CODEUNIT *instr = &_PyCode_CODE(code)[i]; uint8_t *opcode_ptr = &instr->op.code; int opcode = *opcode_ptr; + assert(opcode != ENTER_EXECUTOR); if (opcode == INSTRUMENTED_LINE) { - opcode_ptr = &code->_co_monitoring->lines[i].original_opcode; + opcode_ptr = get_original_opcode_ptr(code->_co_monitoring->lines, i); opcode = *opcode_ptr; } if (opcode == INSTRUMENTED_INSTRUCTION) { @@ -578,9 +674,10 @@ de_instrument(PyCodeObject *code, int i, int event) return; } CHECK(_PyOpcode_Deopt[deinstrumented] == deinstrumented); - *opcode_ptr = deinstrumented; + FT_ATOMIC_STORE_UINT8_RELAXED(*opcode_ptr, deinstrumented); if (_PyOpcode_Caches[deinstrumented]) { - instr[1].cache = adaptive_counter_warmup(); + FT_ATOMIC_STORE_UINT16_RELAXED(instr[1].counter.as_counter, + adaptive_counter_warmup().as_counter); } } @@ -592,16 +689,16 @@ de_instrument_line(PyCodeObject *code, int i) if (opcode != INSTRUMENTED_LINE) { return; } - _PyCoLineInstrumentationData *lines = &code->_co_monitoring->lines[i]; - int original_opcode = lines->original_opcode; + _PyCoLineInstrumentationData *lines = code->_co_monitoring->lines; + int original_opcode = get_original_opcode(lines, i); if (original_opcode == INSTRUMENTED_INSTRUCTION) { - lines->original_opcode = code->_co_monitoring->per_instruction_opcodes[i]; + set_original_opcode(lines, i, code->_co_monitoring->per_instruction_opcodes[i]); } CHECK(original_opcode != 0); CHECK(original_opcode == _PyOpcode_Deopt[original_opcode]); instr->op.code = original_opcode; if (_PyOpcode_Caches[original_opcode]) { - instr[1].cache = adaptive_counter_warmup(); + instr[1].counter = adaptive_counter_warmup(); } assert(instr->op.code != INSTRUMENTED_LINE); } @@ -613,7 +710,7 @@ de_instrument_per_instruction(PyCodeObject *code, int i) uint8_t *opcode_ptr = &instr->op.code; int opcode = *opcode_ptr; if (opcode == INSTRUMENTED_LINE) { - opcode_ptr = &code->_co_monitoring->lines[i].original_opcode; + opcode_ptr = get_original_opcode_ptr(code->_co_monitoring->lines, i); opcode = *opcode_ptr; } if (opcode != INSTRUMENTED_INSTRUCTION) { @@ -624,12 +721,10 @@ de_instrument_per_instruction(PyCodeObject *code, int i) CHECK(original_opcode == _PyOpcode_Deopt[original_opcode]); *opcode_ptr = original_opcode; if (_PyOpcode_Caches[original_opcode]) { - instr[1].cache = adaptive_counter_warmup(); + instr[1].counter = adaptive_counter_warmup(); } assert(*opcode_ptr != INSTRUMENTED_INSTRUCTION); assert(instr->op.code != INSTRUMENTED_INSTRUCTION); - /* Keep things clean for sanity check */ - code->_co_monitoring->per_instruction_opcodes[i] = 0; } @@ -640,8 +735,7 @@ instrument(PyCodeObject *code, int i) uint8_t *opcode_ptr = &instr->op.code; int opcode =*opcode_ptr; if (opcode == INSTRUMENTED_LINE) { - _PyCoLineInstrumentationData *lines = &code->_co_monitoring->lines[i]; - opcode_ptr = &lines->original_opcode; + opcode_ptr = get_original_opcode_ptr(code->_co_monitoring->lines, i); opcode = *opcode_ptr; } if (opcode == INSTRUMENTED_INSTRUCTION) { @@ -655,9 +749,11 @@ instrument(PyCodeObject *code, int i) int deopt = _PyOpcode_Deopt[opcode]; int instrumented = INSTRUMENTED_OPCODES[deopt]; assert(instrumented); - *opcode_ptr = instrumented; + FT_ATOMIC_STORE_UINT8_RELAXED(*opcode_ptr, instrumented); if (_PyOpcode_Caches[deopt]) { - instr[1].cache = adaptive_counter_warmup(); + FT_ATOMIC_STORE_UINT16_RELAXED(instr[1].counter.as_counter, + adaptive_counter_warmup().as_counter); + instr[1].counter = adaptive_counter_warmup(); } } } @@ -670,9 +766,8 @@ instrument_line(PyCodeObject *code, int i) if (opcode == INSTRUMENTED_LINE) { return; } - _PyCoLineInstrumentationData *lines = &code->_co_monitoring->lines[i]; - lines->original_opcode = _PyOpcode_Deopt[opcode]; - CHECK(lines->original_opcode > 0); + set_original_opcode(code->_co_monitoring->lines, i, _PyOpcode_Deopt[opcode]); + CHECK(get_line_delta(code->_co_monitoring->lines, i) > NO_LINE); *opcode_ptr = INSTRUMENTED_LINE; } @@ -683,8 +778,7 @@ instrument_per_instruction(PyCodeObject *code, int i) uint8_t *opcode_ptr = &instr->op.code; int opcode = *opcode_ptr; if (opcode == INSTRUMENTED_LINE) { - _PyCoLineInstrumentationData *lines = &code->_co_monitoring->lines[i]; - opcode_ptr = &lines->original_opcode; + opcode_ptr = get_original_opcode_ptr(code->_co_monitoring->lines, i); opcode = *opcode_ptr; } if (opcode == INSTRUMENTED_INSTRUCTION) { @@ -708,6 +802,7 @@ instrument_per_instruction(PyCodeObject *code, int i) static void remove_tools(PyCodeObject * code, int offset, int event, int tools) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); assert(event != PY_MONITORING_EVENT_LINE); assert(event != PY_MONITORING_EVENT_INSTRUCTION); assert(PY_MONITORING_IS_INSTRUMENTED_EVENT(event)); @@ -733,7 +828,7 @@ remove_tools(PyCodeObject * code, int offset, int event, int tools) static bool tools_is_subset_for_event(PyCodeObject * code, int event, int tools) { - int global_tools = PyInterpreterState_Get()->monitors.tools[event]; + int global_tools = _PyInterpreterState_GET()->monitors.tools[event]; int local_tools = code->_co_monitoring->local_monitors.tools[event]; return tools == ((global_tools | local_tools) & tools); } @@ -742,6 +837,8 @@ tools_is_subset_for_event(PyCodeObject * code, int event, int tools) static void remove_line_tools(PyCodeObject * code, int offset, int tools) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); + assert(code->_co_monitoring); if (code->_co_monitoring->line_tools) { @@ -764,6 +861,7 @@ remove_line_tools(PyCodeObject * code, int offset, int tools) static void add_tools(PyCodeObject * code, int offset, int event, int tools) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); assert(event != PY_MONITORING_EVENT_LINE); assert(event != PY_MONITORING_EVENT_INSTRUCTION); assert(PY_MONITORING_IS_INSTRUMENTED_EVENT(event)); @@ -784,6 +882,8 @@ add_tools(PyCodeObject * code, int offset, int event, int tools) static void add_line_tools(PyCodeObject * code, int offset, int tools) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); + assert(tools_is_subset_for_event(code, PY_MONITORING_EVENT_LINE, tools)); assert(code->_co_monitoring); if (code->_co_monitoring->line_tools) { @@ -800,6 +900,8 @@ add_line_tools(PyCodeObject * code, int offset, int tools) static void add_per_instruction_tools(PyCodeObject * code, int offset, int tools) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); + assert(tools_is_subset_for_event(code, PY_MONITORING_EVENT_INSTRUCTION, tools)); assert(code->_co_monitoring); if (code->_co_monitoring->per_instruction_tools) { @@ -816,6 +918,8 @@ add_per_instruction_tools(PyCodeObject * code, int offset, int tools) static void remove_per_instruction_tools(PyCodeObject * code, int offset, int tools) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); + assert(code->_co_monitoring); if (code->_co_monitoring->per_instruction_tools) { uint8_t *toolsptr = &code->_co_monitoring->per_instruction_tools[offset]; @@ -839,7 +943,7 @@ remove_per_instruction_tools(PyCodeObject * code, int offset, int tools) static int call_one_instrument( PyInterpreterState *interp, PyThreadState *tstate, PyObject **args, - Py_ssize_t nargsf, int8_t tool, int event) + size_t nargsf, int8_t tool, int event) { assert(0 <= tool && tool < 8); assert(tstate->tracing == 0); @@ -878,21 +982,87 @@ static inline int most_significant_bit(uint8_t bits) { return MOST_SIGNIFICANT_BITS[bits]; } +static uint32_t +global_version(PyInterpreterState *interp) +{ + uint32_t version = (uint32_t)_Py_atomic_load_uintptr_relaxed( + &interp->ceval.instrumentation_version); +#ifdef Py_DEBUG + PyThreadState *tstate = _PyThreadState_GET(); + uint32_t thread_version = + (uint32_t)(_Py_atomic_load_uintptr_relaxed(&tstate->eval_breaker) & + ~_PY_EVAL_EVENTS_MASK); + assert(thread_version == version); +#endif + return version; +} + +/* Atomically set the given version in the given location, without touching + anything in _PY_EVAL_EVENTS_MASK. */ +static void +set_version_raw(uintptr_t *ptr, uint32_t version) +{ + uintptr_t old = _Py_atomic_load_uintptr_relaxed(ptr); + uintptr_t new; + do { + new = (old & _PY_EVAL_EVENTS_MASK) | version; + } while (!_Py_atomic_compare_exchange_uintptr(ptr, &old, new)); +} + +static void +set_global_version(PyThreadState *tstate, uint32_t version) +{ + ASSERT_WORLD_STOPPED(); + + assert((version & _PY_EVAL_EVENTS_MASK) == 0); + PyInterpreterState *interp = tstate->interp; + set_version_raw(&interp->ceval.instrumentation_version, version); + +#ifdef Py_GIL_DISABLED + // Set the version on all threads in free-threaded builds. + _PyRuntimeState *runtime = &_PyRuntime; + HEAD_LOCK(runtime); + for (tstate = interp->threads.head; tstate; + tstate = PyThreadState_Next(tstate)) { + set_version_raw(&tstate->eval_breaker, version); + }; + HEAD_UNLOCK(runtime); +#else + // Normal builds take the current version from instrumentation_version when + // attaching a thread, so we only have to set the current thread's version. + set_version_raw(&tstate->eval_breaker, version); +#endif +} + static bool is_version_up_to_date(PyCodeObject *code, PyInterpreterState *interp) { - return interp->monitoring_version == code->_co_instrumentation_version; + ASSERT_WORLD_STOPPED_OR_LOCKED(code); + return global_version(interp) == code->_co_instrumentation_version; } #ifndef NDEBUG static bool instrumentation_cross_checks(PyInterpreterState *interp, PyCodeObject *code) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); _Py_LocalMonitors expected = local_union( interp->monitors, code->_co_monitoring->local_monitors); return monitors_equals(code->_co_monitoring->active_monitors, expected); } + +static int +debug_check_sanity(PyInterpreterState *interp, PyCodeObject *code) +{ + int res; + LOCK_CODE(code); + res = is_version_up_to_date(code, interp) && + instrumentation_cross_checks(interp, code); + UNLOCK_CODE(); + return res; +} + #endif static inline uint8_t @@ -907,8 +1077,7 @@ get_tools_for_instruction(PyCodeObject *code, PyInterpreterState *interp, int i, event = PY_MONITORING_EVENT_CALL; } if (PY_MONITORING_IS_INSTRUMENTED_EVENT(event)) { - CHECK(is_version_up_to_date(code, interp)); - CHECK(instrumentation_cross_checks(interp, code)); + CHECK(debug_check_sanity(interp, code)); if (code->_co_monitoring->tools) { tools = code->_co_monitoring->tools[i]; } @@ -952,10 +1121,7 @@ call_instrumentation_vector( } assert(!_PyErr_Occurred(tstate)); assert(args[0] == NULL); - PyCodeObject *code = frame->f_code; - assert(code->_co_instrumentation_version == tstate->interp->monitoring_version); - assert(is_version_up_to_date(code, tstate->interp)); - assert(instrumentation_cross_checks(tstate->interp, code)); + PyCodeObject *code = _PyFrame_GetCode(frame); assert(args[1] == NULL); args[1] = (PyObject *)code; int offset = (int)(instr - _PyCode_CODE(code)); @@ -970,7 +1136,7 @@ call_instrumentation_vector( args[2] = offset_obj; PyInterpreterState *interp = tstate->interp; uint8_t tools = get_tools_for_instruction(code, interp, offset, event); - Py_ssize_t nargsf = nargs | PY_VECTORCALL_ARGUMENTS_OFFSET; + size_t nargsf = (size_t) nargs | PY_VECTORCALL_ARGUMENTS_OFFSET; PyObject **callargs = &args[1]; int err = 0; while (tools) { @@ -999,7 +1165,9 @@ call_instrumentation_vector( break; } else { + LOCK_CODE(code); remove_tools(code, offset, event, 1 << tool); + UNLOCK_CODE(); } } } @@ -1041,10 +1209,8 @@ _Py_call_instrumentation_jump( { assert(event == PY_MONITORING_EVENT_JUMP || event == PY_MONITORING_EVENT_BRANCH); - assert(frame->prev_instr == instr); - /* Event should occur after the jump */ - frame->prev_instr = target; - PyCodeObject *code = frame->f_code; + assert(frame->instr_ptr == instr); + PyCodeObject *code = _PyFrame_GetCode(frame); int to = (int)(target - _PyCode_CODE(code)); PyObject *to_obj = PyLong_FromLong(to * (int)sizeof(_Py_CODEUNIT)); if (to_obj == NULL) { @@ -1056,12 +1222,10 @@ _Py_call_instrumentation_jump( if (err) { return NULL; } - if (frame->prev_instr != target) { + if (frame->instr_ptr != instr) { /* The callback has caused a jump (by setting the line number) */ - return frame->prev_instr; + return frame->instr_ptr; } - /* Reset prev_instr for INSTRUMENTED_LINE */ - frame->prev_instr = instr; return target; } @@ -1092,50 +1256,45 @@ _Py_call_instrumentation_exc2( call_instrumentation_vector_protected(tstate, event, frame, instr, 4, args); } - int _Py_Instrumentation_GetLine(PyCodeObject *code, int index) { _PyCoMonitoringData *monitoring = code->_co_monitoring; assert(monitoring != NULL); assert(monitoring->lines != NULL); - assert(index >= code->_co_firsttraceable); assert(index < Py_SIZE(code)); - _PyCoLineInstrumentationData *line_data = &monitoring->lines[index]; - int8_t line_delta = line_data->line_delta; - int line = compute_line(code, index, line_delta); + _PyCoLineInstrumentationData *line_data = monitoring->lines; + int line_delta = get_line_delta(line_data, index); + int line = compute_line(code, line_delta); return line; } int _Py_call_instrumentation_line(PyThreadState *tstate, _PyInterpreterFrame* frame, _Py_CODEUNIT *instr, _Py_CODEUNIT *prev) { - frame->prev_instr = instr; - PyCodeObject *code = frame->f_code; - assert(is_version_up_to_date(code, tstate->interp)); - assert(instrumentation_cross_checks(tstate->interp, code)); + PyCodeObject *code = _PyFrame_GetCode(frame); + assert(tstate->tracing == 0); + assert(debug_check_sanity(tstate->interp, code)); int i = (int)(instr - _PyCode_CODE(code)); _PyCoMonitoringData *monitoring = code->_co_monitoring; - _PyCoLineInstrumentationData *line_data = &monitoring->lines[i]; - if (tstate->tracing) { - goto done; - } + _PyCoLineInstrumentationData *line_data = monitoring->lines; PyInterpreterState *interp = tstate->interp; - int8_t line_delta = line_data->line_delta; - int line = compute_line(code, i, line_delta); + int line = _Py_Instrumentation_GetLine(code, i); assert(line >= 0); + assert(prev != NULL); int prev_index = (int)(prev - _PyCode_CODE(code)); int prev_line = _Py_Instrumentation_GetLine(code, prev_index); if (prev_line == line) { int prev_opcode = _PyCode_CODE(code)[prev_index].op.code; /* RESUME and INSTRUMENTED_RESUME are needed for the operation of - * instrumentation, so must never be hidden by an INSTRUMENTED_LINE. - */ + * instrumentation, so must never be hidden by an INSTRUMENTED_LINE. + */ if (prev_opcode != RESUME && prev_opcode != INSTRUMENTED_RESUME) { goto done; } } + uint8_t tools = code->_co_monitoring->line_tools != NULL ? code->_co_monitoring->line_tools[i] : (interp->monitors.tools[PY_MONITORING_EVENT_LINE] | @@ -1144,7 +1303,7 @@ _Py_call_instrumentation_line(PyThreadState *tstate, _PyInterpreterFrame* frame, /* Special case sys.settrace to avoid boxing the line number, * only to immediately unbox it. */ if (tools & (1 << PY_MONITORING_SYS_TRACE_ID)) { - if (tstate->c_tracefunc != NULL && line >= 0) { + if (tstate->c_tracefunc != NULL) { PyFrameObject *frame_obj = _PyFrame_GetFrameObject(frame); if (frame_obj == NULL) { return -1; @@ -1196,15 +1355,17 @@ _Py_call_instrumentation_line(PyThreadState *tstate, _PyInterpreterFrame* frame, } else { /* DISABLE */ + LOCK_CODE(code); remove_line_tools(code, i, 1 << tool); + UNLOCK_CODE(); } } while (tools); Py_DECREF(line_obj); uint8_t original_opcode; done: - original_opcode = line_data->original_opcode; + original_opcode = get_original_opcode(line_data, i); assert(original_opcode != 0); - assert(original_opcode < INSTRUMENTED_LINE); + assert(original_opcode != INSTRUMENTED_LINE); assert(_PyOpcode_Deopt[original_opcode] == original_opcode); return original_opcode; } @@ -1212,9 +1373,7 @@ done: int _Py_call_instrumentation_instruction(PyThreadState *tstate, _PyInterpreterFrame* frame, _Py_CODEUNIT *instr) { - PyCodeObject *code = frame->f_code; - assert(is_version_up_to_date(code, tstate->interp)); - assert(instrumentation_cross_checks(tstate->interp, code)); + PyCodeObject *code = _PyFrame_GetCode(frame); int offset = (int)(instr - _PyCode_CODE(code)); _PyCoMonitoringData *instrumentation_data = code->_co_monitoring; assert(instrumentation_data->per_instruction_opcodes); @@ -1222,6 +1381,7 @@ _Py_call_instrumentation_instruction(PyThreadState *tstate, _PyInterpreterFrame* if (tstate->tracing) { return next_opcode; } + assert(debug_check_sanity(tstate->interp, code)); PyInterpreterState *interp = tstate->interp; uint8_t tools = instrumentation_data->per_instruction_tools != NULL ? instrumentation_data->per_instruction_tools[offset] : @@ -1252,7 +1412,9 @@ _Py_call_instrumentation_instruction(PyThreadState *tstate, _PyInterpreterFrame* } else { /* DISABLE */ + LOCK_CODE(code); remove_per_instruction_tools(code, offset, 1 << tool); + UNLOCK_CODE(); } } Py_DECREF(offset_obj); @@ -1264,25 +1426,30 @@ _Py_call_instrumentation_instruction(PyThreadState *tstate, _PyInterpreterFrame* PyObject * _PyMonitoring_RegisterCallback(int tool_id, int event_id, PyObject *obj) { - PyInterpreterState *is = _PyInterpreterState_Get(); + PyInterpreterState *is = _PyInterpreterState_GET(); assert(0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS); assert(0 <= event_id && event_id < _PY_MONITORING_EVENTS); + _PyEval_StopTheWorld(is); PyObject *callback = is->monitoring_callables[tool_id][event_id]; is->monitoring_callables[tool_id][event_id] = Py_XNewRef(obj); + _PyEval_StartTheWorld(is); return callback; } static void initialize_tools(PyCodeObject *code) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); uint8_t* tools = code->_co_monitoring->tools; + assert(tools != NULL); int code_len = (int)Py_SIZE(code); for (int i = 0; i < code_len; i++) { _Py_CODEUNIT *instr = &_PyCode_CODE(code)[i]; int opcode = instr->op.code; + assert(opcode != ENTER_EXECUTOR); if (opcode == INSTRUMENTED_LINE) { - opcode = code->_co_monitoring->lines[i].original_opcode; + opcode = get_original_opcode(code->_co_monitoring->lines, i); } if (opcode == INSTRUMENTED_INSTRUCTION) { opcode = code->_co_monitoring->per_instruction_opcodes[i]; @@ -1325,54 +1492,57 @@ initialize_tools(PyCodeObject *code) } } -#define NO_LINE -128 - static void -initialize_lines(PyCodeObject *code) +initialize_lines(PyCodeObject *code, int bytes_per_entry) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); _PyCoLineInstrumentationData *line_data = code->_co_monitoring->lines; + assert(line_data != NULL); + line_data->bytes_per_entry = bytes_per_entry; int code_len = (int)Py_SIZE(code); PyCodeAddressRange range; _PyCode_InitAddressRange(code, &range); - for (int i = 0; i < code->_co_firsttraceable && i < code_len; i++) { - line_data[i].original_opcode = 0; - line_data[i].line_delta = -127; - } int current_line = -1; - for (int i = code->_co_firsttraceable; i < code_len; ) { + for (int i = 0; i < code_len; ) { int opcode = _Py_GetBaseOpcode(code, i); int line = _PyCode_CheckLineNumber(i*(int)sizeof(_Py_CODEUNIT), &range); - line_data[i].line_delta = compute_line_delta(code, i, line); - int length = instruction_length(code, i); - switch (opcode) { - case END_ASYNC_FOR: - case END_FOR: - case END_SEND: - case RESUME: - /* END_FOR cannot start a line, as it is skipped by FOR_ITER - * END_SEND cannot start a line, as it is skipped by SEND - * RESUME must not be instrumented with INSTRUMENT_LINE */ - line_data[i].original_opcode = 0; - break; - default: - /* Set original_opcode to the opcode iff the instruction - * starts a line, and thus should be instrumented. - * This saves having to perform this check every time the - * we turn instrumentation on or off, and serves as a sanity - * check when debugging. - */ - if (line != current_line && line >= 0) { - line_data[i].original_opcode = opcode; - } - else { - line_data[i].original_opcode = 0; - } - current_line = line; + set_line_delta(line_data, i, compute_line_delta(code, line)); + int length = _PyInstruction_GetLength(code, i); + if (i < code->_co_firsttraceable) { + set_original_opcode(line_data, i, 0); + } + else { + switch (opcode) { + case END_ASYNC_FOR: + case END_FOR: + case END_SEND: + case RESUME: + /* END_FOR cannot start a line, as it is skipped by FOR_ITER + * END_SEND cannot start a line, as it is skipped by SEND + * RESUME and POP_ITER must not be instrumented with INSTRUMENTED_LINE */ + set_original_opcode(line_data, i, 0); + break; + default: + /* Set original_opcode to the opcode iff the instruction + * starts a line, and thus should be instrumented. + * This saves having to perform this check every time the + * we turn instrumentation on or off, and serves as a sanity + * check when debugging. + */ + if (line != current_line && line >= 0) { + set_original_opcode(line_data, i, opcode); + CHECK(get_line_delta(line_data, i) != NO_LINE); + } + else { + set_original_opcode(line_data, i, 0); + } + current_line = line; + } } for (int j = 1; j < length; j++) { - line_data[i+j].original_opcode = 0; - line_data[i+j].line_delta = NO_LINE; + set_original_opcode(line_data, i+j, 0); + set_line_delta(line_data, i+j, NO_LINE); } i += length; } @@ -1385,7 +1555,7 @@ initialize_lines(PyCodeObject *code) opcode = _Py_GetBaseOpcode(code, i); } oparg = (oparg << 8) | _PyCode_CODE(code)[i].op.arg; - i += instruction_length(code, i); + i += _PyInstruction_GetLength(code, i); int target = -1; switch (opcode) { case POP_JUMP_IF_FALSE: @@ -1414,8 +1584,9 @@ initialize_lines(PyCodeObject *code) continue; } assert(target >= 0); - if (line_data[target].line_delta != NO_LINE) { - line_data[target].original_opcode = _Py_GetBaseOpcode(code, target); + if (get_line_delta(line_data, target) != NO_LINE) { + int opcode = _Py_GetBaseOpcode(code, target); + set_original_opcode(line_data, target, opcode); } } /* Scan exception table */ @@ -1437,9 +1608,8 @@ initialize_lines(PyCodeObject *code) * END_ASYNC_FOR is a bit special as it marks the end of * an `async for` loop, which should not generate its own * line event. */ - if (line_data[handler].line_delta != NO_LINE && - original_opcode != END_ASYNC_FOR) { - line_data[handler].original_opcode = original_opcode; + if (get_line_delta(line_data, handler) != NO_LINE && original_opcode != END_ASYNC_FOR) { + set_original_opcode(line_data, handler, original_opcode); } } } @@ -1447,7 +1617,9 @@ initialize_lines(PyCodeObject *code) static void initialize_line_tools(PyCodeObject *code, _Py_LocalMonitors *all_events) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); uint8_t *line_tools = code->_co_monitoring->line_tools; + assert(line_tools != NULL); int code_len = (int)Py_SIZE(code); for (int i = 0; i < code_len; i++) { @@ -1458,6 +1630,7 @@ initialize_line_tools(PyCodeObject *code, _Py_LocalMonitors *all_events) static int allocate_instrumentation_data(PyCodeObject *code) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); if (code->_co_monitoring == NULL) { code->_co_monitoring = PyMem_Malloc(sizeof(_PyCoMonitoringData)); @@ -1479,6 +1652,8 @@ allocate_instrumentation_data(PyCodeObject *code) static int update_instrumentation_data(PyCodeObject *code, PyInterpreterState *interp) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); + int code_len = (int)Py_SIZE(code); if (allocate_instrumentation_data(code)) { return -1; @@ -1497,12 +1672,39 @@ update_instrumentation_data(PyCodeObject *code, PyInterpreterState *interp) } if (all_events.tools[PY_MONITORING_EVENT_LINE]) { if (code->_co_monitoring->lines == NULL) { - code->_co_monitoring->lines = PyMem_Malloc(code_len * sizeof(_PyCoLineInstrumentationData)); + PyCodeAddressRange range; + _PyCode_InitAddressRange(code, &range); + int max_line = code->co_firstlineno + 1; + _PyCode_InitAddressRange(code, &range); + for (int i = code->_co_firsttraceable; i < code_len; ) { + int line = _PyCode_CheckLineNumber(i*(int)sizeof(_Py_CODEUNIT), &range); + if (line > max_line) { + max_line = line; + } + int length = _PyInstruction_GetLength(code, i); + i += length; + } + int bytes_per_entry; + int max_delta = max_line - code->co_firstlineno; + /* We store delta+2 in the table, so 253 is max for one byte */ + if (max_delta < 256+NO_LINE) { + bytes_per_entry = 2; + } + else if (max_delta < (1 << 16)+NO_LINE) { + bytes_per_entry = 3; + } + else if (max_delta < (1 << 24)+NO_LINE) { + bytes_per_entry = 4; + } + else { + bytes_per_entry = 5; + } + code->_co_monitoring->lines = PyMem_Malloc(1 + code_len * bytes_per_entry); if (code->_co_monitoring->lines == NULL) { PyErr_NoMemory(); return -1; } - initialize_lines(code); + initialize_lines(code, bytes_per_entry); } if (multitools && code->_co_monitoring->line_tools == NULL) { code->_co_monitoring->line_tools = PyMem_Malloc(code_len); @@ -1520,9 +1722,11 @@ update_instrumentation_data(PyCodeObject *code, PyInterpreterState *interp) PyErr_NoMemory(); return -1; } - /* This may not be necessary, as we can initialize this memory lazily, but it helps catch errors. */ + // Initialize all of the instructions so if local events change while another thread is executing + // we know what the original opcode was. for (int i = 0; i < code_len; i++) { - code->_co_monitoring->per_instruction_opcodes[i] = 0; + int opcode = _PyCode_CODE(code)[i].op.code; + code->_co_monitoring->per_instruction_opcodes[i] = _PyOpcode_Deopt[opcode]; } } if (multitools && code->_co_monitoring->per_instruction_tools == NULL) { @@ -1531,7 +1735,6 @@ update_instrumentation_data(PyCodeObject *code, PyInterpreterState *interp) PyErr_NoMemory(); return -1; } - /* This may not be necessary, as we can initialize this memory lazily, but it helps catch errors. */ for (int i = 0; i < code_len; i++) { code->_co_monitoring->per_instruction_tools[i] = 0; } @@ -1540,39 +1743,23 @@ update_instrumentation_data(PyCodeObject *code, PyInterpreterState *interp) return 0; } -static const uint8_t super_instructions[256] = { - [LOAD_FAST__LOAD_FAST] = 1, - [LOAD_FAST__LOAD_CONST] = 1, - [STORE_FAST__LOAD_FAST] = 1, - [STORE_FAST__STORE_FAST] = 1, - [LOAD_CONST__LOAD_FAST] = 1, -}; - -/* Should use instruction metadata for this */ -static bool -is_super_instruction(uint8_t opcode) { - return super_instructions[opcode] != 0; -} - -int -_Py_Instrument(PyCodeObject *code, PyInterpreterState *interp) +static int +force_instrument_lock_held(PyCodeObject *code, PyInterpreterState *interp) { + ASSERT_WORLD_STOPPED_OR_LOCKED(code); - if (is_version_up_to_date(code, interp)) { - assert( - interp->monitoring_version == 0 || - instrumentation_cross_checks(interp, code) - ); - return 0; +#ifdef _Py_TIER2 + if (code->co_executors != NULL) { + _PyCode_Clear_Executors(code); } + _Py_Executors_InvalidateDependency(interp, code, 1); +#endif int code_len = (int)Py_SIZE(code); - /* code->_co_firsttraceable >= code_len indicates - * that no instrumentation can be inserted. - * Exit early to avoid creating instrumentation + /* Exit early to avoid creating instrumentation * data for potential statically allocated code * objects. * See https://github.com/python/cpython/issues/108390 */ - if (code->_co_firsttraceable >= code_len) { + if (code->co_flags & CO_NO_MONITORING_EVENTS) { return 0; } if (update_instrumentation_data(code, interp)) { @@ -1595,21 +1782,16 @@ _Py_Instrument(PyCodeObject *code, PyInterpreterState *interp) assert(monitors_are_empty(monitors_and(new_events, removed_events))); } code->_co_monitoring->active_monitors = active_events; - code->_co_instrumentation_version = interp->monitoring_version; if (monitors_are_empty(new_events) && monitors_are_empty(removed_events)) { -#ifdef INSTRUMENT_DEBUG - sanity_check_instrumentation(code); -#endif - return 0; + goto done; } /* Insert instrumentation */ - for (int i = 0; i < code_len; i+= instruction_length(code, i)) { + for (int i = code->_co_firsttraceable; i < code_len; i+= _PyInstruction_GetLength(code, i)) { _Py_CODEUNIT *instr = &_PyCode_CODE(code)[i]; - if (is_super_instruction(instr->op.code)) { - instr->op.code = _PyOpcode_Deopt[instr->op.code]; - } CHECK(instr->op.code != 0); + assert(instr->op.code != ENTER_EXECUTOR); int base_opcode = _Py_GetBaseOpcode(code, i); + assert(base_opcode != ENTER_EXECUTOR); if (opcode_has_event(base_opcode)) { int8_t event; if (base_opcode == RESUME) { @@ -1632,70 +1814,93 @@ _Py_Instrument(PyCodeObject *code, PyInterpreterState *interp) // GH-103845: We need to remove both the line and instruction instrumentation before // adding new ones, otherwise we may remove the newly added instrumentation. - uint8_t removed_line_tools = removed_events.tools[PY_MONITORING_EVENT_LINE]; uint8_t removed_per_instruction_tools = removed_events.tools[PY_MONITORING_EVENT_INSTRUCTION]; if (removed_line_tools) { _PyCoLineInstrumentationData *line_data = code->_co_monitoring->lines; for (int i = code->_co_firsttraceable; i < code_len;) { - if (line_data[i].original_opcode) { - if (removed_line_tools) { - remove_line_tools(code, i, removed_line_tools); - } + if (get_original_opcode(line_data, i)) { + remove_line_tools(code, i, removed_line_tools); } - i += instruction_length(code, i); + i += _PyInstruction_GetLength(code, i); } } if (removed_per_instruction_tools) { for (int i = code->_co_firsttraceable; i < code_len;) { int opcode = _Py_GetBaseOpcode(code, i); if (opcode == RESUME || opcode == END_FOR) { - i += instruction_length(code, i); + i += _PyInstruction_GetLength(code, i); continue; } - if (removed_per_instruction_tools) { - remove_per_instruction_tools(code, i, removed_per_instruction_tools); - } - i += instruction_length(code, i); + remove_per_instruction_tools(code, i, removed_per_instruction_tools); + i += _PyInstruction_GetLength(code, i); } } #ifdef INSTRUMENT_DEBUG sanity_check_instrumentation(code); #endif + uint8_t new_line_tools = new_events.tools[PY_MONITORING_EVENT_LINE]; uint8_t new_per_instruction_tools = new_events.tools[PY_MONITORING_EVENT_INSTRUCTION]; if (new_line_tools) { _PyCoLineInstrumentationData *line_data = code->_co_monitoring->lines; for (int i = code->_co_firsttraceable; i < code_len;) { - if (line_data[i].original_opcode) { - if (new_line_tools) { - add_line_tools(code, i, new_line_tools); - } + if (get_original_opcode(line_data, i)) { + add_line_tools(code, i, new_line_tools); } - i += instruction_length(code, i); + i += _PyInstruction_GetLength(code, i); } } if (new_per_instruction_tools) { for (int i = code->_co_firsttraceable; i < code_len;) { int opcode = _Py_GetBaseOpcode(code, i); if (opcode == RESUME || opcode == END_FOR) { - i += instruction_length(code, i); + i += _PyInstruction_GetLength(code, i); continue; } - if (new_per_instruction_tools) { - add_per_instruction_tools(code, i, new_per_instruction_tools); - } - i += instruction_length(code, i); + add_per_instruction_tools(code, i, new_per_instruction_tools); + i += _PyInstruction_GetLength(code, i); } } + +done: + FT_ATOMIC_STORE_UINTPTR_RELEASE(code->_co_instrumentation_version, + global_version(interp)); + #ifdef INSTRUMENT_DEBUG sanity_check_instrumentation(code); #endif return 0; } +static int +instrument_lock_held(PyCodeObject *code, PyInterpreterState *interp) +{ + ASSERT_WORLD_STOPPED_OR_LOCKED(code); + + if (is_version_up_to_date(code, interp)) { + assert( + interp->ceval.instrumentation_version == 0 || + instrumentation_cross_checks(interp, code) + ); + return 0; + } + + return force_instrument_lock_held(code, interp); +} + +int +_Py_Instrument(PyCodeObject *code, PyInterpreterState *interp) +{ + int res; + LOCK_CODE(code); + res = instrument_lock_held(code, interp); + UNLOCK_CODE(); + return res; +} + #define C_RETURN_EVENTS \ ((1 << PY_MONITORING_EVENT_C_RETURN) | \ (1 << PY_MONITORING_EVENT_C_RAISE)) @@ -1705,26 +1910,27 @@ _Py_Instrument(PyCodeObject *code, PyInterpreterState *interp) static int -instrument_all_executing_code_objects(PyInterpreterState *interp) { - _PyRuntimeState *runtime = &_PyRuntime; - HEAD_LOCK(runtime); - PyThreadState* ts = PyInterpreterState_ThreadHead(interp); - HEAD_UNLOCK(runtime); - while (ts) { - _PyInterpreterFrame *frame = ts->cframe->current_frame; +instrument_all_executing_code_objects(PyInterpreterState *interp) +{ + ASSERT_WORLD_STOPPED(); + + int err = 0; + HEAD_LOCK(&_PyRuntime); + for (PyThreadState *ts = interp->threads.head; ts != NULL; ts = ts->next) { + _PyInterpreterFrame *frame = ts->current_frame; while (frame) { if (frame->owner != FRAME_OWNED_BY_CSTACK) { - if (_Py_Instrument(frame->f_code, interp)) { - return -1; + err = instrument_lock_held(_PyFrame_GetCode(frame), interp); + if (err) { + goto done; } } frame = frame->previous; } - HEAD_LOCK(runtime); - ts = PyThreadState_Next(ts); - HEAD_UNLOCK(runtime); } - return 0; +done: + HEAD_UNLOCK(&_PyRuntime); + return err; } static void @@ -1763,29 +1969,46 @@ check_tool(PyInterpreterState *interp, int tool_id) return 0; } +/* We share the eval-breaker with flags, so the monitoring + * version goes in the top 24 bits */ +#define MONITORING_VERSION_INCREMENT (1 << _PY_EVAL_EVENTS_BITS) + int _PyMonitoring_SetEvents(int tool_id, _PyMonitoringEventSet events) { + ASSERT_WORLD_STOPPED(); assert(0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS); - PyInterpreterState *interp = _PyInterpreterState_Get(); + PyThreadState *tstate = _PyThreadState_GET(); + PyInterpreterState *interp = tstate->interp; assert(events < (1 << _PY_MONITORING_UNGROUPED_EVENTS)); if (check_tool(interp, tool_id)) { return -1; } + uint32_t existing_events = get_events(&interp->monitors, tool_id); if (existing_events == events) { return 0; } + uint32_t new_version = global_version(interp) + MONITORING_VERSION_INCREMENT; + if (new_version == 0) { + PyErr_Format(PyExc_OverflowError, "events set too many times"); + return -1; + } set_events(&interp->monitors, tool_id, events); - interp->monitoring_version++; + set_global_version(tstate, new_version); +#ifdef _Py_TIER2 + _Py_Executors_InvalidateAll(interp, 1); +#endif return instrument_all_executing_code_objects(interp); } int _PyMonitoring_SetLocalEvents(PyCodeObject *code, int tool_id, _PyMonitoringEventSet events) { + ASSERT_WORLD_STOPPED(); + assert(0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS); - PyInterpreterState *interp = _PyInterpreterState_Get(); + PyInterpreterState *interp = _PyInterpreterState_GET(); assert(events < (1 << _PY_MONITORING_LOCAL_EVENTS)); if (code->_co_firsttraceable >= Py_SIZE(code)) { PyErr_Format(PyExc_SystemError, "cannot instrument shim code object '%U'", code->co_name); @@ -1794,22 +2017,35 @@ _PyMonitoring_SetLocalEvents(PyCodeObject *code, int tool_id, _PyMonitoringEvent if (check_tool(interp, tool_id)) { return -1; } + if (allocate_instrumentation_data(code)) { return -1; } + _Py_LocalMonitors *local = &code->_co_monitoring->local_monitors; uint32_t existing_events = get_local_events(local, tool_id); if (existing_events == events) { return 0; } set_local_events(local, tool_id, events); - if (is_version_up_to_date(code, interp)) { - /* Force instrumentation update */ - code->_co_instrumentation_version = UINT64_MAX; - } - if (_Py_Instrument(code, interp)) { + + return force_instrument_lock_held(code, interp); +} + +int +_PyMonitoring_GetLocalEvents(PyCodeObject *code, int tool_id, _PyMonitoringEventSet *events) +{ + assert(0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS); + PyInterpreterState *interp = _PyInterpreterState_GET(); + if (check_tool(interp, tool_id)) { return -1; } + if (code->_co_monitoring == NULL) { + *events = 0; + return 0; + } + _Py_LocalMonitors *local = &code->_co_monitoring->local_monitors; + *events = get_local_events(local, tool_id); return 0; } @@ -1851,7 +2087,7 @@ monitoring_use_tool_id_impl(PyObject *module, int tool_id, PyObject *name) PyErr_SetString(PyExc_ValueError, "tool name must be a str"); return NULL; } - PyInterpreterState *interp = _PyInterpreterState_Get(); + PyInterpreterState *interp = _PyInterpreterState_GET(); if (interp->monitoring_tool_names[tool_id] != NULL) { PyErr_Format(PyExc_ValueError, "tool %d is already in use", tool_id); return NULL; @@ -1875,7 +2111,7 @@ monitoring_free_tool_id_impl(PyObject *module, int tool_id) if (check_valid_tool(tool_id)) { return NULL; } - PyInterpreterState *interp = _PyInterpreterState_Get(); + PyInterpreterState *interp = _PyInterpreterState_GET(); Py_CLEAR(interp->monitoring_tool_names[tool_id]); Py_RETURN_NONE; } @@ -1897,7 +2133,7 @@ monitoring_get_tool_impl(PyObject *module, int tool_id) if (check_valid_tool(tool_id)) { return NULL; } - PyInterpreterState *interp = _PyInterpreterState_Get(); + PyInterpreterState *interp = _PyInterpreterState_GET(); PyObject *name = interp->monitoring_tool_names[tool_id]; if (name == NULL) { Py_RETURN_NONE; @@ -1991,7 +2227,11 @@ monitoring_set_events_impl(PyObject *module, int tool_id, int event_set) return NULL; } event_set &= ~C_RETURN_EVENTS; - if (_PyMonitoring_SetEvents(tool_id, event_set)) { + PyInterpreterState *interp = _PyInterpreterState_GET(); + _PyEval_StopTheWorld(interp); + int err = _PyMonitoring_SetEvents(tool_id, event_set); + _PyEval_StartTheWorld(interp); + if (err) { return NULL; } Py_RETURN_NONE; @@ -2068,7 +2308,11 @@ monitoring_set_local_events_impl(PyObject *module, int tool_id, return NULL; } - if (_PyMonitoring_SetLocalEvents((PyCodeObject*)code, tool_id, event_set)) { + PyInterpreterState *interp = _PyInterpreterState_GET(); + _PyEval_StopTheWorld(interp); + int err = _PyMonitoring_SetLocalEvents((PyCodeObject*)code, tool_id, event_set); + _PyEval_StartTheWorld(interp); + if (err) { return NULL; } Py_RETURN_NONE; @@ -2087,10 +2331,23 @@ monitoring_restart_events_impl(PyObject *module) * last restart version > instrumented version for all code objects * last restart version < current version */ - PyInterpreterState *interp = _PyInterpreterState_Get(); - interp->last_restart_version = interp->monitoring_version + 1; - interp->monitoring_version = interp->last_restart_version + 1; - if (instrument_all_executing_code_objects(interp)) { + PyThreadState *tstate = _PyThreadState_GET(); + PyInterpreterState *interp = tstate->interp; + + _PyEval_StopTheWorld(interp); + uint32_t restart_version = global_version(interp) + MONITORING_VERSION_INCREMENT; + uint32_t new_version = restart_version + MONITORING_VERSION_INCREMENT; + if (new_version <= MONITORING_VERSION_INCREMENT) { + _PyEval_StartTheWorld(interp); + PyErr_Format(PyExc_OverflowError, "events set too many times"); + return NULL; + } + interp->last_restart_version = restart_version; + set_global_version(tstate, new_version); + int res = instrument_all_executing_code_objects(interp); + _PyEval_StartTheWorld(interp); + + if (res) { return NULL; } Py_RETURN_NONE; @@ -2116,7 +2373,7 @@ static PyObject * monitoring__all_events_impl(PyObject *module) /*[clinic end generated code: output=6b7581e2dbb690f6 input=62ee9672c17b7f0e]*/ { - PyInterpreterState *interp = _PyInterpreterState_Get(); + PyInterpreterState *interp = _PyInterpreterState_GET(); PyObject *res = PyDict_New(); if (res == NULL) { return NULL; @@ -2188,18 +2445,22 @@ PyObject *_Py_CreateMonitoringObject(void) err = PyObject_SetAttrString(events, "NO_EVENTS", _PyLong_GetZero()); if (err) goto error; PyObject *val = PyLong_FromLong(PY_MONITORING_DEBUGGER_ID); + assert(val != NULL); /* Can't return NULL because the int is small. */ err = PyObject_SetAttrString(mod, "DEBUGGER_ID", val); Py_DECREF(val); if (err) goto error; val = PyLong_FromLong(PY_MONITORING_COVERAGE_ID); + assert(val != NULL); err = PyObject_SetAttrString(mod, "COVERAGE_ID", val); Py_DECREF(val); if (err) goto error; val = PyLong_FromLong(PY_MONITORING_PROFILER_ID); + assert(val != NULL); err = PyObject_SetAttrString(mod, "PROFILER_ID", val); Py_DECREF(val); if (err) goto error; val = PyLong_FromLong(PY_MONITORING_OPTIMIZER_ID); + assert(val != NULL); err = PyObject_SetAttrString(mod, "OPTIMIZER_ID", val); Py_DECREF(val); if (err) goto error; @@ -2208,3 +2469,309 @@ error: Py_DECREF(mod); return NULL; } + + +static int +capi_call_instrumentation(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject **args, Py_ssize_t nargs, int event) +{ + PyThreadState *tstate = _PyThreadState_GET(); + PyInterpreterState *interp = tstate->interp; + + uint8_t tools = state->active; + assert(args[1] == NULL); + args[1] = codelike; + if (offset < 0) { + PyErr_SetString(PyExc_ValueError, "offset must be non-negative"); + return -1; + } + if (event != PY_MONITORING_EVENT_LINE) { + PyObject *offset_obj = PyLong_FromLong(offset); + if (offset_obj == NULL) { + return -1; + } + assert(args[2] == NULL); + args[2] = offset_obj; + } + size_t nargsf = (size_t) nargs | PY_VECTORCALL_ARGUMENTS_OFFSET; + PyObject **callargs = &args[1]; + int err = 0; + + while (tools) { + int tool = most_significant_bit(tools); + assert(tool >= 0 && tool < 8); + assert(tools & (1 << tool)); + tools ^= (1 << tool); + int res = call_one_instrument(interp, tstate, callargs, nargsf, tool, event); + if (res == 0) { + /* Nothing to do */ + } + else if (res < 0) { + /* error */ + err = -1; + break; + } + else { + /* DISABLE */ + if (!PY_MONITORING_IS_INSTRUMENTED_EVENT(event)) { + PyErr_Format(PyExc_ValueError, + "Cannot disable %s events. Callback removed.", + event_names[event]); + /* Clear tool to prevent infinite loop */ + Py_CLEAR(interp->monitoring_callables[tool][event]); + err = -1; + break; + } + else { + state->active &= ~(1 << tool); + } + } + } + return err; +} + +int +PyMonitoring_EnterScope(PyMonitoringState *state_array, uint64_t *version, + const uint8_t *event_types, Py_ssize_t length) +{ + PyInterpreterState *interp = _PyInterpreterState_GET(); + if (global_version(interp) == *version) { + return 0; + } + + _Py_GlobalMonitors *m = &interp->monitors; + for (Py_ssize_t i = 0; i < length; i++) { + int event = event_types[i]; + state_array[i].active = m->tools[event]; + } + *version = global_version(interp); + return 0; +} + +int +PyMonitoring_ExitScope(void) +{ + return 0; +} + +int +_PyMonitoring_FirePyStartEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + assert(state->active); + PyObject *args[3] = { NULL, NULL, NULL }; + return capi_call_instrumentation(state, codelike, offset, args, 2, + PY_MONITORING_EVENT_PY_START); +} + +int +_PyMonitoring_FirePyResumeEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + assert(state->active); + PyObject *args[3] = { NULL, NULL, NULL }; + return capi_call_instrumentation(state, codelike, offset, args, 2, + PY_MONITORING_EVENT_PY_RESUME); +} + + + +int +_PyMonitoring_FirePyReturnEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject* retval) +{ + assert(state->active); + PyObject *args[4] = { NULL, NULL, NULL, retval }; + return capi_call_instrumentation(state, codelike, offset, args, 3, + PY_MONITORING_EVENT_PY_RETURN); +} + +int +_PyMonitoring_FirePyYieldEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject* retval) +{ + assert(state->active); + PyObject *args[4] = { NULL, NULL, NULL, retval }; + return capi_call_instrumentation(state, codelike, offset, args, 3, + PY_MONITORING_EVENT_PY_YIELD); +} + +int +_PyMonitoring_FireCallEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject* callable, PyObject *arg0) +{ + assert(state->active); + PyObject *args[5] = { NULL, NULL, NULL, callable, arg0 }; + return capi_call_instrumentation(state, codelike, offset, args, 4, + PY_MONITORING_EVENT_CALL); +} + +int +_PyMonitoring_FireLineEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + int lineno) +{ + assert(state->active); + PyObject *lno = PyLong_FromLong(lineno); + if (lno == NULL) { + return -1; + } + PyObject *args[3] = { NULL, NULL, lno }; + int res= capi_call_instrumentation(state, codelike, offset, args, 2, + PY_MONITORING_EVENT_LINE); + Py_DECREF(lno); + return res; +} + +int +_PyMonitoring_FireJumpEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *target_offset) +{ + assert(state->active); + PyObject *args[4] = { NULL, NULL, NULL, target_offset }; + return capi_call_instrumentation(state, codelike, offset, args, 3, + PY_MONITORING_EVENT_JUMP); +} + +int +_PyMonitoring_FireBranchEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *target_offset) +{ + assert(state->active); + PyObject *args[4] = { NULL, NULL, NULL, target_offset }; + return capi_call_instrumentation(state, codelike, offset, args, 3, + PY_MONITORING_EVENT_BRANCH); +} + +int +_PyMonitoring_FireCReturnEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval) +{ + assert(state->active); + PyObject *args[4] = { NULL, NULL, NULL, retval }; + return capi_call_instrumentation(state, codelike, offset, args, 3, + PY_MONITORING_EVENT_C_RETURN); +} + +static inline int +exception_event_setup(PyObject **exc, int event) { + *exc = PyErr_GetRaisedException(); + if (*exc == NULL) { + PyErr_Format(PyExc_ValueError, + "Firing event %d with no exception set", + event); + return -1; + } + return 0; +} + + +static inline int +exception_event_teardown(int err, PyObject *exc) { + if (err == 0) { + PyErr_SetRaisedException(exc); + } + else { + assert(PyErr_Occurred()); + Py_XDECREF(exc); + } + return err; +} + +int +_PyMonitoring_FirePyThrowEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + int event = PY_MONITORING_EVENT_PY_THROW; + assert(state->active); + PyObject *exc; + if (exception_event_setup(&exc, event) < 0) { + return -1; + } + PyObject *args[4] = { NULL, NULL, NULL, exc }; + int err = capi_call_instrumentation(state, codelike, offset, args, 3, event); + return exception_event_teardown(err, exc); +} + +int +_PyMonitoring_FireRaiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + int event = PY_MONITORING_EVENT_RAISE; + assert(state->active); + PyObject *exc; + if (exception_event_setup(&exc, event) < 0) { + return -1; + } + PyObject *args[4] = { NULL, NULL, NULL, exc }; + int err = capi_call_instrumentation(state, codelike, offset, args, 3, event); + return exception_event_teardown(err, exc); +} + +int +_PyMonitoring_FireCRaiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + int event = PY_MONITORING_EVENT_C_RAISE; + assert(state->active); + PyObject *exc; + if (exception_event_setup(&exc, event) < 0) { + return -1; + } + PyObject *args[4] = { NULL, NULL, NULL, exc }; + int err = capi_call_instrumentation(state, codelike, offset, args, 3, event); + return exception_event_teardown(err, exc); +} + +int +_PyMonitoring_FireReraiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + int event = PY_MONITORING_EVENT_RERAISE; + assert(state->active); + PyObject *exc; + if (exception_event_setup(&exc, event) < 0) { + return -1; + } + PyObject *args[4] = { NULL, NULL, NULL, exc }; + int err = capi_call_instrumentation(state, codelike, offset, args, 3, event); + return exception_event_teardown(err, exc); +} + +int +_PyMonitoring_FireExceptionHandledEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + int event = PY_MONITORING_EVENT_EXCEPTION_HANDLED; + assert(state->active); + PyObject *exc; + if (exception_event_setup(&exc, event) < 0) { + return -1; + } + PyObject *args[4] = { NULL, NULL, NULL, exc }; + int err = capi_call_instrumentation(state, codelike, offset, args, 3, event); + return exception_event_teardown(err, exc); +} + +int +_PyMonitoring_FirePyUnwindEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + int event = PY_MONITORING_EVENT_PY_UNWIND; + assert(state->active); + PyObject *exc; + if (exception_event_setup(&exc, event) < 0) { + return -1; + } + PyObject *args[4] = { NULL, NULL, NULL, exc }; + int err = capi_call_instrumentation(state, codelike, offset, args, 3, event); + return exception_event_teardown(err, exc); +} + +int +_PyMonitoring_FireStopIterationEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, PyObject *value) +{ + int event = PY_MONITORING_EVENT_STOP_ITERATION; + assert(state->active); + assert(!PyErr_Occurred()); + PyErr_SetObject(PyExc_StopIteration, value); + PyObject *exc; + if (exception_event_setup(&exc, event) < 0) { + return -1; + } + PyObject *args[4] = { NULL, NULL, NULL, exc }; + int err = capi_call_instrumentation(state, codelike, offset, args, 3, event); + Py_DECREF(exc); + return exception_event_teardown(err, NULL); +} diff --git a/contrib/tools/python3/Python/interpconfig.c b/contrib/tools/python3/Python/interpconfig.c new file mode 100644 index 00000000000..54e5dca284c --- /dev/null +++ b/contrib/tools/python3/Python/interpconfig.c @@ -0,0 +1,268 @@ +/* PyInterpreterConfig API */ + +#include "Python.h" +#include "pycore_pylifecycle.h" + +#include + +#include "config_common.h" + + +static const char * +gil_flag_to_str(int flag) +{ + switch (flag) { + case PyInterpreterConfig_DEFAULT_GIL: + return "default"; + case PyInterpreterConfig_SHARED_GIL: + return "shared"; + case PyInterpreterConfig_OWN_GIL: + return "own"; + default: + PyErr_SetString(PyExc_SystemError, + "invalid interpreter config 'gil' value"); + return NULL; + } +} + +static int +gil_flag_from_str(const char *str, int *p_flag) +{ + int flag; + if (str == NULL) { + flag = PyInterpreterConfig_DEFAULT_GIL; + } + else if (strcmp(str, "default") == 0) { + flag = PyInterpreterConfig_DEFAULT_GIL; + } + else if (strcmp(str, "shared") == 0) { + flag = PyInterpreterConfig_SHARED_GIL; + } + else if (strcmp(str, "own") == 0) { + flag = PyInterpreterConfig_OWN_GIL; + } + else { + PyErr_Format(PyExc_ValueError, + "unsupported interpreter config .gil value '%s'", str); + return -1; + } + *p_flag = flag; + return 0; +} + +PyObject * +_PyInterpreterConfig_AsDict(PyInterpreterConfig *config) +{ + PyObject *dict = PyDict_New(); + if (dict == NULL) { + return NULL; + } + +#define ADD(NAME, OBJ) \ + do { \ + int res = PyDict_SetItemString(dict, NAME, (OBJ)); \ + Py_DECREF(OBJ); \ + if (res < 0) { \ + goto error; \ + } \ + } while (0) +#define ADD_BOOL(FIELD) \ + ADD(#FIELD, Py_NewRef(config->FIELD ? Py_True : Py_False)) +#define ADD_STR(FIELD, STR) \ + do { \ + if (STR == NULL) { \ + goto error; \ + } \ + PyObject *obj = PyUnicode_FromString(STR); \ + if (obj == NULL) { \ + goto error; \ + } \ + ADD(#FIELD, obj); \ + } while (0) + + ADD_BOOL(use_main_obmalloc); + ADD_BOOL(allow_fork); + ADD_BOOL(allow_exec); + ADD_BOOL(allow_threads); + ADD_BOOL(allow_daemon_threads); + ADD_BOOL(check_multi_interp_extensions); + + ADD_STR(gil, gil_flag_to_str(config->gil)); + +#undef ADD_STR +#undef ADD_BOOL +#undef ADD + + return dict; + +error: + Py_DECREF(dict); + return NULL; +} + +static int +_config_dict_get_bool(PyObject *dict, const char *name, int *p_flag) +{ + PyObject *item; + if (_config_dict_get(dict, name, &item) < 0) { + return -1; + } + // For now we keep things strict, rather than using PyObject_IsTrue(). + int flag = item == Py_True; + if (!flag && item != Py_False) { + Py_DECREF(item); + config_dict_invalid_type(name); + return -1; + } + Py_DECREF(item); + *p_flag = flag; + return 0; +} + +static int +_config_dict_copy_str(PyObject *dict, const char *name, + char *buf, size_t bufsize) +{ + PyObject *item; + if (_config_dict_get(dict, name, &item) < 0) { + return -1; + } + if (!PyUnicode_Check(item)) { + Py_DECREF(item); + config_dict_invalid_type(name); + return -1; + } + strncpy(buf, PyUnicode_AsUTF8(item), bufsize-1); + buf[bufsize-1] = '\0'; + Py_DECREF(item); + return 0; +} + +static int +interp_config_from_dict(PyObject *origdict, PyInterpreterConfig *config, + bool missing_allowed) +{ + PyObject *dict = PyDict_New(); + if (dict == NULL) { + return -1; + } + if (PyDict_Update(dict, origdict) < 0) { + goto error; + } + +#define CHECK(NAME) \ + do { \ + if (PyErr_Occurred()) { \ + goto error; \ + } \ + else { \ + if (!missing_allowed) { \ + (void)config_dict_get(dict, NAME); \ + assert(PyErr_Occurred()); \ + goto error; \ + } \ + } \ + } while (0) +#define COPY_BOOL(FIELD) \ + do { \ + int flag; \ + if (_config_dict_get_bool(dict, #FIELD, &flag) < 0) { \ + CHECK(#FIELD); \ + } \ + else { \ + config->FIELD = flag; \ + (void)PyDict_PopString(dict, #FIELD, NULL); \ + } \ + } while (0) + + COPY_BOOL(use_main_obmalloc); + COPY_BOOL(allow_fork); + COPY_BOOL(allow_exec); + COPY_BOOL(allow_threads); + COPY_BOOL(allow_daemon_threads); + COPY_BOOL(check_multi_interp_extensions); + + // PyInterpreterConfig.gil + char buf[20]; + if (_config_dict_copy_str(dict, "gil", buf, 20) < 0) { + CHECK("gil"); + } + else { + int flag; + if (gil_flag_from_str(buf, &flag) < 0) { + goto error; + } + config->gil = flag; + (void)PyDict_PopString(dict, "gil", NULL); + } + +#undef COPY_BOOL +#undef CHECK + + Py_ssize_t unused = PyDict_GET_SIZE(dict); + if (unused == 1) { + PyErr_Format(PyExc_ValueError, + "config dict has 1 extra item (%R)", dict); + goto error; + } + else if (unused > 0) { + PyErr_Format(PyExc_ValueError, + "config dict has %d extra items (%R)", unused, dict); + goto error; + } + + Py_DECREF(dict); + return 0; + +error: + Py_DECREF(dict); + return -1; +} + +int +_PyInterpreterConfig_InitFromDict(PyInterpreterConfig *config, PyObject *dict) +{ + if (!PyDict_Check(dict)) { + PyErr_SetString(PyExc_TypeError, "dict expected"); + return -1; + } + if (interp_config_from_dict(dict, config, false) < 0) { + return -1; + } + return 0; +} + +int +_PyInterpreterConfig_UpdateFromDict(PyInterpreterConfig *config, PyObject *dict) +{ + if (!PyDict_Check(dict)) { + PyErr_SetString(PyExc_TypeError, "dict expected"); + return -1; + } + if (interp_config_from_dict(dict, config, true) < 0) { + return -1; + } + return 0; +} + +int +_PyInterpreterConfig_InitFromState(PyInterpreterConfig *config, + PyInterpreterState *interp) +{ + // Populate the config by re-constructing the values from the interpreter. + *config = (PyInterpreterConfig){ +#define FLAG(flag) \ + (interp->feature_flags & Py_RTFLAGS_ ## flag) + .use_main_obmalloc = FLAG(USE_MAIN_OBMALLOC), + .allow_fork = FLAG(FORK), + .allow_exec = FLAG(EXEC), + .allow_threads = FLAG(THREADS), + .allow_daemon_threads = FLAG(DAEMON_THREADS), + .check_multi_interp_extensions = FLAG(MULTI_INTERP_EXTENSIONS), +#undef FLAG + .gil = interp->ceval.own_gil + ? PyInterpreterConfig_OWN_GIL + : PyInterpreterConfig_SHARED_GIL, + }; + return 0; +} diff --git a/contrib/tools/python3/Python/intrinsics.c b/contrib/tools/python3/Python/intrinsics.c index 50b279693bf..275e28f032e 100644 --- a/contrib/tools/python3/Python/intrinsics.c +++ b/contrib/tools/python3/Python/intrinsics.c @@ -4,18 +4,19 @@ #include "Python.h" #include "pycore_frame.h" #include "pycore_function.h" -#include "pycore_runtime.h" #include "pycore_global_objects.h" -#include "pycore_intrinsics.h" -#include "pycore_pyerrors.h" +#include "pycore_compile.h" // _PyCompile_GetUnaryIntrinsicName, etc +#include "pycore_intrinsics.h" // INTRINSIC_PRINT +#include "pycore_pyerrors.h" // _PyErr_SetString() +#include "pycore_runtime.h" // _Py_ID() #include "pycore_sysmodule.h" // _PySys_GetRequiredAttr() -#include "pycore_typevarobject.h" +#include "pycore_typevarobject.h" // _Py_make_typevar() /******** Unary functions ********/ static PyObject * -no_intrinsic(PyThreadState* tstate, PyObject *unused) +no_intrinsic1(PyThreadState* tstate, PyObject *unused) { _PyErr_SetString(tstate, PyExc_SystemError, "invalid intrinsic function"); return NULL; @@ -41,11 +42,11 @@ import_all_from(PyThreadState *tstate, PyObject *locals, PyObject *v) int skip_leading_underscores = 0; int pos, err; - if (_PyObject_LookupAttr(v, &_Py_ID(__all__), &all) < 0) { + if (PyObject_GetOptionalAttr(v, &_Py_ID(__all__), &all) < 0) { return -1; /* Unexpected error */ } if (all == NULL) { - if (_PyObject_LookupAttr(v, &_Py_ID(__dict__), &dict) < 0) { + if (PyObject_GetOptionalAttr(v, &_Py_ID(__dict__), &dict) < 0) { return -1; } if (dict == NULL) { @@ -97,11 +98,6 @@ import_all_from(PyThreadState *tstate, PyObject *locals, PyObject *v) break; } if (skip_leading_underscores) { - if (PyUnicode_READY(name) == -1) { - Py_DECREF(name); - err = -1; - break; - } if (PyUnicode_READ_CHAR(name, 0) == '_') { Py_DECREF(name); continue; @@ -126,19 +122,16 @@ import_all_from(PyThreadState *tstate, PyObject *locals, PyObject *v) static PyObject * import_star(PyThreadState* tstate, PyObject *from) { - _PyInterpreterFrame *frame = tstate->cframe->current_frame; - if (_PyFrame_FastToLocalsWithError(frame) < 0) { - return NULL; - } + _PyInterpreterFrame *frame = tstate->current_frame; - PyObject *locals = frame->f_locals; + PyObject *locals = _PyFrame_GetLocals(frame); if (locals == NULL) { _PyErr_SetString(tstate, PyExc_SystemError, "no locals found during 'import *'"); return NULL; } int err = import_all_from(tstate, locals, from); - _PyFrame_LocalsToFast(frame, 0); + Py_DECREF(locals); if (err < 0) { return NULL; } @@ -148,20 +141,20 @@ import_star(PyThreadState* tstate, PyObject *from) static PyObject * stopiteration_error(PyThreadState* tstate, PyObject *exc) { - _PyInterpreterFrame *frame = tstate->cframe->current_frame; + _PyInterpreterFrame *frame = tstate->current_frame; assert(frame->owner == FRAME_OWNED_BY_GENERATOR); assert(PyExceptionInstance_Check(exc)); const char *msg = NULL; if (PyErr_GivenExceptionMatches(exc, PyExc_StopIteration)) { msg = "generator raised StopIteration"; - if (frame->f_code->co_flags & CO_ASYNC_GENERATOR) { + if (_PyFrame_GetCode(frame)->co_flags & CO_ASYNC_GENERATOR) { msg = "async generator raised StopIteration"; } - else if (frame->f_code->co_flags & CO_COROUTINE) { + else if (_PyFrame_GetCode(frame)->co_flags & CO_COROUTINE) { msg = "coroutine raised StopIteration"; } } - else if ((frame->f_code->co_flags & CO_ASYNC_GENERATOR) && + else if ((_PyFrame_GetCode(frame)->co_flags & CO_ASYNC_GENERATOR) && PyErr_GivenExceptionMatches(exc, PyExc_StopAsyncIteration)) { /* code in `gen` raised a StopAsyncIteration error: @@ -209,25 +202,35 @@ make_typevar(PyThreadState* Py_UNUSED(ignored), PyObject *v) return _Py_make_typevar(v, NULL, NULL); } -const instrinsic_func1 + +#define INTRINSIC_FUNC_ENTRY(N, F) \ + [N] = {F, #N}, + +const intrinsic_func1_info _PyIntrinsics_UnaryFunctions[] = { - [0] = no_intrinsic, - [INTRINSIC_PRINT] = print_expr, - [INTRINSIC_IMPORT_STAR] = import_star, - [INTRINSIC_STOPITERATION_ERROR] = stopiteration_error, - [INTRINSIC_ASYNC_GEN_WRAP] = _PyAsyncGenValueWrapperNew, - [INTRINSIC_UNARY_POSITIVE] = unary_pos, - [INTRINSIC_LIST_TO_TUPLE] = list_to_tuple, - [INTRINSIC_TYPEVAR] = make_typevar, - [INTRINSIC_PARAMSPEC] = _Py_make_paramspec, - [INTRINSIC_TYPEVARTUPLE] = _Py_make_typevartuple, - [INTRINSIC_SUBSCRIPT_GENERIC] = _Py_subscript_generic, - [INTRINSIC_TYPEALIAS] = _Py_make_typealias, + INTRINSIC_FUNC_ENTRY(INTRINSIC_1_INVALID, no_intrinsic1) + INTRINSIC_FUNC_ENTRY(INTRINSIC_PRINT, print_expr) + INTRINSIC_FUNC_ENTRY(INTRINSIC_IMPORT_STAR, import_star) + INTRINSIC_FUNC_ENTRY(INTRINSIC_STOPITERATION_ERROR, stopiteration_error) + INTRINSIC_FUNC_ENTRY(INTRINSIC_ASYNC_GEN_WRAP, _PyAsyncGenValueWrapperNew) + INTRINSIC_FUNC_ENTRY(INTRINSIC_UNARY_POSITIVE, unary_pos) + INTRINSIC_FUNC_ENTRY(INTRINSIC_LIST_TO_TUPLE, list_to_tuple) + INTRINSIC_FUNC_ENTRY(INTRINSIC_TYPEVAR, make_typevar) + INTRINSIC_FUNC_ENTRY(INTRINSIC_PARAMSPEC, _Py_make_paramspec) + INTRINSIC_FUNC_ENTRY(INTRINSIC_TYPEVARTUPLE, _Py_make_typevartuple) + INTRINSIC_FUNC_ENTRY(INTRINSIC_SUBSCRIPT_GENERIC, _Py_subscript_generic) + INTRINSIC_FUNC_ENTRY(INTRINSIC_TYPEALIAS, _Py_make_typealias) }; /******** Binary functions ********/ +static PyObject * +no_intrinsic2(PyThreadState* tstate, PyObject *unused1, PyObject *unused2) +{ + _PyErr_SetString(tstate, PyExc_SystemError, "invalid intrinsic function"); + return NULL; +} static PyObject * prep_reraise_star(PyThreadState* unused, PyObject *orig, PyObject *excs) @@ -252,10 +255,32 @@ make_typevar_with_constraints(PyThreadState* Py_UNUSED(ignored), PyObject *name, return _Py_make_typevar(name, NULL, evaluate_constraints); } -const instrinsic_func2 +const intrinsic_func2_info _PyIntrinsics_BinaryFunctions[] = { - [INTRINSIC_PREP_RERAISE_STAR] = prep_reraise_star, - [INTRINSIC_TYPEVAR_WITH_BOUND] = make_typevar_with_bound, - [INTRINSIC_TYPEVAR_WITH_CONSTRAINTS] = make_typevar_with_constraints, - [INTRINSIC_SET_FUNCTION_TYPE_PARAMS] = _Py_set_function_type_params, + INTRINSIC_FUNC_ENTRY(INTRINSIC_2_INVALID, no_intrinsic2) + INTRINSIC_FUNC_ENTRY(INTRINSIC_PREP_RERAISE_STAR, prep_reraise_star) + INTRINSIC_FUNC_ENTRY(INTRINSIC_TYPEVAR_WITH_BOUND, make_typevar_with_bound) + INTRINSIC_FUNC_ENTRY(INTRINSIC_TYPEVAR_WITH_CONSTRAINTS, make_typevar_with_constraints) + INTRINSIC_FUNC_ENTRY(INTRINSIC_SET_FUNCTION_TYPE_PARAMS, _Py_set_function_type_params) + INTRINSIC_FUNC_ENTRY(INTRINSIC_SET_TYPEPARAM_DEFAULT, _Py_set_typeparam_default) }; + +#undef INTRINSIC_FUNC_ENTRY + +PyObject* +_PyCompile_GetUnaryIntrinsicName(int index) +{ + if (index < 0 || index > MAX_INTRINSIC_1) { + return NULL; + } + return PyUnicode_FromString(_PyIntrinsics_UnaryFunctions[index].name); +} + +PyObject* +_PyCompile_GetBinaryIntrinsicName(int index) +{ + if (index < 0 || index > MAX_INTRINSIC_2) { + return NULL; + } + return PyUnicode_FromString(_PyIntrinsics_BinaryFunctions[index].name); +} diff --git a/contrib/tools/python3/Python/legacy_tracing.c b/contrib/tools/python3/Python/legacy_tracing.c index 4a6565bebc1..d7a195cf166 100644 --- a/contrib/tools/python3/Python/legacy_tracing.c +++ b/contrib/tools/python3/Python/legacy_tracing.c @@ -2,12 +2,13 @@ * Provides callables to forward PEP 669 events to legacy events. */ -#include #include "Python.h" -#include "opcode.h" -#include "pycore_ceval.h" +#include "pycore_ceval.h" // export _PyEval_SetProfile() #include "pycore_object.h" -#include "pycore_sysmodule.h" +#include "pycore_sysmodule.h" // _PySys_Audit() + +#include "opcode.h" +#include typedef struct _PyLegacyEventHandler { PyObject_HEAD @@ -15,6 +16,13 @@ typedef struct _PyLegacyEventHandler { int event; } _PyLegacyEventHandler; +#ifdef Py_GIL_DISABLED +#define LOCK_SETUP() PyMutex_Lock(&_PyRuntime.ceval.sys_trace_profile_mutex); +#define UNLOCK_SETUP() PyMutex_Unlock(&_PyRuntime.ceval.sys_trace_profile_mutex); +#else +#define LOCK_SETUP() +#define UNLOCK_SETUP() +#endif /* The Py_tracefunc function expects the following arguments: * obj: the trace object (PyObject *) * frame: the current frame (PyFrameObject *) @@ -45,7 +53,7 @@ call_profile_func(_PyLegacyEventHandler *self, PyObject *arg) } static PyObject * -sys_profile_func2( +sys_profile_start( _PyLegacyEventHandler *self, PyObject *const *args, size_t nargsf, PyObject *kwnames ) { @@ -55,7 +63,17 @@ sys_profile_func2( } static PyObject * -sys_profile_func3( +sys_profile_throw( + _PyLegacyEventHandler *self, PyObject *const *args, + size_t nargsf, PyObject *kwnames +) { + assert(kwnames == NULL); + assert(PyVectorcall_NARGS(nargsf) == 3); + return call_profile_func(self, Py_None); +} + +static PyObject * +sys_profile_return( _PyLegacyEventHandler *self, PyObject *const *args, size_t nargsf, PyObject *kwnames ) { @@ -71,7 +89,7 @@ sys_profile_unwind( ) { assert(kwnames == NULL); assert(PyVectorcall_NARGS(nargsf) == 3); - return call_profile_func(self, Py_None); + return call_profile_func(self, NULL); } static PyObject * @@ -119,6 +137,54 @@ sys_profile_call_or_return( Py_RETURN_NONE; } +static int +set_opcode_trace_world_stopped(PyCodeObject *code, bool enable) +{ + _PyMonitoringEventSet events = 0; + if (_PyMonitoring_GetLocalEvents(code, PY_MONITORING_SYS_TRACE_ID, &events) < 0) { + return -1; + } + + if (enable) { + if (events & (1 << PY_MONITORING_EVENT_INSTRUCTION)) { + return 0; + } + events |= (1 << PY_MONITORING_EVENT_INSTRUCTION); + } else { + if (!(events & (1 << PY_MONITORING_EVENT_INSTRUCTION))) { + return 0; + } + events &= (~(1 << PY_MONITORING_EVENT_INSTRUCTION)); + } + return _PyMonitoring_SetLocalEvents(code, PY_MONITORING_SYS_TRACE_ID, events); +} + +int +_PyEval_SetOpcodeTrace(PyFrameObject *frame, bool enable) +{ + assert(frame != NULL); + + PyCodeObject *code = _PyFrame_GetCode(frame->f_frame); + +#ifdef Py_GIL_DISABLED + // First check if a change is necessary outside of the stop-the-world pause + _PyMonitoringEventSet events = 0; + if (_PyMonitoring_GetLocalEvents(code, PY_MONITORING_SYS_TRACE_ID, &events) < 0) { + return -1; + } + int is_enabled = (events & (1 << PY_MONITORING_EVENT_INSTRUCTION)) != 0; + if (is_enabled == enable) { + return 0; // No change needed + } +#endif + + PyInterpreterState *interp = _PyInterpreterState_GET(); + _PyEval_StopTheWorld(interp); + int res = set_opcode_trace_world_stopped(code, enable); + _PyEval_StartTheWorld(interp); + return res; +} + static PyObject * call_trace_func(_PyLegacyEventHandler *self, PyObject *arg) { @@ -132,8 +198,15 @@ call_trace_func(_PyLegacyEventHandler *self, PyObject *arg) "Missing frame when calling trace function."); return NULL; } + if (frame->f_trace_opcodes) { + if (_PyEval_SetOpcodeTrace(frame, true) != 0) { + return NULL; + } + } + Py_INCREF(frame); int err = tstate->c_tracefunc(tstate->c_traceobj, frame, self->event, arg); + frame->f_lineno = 0; Py_DECREF(frame); if (err) { return NULL; @@ -166,7 +239,7 @@ sys_trace_exception_func( } static PyObject * -sys_trace_func2( +sys_trace_start( _PyLegacyEventHandler *self, PyObject *const *args, size_t nargsf, PyObject *kwnames ) { @@ -176,7 +249,7 @@ sys_trace_func2( } static PyObject * -sys_trace_func3( +sys_trace_throw( _PyLegacyEventHandler *self, PyObject *const *args, size_t nargsf, PyObject *kwnames ) { @@ -185,6 +258,16 @@ sys_trace_func3( return call_trace_func(self, Py_None); } +static PyObject * +sys_trace_unwind( + _PyLegacyEventHandler *self, PyObject *const *args, + size_t nargsf, PyObject *kwnames +) { + assert(kwnames == NULL); + assert(PyVectorcall_NARGS(nargsf) == 3); + return call_trace_func(self, NULL); +} + static PyObject * sys_trace_return( _PyLegacyEventHandler *self, PyObject *const *args, @@ -222,11 +305,14 @@ sys_trace_instruction_func( "Missing frame when calling trace function."); return NULL; } - if (!frame->f_trace_opcodes) { + PyThreadState *tstate = _PyThreadState_GET(); + if (!tstate->c_tracefunc || !frame->f_trace_opcodes) { + if (_PyEval_SetOpcodeTrace(frame, false) != 0) { + return NULL; + } Py_RETURN_NONE; } Py_INCREF(frame); - PyThreadState *tstate = _PyThreadState_GET(); int err = tstate->c_tracefunc(tstate->c_traceobj, frame, self->event, Py_None); frame->f_lineno = 0; Py_DECREF(frame); @@ -269,7 +355,7 @@ sys_trace_line_func( Py_RETURN_NONE; } assert(PyVectorcall_NARGS(nargsf) == 2); - int line = _PyLong_AsInt(args[1]); + int line = PyLong_AsInt(args[1]); assert(line >= 0); PyFrameObject *frame = PyEval_GetFrame(); if (frame == NULL) { @@ -277,7 +363,7 @@ sys_trace_line_func( "Missing frame when calling trace function."); return NULL; } - assert(args[0] == (PyObject *)frame->f_frame->f_code); + assert(args[0] == (PyObject *)_PyFrame_GetCode(frame->f_frame)); return trace_line(tstate, self, frame, line); } @@ -295,9 +381,9 @@ sys_trace_jump_func( Py_RETURN_NONE; } assert(PyVectorcall_NARGS(nargsf) == 3); - int from = _PyLong_AsInt(args[1])/sizeof(_Py_CODEUNIT); + int from = PyLong_AsInt(args[1])/sizeof(_Py_CODEUNIT); assert(from >= 0); - int to = _PyLong_AsInt(args[2])/sizeof(_Py_CODEUNIT); + int to = PyLong_AsInt(args[2])/sizeof(_Py_CODEUNIT); assert(to >= 0); if (to > from) { /* Forward jump */ @@ -319,7 +405,6 @@ sys_trace_jump_func( "Missing frame when calling trace function."); return NULL; } - assert(code == frame->f_frame->f_code); if (!frame->f_trace_lines) { Py_RETURN_NONE; } @@ -369,69 +454,65 @@ is_tstate_valid(PyThreadState *tstate) } #endif -int -_PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) +static int +setup_profile_callbacks(void *Py_UNUSED(arg)) { - assert(is_tstate_valid(tstate)); - /* The caller must hold the GIL */ - assert(PyGILState_Check()); - - /* Call _PySys_Audit() in the context of the current thread state, - even if tstate is not the current thread state. */ - PyThreadState *current_tstate = _PyThreadState_GET(); - if (_PySys_Audit(current_tstate, "sys.setprofile", NULL) < 0) { + /* Setup PEP 669 monitoring callbacks and events. */ + if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, + (vectorcallfunc)sys_profile_start, PyTrace_CALL, + PY_MONITORING_EVENT_PY_START, PY_MONITORING_EVENT_PY_RESUME)) { return -1; } - /* Setup PEP 669 monitoring callbacks and events. */ - if (!tstate->interp->sys_profile_initialized) { - tstate->interp->sys_profile_initialized = true; - if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, - (vectorcallfunc)sys_profile_func2, PyTrace_CALL, - PY_MONITORING_EVENT_PY_START, PY_MONITORING_EVENT_PY_RESUME)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, - (vectorcallfunc)sys_profile_func3, PyTrace_CALL, - PY_MONITORING_EVENT_PY_THROW, -1)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, - (vectorcallfunc)sys_profile_func3, PyTrace_RETURN, - PY_MONITORING_EVENT_PY_RETURN, PY_MONITORING_EVENT_PY_YIELD)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, - (vectorcallfunc)sys_profile_unwind, PyTrace_RETURN, - PY_MONITORING_EVENT_PY_UNWIND, -1)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, - (vectorcallfunc)sys_profile_call_or_return, PyTrace_C_CALL, - PY_MONITORING_EVENT_CALL, -1)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, - (vectorcallfunc)sys_profile_call_or_return, PyTrace_C_RETURN, - PY_MONITORING_EVENT_C_RETURN, -1)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, - (vectorcallfunc)sys_profile_call_or_return, PyTrace_C_EXCEPTION, - PY_MONITORING_EVENT_C_RAISE, -1)) { - return -1; - } + if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, + (vectorcallfunc)sys_profile_throw, PyTrace_CALL, + PY_MONITORING_EVENT_PY_THROW, -1)) { + return -1; + } + if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, + (vectorcallfunc)sys_profile_return, PyTrace_RETURN, + PY_MONITORING_EVENT_PY_RETURN, PY_MONITORING_EVENT_PY_YIELD)) { + return -1; + } + if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, + (vectorcallfunc)sys_profile_unwind, PyTrace_RETURN, + PY_MONITORING_EVENT_PY_UNWIND, -1)) { + return -1; + } + if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, + (vectorcallfunc)sys_profile_call_or_return, PyTrace_C_CALL, + PY_MONITORING_EVENT_CALL, -1)) { + return -1; + } + if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, + (vectorcallfunc)sys_profile_call_or_return, PyTrace_C_RETURN, + PY_MONITORING_EVENT_C_RETURN, -1)) { + return -1; + } + if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID, + (vectorcallfunc)sys_profile_call_or_return, PyTrace_C_EXCEPTION, + PY_MONITORING_EVENT_C_RAISE, -1)) { + return -1; } +return 0; +} +static PyObject * +swap_profile_func_arg(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) +{ int delta = (func != NULL) - (tstate->c_profilefunc != NULL); tstate->c_profilefunc = func; PyObject *old_profileobj = tstate->c_profileobj; tstate->c_profileobj = Py_XNewRef(arg); - Py_XDECREF(old_profileobj); tstate->interp->sys_profiling_threads += delta; assert(tstate->interp->sys_profiling_threads >= 0); + return old_profileobj; +} +static int +set_monitoring_profile_events(PyInterpreterState *interp) +{ uint32_t events = 0; - if (tstate->interp->sys_profiling_threads) { + if (interp->sys_profiling_threads) { events = (1 << PY_MONITORING_EVENT_PY_START) | (1 << PY_MONITORING_EVENT_PY_RESUME) | (1 << PY_MONITORING_EVENT_PY_RETURN) | (1 << PY_MONITORING_EVENT_PY_YIELD) | @@ -442,7 +523,7 @@ _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) } int -_PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) +_PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) { assert(is_tstate_valid(tstate)); /* The caller must hold the GIL */ @@ -451,82 +532,242 @@ _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) /* Call _PySys_Audit() in the context of the current thread state, even if tstate is not the current thread state. */ PyThreadState *current_tstate = _PyThreadState_GET(); - if (_PySys_Audit(current_tstate, "sys.settrace", NULL) < 0) { + if (_PySys_Audit(current_tstate, "sys.setprofile", NULL) < 0) { return -1; } - assert(tstate->interp->sys_tracing_threads >= 0); + PyInterpreterState *interp = tstate->interp; + if (_PyOnceFlag_CallOnce(&interp->sys_profile_once_flag, + setup_profile_callbacks, NULL) < 0) { + return -1; + } + + _PyEval_StopTheWorld(interp); + PyObject *old_profileobj = swap_profile_func_arg(tstate, func, arg); + int ret = set_monitoring_profile_events(interp); + _PyEval_StartTheWorld(interp); + Py_XDECREF(old_profileobj); // needs to be decref'd outside of stop-the-world + return ret; +} + +int +_PyEval_SetProfileAllThreads(PyInterpreterState *interp, Py_tracefunc func, PyObject *arg) +{ + PyThreadState *current_tstate = _PyThreadState_GET(); + assert(is_tstate_valid(current_tstate)); + assert(current_tstate->interp == interp); + + if (_PySys_Audit(current_tstate, "sys.setprofile", NULL) < 0) { + return -1; + } + + if (_PyOnceFlag_CallOnce(&interp->sys_profile_once_flag, + setup_profile_callbacks, NULL) < 0) { + return -1; + } + + PyObject *old_profileobjs = NULL; + _PyEval_StopTheWorld(interp); + HEAD_LOCK(&_PyRuntime); + Py_ssize_t num_thread_states = 0; + for (PyThreadState *p = interp->threads.head; p; p = p->next) { + num_thread_states++; + } + old_profileobjs = PyTuple_New(num_thread_states); + if (old_profileobjs == NULL) { + HEAD_UNLOCK(&_PyRuntime); + _PyEval_StartTheWorld(interp); + return -1; + } + for (PyThreadState *tstate = interp->threads.head; tstate; tstate = tstate->next) { + PyObject *old = swap_profile_func_arg(tstate, func, arg); + PyTuple_SET_ITEM(old_profileobjs, --num_thread_states, old); + } + HEAD_UNLOCK(&_PyRuntime); + int ret = set_monitoring_profile_events(interp); + _PyEval_StartTheWorld(interp); + Py_XDECREF(old_profileobjs); // needs to be decref'd outside of stop-the-world + return ret; +} + +static int +setup_trace_callbacks(void *Py_UNUSED(arg)) +{ /* Setup PEP 669 monitoring callbacks and events. */ - if (!tstate->interp->sys_trace_initialized) { - tstate->interp->sys_trace_initialized = true; - if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, - (vectorcallfunc)sys_trace_func2, PyTrace_CALL, - PY_MONITORING_EVENT_PY_START, PY_MONITORING_EVENT_PY_RESUME)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, - (vectorcallfunc)sys_trace_func3, PyTrace_CALL, - PY_MONITORING_EVENT_PY_THROW, -1)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, - (vectorcallfunc)sys_trace_return, PyTrace_RETURN, - PY_MONITORING_EVENT_PY_RETURN, -1)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, - (vectorcallfunc)sys_trace_yield, PyTrace_RETURN, - PY_MONITORING_EVENT_PY_YIELD, -1)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, - (vectorcallfunc)sys_trace_exception_func, PyTrace_EXCEPTION, - PY_MONITORING_EVENT_RAISE, PY_MONITORING_EVENT_STOP_ITERATION)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, - (vectorcallfunc)sys_trace_line_func, PyTrace_LINE, - PY_MONITORING_EVENT_LINE, -1)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, - (vectorcallfunc)sys_trace_func3, PyTrace_RETURN, - PY_MONITORING_EVENT_PY_UNWIND, -1)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, - (vectorcallfunc)sys_trace_jump_func, PyTrace_LINE, - PY_MONITORING_EVENT_JUMP, -1)) { - return -1; - } - if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, - (vectorcallfunc)sys_trace_instruction_func, PyTrace_OPCODE, - PY_MONITORING_EVENT_INSTRUCTION, -1)) { - return -1; - } + if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, + (vectorcallfunc)sys_trace_start, PyTrace_CALL, + PY_MONITORING_EVENT_PY_START, PY_MONITORING_EVENT_PY_RESUME)) { + return -1; + } + if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, + (vectorcallfunc)sys_trace_throw, PyTrace_CALL, + PY_MONITORING_EVENT_PY_THROW, -1)) { + return -1; + } + if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, + (vectorcallfunc)sys_trace_return, PyTrace_RETURN, + PY_MONITORING_EVENT_PY_RETURN, -1)) { + return -1; + } + if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, + (vectorcallfunc)sys_trace_yield, PyTrace_RETURN, + PY_MONITORING_EVENT_PY_YIELD, -1)) { + return -1; + } + if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, + (vectorcallfunc)sys_trace_exception_func, PyTrace_EXCEPTION, + PY_MONITORING_EVENT_RAISE, PY_MONITORING_EVENT_STOP_ITERATION)) { + return -1; + } + if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, + (vectorcallfunc)sys_trace_line_func, PyTrace_LINE, + PY_MONITORING_EVENT_LINE, -1)) { + return -1; + } + if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, + (vectorcallfunc)sys_trace_unwind, PyTrace_RETURN, + PY_MONITORING_EVENT_PY_UNWIND, -1)) { + return -1; + } + if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, + (vectorcallfunc)sys_trace_jump_func, PyTrace_LINE, + PY_MONITORING_EVENT_JUMP, -1)) { + return -1; } + if (set_callbacks(PY_MONITORING_SYS_TRACE_ID, + (vectorcallfunc)sys_trace_instruction_func, PyTrace_OPCODE, + PY_MONITORING_EVENT_INSTRUCTION, -1)) { + return -1; + } + return 0; +} +static PyObject * +swap_trace_func_arg(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) +{ int delta = (func != NULL) - (tstate->c_tracefunc != NULL); tstate->c_tracefunc = func; PyObject *old_traceobj = tstate->c_traceobj; tstate->c_traceobj = Py_XNewRef(arg); - Py_XDECREF(old_traceobj); tstate->interp->sys_tracing_threads += delta; assert(tstate->interp->sys_tracing_threads >= 0); + return old_traceobj; +} +static int +set_monitoring_trace_events(PyInterpreterState *interp) +{ uint32_t events = 0; - if (tstate->interp->sys_tracing_threads) { + if (interp->sys_tracing_threads) { events = (1 << PY_MONITORING_EVENT_PY_START) | (1 << PY_MONITORING_EVENT_PY_RESUME) | (1 << PY_MONITORING_EVENT_PY_RETURN) | (1 << PY_MONITORING_EVENT_PY_YIELD) | (1 << PY_MONITORING_EVENT_RAISE) | (1 << PY_MONITORING_EVENT_LINE) | - (1 << PY_MONITORING_EVENT_JUMP) | (1 << PY_MONITORING_EVENT_BRANCH) | + (1 << PY_MONITORING_EVENT_JUMP) | (1 << PY_MONITORING_EVENT_PY_UNWIND) | (1 << PY_MONITORING_EVENT_PY_THROW) | - (1 << PY_MONITORING_EVENT_STOP_ITERATION) | - (1 << PY_MONITORING_EVENT_EXCEPTION_HANDLED); - if (tstate->interp->f_opcode_trace_set) { - events |= (1 << PY_MONITORING_EVENT_INSTRUCTION); - } + (1 << PY_MONITORING_EVENT_STOP_ITERATION); } return _PyMonitoring_SetEvents(PY_MONITORING_SYS_TRACE_ID, events); } + +// Enable opcode tracing for the thread's current frame if needed. +static int +maybe_set_opcode_trace(PyThreadState *tstate) +{ + _PyInterpreterFrame *iframe = tstate->current_frame; + if (iframe == NULL) { + return 0; + } + PyFrameObject *frame = iframe->frame_obj; + if (frame == NULL || !frame->f_trace_opcodes) { + return 0; + } + return set_opcode_trace_world_stopped(_PyFrame_GetCode(iframe), true); +} + +int +_PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg) +{ + assert(is_tstate_valid(tstate)); + /* The caller must hold the GIL */ + assert(PyGILState_Check()); + + /* Call _PySys_Audit() in the context of the current thread state, + even if tstate is not the current thread state. */ + PyThreadState *current_tstate = _PyThreadState_GET(); + if (_PySys_Audit(current_tstate, "sys.settrace", NULL) < 0) { + return -1; + } + + PyInterpreterState *interp = tstate->interp; + if (_PyOnceFlag_CallOnce(&interp->sys_trace_once_flag, + setup_trace_callbacks, NULL) < 0) { + return -1; + } + + int err = 0; + _PyEval_StopTheWorld(interp); + PyObject *old_traceobj = swap_trace_func_arg(tstate, func, arg); + err = set_monitoring_trace_events(interp); + if (err != 0) { + goto done; + } + if (interp->sys_tracing_threads) { + err = maybe_set_opcode_trace(tstate); + } +done: + _PyEval_StartTheWorld(interp); + Py_XDECREF(old_traceobj); // needs to be decref'd outside stop-the-world + return err; +} + +int +_PyEval_SetTraceAllThreads(PyInterpreterState *interp, Py_tracefunc func, PyObject *arg) +{ + PyThreadState *current_tstate = _PyThreadState_GET(); + assert(is_tstate_valid(current_tstate)); + assert(current_tstate->interp == interp); + + if (_PySys_Audit(current_tstate, "sys.settrace", NULL) < 0) { + return -1; + } + + if (_PyOnceFlag_CallOnce(&interp->sys_trace_once_flag, + setup_trace_callbacks, NULL) < 0) { + return -1; + } + + PyObject *old_trace_objs = NULL; + _PyEval_StopTheWorld(interp); + HEAD_LOCK(&_PyRuntime); + Py_ssize_t num_thread_states = 0; + for (PyThreadState *p = interp->threads.head; p; p = p->next) { + num_thread_states++; + } + old_trace_objs = PyTuple_New(num_thread_states); + if (old_trace_objs == NULL) { + HEAD_UNLOCK(&_PyRuntime); + _PyEval_StartTheWorld(interp); + return -1; + } + for (PyThreadState *tstate = interp->threads.head; tstate; tstate = tstate->next) { + PyObject *old = swap_trace_func_arg(tstate, func, arg); + PyTuple_SET_ITEM(old_trace_objs, --num_thread_states, old); + } + if (interp->sys_tracing_threads) { + for (PyThreadState *tstate = interp->threads.head; tstate; tstate = tstate->next) { + int err = maybe_set_opcode_trace(tstate); + if (err != 0) { + HEAD_UNLOCK(&_PyRuntime); + _PyEval_StartTheWorld(interp); + Py_XDECREF(old_trace_objs); + return -1; + } + } + } + HEAD_UNLOCK(&_PyRuntime); + int err = set_monitoring_trace_events(interp); + _PyEval_StartTheWorld(interp); + Py_XDECREF(old_trace_objs); // needs to be decref'd outside of stop-the-world + return err; +} diff --git a/contrib/tools/python3/Python/lock.c b/contrib/tools/python3/Python/lock.c new file mode 100644 index 00000000000..24c404a1246 --- /dev/null +++ b/contrib/tools/python3/Python/lock.c @@ -0,0 +1,594 @@ +// Lock implementation + +#include "Python.h" + +#include "pycore_lock.h" +#include "pycore_parking_lot.h" +#include "pycore_semaphore.h" +#include "pycore_time.h" // _PyTime_Add() + +#ifdef MS_WINDOWS +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# include // SwitchToThread() +#elif defined(HAVE_SCHED_H) +# include // sched_yield() +#endif + +// If a thread waits on a lock for longer than TIME_TO_BE_FAIR_NS (1 ms), then +// the unlocking thread directly hands off ownership of the lock. This avoids +// starvation. +static const PyTime_t TIME_TO_BE_FAIR_NS = 1000*1000; + +// Spin for a bit before parking the thread. This is only enabled for +// `--disable-gil` builds because it is unlikely to be helpful if the GIL is +// enabled. +#if Py_GIL_DISABLED +static const int MAX_SPIN_COUNT = 40; +#else +static const int MAX_SPIN_COUNT = 0; +#endif + +struct mutex_entry { + // The time after which the unlocking thread should hand off lock ownership + // directly to the waiting thread. Written by the waiting thread. + PyTime_t time_to_be_fair; + + // Set to 1 if the lock was handed off. Written by the unlocking thread. + int handed_off; +}; + +static void +_Py_yield(void) +{ +#ifdef MS_WINDOWS + SwitchToThread(); +#elif defined(HAVE_SCHED_H) + sched_yield(); +#endif +} + +PyLockStatus +_PyMutex_LockTimed(PyMutex *m, PyTime_t timeout, _PyLockFlags flags) +{ + uint8_t v = _Py_atomic_load_uint8_relaxed(&m->_bits); + if ((v & _Py_LOCKED) == 0) { + if (_Py_atomic_compare_exchange_uint8(&m->_bits, &v, v|_Py_LOCKED)) { + return PY_LOCK_ACQUIRED; + } + } + if (timeout == 0) { + return PY_LOCK_FAILURE; + } + + PyTime_t now; + // silently ignore error: cannot report error to the caller + (void)PyTime_MonotonicRaw(&now); + PyTime_t endtime = 0; + if (timeout > 0) { + endtime = _PyTime_Add(now, timeout); + } + + struct mutex_entry entry = { + .time_to_be_fair = now + TIME_TO_BE_FAIR_NS, + .handed_off = 0, + }; + + Py_ssize_t spin_count = 0; + for (;;) { + if ((v & _Py_LOCKED) == 0) { + // The lock is unlocked. Try to grab it. + if (_Py_atomic_compare_exchange_uint8(&m->_bits, &v, v|_Py_LOCKED)) { + return PY_LOCK_ACQUIRED; + } + continue; + } + + if (!(v & _Py_HAS_PARKED) && spin_count < MAX_SPIN_COUNT) { + // Spin for a bit. + _Py_yield(); + spin_count++; + continue; + } + + if (timeout == 0) { + return PY_LOCK_FAILURE; + } + + uint8_t newv = v; + if (!(v & _Py_HAS_PARKED)) { + // We are the first waiter. Set the _Py_HAS_PARKED flag. + newv = v | _Py_HAS_PARKED; + if (!_Py_atomic_compare_exchange_uint8(&m->_bits, &v, newv)) { + continue; + } + } + + int ret = _PyParkingLot_Park(&m->_bits, &newv, sizeof(newv), timeout, + &entry, (flags & _PY_LOCK_DETACH) != 0); + if (ret == Py_PARK_OK) { + if (entry.handed_off) { + // We own the lock now. + assert(_Py_atomic_load_uint8_relaxed(&m->_bits) & _Py_LOCKED); + return PY_LOCK_ACQUIRED; + } + } + else if (ret == Py_PARK_INTR && (flags & _PY_LOCK_HANDLE_SIGNALS)) { + if (Py_MakePendingCalls() < 0) { + return PY_LOCK_INTR; + } + } + else if (ret == Py_PARK_TIMEOUT) { + assert(timeout >= 0); + return PY_LOCK_FAILURE; + } + + if (timeout > 0) { + timeout = _PyDeadline_Get(endtime); + if (timeout <= 0) { + // Avoid negative values because those mean block forever. + timeout = 0; + } + } + + v = _Py_atomic_load_uint8_relaxed(&m->_bits); + } +} + +static void +mutex_unpark(PyMutex *m, struct mutex_entry *entry, int has_more_waiters) +{ + uint8_t v = 0; + if (entry) { + PyTime_t now; + // silently ignore error: cannot report error to the caller + (void)PyTime_MonotonicRaw(&now); + int should_be_fair = now > entry->time_to_be_fair; + + entry->handed_off = should_be_fair; + if (should_be_fair) { + v |= _Py_LOCKED; + } + if (has_more_waiters) { + v |= _Py_HAS_PARKED; + } + } + _Py_atomic_store_uint8(&m->_bits, v); +} + +int +_PyMutex_TryUnlock(PyMutex *m) +{ + uint8_t v = _Py_atomic_load_uint8(&m->_bits); + for (;;) { + if ((v & _Py_LOCKED) == 0) { + // error: the mutex is not locked + return -1; + } + else if ((v & _Py_HAS_PARKED)) { + // wake up a single thread + _PyParkingLot_Unpark(&m->_bits, (_Py_unpark_fn_t *)mutex_unpark, m); + return 0; + } + else if (_Py_atomic_compare_exchange_uint8(&m->_bits, &v, _Py_UNLOCKED)) { + // fast-path: no waiters + return 0; + } + } +} + +// _PyRawMutex stores a linked list of `struct raw_mutex_entry`, one for each +// thread waiting on the mutex, directly in the mutex itself. +struct raw_mutex_entry { + struct raw_mutex_entry *next; + _PySemaphore sema; +}; + +void +_PyRawMutex_LockSlow(_PyRawMutex *m) +{ + struct raw_mutex_entry waiter; + _PySemaphore_Init(&waiter.sema); + + uintptr_t v = _Py_atomic_load_uintptr(&m->v); + for (;;) { + if ((v & _Py_LOCKED) == 0) { + // Unlocked: try to grab it (even if it has a waiter). + if (_Py_atomic_compare_exchange_uintptr(&m->v, &v, v|_Py_LOCKED)) { + break; + } + continue; + } + + // Locked: try to add ourselves as a waiter. + waiter.next = (struct raw_mutex_entry *)(v & ~1); + uintptr_t desired = ((uintptr_t)&waiter)|_Py_LOCKED; + if (!_Py_atomic_compare_exchange_uintptr(&m->v, &v, desired)) { + continue; + } + + // Wait for us to be woken up. Note that we still have to lock the + // mutex ourselves: it is NOT handed off to us. + _PySemaphore_Wait(&waiter.sema, -1, /*detach=*/0); + } + + _PySemaphore_Destroy(&waiter.sema); +} + +void +_PyRawMutex_UnlockSlow(_PyRawMutex *m) +{ + uintptr_t v = _Py_atomic_load_uintptr(&m->v); + for (;;) { + if ((v & _Py_LOCKED) == 0) { + Py_FatalError("unlocking mutex that is not locked"); + } + + struct raw_mutex_entry *waiter = (struct raw_mutex_entry *)(v & ~1); + if (waiter) { + uintptr_t next_waiter = (uintptr_t)waiter->next; + if (_Py_atomic_compare_exchange_uintptr(&m->v, &v, next_waiter)) { + _PySemaphore_Wakeup(&waiter->sema); + return; + } + } + else { + if (_Py_atomic_compare_exchange_uintptr(&m->v, &v, _Py_UNLOCKED)) { + return; + } + } + } +} + +int +_PyEvent_IsSet(PyEvent *evt) +{ + uint8_t v = _Py_atomic_load_uint8(&evt->v); + return v == _Py_LOCKED; +} + +void +_PyEvent_Notify(PyEvent *evt) +{ + uintptr_t v = _Py_atomic_exchange_uint8(&evt->v, _Py_LOCKED); + if (v == _Py_UNLOCKED) { + // no waiters + return; + } + else if (v == _Py_LOCKED) { + // event already set + return; + } + else { + assert(v == _Py_HAS_PARKED); + _PyParkingLot_UnparkAll(&evt->v); + } +} + +void +PyEvent_Wait(PyEvent *evt) +{ + while (!PyEvent_WaitTimed(evt, -1, /*detach=*/1)) + ; +} + +int +PyEvent_WaitTimed(PyEvent *evt, PyTime_t timeout_ns, int detach) +{ + for (;;) { + uint8_t v = _Py_atomic_load_uint8(&evt->v); + if (v == _Py_LOCKED) { + // event already set + return 1; + } + if (v == _Py_UNLOCKED) { + if (!_Py_atomic_compare_exchange_uint8(&evt->v, &v, _Py_HAS_PARKED)) { + continue; + } + } + + uint8_t expected = _Py_HAS_PARKED; + (void) _PyParkingLot_Park(&evt->v, &expected, sizeof(evt->v), + timeout_ns, NULL, detach); + + return _Py_atomic_load_uint8(&evt->v) == _Py_LOCKED; + } +} + +static int +unlock_once(_PyOnceFlag *o, int res) +{ + // On success (res=0), we set the state to _Py_ONCE_INITIALIZED. + // On failure (res=-1), we reset the state to _Py_UNLOCKED. + uint8_t new_value; + switch (res) { + case -1: new_value = _Py_UNLOCKED; break; + case 0: new_value = _Py_ONCE_INITIALIZED; break; + default: { + Py_FatalError("invalid result from _PyOnceFlag_CallOnce"); + Py_UNREACHABLE(); + break; + } + } + + uint8_t old_value = _Py_atomic_exchange_uint8(&o->v, new_value); + if ((old_value & _Py_HAS_PARKED) != 0) { + // wake up anyone waiting on the once flag + _PyParkingLot_UnparkAll(&o->v); + } + return res; +} + +int +_PyOnceFlag_CallOnceSlow(_PyOnceFlag *flag, _Py_once_fn_t *fn, void *arg) +{ + uint8_t v = _Py_atomic_load_uint8(&flag->v); + for (;;) { + if (v == _Py_UNLOCKED) { + if (!_Py_atomic_compare_exchange_uint8(&flag->v, &v, _Py_LOCKED)) { + continue; + } + int res = fn(arg); + return unlock_once(flag, res); + } + + if (v == _Py_ONCE_INITIALIZED) { + return 0; + } + + // The once flag is initializing (locked). + assert((v & _Py_LOCKED)); + if (!(v & _Py_HAS_PARKED)) { + // We are the first waiter. Set the _Py_HAS_PARKED flag. + uint8_t new_value = v | _Py_HAS_PARKED; + if (!_Py_atomic_compare_exchange_uint8(&flag->v, &v, new_value)) { + continue; + } + v = new_value; + } + + // Wait for initialization to finish. + _PyParkingLot_Park(&flag->v, &v, sizeof(v), -1, NULL, 1); + v = _Py_atomic_load_uint8(&flag->v); + } +} + +static int +recursive_mutex_is_owned_by(_PyRecursiveMutex *m, PyThread_ident_t tid) +{ + return _Py_atomic_load_ullong_relaxed(&m->thread) == tid; +} + +int +_PyRecursiveMutex_IsLockedByCurrentThread(_PyRecursiveMutex *m) +{ + return recursive_mutex_is_owned_by(m, PyThread_get_thread_ident_ex()); +} + +void +_PyRecursiveMutex_Lock(_PyRecursiveMutex *m) +{ + PyThread_ident_t thread = PyThread_get_thread_ident_ex(); + if (recursive_mutex_is_owned_by(m, thread)) { + m->level++; + return; + } + PyMutex_Lock(&m->mutex); + _Py_atomic_store_ullong_relaxed(&m->thread, thread); + assert(m->level == 0); +} + +void +_PyRecursiveMutex_Unlock(_PyRecursiveMutex *m) +{ + PyThread_ident_t thread = PyThread_get_thread_ident_ex(); + if (!recursive_mutex_is_owned_by(m, thread)) { + Py_FatalError("unlocking a recursive mutex that is not owned by the" + " current thread"); + } + if (m->level > 0) { + m->level--; + return; + } + assert(m->level == 0); + _Py_atomic_store_ullong_relaxed(&m->thread, 0); + PyMutex_Unlock(&m->mutex); +} + +#define _Py_WRITE_LOCKED 1 +#define _PyRWMutex_READER_SHIFT 2 +#define _Py_RWMUTEX_MAX_READERS (UINTPTR_MAX >> _PyRWMutex_READER_SHIFT) + +static uintptr_t +rwmutex_set_parked_and_wait(_PyRWMutex *rwmutex, uintptr_t bits) +{ + // Set _Py_HAS_PARKED and wait until we are woken up. + if ((bits & _Py_HAS_PARKED) == 0) { + uintptr_t newval = bits | _Py_HAS_PARKED; + if (!_Py_atomic_compare_exchange_uintptr(&rwmutex->bits, + &bits, newval)) { + return bits; + } + bits = newval; + } + + _PyParkingLot_Park(&rwmutex->bits, &bits, sizeof(bits), -1, NULL, 1); + return _Py_atomic_load_uintptr_relaxed(&rwmutex->bits); +} + +// The number of readers holding the lock +static uintptr_t +rwmutex_reader_count(uintptr_t bits) +{ + return bits >> _PyRWMutex_READER_SHIFT; +} + +void +_PyRWMutex_RLock(_PyRWMutex *rwmutex) +{ + uintptr_t bits = _Py_atomic_load_uintptr_relaxed(&rwmutex->bits); + for (;;) { + if ((bits & _Py_WRITE_LOCKED)) { + // A writer already holds the lock. + bits = rwmutex_set_parked_and_wait(rwmutex, bits); + continue; + } + else if ((bits & _Py_HAS_PARKED)) { + // Reader(s) hold the lock (or just gave up the lock), but there is + // at least one waiting writer. We can't grab the lock because we + // don't want to starve the writer. Instead, we park ourselves and + // wait for the writer to eventually wake us up. + bits = rwmutex_set_parked_and_wait(rwmutex, bits); + continue; + } + else { + // The lock is unlocked or read-locked. Try to grab it. + assert(rwmutex_reader_count(bits) < _Py_RWMUTEX_MAX_READERS); + uintptr_t newval = bits + (1 << _PyRWMutex_READER_SHIFT); + if (!_Py_atomic_compare_exchange_uintptr(&rwmutex->bits, + &bits, newval)) { + continue; + } + return; + } + } +} + +void +_PyRWMutex_RUnlock(_PyRWMutex *rwmutex) +{ + uintptr_t bits = _Py_atomic_add_uintptr(&rwmutex->bits, -(1 << _PyRWMutex_READER_SHIFT)); + assert(rwmutex_reader_count(bits) > 0 && "lock was not read-locked"); + bits -= (1 << _PyRWMutex_READER_SHIFT); + + if (rwmutex_reader_count(bits) == 0 && (bits & _Py_HAS_PARKED)) { + _PyParkingLot_UnparkAll(&rwmutex->bits); + return; + } +} + +void +_PyRWMutex_Lock(_PyRWMutex *rwmutex) +{ + uintptr_t bits = _Py_atomic_load_uintptr_relaxed(&rwmutex->bits); + for (;;) { + // If there are no active readers and it's not already write-locked, + // then we can grab the lock. + if ((bits & ~_Py_HAS_PARKED) == 0) { + if (!_Py_atomic_compare_exchange_uintptr(&rwmutex->bits, + &bits, + bits | _Py_WRITE_LOCKED)) { + continue; + } + return; + } + + // Otherwise, we have to wait. + bits = rwmutex_set_parked_and_wait(rwmutex, bits); + } +} + +void +_PyRWMutex_Unlock(_PyRWMutex *rwmutex) +{ + uintptr_t old_bits = _Py_atomic_exchange_uintptr(&rwmutex->bits, 0); + + assert((old_bits & _Py_WRITE_LOCKED) && "lock was not write-locked"); + assert(rwmutex_reader_count(old_bits) == 0 && "lock was read-locked"); + + if ((old_bits & _Py_HAS_PARKED) != 0) { + _PyParkingLot_UnparkAll(&rwmutex->bits); + } +} + +#define SEQLOCK_IS_UPDATING(sequence) (sequence & 0x01) + +void _PySeqLock_LockWrite(_PySeqLock *seqlock) +{ + // lock by moving to an odd sequence number + uint32_t prev = _Py_atomic_load_uint32_relaxed(&seqlock->sequence); + while (1) { + if (SEQLOCK_IS_UPDATING(prev)) { + // Someone else is currently updating the cache + _Py_yield(); + prev = _Py_atomic_load_uint32_relaxed(&seqlock->sequence); + } + else if (_Py_atomic_compare_exchange_uint32(&seqlock->sequence, &prev, prev + 1)) { + // We've locked the cache + _Py_atomic_fence_release(); + break; + } + else { + _Py_yield(); + } + } +} + +void _PySeqLock_AbandonWrite(_PySeqLock *seqlock) +{ + uint32_t new_seq = _Py_atomic_load_uint32_relaxed(&seqlock->sequence) - 1; + assert(!SEQLOCK_IS_UPDATING(new_seq)); + _Py_atomic_store_uint32(&seqlock->sequence, new_seq); +} + +void _PySeqLock_UnlockWrite(_PySeqLock *seqlock) +{ + uint32_t new_seq = _Py_atomic_load_uint32_relaxed(&seqlock->sequence) + 1; + assert(!SEQLOCK_IS_UPDATING(new_seq)); + _Py_atomic_store_uint32(&seqlock->sequence, new_seq); +} + +uint32_t _PySeqLock_BeginRead(_PySeqLock *seqlock) +{ + uint32_t sequence = _Py_atomic_load_uint32_acquire(&seqlock->sequence); + while (SEQLOCK_IS_UPDATING(sequence)) { + _Py_yield(); + sequence = _Py_atomic_load_uint32_acquire(&seqlock->sequence); + } + + return sequence; +} + +int _PySeqLock_EndRead(_PySeqLock *seqlock, uint32_t previous) +{ + // gh-121368: We need an explicit acquire fence here to ensure that + // this load of the sequence number is not reordered before any loads + // within the read lock. + _Py_atomic_fence_acquire(); + + if (_Py_atomic_load_uint32_relaxed(&seqlock->sequence) == previous) { + return 1; + } + + _Py_yield(); + return 0; +} + +int _PySeqLock_AfterFork(_PySeqLock *seqlock) +{ + // Synchronize again and validate that the entry hasn't been updated + // while we were readying the values. + if (SEQLOCK_IS_UPDATING(seqlock->sequence)) { + seqlock->sequence = 0; + return 1; + } + + return 0; +} + +#undef PyMutex_Lock +void +PyMutex_Lock(PyMutex *m) +{ + _PyMutex_LockTimed(m, -1, _PY_LOCK_DETACH); +} + +#undef PyMutex_Unlock +void +PyMutex_Unlock(PyMutex *m) +{ + if (_PyMutex_TryUnlock(m) < 0) { + Py_FatalError("unlocking mutex that is not locked"); + } +} diff --git a/contrib/tools/python3/Python/marshal.c b/contrib/tools/python3/Python/marshal.c index 3fc3f890422..76fa701b541 100644 --- a/contrib/tools/python3/Python/marshal.c +++ b/contrib/tools/python3/Python/marshal.c @@ -6,16 +6,20 @@ Version 3 of this protocol properly supports circular links and sharing. */ -#define PY_SSIZE_T_CLEAN - #include "Python.h" -#include "pycore_call.h" // _PyObject_CallNoArgs() -#include "pycore_code.h" // _PyCode_New() -#include "pycore_long.h" // _PyLong_DigitCount -#include "pycore_hashtable.h" // _Py_hashtable_t -#include "marshal.h" // Py_MARSHAL_VERSION +#include "pycore_call.h" // _PyObject_CallNoArgs() +#include "pycore_code.h" // _PyCode_New() +#include "pycore_critical_section.h" // Py_BEGIN_CRITICAL_SECTION() +#include "pycore_hashtable.h" // _Py_hashtable_t +#include "pycore_long.h" // _PyLong_DigitCount +#include "pycore_setobject.h" // _PySet_NextEntry() +#include "marshal.h" // Py_MARSHAL_VERSION #include "pycore_pystate.h" // _PyInterpreterState_GET() +#ifdef __APPLE__ +# include "TargetConditionals.h" +#endif /* __APPLE__ */ + /*[clinic input] module marshal [clinic start generated code]*/ @@ -35,11 +39,15 @@ module marshal * #if defined(MS_WINDOWS) && defined(_DEBUG) */ #if defined(MS_WINDOWS) -#define MAX_MARSHAL_STACK_DEPTH 1000 +# define MAX_MARSHAL_STACK_DEPTH 1000 #elif defined(__wasi__) -#define MAX_MARSHAL_STACK_DEPTH 1500 +# define MAX_MARSHAL_STACK_DEPTH 1500 +// TARGET_OS_IPHONE covers any non-macOS Apple platform. +// It won't be defined on older macOS SDKs +#elif defined(__APPLE__) && defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE +# define MAX_MARSHAL_STACK_DEPTH 1500 #else -#define MAX_MARSHAL_STACK_DEPTH 2000 +# define MAX_MARSHAL_STACK_DEPTH 2000 #endif #define TYPE_NULL '0' @@ -80,6 +88,7 @@ module marshal #define WFERR_UNMARSHALLABLE 1 #define WFERR_NESTEDTOODEEP 2 #define WFERR_NOMEMORY 3 +#define WFERR_CODE_NOT_ALLOWED 4 typedef struct { FILE *fp; @@ -91,6 +100,7 @@ typedef struct { char *buf; _Py_hashtable_t *hashtable; int version; + int allow_code; } WFILE; #define w_byte(c, p) do { \ @@ -227,6 +237,9 @@ w_short_pstring(const void *s, Py_ssize_t n, WFILE *p) w_byte((t) | flag, (p)); \ } while(0) +static PyObject * +_PyMarshal_WriteObjectToString(PyObject *x, int version, int allow_code); + static void w_PyLong(const PyLongObject *ob, char flag, WFILE *p) { @@ -521,22 +534,29 @@ w_complex_object(PyObject *v, char flag, WFILE *p) return; } Py_ssize_t i = 0; - while (_PySet_NextEntry(v, &pos, &value, &hash)) { - PyObject *dump = PyMarshal_WriteObjectToString(value, p->version); + Py_BEGIN_CRITICAL_SECTION(v); + while (_PySet_NextEntryRef(v, &pos, &value, &hash)) { + PyObject *dump = _PyMarshal_WriteObjectToString(value, + p->version, p->allow_code); if (dump == NULL) { p->error = WFERR_UNMARSHALLABLE; - Py_DECREF(pairs); - return; + Py_DECREF(value); + break; } PyObject *pair = PyTuple_Pack(2, dump, value); Py_DECREF(dump); + Py_DECREF(value); if (pair == NULL) { p->error = WFERR_NOMEMORY; - Py_DECREF(pairs); - return; + break; } PyList_SET_ITEM(pairs, i++, pair); } + Py_END_CRITICAL_SECTION(); + if (p->error == WFERR_UNMARSHALLABLE || p->error == WFERR_NOMEMORY) { + Py_DECREF(pairs); + return; + } assert(i == n); if (PyList_Sort(pairs)) { p->error = WFERR_NOMEMORY; @@ -551,6 +571,10 @@ w_complex_object(PyObject *v, char flag, WFILE *p) Py_DECREF(pairs); } else if (PyCode_Check(v)) { + if (!p->allow_code) { + p->error = WFERR_CODE_NOT_ALLOWED; + return; + } PyCodeObject *co = (PyCodeObject *)v; PyObject *co_code = _PyCode_GetCode(co); if (co_code == NULL) { @@ -659,6 +683,7 @@ PyMarshal_WriteObjectToFile(PyObject *x, FILE *fp, int version) wf.end = wf.ptr + sizeof(buf); wf.error = WFERR_OK; wf.version = version; + wf.allow_code = 1; if (w_init_refs(&wf, version)) { return; /* caller must check PyErr_Occurred() */ } @@ -676,6 +701,7 @@ typedef struct { char *buf; Py_ssize_t buf_size; PyObject *refs; /* a list */ + int allow_code; } RFILE; static const char * @@ -1017,7 +1043,7 @@ r_object(RFILE *p) break; case TYPE_NONE: - retval = Py_NewRef(Py_None); + retval = Py_None; break; case TYPE_STOPITER: @@ -1025,15 +1051,15 @@ r_object(RFILE *p) break; case TYPE_ELLIPSIS: - retval = Py_NewRef(Py_Ellipsis); + retval = Py_Ellipsis; break; case TYPE_FALSE: - retval = Py_NewRef(Py_False); + retval = Py_False; break; case TYPE_TRUE: - retval = Py_NewRef(Py_True); + retval = Py_True; break; case TYPE_INT: @@ -1374,6 +1400,11 @@ r_object(RFILE *p) PyObject* linetable = NULL; PyObject *exceptiontable = NULL; + if (!p->allow_code) { + PyErr_SetString(PyExc_ValueError, + "unmarshalling code objects is disallowed"); + break; + } idx = r_ref_reserve(flag, p); if (idx < 0) break; @@ -1619,6 +1650,7 @@ PyMarshal_ReadObjectFromFile(FILE *fp) { RFILE rf; PyObject *result; + rf.allow_code = 1; rf.fp = fp; rf.readable = NULL; rf.depth = 0; @@ -1639,6 +1671,7 @@ PyMarshal_ReadObjectFromString(const char *str, Py_ssize_t len) { RFILE rf; PyObject *result; + rf.allow_code = 1; rf.fp = NULL; rf.readable = NULL; rf.ptr = str; @@ -1655,8 +1688,8 @@ PyMarshal_ReadObjectFromString(const char *str, Py_ssize_t len) return result; } -PyObject * -PyMarshal_WriteObjectToString(PyObject *x, int version) +static PyObject * +_PyMarshal_WriteObjectToString(PyObject *x, int version, int allow_code) { WFILE wf; @@ -1671,6 +1704,7 @@ PyMarshal_WriteObjectToString(PyObject *x, int version) wf.end = wf.ptr + PyBytes_GET_SIZE(wf.str); wf.error = WFERR_OK; wf.version = version; + wf.allow_code = allow_code; if (w_init_refs(&wf, version)) { Py_DECREF(wf.str); return NULL; @@ -1684,17 +1718,35 @@ PyMarshal_WriteObjectToString(PyObject *x, int version) } if (wf.error != WFERR_OK) { Py_XDECREF(wf.str); - if (wf.error == WFERR_NOMEMORY) + switch (wf.error) { + case WFERR_NOMEMORY: PyErr_NoMemory(); - else + break; + case WFERR_NESTEDTOODEEP: + PyErr_SetString(PyExc_ValueError, + "object too deeply nested to marshal"); + break; + case WFERR_CODE_NOT_ALLOWED: + PyErr_SetString(PyExc_ValueError, + "marshalling code objects is disallowed"); + break; + default: + case WFERR_UNMARSHALLABLE: PyErr_SetString(PyExc_ValueError, - (wf.error==WFERR_UNMARSHALLABLE)?"unmarshallable object" - :"object too deeply nested to marshal"); + "unmarshallable object"); + break; + } return NULL; } return wf.str; } +PyObject * +PyMarshal_WriteObjectToString(PyObject *x, int version) +{ + return _PyMarshal_WriteObjectToString(x, version, 1); +} + /* And an interface for Python programs... */ /*[clinic input] marshal.dump @@ -1706,6 +1758,9 @@ marshal.dump version: int(c_default="Py_MARSHAL_VERSION") = version Indicates the data format that dump should use. / + * + allow_code: bool = True + Allow to write code objects. Write the value on the open file. @@ -1716,17 +1771,17 @@ to the file. The object will not be properly read back by load(). static PyObject * marshal_dump_impl(PyObject *module, PyObject *value, PyObject *file, - int version) -/*[clinic end generated code: output=aaee62c7028a7cb2 input=6c7a3c23c6fef556]*/ + int version, int allow_code) +/*[clinic end generated code: output=429e5fd61c2196b9 input=041f7f6669b0aafb]*/ { /* XXX Quick hack -- need to do this differently */ PyObject *s; PyObject *res; - s = PyMarshal_WriteObjectToString(value, version); + s = _PyMarshal_WriteObjectToString(value, version, allow_code); if (s == NULL) return NULL; - res = _PyObject_CallMethodOneArg(file, &_Py_ID(write), s); + res = PyObject_CallMethodOneArg(file, &_Py_ID(write), s); Py_DECREF(s); return res; } @@ -1737,6 +1792,9 @@ marshal.load file: object Must be readable binary file. / + * + allow_code: bool = True + Allow to load code objects. Read one value from the open file and return it. @@ -1749,8 +1807,8 @@ dump(), load() will substitute None for the unmarshallable type. [clinic start generated code]*/ static PyObject * -marshal_load(PyObject *module, PyObject *file) -/*[clinic end generated code: output=f8e5c33233566344 input=c85c2b594cd8124a]*/ +marshal_load_impl(PyObject *module, PyObject *file, int allow_code) +/*[clinic end generated code: output=0c1aaf3546ae3ed3 input=2dca7b570653b82f]*/ { PyObject *data, *result; RFILE rf; @@ -1772,6 +1830,7 @@ marshal_load(PyObject *module, PyObject *file) result = NULL; } else { + rf.allow_code = allow_code; rf.depth = 0; rf.fp = NULL; rf.readable = file; @@ -1797,6 +1856,9 @@ marshal.dumps version: int(c_default="Py_MARSHAL_VERSION") = version Indicates the data format that dumps should use. / + * + allow_code: bool = True + Allow to write code objects. Return the bytes object that would be written to a file by dump(value, file). @@ -1805,10 +1867,11 @@ unsupported type. [clinic start generated code]*/ static PyObject * -marshal_dumps_impl(PyObject *module, PyObject *value, int version) -/*[clinic end generated code: output=9c200f98d7256cad input=a2139ea8608e9b27]*/ +marshal_dumps_impl(PyObject *module, PyObject *value, int version, + int allow_code) +/*[clinic end generated code: output=115f90da518d1d49 input=167eaecceb63f0a8]*/ { - return PyMarshal_WriteObjectToString(value, version); + return _PyMarshal_WriteObjectToString(value, version, allow_code); } /*[clinic input] @@ -1816,6 +1879,9 @@ marshal.loads bytes: Py_buffer / + * + allow_code: bool = True + Allow to load code objects. Convert the bytes-like object to a value. @@ -1824,13 +1890,14 @@ bytes in the input are ignored. [clinic start generated code]*/ static PyObject * -marshal_loads_impl(PyObject *module, Py_buffer *bytes) -/*[clinic end generated code: output=9fc65985c93d1bb1 input=6f426518459c8495]*/ +marshal_loads_impl(PyObject *module, Py_buffer *bytes, int allow_code) +/*[clinic end generated code: output=62c0c538d3edc31f input=14de68965b45aaa7]*/ { RFILE rf; char *s = bytes->buf; Py_ssize_t n = bytes->len; PyObject* result; + rf.allow_code = allow_code; rf.fp = NULL; rf.readable = NULL; rf.ptr = s; @@ -1894,6 +1961,7 @@ marshal_module_exec(PyObject *mod) static PyModuleDef_Slot marshalmodule_slots[] = { {Py_mod_exec, marshal_module_exec}, {Py_mod_multiple_interpreters, Py_MOD_PER_INTERPRETER_GIL_SUPPORTED}, + {Py_mod_gil, Py_MOD_GIL_NOT_USED}, {0, NULL} }; diff --git a/contrib/tools/python3/Python/modsupport.c b/contrib/tools/python3/Python/modsupport.c index df4ae35a525..cf4ab39f380 100644 --- a/contrib/tools/python3/Python/modsupport.c +++ b/contrib/tools/python3/Python/modsupport.c @@ -5,11 +5,9 @@ #include "pycore_abstract.h" // _PyIndex_Check() #include "pycore_object.h" // _PyType_IsReady() -#define FLAG_SIZE_T 1 typedef double va_double; -static PyObject *va_build_value(const char *, va_list, int); -static PyObject **va_build_stack(PyObject **small_stack, Py_ssize_t small_stack_len, const char *, va_list, int, Py_ssize_t*); +static PyObject *va_build_value(const char *, va_list); int @@ -84,21 +82,39 @@ countformat(const char *format, char endchar) /* Generic function to create a value -- the inverse of getargs() */ /* After an original idea and first implementation by Steven Miale */ -static PyObject *do_mktuple(const char**, va_list *, char, Py_ssize_t, int); -static int do_mkstack(PyObject **, const char**, va_list *, char, Py_ssize_t, int); -static PyObject *do_mklist(const char**, va_list *, char, Py_ssize_t, int); -static PyObject *do_mkdict(const char**, va_list *, char, Py_ssize_t, int); -static PyObject *do_mkvalue(const char**, va_list *, int); +static PyObject *do_mktuple(const char**, va_list *, char, Py_ssize_t); +static int do_mkstack(PyObject **, const char**, va_list *, char, Py_ssize_t); +static PyObject *do_mklist(const char**, va_list *, char, Py_ssize_t); +static PyObject *do_mkdict(const char**, va_list *, char, Py_ssize_t); +static PyObject *do_mkvalue(const char**, va_list *); +static int +check_end(const char **p_format, char endchar) +{ + const char *f = *p_format; + while (*f != endchar) { + if (*f != ' ' && *f != '\t' && *f != ',' && *f != ':') { + PyErr_SetString(PyExc_SystemError, + "Unmatched paren in format"); + return 0; + } + f++; + } + if (endchar) { + f++; + } + *p_format = f; + return 1; +} static void -do_ignore(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int flags) +do_ignore(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n) { assert(PyErr_Occurred()); PyObject *v = PyTuple_New(n); for (Py_ssize_t i = 0; i < n; i++) { PyObject *exc = PyErr_GetRaisedException(); - PyObject *w = do_mkvalue(p_format, p_va, flags); + PyObject *w = do_mkvalue(p_format, p_va); PyErr_SetRaisedException(exc); if (w != NULL) { if (v != NULL) { @@ -110,18 +126,13 @@ do_ignore(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int } } Py_XDECREF(v); - if (**p_format != endchar) { - PyErr_SetString(PyExc_SystemError, - "Unmatched paren in format"); + if (!check_end(p_format, endchar)) { return; } - if (endchar) { - ++*p_format; - } } static PyObject * -do_mkdict(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int flags) +do_mkdict(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n) { PyObject *d; Py_ssize_t i; @@ -130,27 +141,27 @@ do_mkdict(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int if (n % 2) { PyErr_SetString(PyExc_SystemError, "Bad dict format"); - do_ignore(p_format, p_va, endchar, n, flags); + do_ignore(p_format, p_va, endchar, n); return NULL; } /* Note that we can't bail immediately on error as this will leak refcounts on any 'N' arguments. */ if ((d = PyDict_New()) == NULL) { - do_ignore(p_format, p_va, endchar, n, flags); + do_ignore(p_format, p_va, endchar, n); return NULL; } for (i = 0; i < n; i+= 2) { PyObject *k, *v; - k = do_mkvalue(p_format, p_va, flags); + k = do_mkvalue(p_format, p_va); if (k == NULL) { - do_ignore(p_format, p_va, endchar, n - i - 1, flags); + do_ignore(p_format, p_va, endchar, n - i - 1); Py_DECREF(d); return NULL; } - v = do_mkvalue(p_format, p_va, flags); + v = do_mkvalue(p_format, p_va); if (v == NULL || PyDict_SetItem(d, k, v) < 0) { - do_ignore(p_format, p_va, endchar, n - i - 2, flags); + do_ignore(p_format, p_va, endchar, n - i - 2); Py_DECREF(k); Py_XDECREF(v); Py_DECREF(d); @@ -159,19 +170,15 @@ do_mkdict(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int Py_DECREF(k); Py_DECREF(v); } - if (**p_format != endchar) { + if (!check_end(p_format, endchar)) { Py_DECREF(d); - PyErr_SetString(PyExc_SystemError, - "Unmatched paren in format"); return NULL; } - if (endchar) - ++*p_format; return d; } static PyObject * -do_mklist(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int flags) +do_mklist(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n) { PyObject *v; Py_ssize_t i; @@ -181,32 +188,28 @@ do_mklist(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int refcounts on any 'N' arguments. */ v = PyList_New(n); if (v == NULL) { - do_ignore(p_format, p_va, endchar, n, flags); + do_ignore(p_format, p_va, endchar, n); return NULL; } for (i = 0; i < n; i++) { - PyObject *w = do_mkvalue(p_format, p_va, flags); + PyObject *w = do_mkvalue(p_format, p_va); if (w == NULL) { - do_ignore(p_format, p_va, endchar, n - i - 1, flags); + do_ignore(p_format, p_va, endchar, n - i - 1); Py_DECREF(v); return NULL; } PyList_SET_ITEM(v, i, w); } - if (**p_format != endchar) { + if (!check_end(p_format, endchar)) { Py_DECREF(v); - PyErr_SetString(PyExc_SystemError, - "Unmatched paren in format"); return NULL; } - if (endchar) - ++*p_format; return v; } static int do_mkstack(PyObject **stack, const char **p_format, va_list *p_va, - char endchar, Py_ssize_t n, int flags) + char endchar, Py_ssize_t n) { Py_ssize_t i; @@ -216,21 +219,16 @@ do_mkstack(PyObject **stack, const char **p_format, va_list *p_va, /* Note that we can't bail immediately on error as this will leak refcounts on any 'N' arguments. */ for (i = 0; i < n; i++) { - PyObject *w = do_mkvalue(p_format, p_va, flags); + PyObject *w = do_mkvalue(p_format, p_va); if (w == NULL) { - do_ignore(p_format, p_va, endchar, n - i - 1, flags); + do_ignore(p_format, p_va, endchar, n - i - 1); goto error; } stack[i] = w; } - if (**p_format != endchar) { - PyErr_SetString(PyExc_SystemError, - "Unmatched paren in format"); + if (!check_end(p_format, endchar)) { goto error; } - if (endchar) { - ++*p_format; - } return 0; error: @@ -242,7 +240,7 @@ error: } static PyObject * -do_mktuple(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int flags) +do_mktuple(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n) { PyObject *v; Py_ssize_t i; @@ -251,52 +249,41 @@ do_mktuple(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int /* Note that we can't bail immediately on error as this will leak refcounts on any 'N' arguments. */ if ((v = PyTuple_New(n)) == NULL) { - do_ignore(p_format, p_va, endchar, n, flags); + do_ignore(p_format, p_va, endchar, n); return NULL; } for (i = 0; i < n; i++) { - PyObject *w = do_mkvalue(p_format, p_va, flags); + PyObject *w = do_mkvalue(p_format, p_va); if (w == NULL) { - do_ignore(p_format, p_va, endchar, n - i - 1, flags); + do_ignore(p_format, p_va, endchar, n - i - 1); Py_DECREF(v); return NULL; } PyTuple_SET_ITEM(v, i, w); } - if (**p_format != endchar) { + if (!check_end(p_format, endchar)) { Py_DECREF(v); - PyErr_SetString(PyExc_SystemError, - "Unmatched paren in format"); return NULL; } - if (endchar) - ++*p_format; return v; } static PyObject * -do_mkvalue(const char **p_format, va_list *p_va, int flags) +do_mkvalue(const char **p_format, va_list *p_va) { -#define ERROR_NEED_PY_SSIZE_T_CLEAN \ - { \ - PyErr_SetString(PyExc_SystemError, \ - "PY_SSIZE_T_CLEAN macro must be defined for '#' formats"); \ - return NULL; \ - } - for (;;) { switch (*(*p_format)++) { case '(': return do_mktuple(p_format, p_va, ')', - countformat(*p_format, ')'), flags); + countformat(*p_format, ')')); case '[': return do_mklist(p_format, p_va, ']', - countformat(*p_format, ']'), flags); + countformat(*p_format, ']')); case '{': return do_mkdict(p_format, p_va, '}', - countformat(*p_format, '}'), flags); + countformat(*p_format, '}')); case 'b': case 'B': @@ -333,22 +320,17 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags) return PyLong_FromLongLong((long long)va_arg(*p_va, long long)); case 'K': - return PyLong_FromUnsignedLongLong((long long)va_arg(*p_va, unsigned long long)); + return PyLong_FromUnsignedLongLong( + va_arg(*p_va, unsigned long long)); case 'u': { PyObject *v; - Py_UNICODE *u = va_arg(*p_va, Py_UNICODE *); + const wchar_t *u = va_arg(*p_va, wchar_t*); Py_ssize_t n; if (**p_format == '#') { ++*p_format; - if (flags & FLAG_SIZE_T) { - n = va_arg(*p_va, Py_ssize_t); - } - else { - n = va_arg(*p_va, int); - ERROR_NEED_PY_SSIZE_T_CLEAN; - } + n = va_arg(*p_va, Py_ssize_t); } else n = -1; @@ -392,13 +374,7 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags) Py_ssize_t n; if (**p_format == '#') { ++*p_format; - if (flags & FLAG_SIZE_T) { - n = va_arg(*p_va, Py_ssize_t); - } - else { - n = va_arg(*p_va, int); - ERROR_NEED_PY_SSIZE_T_CLEAN; - } + n = va_arg(*p_va, Py_ssize_t); } else n = -1; @@ -427,13 +403,7 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags) Py_ssize_t n; if (**p_format == '#') { ++*p_format; - if (flags & FLAG_SIZE_T) { - n = va_arg(*p_va, Py_ssize_t); - } - else { - n = va_arg(*p_va, int); - ERROR_NEED_PY_SSIZE_T_CLEAN; - } + n = va_arg(*p_va, Py_ssize_t); } else n = -1; @@ -499,8 +469,6 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags) } } - -#undef ERROR_NEED_PY_SSIZE_T_CLEAN } @@ -510,18 +478,18 @@ Py_BuildValue(const char *format, ...) va_list va; PyObject* retval; va_start(va, format); - retval = va_build_value(format, va, 0); + retval = va_build_value(format, va); va_end(va); return retval; } -PyObject * +PyAPI_FUNC(PyObject *) /* abi only */ _Py_BuildValue_SizeT(const char *format, ...) { va_list va; PyObject* retval; va_start(va, format); - retval = va_build_value(format, va, FLAG_SIZE_T); + retval = va_build_value(format, va); va_end(va); return retval; } @@ -529,17 +497,17 @@ _Py_BuildValue_SizeT(const char *format, ...) PyObject * Py_VaBuildValue(const char *format, va_list va) { - return va_build_value(format, va, 0); + return va_build_value(format, va); } -PyObject * +PyAPI_FUNC(PyObject *) /* abi only */ _Py_VaBuildValue_SizeT(const char *format, va_list va) { - return va_build_value(format, va, FLAG_SIZE_T); + return va_build_value(format, va); } static PyObject * -va_build_value(const char *format, va_list va, int flags) +va_build_value(const char *format, va_list va) { const char *f = format; Py_ssize_t n = countformat(f, '\0'); @@ -553,9 +521,9 @@ va_build_value(const char *format, va_list va, int flags) } va_copy(lva, va); if (n == 1) { - retval = do_mkvalue(&f, &lva, flags); + retval = do_mkvalue(&f, &lva); } else { - retval = do_mktuple(&f, &lva, '\0', n, flags); + retval = do_mktuple(&f, &lva, '\0', n); } va_end(lva); return retval; @@ -564,20 +532,6 @@ va_build_value(const char *format, va_list va, int flags) PyObject ** _Py_VaBuildStack(PyObject **small_stack, Py_ssize_t small_stack_len, const char *format, va_list va, Py_ssize_t *p_nargs) -{ - return va_build_stack(small_stack, small_stack_len, format, va, 0, p_nargs); -} - -PyObject ** -_Py_VaBuildStack_SizeT(PyObject **small_stack, Py_ssize_t small_stack_len, - const char *format, va_list va, Py_ssize_t *p_nargs) -{ - return va_build_stack(small_stack, small_stack_len, format, va, FLAG_SIZE_T, p_nargs); -} - -static PyObject ** -va_build_stack(PyObject **small_stack, Py_ssize_t small_stack_len, - const char *format, va_list va, int flags, Py_ssize_t *p_nargs) { const char *f; Py_ssize_t n; @@ -609,7 +563,7 @@ va_build_stack(PyObject **small_stack, Py_ssize_t small_stack_len, va_copy(lva, va); f = format; - res = do_mkstack(stack, &f, &lva, '\0', n, flags); + res = do_mkstack(stack, &f, &lva, '\0', n); va_end(lva); if (res < 0) { @@ -653,7 +607,7 @@ PyModule_AddObjectRef(PyObject *mod, const char *name, PyObject *value) } int -_PyModule_Add(PyObject *mod, const char *name, PyObject *value) +PyModule_Add(PyObject *mod, const char *name, PyObject *value) { int res = PyModule_AddObjectRef(mod, name, value); Py_XDECREF(value); @@ -673,13 +627,13 @@ PyModule_AddObject(PyObject *mod, const char *name, PyObject *value) int PyModule_AddIntConstant(PyObject *m, const char *name, long value) { - return _PyModule_Add(m, name, PyLong_FromLong(value)); + return PyModule_Add(m, name, PyLong_FromLong(value)); } int PyModule_AddStringConstant(PyObject *m, const char *name, const char *value) { - return _PyModule_Add(m, name, PyUnicode_FromString(value)); + return PyModule_Add(m, name, PyUnicode_FromString(value)); } int diff --git a/contrib/tools/python3/Python/mystrtoul.c b/contrib/tools/python3/Python/mystrtoul.c index e6fe154eed6..fcd3e27f17f 100644 --- a/contrib/tools/python3/Python/mystrtoul.c +++ b/contrib/tools/python3/Python/mystrtoul.c @@ -1,16 +1,22 @@ +// strtol() and strtoul(), renamed to avoid conflicts. +// +// API: +// +// - PyOS_strtol(): convert string to C long integer. +// - PyOS_strtoul(): convert string to C unsigned long integer. + #include "Python.h" #include "pycore_long.h" // _PyLong_DigitValue #if defined(__sgi) && !defined(_SGI_MP_SOURCE) -#define _SGI_MP_SOURCE +# define _SGI_MP_SOURCE #endif /* strtol and strtoul, renamed to avoid conflicts */ -#include #ifdef HAVE_ERRNO_H -#include +# include // errno #endif /* Static overflow check values for bases 2 through 36. @@ -75,7 +81,7 @@ static const int digitlimit[] = { 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, /* 20 - 29 */ 13, 12, 12, 12, 12, 12, 12}; /* 30 - 36 */ #else -#error "Need table for SIZEOF_LONG" +# error "Need table for SIZEOF_LONG" #endif /* diff --git a/contrib/tools/python3/Python/object_stack.c b/contrib/tools/python3/Python/object_stack.c new file mode 100644 index 00000000000..bd9696822c8 --- /dev/null +++ b/contrib/tools/python3/Python/object_stack.c @@ -0,0 +1,108 @@ +// Stack of Python objects + +#include "Python.h" +#include "pycore_freelist.h" +#include "pycore_pystate.h" +#include "pycore_object_stack.h" + +extern _PyObjectStackChunk *_PyObjectStackChunk_New(void); +extern void _PyObjectStackChunk_Free(_PyObjectStackChunk *); + +static struct _Py_object_stack_freelist * +get_object_stack_freelist(void) +{ + struct _Py_object_freelists *freelists = _Py_object_freelists_GET(); + return &freelists->object_stacks; +} + +_PyObjectStackChunk * +_PyObjectStackChunk_New(void) +{ + _PyObjectStackChunk *buf; + struct _Py_object_stack_freelist *obj_stack_freelist = get_object_stack_freelist(); + if (obj_stack_freelist->numfree > 0) { + buf = obj_stack_freelist->items; + obj_stack_freelist->items = buf->prev; + obj_stack_freelist->numfree--; + } + else { + // NOTE: we use PyMem_RawMalloc() here because this is used by the GC + // during mimalloc heap traversal. In that context, it is not safe to + // allocate mimalloc memory, such as via PyMem_Malloc(). + buf = PyMem_RawMalloc(sizeof(_PyObjectStackChunk)); + if (buf == NULL) { + return NULL; + } + } + buf->prev = NULL; + buf->n = 0; + return buf; +} + +void +_PyObjectStackChunk_Free(_PyObjectStackChunk *buf) +{ + assert(buf->n == 0); + struct _Py_object_stack_freelist *obj_stack_freelist = get_object_stack_freelist(); + if (obj_stack_freelist->numfree >= 0 && + obj_stack_freelist->numfree < _PyObjectStackChunk_MAXFREELIST) + { + buf->prev = obj_stack_freelist->items; + obj_stack_freelist->items = buf; + obj_stack_freelist->numfree++; + } + else { + PyMem_RawFree(buf); + } +} + +void +_PyObjectStack_Clear(_PyObjectStack *queue) +{ + while (queue->head != NULL) { + _PyObjectStackChunk *buf = queue->head; + buf->n = 0; + queue->head = buf->prev; + _PyObjectStackChunk_Free(buf); + } +} + +void +_PyObjectStack_Merge(_PyObjectStack *dst, _PyObjectStack *src) +{ + if (src->head == NULL) { + return; + } + + if (dst->head != NULL) { + // First, append dst to the bottom of src + _PyObjectStackChunk *last = src->head; + while (last->prev != NULL) { + last = last->prev; + } + last->prev = dst->head; + } + + // Now that src has all the chunks, set dst to src + dst->head = src->head; + src->head = NULL; +} + +void +_PyObjectStackChunk_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization) +{ + if (!is_finalization) { + // Ignore requests to clear the free list during GC. We use object + // stacks during GC, so emptying the free-list is counterproductive. + return; + } + + struct _Py_object_stack_freelist *freelist = &freelists->object_stacks; + while (freelist->numfree > 0) { + _PyObjectStackChunk *buf = freelist->items; + freelist->items = buf->prev; + freelist->numfree--; + PyMem_RawFree(buf); + } + freelist->numfree = -1; +} diff --git a/contrib/tools/python3/Python/opcode_metadata.h b/contrib/tools/python3/Python/opcode_metadata.h deleted file mode 100644 index ab351b1b358..00000000000 --- a/contrib/tools/python3/Python/opcode_metadata.h +++ /dev/null @@ -1,1003 +0,0 @@ -// This file is generated by Tools/cases_generator/generate_cases.py -// from: -// Python/bytecodes.c -// Do not edit! - -#include - -#ifndef NEED_OPCODE_METADATA -extern int _PyOpcode_num_popped(int opcode, int oparg, bool jump); -#else -int -_PyOpcode_num_popped(int opcode, int oparg, bool jump) { - switch(opcode) { - case NOP: - return 0; - case RESUME: - return 0; - case INSTRUMENTED_RESUME: - return 0; - case LOAD_CLOSURE: - return 0; - case LOAD_FAST_CHECK: - return 0; - case LOAD_FAST: - return 0; - case LOAD_FAST_AND_CLEAR: - return 0; - case LOAD_CONST: - return 0; - case STORE_FAST: - return 1; - case LOAD_FAST__LOAD_FAST: - return 0+0; - case LOAD_FAST__LOAD_CONST: - return 0+0; - case STORE_FAST__LOAD_FAST: - return 1+0; - case STORE_FAST__STORE_FAST: - return 1+1; - case LOAD_CONST__LOAD_FAST: - return 0+0; - case POP_TOP: - return 1; - case PUSH_NULL: - return 0; - case END_FOR: - return 1+1; - case INSTRUMENTED_END_FOR: - return 2; - case END_SEND: - return 2; - case INSTRUMENTED_END_SEND: - return 2; - case UNARY_NEGATIVE: - return 1; - case UNARY_NOT: - return 1; - case UNARY_INVERT: - return 1; - case BINARY_OP_MULTIPLY_INT: - return 2; - case BINARY_OP_MULTIPLY_FLOAT: - return 2; - case BINARY_OP_SUBTRACT_INT: - return 2; - case BINARY_OP_SUBTRACT_FLOAT: - return 2; - case BINARY_OP_ADD_UNICODE: - return 2; - case BINARY_OP_INPLACE_ADD_UNICODE: - return 2; - case BINARY_OP_ADD_FLOAT: - return 2; - case BINARY_OP_ADD_INT: - return 2; - case BINARY_SUBSCR: - return 2; - case BINARY_SLICE: - return 3; - case STORE_SLICE: - return 4; - case BINARY_SUBSCR_LIST_INT: - return 2; - case BINARY_SUBSCR_TUPLE_INT: - return 2; - case BINARY_SUBSCR_DICT: - return 2; - case BINARY_SUBSCR_GETITEM: - return 2; - case LIST_APPEND: - return (oparg-1) + 2; - case SET_ADD: - return (oparg-1) + 2; - case STORE_SUBSCR: - return 3; - case STORE_SUBSCR_LIST_INT: - return 3; - case STORE_SUBSCR_DICT: - return 3; - case DELETE_SUBSCR: - return 2; - case CALL_INTRINSIC_1: - return 1; - case CALL_INTRINSIC_2: - return 2; - case RAISE_VARARGS: - return oparg; - case INTERPRETER_EXIT: - return 1; - case RETURN_VALUE: - return 1; - case INSTRUMENTED_RETURN_VALUE: - return 1; - case RETURN_CONST: - return 0; - case INSTRUMENTED_RETURN_CONST: - return 0; - case GET_AITER: - return 1; - case GET_ANEXT: - return 1; - case GET_AWAITABLE: - return 1; - case SEND: - return 2; - case SEND_GEN: - return 2; - case INSTRUMENTED_YIELD_VALUE: - return 1; - case YIELD_VALUE: - return 1; - case POP_EXCEPT: - return 1; - case RERAISE: - return oparg + 1; - case END_ASYNC_FOR: - return 2; - case CLEANUP_THROW: - return 3; - case LOAD_ASSERTION_ERROR: - return 0; - case LOAD_BUILD_CLASS: - return 0; - case STORE_NAME: - return 1; - case DELETE_NAME: - return 0; - case UNPACK_SEQUENCE: - return 1; - case UNPACK_SEQUENCE_TWO_TUPLE: - return 1; - case UNPACK_SEQUENCE_TUPLE: - return 1; - case UNPACK_SEQUENCE_LIST: - return 1; - case UNPACK_EX: - return 1; - case STORE_ATTR: - return 2; - case DELETE_ATTR: - return 1; - case STORE_GLOBAL: - return 1; - case DELETE_GLOBAL: - return 0; - case LOAD_LOCALS: - return 0; - case LOAD_FROM_DICT_OR_GLOBALS: - return 1; - case LOAD_NAME: - return 0; - case LOAD_GLOBAL: - return 0; - case LOAD_GLOBAL_MODULE: - return 0; - case LOAD_GLOBAL_BUILTIN: - return 0; - case DELETE_FAST: - return 0; - case MAKE_CELL: - return 0; - case DELETE_DEREF: - return 0; - case LOAD_FROM_DICT_OR_DEREF: - return 1; - case LOAD_DEREF: - return 0; - case STORE_DEREF: - return 1; - case COPY_FREE_VARS: - return 0; - case BUILD_STRING: - return oparg; - case BUILD_TUPLE: - return oparg; - case BUILD_LIST: - return oparg; - case LIST_EXTEND: - return (oparg-1) + 2; - case SET_UPDATE: - return (oparg-1) + 2; - case BUILD_SET: - return oparg; - case BUILD_MAP: - return oparg*2; - case SETUP_ANNOTATIONS: - return 0; - case BUILD_CONST_KEY_MAP: - return oparg + 1; - case DICT_UPDATE: - return 1; - case DICT_MERGE: - return 1; - case MAP_ADD: - return 2; - case INSTRUMENTED_LOAD_SUPER_ATTR: - return 3; - case LOAD_SUPER_ATTR: - return 3; - case LOAD_SUPER_ATTR_ATTR: - return 3; - case LOAD_SUPER_ATTR_METHOD: - return 3; - case LOAD_ATTR: - return 1; - case LOAD_ATTR_INSTANCE_VALUE: - return 1; - case LOAD_ATTR_MODULE: - return 1; - case LOAD_ATTR_WITH_HINT: - return 1; - case LOAD_ATTR_SLOT: - return 1; - case LOAD_ATTR_CLASS: - return 1; - case LOAD_ATTR_PROPERTY: - return 1; - case LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN: - return 1; - case STORE_ATTR_INSTANCE_VALUE: - return 2; - case STORE_ATTR_WITH_HINT: - return 2; - case STORE_ATTR_SLOT: - return 2; - case COMPARE_OP: - return 2; - case COMPARE_OP_FLOAT: - return 2; - case COMPARE_OP_INT: - return 2; - case COMPARE_OP_STR: - return 2; - case IS_OP: - return 2; - case CONTAINS_OP: - return 2; - case CHECK_EG_MATCH: - return 2; - case CHECK_EXC_MATCH: - return 2; - case IMPORT_NAME: - return 2; - case IMPORT_FROM: - return 1; - case JUMP_FORWARD: - return 0; - case JUMP_BACKWARD: - return 0; - case POP_JUMP_IF_FALSE: - return 1; - case POP_JUMP_IF_TRUE: - return 1; - case POP_JUMP_IF_NOT_NONE: - return 1; - case POP_JUMP_IF_NONE: - return 1; - case JUMP_BACKWARD_NO_INTERRUPT: - return 0; - case GET_LEN: - return 1; - case MATCH_CLASS: - return 3; - case MATCH_MAPPING: - return 1; - case MATCH_SEQUENCE: - return 1; - case MATCH_KEYS: - return 2; - case GET_ITER: - return 1; - case GET_YIELD_FROM_ITER: - return 1; - case FOR_ITER: - return 1; - case INSTRUMENTED_FOR_ITER: - return 0; - case FOR_ITER_LIST: - return 1; - case FOR_ITER_TUPLE: - return 1; - case FOR_ITER_RANGE: - return 1; - case FOR_ITER_GEN: - return 1; - case BEFORE_ASYNC_WITH: - return 1; - case BEFORE_WITH: - return 1; - case WITH_EXCEPT_START: - return 4; - case PUSH_EXC_INFO: - return 1; - case LOAD_ATTR_METHOD_WITH_VALUES: - return 1; - case LOAD_ATTR_METHOD_NO_DICT: - return 1; - case LOAD_ATTR_METHOD_LAZY_DICT: - return 1; - case KW_NAMES: - return 0; - case INSTRUMENTED_CALL: - return 0; - case CALL: - return oparg + 2; - case CALL_BOUND_METHOD_EXACT_ARGS: - return oparg + 2; - case CALL_PY_EXACT_ARGS: - return oparg + 2; - case CALL_PY_WITH_DEFAULTS: - return oparg + 2; - case CALL_NO_KW_TYPE_1: - return oparg + 2; - case CALL_NO_KW_STR_1: - return oparg + 2; - case CALL_NO_KW_TUPLE_1: - return oparg + 2; - case CALL_BUILTIN_CLASS: - return oparg + 2; - case CALL_NO_KW_BUILTIN_O: - return oparg + 2; - case CALL_NO_KW_BUILTIN_FAST: - return oparg + 2; - case CALL_BUILTIN_FAST_WITH_KEYWORDS: - return oparg + 2; - case CALL_NO_KW_LEN: - return oparg + 2; - case CALL_NO_KW_ISINSTANCE: - return oparg + 2; - case CALL_NO_KW_LIST_APPEND: - return oparg + 2; - case CALL_NO_KW_METHOD_DESCRIPTOR_O: - return oparg + 2; - case CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS: - return oparg + 2; - case CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS: - return oparg + 2; - case CALL_NO_KW_METHOD_DESCRIPTOR_FAST: - return oparg + 2; - case INSTRUMENTED_CALL_FUNCTION_EX: - return 0; - case CALL_FUNCTION_EX: - return ((oparg & 1) ? 1 : 0) + 3; - case MAKE_FUNCTION: - return ((oparg & 0x01) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x08) ? 1 : 0) + 1; - case RETURN_GENERATOR: - return 0; - case BUILD_SLICE: - return ((oparg == 3) ? 1 : 0) + 2; - case FORMAT_VALUE: - return (((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0) + 1; - case COPY: - return (oparg-1) + 1; - case BINARY_OP: - return 2; - case SWAP: - return (oparg-2) + 2; - case INSTRUMENTED_INSTRUCTION: - return 0; - case INSTRUMENTED_JUMP_FORWARD: - return 0; - case INSTRUMENTED_JUMP_BACKWARD: - return 0; - case INSTRUMENTED_POP_JUMP_IF_TRUE: - return 0; - case INSTRUMENTED_POP_JUMP_IF_FALSE: - return 0; - case INSTRUMENTED_POP_JUMP_IF_NONE: - return 0; - case INSTRUMENTED_POP_JUMP_IF_NOT_NONE: - return 0; - case EXTENDED_ARG: - return 0; - case CACHE: - return 0; - case RESERVED: - return 0; - default: - return -1; - } -} -#endif - -#ifndef NEED_OPCODE_METADATA -extern int _PyOpcode_num_pushed(int opcode, int oparg, bool jump); -#else -int -_PyOpcode_num_pushed(int opcode, int oparg, bool jump) { - switch(opcode) { - case NOP: - return 0; - case RESUME: - return 0; - case INSTRUMENTED_RESUME: - return 0; - case LOAD_CLOSURE: - return 1; - case LOAD_FAST_CHECK: - return 1; - case LOAD_FAST: - return 1; - case LOAD_FAST_AND_CLEAR: - return 1; - case LOAD_CONST: - return 1; - case STORE_FAST: - return 0; - case LOAD_FAST__LOAD_FAST: - return 1+1; - case LOAD_FAST__LOAD_CONST: - return 1+1; - case STORE_FAST__LOAD_FAST: - return 0+1; - case STORE_FAST__STORE_FAST: - return 0+0; - case LOAD_CONST__LOAD_FAST: - return 1+1; - case POP_TOP: - return 0; - case PUSH_NULL: - return 1; - case END_FOR: - return 0+0; - case INSTRUMENTED_END_FOR: - return 0; - case END_SEND: - return 1; - case INSTRUMENTED_END_SEND: - return 1; - case UNARY_NEGATIVE: - return 1; - case UNARY_NOT: - return 1; - case UNARY_INVERT: - return 1; - case BINARY_OP_MULTIPLY_INT: - return 1; - case BINARY_OP_MULTIPLY_FLOAT: - return 1; - case BINARY_OP_SUBTRACT_INT: - return 1; - case BINARY_OP_SUBTRACT_FLOAT: - return 1; - case BINARY_OP_ADD_UNICODE: - return 1; - case BINARY_OP_INPLACE_ADD_UNICODE: - return 0; - case BINARY_OP_ADD_FLOAT: - return 1; - case BINARY_OP_ADD_INT: - return 1; - case BINARY_SUBSCR: - return 1; - case BINARY_SLICE: - return 1; - case STORE_SLICE: - return 0; - case BINARY_SUBSCR_LIST_INT: - return 1; - case BINARY_SUBSCR_TUPLE_INT: - return 1; - case BINARY_SUBSCR_DICT: - return 1; - case BINARY_SUBSCR_GETITEM: - return 1; - case LIST_APPEND: - return (oparg-1) + 1; - case SET_ADD: - return (oparg-1) + 1; - case STORE_SUBSCR: - return 0; - case STORE_SUBSCR_LIST_INT: - return 0; - case STORE_SUBSCR_DICT: - return 0; - case DELETE_SUBSCR: - return 0; - case CALL_INTRINSIC_1: - return 1; - case CALL_INTRINSIC_2: - return 1; - case RAISE_VARARGS: - return 0; - case INTERPRETER_EXIT: - return 0; - case RETURN_VALUE: - return 0; - case INSTRUMENTED_RETURN_VALUE: - return 0; - case RETURN_CONST: - return 0; - case INSTRUMENTED_RETURN_CONST: - return 0; - case GET_AITER: - return 1; - case GET_ANEXT: - return 2; - case GET_AWAITABLE: - return 1; - case SEND: - return 2; - case SEND_GEN: - return 2; - case INSTRUMENTED_YIELD_VALUE: - return 1; - case YIELD_VALUE: - return 1; - case POP_EXCEPT: - return 0; - case RERAISE: - return oparg; - case END_ASYNC_FOR: - return 0; - case CLEANUP_THROW: - return 2; - case LOAD_ASSERTION_ERROR: - return 1; - case LOAD_BUILD_CLASS: - return 1; - case STORE_NAME: - return 0; - case DELETE_NAME: - return 0; - case UNPACK_SEQUENCE: - return oparg; - case UNPACK_SEQUENCE_TWO_TUPLE: - return oparg; - case UNPACK_SEQUENCE_TUPLE: - return oparg; - case UNPACK_SEQUENCE_LIST: - return oparg; - case UNPACK_EX: - return (oparg & 0xFF) + (oparg >> 8) + 1; - case STORE_ATTR: - return 0; - case DELETE_ATTR: - return 0; - case STORE_GLOBAL: - return 0; - case DELETE_GLOBAL: - return 0; - case LOAD_LOCALS: - return 1; - case LOAD_FROM_DICT_OR_GLOBALS: - return 1; - case LOAD_NAME: - return 1; - case LOAD_GLOBAL: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_GLOBAL_MODULE: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_GLOBAL_BUILTIN: - return ((oparg & 1) ? 1 : 0) + 1; - case DELETE_FAST: - return 0; - case MAKE_CELL: - return 0; - case DELETE_DEREF: - return 0; - case LOAD_FROM_DICT_OR_DEREF: - return 1; - case LOAD_DEREF: - return 1; - case STORE_DEREF: - return 0; - case COPY_FREE_VARS: - return 0; - case BUILD_STRING: - return 1; - case BUILD_TUPLE: - return 1; - case BUILD_LIST: - return 1; - case LIST_EXTEND: - return (oparg-1) + 1; - case SET_UPDATE: - return (oparg-1) + 1; - case BUILD_SET: - return 1; - case BUILD_MAP: - return 1; - case SETUP_ANNOTATIONS: - return 0; - case BUILD_CONST_KEY_MAP: - return 1; - case DICT_UPDATE: - return 0; - case DICT_MERGE: - return 0; - case MAP_ADD: - return 0; - case INSTRUMENTED_LOAD_SUPER_ATTR: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_SUPER_ATTR: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_SUPER_ATTR_ATTR: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_SUPER_ATTR_METHOD: - return 2; - case LOAD_ATTR: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_ATTR_INSTANCE_VALUE: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_ATTR_MODULE: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_ATTR_WITH_HINT: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_ATTR_SLOT: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_ATTR_CLASS: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_ATTR_PROPERTY: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN: - return ((oparg & 1) ? 1 : 0) + 1; - case STORE_ATTR_INSTANCE_VALUE: - return 0; - case STORE_ATTR_WITH_HINT: - return 0; - case STORE_ATTR_SLOT: - return 0; - case COMPARE_OP: - return 1; - case COMPARE_OP_FLOAT: - return 1; - case COMPARE_OP_INT: - return 1; - case COMPARE_OP_STR: - return 1; - case IS_OP: - return 1; - case CONTAINS_OP: - return 1; - case CHECK_EG_MATCH: - return 2; - case CHECK_EXC_MATCH: - return 2; - case IMPORT_NAME: - return 1; - case IMPORT_FROM: - return 2; - case JUMP_FORWARD: - return 0; - case JUMP_BACKWARD: - return 0; - case POP_JUMP_IF_FALSE: - return 0; - case POP_JUMP_IF_TRUE: - return 0; - case POP_JUMP_IF_NOT_NONE: - return 0; - case POP_JUMP_IF_NONE: - return 0; - case JUMP_BACKWARD_NO_INTERRUPT: - return 0; - case GET_LEN: - return 2; - case MATCH_CLASS: - return 1; - case MATCH_MAPPING: - return 2; - case MATCH_SEQUENCE: - return 2; - case MATCH_KEYS: - return 3; - case GET_ITER: - return 1; - case GET_YIELD_FROM_ITER: - return 1; - case FOR_ITER: - return 2; - case INSTRUMENTED_FOR_ITER: - return 0; - case FOR_ITER_LIST: - return 2; - case FOR_ITER_TUPLE: - return 2; - case FOR_ITER_RANGE: - return 2; - case FOR_ITER_GEN: - return 2; - case BEFORE_ASYNC_WITH: - return 2; - case BEFORE_WITH: - return 2; - case WITH_EXCEPT_START: - return 5; - case PUSH_EXC_INFO: - return 2; - case LOAD_ATTR_METHOD_WITH_VALUES: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_ATTR_METHOD_NO_DICT: - return ((oparg & 1) ? 1 : 0) + 1; - case LOAD_ATTR_METHOD_LAZY_DICT: - return ((oparg & 1) ? 1 : 0) + 1; - case KW_NAMES: - return 0; - case INSTRUMENTED_CALL: - return 0; - case CALL: - return 1; - case CALL_BOUND_METHOD_EXACT_ARGS: - return 1; - case CALL_PY_EXACT_ARGS: - return 1; - case CALL_PY_WITH_DEFAULTS: - return 1; - case CALL_NO_KW_TYPE_1: - return 1; - case CALL_NO_KW_STR_1: - return 1; - case CALL_NO_KW_TUPLE_1: - return 1; - case CALL_BUILTIN_CLASS: - return 1; - case CALL_NO_KW_BUILTIN_O: - return 1; - case CALL_NO_KW_BUILTIN_FAST: - return 1; - case CALL_BUILTIN_FAST_WITH_KEYWORDS: - return 1; - case CALL_NO_KW_LEN: - return 1; - case CALL_NO_KW_ISINSTANCE: - return 1; - case CALL_NO_KW_LIST_APPEND: - return 1; - case CALL_NO_KW_METHOD_DESCRIPTOR_O: - return 1; - case CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS: - return 1; - case CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS: - return 1; - case CALL_NO_KW_METHOD_DESCRIPTOR_FAST: - return 1; - case INSTRUMENTED_CALL_FUNCTION_EX: - return 0; - case CALL_FUNCTION_EX: - return 1; - case MAKE_FUNCTION: - return 1; - case RETURN_GENERATOR: - return 0; - case BUILD_SLICE: - return 1; - case FORMAT_VALUE: - return 1; - case COPY: - return (oparg-1) + 2; - case BINARY_OP: - return 1; - case SWAP: - return (oparg-2) + 2; - case INSTRUMENTED_INSTRUCTION: - return 0; - case INSTRUMENTED_JUMP_FORWARD: - return 0; - case INSTRUMENTED_JUMP_BACKWARD: - return 0; - case INSTRUMENTED_POP_JUMP_IF_TRUE: - return 0; - case INSTRUMENTED_POP_JUMP_IF_FALSE: - return 0; - case INSTRUMENTED_POP_JUMP_IF_NONE: - return 0; - case INSTRUMENTED_POP_JUMP_IF_NOT_NONE: - return 0; - case EXTENDED_ARG: - return 0; - case CACHE: - return 0; - case RESERVED: - return 0; - default: - return -1; - } -} -#endif - -enum InstructionFormat { INSTR_FMT_IB, INSTR_FMT_IBC, INSTR_FMT_IBC00, INSTR_FMT_IBC000, INSTR_FMT_IBC00000000, INSTR_FMT_IBIB, INSTR_FMT_IX, INSTR_FMT_IXC, INSTR_FMT_IXC000 }; -struct opcode_metadata { - bool valid_entry; - enum InstructionFormat instr_format; -}; - -#ifndef NEED_OPCODE_METADATA -extern const struct opcode_metadata _PyOpcode_opcode_metadata[256]; -#else -const struct opcode_metadata _PyOpcode_opcode_metadata[256] = { - [NOP] = { true, INSTR_FMT_IX }, - [RESUME] = { true, INSTR_FMT_IB }, - [INSTRUMENTED_RESUME] = { true, INSTR_FMT_IB }, - [LOAD_CLOSURE] = { true, INSTR_FMT_IB }, - [LOAD_FAST_CHECK] = { true, INSTR_FMT_IB }, - [LOAD_FAST] = { true, INSTR_FMT_IB }, - [LOAD_FAST_AND_CLEAR] = { true, INSTR_FMT_IB }, - [LOAD_CONST] = { true, INSTR_FMT_IB }, - [STORE_FAST] = { true, INSTR_FMT_IB }, - [LOAD_FAST__LOAD_FAST] = { true, INSTR_FMT_IBIB }, - [LOAD_FAST__LOAD_CONST] = { true, INSTR_FMT_IBIB }, - [STORE_FAST__LOAD_FAST] = { true, INSTR_FMT_IBIB }, - [STORE_FAST__STORE_FAST] = { true, INSTR_FMT_IBIB }, - [LOAD_CONST__LOAD_FAST] = { true, INSTR_FMT_IBIB }, - [POP_TOP] = { true, INSTR_FMT_IX }, - [PUSH_NULL] = { true, INSTR_FMT_IX }, - [END_FOR] = { true, INSTR_FMT_IB }, - [INSTRUMENTED_END_FOR] = { true, INSTR_FMT_IX }, - [END_SEND] = { true, INSTR_FMT_IX }, - [INSTRUMENTED_END_SEND] = { true, INSTR_FMT_IX }, - [UNARY_NEGATIVE] = { true, INSTR_FMT_IX }, - [UNARY_NOT] = { true, INSTR_FMT_IX }, - [UNARY_INVERT] = { true, INSTR_FMT_IX }, - [BINARY_OP_MULTIPLY_INT] = { true, INSTR_FMT_IXC }, - [BINARY_OP_MULTIPLY_FLOAT] = { true, INSTR_FMT_IXC }, - [BINARY_OP_SUBTRACT_INT] = { true, INSTR_FMT_IXC }, - [BINARY_OP_SUBTRACT_FLOAT] = { true, INSTR_FMT_IXC }, - [BINARY_OP_ADD_UNICODE] = { true, INSTR_FMT_IXC }, - [BINARY_OP_INPLACE_ADD_UNICODE] = { true, INSTR_FMT_IX }, - [BINARY_OP_ADD_FLOAT] = { true, INSTR_FMT_IXC }, - [BINARY_OP_ADD_INT] = { true, INSTR_FMT_IXC }, - [BINARY_SUBSCR] = { true, INSTR_FMT_IXC }, - [BINARY_SLICE] = { true, INSTR_FMT_IX }, - [STORE_SLICE] = { true, INSTR_FMT_IX }, - [BINARY_SUBSCR_LIST_INT] = { true, INSTR_FMT_IXC }, - [BINARY_SUBSCR_TUPLE_INT] = { true, INSTR_FMT_IXC }, - [BINARY_SUBSCR_DICT] = { true, INSTR_FMT_IXC }, - [BINARY_SUBSCR_GETITEM] = { true, INSTR_FMT_IXC }, - [LIST_APPEND] = { true, INSTR_FMT_IB }, - [SET_ADD] = { true, INSTR_FMT_IB }, - [STORE_SUBSCR] = { true, INSTR_FMT_IXC }, - [STORE_SUBSCR_LIST_INT] = { true, INSTR_FMT_IXC }, - [STORE_SUBSCR_DICT] = { true, INSTR_FMT_IXC }, - [DELETE_SUBSCR] = { true, INSTR_FMT_IX }, - [CALL_INTRINSIC_1] = { true, INSTR_FMT_IB }, - [CALL_INTRINSIC_2] = { true, INSTR_FMT_IB }, - [RAISE_VARARGS] = { true, INSTR_FMT_IB }, - [INTERPRETER_EXIT] = { true, INSTR_FMT_IX }, - [RETURN_VALUE] = { true, INSTR_FMT_IX }, - [INSTRUMENTED_RETURN_VALUE] = { true, INSTR_FMT_IX }, - [RETURN_CONST] = { true, INSTR_FMT_IB }, - [INSTRUMENTED_RETURN_CONST] = { true, INSTR_FMT_IB }, - [GET_AITER] = { true, INSTR_FMT_IX }, - [GET_ANEXT] = { true, INSTR_FMT_IX }, - [GET_AWAITABLE] = { true, INSTR_FMT_IB }, - [SEND] = { true, INSTR_FMT_IBC }, - [SEND_GEN] = { true, INSTR_FMT_IBC }, - [INSTRUMENTED_YIELD_VALUE] = { true, INSTR_FMT_IX }, - [YIELD_VALUE] = { true, INSTR_FMT_IX }, - [POP_EXCEPT] = { true, INSTR_FMT_IX }, - [RERAISE] = { true, INSTR_FMT_IB }, - [END_ASYNC_FOR] = { true, INSTR_FMT_IX }, - [CLEANUP_THROW] = { true, INSTR_FMT_IX }, - [LOAD_ASSERTION_ERROR] = { true, INSTR_FMT_IX }, - [LOAD_BUILD_CLASS] = { true, INSTR_FMT_IX }, - [STORE_NAME] = { true, INSTR_FMT_IB }, - [DELETE_NAME] = { true, INSTR_FMT_IB }, - [UNPACK_SEQUENCE] = { true, INSTR_FMT_IBC }, - [UNPACK_SEQUENCE_TWO_TUPLE] = { true, INSTR_FMT_IBC }, - [UNPACK_SEQUENCE_TUPLE] = { true, INSTR_FMT_IBC }, - [UNPACK_SEQUENCE_LIST] = { true, INSTR_FMT_IBC }, - [UNPACK_EX] = { true, INSTR_FMT_IB }, - [STORE_ATTR] = { true, INSTR_FMT_IBC000 }, - [DELETE_ATTR] = { true, INSTR_FMT_IB }, - [STORE_GLOBAL] = { true, INSTR_FMT_IB }, - [DELETE_GLOBAL] = { true, INSTR_FMT_IB }, - [LOAD_LOCALS] = { true, INSTR_FMT_IX }, - [LOAD_FROM_DICT_OR_GLOBALS] = { true, INSTR_FMT_IB }, - [LOAD_NAME] = { true, INSTR_FMT_IB }, - [LOAD_GLOBAL] = { true, INSTR_FMT_IBC000 }, - [LOAD_GLOBAL_MODULE] = { true, INSTR_FMT_IBC000 }, - [LOAD_GLOBAL_BUILTIN] = { true, INSTR_FMT_IBC000 }, - [DELETE_FAST] = { true, INSTR_FMT_IB }, - [MAKE_CELL] = { true, INSTR_FMT_IB }, - [DELETE_DEREF] = { true, INSTR_FMT_IB }, - [LOAD_FROM_DICT_OR_DEREF] = { true, INSTR_FMT_IB }, - [LOAD_DEREF] = { true, INSTR_FMT_IB }, - [STORE_DEREF] = { true, INSTR_FMT_IB }, - [COPY_FREE_VARS] = { true, INSTR_FMT_IB }, - [BUILD_STRING] = { true, INSTR_FMT_IB }, - [BUILD_TUPLE] = { true, INSTR_FMT_IB }, - [BUILD_LIST] = { true, INSTR_FMT_IB }, - [LIST_EXTEND] = { true, INSTR_FMT_IB }, - [SET_UPDATE] = { true, INSTR_FMT_IB }, - [BUILD_SET] = { true, INSTR_FMT_IB }, - [BUILD_MAP] = { true, INSTR_FMT_IB }, - [SETUP_ANNOTATIONS] = { true, INSTR_FMT_IX }, - [BUILD_CONST_KEY_MAP] = { true, INSTR_FMT_IB }, - [DICT_UPDATE] = { true, INSTR_FMT_IB }, - [DICT_MERGE] = { true, INSTR_FMT_IB }, - [MAP_ADD] = { true, INSTR_FMT_IB }, - [INSTRUMENTED_LOAD_SUPER_ATTR] = { true, INSTR_FMT_IBC00000000 }, - [LOAD_SUPER_ATTR] = { true, INSTR_FMT_IBC }, - [LOAD_SUPER_ATTR_ATTR] = { true, INSTR_FMT_IBC }, - [LOAD_SUPER_ATTR_METHOD] = { true, INSTR_FMT_IBC }, - [LOAD_ATTR] = { true, INSTR_FMT_IBC00000000 }, - [LOAD_ATTR_INSTANCE_VALUE] = { true, INSTR_FMT_IBC00000000 }, - [LOAD_ATTR_MODULE] = { true, INSTR_FMT_IBC00000000 }, - [LOAD_ATTR_WITH_HINT] = { true, INSTR_FMT_IBC00000000 }, - [LOAD_ATTR_SLOT] = { true, INSTR_FMT_IBC00000000 }, - [LOAD_ATTR_CLASS] = { true, INSTR_FMT_IBC00000000 }, - [LOAD_ATTR_PROPERTY] = { true, INSTR_FMT_IBC00000000 }, - [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = { true, INSTR_FMT_IBC00000000 }, - [STORE_ATTR_INSTANCE_VALUE] = { true, INSTR_FMT_IXC000 }, - [STORE_ATTR_WITH_HINT] = { true, INSTR_FMT_IBC000 }, - [STORE_ATTR_SLOT] = { true, INSTR_FMT_IXC000 }, - [COMPARE_OP] = { true, INSTR_FMT_IBC }, - [COMPARE_OP_FLOAT] = { true, INSTR_FMT_IBC }, - [COMPARE_OP_INT] = { true, INSTR_FMT_IBC }, - [COMPARE_OP_STR] = { true, INSTR_FMT_IBC }, - [IS_OP] = { true, INSTR_FMT_IB }, - [CONTAINS_OP] = { true, INSTR_FMT_IB }, - [CHECK_EG_MATCH] = { true, INSTR_FMT_IX }, - [CHECK_EXC_MATCH] = { true, INSTR_FMT_IX }, - [IMPORT_NAME] = { true, INSTR_FMT_IB }, - [IMPORT_FROM] = { true, INSTR_FMT_IB }, - [JUMP_FORWARD] = { true, INSTR_FMT_IB }, - [JUMP_BACKWARD] = { true, INSTR_FMT_IB }, - [POP_JUMP_IF_FALSE] = { true, INSTR_FMT_IB }, - [POP_JUMP_IF_TRUE] = { true, INSTR_FMT_IB }, - [POP_JUMP_IF_NOT_NONE] = { true, INSTR_FMT_IB }, - [POP_JUMP_IF_NONE] = { true, INSTR_FMT_IB }, - [JUMP_BACKWARD_NO_INTERRUPT] = { true, INSTR_FMT_IB }, - [GET_LEN] = { true, INSTR_FMT_IX }, - [MATCH_CLASS] = { true, INSTR_FMT_IB }, - [MATCH_MAPPING] = { true, INSTR_FMT_IX }, - [MATCH_SEQUENCE] = { true, INSTR_FMT_IX }, - [MATCH_KEYS] = { true, INSTR_FMT_IX }, - [GET_ITER] = { true, INSTR_FMT_IX }, - [GET_YIELD_FROM_ITER] = { true, INSTR_FMT_IX }, - [FOR_ITER] = { true, INSTR_FMT_IBC }, - [INSTRUMENTED_FOR_ITER] = { true, INSTR_FMT_IB }, - [FOR_ITER_LIST] = { true, INSTR_FMT_IBC }, - [FOR_ITER_TUPLE] = { true, INSTR_FMT_IBC }, - [FOR_ITER_RANGE] = { true, INSTR_FMT_IBC }, - [FOR_ITER_GEN] = { true, INSTR_FMT_IBC }, - [BEFORE_ASYNC_WITH] = { true, INSTR_FMT_IX }, - [BEFORE_WITH] = { true, INSTR_FMT_IX }, - [WITH_EXCEPT_START] = { true, INSTR_FMT_IX }, - [PUSH_EXC_INFO] = { true, INSTR_FMT_IX }, - [LOAD_ATTR_METHOD_WITH_VALUES] = { true, INSTR_FMT_IBC00000000 }, - [LOAD_ATTR_METHOD_NO_DICT] = { true, INSTR_FMT_IBC00000000 }, - [LOAD_ATTR_METHOD_LAZY_DICT] = { true, INSTR_FMT_IBC00000000 }, - [KW_NAMES] = { true, INSTR_FMT_IB }, - [INSTRUMENTED_CALL] = { true, INSTR_FMT_IB }, - [CALL] = { true, INSTR_FMT_IBC00 }, - [CALL_BOUND_METHOD_EXACT_ARGS] = { true, INSTR_FMT_IBC00 }, - [CALL_PY_EXACT_ARGS] = { true, INSTR_FMT_IBC00 }, - [CALL_PY_WITH_DEFAULTS] = { true, INSTR_FMT_IBC00 }, - [CALL_NO_KW_TYPE_1] = { true, INSTR_FMT_IBC00 }, - [CALL_NO_KW_STR_1] = { true, INSTR_FMT_IBC00 }, - [CALL_NO_KW_TUPLE_1] = { true, INSTR_FMT_IBC00 }, - [CALL_BUILTIN_CLASS] = { true, INSTR_FMT_IBC00 }, - [CALL_NO_KW_BUILTIN_O] = { true, INSTR_FMT_IBC00 }, - [CALL_NO_KW_BUILTIN_FAST] = { true, INSTR_FMT_IBC00 }, - [CALL_BUILTIN_FAST_WITH_KEYWORDS] = { true, INSTR_FMT_IBC00 }, - [CALL_NO_KW_LEN] = { true, INSTR_FMT_IBC00 }, - [CALL_NO_KW_ISINSTANCE] = { true, INSTR_FMT_IBC00 }, - [CALL_NO_KW_LIST_APPEND] = { true, INSTR_FMT_IBC00 }, - [CALL_NO_KW_METHOD_DESCRIPTOR_O] = { true, INSTR_FMT_IBC00 }, - [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = { true, INSTR_FMT_IBC00 }, - [CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS] = { true, INSTR_FMT_IBC00 }, - [CALL_NO_KW_METHOD_DESCRIPTOR_FAST] = { true, INSTR_FMT_IBC00 }, - [INSTRUMENTED_CALL_FUNCTION_EX] = { true, INSTR_FMT_IX }, - [CALL_FUNCTION_EX] = { true, INSTR_FMT_IB }, - [MAKE_FUNCTION] = { true, INSTR_FMT_IB }, - [RETURN_GENERATOR] = { true, INSTR_FMT_IX }, - [BUILD_SLICE] = { true, INSTR_FMT_IB }, - [FORMAT_VALUE] = { true, INSTR_FMT_IB }, - [COPY] = { true, INSTR_FMT_IB }, - [BINARY_OP] = { true, INSTR_FMT_IBC }, - [SWAP] = { true, INSTR_FMT_IB }, - [INSTRUMENTED_INSTRUCTION] = { true, INSTR_FMT_IX }, - [INSTRUMENTED_JUMP_FORWARD] = { true, INSTR_FMT_IB }, - [INSTRUMENTED_JUMP_BACKWARD] = { true, INSTR_FMT_IB }, - [INSTRUMENTED_POP_JUMP_IF_TRUE] = { true, INSTR_FMT_IB }, - [INSTRUMENTED_POP_JUMP_IF_FALSE] = { true, INSTR_FMT_IB }, - [INSTRUMENTED_POP_JUMP_IF_NONE] = { true, INSTR_FMT_IB }, - [INSTRUMENTED_POP_JUMP_IF_NOT_NONE] = { true, INSTR_FMT_IB }, - [EXTENDED_ARG] = { true, INSTR_FMT_IB }, - [CACHE] = { true, INSTR_FMT_IX }, - [RESERVED] = { true, INSTR_FMT_IX }, -}; -#endif diff --git a/contrib/tools/python3/Python/opcode_targets.h b/contrib/tools/python3/Python/opcode_targets.h index 3add0636271..fa4f1f8cbb4 100644 --- a/contrib/tools/python3/Python/opcode_targets.h +++ b/contrib/tools/python3/Python/opcode_targets.h @@ -1,198 +1,123 @@ static void *opcode_targets[256] = { &&TARGET_CACHE, - &&TARGET_POP_TOP, - &&TARGET_PUSH_NULL, - &&TARGET_INTERPRETER_EXIT, - &&TARGET_END_FOR, - &&TARGET_END_SEND, - &&TARGET_BINARY_OP_ADD_FLOAT, - &&TARGET_BINARY_OP_ADD_INT, - &&TARGET_BINARY_OP_ADD_UNICODE, - &&TARGET_NOP, + &&TARGET_BEFORE_ASYNC_WITH, + &&TARGET_BEFORE_WITH, &&TARGET_BINARY_OP_INPLACE_ADD_UNICODE, - &&TARGET_UNARY_NEGATIVE, - &&TARGET_UNARY_NOT, - &&TARGET_BINARY_OP_MULTIPLY_FLOAT, - &&TARGET_BINARY_OP_MULTIPLY_INT, - &&TARGET_UNARY_INVERT, - &&TARGET_BINARY_OP_SUBTRACT_FLOAT, - &&TARGET_RESERVED, - &&TARGET_BINARY_OP_SUBTRACT_INT, - &&TARGET_BINARY_SUBSCR_DICT, - &&TARGET_BINARY_SUBSCR_GETITEM, - &&TARGET_BINARY_SUBSCR_LIST_INT, - &&TARGET_BINARY_SUBSCR_TUPLE_INT, - &&TARGET_CALL_PY_EXACT_ARGS, - &&TARGET_CALL_PY_WITH_DEFAULTS, - &&TARGET_BINARY_SUBSCR, &&TARGET_BINARY_SLICE, - &&TARGET_STORE_SLICE, - &&TARGET_CALL_BOUND_METHOD_EXACT_ARGS, - &&TARGET_CALL_BUILTIN_CLASS, - &&TARGET_GET_LEN, - &&TARGET_MATCH_MAPPING, - &&TARGET_MATCH_SEQUENCE, - &&TARGET_MATCH_KEYS, - &&TARGET_CALL_BUILTIN_FAST_WITH_KEYWORDS, - &&TARGET_PUSH_EXC_INFO, - &&TARGET_CHECK_EXC_MATCH, + &&TARGET_BINARY_SUBSCR, &&TARGET_CHECK_EG_MATCH, - &&TARGET_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS, - &&TARGET_CALL_NO_KW_BUILTIN_FAST, - &&TARGET_CALL_NO_KW_BUILTIN_O, - &&TARGET_CALL_NO_KW_ISINSTANCE, - &&TARGET_CALL_NO_KW_LEN, - &&TARGET_CALL_NO_KW_LIST_APPEND, - &&TARGET_CALL_NO_KW_METHOD_DESCRIPTOR_FAST, - &&TARGET_CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS, - &&TARGET_CALL_NO_KW_METHOD_DESCRIPTOR_O, - &&TARGET_CALL_NO_KW_STR_1, - &&TARGET_CALL_NO_KW_TUPLE_1, - &&TARGET_WITH_EXCEPT_START, - &&TARGET_GET_AITER, - &&TARGET_GET_ANEXT, - &&TARGET_BEFORE_ASYNC_WITH, - &&TARGET_BEFORE_WITH, - &&TARGET_END_ASYNC_FOR, + &&TARGET_CHECK_EXC_MATCH, &&TARGET_CLEANUP_THROW, - &&TARGET_CALL_NO_KW_TYPE_1, - &&TARGET_COMPARE_OP_FLOAT, - &&TARGET_COMPARE_OP_INT, - &&TARGET_COMPARE_OP_STR, - &&TARGET_STORE_SUBSCR, &&TARGET_DELETE_SUBSCR, - &&TARGET_FOR_ITER_LIST, - &&TARGET_FOR_ITER_TUPLE, - &&TARGET_FOR_ITER_RANGE, - &&TARGET_FOR_ITER_GEN, - &&TARGET_LOAD_SUPER_ATTR_ATTR, - &&TARGET_LOAD_SUPER_ATTR_METHOD, + &&TARGET_END_ASYNC_FOR, + &&TARGET_END_FOR, + &&TARGET_END_SEND, + &&TARGET_EXIT_INIT_CHECK, + &&TARGET_FORMAT_SIMPLE, + &&TARGET_FORMAT_WITH_SPEC, + &&TARGET_GET_AITER, + &&TARGET_RESERVED, + &&TARGET_GET_ANEXT, &&TARGET_GET_ITER, + &&TARGET_GET_LEN, &&TARGET_GET_YIELD_FROM_ITER, - &&TARGET_LOAD_ATTR_CLASS, - &&TARGET_LOAD_BUILD_CLASS, - &&TARGET_LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN, - &&TARGET_LOAD_ATTR_INSTANCE_VALUE, + &&TARGET_INTERPRETER_EXIT, &&TARGET_LOAD_ASSERTION_ERROR, + &&TARGET_LOAD_BUILD_CLASS, + &&TARGET_LOAD_LOCALS, + &&TARGET_MAKE_FUNCTION, + &&TARGET_MATCH_KEYS, + &&TARGET_MATCH_MAPPING, + &&TARGET_MATCH_SEQUENCE, + &&TARGET_NOP, + &&TARGET_POP_EXCEPT, + &&TARGET_POP_TOP, + &&TARGET_PUSH_EXC_INFO, + &&TARGET_PUSH_NULL, &&TARGET_RETURN_GENERATOR, - &&TARGET_LOAD_ATTR_MODULE, - &&TARGET_LOAD_ATTR_PROPERTY, - &&TARGET_LOAD_ATTR_SLOT, - &&TARGET_LOAD_ATTR_WITH_HINT, - &&TARGET_LOAD_ATTR_METHOD_LAZY_DICT, - &&TARGET_LOAD_ATTR_METHOD_NO_DICT, - &&TARGET_LOAD_ATTR_METHOD_WITH_VALUES, &&TARGET_RETURN_VALUE, - &&TARGET_LOAD_CONST__LOAD_FAST, &&TARGET_SETUP_ANNOTATIONS, - &&TARGET_LOAD_FAST__LOAD_CONST, - &&TARGET_LOAD_LOCALS, - &&TARGET_LOAD_FAST__LOAD_FAST, - &&TARGET_POP_EXCEPT, - &&TARGET_STORE_NAME, - &&TARGET_DELETE_NAME, - &&TARGET_UNPACK_SEQUENCE, - &&TARGET_FOR_ITER, - &&TARGET_UNPACK_EX, - &&TARGET_STORE_ATTR, - &&TARGET_DELETE_ATTR, - &&TARGET_STORE_GLOBAL, - &&TARGET_DELETE_GLOBAL, - &&TARGET_SWAP, - &&TARGET_LOAD_CONST, - &&TARGET_LOAD_NAME, - &&TARGET_BUILD_TUPLE, + &&TARGET_STORE_SLICE, + &&TARGET_STORE_SUBSCR, + &&TARGET_TO_BOOL, + &&TARGET_UNARY_INVERT, + &&TARGET_UNARY_NEGATIVE, + &&TARGET_UNARY_NOT, + &&TARGET_WITH_EXCEPT_START, + &&TARGET_BINARY_OP, + &&TARGET_BUILD_CONST_KEY_MAP, &&TARGET_BUILD_LIST, - &&TARGET_BUILD_SET, &&TARGET_BUILD_MAP, - &&TARGET_LOAD_ATTR, + &&TARGET_BUILD_SET, + &&TARGET_BUILD_SLICE, + &&TARGET_BUILD_STRING, + &&TARGET_BUILD_TUPLE, + &&TARGET_CALL, + &&TARGET_CALL_FUNCTION_EX, + &&TARGET_CALL_INTRINSIC_1, + &&TARGET_CALL_INTRINSIC_2, + &&TARGET_CALL_KW, &&TARGET_COMPARE_OP, - &&TARGET_IMPORT_NAME, - &&TARGET_IMPORT_FROM, - &&TARGET_JUMP_FORWARD, - &&TARGET_LOAD_GLOBAL_BUILTIN, - &&TARGET_LOAD_GLOBAL_MODULE, - &&TARGET_STORE_ATTR_INSTANCE_VALUE, - &&TARGET_POP_JUMP_IF_FALSE, - &&TARGET_POP_JUMP_IF_TRUE, - &&TARGET_LOAD_GLOBAL, - &&TARGET_IS_OP, &&TARGET_CONTAINS_OP, - &&TARGET_RERAISE, + &&TARGET_CONVERT_VALUE, &&TARGET_COPY, - &&TARGET_RETURN_CONST, - &&TARGET_BINARY_OP, - &&TARGET_SEND, - &&TARGET_LOAD_FAST, - &&TARGET_STORE_FAST, + &&TARGET_COPY_FREE_VARS, + &&TARGET_DELETE_ATTR, + &&TARGET_DELETE_DEREF, &&TARGET_DELETE_FAST, - &&TARGET_LOAD_FAST_CHECK, - &&TARGET_POP_JUMP_IF_NOT_NONE, - &&TARGET_POP_JUMP_IF_NONE, - &&TARGET_RAISE_VARARGS, + &&TARGET_DELETE_GLOBAL, + &&TARGET_DELETE_NAME, + &&TARGET_DICT_MERGE, + &&TARGET_DICT_UPDATE, + &&TARGET_ENTER_EXECUTOR, + &&TARGET_EXTENDED_ARG, + &&TARGET_FOR_ITER, &&TARGET_GET_AWAITABLE, - &&TARGET_MAKE_FUNCTION, - &&TARGET_BUILD_SLICE, + &&TARGET_IMPORT_FROM, + &&TARGET_IMPORT_NAME, + &&TARGET_IS_OP, + &&TARGET_JUMP_BACKWARD, &&TARGET_JUMP_BACKWARD_NO_INTERRUPT, - &&TARGET_MAKE_CELL, - &&TARGET_LOAD_CLOSURE, + &&TARGET_JUMP_FORWARD, + &&TARGET_LIST_APPEND, + &&TARGET_LIST_EXTEND, + &&TARGET_LOAD_ATTR, + &&TARGET_LOAD_CONST, &&TARGET_LOAD_DEREF, - &&TARGET_STORE_DEREF, - &&TARGET_DELETE_DEREF, - &&TARGET_JUMP_BACKWARD, - &&TARGET_LOAD_SUPER_ATTR, - &&TARGET_CALL_FUNCTION_EX, + &&TARGET_LOAD_FAST, &&TARGET_LOAD_FAST_AND_CLEAR, - &&TARGET_EXTENDED_ARG, - &&TARGET_LIST_APPEND, - &&TARGET_SET_ADD, + &&TARGET_LOAD_FAST_CHECK, + &&TARGET_LOAD_FAST_LOAD_FAST, + &&TARGET_LOAD_FROM_DICT_OR_DEREF, + &&TARGET_LOAD_FROM_DICT_OR_GLOBALS, + &&TARGET_LOAD_GLOBAL, + &&TARGET_LOAD_NAME, + &&TARGET_LOAD_SUPER_ATTR, + &&TARGET_MAKE_CELL, &&TARGET_MAP_ADD, - &&TARGET_STORE_ATTR_SLOT, - &&TARGET_COPY_FREE_VARS, - &&TARGET_YIELD_VALUE, - &&TARGET_RESUME, &&TARGET_MATCH_CLASS, - &&TARGET_STORE_ATTR_WITH_HINT, - &&TARGET_STORE_FAST__LOAD_FAST, - &&TARGET_FORMAT_VALUE, - &&TARGET_BUILD_CONST_KEY_MAP, - &&TARGET_BUILD_STRING, - &&TARGET_STORE_FAST__STORE_FAST, - &&TARGET_STORE_SUBSCR_DICT, - &&TARGET_STORE_SUBSCR_LIST_INT, - &&TARGET_UNPACK_SEQUENCE_LIST, - &&TARGET_LIST_EXTEND, + &&TARGET_POP_JUMP_IF_FALSE, + &&TARGET_POP_JUMP_IF_NONE, + &&TARGET_POP_JUMP_IF_NOT_NONE, + &&TARGET_POP_JUMP_IF_TRUE, + &&TARGET_RAISE_VARARGS, + &&TARGET_RERAISE, + &&TARGET_RETURN_CONST, + &&TARGET_SEND, + &&TARGET_SET_ADD, + &&TARGET_SET_FUNCTION_ATTRIBUTE, &&TARGET_SET_UPDATE, - &&TARGET_DICT_MERGE, - &&TARGET_DICT_UPDATE, - &&TARGET_UNPACK_SEQUENCE_TUPLE, - &&TARGET_UNPACK_SEQUENCE_TWO_TUPLE, - &&TARGET_SEND_GEN, - &&_unknown_opcode, - &&_unknown_opcode, - &&TARGET_CALL, - &&TARGET_KW_NAMES, - &&TARGET_CALL_INTRINSIC_1, - &&TARGET_CALL_INTRINSIC_2, - &&TARGET_LOAD_FROM_DICT_OR_GLOBALS, - &&TARGET_LOAD_FROM_DICT_OR_DEREF, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, + &&TARGET_STORE_ATTR, + &&TARGET_STORE_DEREF, + &&TARGET_STORE_FAST, + &&TARGET_STORE_FAST_LOAD_FAST, + &&TARGET_STORE_FAST_STORE_FAST, + &&TARGET_STORE_GLOBAL, + &&TARGET_STORE_NAME, + &&TARGET_SWAP, + &&TARGET_UNPACK_EX, + &&TARGET_UNPACK_SEQUENCE, + &&TARGET_YIELD_VALUE, &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, @@ -223,6 +148,80 @@ static void *opcode_targets[256] = { &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, + &&TARGET_RESUME, + &&TARGET_BINARY_OP_ADD_FLOAT, + &&TARGET_BINARY_OP_ADD_INT, + &&TARGET_BINARY_OP_ADD_UNICODE, + &&TARGET_BINARY_OP_MULTIPLY_FLOAT, + &&TARGET_BINARY_OP_MULTIPLY_INT, + &&TARGET_BINARY_OP_SUBTRACT_FLOAT, + &&TARGET_BINARY_OP_SUBTRACT_INT, + &&TARGET_BINARY_SUBSCR_DICT, + &&TARGET_BINARY_SUBSCR_GETITEM, + &&TARGET_BINARY_SUBSCR_LIST_INT, + &&TARGET_BINARY_SUBSCR_STR_INT, + &&TARGET_BINARY_SUBSCR_TUPLE_INT, + &&TARGET_CALL_ALLOC_AND_ENTER_INIT, + &&TARGET_CALL_BOUND_METHOD_EXACT_ARGS, + &&TARGET_CALL_BOUND_METHOD_GENERAL, + &&TARGET_CALL_BUILTIN_CLASS, + &&TARGET_CALL_BUILTIN_FAST, + &&TARGET_CALL_BUILTIN_FAST_WITH_KEYWORDS, + &&TARGET_CALL_BUILTIN_O, + &&TARGET_CALL_ISINSTANCE, + &&TARGET_CALL_LEN, + &&TARGET_CALL_LIST_APPEND, + &&TARGET_CALL_METHOD_DESCRIPTOR_FAST, + &&TARGET_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS, + &&TARGET_CALL_METHOD_DESCRIPTOR_NOARGS, + &&TARGET_CALL_METHOD_DESCRIPTOR_O, + &&TARGET_CALL_NON_PY_GENERAL, + &&TARGET_CALL_PY_EXACT_ARGS, + &&TARGET_CALL_PY_GENERAL, + &&TARGET_CALL_STR_1, + &&TARGET_CALL_TUPLE_1, + &&TARGET_CALL_TYPE_1, + &&TARGET_COMPARE_OP_FLOAT, + &&TARGET_COMPARE_OP_INT, + &&TARGET_COMPARE_OP_STR, + &&TARGET_CONTAINS_OP_DICT, + &&TARGET_CONTAINS_OP_SET, + &&TARGET_FOR_ITER_GEN, + &&TARGET_FOR_ITER_LIST, + &&TARGET_FOR_ITER_RANGE, + &&TARGET_FOR_ITER_TUPLE, + &&TARGET_LOAD_ATTR_CLASS, + &&TARGET_LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN, + &&TARGET_LOAD_ATTR_INSTANCE_VALUE, + &&TARGET_LOAD_ATTR_METHOD_LAZY_DICT, + &&TARGET_LOAD_ATTR_METHOD_NO_DICT, + &&TARGET_LOAD_ATTR_METHOD_WITH_VALUES, + &&TARGET_LOAD_ATTR_MODULE, + &&TARGET_LOAD_ATTR_NONDESCRIPTOR_NO_DICT, + &&TARGET_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES, + &&TARGET_LOAD_ATTR_PROPERTY, + &&TARGET_LOAD_ATTR_SLOT, + &&TARGET_LOAD_ATTR_WITH_HINT, + &&TARGET_LOAD_GLOBAL_BUILTIN, + &&TARGET_LOAD_GLOBAL_MODULE, + &&TARGET_LOAD_SUPER_ATTR_ATTR, + &&TARGET_LOAD_SUPER_ATTR_METHOD, + &&TARGET_RESUME_CHECK, + &&TARGET_SEND_GEN, + &&TARGET_STORE_ATTR_INSTANCE_VALUE, + &&TARGET_STORE_ATTR_SLOT, + &&TARGET_STORE_ATTR_WITH_HINT, + &&TARGET_STORE_SUBSCR_DICT, + &&TARGET_STORE_SUBSCR_LIST_INT, + &&TARGET_TO_BOOL_ALWAYS_TRUE, + &&TARGET_TO_BOOL_BOOL, + &&TARGET_TO_BOOL_INT, + &&TARGET_TO_BOOL_LIST, + &&TARGET_TO_BOOL_NONE, + &&TARGET_TO_BOOL_STR, + &&TARGET_UNPACK_SEQUENCE_LIST, + &&TARGET_UNPACK_SEQUENCE_TUPLE, + &&TARGET_UNPACK_SEQUENCE_TWO_TUPLE, &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, @@ -236,23 +235,24 @@ static void *opcode_targets[256] = { &&_unknown_opcode, &&_unknown_opcode, &&_unknown_opcode, - &&TARGET_INSTRUMENTED_LOAD_SUPER_ATTR, - &&TARGET_INSTRUMENTED_POP_JUMP_IF_NONE, - &&TARGET_INSTRUMENTED_POP_JUMP_IF_NOT_NONE, &&TARGET_INSTRUMENTED_RESUME, - &&TARGET_INSTRUMENTED_CALL, + &&TARGET_INSTRUMENTED_END_FOR, + &&TARGET_INSTRUMENTED_END_SEND, &&TARGET_INSTRUMENTED_RETURN_VALUE, + &&TARGET_INSTRUMENTED_RETURN_CONST, &&TARGET_INSTRUMENTED_YIELD_VALUE, + &&TARGET_INSTRUMENTED_LOAD_SUPER_ATTR, + &&TARGET_INSTRUMENTED_FOR_ITER, + &&TARGET_INSTRUMENTED_CALL, + &&TARGET_INSTRUMENTED_CALL_KW, &&TARGET_INSTRUMENTED_CALL_FUNCTION_EX, + &&TARGET_INSTRUMENTED_INSTRUCTION, &&TARGET_INSTRUMENTED_JUMP_FORWARD, &&TARGET_INSTRUMENTED_JUMP_BACKWARD, - &&TARGET_INSTRUMENTED_RETURN_CONST, - &&TARGET_INSTRUMENTED_FOR_ITER, - &&TARGET_INSTRUMENTED_POP_JUMP_IF_FALSE, &&TARGET_INSTRUMENTED_POP_JUMP_IF_TRUE, - &&TARGET_INSTRUMENTED_END_FOR, - &&TARGET_INSTRUMENTED_END_SEND, - &&TARGET_INSTRUMENTED_INSTRUCTION, + &&TARGET_INSTRUMENTED_POP_JUMP_IF_FALSE, + &&TARGET_INSTRUMENTED_POP_JUMP_IF_NONE, + &&TARGET_INSTRUMENTED_POP_JUMP_IF_NOT_NONE, &&TARGET_INSTRUMENTED_LINE, - &&_unknown_opcode + &&_unknown_opcode, }; diff --git a/contrib/tools/python3/Python/optimizer.c b/contrib/tools/python3/Python/optimizer.c new file mode 100644 index 00000000000..50ab71c5c01 --- /dev/null +++ b/contrib/tools/python3/Python/optimizer.c @@ -0,0 +1,1711 @@ +#ifdef _Py_TIER2 + +#include "Python.h" +#include "opcode.h" +#include "pycore_interp.h" +#include "pycore_backoff.h" +#include "pycore_bitutils.h" // _Py_popcount32() +#include "pycore_object.h" // _PyObject_GC_UNTRACK() +#include "pycore_opcode_metadata.h" // _PyOpcode_OpName[] +#include "pycore_opcode_utils.h" // MAX_REAL_OPCODE +#include "pycore_optimizer.h" // _Py_uop_analyze_and_optimize() +#include "pycore_pystate.h" // _PyInterpreterState_GET() +#include "pycore_uop_ids.h" +#include "pycore_jit.h" +#include +#include +#include + +#define NEED_OPCODE_METADATA +#include "pycore_uop_metadata.h" // Uop tables +#undef NEED_OPCODE_METADATA + +#define MAX_EXECUTORS_SIZE 256 + +#ifdef Py_DEBUG +static int +base_opcode(PyCodeObject *code, int offset) +{ + int opcode = _Py_GetBaseOpcode(code, offset); + if (opcode == ENTER_EXECUTOR) { + int oparg = _PyCode_CODE(code)[offset].op.arg; + _PyExecutorObject *ex = code->co_executors->executors[oparg]; + return ex->vm_data.opcode; + } + return opcode; +} +#endif + +static bool +has_space_for_executor(PyCodeObject *code, _Py_CODEUNIT *instr) +{ + if (instr->op.code == ENTER_EXECUTOR) { + return true; + } + if (code->co_executors == NULL) { + return true; + } + return code->co_executors->size < MAX_EXECUTORS_SIZE; +} + +static int32_t +get_index_for_executor(PyCodeObject *code, _Py_CODEUNIT *instr) +{ + if (instr->op.code == ENTER_EXECUTOR) { + return instr->op.arg; + } + _PyExecutorArray *old = code->co_executors; + int size = 0; + int capacity = 0; + if (old != NULL) { + size = old->size; + capacity = old->capacity; + assert(size < MAX_EXECUTORS_SIZE); + } + assert(size <= capacity); + if (size == capacity) { + /* Array is full. Grow array */ + int new_capacity = capacity ? capacity * 2 : 4; + _PyExecutorArray *new = PyMem_Realloc( + old, + offsetof(_PyExecutorArray, executors) + + new_capacity * sizeof(_PyExecutorObject *)); + if (new == NULL) { + return -1; + } + new->capacity = new_capacity; + new->size = size; + code->co_executors = new; + } + assert(size < code->co_executors->capacity); + return size; +} + +static void +insert_executor(PyCodeObject *code, _Py_CODEUNIT *instr, int index, _PyExecutorObject *executor) +{ + Py_INCREF(executor); + if (instr->op.code == ENTER_EXECUTOR) { + assert(index == instr->op.arg); + _Py_ExecutorDetach(code->co_executors->executors[index]); + } + else { + assert(code->co_executors->size == index); + assert(code->co_executors->capacity > index); + code->co_executors->size++; + } + executor->vm_data.opcode = instr->op.code; + executor->vm_data.oparg = instr->op.arg; + executor->vm_data.code = code; + executor->vm_data.index = (int)(instr - _PyCode_CODE(code)); + code->co_executors->executors[index] = executor; + assert(index < MAX_EXECUTORS_SIZE); + instr->op.code = ENTER_EXECUTOR; + instr->op.arg = index; +} + + +static int +never_optimize( + _PyOptimizerObject* self, + _PyInterpreterFrame *frame, + _Py_CODEUNIT *instr, + _PyExecutorObject **exec, + int Py_UNUSED(stack_entries)) +{ + // This may be called if the optimizer is reset + return 0; +} + +PyTypeObject _PyDefaultOptimizer_Type = { + PyVarObject_HEAD_INIT(&PyType_Type, 0) + .tp_name = "noop_optimizer", + .tp_basicsize = sizeof(_PyOptimizerObject), + .tp_itemsize = 0, + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_DISALLOW_INSTANTIATION, +}; + +static _PyOptimizerObject _PyOptimizer_Default = { + PyObject_HEAD_INIT(&_PyDefaultOptimizer_Type) + .optimize = never_optimize, +}; + +_PyOptimizerObject * +_Py_GetOptimizer(void) +{ + PyInterpreterState *interp = _PyInterpreterState_GET(); + if (interp->optimizer == &_PyOptimizer_Default) { + return NULL; + } + Py_INCREF(interp->optimizer); + return interp->optimizer; +} + +static _PyExecutorObject * +make_executor_from_uops(_PyUOpInstruction *buffer, int length, const _PyBloomFilter *dependencies); + +static int +init_cold_exit_executor(_PyExecutorObject *executor, int oparg); + +/* It is impossible for the number of exits to reach 1/4 of the total length, + * as the number of exits cannot reach 1/3 of the number of non-exits, due to + * the presence of CHECK_VALIDITY checks and instructions to produce the values + * being checked in exits. */ +#define COLD_EXIT_COUNT (UOP_MAX_TRACE_LENGTH/4) + +static int cold_exits_initialized = 0; +static _PyExecutorObject COLD_EXITS[COLD_EXIT_COUNT] = { 0 }; + +static const _PyBloomFilter EMPTY_FILTER = { 0 }; + +_PyOptimizerObject * +_Py_SetOptimizer(PyInterpreterState *interp, _PyOptimizerObject *optimizer) +{ + if (optimizer == NULL) { + optimizer = &_PyOptimizer_Default; + } + else if (cold_exits_initialized == 0) { + cold_exits_initialized = 1; + for (int i = 0; i < COLD_EXIT_COUNT; i++) { + if (init_cold_exit_executor(&COLD_EXITS[i], i)) { + return NULL; + } + } + } + _PyOptimizerObject *old = interp->optimizer; + if (old == NULL) { + old = &_PyOptimizer_Default; + } + Py_INCREF(optimizer); + interp->optimizer = optimizer; + return old; +} + +int +_Py_SetTier2Optimizer(_PyOptimizerObject *optimizer) +{ + PyInterpreterState *interp = _PyInterpreterState_GET(); + _PyOptimizerObject *old = _Py_SetOptimizer(interp, optimizer); + Py_XDECREF(old); + return old == NULL ? -1 : 0; +} + +/* Returns 1 if optimized, 0 if not optimized, and -1 for an error. + * If optimized, *executor_ptr contains a new reference to the executor + */ +int +_PyOptimizer_Optimize( + _PyInterpreterFrame *frame, _Py_CODEUNIT *start, + PyObject **stack_pointer, _PyExecutorObject **executor_ptr) +{ + PyCodeObject *code = _PyFrame_GetCode(frame); + assert(PyCode_Check(code)); + PyInterpreterState *interp = _PyInterpreterState_GET(); + if (!has_space_for_executor(code, start)) { + return 0; + } + _PyOptimizerObject *opt = interp->optimizer; + int err = opt->optimize(opt, frame, start, executor_ptr, (int)(stack_pointer - _PyFrame_Stackbase(frame))); + if (err <= 0) { + return err; + } + assert(*executor_ptr != NULL); + int index = get_index_for_executor(code, start); + if (index < 0) { + /* Out of memory. Don't raise and assume that the + * error will show up elsewhere. + * + * If an optimizer has already produced an executor, + * it might get confused by the executor disappearing, + * but there is not much we can do about that here. */ + Py_DECREF(*executor_ptr); + return 0; + } + insert_executor(code, start, index, *executor_ptr); + assert((*executor_ptr)->vm_data.valid); + return 1; +} + +_PyExecutorObject * +_Py_GetExecutor(PyCodeObject *code, int offset) +{ + int code_len = (int)Py_SIZE(code); + for (int i = 0 ; i < code_len;) { + if (_PyCode_CODE(code)[i].op.code == ENTER_EXECUTOR && i*2 == offset) { + int oparg = _PyCode_CODE(code)[i].op.arg; + _PyExecutorObject *res = code->co_executors->executors[oparg]; + Py_INCREF(res); + return res; + } + i += _PyInstruction_GetLength(code, i); + } + PyErr_SetString(PyExc_ValueError, "no executor at given byte offset"); + return NULL; +} + +static PyObject * +is_valid(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + return PyBool_FromLong(((_PyExecutorObject *)self)->vm_data.valid); +} + +static PyObject * +get_opcode(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + return PyLong_FromUnsignedLong(((_PyExecutorObject *)self)->vm_data.opcode); +} + +static PyObject * +get_oparg(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + return PyLong_FromUnsignedLong(((_PyExecutorObject *)self)->vm_data.oparg); +} + +static PyMethodDef executor_methods[] = { + { "is_valid", is_valid, METH_NOARGS, NULL }, + { "get_opcode", get_opcode, METH_NOARGS, NULL }, + { "get_oparg", get_oparg, METH_NOARGS, NULL }, + { NULL, NULL }, +}; + +///////////////////// Experimental UOp Optimizer ///////////////////// + +static int executor_clear(_PyExecutorObject *executor); +static void unlink_executor(_PyExecutorObject *executor); + +static void +uop_dealloc(_PyExecutorObject *self) { + _PyObject_GC_UNTRACK(self); + assert(self->vm_data.code == NULL); + unlink_executor(self); +#ifdef _Py_JIT + _PyJIT_Free(self); +#endif + PyObject_GC_Del(self); +} + +const char * +_PyUOpName(int index) +{ + if (index < 0 || index > MAX_UOP_ID) { + return NULL; + } + return _PyOpcode_uop_name[index]; +} + +#ifdef Py_DEBUG +void +_PyUOpPrint(const _PyUOpInstruction *uop) +{ + const char *name = _PyUOpName(uop->opcode); + if (name == NULL) { + printf("", uop->opcode); + } + else { + printf("%s", name); + } + switch(uop->format) { + case UOP_FORMAT_TARGET: + printf(" (%d, target=%d, operand=%#" PRIx64, + uop->oparg, + uop->target, + (uint64_t)uop->operand); + break; + case UOP_FORMAT_JUMP: + printf(" (%d, jump_target=%d, operand=%#" PRIx64, + uop->oparg, + uop->jump_target, + (uint64_t)uop->operand); + break; + case UOP_FORMAT_EXIT: + printf(" (%d, exit_index=%d, operand=%#" PRIx64, + uop->oparg, + uop->exit_index, + (uint64_t)uop->operand); + break; + default: + printf(" (%d, Unknown format)", uop->oparg); + } + if (_PyUop_Flags[uop->opcode] & HAS_ERROR_FLAG) { + printf(", error_target=%d", uop->error_target); + } + + printf(")"); +} +#endif + +static Py_ssize_t +uop_len(_PyExecutorObject *self) +{ + return self->code_size; +} + +static PyObject * +uop_item(_PyExecutorObject *self, Py_ssize_t index) +{ + Py_ssize_t len = uop_len(self); + if (index < 0 || index >= len) { + PyErr_SetNone(PyExc_IndexError); + return NULL; + } + const char *name = _PyUOpName(self->trace[index].opcode); + if (name == NULL) { + name = ""; + } + PyObject *oname = _PyUnicode_FromASCII(name, strlen(name)); + if (oname == NULL) { + return NULL; + } + PyObject *oparg = PyLong_FromUnsignedLong(self->trace[index].oparg); + if (oparg == NULL) { + Py_DECREF(oname); + return NULL; + } + PyObject *target = PyLong_FromUnsignedLong(self->trace[index].target); + if (oparg == NULL) { + Py_DECREF(oparg); + Py_DECREF(oname); + return NULL; + } + PyObject *operand = PyLong_FromUnsignedLongLong(self->trace[index].operand); + if (operand == NULL) { + Py_DECREF(target); + Py_DECREF(oparg); + Py_DECREF(oname); + return NULL; + } + PyObject *args[4] = { oname, oparg, target, operand }; + return _PyTuple_FromArraySteal(args, 4); +} + +PySequenceMethods uop_as_sequence = { + .sq_length = (lenfunc)uop_len, + .sq_item = (ssizeargfunc)uop_item, +}; + +static int +executor_traverse(PyObject *o, visitproc visit, void *arg) +{ + _PyExecutorObject *executor = (_PyExecutorObject *)o; + for (uint32_t i = 0; i < executor->exit_count; i++) { + Py_VISIT(executor->exits[i].executor); + } + return 0; +} + +static PyObject * +get_jit_code(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ +#ifndef _Py_JIT + PyErr_SetString(PyExc_RuntimeError, "JIT support not enabled."); + return NULL; +#else + _PyExecutorObject *executor = (_PyExecutorObject *)self; + if (executor->jit_code == NULL || executor->jit_size == 0) { + Py_RETURN_NONE; + } + return PyBytes_FromStringAndSize(executor->jit_code, executor->jit_size); +#endif +} + +static PyMethodDef uop_executor_methods[] = { + { "is_valid", is_valid, METH_NOARGS, NULL }, + { "get_jit_code", get_jit_code, METH_NOARGS, NULL}, + { "get_opcode", get_opcode, METH_NOARGS, NULL }, + { "get_oparg", get_oparg, METH_NOARGS, NULL }, + { NULL, NULL }, +}; + +static int +executor_is_gc(PyObject *o) +{ + return !_Py_IsImmortal(o); +} + +PyTypeObject _PyUOpExecutor_Type = { + PyVarObject_HEAD_INIT(&PyType_Type, 0) + .tp_name = "uop_executor", + .tp_basicsize = offsetof(_PyExecutorObject, exits), + .tp_itemsize = 1, + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_DISALLOW_INSTANTIATION | Py_TPFLAGS_HAVE_GC, + .tp_dealloc = (destructor)uop_dealloc, + .tp_as_sequence = &uop_as_sequence, + .tp_methods = uop_executor_methods, + .tp_traverse = executor_traverse, + .tp_clear = (inquiry)executor_clear, + .tp_is_gc = executor_is_gc, +}; + +/* TO DO -- Generate these tables */ +static const uint16_t +_PyUOp_Replacements[MAX_UOP_ID + 1] = { + [_ITER_JUMP_RANGE] = _GUARD_NOT_EXHAUSTED_RANGE, + [_ITER_JUMP_LIST] = _GUARD_NOT_EXHAUSTED_LIST, + [_ITER_JUMP_TUPLE] = _GUARD_NOT_EXHAUSTED_TUPLE, + [_FOR_ITER] = _FOR_ITER_TIER_TWO, +}; + +static const uint8_t +is_for_iter_test[MAX_UOP_ID + 1] = { + [_GUARD_NOT_EXHAUSTED_RANGE] = 1, + [_GUARD_NOT_EXHAUSTED_LIST] = 1, + [_GUARD_NOT_EXHAUSTED_TUPLE] = 1, + [_FOR_ITER_TIER_TWO] = 1, +}; + +static const uint16_t +BRANCH_TO_GUARD[4][2] = { + [POP_JUMP_IF_FALSE - POP_JUMP_IF_FALSE][0] = _GUARD_IS_TRUE_POP, + [POP_JUMP_IF_FALSE - POP_JUMP_IF_FALSE][1] = _GUARD_IS_FALSE_POP, + [POP_JUMP_IF_TRUE - POP_JUMP_IF_FALSE][0] = _GUARD_IS_FALSE_POP, + [POP_JUMP_IF_TRUE - POP_JUMP_IF_FALSE][1] = _GUARD_IS_TRUE_POP, + [POP_JUMP_IF_NONE - POP_JUMP_IF_FALSE][0] = _GUARD_IS_NOT_NONE_POP, + [POP_JUMP_IF_NONE - POP_JUMP_IF_FALSE][1] = _GUARD_IS_NONE_POP, + [POP_JUMP_IF_NOT_NONE - POP_JUMP_IF_FALSE][0] = _GUARD_IS_NONE_POP, + [POP_JUMP_IF_NOT_NONE - POP_JUMP_IF_FALSE][1] = _GUARD_IS_NOT_NONE_POP, +}; + + +#define CONFIDENCE_RANGE 1000 +#define CONFIDENCE_CUTOFF 333 + +#ifdef Py_DEBUG +#define DPRINTF(level, ...) \ + if (lltrace >= (level)) { printf(__VA_ARGS__); } +#else +#define DPRINTF(level, ...) +#endif + + +static inline int +add_to_trace( + _PyUOpInstruction *trace, + int trace_length, + uint16_t opcode, + uint16_t oparg, + uint64_t operand, + uint32_t target) +{ + trace[trace_length].opcode = opcode; + trace[trace_length].format = UOP_FORMAT_TARGET; + trace[trace_length].target = target; + trace[trace_length].oparg = oparg; + trace[trace_length].operand = operand; + return trace_length + 1; +} + +#ifdef Py_DEBUG +#define ADD_TO_TRACE(OPCODE, OPARG, OPERAND, TARGET) \ + assert(trace_length < max_length); \ + trace_length = add_to_trace(trace, trace_length, (OPCODE), (OPARG), (OPERAND), (TARGET)); \ + if (lltrace >= 2) { \ + printf("%4d ADD_TO_TRACE: ", trace_length); \ + _PyUOpPrint(&trace[trace_length-1]); \ + printf("\n"); \ + } +#else +#define ADD_TO_TRACE(OPCODE, OPARG, OPERAND, TARGET) \ + assert(trace_length < max_length); \ + trace_length = add_to_trace(trace, trace_length, (OPCODE), (OPARG), (OPERAND), (TARGET)); +#endif + +#define INSTR_IP(INSTR, CODE) \ + ((uint32_t)((INSTR) - ((_Py_CODEUNIT *)(CODE)->co_code_adaptive))) + +// Reserve space for n uops +#define RESERVE_RAW(n, opname) \ + if (trace_length + (n) > max_length) { \ + DPRINTF(2, "No room for %s (need %d, got %d)\n", \ + (opname), (n), max_length - trace_length); \ + OPT_STAT_INC(trace_too_long); \ + goto done; \ + } + +// Reserve space for N uops, plus 3 for _SET_IP, _CHECK_VALIDITY and _EXIT_TRACE +#define RESERVE(needed) RESERVE_RAW((needed) + 3, _PyUOpName(opcode)) + +// Trace stack operations (used by _PUSH_FRAME, _POP_FRAME) +#define TRACE_STACK_PUSH() \ + if (trace_stack_depth >= TRACE_STACK_SIZE) { \ + DPRINTF(2, "Trace stack overflow\n"); \ + OPT_STAT_INC(trace_stack_overflow); \ + trace_length = 0; \ + goto done; \ + } \ + assert(func == NULL || func->func_code == (PyObject *)code); \ + trace_stack[trace_stack_depth].func = func; \ + trace_stack[trace_stack_depth].code = code; \ + trace_stack[trace_stack_depth].instr = instr; \ + trace_stack_depth++; +#define TRACE_STACK_POP() \ + if (trace_stack_depth <= 0) { \ + Py_FatalError("Trace stack underflow\n"); \ + } \ + trace_stack_depth--; \ + func = trace_stack[trace_stack_depth].func; \ + code = trace_stack[trace_stack_depth].code; \ + assert(func == NULL || func->func_code == (PyObject *)code); \ + instr = trace_stack[trace_stack_depth].instr; + +/* Returns the length of the trace on success, + * 0 if it failed to produce a worthwhile trace, + * and -1 on an error. + */ +static int +translate_bytecode_to_trace( + _PyInterpreterFrame *frame, + _Py_CODEUNIT *instr, + _PyUOpInstruction *trace, + int buffer_size, + _PyBloomFilter *dependencies) +{ + bool progress_needed = true; + PyCodeObject *code = _PyFrame_GetCode(frame); + PyFunctionObject *func = (PyFunctionObject *)frame->f_funcobj; + assert(PyFunction_Check(func)); + PyCodeObject *initial_code = code; + _Py_BloomFilter_Add(dependencies, initial_code); + _Py_CODEUNIT *initial_instr = instr; + int trace_length = 0; + // Leave space for possible trailing _EXIT_TRACE + int max_length = buffer_size-2; + struct { + PyFunctionObject *func; + PyCodeObject *code; + _Py_CODEUNIT *instr; + } trace_stack[TRACE_STACK_SIZE]; + int trace_stack_depth = 0; + int confidence = CONFIDENCE_RANGE; // Adjusted by branch instructions + +#ifdef Py_DEBUG + char *python_lltrace = Py_GETENV("PYTHON_LLTRACE"); + int lltrace = 0; + if (python_lltrace != NULL && *python_lltrace >= '0') { + lltrace = *python_lltrace - '0'; // TODO: Parse an int and all that + } +#endif + + DPRINTF(2, + "Optimizing %s (%s:%d) at byte offset %d\n", + PyUnicode_AsUTF8(code->co_qualname), + PyUnicode_AsUTF8(code->co_filename), + code->co_firstlineno, + 2 * INSTR_IP(initial_instr, code)); + ADD_TO_TRACE(_START_EXECUTOR, 0, (uintptr_t)instr, INSTR_IP(instr, code)); + uint32_t target = 0; + +top: // Jump here after _PUSH_FRAME or likely branches + for (;;) { + target = INSTR_IP(instr, code); + // Need space for _DEOPT + max_length--; + + uint32_t opcode = instr->op.code; + uint32_t oparg = instr->op.arg; + + DPRINTF(2, "%d: %s(%d)\n", target, _PyOpcode_OpName[opcode], oparg); + + if (opcode == ENTER_EXECUTOR) { + assert(oparg < 256); + _PyExecutorObject *executor = code->co_executors->executors[oparg]; + opcode = executor->vm_data.opcode; + DPRINTF(2, " * ENTER_EXECUTOR -> %s\n", _PyOpcode_OpName[opcode]); + oparg = executor->vm_data.oparg; + } + + if (opcode == EXTENDED_ARG) { + instr++; + opcode = instr->op.code; + oparg = (oparg << 8) | instr->op.arg; + if (opcode == EXTENDED_ARG) { + instr--; + goto done; + } + } + assert(opcode != ENTER_EXECUTOR && opcode != EXTENDED_ARG); + RESERVE_RAW(2, "_CHECK_VALIDITY_AND_SET_IP"); + ADD_TO_TRACE(_CHECK_VALIDITY_AND_SET_IP, 0, (uintptr_t)instr, target); + + /* Special case the first instruction, + * so that we can guarantee forward progress */ + if (progress_needed) { + progress_needed = false; + if (opcode == JUMP_BACKWARD || opcode == JUMP_BACKWARD_NO_INTERRUPT) { + instr += 1 + _PyOpcode_Caches[opcode] - (int32_t)oparg; + initial_instr = instr; + if (opcode == JUMP_BACKWARD) { + ADD_TO_TRACE(_TIER2_RESUME_CHECK, 0, 0, target); + } + continue; + } + else { + if (OPCODE_HAS_EXIT(opcode) || OPCODE_HAS_DEOPT(opcode)) { + opcode = _PyOpcode_Deopt[opcode]; + } + assert(!OPCODE_HAS_EXIT(opcode)); + assert(!OPCODE_HAS_DEOPT(opcode)); + } + } + + if (OPCODE_HAS_EXIT(opcode)) { + // Make space for exit code + max_length--; + } + if (OPCODE_HAS_ERROR(opcode)) { + // Make space for error code + max_length--; + } + switch (opcode) { + case POP_JUMP_IF_NONE: + case POP_JUMP_IF_NOT_NONE: + case POP_JUMP_IF_FALSE: + case POP_JUMP_IF_TRUE: + { + RESERVE(1); + int counter = instr[1].cache; + int bitcount = _Py_popcount32(counter); + int jump_likely = bitcount > 8; + /* If bitcount is 8 (half the jumps were taken), adjust confidence by 50%. + If it's 16 or 0 (all or none were taken), adjust by 10% + (since the future is still somewhat uncertain). + For values in between, adjust proportionally. */ + if (jump_likely) { + confidence = confidence * (bitcount + 2) / 20; + } + else { + confidence = confidence * (18 - bitcount) / 20; + } + uint32_t uopcode = BRANCH_TO_GUARD[opcode - POP_JUMP_IF_FALSE][jump_likely]; + DPRINTF(2, "%d: %s(%d): counter=%04x, bitcount=%d, likely=%d, confidence=%d, uopcode=%s\n", + target, _PyOpcode_OpName[opcode], oparg, + counter, bitcount, jump_likely, confidence, _PyUOpName(uopcode)); + if (confidence < CONFIDENCE_CUTOFF) { + DPRINTF(2, "Confidence too low (%d < %d)\n", confidence, CONFIDENCE_CUTOFF); + OPT_STAT_INC(low_confidence); + goto done; + } + _Py_CODEUNIT *next_instr = instr + 1 + _PyOpcode_Caches[_PyOpcode_Deopt[opcode]]; + _Py_CODEUNIT *target_instr = next_instr + oparg; + if (jump_likely) { + DPRINTF(2, "Jump likely (%04x = %d bits), continue at byte offset %d\n", + instr[1].cache, bitcount, 2 * INSTR_IP(target_instr, code)); + instr = target_instr; + ADD_TO_TRACE(uopcode, 0, 0, INSTR_IP(next_instr, code)); + goto top; + } + ADD_TO_TRACE(uopcode, 0, 0, INSTR_IP(target_instr, code)); + break; + } + + case JUMP_BACKWARD: + case JUMP_BACKWARD_NO_INTERRUPT: + { + _Py_CODEUNIT *target = instr + 1 + _PyOpcode_Caches[opcode] - (int)oparg; + if (target == initial_instr) { + /* We have looped round to the start */ + RESERVE(1); + ADD_TO_TRACE(_JUMP_TO_TOP, 0, 0, 0); + } + else { + OPT_STAT_INC(inner_loop); + DPRINTF(2, "JUMP_BACKWARD not to top ends trace\n"); + } + goto done; + } + + case JUMP_FORWARD: + { + RESERVE(0); + // This will emit two _SET_IP instructions; leave it to the optimizer + instr += oparg; + break; + } + + case RESUME: + /* Use a special tier 2 version of RESUME_CHECK to allow traces to + * start with RESUME_CHECK */ + ADD_TO_TRACE(_TIER2_RESUME_CHECK, 0, 0, target); + break; + + default: + { + const struct opcode_macro_expansion *expansion = &_PyOpcode_macro_expansion[opcode]; + if (expansion->nuops > 0) { + // Reserve space for nuops (+ _SET_IP + _EXIT_TRACE) + int nuops = expansion->nuops; + RESERVE(nuops + 1); /* One extra for exit */ + int16_t last_op = expansion->uops[nuops-1].uop; + if (last_op == _POP_FRAME || last_op == _RETURN_GENERATOR || last_op == _YIELD_VALUE) { + // Check for trace stack underflow now: + // We can't bail e.g. in the middle of + // LOAD_CONST + _POP_FRAME. + if (trace_stack_depth == 0) { + DPRINTF(2, "Trace stack underflow\n"); + OPT_STAT_INC(trace_stack_underflow); + goto done; + } + } + uint32_t orig_oparg = oparg; // For OPARG_TOP/BOTTOM + for (int i = 0; i < nuops; i++) { + oparg = orig_oparg; + uint32_t uop = expansion->uops[i].uop; + uint64_t operand = 0; + // Add one to account for the actual opcode/oparg pair: + int offset = expansion->uops[i].offset + 1; + switch (expansion->uops[i].size) { + case OPARG_FULL: + assert(opcode != JUMP_BACKWARD_NO_INTERRUPT && opcode != JUMP_BACKWARD); + break; + case OPARG_CACHE_1: + operand = read_u16(&instr[offset].cache); + break; + case OPARG_CACHE_2: + operand = read_u32(&instr[offset].cache); + break; + case OPARG_CACHE_4: + operand = read_u64(&instr[offset].cache); + break; + case OPARG_TOP: // First half of super-instr + oparg = orig_oparg >> 4; + break; + case OPARG_BOTTOM: // Second half of super-instr + oparg = orig_oparg & 0xF; + break; + case OPARG_SAVE_RETURN_OFFSET: // op=_SAVE_RETURN_OFFSET; oparg=return_offset + oparg = offset; + assert(uop == _SAVE_RETURN_OFFSET); + break; + case OPARG_REPLACED: + uop = _PyUOp_Replacements[uop]; + assert(uop != 0); +#ifdef Py_DEBUG + { + uint32_t next_inst = target + 1 + INLINE_CACHE_ENTRIES_FOR_ITER + (oparg > 255); + uint32_t jump_target = next_inst + oparg; + assert(base_opcode(code, jump_target) == END_FOR || + base_opcode(code, jump_target) == INSTRUMENTED_END_FOR); + assert(base_opcode(code, jump_target+1) == POP_TOP); + } +#endif + break; + default: + fprintf(stderr, + "opcode=%d, oparg=%d; nuops=%d, i=%d; size=%d, offset=%d\n", + opcode, oparg, nuops, i, + expansion->uops[i].size, + expansion->uops[i].offset); + Py_FatalError("garbled expansion"); + } + + if (uop == _POP_FRAME || uop == _RETURN_GENERATOR || uop == _YIELD_VALUE) { + TRACE_STACK_POP(); + /* Set the operand to the function or code object returned to, + * to assist optimization passes. (See _PUSH_FRAME below.) + */ + if (func != NULL) { + operand = (uintptr_t)func; + } + else if (code != NULL) { + operand = (uintptr_t)code | 1; + } + else { + operand = 0; + } + ADD_TO_TRACE(uop, oparg, operand, target); + DPRINTF(2, + "Returning to %s (%s:%d) at byte offset %d\n", + PyUnicode_AsUTF8(code->co_qualname), + PyUnicode_AsUTF8(code->co_filename), + code->co_firstlineno, + 2 * INSTR_IP(instr, code)); + goto top; + } + + if (uop == _PUSH_FRAME) { + assert(i + 1 == nuops); + int func_version_offset = + offsetof(_PyCallCache, func_version)/sizeof(_Py_CODEUNIT) + // Add one to account for the actual opcode/oparg pair: + + 1; + uint32_t func_version = read_u32(&instr[func_version_offset].cache); + PyCodeObject *new_code = NULL; + PyFunctionObject *new_func = + _PyFunction_LookupByVersion(func_version, (PyObject **) &new_code); + DPRINTF(2, "Function: version=%#x; new_func=%p, new_code=%p\n", + (int)func_version, new_func, new_code); + if (new_code != NULL) { + if (new_code == code) { + // Recursive call, bail (we could be here forever). + DPRINTF(2, "Bailing on recursive call to %s (%s:%d)\n", + PyUnicode_AsUTF8(new_code->co_qualname), + PyUnicode_AsUTF8(new_code->co_filename), + new_code->co_firstlineno); + OPT_STAT_INC(recursive_call); + ADD_TO_TRACE(uop, oparg, 0, target); + ADD_TO_TRACE(_EXIT_TRACE, 0, 0, 0); + goto done; + } + if (new_code->co_version != func_version) { + // func.__code__ was updated. + // Perhaps it may happen again, so don't bother tracing. + // TODO: Reason about this -- is it better to bail or not? + DPRINTF(2, "Bailing because co_version != func_version\n"); + ADD_TO_TRACE(uop, oparg, 0, target); + ADD_TO_TRACE(_EXIT_TRACE, 0, 0, 0); + goto done; + } + if (opcode == FOR_ITER_GEN) { + DPRINTF(2, "Bailing due to dynamic target\n"); + ADD_TO_TRACE(uop, oparg, 0, target); + ADD_TO_TRACE(_DYNAMIC_EXIT, 0, 0, 0); + goto done; + } + // Increment IP to the return address + instr += _PyOpcode_Caches[_PyOpcode_Deopt[opcode]] + 1; + TRACE_STACK_PUSH(); + _Py_BloomFilter_Add(dependencies, new_code); + /* Set the operand to the callee's function or code object, + * to assist optimization passes. + * We prefer setting it to the function (for remove_globals()) + * but if that's not available but the code is available, + * use the code, setting the low bit so the optimizer knows. + */ + if (new_func != NULL) { + operand = (uintptr_t)new_func; + } + else if (new_code != NULL) { + operand = (uintptr_t)new_code | 1; + } + else { + operand = 0; + } + ADD_TO_TRACE(uop, oparg, operand, target); + code = new_code; + func = new_func; + instr = _PyCode_CODE(code); + DPRINTF(2, + "Continuing in %s (%s:%d) at byte offset %d\n", + PyUnicode_AsUTF8(code->co_qualname), + PyUnicode_AsUTF8(code->co_filename), + code->co_firstlineno, + 2 * INSTR_IP(instr, code)); + goto top; + } + DPRINTF(2, "Bail, new_code == NULL\n"); + ADD_TO_TRACE(uop, oparg, 0, target); + ADD_TO_TRACE(_DYNAMIC_EXIT, 0, 0, 0); + goto done; + } + + // All other instructions + ADD_TO_TRACE(uop, oparg, operand, target); + } + break; + } + DPRINTF(2, "Unsupported opcode %s\n", _PyOpcode_OpName[opcode]); + OPT_UNSUPPORTED_OPCODE(opcode); + goto done; // Break out of loop + } // End default + + } // End switch (opcode) + + instr++; + // Add cache size for opcode + instr += _PyOpcode_Caches[_PyOpcode_Deopt[opcode]]; + } // End for (;;) + +done: + while (trace_stack_depth > 0) { + TRACE_STACK_POP(); + } + assert(code == initial_code); + // Skip short traces like _SET_IP, LOAD_FAST, _SET_IP, _EXIT_TRACE + if (progress_needed || trace_length < 5) { + OPT_STAT_INC(trace_too_short); + DPRINTF(2, + "No trace for %s (%s:%d) at byte offset %d (%s)\n", + PyUnicode_AsUTF8(code->co_qualname), + PyUnicode_AsUTF8(code->co_filename), + code->co_firstlineno, + 2 * INSTR_IP(initial_instr, code), + progress_needed ? "no progress" : "too short"); + return 0; + } + if (trace[trace_length-1].opcode != _JUMP_TO_TOP) { + ADD_TO_TRACE(_EXIT_TRACE, 0, 0, target); + } + DPRINTF(1, + "Created a proto-trace for %s (%s:%d) at byte offset %d -- length %d\n", + PyUnicode_AsUTF8(code->co_qualname), + PyUnicode_AsUTF8(code->co_filename), + code->co_firstlineno, + 2 * INSTR_IP(initial_instr, code), + trace_length); + OPT_HIST(trace_length, trace_length_hist); + return trace_length; +} + +#undef RESERVE +#undef RESERVE_RAW +#undef INSTR_IP +#undef ADD_TO_TRACE +#undef DPRINTF + +#define UNSET_BIT(array, bit) (array[(bit)>>5] &= ~(1<<((bit)&31))) +#define SET_BIT(array, bit) (array[(bit)>>5] |= (1<<((bit)&31))) +#define BIT_IS_SET(array, bit) (array[(bit)>>5] & (1<<((bit)&31))) + +/* Count the number of unused uops and exits +*/ +static int +count_exits(_PyUOpInstruction *buffer, int length) +{ + int exit_count = 0; + for (int i = 0; i < length; i++) { + int opcode = buffer[i].opcode; + if (opcode == _EXIT_TRACE || opcode == _DYNAMIC_EXIT) { + exit_count++; + } + } + return exit_count; +} + +static void make_exit(_PyUOpInstruction *inst, int opcode, int target) +{ + inst->opcode = opcode; + inst->oparg = 0; + inst->operand = 0; + inst->format = UOP_FORMAT_TARGET; + inst->target = target; +} + +/* Convert implicit exits, errors and deopts + * into explicit ones. */ +static int +prepare_for_execution(_PyUOpInstruction *buffer, int length) +{ + int32_t current_jump = -1; + int32_t current_jump_target = -1; + int32_t current_error = -1; + int32_t current_error_target = -1; + int32_t current_popped = -1; + int32_t current_exit_op = -1; + /* Leaving in NOPs slows down the interpreter and messes up the stats */ + _PyUOpInstruction *copy_to = &buffer[0]; + for (int i = 0; i < length; i++) { + _PyUOpInstruction *inst = &buffer[i]; + if (inst->opcode != _NOP) { + if (copy_to != inst) { + *copy_to = *inst; + } + copy_to++; + } + } + length = (int)(copy_to - buffer); + int next_spare = length; + for (int i = 0; i < length; i++) { + _PyUOpInstruction *inst = &buffer[i]; + int opcode = inst->opcode; + int32_t target = (int32_t)uop_get_target(inst); + if (_PyUop_Flags[opcode] & (HAS_EXIT_FLAG | HAS_DEOPT_FLAG)) { + uint16_t exit_op = (_PyUop_Flags[opcode] & HAS_EXIT_FLAG) ? + _EXIT_TRACE : _DEOPT; + int32_t jump_target = target; + if (is_for_iter_test[opcode]) { + /* Target the POP_TOP immediately after the END_FOR, + * leaving only the iterator on the stack. */ + int extended_arg = inst->oparg > 255; + int32_t next_inst = target + 1 + INLINE_CACHE_ENTRIES_FOR_ITER + extended_arg; + jump_target = next_inst + inst->oparg + 1; + } + if (jump_target != current_jump_target || current_exit_op != exit_op) { + make_exit(&buffer[next_spare], exit_op, jump_target); + current_exit_op = exit_op; + current_jump_target = jump_target; + current_jump = next_spare; + next_spare++; + } + buffer[i].jump_target = current_jump; + buffer[i].format = UOP_FORMAT_JUMP; + } + if (_PyUop_Flags[opcode] & HAS_ERROR_FLAG) { + int popped = (_PyUop_Flags[opcode] & HAS_ERROR_NO_POP_FLAG) ? + 0 : _PyUop_num_popped(opcode, inst->oparg); + if (target != current_error_target || popped != current_popped) { + current_popped = popped; + current_error = next_spare; + current_error_target = target; + make_exit(&buffer[next_spare], _ERROR_POP_N, 0); + buffer[next_spare].oparg = popped; + buffer[next_spare].operand = target; + next_spare++; + } + buffer[i].error_target = current_error; + if (buffer[i].format == UOP_FORMAT_TARGET) { + buffer[i].format = UOP_FORMAT_JUMP; + buffer[i].jump_target = 0; + } + } + } + return next_spare; +} + +/* Executor side exits */ + +static _PyExecutorObject * +allocate_executor(int exit_count, int length) +{ + int size = exit_count*sizeof(_PyExitData) + length*sizeof(_PyUOpInstruction); + _PyExecutorObject *res = PyObject_GC_NewVar(_PyExecutorObject, &_PyUOpExecutor_Type, size); + if (res == NULL) { + return NULL; + } + res->trace = (_PyUOpInstruction *)(res->exits + exit_count); + res->code_size = length; + res->exit_count = exit_count; + return res; +} + +#ifdef Py_DEBUG + +#define CHECK(PRED) \ +if (!(PRED)) { \ + printf(#PRED " at %d\n", i); \ + assert(0); \ +} + +static int +target_unused(int opcode) +{ + return (_PyUop_Flags[opcode] & (HAS_ERROR_FLAG | HAS_EXIT_FLAG | HAS_DEOPT_FLAG)) == 0; +} + +static void +sanity_check(_PyExecutorObject *executor) +{ + for (uint32_t i = 0; i < executor->exit_count; i++) { + _PyExitData *exit = &executor->exits[i]; + CHECK(exit->target < (1 << 25)); + } + bool ended = false; + uint32_t i = 0; + CHECK(executor->trace[0].opcode == _START_EXECUTOR || executor->trace[0].opcode == _COLD_EXIT); + for (; i < executor->code_size; i++) { + const _PyUOpInstruction *inst = &executor->trace[i]; + uint16_t opcode = inst->opcode; + CHECK(opcode <= MAX_UOP_ID); + CHECK(_PyOpcode_uop_name[opcode] != NULL); + switch(inst->format) { + case UOP_FORMAT_TARGET: + CHECK(target_unused(opcode)); + break; + case UOP_FORMAT_EXIT: + CHECK(opcode == _EXIT_TRACE); + CHECK(inst->exit_index < executor->exit_count); + break; + case UOP_FORMAT_JUMP: + CHECK(inst->jump_target < executor->code_size); + break; + case UOP_FORMAT_UNUSED: + CHECK(0); + break; + } + if (_PyUop_Flags[opcode] & HAS_ERROR_FLAG) { + CHECK(inst->format == UOP_FORMAT_JUMP); + CHECK(inst->error_target < executor->code_size); + } + if (opcode == _JUMP_TO_TOP || opcode == _EXIT_TRACE || opcode == _COLD_EXIT) { + ended = true; + i++; + break; + } + } + CHECK(ended); + for (; i < executor->code_size; i++) { + const _PyUOpInstruction *inst = &executor->trace[i]; + uint16_t opcode = inst->opcode; + CHECK( + opcode == _DEOPT || + opcode == _EXIT_TRACE || + opcode == _ERROR_POP_N); + if (opcode == _EXIT_TRACE) { + CHECK(inst->format == UOP_FORMAT_EXIT); + } + } +} + +#undef CHECK +#endif + +/* Makes an executor from a buffer of uops. + * Account for the buffer having gaps and NOPs by computing a "used" + * bit vector and only copying the used uops. Here "used" means reachable + * and not a NOP. + */ +static _PyExecutorObject * +make_executor_from_uops(_PyUOpInstruction *buffer, int length, const _PyBloomFilter *dependencies) +{ + int exit_count = count_exits(buffer, length); + _PyExecutorObject *executor = allocate_executor(exit_count, length); + if (executor == NULL) { + return NULL; + } + + /* Initialize exits */ + assert(exit_count < COLD_EXIT_COUNT); + for (int i = 0; i < exit_count; i++) { + executor->exits[i].executor = &COLD_EXITS[i]; + executor->exits[i].temperature = initial_temperature_backoff_counter(); + } + int next_exit = exit_count-1; + _PyUOpInstruction *dest = (_PyUOpInstruction *)&executor->trace[length]; + assert(buffer[0].opcode == _START_EXECUTOR); + buffer[0].operand = (uint64_t)executor; + for (int i = length-1; i >= 0; i--) { + int opcode = buffer[i].opcode; + dest--; + *dest = buffer[i]; + assert(opcode != _POP_JUMP_IF_FALSE && opcode != _POP_JUMP_IF_TRUE); + if (opcode == _EXIT_TRACE) { + executor->exits[next_exit].target = buffer[i].target; + dest->exit_index = next_exit; + dest->format = UOP_FORMAT_EXIT; + next_exit--; + } + if (opcode == _DYNAMIC_EXIT) { + executor->exits[next_exit].target = 0; + dest->oparg = next_exit; + next_exit--; + } + } + assert(next_exit == -1); + assert(dest == executor->trace); + assert(dest->opcode == _START_EXECUTOR); + _Py_ExecutorInit(executor, dependencies); +#ifdef Py_DEBUG + char *python_lltrace = Py_GETENV("PYTHON_LLTRACE"); + int lltrace = 0; + if (python_lltrace != NULL && *python_lltrace >= '0') { + lltrace = *python_lltrace - '0'; // TODO: Parse an int and all that + } + if (lltrace >= 2) { + printf("Optimized trace (length %d):\n", length); + for (int i = 0; i < length; i++) { + printf("%4d OPTIMIZED: ", i); + _PyUOpPrint(&executor->trace[i]); + printf("\n"); + } + } + sanity_check(executor); +#endif +#ifdef _Py_JIT + executor->jit_code = NULL; + executor->jit_side_entry = NULL; + executor->jit_size = 0; + if (_PyJIT_Compile(executor, executor->trace, length)) { + Py_DECREF(executor); + return NULL; + } +#endif + _PyObject_GC_TRACK(executor); + return executor; +} + +static int +init_cold_exit_executor(_PyExecutorObject *executor, int oparg) +{ + _Py_SetImmortalUntracked((PyObject *)executor); + Py_SET_TYPE(executor, &_PyUOpExecutor_Type); + executor->trace = (_PyUOpInstruction *)executor->exits; + executor->code_size = 1; + executor->exit_count = 0; + _PyUOpInstruction *inst = (_PyUOpInstruction *)&executor->trace[0]; + inst->opcode = _COLD_EXIT; + inst->oparg = oparg; + executor->vm_data.valid = true; + executor->vm_data.linked = false; + for (int i = 0; i < BLOOM_FILTER_WORDS; i++) { + assert(executor->vm_data.bloom.bits[i] == 0); + } +#ifdef Py_DEBUG + sanity_check(executor); +#endif +#ifdef _Py_JIT + executor->jit_code = NULL; + executor->jit_side_entry = NULL; + executor->jit_size = 0; + if (_PyJIT_Compile(executor, executor->trace, 1)) { + return -1; + } +#endif + return 0; +} + +#ifdef Py_STATS +/* Returns the effective trace length. + * Ignores NOPs and trailing exit and error handling.*/ +int effective_trace_length(_PyUOpInstruction *buffer, int length) +{ + int nop_count = 0; + for (int i = 0; i < length; i++) { + int opcode = buffer[i].opcode; + if (opcode == _NOP) { + nop_count++; + } + if (opcode == _EXIT_TRACE || + opcode == _JUMP_TO_TOP || + opcode == _COLD_EXIT) { + return i+1-nop_count; + } + } + Py_FatalError("No terminating instruction"); + Py_UNREACHABLE(); +} +#endif + +static int +uop_optimize( + _PyOptimizerObject *self, + _PyInterpreterFrame *frame, + _Py_CODEUNIT *instr, + _PyExecutorObject **exec_ptr, + int curr_stackentries) +{ + _PyBloomFilter dependencies; + _Py_BloomFilter_Init(&dependencies); + _PyUOpInstruction buffer[UOP_MAX_TRACE_LENGTH]; + OPT_STAT_INC(attempts); + int length = translate_bytecode_to_trace(frame, instr, buffer, UOP_MAX_TRACE_LENGTH, &dependencies); + if (length <= 0) { + // Error or nothing translated + return length; + } + assert(length < UOP_MAX_TRACE_LENGTH); + OPT_STAT_INC(traces_created); + char *env_var = Py_GETENV("PYTHON_UOPS_OPTIMIZE"); + if (env_var == NULL || *env_var == '\0' || *env_var > '0') { + length = _Py_uop_analyze_and_optimize(frame, buffer, + length, + curr_stackentries, &dependencies); + if (length <= 0) { + return length; + } + } + assert(length < UOP_MAX_TRACE_LENGTH); + assert(length >= 1); + /* Fix up */ + for (int pc = 0; pc < length; pc++) { + int opcode = buffer[pc].opcode; + int oparg = buffer[pc].oparg; + if (_PyUop_Flags[opcode] & HAS_OPARG_AND_1_FLAG) { + buffer[pc].opcode = opcode + 1 + (oparg & 1); + } + else if (oparg < _PyUop_Replication[opcode]) { + buffer[pc].opcode = opcode + oparg + 1; + } + else if (opcode == _JUMP_TO_TOP || opcode == _EXIT_TRACE) { + break; + } + assert(_PyOpcode_uop_name[buffer[pc].opcode]); + assert(strncmp(_PyOpcode_uop_name[buffer[pc].opcode], _PyOpcode_uop_name[opcode], strlen(_PyOpcode_uop_name[opcode])) == 0); + } + OPT_HIST(effective_trace_length(buffer, length), optimized_trace_length_hist); + length = prepare_for_execution(buffer, length); + assert(length <= UOP_MAX_TRACE_LENGTH); + _PyExecutorObject *executor = make_executor_from_uops(buffer, length, &dependencies); + if (executor == NULL) { + return -1; + } + assert(length <= UOP_MAX_TRACE_LENGTH); + *exec_ptr = executor; + return 1; +} + +static void +uop_opt_dealloc(PyObject *self) { + PyObject_Free(self); +} + +PyTypeObject _PyUOpOptimizer_Type = { + PyVarObject_HEAD_INIT(&PyType_Type, 0) + .tp_name = "uop_optimizer", + .tp_basicsize = sizeof(_PyOptimizerObject), + .tp_itemsize = 0, + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_DISALLOW_INSTANTIATION, + .tp_dealloc = uop_opt_dealloc, +}; + +PyObject * +_PyOptimizer_NewUOpOptimizer(void) +{ + _PyOptimizerObject *opt = PyObject_New(_PyOptimizerObject, &_PyUOpOptimizer_Type); + if (opt == NULL) { + return NULL; + } + opt->optimize = uop_optimize; + return (PyObject *)opt; +} + +static void +counter_dealloc(_PyExecutorObject *self) { + /* The optimizer is the operand of the second uop. */ + PyObject *opt = (PyObject *)self->trace[1].operand; + Py_DECREF(opt); + uop_dealloc(self); +} + +PyTypeObject _PyCounterExecutor_Type = { + PyVarObject_HEAD_INIT(&PyType_Type, 0) + .tp_name = "counting_executor", + .tp_basicsize = offsetof(_PyExecutorObject, exits), + .tp_itemsize = 1, + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_DISALLOW_INSTANTIATION | Py_TPFLAGS_HAVE_GC, + .tp_dealloc = (destructor)counter_dealloc, + .tp_methods = executor_methods, + .tp_traverse = executor_traverse, + .tp_clear = (inquiry)executor_clear, +}; + +static int +counter_optimize( + _PyOptimizerObject* self, + _PyInterpreterFrame *frame, + _Py_CODEUNIT *instr, + _PyExecutorObject **exec_ptr, + int Py_UNUSED(curr_stackentries) +) +{ + PyCodeObject *code = _PyFrame_GetCode(frame); + int oparg = instr->op.arg; + while (instr->op.code == EXTENDED_ARG) { + instr++; + oparg = (oparg << 8) | instr->op.arg; + } + if (instr->op.code != JUMP_BACKWARD) { + /* Counter optimizer can only handle backward edges */ + return 0; + } + _Py_CODEUNIT *target = instr + 1 + _PyOpcode_Caches[JUMP_BACKWARD] - oparg; + _PyUOpInstruction buffer[4] = { + { .opcode = _START_EXECUTOR, .jump_target = 3, .format=UOP_FORMAT_JUMP }, + { .opcode = _LOAD_CONST_INLINE_BORROW, .operand = (uintptr_t)self }, + { .opcode = _INTERNAL_INCREMENT_OPT_COUNTER }, + { .opcode = _EXIT_TRACE, .target = (uint32_t)(target - _PyCode_CODE(code)), .format=UOP_FORMAT_TARGET } + }; + _PyExecutorObject *executor = make_executor_from_uops(buffer, 4, &EMPTY_FILTER); + if (executor == NULL) { + return -1; + } + Py_INCREF(self); + Py_SET_TYPE(executor, &_PyCounterExecutor_Type); + *exec_ptr = executor; + return 1; +} + +static PyObject * +counter_get_counter(PyObject *self, PyObject *args) +{ + return PyLong_FromLongLong(((_PyCounterOptimizerObject *)self)->count); +} + +static PyMethodDef counter_optimizer_methods[] = { + { "get_count", counter_get_counter, METH_NOARGS, NULL }, + { NULL, NULL }, +}; + +PyTypeObject _PyCounterOptimizer_Type = { + PyVarObject_HEAD_INIT(&PyType_Type, 0) + .tp_name = "Counter optimizer", + .tp_basicsize = sizeof(_PyCounterOptimizerObject), + .tp_itemsize = 0, + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_DISALLOW_INSTANTIATION, + .tp_methods = counter_optimizer_methods, + .tp_dealloc = (destructor)PyObject_Del, +}; + +PyObject * +_PyOptimizer_NewCounter(void) +{ + _PyCounterOptimizerObject *opt = (_PyCounterOptimizerObject *)_PyObject_New(&_PyCounterOptimizer_Type); + if (opt == NULL) { + return NULL; + } + opt->base.optimize = counter_optimize; + opt->count = 0; + return (PyObject *)opt; +} + + +/***************************************** + * Executor management + ****************************************/ + +/* We use a bloomfilter with k = 6, m = 256 + * The choice of k and the following constants + * could do with a more rigourous analysis, + * but here is a simple analysis: + * + * We want to keep the false positive rate low. + * For n = 5 (a trace depends on 5 objects), + * we expect 30 bits set, giving a false positive + * rate of (30/256)**6 == 2.5e-6 which is plenty + * good enough. + * + * However with n = 10 we expect 60 bits set (worst case), + * giving a false positive of (60/256)**6 == 0.0001 + * + * We choose k = 6, rather than a higher number as + * it means the false positive rate grows slower for high n. + * + * n = 5, k = 6 => fp = 2.6e-6 + * n = 5, k = 8 => fp = 3.5e-7 + * n = 10, k = 6 => fp = 1.6e-4 + * n = 10, k = 8 => fp = 0.9e-4 + * n = 15, k = 6 => fp = 0.18% + * n = 15, k = 8 => fp = 0.23% + * n = 20, k = 6 => fp = 1.1% + * n = 20, k = 8 => fp = 2.3% + * + * The above analysis assumes perfect hash functions, + * but those don't exist, so the real false positive + * rates may be worse. + */ + +#define K 6 + +#define SEED 20221211 + +/* TO DO -- Use more modern hash functions with better distribution of bits */ +static uint64_t +address_to_hash(void *ptr) { + assert(ptr != NULL); + uint64_t uhash = SEED; + uintptr_t addr = (uintptr_t)ptr; + for (int i = 0; i < SIZEOF_VOID_P; i++) { + uhash ^= addr & 255; + uhash *= (uint64_t)PyHASH_MULTIPLIER; + addr >>= 8; + } + return uhash; +} + +void +_Py_BloomFilter_Init(_PyBloomFilter *bloom) +{ + for (int i = 0; i < BLOOM_FILTER_WORDS; i++) { + bloom->bits[i] = 0; + } +} + +/* We want K hash functions that each set 1 bit. + * A hash function that sets 1 bit in M bits can be trivially + * derived from a log2(M) bit hash function. + * So we extract 8 (log2(256)) bits at a time from + * the 64bit hash. */ +void +_Py_BloomFilter_Add(_PyBloomFilter *bloom, void *ptr) +{ + uint64_t hash = address_to_hash(ptr); + assert(K <= 8); + for (int i = 0; i < K; i++) { + uint8_t bits = hash & 255; + bloom->bits[bits >> 5] |= (1 << (bits&31)); + hash >>= 8; + } +} + +static bool +bloom_filter_may_contain(_PyBloomFilter *bloom, _PyBloomFilter *hashes) +{ + for (int i = 0; i < BLOOM_FILTER_WORDS; i++) { + if ((bloom->bits[i] & hashes->bits[i]) != hashes->bits[i]) { + return false; + } + } + return true; +} + +static void +link_executor(_PyExecutorObject *executor) +{ + PyInterpreterState *interp = _PyInterpreterState_GET(); + _PyExecutorLinkListNode *links = &executor->vm_data.links; + _PyExecutorObject *head = interp->executor_list_head; + if (head == NULL) { + interp->executor_list_head = executor; + links->previous = NULL; + links->next = NULL; + } + else { + assert(head->vm_data.links.previous == NULL); + links->previous = NULL; + links->next = head; + head->vm_data.links.previous = executor; + interp->executor_list_head = executor; + } + executor->vm_data.linked = true; + /* executor_list_head must be first in list */ + assert(interp->executor_list_head->vm_data.links.previous == NULL); +} + +static void +unlink_executor(_PyExecutorObject *executor) +{ + if (!executor->vm_data.linked) { + return; + } + _PyExecutorLinkListNode *links = &executor->vm_data.links; + assert(executor->vm_data.valid); + _PyExecutorObject *next = links->next; + _PyExecutorObject *prev = links->previous; + if (next != NULL) { + next->vm_data.links.previous = prev; + } + if (prev != NULL) { + prev->vm_data.links.next = next; + } + else { + // prev == NULL implies that executor is the list head + PyInterpreterState *interp = PyInterpreterState_Get(); + assert(interp->executor_list_head == executor); + interp->executor_list_head = next; + } + executor->vm_data.linked = false; +} + +/* This must be called by optimizers before using the executor */ +void +_Py_ExecutorInit(_PyExecutorObject *executor, const _PyBloomFilter *dependency_set) +{ + executor->vm_data.valid = true; + for (int i = 0; i < BLOOM_FILTER_WORDS; i++) { + executor->vm_data.bloom.bits[i] = dependency_set->bits[i]; + } + link_executor(executor); +} + +/* Detaches the executor from the code object (if any) that + * holds a reference to it */ +void +_Py_ExecutorDetach(_PyExecutorObject *executor) +{ + PyCodeObject *code = executor->vm_data.code; + if (code == NULL) { + return; + } + _Py_CODEUNIT *instruction = &_PyCode_CODE(code)[executor->vm_data.index]; + assert(instruction->op.code == ENTER_EXECUTOR); + int index = instruction->op.arg; + assert(code->co_executors->executors[index] == executor); + instruction->op.code = executor->vm_data.opcode; + instruction->op.arg = executor->vm_data.oparg; + executor->vm_data.code = NULL; + code->co_executors->executors[index] = NULL; + Py_DECREF(executor); +} + +static int +executor_clear(_PyExecutorObject *executor) +{ + if (!executor->vm_data.valid) { + return 0; + } + assert(executor->vm_data.valid == 1); + unlink_executor(executor); + executor->vm_data.valid = 0; + /* It is possible for an executor to form a reference + * cycle with itself, so decref'ing a side exit could + * free the executor unless we hold a strong reference to it + */ + Py_INCREF(executor); + for (uint32_t i = 0; i < executor->exit_count; i++) { + const _PyExecutorObject *cold = &COLD_EXITS[i]; + const _PyExecutorObject *side = executor->exits[i].executor; + executor->exits[i].temperature = initial_unreachable_backoff_counter(); + if (side != cold) { + executor->exits[i].executor = cold; + Py_DECREF(side); + } + } + _Py_ExecutorDetach(executor); + Py_DECREF(executor); + return 0; +} + +void +_Py_Executor_DependsOn(_PyExecutorObject *executor, void *obj) +{ + assert(executor->vm_data.valid); + _Py_BloomFilter_Add(&executor->vm_data.bloom, obj); +} + +/* Invalidate all executors that depend on `obj` + * May cause other executors to be invalidated as well + */ +void +_Py_Executors_InvalidateDependency(PyInterpreterState *interp, void *obj, int is_invalidation) +{ + _PyBloomFilter obj_filter; + _Py_BloomFilter_Init(&obj_filter); + _Py_BloomFilter_Add(&obj_filter, obj); + /* Walk the list of executors */ + /* TO DO -- Use a tree to avoid traversing as many objects */ + bool no_memory = false; + PyObject *invalidate = PyList_New(0); + if (invalidate == NULL) { + PyErr_Clear(); + no_memory = true; + } + /* Clearing an executor can deallocate others, so we need to make a list of + * executors to invalidate first */ + for (_PyExecutorObject *exec = interp->executor_list_head; exec != NULL;) { + assert(exec->vm_data.valid); + _PyExecutorObject *next = exec->vm_data.links.next; + if (bloom_filter_may_contain(&exec->vm_data.bloom, &obj_filter)) { + unlink_executor(exec); + if (no_memory) { + exec->vm_data.valid = 0; + } else { + if (PyList_Append(invalidate, (PyObject *)exec) < 0) { + PyErr_Clear(); + no_memory = true; + exec->vm_data.valid = 0; + } + } + if (is_invalidation) { + OPT_STAT_INC(executors_invalidated); + } + } + exec = next; + } + if (invalidate != NULL) { + for (Py_ssize_t i = 0; i < PyList_GET_SIZE(invalidate); i++) { + _PyExecutorObject *exec = (_PyExecutorObject *)PyList_GET_ITEM(invalidate, i); + executor_clear(exec); + } + Py_DECREF(invalidate); + } + return; +} + +/* Invalidate all executors */ +void +_Py_Executors_InvalidateAll(PyInterpreterState *interp, int is_invalidation) +{ + while (interp->executor_list_head) { + _PyExecutorObject *executor = interp->executor_list_head; + assert(executor->vm_data.valid == 1 && executor->vm_data.linked == 1); + if (executor->vm_data.code) { + // Clear the entire code object so its co_executors array be freed: + _PyCode_Clear_Executors(executor->vm_data.code); + } + else { + executor_clear(executor); + } + if (is_invalidation) { + OPT_STAT_INC(executors_invalidated); + } + } +} + +#endif /* _Py_TIER2 */ diff --git a/contrib/tools/python3/Python/optimizer_analysis.c b/contrib/tools/python3/Python/optimizer_analysis.c new file mode 100644 index 00000000000..4f1f4044c88 --- /dev/null +++ b/contrib/tools/python3/Python/optimizer_analysis.c @@ -0,0 +1,608 @@ +#ifdef _Py_TIER2 + +/* + * This file contains the support code for CPython's uops optimizer. + * It also performs some simple optimizations. + * It performs a traditional data-flow analysis[1] over the trace of uops. + * Using the information gained, it chooses to emit, or skip certain instructions + * if possible. + * + * [1] For information on data-flow analysis, please see + * https://clang.llvm.org/docs/DataFlowAnalysisIntro.html + * + * */ +#include "Python.h" +#include "opcode.h" +#include "pycore_dict.h" +#include "pycore_interp.h" +#include "pycore_opcode_metadata.h" +#include "pycore_opcode_utils.h" +#include "pycore_pystate.h" // _PyInterpreterState_GET() +#include "pycore_uop_metadata.h" +#include "pycore_dict.h" +#include "pycore_long.h" +#include "pycore_optimizer.h" +#include "pycore_object.h" +#include "pycore_dict.h" +#include "pycore_function.h" +#include "pycore_uop_metadata.h" +#include "pycore_uop_ids.h" +#include "pycore_range.h" + +#include +#include +#include +#include + +#ifdef Py_DEBUG + extern const char *_PyUOpName(int index); + extern void _PyUOpPrint(const _PyUOpInstruction *uop); + static const char *const DEBUG_ENV = "PYTHON_OPT_DEBUG"; + static inline int get_lltrace(void) { + char *uop_debug = Py_GETENV(DEBUG_ENV); + int lltrace = 0; + if (uop_debug != NULL && *uop_debug >= '0') { + lltrace = *uop_debug - '0'; // TODO: Parse an int and all that + } + return lltrace; + } + #define DPRINTF(level, ...) \ + if (get_lltrace() >= (level)) { printf(__VA_ARGS__); } +#else + #define DPRINTF(level, ...) +#endif + + + +static inline bool +op_is_end(uint32_t opcode) +{ + return opcode == _EXIT_TRACE || opcode == _JUMP_TO_TOP; +} + +static int +get_mutations(PyObject* dict) { + assert(PyDict_CheckExact(dict)); + PyDictObject *d = (PyDictObject *)dict; + return (d->ma_version_tag >> DICT_MAX_WATCHERS) & ((1 << DICT_WATCHED_MUTATION_BITS)-1); +} + +static void +increment_mutations(PyObject* dict) { + assert(PyDict_CheckExact(dict)); + PyDictObject *d = (PyDictObject *)dict; + d->ma_version_tag += (1 << DICT_MAX_WATCHERS); +} + +/* The first two dict watcher IDs are reserved for CPython, + * so we don't need to check that they haven't been used */ +#define BUILTINS_WATCHER_ID 0 +#define GLOBALS_WATCHER_ID 1 + +static int +globals_watcher_callback(PyDict_WatchEvent event, PyObject* dict, + PyObject* key, PyObject* new_value) +{ + RARE_EVENT_STAT_INC(watched_globals_modification); + assert(get_mutations(dict) < _Py_MAX_ALLOWED_GLOBALS_MODIFICATIONS); + _Py_Executors_InvalidateDependency(_PyInterpreterState_GET(), dict, 1); + increment_mutations(dict); + PyDict_Unwatch(GLOBALS_WATCHER_ID, dict); + return 0; +} + +static PyObject * +convert_global_to_const(_PyUOpInstruction *inst, PyObject *obj) +{ + assert(inst->opcode == _LOAD_GLOBAL_MODULE || inst->opcode == _LOAD_GLOBAL_BUILTINS || inst->opcode == _LOAD_ATTR_MODULE); + assert(PyDict_CheckExact(obj)); + PyDictObject *dict = (PyDictObject *)obj; + assert(dict->ma_keys->dk_kind == DICT_KEYS_UNICODE); + PyDictUnicodeEntry *entries = DK_UNICODE_ENTRIES(dict->ma_keys); + assert(inst->operand <= UINT16_MAX); + if ((int)inst->operand >= dict->ma_keys->dk_nentries) { + return NULL; + } + PyObject *res = entries[inst->operand].me_value; + if (res == NULL) { + return NULL; + } + if (_Py_IsImmortal(res)) { + inst->opcode = (inst->oparg & 1) ? _LOAD_CONST_INLINE_BORROW_WITH_NULL : _LOAD_CONST_INLINE_BORROW; + } + else { + inst->opcode = (inst->oparg & 1) ? _LOAD_CONST_INLINE_WITH_NULL : _LOAD_CONST_INLINE; + } + inst->operand = (uint64_t)res; + return res; +} + +static int +incorrect_keys(_PyUOpInstruction *inst, PyObject *obj) +{ + if (!PyDict_CheckExact(obj)) { + return 1; + } + PyDictObject *dict = (PyDictObject *)obj; + if (dict->ma_keys->dk_version != inst->operand) { + return 1; + } + return 0; +} + +/* Returns 1 if successfully optimized + * 0 if the trace is not suitable for optimization (yet) + * -1 if there was an error. */ +static int +remove_globals(_PyInterpreterFrame *frame, _PyUOpInstruction *buffer, + int buffer_size, _PyBloomFilter *dependencies) +{ + PyInterpreterState *interp = _PyInterpreterState_GET(); + PyObject *builtins = frame->f_builtins; + if (builtins != interp->builtins) { + OPT_STAT_INC(remove_globals_builtins_changed); + return 1; + } + PyObject *globals = frame->f_globals; + PyFunctionObject *function = (PyFunctionObject *)frame->f_funcobj; + assert(PyFunction_Check(function)); + assert(function->func_builtins == builtins); + assert(function->func_globals == globals); + uint32_t function_version = _PyFunction_GetVersionForCurrentState(function); + /* In order to treat globals as constants, we need to + * know that the globals dict is the one we expected, and + * that it hasn't changed + * In order to treat builtins as constants, we need to + * know that the builtins dict is the one we expected, and + * that it hasn't changed and that the global dictionary's + * keys have not changed */ + + /* These values represent stacks of booleans (one bool per bit). + * Pushing a frame shifts left, popping a frame shifts right. */ + uint32_t function_checked = 0; + uint32_t builtins_watched = 0; + uint32_t globals_watched = 0; + uint32_t prechecked_function_version = 0; + if (interp->dict_state.watchers[GLOBALS_WATCHER_ID] == NULL) { + interp->dict_state.watchers[GLOBALS_WATCHER_ID] = globals_watcher_callback; + } + for (int pc = 0; pc < buffer_size; pc++) { + _PyUOpInstruction *inst = &buffer[pc]; + int opcode = inst->opcode; + switch(opcode) { + case _GUARD_BUILTINS_VERSION: + if (incorrect_keys(inst, builtins)) { + OPT_STAT_INC(remove_globals_incorrect_keys); + return 0; + } + if (interp->rare_events.builtin_dict >= _Py_MAX_ALLOWED_BUILTINS_MODIFICATIONS) { + continue; + } + if ((builtins_watched & 1) == 0) { + PyDict_Watch(BUILTINS_WATCHER_ID, builtins); + builtins_watched |= 1; + } + if (function_checked & 1) { + buffer[pc].opcode = NOP; + } + else { + buffer[pc].opcode = _CHECK_FUNCTION; + buffer[pc].operand = function_version; + function_checked |= 1; + } + break; + case _GUARD_GLOBALS_VERSION: + if (incorrect_keys(inst, globals)) { + OPT_STAT_INC(remove_globals_incorrect_keys); + return 0; + } + uint64_t watched_mutations = get_mutations(globals); + if (watched_mutations >= _Py_MAX_ALLOWED_GLOBALS_MODIFICATIONS) { + continue; + } + if ((globals_watched & 1) == 0) { + PyDict_Watch(GLOBALS_WATCHER_ID, globals); + _Py_BloomFilter_Add(dependencies, globals); + globals_watched |= 1; + } + if (function_checked & 1) { + buffer[pc].opcode = NOP; + } + else { + buffer[pc].opcode = _CHECK_FUNCTION; + buffer[pc].operand = function_version; + function_checked |= 1; + } + break; + case _LOAD_GLOBAL_BUILTINS: + if (function_checked & globals_watched & builtins_watched & 1) { + convert_global_to_const(inst, builtins); + } + break; + case _LOAD_GLOBAL_MODULE: + if (function_checked & globals_watched & 1) { + convert_global_to_const(inst, globals); + } + break; + case _PUSH_FRAME: + { + builtins_watched <<= 1; + globals_watched <<= 1; + function_checked <<= 1; + uint64_t operand = buffer[pc].operand; + if (operand == 0 || (operand & 1)) { + // It's either a code object or NULL, so bail + return 1; + } + PyFunctionObject *func = (PyFunctionObject *)operand; + if (func == NULL) { + return 1; + } + assert(PyFunction_Check(func)); + function_version = func->func_version; + if (prechecked_function_version == function_version) { + function_checked |= 1; + } + prechecked_function_version = 0; + globals = func->func_globals; + builtins = func->func_builtins; + if (builtins != interp->builtins) { + OPT_STAT_INC(remove_globals_builtins_changed); + return 1; + } + break; + } + case _POP_FRAME: + { + builtins_watched >>= 1; + globals_watched >>= 1; + function_checked >>= 1; + uint64_t operand = buffer[pc].operand; + if (operand == 0 || (operand & 1)) { + // It's either a code object or NULL, so bail + return 1; + } + PyFunctionObject *func = (PyFunctionObject *)operand; + if (func == NULL) { + return 1; + } + assert(PyFunction_Check(func)); + function_version = func->func_version; + globals = func->func_globals; + builtins = func->func_builtins; + break; + } + case _CHECK_FUNCTION_EXACT_ARGS: + prechecked_function_version = (uint32_t)buffer[pc].operand; + break; + default: + if (op_is_end(opcode)) { + return 1; + } + break; + } + } + return 0; +} + + + +#define STACK_LEVEL() ((int)(stack_pointer - ctx->frame->stack)) + +#define GETLOCAL(idx) ((ctx->frame->locals[idx])) + +#define REPLACE_OP(INST, OP, ARG, OPERAND) \ + INST->opcode = OP; \ + INST->oparg = ARG; \ + INST->operand = OPERAND; + +#define OUT_OF_SPACE_IF_NULL(EXPR) \ + do { \ + if ((EXPR) == NULL) { \ + goto out_of_space; \ + } \ + } while (0); + +#define _LOAD_ATTR_NOT_NULL \ + do { \ + OUT_OF_SPACE_IF_NULL(attr = _Py_uop_sym_new_not_null(ctx)); \ + OUT_OF_SPACE_IF_NULL(null = _Py_uop_sym_new_null(ctx)); \ + } while (0); + + +/* Shortened forms for convenience, used in optimizer_bytecodes.c */ +#define sym_is_not_null _Py_uop_sym_is_not_null +#define sym_is_const _Py_uop_sym_is_const +#define sym_get_const _Py_uop_sym_get_const +#define sym_new_unknown _Py_uop_sym_new_unknown +#define sym_new_not_null _Py_uop_sym_new_not_null +#define sym_new_type _Py_uop_sym_new_type +#define sym_is_null _Py_uop_sym_is_null +#define sym_new_const _Py_uop_sym_new_const +#define sym_new_null _Py_uop_sym_new_null +#define sym_has_type _Py_uop_sym_has_type +#define sym_get_type _Py_uop_sym_get_type +#define sym_matches_type _Py_uop_sym_matches_type +#define sym_set_null _Py_uop_sym_set_null +#define sym_set_non_null _Py_uop_sym_set_non_null +#define sym_set_type _Py_uop_sym_set_type +#define sym_set_const _Py_uop_sym_set_const +#define sym_is_bottom _Py_uop_sym_is_bottom +#define sym_truthiness _Py_uop_sym_truthiness +#define frame_new _Py_uop_frame_new +#define frame_pop _Py_uop_frame_pop + +static int +optimize_to_bool( + _PyUOpInstruction *this_instr, + _Py_UOpsContext *ctx, + _Py_UopsSymbol *value, + _Py_UopsSymbol **result_ptr) +{ + if (sym_matches_type(value, &PyBool_Type)) { + REPLACE_OP(this_instr, _NOP, 0, 0); + *result_ptr = value; + return 1; + } + int truthiness = sym_truthiness(value); + if (truthiness >= 0) { + PyObject *load = truthiness ? Py_True : Py_False; + REPLACE_OP(this_instr, _POP_TOP_LOAD_CONST_INLINE_BORROW, 0, (uintptr_t)load); + *result_ptr = sym_new_const(ctx, load); + return 1; + } + return 0; +} + +static void +eliminate_pop_guard(_PyUOpInstruction *this_instr, bool exit) +{ + REPLACE_OP(this_instr, _POP_TOP, 0, 0); + if (exit) { + REPLACE_OP((this_instr+1), _EXIT_TRACE, 0, 0); + this_instr[1].target = this_instr->target; + } +} + +/* _PUSH_FRAME/_POP_FRAME's operand can be 0, a PyFunctionObject *, or a + * PyCodeObject *. Retrieve the code object if possible. + */ +static PyCodeObject * +get_code(_PyUOpInstruction *op) +{ + assert(op->opcode == _PUSH_FRAME || op->opcode == _POP_FRAME || op->opcode == _RETURN_GENERATOR); + PyCodeObject *co = NULL; + uint64_t operand = op->operand; + if (operand == 0) { + return NULL; + } + if (operand & 1) { + co = (PyCodeObject *)(operand & ~1); + } + else { + PyFunctionObject *func = (PyFunctionObject *)operand; + assert(PyFunction_Check(func)); + co = (PyCodeObject *)func->func_code; + } + assert(PyCode_Check(co)); + return co; +} + +/* 1 for success, 0 for not ready, cannot error at the moment. */ +static int +optimize_uops( + PyCodeObject *co, + _PyUOpInstruction *trace, + int trace_len, + int curr_stacklen, + _PyBloomFilter *dependencies +) +{ + + _Py_UOpsContext context; + _Py_UOpsContext *ctx = &context; + uint32_t opcode = UINT16_MAX; + int curr_space = 0; + int max_space = 0; + _PyUOpInstruction *first_valid_check_stack = NULL; + _PyUOpInstruction *corresponding_check_stack = NULL; + + if (_Py_uop_abstractcontext_init(ctx) < 0) { + goto out_of_space; + } + _Py_UOpsAbstractFrame *frame = _Py_uop_frame_new(ctx, co, curr_stacklen, NULL, 0); + if (frame == NULL) { + return -1; + } + ctx->curr_frame_depth++; + ctx->frame = frame; + + _PyUOpInstruction *this_instr = NULL; + for (int i = 0; i < trace_len; i++) { + this_instr = &trace[i]; + + int oparg = this_instr->oparg; + opcode = this_instr->opcode; + _Py_UopsSymbol **stack_pointer = ctx->frame->stack_pointer; + +#ifdef Py_DEBUG + if (get_lltrace() >= 3) { + printf("%4d abs: ", (int)(this_instr - trace)); + _PyUOpPrint(this_instr); + printf(" "); + } +#endif + + switch (opcode) { + +#include "optimizer_cases.c.h" + + default: + DPRINTF(1, "\nUnknown opcode in abstract interpreter\n"); + Py_UNREACHABLE(); + } + assert(ctx->frame != NULL); + DPRINTF(3, " stack_level %d\n", STACK_LEVEL()); + ctx->frame->stack_pointer = stack_pointer; + assert(STACK_LEVEL() >= 0); + } + Py_UNREACHABLE(); + +out_of_space: + DPRINTF(3, "\n"); + DPRINTF(1, "Out of space in abstract interpreter\n"); + goto done; +error: + DPRINTF(3, "\n"); + DPRINTF(1, "Encountered error in abstract interpreter\n"); + if (opcode <= MAX_UOP_ID) { + OPT_ERROR_IN_OPCODE(opcode); + } + _Py_uop_abstractcontext_fini(ctx); + return -1; + +hit_bottom: + // Attempted to push a "bottom" (contradition) symbol onto the stack. + // This means that the abstract interpreter has hit unreachable code. + // We *could* generate an _EXIT_TRACE or _FATAL_ERROR here, but hitting + // bottom indicates type instability, so we are probably better off + // retrying later. + DPRINTF(3, "\n"); + DPRINTF(1, "Hit bottom in abstract interpreter\n"); + _Py_uop_abstractcontext_fini(ctx); + return 0; +done: + /* Either reached the end or cannot optimize further, but there + * would be no benefit in retrying later */ + _Py_uop_abstractcontext_fini(ctx); + if (first_valid_check_stack != NULL) { + assert(first_valid_check_stack->opcode == _CHECK_STACK_SPACE); + assert(max_space > 0); + assert(max_space <= INT_MAX); + assert(max_space <= INT32_MAX); + first_valid_check_stack->opcode = _CHECK_STACK_SPACE_OPERAND; + first_valid_check_stack->operand = max_space; + } + return trace_len; +} + + +static int +remove_unneeded_uops(_PyUOpInstruction *buffer, int buffer_size) +{ + /* Remove _SET_IP and _CHECK_VALIDITY where possible. + * _SET_IP is needed if the following instruction escapes or + * could error. _CHECK_VALIDITY is needed if the previous + * instruction could have escaped. */ + int last_set_ip = -1; + bool may_have_escaped = true; + for (int pc = 0; pc < buffer_size; pc++) { + int opcode = buffer[pc].opcode; + switch (opcode) { + case _START_EXECUTOR: + may_have_escaped = false; + break; + case _SET_IP: + buffer[pc].opcode = _NOP; + last_set_ip = pc; + break; + case _CHECK_VALIDITY: + if (may_have_escaped) { + may_have_escaped = false; + } + else { + buffer[pc].opcode = _NOP; + } + break; + case _CHECK_VALIDITY_AND_SET_IP: + if (may_have_escaped) { + may_have_escaped = false; + buffer[pc].opcode = _CHECK_VALIDITY; + } + else { + buffer[pc].opcode = _NOP; + } + last_set_ip = pc; + break; + case _POP_TOP: + { + _PyUOpInstruction *last = &buffer[pc-1]; + while (last->opcode == _NOP) { + last--; + } + if (last->opcode == _LOAD_CONST_INLINE || + last->opcode == _LOAD_CONST_INLINE_BORROW || + last->opcode == _LOAD_FAST || + last->opcode == _COPY + ) { + last->opcode = _NOP; + buffer[pc].opcode = _NOP; + } + if (last->opcode == _REPLACE_WITH_TRUE) { + last->opcode = _NOP; + } + break; + } + case _JUMP_TO_TOP: + case _EXIT_TRACE: + return pc + 1; + default: + { + /* _PUSH_FRAME doesn't escape or error, but it + * does need the IP for the return address */ + bool needs_ip = opcode == _PUSH_FRAME; + if (_PyUop_Flags[opcode] & HAS_ESCAPES_FLAG) { + needs_ip = true; + may_have_escaped = true; + } + if (needs_ip && last_set_ip >= 0) { + if (buffer[last_set_ip].opcode == _CHECK_VALIDITY) { + buffer[last_set_ip].opcode = _CHECK_VALIDITY_AND_SET_IP; + } + else { + assert(buffer[last_set_ip].opcode == _NOP); + buffer[last_set_ip].opcode = _SET_IP; + } + last_set_ip = -1; + } + } + } + } + Py_UNREACHABLE(); +} + +// 0 - failure, no error raised, just fall back to Tier 1 +// -1 - failure, and raise error +// > 0 - length of optimized trace +int +_Py_uop_analyze_and_optimize( + _PyInterpreterFrame *frame, + _PyUOpInstruction *buffer, + int length, + int curr_stacklen, + _PyBloomFilter *dependencies +) +{ + OPT_STAT_INC(optimizer_attempts); + + int err = remove_globals(frame, buffer, length, dependencies); + if (err <= 0) { + return err; + } + + length = optimize_uops( + _PyFrame_GetCode(frame), buffer, + length, curr_stacklen, dependencies); + + if (length <= 0) { + return length; + } + + length = remove_unneeded_uops(buffer, length); + assert(length > 0); + + OPT_STAT_INC(optimizer_successes); + return length; +} + +#endif /* _Py_TIER2 */ diff --git a/contrib/tools/python3/Python/optimizer_cases.c.h b/contrib/tools/python3/Python/optimizer_cases.c.h new file mode 100644 index 00000000000..901ebc9ca16 --- /dev/null +++ b/contrib/tools/python3/Python/optimizer_cases.c.h @@ -0,0 +1,2192 @@ +// This file is generated by Tools/cases_generator/optimizer_generator.py +// from: +// Python/optimizer_bytecodes.c +// Do not edit! + + case _NOP: { + break; + } + + case _RESUME_CHECK: { + break; + } + + /* _INSTRUMENTED_RESUME is not a viable micro-op for tier 2 */ + + case _LOAD_FAST_CHECK: { + _Py_UopsSymbol *value; + value = GETLOCAL(oparg); + // We guarantee this will error - just bail and don't optimize it. + if (sym_is_null(value)) { + goto out_of_space; + } + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_FAST: { + _Py_UopsSymbol *value; + value = GETLOCAL(oparg); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_FAST_AND_CLEAR: { + _Py_UopsSymbol *value; + value = GETLOCAL(oparg); + _Py_UopsSymbol *temp; + OUT_OF_SPACE_IF_NULL(temp = sym_new_null(ctx)); + GETLOCAL(oparg) = temp; + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_CONST: { + _Py_UopsSymbol *value; + PyObject *val = PyTuple_GET_ITEM(co->co_consts, this_instr->oparg); + int opcode = _Py_IsImmortal(val) ? _LOAD_CONST_INLINE_BORROW : _LOAD_CONST_INLINE; + REPLACE_OP(this_instr, opcode, 0, (uintptr_t)val); + OUT_OF_SPACE_IF_NULL(value = sym_new_const(ctx, val)); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _STORE_FAST: { + _Py_UopsSymbol *value; + value = stack_pointer[-1]; + GETLOCAL(oparg) = value; + stack_pointer += -1; + break; + } + + case _POP_TOP: { + stack_pointer += -1; + break; + } + + case _PUSH_NULL: { + _Py_UopsSymbol *res; + res = sym_new_null(ctx); + if (res == NULL) { + goto out_of_space; + }; + stack_pointer[0] = res; + stack_pointer += 1; + break; + } + + case _END_SEND: { + _Py_UopsSymbol *value; + value = sym_new_not_null(ctx); + if (value == NULL) goto out_of_space; + stack_pointer[-2] = value; + stack_pointer += -1; + break; + } + + case _UNARY_NEGATIVE: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-1] = res; + break; + } + + case _UNARY_NOT: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-1] = res; + break; + } + + case _TO_BOOL: { + _Py_UopsSymbol *value; + _Py_UopsSymbol *res; + value = stack_pointer[-1]; + if (optimize_to_bool(this_instr, ctx, value, &res)) { + OUT_OF_SPACE_IF_NULL(res); + } + else { + res = sym_new_type(ctx, &PyBool_Type); + OUT_OF_SPACE_IF_NULL(res); + } + stack_pointer[-1] = res; + break; + } + + case _TO_BOOL_BOOL: { + _Py_UopsSymbol *value; + _Py_UopsSymbol *res; + value = stack_pointer[-1]; + if (optimize_to_bool(this_instr, ctx, value, &res)) { + OUT_OF_SPACE_IF_NULL(res); + } + else { + if(!sym_set_type(value, &PyBool_Type)) { + goto hit_bottom; + } + res = value; + } + stack_pointer[-1] = res; + break; + } + + case _TO_BOOL_INT: { + _Py_UopsSymbol *value; + _Py_UopsSymbol *res; + value = stack_pointer[-1]; + if (optimize_to_bool(this_instr, ctx, value, &res)) { + OUT_OF_SPACE_IF_NULL(res); + } + else { + if(!sym_set_type(value, &PyLong_Type)) { + goto hit_bottom; + } + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyBool_Type)); + } + stack_pointer[-1] = res; + break; + } + + case _TO_BOOL_LIST: { + _Py_UopsSymbol *value; + _Py_UopsSymbol *res; + value = stack_pointer[-1]; + if (optimize_to_bool(this_instr, ctx, value, &res)) { + OUT_OF_SPACE_IF_NULL(res); + } + else { + if(!sym_set_type(value, &PyList_Type)) { + goto hit_bottom; + } + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyBool_Type)); + } + stack_pointer[-1] = res; + break; + } + + case _TO_BOOL_NONE: { + _Py_UopsSymbol *value; + _Py_UopsSymbol *res; + value = stack_pointer[-1]; + if (optimize_to_bool(this_instr, ctx, value, &res)) { + OUT_OF_SPACE_IF_NULL(res); + } + else { + if (!sym_set_const(value, Py_None)) { + goto hit_bottom; + } + OUT_OF_SPACE_IF_NULL(res = sym_new_const(ctx, Py_False)); + } + stack_pointer[-1] = res; + break; + } + + case _TO_BOOL_STR: { + _Py_UopsSymbol *value; + _Py_UopsSymbol *res; + value = stack_pointer[-1]; + if (optimize_to_bool(this_instr, ctx, value, &res)) { + OUT_OF_SPACE_IF_NULL(res); + } + else { + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyBool_Type)); + if(!sym_set_type(value, &PyUnicode_Type)) { + goto hit_bottom; + } + } + stack_pointer[-1] = res; + break; + } + + case _REPLACE_WITH_TRUE: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-1] = res; + break; + } + + case _UNARY_INVERT: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-1] = res; + break; + } + + case _GUARD_BOTH_INT: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (sym_matches_type(left, &PyLong_Type)) { + if (sym_matches_type(right, &PyLong_Type)) { + REPLACE_OP(this_instr, _NOP, 0, 0); + } + else { + REPLACE_OP(this_instr, _GUARD_TOS_INT, 0, 0); + } + } + else { + if (sym_matches_type(right, &PyLong_Type)) { + REPLACE_OP(this_instr, _GUARD_NOS_INT, 0, 0); + } + } + if (!sym_set_type(left, &PyLong_Type)) { + goto hit_bottom; + } + if (!sym_set_type(right, &PyLong_Type)) { + goto hit_bottom; + } + break; + } + + case _GUARD_NOS_INT: { + break; + } + + case _GUARD_TOS_INT: { + break; + } + + case _BINARY_OP_MULTIPLY_INT: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (sym_is_const(left) && sym_is_const(right) && + sym_matches_type(left, &PyLong_Type) && sym_matches_type(right, &PyLong_Type)) + { + assert(PyLong_CheckExact(sym_get_const(left))); + assert(PyLong_CheckExact(sym_get_const(right))); + PyObject *temp = _PyLong_Multiply((PyLongObject *)sym_get_const(left), + (PyLongObject *)sym_get_const(right)); + if (temp == NULL) { + goto error; + } + res = sym_new_const(ctx, temp); + Py_DECREF(temp); + OUT_OF_SPACE_IF_NULL(res); + // TODO gh-115506: + // replace opcode with constant propagated one and add tests! + } + else { + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyLong_Type)); + } + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_OP_ADD_INT: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (sym_is_const(left) && sym_is_const(right) && + sym_matches_type(left, &PyLong_Type) && sym_matches_type(right, &PyLong_Type)) + { + assert(PyLong_CheckExact(sym_get_const(left))); + assert(PyLong_CheckExact(sym_get_const(right))); + PyObject *temp = _PyLong_Add((PyLongObject *)sym_get_const(left), + (PyLongObject *)sym_get_const(right)); + if (temp == NULL) { + goto error; + } + res = sym_new_const(ctx, temp); + Py_DECREF(temp); + OUT_OF_SPACE_IF_NULL(res); + // TODO gh-115506: + // replace opcode with constant propagated one and add tests! + } + else { + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyLong_Type)); + } + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_OP_SUBTRACT_INT: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (sym_is_const(left) && sym_is_const(right) && + sym_matches_type(left, &PyLong_Type) && sym_matches_type(right, &PyLong_Type)) + { + assert(PyLong_CheckExact(sym_get_const(left))); + assert(PyLong_CheckExact(sym_get_const(right))); + PyObject *temp = _PyLong_Subtract((PyLongObject *)sym_get_const(left), + (PyLongObject *)sym_get_const(right)); + if (temp == NULL) { + goto error; + } + res = sym_new_const(ctx, temp); + Py_DECREF(temp); + OUT_OF_SPACE_IF_NULL(res); + // TODO gh-115506: + // replace opcode with constant propagated one and add tests! + } + else { + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyLong_Type)); + } + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _GUARD_BOTH_FLOAT: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (sym_matches_type(left, &PyFloat_Type)) { + if (sym_matches_type(right, &PyFloat_Type)) { + REPLACE_OP(this_instr, _NOP, 0, 0); + } + else { + REPLACE_OP(this_instr, _GUARD_TOS_FLOAT, 0, 0); + } + } + else { + if (sym_matches_type(right, &PyFloat_Type)) { + REPLACE_OP(this_instr, _GUARD_NOS_FLOAT, 0, 0); + } + } + if (!sym_set_type(left, &PyFloat_Type)) { + goto hit_bottom; + } + if (!sym_set_type(right, &PyFloat_Type)) { + goto hit_bottom; + } + break; + } + + case _GUARD_NOS_FLOAT: { + break; + } + + case _GUARD_TOS_FLOAT: { + break; + } + + case _BINARY_OP_MULTIPLY_FLOAT: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (sym_is_const(left) && sym_is_const(right) && + sym_matches_type(left, &PyFloat_Type) && sym_matches_type(right, &PyFloat_Type)) + { + assert(PyFloat_CheckExact(sym_get_const(left))); + assert(PyFloat_CheckExact(sym_get_const(right))); + PyObject *temp = PyFloat_FromDouble( + PyFloat_AS_DOUBLE(sym_get_const(left)) * + PyFloat_AS_DOUBLE(sym_get_const(right))); + if (temp == NULL) { + goto error; + } + res = sym_new_const(ctx, temp); + Py_DECREF(temp); + OUT_OF_SPACE_IF_NULL(res); + // TODO gh-115506: + // replace opcode with constant propagated one and update tests! + } + else { + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyFloat_Type)); + } + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_OP_ADD_FLOAT: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (sym_is_const(left) && sym_is_const(right) && + sym_matches_type(left, &PyFloat_Type) && sym_matches_type(right, &PyFloat_Type)) + { + assert(PyFloat_CheckExact(sym_get_const(left))); + assert(PyFloat_CheckExact(sym_get_const(right))); + PyObject *temp = PyFloat_FromDouble( + PyFloat_AS_DOUBLE(sym_get_const(left)) + + PyFloat_AS_DOUBLE(sym_get_const(right))); + if (temp == NULL) { + goto error; + } + res = sym_new_const(ctx, temp); + Py_DECREF(temp); + OUT_OF_SPACE_IF_NULL(res); + // TODO gh-115506: + // replace opcode with constant propagated one and update tests! + } + else { + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyFloat_Type)); + } + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_OP_SUBTRACT_FLOAT: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (sym_is_const(left) && sym_is_const(right) && + sym_matches_type(left, &PyFloat_Type) && sym_matches_type(right, &PyFloat_Type)) + { + assert(PyFloat_CheckExact(sym_get_const(left))); + assert(PyFloat_CheckExact(sym_get_const(right))); + PyObject *temp = PyFloat_FromDouble( + PyFloat_AS_DOUBLE(sym_get_const(left)) - + PyFloat_AS_DOUBLE(sym_get_const(right))); + if (temp == NULL) { + goto error; + } + res = sym_new_const(ctx, temp); + Py_DECREF(temp); + OUT_OF_SPACE_IF_NULL(res); + // TODO gh-115506: + // replace opcode with constant propagated one and update tests! + } + else { + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyFloat_Type)); + } + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _GUARD_BOTH_UNICODE: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (sym_matches_type(left, &PyUnicode_Type) && + sym_matches_type(right, &PyUnicode_Type)) { + REPLACE_OP(this_instr, _NOP, 0 ,0); + } + if (!sym_set_type(left, &PyUnicode_Type)) { + goto hit_bottom; + } + if (!sym_set_type(right, &PyUnicode_Type)) { + goto hit_bottom; + } + break; + } + + case _BINARY_OP_ADD_UNICODE: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + if (sym_is_const(left) && sym_is_const(right) && + sym_matches_type(left, &PyUnicode_Type) && sym_matches_type(right, &PyUnicode_Type)) { + PyObject *temp = PyUnicode_Concat(sym_get_const(left), sym_get_const(right)); + if (temp == NULL) { + goto error; + } + res = sym_new_const(ctx, temp); + Py_DECREF(temp); + OUT_OF_SPACE_IF_NULL(res); + } + else { + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyUnicode_Type)); + } + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_SUBSCR: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_SLICE: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-3] = res; + stack_pointer += -2; + break; + } + + case _STORE_SLICE: { + stack_pointer += -4; + break; + } + + case _BINARY_SUBSCR_LIST_INT: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_SUBSCR_STR_INT: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_SUBSCR_TUPLE_INT: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _BINARY_SUBSCR_DICT: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + /* _BINARY_SUBSCR_GETITEM is not a viable micro-op for tier 2 */ + + case _LIST_APPEND: { + stack_pointer += -1; + break; + } + + case _SET_ADD: { + stack_pointer += -1; + break; + } + + case _STORE_SUBSCR: { + stack_pointer += -3; + break; + } + + case _STORE_SUBSCR_LIST_INT: { + stack_pointer += -3; + break; + } + + case _STORE_SUBSCR_DICT: { + stack_pointer += -3; + break; + } + + case _DELETE_SUBSCR: { + stack_pointer += -2; + break; + } + + case _CALL_INTRINSIC_1: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-1] = res; + break; + } + + case _CALL_INTRINSIC_2: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _POP_FRAME: { + _Py_UopsSymbol *retval; + _Py_UopsSymbol *res; + retval = stack_pointer[-1]; + stack_pointer += -1; + ctx->frame->stack_pointer = stack_pointer; + frame_pop(ctx); + stack_pointer = ctx->frame->stack_pointer; + res = retval; + /* Stack space handling */ + assert(corresponding_check_stack == NULL); + assert(co != NULL); + int framesize = co->co_framesize; + assert(framesize > 0); + assert(framesize <= curr_space); + curr_space -= framesize; + co = get_code(this_instr); + if (co == NULL) { + // might be impossible, but bailing is still safe + goto done; + } + stack_pointer[0] = res; + stack_pointer += 1; + break; + } + + /* _INSTRUMENTED_RETURN_VALUE is not a viable micro-op for tier 2 */ + + /* _INSTRUMENTED_RETURN_CONST is not a viable micro-op for tier 2 */ + + case _GET_AITER: { + _Py_UopsSymbol *iter; + iter = sym_new_not_null(ctx); + if (iter == NULL) goto out_of_space; + stack_pointer[-1] = iter; + break; + } + + case _GET_ANEXT: { + _Py_UopsSymbol *awaitable; + awaitable = sym_new_not_null(ctx); + if (awaitable == NULL) goto out_of_space; + stack_pointer[0] = awaitable; + stack_pointer += 1; + break; + } + + case _GET_AWAITABLE: { + _Py_UopsSymbol *iter; + iter = sym_new_not_null(ctx); + if (iter == NULL) goto out_of_space; + stack_pointer[-1] = iter; + break; + } + + /* _SEND is not a viable micro-op for tier 2 */ + + /* _SEND_GEN is not a viable micro-op for tier 2 */ + + /* _INSTRUMENTED_YIELD_VALUE is not a viable micro-op for tier 2 */ + + case _YIELD_VALUE: { + _Py_UopsSymbol *res; + OUT_OF_SPACE_IF_NULL(res = sym_new_unknown(ctx)); + stack_pointer[-1] = res; + break; + } + + case _POP_EXCEPT: { + stack_pointer += -1; + break; + } + + case _LOAD_ASSERTION_ERROR: { + _Py_UopsSymbol *value; + value = sym_new_not_null(ctx); + if (value == NULL) goto out_of_space; + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_BUILD_CLASS: { + _Py_UopsSymbol *bc; + bc = sym_new_not_null(ctx); + if (bc == NULL) goto out_of_space; + stack_pointer[0] = bc; + stack_pointer += 1; + break; + } + + case _STORE_NAME: { + stack_pointer += -1; + break; + } + + case _DELETE_NAME: { + break; + } + + case _UNPACK_SEQUENCE: { + _Py_UopsSymbol *seq; + _Py_UopsSymbol **values; + seq = stack_pointer[-1]; + values = &stack_pointer[-1]; + /* This has to be done manually */ + (void)seq; + for (int i = 0; i < oparg; i++) { + OUT_OF_SPACE_IF_NULL(values[i] = sym_new_unknown(ctx)); + } + stack_pointer += -1 + oparg; + break; + } + + case _UNPACK_SEQUENCE_TWO_TUPLE: { + _Py_UopsSymbol *val1; + _Py_UopsSymbol *val0; + val1 = sym_new_not_null(ctx); + if (val1 == NULL) goto out_of_space; + val0 = sym_new_not_null(ctx); + if (val0 == NULL) goto out_of_space; + stack_pointer[-1] = val1; + stack_pointer[0] = val0; + stack_pointer += 1; + break; + } + + case _UNPACK_SEQUENCE_TUPLE: { + _Py_UopsSymbol **values; + values = &stack_pointer[-1]; + for (int _i = oparg; --_i >= 0;) { + values[_i] = sym_new_not_null(ctx); + if (values[_i] == NULL) goto out_of_space; + } + stack_pointer += -1 + oparg; + break; + } + + case _UNPACK_SEQUENCE_LIST: { + _Py_UopsSymbol **values; + values = &stack_pointer[-1]; + for (int _i = oparg; --_i >= 0;) { + values[_i] = sym_new_not_null(ctx); + if (values[_i] == NULL) goto out_of_space; + } + stack_pointer += -1 + oparg; + break; + } + + case _UNPACK_EX: { + _Py_UopsSymbol *seq; + _Py_UopsSymbol **values; + seq = stack_pointer[-1]; + values = &stack_pointer[-1]; + /* This has to be done manually */ + (void)seq; + int totalargs = (oparg & 0xFF) + (oparg >> 8) + 1; + for (int i = 0; i < totalargs; i++) { + OUT_OF_SPACE_IF_NULL(values[i] = sym_new_unknown(ctx)); + } + stack_pointer += (oparg >> 8) + (oparg & 0xFF); + break; + } + + case _STORE_ATTR: { + stack_pointer += -2; + break; + } + + case _DELETE_ATTR: { + stack_pointer += -1; + break; + } + + case _STORE_GLOBAL: { + stack_pointer += -1; + break; + } + + case _DELETE_GLOBAL: { + break; + } + + case _LOAD_LOCALS: { + _Py_UopsSymbol *locals; + locals = sym_new_not_null(ctx); + if (locals == NULL) goto out_of_space; + stack_pointer[0] = locals; + stack_pointer += 1; + break; + } + + /* _LOAD_FROM_DICT_OR_GLOBALS is not a viable micro-op for tier 2 */ + + /* _LOAD_NAME is not a viable micro-op for tier 2 */ + + case _LOAD_GLOBAL: { + _Py_UopsSymbol *res; + _Py_UopsSymbol *null = NULL; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + null = sym_new_null(ctx); + if (null == NULL) goto out_of_space; + stack_pointer[0] = res; + if (oparg & 1) stack_pointer[1] = null; + stack_pointer += 1 + (oparg & 1); + break; + } + + case _GUARD_GLOBALS_VERSION: { + break; + } + + case _GUARD_BUILTINS_VERSION: { + break; + } + + case _LOAD_GLOBAL_MODULE: { + _Py_UopsSymbol *res; + _Py_UopsSymbol *null = NULL; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + null = sym_new_null(ctx); + if (null == NULL) goto out_of_space; + stack_pointer[0] = res; + if (oparg & 1) stack_pointer[1] = null; + stack_pointer += 1 + (oparg & 1); + break; + } + + case _LOAD_GLOBAL_BUILTINS: { + _Py_UopsSymbol *res; + _Py_UopsSymbol *null = NULL; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + null = sym_new_null(ctx); + if (null == NULL) goto out_of_space; + stack_pointer[0] = res; + if (oparg & 1) stack_pointer[1] = null; + stack_pointer += 1 + (oparg & 1); + break; + } + + case _DELETE_FAST: { + break; + } + + case _MAKE_CELL: { + break; + } + + case _DELETE_DEREF: { + break; + } + + case _LOAD_FROM_DICT_OR_DEREF: { + _Py_UopsSymbol *value; + value = sym_new_not_null(ctx); + if (value == NULL) goto out_of_space; + stack_pointer[-1] = value; + break; + } + + case _LOAD_DEREF: { + _Py_UopsSymbol *value; + value = sym_new_not_null(ctx); + if (value == NULL) goto out_of_space; + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _STORE_DEREF: { + stack_pointer += -1; + break; + } + + case _COPY_FREE_VARS: { + break; + } + + case _BUILD_STRING: { + _Py_UopsSymbol *str; + str = sym_new_not_null(ctx); + if (str == NULL) goto out_of_space; + stack_pointer[-oparg] = str; + stack_pointer += 1 - oparg; + break; + } + + case _BUILD_TUPLE: { + _Py_UopsSymbol *tup; + tup = sym_new_not_null(ctx); + if (tup == NULL) goto out_of_space; + stack_pointer[-oparg] = tup; + stack_pointer += 1 - oparg; + break; + } + + case _BUILD_LIST: { + _Py_UopsSymbol *list; + list = sym_new_not_null(ctx); + if (list == NULL) goto out_of_space; + stack_pointer[-oparg] = list; + stack_pointer += 1 - oparg; + break; + } + + case _LIST_EXTEND: { + stack_pointer += -1; + break; + } + + case _SET_UPDATE: { + stack_pointer += -1; + break; + } + + /* _BUILD_SET is not a viable micro-op for tier 2 */ + + case _BUILD_MAP: { + _Py_UopsSymbol *map; + map = sym_new_not_null(ctx); + if (map == NULL) goto out_of_space; + stack_pointer[-oparg*2] = map; + stack_pointer += 1 - oparg*2; + break; + } + + case _SETUP_ANNOTATIONS: { + break; + } + + case _BUILD_CONST_KEY_MAP: { + _Py_UopsSymbol *map; + map = sym_new_not_null(ctx); + if (map == NULL) goto out_of_space; + stack_pointer[-1 - oparg] = map; + stack_pointer += -oparg; + break; + } + + case _DICT_UPDATE: { + stack_pointer += -1; + break; + } + + case _DICT_MERGE: { + stack_pointer += -1; + break; + } + + case _MAP_ADD: { + stack_pointer += -2; + break; + } + + /* _INSTRUMENTED_LOAD_SUPER_ATTR is not a viable micro-op for tier 2 */ + + case _LOAD_SUPER_ATTR_ATTR: { + _Py_UopsSymbol *attr; + attr = sym_new_not_null(ctx); + if (attr == NULL) goto out_of_space; + stack_pointer[-3] = attr; + stack_pointer += -2; + break; + } + + case _LOAD_SUPER_ATTR_METHOD: { + _Py_UopsSymbol *attr; + _Py_UopsSymbol *self_or_null; + attr = sym_new_not_null(ctx); + if (attr == NULL) goto out_of_space; + self_or_null = sym_new_not_null(ctx); + if (self_or_null == NULL) goto out_of_space; + stack_pointer[-3] = attr; + stack_pointer[-2] = self_or_null; + stack_pointer += -1; + break; + } + + case _LOAD_ATTR: { + _Py_UopsSymbol *owner; + _Py_UopsSymbol *attr; + _Py_UopsSymbol *self_or_null = NULL; + owner = stack_pointer[-1]; + (void)owner; + OUT_OF_SPACE_IF_NULL(attr = sym_new_not_null(ctx)); + if (oparg & 1) { + OUT_OF_SPACE_IF_NULL(self_or_null = sym_new_unknown(ctx)); + } + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = self_or_null; + stack_pointer += (oparg & 1); + break; + } + + case _GUARD_TYPE_VERSION: { + break; + } + + case _CHECK_MANAGED_OBJECT_HAS_VALUES: { + break; + } + + case _LOAD_ATTR_INSTANCE_VALUE: { + _Py_UopsSymbol *owner; + _Py_UopsSymbol *attr; + _Py_UopsSymbol *null = NULL; + owner = stack_pointer[-1]; + uint16_t index = (uint16_t)this_instr->operand; + _LOAD_ATTR_NOT_NULL + (void)index; + (void)owner; + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = null; + stack_pointer += (oparg & 1); + break; + } + + case _CHECK_ATTR_MODULE: { + _Py_UopsSymbol *owner; + owner = stack_pointer[-1]; + uint32_t dict_version = (uint32_t)this_instr->operand; + (void)dict_version; + if (sym_is_const(owner)) { + PyObject *cnst = sym_get_const(owner); + if (PyModule_CheckExact(cnst)) { + PyModuleObject *mod = (PyModuleObject *)cnst; + PyObject *dict = mod->md_dict; + uint64_t watched_mutations = get_mutations(dict); + if (watched_mutations < _Py_MAX_ALLOWED_GLOBALS_MODIFICATIONS) { + PyDict_Watch(GLOBALS_WATCHER_ID, dict); + _Py_BloomFilter_Add(dependencies, dict); + this_instr->opcode = _NOP; + } + } + } + break; + } + + case _LOAD_ATTR_MODULE: { + _Py_UopsSymbol *owner; + _Py_UopsSymbol *attr; + _Py_UopsSymbol *null = NULL; + owner = stack_pointer[-1]; + uint16_t index = (uint16_t)this_instr->operand; + (void)index; + OUT_OF_SPACE_IF_NULL(null = sym_new_null(ctx)); + attr = NULL; + if (this_instr[-1].opcode == _NOP) { + // Preceding _CHECK_ATTR_MODULE was removed: mod is const and dict is watched. + assert(sym_is_const(owner)); + PyModuleObject *mod = (PyModuleObject *)sym_get_const(owner); + assert(PyModule_CheckExact(mod)); + PyObject *dict = mod->md_dict; + PyObject *res = convert_global_to_const(this_instr, dict); + if (res != NULL) { + this_instr[-1].opcode = _POP_TOP; + OUT_OF_SPACE_IF_NULL(attr = sym_new_const(ctx, res)); + } + } + if (attr == NULL) { + /* No conversion made. We don't know what `attr` is. */ + OUT_OF_SPACE_IF_NULL(attr = sym_new_not_null(ctx)); + } + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = null; + stack_pointer += (oparg & 1); + break; + } + + case _CHECK_ATTR_WITH_HINT: { + break; + } + + case _LOAD_ATTR_WITH_HINT: { + _Py_UopsSymbol *owner; + _Py_UopsSymbol *attr; + _Py_UopsSymbol *null = NULL; + owner = stack_pointer[-1]; + uint16_t hint = (uint16_t)this_instr->operand; + _LOAD_ATTR_NOT_NULL + (void)hint; + (void)owner; + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = null; + stack_pointer += (oparg & 1); + break; + } + + case _LOAD_ATTR_SLOT: { + _Py_UopsSymbol *owner; + _Py_UopsSymbol *attr; + _Py_UopsSymbol *null = NULL; + owner = stack_pointer[-1]; + uint16_t index = (uint16_t)this_instr->operand; + _LOAD_ATTR_NOT_NULL + (void)index; + (void)owner; + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = null; + stack_pointer += (oparg & 1); + break; + } + + case _CHECK_ATTR_CLASS: { + break; + } + + case _LOAD_ATTR_CLASS: { + _Py_UopsSymbol *owner; + _Py_UopsSymbol *attr; + _Py_UopsSymbol *null = NULL; + owner = stack_pointer[-1]; + PyObject *descr = (PyObject *)this_instr->operand; + _LOAD_ATTR_NOT_NULL + (void)descr; + (void)owner; + stack_pointer[-1] = attr; + if (oparg & 1) stack_pointer[0] = null; + stack_pointer += (oparg & 1); + break; + } + + /* _LOAD_ATTR_PROPERTY is not a viable micro-op for tier 2 */ + + /* _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN is not a viable micro-op for tier 2 */ + + case _GUARD_DORV_NO_DICT: { + break; + } + + case _STORE_ATTR_INSTANCE_VALUE: { + stack_pointer += -2; + break; + } + + /* _STORE_ATTR_WITH_HINT is not a viable micro-op for tier 2 */ + + case _STORE_ATTR_SLOT: { + stack_pointer += -2; + break; + } + + case _COMPARE_OP: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + (void)left; + (void)right; + if (oparg & 16) { + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyBool_Type)); + } + else { + OUT_OF_SPACE_IF_NULL(res = _Py_uop_sym_new_not_null(ctx)); + } + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _COMPARE_OP_FLOAT: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + (void)left; + (void)right; + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyBool_Type)); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _COMPARE_OP_INT: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + (void)left; + (void)right; + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyBool_Type)); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _COMPARE_OP_STR: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + (void)left; + (void)right; + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyBool_Type)); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _IS_OP: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + (void)left; + (void)right; + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyBool_Type)); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _CONTAINS_OP: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + (void)left; + (void)right; + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyBool_Type)); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _CONTAINS_OP_SET: { + _Py_UopsSymbol *b; + b = sym_new_not_null(ctx); + if (b == NULL) goto out_of_space; + stack_pointer[-2] = b; + stack_pointer += -1; + break; + } + + case _CONTAINS_OP_DICT: { + _Py_UopsSymbol *b; + b = sym_new_not_null(ctx); + if (b == NULL) goto out_of_space; + stack_pointer[-2] = b; + stack_pointer += -1; + break; + } + + case _CHECK_EG_MATCH: { + _Py_UopsSymbol *rest; + _Py_UopsSymbol *match; + rest = sym_new_not_null(ctx); + if (rest == NULL) goto out_of_space; + match = sym_new_not_null(ctx); + if (match == NULL) goto out_of_space; + stack_pointer[-2] = rest; + stack_pointer[-1] = match; + break; + } + + case _CHECK_EXC_MATCH: { + _Py_UopsSymbol *b; + b = sym_new_not_null(ctx); + if (b == NULL) goto out_of_space; + stack_pointer[-1] = b; + break; + } + + /* _POP_JUMP_IF_FALSE is not a viable micro-op for tier 2 */ + + /* _POP_JUMP_IF_TRUE is not a viable micro-op for tier 2 */ + + case _IS_NONE: { + _Py_UopsSymbol *b; + b = sym_new_not_null(ctx); + if (b == NULL) goto out_of_space; + stack_pointer[-1] = b; + break; + } + + case _GET_LEN: { + _Py_UopsSymbol *len_o; + len_o = sym_new_not_null(ctx); + if (len_o == NULL) goto out_of_space; + stack_pointer[0] = len_o; + stack_pointer += 1; + break; + } + + case _MATCH_CLASS: { + _Py_UopsSymbol *attrs; + attrs = sym_new_not_null(ctx); + if (attrs == NULL) goto out_of_space; + stack_pointer[-3] = attrs; + stack_pointer += -2; + break; + } + + case _MATCH_MAPPING: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[0] = res; + stack_pointer += 1; + break; + } + + case _MATCH_SEQUENCE: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[0] = res; + stack_pointer += 1; + break; + } + + case _MATCH_KEYS: { + _Py_UopsSymbol *values_or_none; + values_or_none = sym_new_not_null(ctx); + if (values_or_none == NULL) goto out_of_space; + stack_pointer[0] = values_or_none; + stack_pointer += 1; + break; + } + + case _GET_ITER: { + _Py_UopsSymbol *iter; + iter = sym_new_not_null(ctx); + if (iter == NULL) goto out_of_space; + stack_pointer[-1] = iter; + break; + } + + case _GET_YIELD_FROM_ITER: { + _Py_UopsSymbol *iter; + iter = sym_new_not_null(ctx); + if (iter == NULL) goto out_of_space; + stack_pointer[-1] = iter; + break; + } + + /* _FOR_ITER is not a viable micro-op for tier 2 */ + + case _FOR_ITER_TIER_TWO: { + _Py_UopsSymbol *next; + next = sym_new_not_null(ctx); + if (next == NULL) goto out_of_space; + stack_pointer[0] = next; + stack_pointer += 1; + break; + } + + /* _INSTRUMENTED_FOR_ITER is not a viable micro-op for tier 2 */ + + case _ITER_CHECK_LIST: { + break; + } + + /* _ITER_JUMP_LIST is not a viable micro-op for tier 2 */ + + case _GUARD_NOT_EXHAUSTED_LIST: { + break; + } + + case _ITER_NEXT_LIST: { + _Py_UopsSymbol *next; + next = sym_new_not_null(ctx); + if (next == NULL) goto out_of_space; + stack_pointer[0] = next; + stack_pointer += 1; + break; + } + + case _ITER_CHECK_TUPLE: { + break; + } + + /* _ITER_JUMP_TUPLE is not a viable micro-op for tier 2 */ + + case _GUARD_NOT_EXHAUSTED_TUPLE: { + break; + } + + case _ITER_NEXT_TUPLE: { + _Py_UopsSymbol *next; + next = sym_new_not_null(ctx); + if (next == NULL) goto out_of_space; + stack_pointer[0] = next; + stack_pointer += 1; + break; + } + + case _ITER_CHECK_RANGE: { + break; + } + + /* _ITER_JUMP_RANGE is not a viable micro-op for tier 2 */ + + case _GUARD_NOT_EXHAUSTED_RANGE: { + break; + } + + case _ITER_NEXT_RANGE: { + _Py_UopsSymbol *iter; + _Py_UopsSymbol *next; + iter = stack_pointer[-1]; + OUT_OF_SPACE_IF_NULL(next = sym_new_type(ctx, &PyLong_Type)); + (void)iter; + stack_pointer[0] = next; + stack_pointer += 1; + break; + } + + case _FOR_ITER_GEN_FRAME: { + /* We are about to hit the end of the trace */ + goto done; + break; + } + + /* _BEFORE_ASYNC_WITH is not a viable micro-op for tier 2 */ + + /* _BEFORE_WITH is not a viable micro-op for tier 2 */ + + case _WITH_EXCEPT_START: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[0] = res; + stack_pointer += 1; + break; + } + + case _PUSH_EXC_INFO: { + _Py_UopsSymbol *prev_exc; + _Py_UopsSymbol *new_exc; + prev_exc = sym_new_not_null(ctx); + if (prev_exc == NULL) goto out_of_space; + new_exc = sym_new_not_null(ctx); + if (new_exc == NULL) goto out_of_space; + stack_pointer[-1] = prev_exc; + stack_pointer[0] = new_exc; + stack_pointer += 1; + break; + } + + case _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT: { + break; + } + + case _GUARD_KEYS_VERSION: { + break; + } + + case _LOAD_ATTR_METHOD_WITH_VALUES: { + _Py_UopsSymbol *owner; + _Py_UopsSymbol *attr; + _Py_UopsSymbol *self = NULL; + owner = stack_pointer[-1]; + PyObject *descr = (PyObject *)this_instr->operand; + (void)descr; + OUT_OF_SPACE_IF_NULL(attr = sym_new_not_null(ctx)); + self = owner; + stack_pointer[-1] = attr; + stack_pointer[0] = self; + stack_pointer += 1; + break; + } + + case _LOAD_ATTR_METHOD_NO_DICT: { + _Py_UopsSymbol *owner; + _Py_UopsSymbol *attr; + _Py_UopsSymbol *self = NULL; + owner = stack_pointer[-1]; + PyObject *descr = (PyObject *)this_instr->operand; + (void)descr; + OUT_OF_SPACE_IF_NULL(attr = sym_new_not_null(ctx)); + self = owner; + stack_pointer[-1] = attr; + stack_pointer[0] = self; + stack_pointer += 1; + break; + } + + case _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES: { + _Py_UopsSymbol *attr; + attr = sym_new_not_null(ctx); + if (attr == NULL) goto out_of_space; + stack_pointer[-1] = attr; + break; + } + + case _LOAD_ATTR_NONDESCRIPTOR_NO_DICT: { + _Py_UopsSymbol *attr; + attr = sym_new_not_null(ctx); + if (attr == NULL) goto out_of_space; + stack_pointer[-1] = attr; + break; + } + + case _CHECK_ATTR_METHOD_LAZY_DICT: { + break; + } + + case _LOAD_ATTR_METHOD_LAZY_DICT: { + _Py_UopsSymbol *owner; + _Py_UopsSymbol *attr; + _Py_UopsSymbol *self = NULL; + owner = stack_pointer[-1]; + PyObject *descr = (PyObject *)this_instr->operand; + (void)descr; + OUT_OF_SPACE_IF_NULL(attr = sym_new_not_null(ctx)); + self = owner; + stack_pointer[-1] = attr; + stack_pointer[0] = self; + stack_pointer += 1; + break; + } + + /* _INSTRUMENTED_CALL is not a viable micro-op for tier 2 */ + + /* _CALL is not a viable micro-op for tier 2 */ + + case _CHECK_PERIODIC: { + break; + } + + case _PY_FRAME_GENERAL: { + _Py_UopsSymbol **args; + _Py_UopsSymbol *self_or_null; + _Py_UopsSymbol *callable; + _Py_UOpsAbstractFrame *new_frame; + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + /* The _Py_UOpsAbstractFrame design assumes that we can copy arguments across directly */ + (void)callable; + (void)self_or_null; + (void)args; + goto done; + stack_pointer[-2 - oparg] = (_Py_UopsSymbol *)new_frame; + stack_pointer += -1 - oparg; + break; + } + + case _CHECK_FUNCTION_VERSION: { + break; + } + + case _CHECK_METHOD_VERSION: { + break; + } + + case _EXPAND_METHOD: { + _Py_UopsSymbol *method; + _Py_UopsSymbol *self; + method = sym_new_not_null(ctx); + if (method == NULL) goto out_of_space; + self = sym_new_not_null(ctx); + if (self == NULL) goto out_of_space; + stack_pointer[-2 - oparg] = method; + stack_pointer[-1 - oparg] = self; + break; + } + + case _CHECK_IS_NOT_PY_CALLABLE: { + break; + } + + case _CALL_NON_PY_GENERAL: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CHECK_CALL_BOUND_METHOD_EXACT_ARGS: { + _Py_UopsSymbol *null; + _Py_UopsSymbol *callable; + null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + if (!sym_set_null(null)) { + goto hit_bottom; + } + if (!sym_set_type(callable, &PyMethod_Type)) { + goto hit_bottom; + } + break; + } + + case _INIT_CALL_BOUND_METHOD_EXACT_ARGS: { + _Py_UopsSymbol *callable; + _Py_UopsSymbol *func; + _Py_UopsSymbol *self; + callable = stack_pointer[-2 - oparg]; + (void)callable; + OUT_OF_SPACE_IF_NULL(func = sym_new_not_null(ctx)); + OUT_OF_SPACE_IF_NULL(self = sym_new_not_null(ctx)); + stack_pointer[-2 - oparg] = func; + stack_pointer[-1 - oparg] = self; + break; + } + + case _CHECK_PEP_523: { + /* Setting the eval frame function invalidates + * all executors, so no need to check dynamically */ + if (_PyInterpreterState_GET()->eval_frame == NULL) { + REPLACE_OP(this_instr, _NOP, 0 ,0); + } + break; + } + + case _CHECK_FUNCTION_EXACT_ARGS: { + _Py_UopsSymbol *self_or_null; + _Py_UopsSymbol *callable; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + uint32_t func_version = (uint32_t)this_instr->operand; + if (!sym_set_type(callable, &PyFunction_Type)) { + goto hit_bottom; + } + (void)self_or_null; + (void)func_version; + break; + } + + case _CHECK_STACK_SPACE: { + assert(corresponding_check_stack == NULL); + corresponding_check_stack = this_instr; + break; + } + + case _CHECK_RECURSION_REMAINING: { + break; + } + + case _INIT_CALL_PY_EXACT_ARGS: { + _Py_UopsSymbol **args; + _Py_UopsSymbol *self_or_null; + _Py_UopsSymbol *callable; + _Py_UOpsAbstractFrame *new_frame; + args = &stack_pointer[-oparg]; + self_or_null = stack_pointer[-1 - oparg]; + callable = stack_pointer[-2 - oparg]; + int argcount = oparg; + (void)callable; + PyCodeObject *co = NULL; + assert((this_instr + 2)->opcode == _PUSH_FRAME); + uint64_t push_operand = (this_instr + 2)->operand; + if (push_operand & 1) { + co = (PyCodeObject *)(push_operand & ~1); + DPRINTF(3, "code=%p ", co); + assert(PyCode_Check(co)); + } + else { + PyFunctionObject *func = (PyFunctionObject *)push_operand; + DPRINTF(3, "func=%p ", func); + if (func == NULL) { + DPRINTF(3, "\n"); + DPRINTF(1, "Missing function\n"); + goto done; + } + co = (PyCodeObject *)func->func_code; + DPRINTF(3, "code=%p ", co); + } + assert(self_or_null != NULL); + assert(args != NULL); + if (sym_is_not_null(self_or_null)) { + // Bound method fiddling, same as _INIT_CALL_PY_EXACT_ARGS in VM + args--; + argcount++; + } + if (sym_is_null(self_or_null) || sym_is_not_null(self_or_null)) { + OUT_OF_SPACE_IF_NULL(new_frame = frame_new(ctx, co, 0, args, argcount)); + } else { + OUT_OF_SPACE_IF_NULL(new_frame = frame_new(ctx, co, 0, NULL, 0)); + } + stack_pointer[-2 - oparg] = (_Py_UopsSymbol *)new_frame; + stack_pointer += -1 - oparg; + break; + } + + case _PUSH_FRAME: { + _Py_UOpsAbstractFrame *new_frame; + new_frame = (_Py_UOpsAbstractFrame *)stack_pointer[-1]; + stack_pointer += -1; + ctx->frame->stack_pointer = stack_pointer; + ctx->frame = new_frame; + ctx->curr_frame_depth++; + stack_pointer = new_frame->stack_pointer; + co = get_code(this_instr); + if (co == NULL) { + // should be about to _EXIT_TRACE anyway + goto done; + } + /* Stack space handling */ + int framesize = co->co_framesize; + assert(framesize > 0); + curr_space += framesize; + if (curr_space < 0 || curr_space > INT32_MAX) { + // won't fit in signed 32-bit int + goto done; + } + max_space = curr_space > max_space ? curr_space : max_space; + if (first_valid_check_stack == NULL) { + first_valid_check_stack = corresponding_check_stack; + } + else if (corresponding_check_stack) { + // delete all but the first valid _CHECK_STACK_SPACE + corresponding_check_stack->opcode = _NOP; + } + corresponding_check_stack = NULL; + break; + } + + case _CALL_TYPE_1: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-3] = res; + stack_pointer += -2; + break; + } + + case _CALL_STR_1: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-3] = res; + stack_pointer += -2; + break; + } + + case _CALL_TUPLE_1: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-3] = res; + stack_pointer += -2; + break; + } + + /* _CALL_ALLOC_AND_ENTER_INIT is not a viable micro-op for tier 2 */ + + case _EXIT_INIT_CHECK: { + stack_pointer += -1; + break; + } + + case _CALL_BUILTIN_CLASS: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_BUILTIN_O: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_BUILTIN_FAST: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_BUILTIN_FAST_WITH_KEYWORDS: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_LEN: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_ISINSTANCE: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_METHOD_DESCRIPTOR_O: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_METHOD_DESCRIPTOR_NOARGS: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + case _CALL_METHOD_DESCRIPTOR_FAST: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2 - oparg] = res; + stack_pointer += -1 - oparg; + break; + } + + /* _INSTRUMENTED_CALL_KW is not a viable micro-op for tier 2 */ + + /* _CALL_KW is not a viable micro-op for tier 2 */ + + /* _INSTRUMENTED_CALL_FUNCTION_EX is not a viable micro-op for tier 2 */ + + /* _CALL_FUNCTION_EX is not a viable micro-op for tier 2 */ + + case _MAKE_FUNCTION: { + _Py_UopsSymbol *func; + func = sym_new_not_null(ctx); + if (func == NULL) goto out_of_space; + stack_pointer[-1] = func; + break; + } + + case _SET_FUNCTION_ATTRIBUTE: { + _Py_UopsSymbol *func; + func = sym_new_not_null(ctx); + if (func == NULL) goto out_of_space; + stack_pointer[-2] = func; + stack_pointer += -1; + break; + } + + case _RETURN_GENERATOR: { + _Py_UopsSymbol *res; + ctx->frame->stack_pointer = stack_pointer; + frame_pop(ctx); + stack_pointer = ctx->frame->stack_pointer; + OUT_OF_SPACE_IF_NULL(res = sym_new_unknown(ctx)); + /* Stack space handling */ + assert(corresponding_check_stack == NULL); + assert(co != NULL); + int framesize = co->co_framesize; + assert(framesize > 0); + assert(framesize <= curr_space); + curr_space -= framesize; + co = get_code(this_instr); + if (co == NULL) { + // might be impossible, but bailing is still safe + goto done; + } + stack_pointer[0] = res; + stack_pointer += 1; + break; + } + + case _BUILD_SLICE: { + _Py_UopsSymbol *slice; + slice = sym_new_not_null(ctx); + if (slice == NULL) goto out_of_space; + stack_pointer[-2 - ((oparg == 3) ? 1 : 0)] = slice; + stack_pointer += -1 - ((oparg == 3) ? 1 : 0); + break; + } + + case _CONVERT_VALUE: { + _Py_UopsSymbol *result; + result = sym_new_not_null(ctx); + if (result == NULL) goto out_of_space; + stack_pointer[-1] = result; + break; + } + + case _FORMAT_SIMPLE: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-1] = res; + break; + } + + case _FORMAT_WITH_SPEC: { + _Py_UopsSymbol *res; + res = sym_new_not_null(ctx); + if (res == NULL) goto out_of_space; + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _COPY: { + _Py_UopsSymbol *bottom; + _Py_UopsSymbol *top; + bottom = stack_pointer[-1 - (oparg-1)]; + assert(oparg > 0); + top = bottom; + stack_pointer[0] = top; + stack_pointer += 1; + break; + } + + case _BINARY_OP: { + _Py_UopsSymbol *right; + _Py_UopsSymbol *left; + _Py_UopsSymbol *res; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + PyTypeObject *ltype = sym_get_type(left); + PyTypeObject *rtype = sym_get_type(right); + if (ltype != NULL && (ltype == &PyLong_Type || ltype == &PyFloat_Type) && + rtype != NULL && (rtype == &PyLong_Type || rtype == &PyFloat_Type)) + { + if (oparg != NB_TRUE_DIVIDE && oparg != NB_INPLACE_TRUE_DIVIDE && + ltype == &PyLong_Type && rtype == &PyLong_Type) { + /* If both inputs are ints and the op is not division the result is an int */ + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyLong_Type)); + } + else { + /* For any other op combining ints/floats the result is a float */ + OUT_OF_SPACE_IF_NULL(res = sym_new_type(ctx, &PyFloat_Type)); + } + } + OUT_OF_SPACE_IF_NULL(res = sym_new_unknown(ctx)); + stack_pointer[-2] = res; + stack_pointer += -1; + break; + } + + case _SWAP: { + _Py_UopsSymbol *top; + _Py_UopsSymbol *bottom; + top = stack_pointer[-1]; + bottom = stack_pointer[-2 - (oparg-2)]; + stack_pointer[-2 - (oparg-2)] = top; + stack_pointer[-1] = bottom; + break; + } + + /* _INSTRUMENTED_INSTRUCTION is not a viable micro-op for tier 2 */ + + /* _INSTRUMENTED_JUMP_FORWARD is not a viable micro-op for tier 2 */ + + /* _INSTRUMENTED_JUMP_BACKWARD is not a viable micro-op for tier 2 */ + + /* _INSTRUMENTED_POP_JUMP_IF_TRUE is not a viable micro-op for tier 2 */ + + /* _INSTRUMENTED_POP_JUMP_IF_FALSE is not a viable micro-op for tier 2 */ + + /* _INSTRUMENTED_POP_JUMP_IF_NONE is not a viable micro-op for tier 2 */ + + /* _INSTRUMENTED_POP_JUMP_IF_NOT_NONE is not a viable micro-op for tier 2 */ + + case _GUARD_IS_TRUE_POP: { + _Py_UopsSymbol *flag; + flag = stack_pointer[-1]; + if (sym_is_const(flag)) { + PyObject *value = sym_get_const(flag); + assert(value != NULL); + eliminate_pop_guard(this_instr, value != Py_True); + } + stack_pointer += -1; + break; + } + + case _GUARD_IS_FALSE_POP: { + _Py_UopsSymbol *flag; + flag = stack_pointer[-1]; + if (sym_is_const(flag)) { + PyObject *value = sym_get_const(flag); + assert(value != NULL); + eliminate_pop_guard(this_instr, value != Py_False); + } + stack_pointer += -1; + break; + } + + case _GUARD_IS_NONE_POP: { + _Py_UopsSymbol *flag; + flag = stack_pointer[-1]; + if (sym_is_const(flag)) { + PyObject *value = sym_get_const(flag); + assert(value != NULL); + eliminate_pop_guard(this_instr, !Py_IsNone(value)); + } + else if (sym_has_type(flag)) { + assert(!sym_matches_type(flag, &_PyNone_Type)); + eliminate_pop_guard(this_instr, true); + } + stack_pointer += -1; + break; + } + + case _GUARD_IS_NOT_NONE_POP: { + _Py_UopsSymbol *flag; + flag = stack_pointer[-1]; + if (sym_is_const(flag)) { + PyObject *value = sym_get_const(flag); + assert(value != NULL); + eliminate_pop_guard(this_instr, Py_IsNone(value)); + } + else if (sym_has_type(flag)) { + assert(!sym_matches_type(flag, &_PyNone_Type)); + eliminate_pop_guard(this_instr, false); + } + stack_pointer += -1; + break; + } + + case _JUMP_TO_TOP: { + goto done; + break; + } + + case _SET_IP: { + break; + } + + case _CHECK_STACK_SPACE_OPERAND: { + uint32_t framesize = (uint32_t)this_instr->operand; + (void)framesize; + /* We should never see _CHECK_STACK_SPACE_OPERANDs. + * They are only created at the end of this pass. */ + Py_UNREACHABLE(); + break; + } + + case _SAVE_RETURN_OFFSET: { + break; + } + + case _EXIT_TRACE: { + goto done; + break; + } + + case _CHECK_VALIDITY: { + break; + } + + case _LOAD_CONST_INLINE: { + _Py_UopsSymbol *value; + PyObject *ptr = (PyObject *)this_instr->operand; + OUT_OF_SPACE_IF_NULL(value = sym_new_const(ctx, ptr)); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _LOAD_CONST_INLINE_BORROW: { + _Py_UopsSymbol *value; + PyObject *ptr = (PyObject *)this_instr->operand; + OUT_OF_SPACE_IF_NULL(value = sym_new_const(ctx, ptr)); + stack_pointer[0] = value; + stack_pointer += 1; + break; + } + + case _POP_TOP_LOAD_CONST_INLINE_BORROW: { + _Py_UopsSymbol *value; + value = sym_new_not_null(ctx); + if (value == NULL) goto out_of_space; + stack_pointer[-1] = value; + break; + } + + case _LOAD_CONST_INLINE_WITH_NULL: { + _Py_UopsSymbol *value; + _Py_UopsSymbol *null; + PyObject *ptr = (PyObject *)this_instr->operand; + OUT_OF_SPACE_IF_NULL(value = sym_new_const(ctx, ptr)); + OUT_OF_SPACE_IF_NULL(null = sym_new_null(ctx)); + stack_pointer[0] = value; + stack_pointer[1] = null; + stack_pointer += 2; + break; + } + + case _LOAD_CONST_INLINE_BORROW_WITH_NULL: { + _Py_UopsSymbol *value; + _Py_UopsSymbol *null; + PyObject *ptr = (PyObject *)this_instr->operand; + OUT_OF_SPACE_IF_NULL(value = sym_new_const(ctx, ptr)); + OUT_OF_SPACE_IF_NULL(null = sym_new_null(ctx)); + stack_pointer[0] = value; + stack_pointer[1] = null; + stack_pointer += 2; + break; + } + + case _CHECK_FUNCTION: { + break; + } + + case _INTERNAL_INCREMENT_OPT_COUNTER: { + stack_pointer += -1; + break; + } + + case _COLD_EXIT: { + break; + } + + case _DYNAMIC_EXIT: { + break; + } + + case _START_EXECUTOR: { + break; + } + + case _FATAL_ERROR: { + break; + } + + case _CHECK_VALIDITY_AND_SET_IP: { + break; + } + + case _DEOPT: { + break; + } + + case _ERROR_POP_N: { + stack_pointer += -oparg; + break; + } + + case _TIER2_RESUME_CHECK: { + break; + } + diff --git a/contrib/tools/python3/Python/optimizer_symbols.c b/contrib/tools/python3/Python/optimizer_symbols.c new file mode 100644 index 00000000000..8f855cdb883 --- /dev/null +++ b/contrib/tools/python3/Python/optimizer_symbols.c @@ -0,0 +1,514 @@ +#ifdef _Py_TIER2 + +#include "Python.h" + +#include "pycore_code.h" +#include "pycore_frame.h" +#include "pycore_long.h" +#include "pycore_optimizer.h" + +#include +#include +#include + +/* Symbols + ======= + + See the diagram at + https://github.com/faster-cpython/ideas/blob/main/3.13/redundancy_eliminator.md + + We represent the nodes in the diagram as follows + (the flag bits are only defined in optimizer_symbols.c): + - Top: no flag bits, typ and const_val are NULL. + - NULL: IS_NULL flag set, type and const_val NULL. + - Not NULL: NOT_NULL flag set, type and const_val NULL. + - None/not None: not used. (None could be represented as any other constant.) + - Known type: NOT_NULL flag set and typ set; const_val is NULL. + - Known constant: NOT_NULL flag set, type set, const_val set. + - Bottom: IS_NULL and NOT_NULL flags set, type and const_val NULL. + */ + +// Flags for below. +#define IS_NULL 1 << 0 +#define NOT_NULL 1 << 1 + +#ifdef Py_DEBUG +static inline int get_lltrace(void) { + char *uop_debug = Py_GETENV("PYTHON_OPT_DEBUG"); + int lltrace = 0; + if (uop_debug != NULL && *uop_debug >= '0') { + lltrace = *uop_debug - '0'; // TODO: Parse an int and all that + } + return lltrace; +} +#define DPRINTF(level, ...) \ + if (get_lltrace() >= (level)) { printf(__VA_ARGS__); } +#else +#define DPRINTF(level, ...) +#endif + +static _Py_UopsSymbol * +sym_new(_Py_UOpsContext *ctx) +{ + _Py_UopsSymbol *self = &ctx->t_arena.arena[ctx->t_arena.ty_curr_number]; + if (ctx->t_arena.ty_curr_number >= ctx->t_arena.ty_max_number) { + OPT_STAT_INC(optimizer_failure_reason_no_memory); + DPRINTF(1, "out of space for symbolic expression type\n"); + return NULL; + } + ctx->t_arena.ty_curr_number++; + self->flags = 0; + self->typ = NULL; + self->const_val = NULL; + + return self; +} + +static inline void +sym_set_flag(_Py_UopsSymbol *sym, int flag) +{ + sym->flags |= flag; +} + +static inline void +sym_set_bottom(_Py_UopsSymbol *sym) +{ + sym_set_flag(sym, IS_NULL | NOT_NULL); + sym->typ = NULL; + Py_CLEAR(sym->const_val); +} + +bool +_Py_uop_sym_is_bottom(_Py_UopsSymbol *sym) +{ + if ((sym->flags & IS_NULL) && (sym->flags & NOT_NULL)) { + assert(sym->flags == (IS_NULL | NOT_NULL)); + assert(sym->typ == NULL); + assert(sym->const_val == NULL); + return true; + } + return false; +} + +bool +_Py_uop_sym_is_not_null(_Py_UopsSymbol *sym) +{ + return sym->flags == NOT_NULL; +} + +bool +_Py_uop_sym_is_null(_Py_UopsSymbol *sym) +{ + return sym->flags == IS_NULL; +} + +bool +_Py_uop_sym_is_const(_Py_UopsSymbol *sym) +{ + return sym->const_val != NULL; +} + +PyObject * +_Py_uop_sym_get_const(_Py_UopsSymbol *sym) +{ + return sym->const_val; +} + +bool +_Py_uop_sym_set_type(_Py_UopsSymbol *sym, PyTypeObject *typ) +{ + assert(typ != NULL && PyType_Check(typ)); + if (sym->flags & IS_NULL) { + sym_set_bottom(sym); + return false; + } + if (sym->typ != NULL) { + if (sym->typ != typ) { + sym_set_bottom(sym); + return false; + } + } + else { + sym_set_flag(sym, NOT_NULL); + sym->typ = typ; + } + return true; +} + +bool +_Py_uop_sym_set_const(_Py_UopsSymbol *sym, PyObject *const_val) +{ + assert(const_val != NULL); + if (sym->flags & IS_NULL) { + sym_set_bottom(sym); + return false; + } + PyTypeObject *typ = Py_TYPE(const_val); + if (sym->typ != NULL && sym->typ != typ) { + sym_set_bottom(sym); + return false; + } + if (sym->const_val != NULL) { + if (sym->const_val != const_val) { + // TODO: What if they're equal? + sym_set_bottom(sym); + return false; + } + } + else { + sym_set_flag(sym, NOT_NULL); + sym->typ = typ; + sym->const_val = Py_NewRef(const_val); + } + return true; +} + +bool +_Py_uop_sym_set_null(_Py_UopsSymbol *sym) +{ + if (_Py_uop_sym_is_not_null(sym)) { + sym_set_bottom(sym); + return false; + } + sym_set_flag(sym, IS_NULL); + return true; +} + +bool +_Py_uop_sym_set_non_null(_Py_UopsSymbol *sym) +{ + if (_Py_uop_sym_is_null(sym)) { + sym_set_bottom(sym); + return false; + } + sym_set_flag(sym, NOT_NULL); + return true; +} + + +_Py_UopsSymbol * +_Py_uop_sym_new_unknown(_Py_UOpsContext *ctx) +{ + return sym_new(ctx); +} + +_Py_UopsSymbol * +_Py_uop_sym_new_not_null(_Py_UOpsContext *ctx) +{ + _Py_UopsSymbol *res = _Py_uop_sym_new_unknown(ctx); + if (res == NULL) { + return NULL; + } + sym_set_flag(res, NOT_NULL); + return res; +} + +_Py_UopsSymbol * +_Py_uop_sym_new_type(_Py_UOpsContext *ctx, PyTypeObject *typ) +{ + _Py_UopsSymbol *res = sym_new(ctx); + if (res == NULL) { + return NULL; + } + _Py_uop_sym_set_type(res, typ); + return res; +} + +// Adds a new reference to const_val, owned by the symbol. +_Py_UopsSymbol * +_Py_uop_sym_new_const(_Py_UOpsContext *ctx, PyObject *const_val) +{ + assert(const_val != NULL); + _Py_UopsSymbol *res = sym_new(ctx); + if (res == NULL) { + return NULL; + } + _Py_uop_sym_set_const(res, const_val); + return res; +} + +_Py_UopsSymbol * +_Py_uop_sym_new_null(_Py_UOpsContext *ctx) +{ + _Py_UopsSymbol *null_sym = _Py_uop_sym_new_unknown(ctx); + if (null_sym == NULL) { + return NULL; + } + _Py_uop_sym_set_null(null_sym); + return null_sym; +} + +PyTypeObject * +_Py_uop_sym_get_type(_Py_UopsSymbol *sym) +{ + if (_Py_uop_sym_is_bottom(sym)) { + return NULL; + } + return sym->typ; +} + +bool +_Py_uop_sym_has_type(_Py_UopsSymbol *sym) +{ + if (_Py_uop_sym_is_bottom(sym)) { + return false; + } + return sym->typ != NULL; +} + +bool +_Py_uop_sym_matches_type(_Py_UopsSymbol *sym, PyTypeObject *typ) +{ + assert(typ != NULL && PyType_Check(typ)); + return _Py_uop_sym_get_type(sym) == typ; +} + +int +_Py_uop_sym_truthiness(_Py_UopsSymbol *sym) +{ + /* There are some non-constant values for + * which `bool(val)` always evaluates to + * True or False, such as tuples with known + * length, but unknown contents, or bound-methods. + * This function will need updating + * should we support those values. + */ + if (_Py_uop_sym_is_bottom(sym)) { + return -1; + } + if (!_Py_uop_sym_is_const(sym)) { + return -1; + } + PyObject *value = _Py_uop_sym_get_const(sym); + if (value == Py_None) { + return 0; + } + /* Only handle a few known safe types */ + PyTypeObject *tp = Py_TYPE(value); + if (tp == &PyLong_Type) { + return !_PyLong_IsZero((PyLongObject *)value); + } + if (tp == &PyUnicode_Type) { + return value != &_Py_STR(empty); + } + if (tp == &PyBool_Type) { + return value == Py_True; + } + return -1; +} + +// 0 on success, -1 on error. +_Py_UOpsAbstractFrame * +_Py_uop_frame_new( + _Py_UOpsContext *ctx, + PyCodeObject *co, + int curr_stackentries, + _Py_UopsSymbol **args, + int arg_len) +{ + assert(ctx->curr_frame_depth < MAX_ABSTRACT_FRAME_DEPTH); + _Py_UOpsAbstractFrame *frame = &ctx->frames[ctx->curr_frame_depth]; + + frame->stack_len = co->co_stacksize; + frame->locals_len = co->co_nlocalsplus; + + frame->locals = ctx->n_consumed; + frame->stack = frame->locals + co->co_nlocalsplus; + frame->stack_pointer = frame->stack + curr_stackentries; + ctx->n_consumed = ctx->n_consumed + (co->co_nlocalsplus + co->co_stacksize); + if (ctx->n_consumed >= ctx->limit) { + return NULL; + } + + // Initialize with the initial state of all local variables + for (int i = 0; i < arg_len; i++) { + frame->locals[i] = args[i]; + } + + for (int i = arg_len; i < co->co_nlocalsplus; i++) { + _Py_UopsSymbol *local = _Py_uop_sym_new_unknown(ctx); + frame->locals[i] = local; + } + + + // Initialize the stack as well + for (int i = 0; i < curr_stackentries; i++) { + _Py_UopsSymbol *stackvar = _Py_uop_sym_new_unknown(ctx); + frame->stack[i] = stackvar; + } + + return frame; +} + +void +_Py_uop_abstractcontext_fini(_Py_UOpsContext *ctx) +{ + if (ctx == NULL) { + return; + } + ctx->curr_frame_depth = 0; + int tys = ctx->t_arena.ty_curr_number; + for (int i = 0; i < tys; i++) { + Py_CLEAR(ctx->t_arena.arena[i].const_val); + } +} + +int +_Py_uop_abstractcontext_init(_Py_UOpsContext *ctx) +{ + ctx->limit = ctx->locals_and_stack + MAX_ABSTRACT_INTERP_SIZE; + ctx->n_consumed = ctx->locals_and_stack; +#ifdef Py_DEBUG // Aids debugging a little. There should never be NULL in the abstract interpreter. + for (int i = 0 ; i < MAX_ABSTRACT_INTERP_SIZE; i++) { + ctx->locals_and_stack[i] = NULL; + } +#endif + + // Setup the arena for sym expressions. + ctx->t_arena.ty_curr_number = 0; + ctx->t_arena.ty_max_number = TY_ARENA_SIZE; + + // Frame setup + ctx->curr_frame_depth = 0; + + return 0; +} + +int +_Py_uop_frame_pop(_Py_UOpsContext *ctx) +{ + _Py_UOpsAbstractFrame *frame = ctx->frame; + ctx->n_consumed = frame->locals; + ctx->curr_frame_depth--; + assert(ctx->curr_frame_depth >= 1); + ctx->frame = &ctx->frames[ctx->curr_frame_depth - 1]; + + return 0; +} + +#define TEST_PREDICATE(PRED, MSG) \ +do { \ + if (!(PRED)) { \ + PyErr_SetString( \ + PyExc_AssertionError, \ + (MSG)); \ + goto fail; \ + } \ +} while (0) + +static _Py_UopsSymbol * +make_bottom(_Py_UOpsContext *ctx) +{ + _Py_UopsSymbol *sym = _Py_uop_sym_new_unknown(ctx); + _Py_uop_sym_set_null(sym); + _Py_uop_sym_set_non_null(sym); + return sym; +} + +PyObject * +_Py_uop_symbols_test(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(ignored)) +{ + _Py_UOpsContext context; + _Py_UOpsContext *ctx = &context; + _Py_uop_abstractcontext_init(ctx); + PyObject *val_42 = NULL; + PyObject *val_43 = NULL; + + // Use a single 'sym' variable so copy-pasting tests is easier. + _Py_UopsSymbol *sym = _Py_uop_sym_new_unknown(ctx); + if (sym == NULL) { + goto fail; + } + TEST_PREDICATE(!_Py_uop_sym_is_null(sym), "top is NULL"); + TEST_PREDICATE(!_Py_uop_sym_is_not_null(sym), "top is not NULL"); + TEST_PREDICATE(!_Py_uop_sym_matches_type(sym, &PyLong_Type), "top matches a type"); + TEST_PREDICATE(!_Py_uop_sym_is_const(sym), "top is a constant"); + TEST_PREDICATE(_Py_uop_sym_get_const(sym) == NULL, "top as constant is not NULL"); + TEST_PREDICATE(!_Py_uop_sym_is_bottom(sym), "top is bottom"); + + sym = make_bottom(ctx); + if (sym == NULL) { + goto fail; + } + TEST_PREDICATE(!_Py_uop_sym_is_null(sym), "bottom is NULL is not false"); + TEST_PREDICATE(!_Py_uop_sym_is_not_null(sym), "bottom is not NULL is not false"); + TEST_PREDICATE(!_Py_uop_sym_matches_type(sym, &PyLong_Type), "bottom matches a type"); + TEST_PREDICATE(!_Py_uop_sym_is_const(sym), "bottom is a constant is not false"); + TEST_PREDICATE(_Py_uop_sym_get_const(sym) == NULL, "bottom as constant is not NULL"); + TEST_PREDICATE(_Py_uop_sym_is_bottom(sym), "bottom isn't bottom"); + + sym = _Py_uop_sym_new_type(ctx, &PyLong_Type); + if (sym == NULL) { + goto fail; + } + TEST_PREDICATE(!_Py_uop_sym_is_null(sym), "int is NULL"); + TEST_PREDICATE(_Py_uop_sym_is_not_null(sym), "int isn't not NULL"); + TEST_PREDICATE(_Py_uop_sym_matches_type(sym, &PyLong_Type), "int isn't int"); + TEST_PREDICATE(!_Py_uop_sym_matches_type(sym, &PyFloat_Type), "int matches float"); + TEST_PREDICATE(!_Py_uop_sym_is_const(sym), "int is a constant"); + TEST_PREDICATE(_Py_uop_sym_get_const(sym) == NULL, "int as constant is not NULL"); + + _Py_uop_sym_set_type(sym, &PyLong_Type); // Should be a no-op + TEST_PREDICATE(_Py_uop_sym_matches_type(sym, &PyLong_Type), "(int and int) isn't int"); + + _Py_uop_sym_set_type(sym, &PyFloat_Type); // Should make it bottom + TEST_PREDICATE(_Py_uop_sym_is_bottom(sym), "(int and float) isn't bottom"); + + val_42 = PyLong_FromLong(42); + assert(val_42 != NULL); + assert(_Py_IsImmortal(val_42)); + + val_43 = PyLong_FromLong(43); + assert(val_43 != NULL); + assert(_Py_IsImmortal(val_43)); + + sym = _Py_uop_sym_new_type(ctx, &PyLong_Type); + if (sym == NULL) { + goto fail; + } + _Py_uop_sym_set_const(sym, val_42); + TEST_PREDICATE(_Py_uop_sym_truthiness(sym) == 1, "bool(42) is not True"); + TEST_PREDICATE(!_Py_uop_sym_is_null(sym), "42 is NULL"); + TEST_PREDICATE(_Py_uop_sym_is_not_null(sym), "42 isn't not NULL"); + TEST_PREDICATE(_Py_uop_sym_matches_type(sym, &PyLong_Type), "42 isn't an int"); + TEST_PREDICATE(!_Py_uop_sym_matches_type(sym, &PyFloat_Type), "42 matches float"); + TEST_PREDICATE(_Py_uop_sym_is_const(sym), "42 is not a constant"); + TEST_PREDICATE(_Py_uop_sym_get_const(sym) != NULL, "42 as constant is NULL"); + TEST_PREDICATE(_Py_uop_sym_get_const(sym) == val_42, "42 as constant isn't 42"); + + _Py_uop_sym_set_type(sym, &PyLong_Type); // Should be a no-op + TEST_PREDICATE(_Py_uop_sym_matches_type(sym, &PyLong_Type), "(42 and 42) isn't an int"); + TEST_PREDICATE(_Py_uop_sym_get_const(sym) == val_42, "(42 and 42) as constant isn't 42"); + + _Py_uop_sym_set_type(sym, &PyFloat_Type); // Should make it bottom + TEST_PREDICATE(_Py_uop_sym_is_bottom(sym), "(42 and float) isn't bottom"); + + sym = _Py_uop_sym_new_type(ctx, &PyLong_Type); + if (sym == NULL) { + goto fail; + } + _Py_uop_sym_set_const(sym, val_42); + _Py_uop_sym_set_const(sym, val_43); // Should make it bottom + TEST_PREDICATE(_Py_uop_sym_is_bottom(sym), "(42 and 43) isn't bottom"); + + + sym = _Py_uop_sym_new_const(ctx, Py_None); + TEST_PREDICATE(_Py_uop_sym_truthiness(sym) == 0, "bool(None) is not False"); + sym = _Py_uop_sym_new_const(ctx, Py_False); + TEST_PREDICATE(_Py_uop_sym_truthiness(sym) == 0, "bool(False) is not False"); + sym = _Py_uop_sym_new_const(ctx, PyLong_FromLong(0)); + TEST_PREDICATE(_Py_uop_sym_truthiness(sym) == 0, "bool(0) is not False"); + + _Py_uop_abstractcontext_fini(ctx); + Py_DECREF(val_42); + Py_DECREF(val_43); + Py_RETURN_NONE; + +fail: + _Py_uop_abstractcontext_fini(ctx); + Py_XDECREF(val_42); + Py_XDECREF(val_43); + return NULL; +} + +#endif /* _Py_TIER2 */ diff --git a/contrib/tools/python3/Python/parking_lot.c b/contrib/tools/python3/Python/parking_lot.c new file mode 100644 index 00000000000..a7e9760e35d --- /dev/null +++ b/contrib/tools/python3/Python/parking_lot.c @@ -0,0 +1,401 @@ +#include "Python.h" + +#include "pycore_llist.h" +#include "pycore_lock.h" // _PyRawMutex +#include "pycore_parking_lot.h" +#include "pycore_pyerrors.h" // _Py_FatalErrorFormat +#include "pycore_pystate.h" // _PyThreadState_GET +#include "pycore_semaphore.h" // _PySemaphore +#include "pycore_time.h" // _PyTime_Add() + +#include + + +typedef struct { + // The mutex protects the waiter queue and the num_waiters counter. + _PyRawMutex mutex; + + // Linked list of `struct wait_entry` waiters in this bucket. + struct llist_node root; + size_t num_waiters; +} Bucket; + +struct wait_entry { + void *park_arg; + uintptr_t addr; + _PySemaphore sema; + struct llist_node node; + bool is_unparking; +}; + +// Prime number to avoid correlations with memory addresses. +// We want this to be roughly proportional to the number of CPU cores +// to minimize contention on the bucket locks, but not too big to avoid +// wasting memory. The exact choice does not matter much. +#define NUM_BUCKETS 257 + +#define BUCKET_INIT(b, i) [i] = { .root = LLIST_INIT(b[i].root) } +#define BUCKET_INIT_2(b, i) BUCKET_INIT(b, i), BUCKET_INIT(b, i+1) +#define BUCKET_INIT_4(b, i) BUCKET_INIT_2(b, i), BUCKET_INIT_2(b, i+2) +#define BUCKET_INIT_8(b, i) BUCKET_INIT_4(b, i), BUCKET_INIT_4(b, i+4) +#define BUCKET_INIT_16(b, i) BUCKET_INIT_8(b, i), BUCKET_INIT_8(b, i+8) +#define BUCKET_INIT_32(b, i) BUCKET_INIT_16(b, i), BUCKET_INIT_16(b, i+16) +#define BUCKET_INIT_64(b, i) BUCKET_INIT_32(b, i), BUCKET_INIT_32(b, i+32) +#define BUCKET_INIT_128(b, i) BUCKET_INIT_64(b, i), BUCKET_INIT_64(b, i+64) +#define BUCKET_INIT_256(b, i) BUCKET_INIT_128(b, i), BUCKET_INIT_128(b, i+128) + +// Table of waiters (hashed by address) +static Bucket buckets[NUM_BUCKETS] = { + BUCKET_INIT_256(buckets, 0), + BUCKET_INIT(buckets, 256), +}; + +void +_PySemaphore_Init(_PySemaphore *sema) +{ +#if defined(MS_WINDOWS) + sema->platform_sem = CreateSemaphore( + NULL, // attributes + 0, // initial count + 10, // maximum count + NULL // unnamed + ); + if (!sema->platform_sem) { + Py_FatalError("parking_lot: CreateSemaphore failed"); + } +#elif defined(_Py_USE_SEMAPHORES) + if (sem_init(&sema->platform_sem, /*pshared=*/0, /*value=*/0) < 0) { + Py_FatalError("parking_lot: sem_init failed"); + } +#else + if (pthread_mutex_init(&sema->mutex, NULL) != 0) { + Py_FatalError("parking_lot: pthread_mutex_init failed"); + } + if (pthread_cond_init(&sema->cond, NULL)) { + Py_FatalError("parking_lot: pthread_cond_init failed"); + } + sema->counter = 0; +#endif +} + +void +_PySemaphore_Destroy(_PySemaphore *sema) +{ +#if defined(MS_WINDOWS) + CloseHandle(sema->platform_sem); +#elif defined(_Py_USE_SEMAPHORES) + sem_destroy(&sema->platform_sem); +#else + pthread_mutex_destroy(&sema->mutex); + pthread_cond_destroy(&sema->cond); +#endif +} + +static int +_PySemaphore_PlatformWait(_PySemaphore *sema, PyTime_t timeout) +{ + int res; +#if defined(MS_WINDOWS) + DWORD wait; + DWORD millis = 0; + if (timeout < 0) { + millis = INFINITE; + } + else { + PyTime_t div = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_TIMEOUT); + // Prevent overflow with clamping the result + if ((PyTime_t)PY_DWORD_MAX < div) { + millis = PY_DWORD_MAX; + } + else { + millis = (DWORD) div; + } + } + wait = WaitForSingleObjectEx(sema->platform_sem, millis, FALSE); + if (wait == WAIT_OBJECT_0) { + res = Py_PARK_OK; + } + else if (wait == WAIT_TIMEOUT) { + res = Py_PARK_TIMEOUT; + } + else { + res = Py_PARK_INTR; + } +#elif defined(_Py_USE_SEMAPHORES) + int err; + if (timeout >= 0) { + struct timespec ts; + +#if defined(CLOCK_MONOTONIC) && defined(HAVE_SEM_CLOCKWAIT) && !defined(_Py_THREAD_SANITIZER) + PyTime_t now; + // silently ignore error: cannot report error to the caller + (void)PyTime_MonotonicRaw(&now); + PyTime_t deadline = _PyTime_Add(now, timeout); + _PyTime_AsTimespec_clamp(deadline, &ts); + + err = sem_clockwait(&sema->platform_sem, CLOCK_MONOTONIC, &ts); +#else + PyTime_t now; + // silently ignore error: cannot report error to the caller + (void)PyTime_TimeRaw(&now); + PyTime_t deadline = _PyTime_Add(now, timeout); + + _PyTime_AsTimespec_clamp(deadline, &ts); + + err = sem_timedwait(&sema->platform_sem, &ts); +#endif + } + else { + err = sem_wait(&sema->platform_sem); + } + if (err == -1) { + err = errno; + if (err == EINTR) { + res = Py_PARK_INTR; + } + else if (err == ETIMEDOUT) { + res = Py_PARK_TIMEOUT; + } + else { + _Py_FatalErrorFormat(__func__, + "unexpected error from semaphore: %d", + err); + } + } + else { + res = Py_PARK_OK; + } +#else + pthread_mutex_lock(&sema->mutex); + int err = 0; + if (sema->counter == 0) { + if (timeout >= 0) { + struct timespec ts; +#if defined(HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP) + _PyTime_AsTimespec_clamp(timeout, &ts); + err = pthread_cond_timedwait_relative_np(&sema->cond, &sema->mutex, &ts); +#else + PyTime_t now; + (void)PyTime_TimeRaw(&now); + PyTime_t deadline = _PyTime_Add(now, timeout); + _PyTime_AsTimespec_clamp(deadline, &ts); + + err = pthread_cond_timedwait(&sema->cond, &sema->mutex, &ts); +#endif // HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP + } + else { + err = pthread_cond_wait(&sema->cond, &sema->mutex); + } + } + if (sema->counter > 0) { + sema->counter--; + res = Py_PARK_OK; + } + else if (err) { + res = Py_PARK_TIMEOUT; + } + else { + res = Py_PARK_INTR; + } + pthread_mutex_unlock(&sema->mutex); +#endif + return res; +} + +int +_PySemaphore_Wait(_PySemaphore *sema, PyTime_t timeout, int detach) +{ + PyThreadState *tstate = NULL; + if (detach) { + tstate = _PyThreadState_GET(); + if (tstate && _Py_atomic_load_int_relaxed(&tstate->state) == + _Py_THREAD_ATTACHED) { + // Only detach if we are attached + PyEval_ReleaseThread(tstate); + } + else { + tstate = NULL; + } + } + int res = _PySemaphore_PlatformWait(sema, timeout); + if (tstate) { + PyEval_AcquireThread(tstate); + } + return res; +} + +void +_PySemaphore_Wakeup(_PySemaphore *sema) +{ +#if defined(MS_WINDOWS) + if (!ReleaseSemaphore(sema->platform_sem, 1, NULL)) { + Py_FatalError("parking_lot: ReleaseSemaphore failed"); + } +#elif defined(_Py_USE_SEMAPHORES) + int err = sem_post(&sema->platform_sem); + if (err != 0) { + Py_FatalError("parking_lot: sem_post failed"); + } +#else + pthread_mutex_lock(&sema->mutex); + sema->counter++; + pthread_cond_signal(&sema->cond); + pthread_mutex_unlock(&sema->mutex); +#endif +} + +static void +enqueue(Bucket *bucket, const void *address, struct wait_entry *wait) +{ + llist_insert_tail(&bucket->root, &wait->node); + ++bucket->num_waiters; +} + +static struct wait_entry * +dequeue(Bucket *bucket, const void *address) +{ + // find the first waiter that is waiting on `address` + struct llist_node *root = &bucket->root; + struct llist_node *node; + llist_for_each(node, root) { + struct wait_entry *wait = llist_data(node, struct wait_entry, node); + if (wait->addr == (uintptr_t)address) { + llist_remove(node); + --bucket->num_waiters; + wait->is_unparking = true; + return wait; + } + } + return NULL; +} + +static void +dequeue_all(Bucket *bucket, const void *address, struct llist_node *dst) +{ + // remove and append all matching waiters to dst + struct llist_node *root = &bucket->root; + struct llist_node *node; + llist_for_each_safe(node, root) { + struct wait_entry *wait = llist_data(node, struct wait_entry, node); + if (wait->addr == (uintptr_t)address) { + llist_remove(node); + llist_insert_tail(dst, node); + --bucket->num_waiters; + wait->is_unparking = true; + } + } +} + +// Checks that `*addr == *expected` (only works for 1, 2, 4, or 8 bytes) +static int +atomic_memcmp(const void *addr, const void *expected, size_t addr_size) +{ + switch (addr_size) { + case 1: return _Py_atomic_load_uint8(addr) == *(const uint8_t *)expected; + case 2: return _Py_atomic_load_uint16(addr) == *(const uint16_t *)expected; + case 4: return _Py_atomic_load_uint32(addr) == *(const uint32_t *)expected; + case 8: return _Py_atomic_load_uint64(addr) == *(const uint64_t *)expected; + default: Py_UNREACHABLE(); + } +} + +int +_PyParkingLot_Park(const void *addr, const void *expected, size_t size, + PyTime_t timeout_ns, void *park_arg, int detach) +{ + struct wait_entry wait = { + .park_arg = park_arg, + .addr = (uintptr_t)addr, + .is_unparking = false, + }; + + Bucket *bucket = &buckets[((uintptr_t)addr) % NUM_BUCKETS]; + + _PyRawMutex_Lock(&bucket->mutex); + if (!atomic_memcmp(addr, expected, size)) { + _PyRawMutex_Unlock(&bucket->mutex); + return Py_PARK_AGAIN; + } + _PySemaphore_Init(&wait.sema); + enqueue(bucket, addr, &wait); + _PyRawMutex_Unlock(&bucket->mutex); + + int res = _PySemaphore_Wait(&wait.sema, timeout_ns, detach); + if (res == Py_PARK_OK) { + goto done; + } + + // timeout or interrupt + _PyRawMutex_Lock(&bucket->mutex); + if (wait.is_unparking) { + _PyRawMutex_Unlock(&bucket->mutex); + // Another thread has started to unpark us. Wait until we process the + // wakeup signal. + do { + res = _PySemaphore_Wait(&wait.sema, -1, detach); + } while (res != Py_PARK_OK); + goto done; + } + else { + llist_remove(&wait.node); + --bucket->num_waiters; + } + _PyRawMutex_Unlock(&bucket->mutex); + +done: + _PySemaphore_Destroy(&wait.sema); + return res; + +} + +void +_PyParkingLot_Unpark(const void *addr, _Py_unpark_fn_t *fn, void *arg) +{ + Bucket *bucket = &buckets[((uintptr_t)addr) % NUM_BUCKETS]; + + // Find the first waiter that is waiting on `addr` + _PyRawMutex_Lock(&bucket->mutex); + struct wait_entry *waiter = dequeue(bucket, addr); + if (waiter) { + int has_more_waiters = (bucket->num_waiters > 0); + fn(arg, waiter->park_arg, has_more_waiters); + } + else { + fn(arg, NULL, 0); + } + _PyRawMutex_Unlock(&bucket->mutex); + + if (waiter) { + // Wakeup the waiter outside of the bucket lock + _PySemaphore_Wakeup(&waiter->sema); + } +} + +void +_PyParkingLot_UnparkAll(const void *addr) +{ + struct llist_node head = LLIST_INIT(head); + Bucket *bucket = &buckets[((uintptr_t)addr) % NUM_BUCKETS]; + + _PyRawMutex_Lock(&bucket->mutex); + dequeue_all(bucket, addr, &head); + _PyRawMutex_Unlock(&bucket->mutex); + + struct llist_node *node; + llist_for_each_safe(node, &head) { + struct wait_entry *waiter = llist_data(node, struct wait_entry, node); + llist_remove(node); + _PySemaphore_Wakeup(&waiter->sema); + } +} + +void +_PyParkingLot_AfterFork(void) +{ + // After a fork only one thread remains. That thread cannot be blocked + // so all entries in the parking lot are for dead threads. + memset(buckets, 0, sizeof(buckets)); + for (Py_ssize_t i = 0; i < NUM_BUCKETS; i++) { + llist_init(&buckets[i].root); + } +} diff --git a/contrib/tools/python3/Python/pathconfig.c b/contrib/tools/python3/Python/pathconfig.c index be0f97c4b20..33abaddc1b5 100644 --- a/contrib/tools/python3/Python/pathconfig.c +++ b/contrib/tools/python3/Python/pathconfig.c @@ -1,23 +1,21 @@ /* Path configuration like module_search_path (sys.path) */ #include "Python.h" -#include "marshal.h" // PyMarshal_ReadObjectFromString -#include "osdefs.h" // DELIM -#include "pycore_initconfig.h" -#include "pycore_fileutils.h" +#include "pycore_initconfig.h" // _PyStatus_OK() +#include "pycore_fileutils.h" // _Py_wgetcwd() #include "pycore_pathconfig.h" #include "pycore_pymem.h" // _PyMem_SetDefaultAllocator() #include + +#include "marshal.h" // PyMarshal_ReadObjectFromString +#include "osdefs.h" // DELIM + #ifdef MS_WINDOWS # include // GetFullPathNameW(), MAX_PATH # include # include #endif -#ifdef __cplusplus -extern "C" { -#endif - /* External interface */ @@ -211,7 +209,8 @@ path_out_of_memory(const char *func) _Py_FatalErrorFunc(func, "out of memory"); } -void +// Removed in Python 3.13 API, but kept for the stable ABI +PyAPI_FUNC(void) Py_SetPath(const wchar_t *path) { if (path == NULL) { @@ -297,28 +296,6 @@ Py_SetProgramName(const wchar_t *program_name) } } -void -_Py_SetProgramFullPath(const wchar_t *program_full_path) -{ - int has_value = program_full_path && program_full_path[0]; - - PyMemAllocatorEx old_alloc; - _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc); - - PyMem_RawFree(_Py_path_config.program_full_path); - _Py_path_config.program_full_path = NULL; - - if (has_value) { - _Py_path_config.program_full_path = _PyMem_RawWcsdup(program_full_path); - } - - PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); - - if (has_value && _Py_path_config.program_full_path == NULL) { - path_out_of_memory(__func__); - } -} - wchar_t * Py_GetPath(void) @@ -517,8 +494,3 @@ _PyPathConfig_ComputeSysPath0(const PyWideStringList *argv, PyObject **path0_p) *path0_p = path0_obj; return 1; } - - -#ifdef __cplusplus -} -#endif diff --git a/contrib/tools/python3/Python/perf_jit_trampoline.c b/contrib/tools/python3/Python/perf_jit_trampoline.c new file mode 100644 index 00000000000..a44a74f58df --- /dev/null +++ b/contrib/tools/python3/Python/perf_jit_trampoline.c @@ -0,0 +1,1360 @@ +/* + * Python Perf Trampoline Support - JIT Dump Implementation + * + * This file implements the perf jitdump API for Python's performance profiling + * integration. It allows perf (Linux performance analysis tool) to understand + * and profile dynamically generated Python bytecode by creating JIT dump files + * that perf can inject into its analysis. + * + * + * IMPORTANT: This file exports specific callback functions that are part of + * Python's internal API. Do not modify the function signatures or behavior + * of exported functions without coordinating with the Python core team. + * + * Usually the binary and libraries are mapped in separate region like below: + * + * address -> + * --+---------------------+--//--+---------------------+-- + * | .text | .data | ... | | .text | .data | ... | + * --+---------------------+--//--+---------------------+-- + * myprog libc.so + * + * So it'd be easy and straight-forward to find a mapped binary or library from an + * address. + * + * But for JIT code, the code arena only cares about the code section. But the + * resulting DSOs (which is generated by perf inject -j) contain ELF headers and + * unwind info too. Then it'd generate following address space with synthesized + * MMAP events. Let's say it has a sample between address B and C. + * + * sample + * | + * address -> A B v C + * --------------------------------------------------------------------------------------------------- + * /tmp/jitted-PID-0.so | (headers) | .text | unwind info | + * /tmp/jitted-PID-1.so | (headers) | .text | unwind info | + * /tmp/jitted-PID-2.so | (headers) | .text | unwind info | + * ... + * --------------------------------------------------------------------------------------------------- + * + * If it only maps the .text section, it'd find the jitted-PID-1.so but cannot see + * the unwind info. If it maps both .text section and unwind sections, the sample + * could be mapped to either jitted-PID-0.so or jitted-PID-1.so and it's confusing + * which one is right. So to make perf happy we have non-overlapping ranges for each + * DSO: + * + * address -> + * ------------------------------------------------------------------------------------------------------- + * /tmp/jitted-PID-0.so | (headers) | .text | unwind info | + * /tmp/jitted-PID-1.so | (headers) | .text | unwind info | + * /tmp/jitted-PID-2.so | (headers) | .text | unwind info | + * ... + * ------------------------------------------------------------------------------------------------------- + * + * As the trampolines are constant, we add a constant padding but in general the padding needs to have the + * size of the unwind info rounded to 16 bytes. In general, for our trampolines this is 0x50 + */ + + + +#include "Python.h" +#include "pycore_ceval.h" // _PyPerf_Callbacks +#include "pycore_frame.h" +#include "pycore_interp.h" + +#ifdef PY_HAVE_PERF_TRAMPOLINE + +/* Standard library includes for perf jitdump implementation */ +#include // ELF architecture constants +#include // File control operations +#include // Standard I/O operations +#include // Standard library functions +#include // Memory mapping functions (mmap) +#include // System data types +#include // System calls (sysconf, getpid) +#include // Time functions (gettimeofday) +#include // System call interface + +// ============================================================================= +// CONSTANTS AND CONFIGURATION +// ============================================================================= + +/* + * Memory layout considerations for perf jitdump: + * + * Perf expects non-overlapping memory regions for each JIT-compiled function. + * When perf processes the jitdump file, it creates synthetic DSO (Dynamic + * Shared Object) files that contain: + * - ELF headers + * - .text section (actual machine code) + * - Unwind information (for stack traces) + * + * To ensure proper address space layout, we add padding between code regions. + * This prevents address conflicts when perf maps the synthesized DSOs. + * + * Memory layout example: + * /tmp/jitted-PID-0.so: [headers][.text][unwind_info][padding] + * /tmp/jitted-PID-1.so: [headers][.text][unwind_info][padding] + * + * The padding size is now calculated automatically during initialization + * based on the actual unwind information requirements. + */ + +/* Convenient access to the global trampoline API state */ +#define trampoline_api _PyRuntime.ceval.perf.trampoline_api + +/* Type aliases for clarity and portability */ +typedef uint64_t uword; // Word-sized unsigned integer +typedef const char* CodeComments; // Code comment strings + +/* Memory size constants */ +#define MB (1024 * 1024) // 1 Megabyte for buffer sizing + +// ============================================================================= +// ARCHITECTURE-SPECIFIC DEFINITIONS +// ============================================================================= + +/* + * Returns the ELF machine architecture constant for the current platform. + * This is required for the jitdump header to correctly identify the target + * architecture for perf processing. + * + */ +static uint64_t GetElfMachineArchitecture(void) { +#if defined(__x86_64__) || defined(_M_X64) + return EM_X86_64; +#elif defined(__i386__) || defined(_M_IX86) + return EM_386; +#elif defined(__aarch64__) + return EM_AARCH64; +#elif defined(__arm__) || defined(_M_ARM) + return EM_ARM; +#elif defined(__riscv) + return EM_RISCV; +#else + Py_UNREACHABLE(); // Unsupported architecture - should never reach here + return 0; +#endif +} + +// ============================================================================= +// PERF JITDUMP DATA STRUCTURES +// ============================================================================= + +/* + * Perf jitdump file format structures + * + * These structures define the binary format that perf expects for JIT dump files. + * The format is documented in the Linux perf tools source code and must match + * exactly for proper perf integration. + */ + +/* + * Jitdump file header - written once at the beginning of each jitdump file + * Contains metadata about the process and jitdump format version + */ +typedef struct { + uint32_t magic; // Magic number (0x4A695444 = "JiTD") + uint32_t version; // Jitdump format version (currently 1) + uint32_t size; // Size of this header structure + uint32_t elf_mach_target; // Target architecture (from GetElfMachineArchitecture) + uint32_t reserved; // Reserved field (must be 0) + uint32_t process_id; // Process ID of the JIT compiler + uint64_t time_stamp; // Timestamp when jitdump was created + uint64_t flags; // Feature flags (currently unused) +} Header; + +/* + * Perf event types supported by the jitdump format + * Each event type has a corresponding structure format + */ +enum PerfEvent { + PerfLoad = 0, // Code load event (new JIT function) + PerfMove = 1, // Code move event (function relocated) + PerfDebugInfo = 2, // Debug information event + PerfClose = 3, // JIT session close event + PerfUnwindingInfo = 4 // Stack unwinding information event +}; + +/* + * Base event structure - common header for all perf events + * Every event in the jitdump file starts with this structure + */ +struct BaseEvent { + uint32_t event; // Event type (from PerfEvent enum) + uint32_t size; // Total size of this event including payload + uint64_t time_stamp; // Timestamp when event occurred +}; + +/* + * Code load event - indicates a new JIT-compiled function is available + * This is the most important event type for Python profiling + */ +typedef struct { + struct BaseEvent base; // Common event header + uint32_t process_id; // Process ID where code was generated + uint32_t thread_id; // Thread ID where code was generated + uint64_t vma; // Virtual memory address where code is loaded + uint64_t code_address; // Address of the actual machine code + uint64_t code_size; // Size of the machine code in bytes + uint64_t code_id; // Unique identifier for this code region + /* Followed by: + * - null-terminated function name string + * - raw machine code bytes + */ +} CodeLoadEvent; + +/* + * Code unwinding information event - provides DWARF data for stack traces + * Essential for proper stack unwinding during profiling + */ +typedef struct { + struct BaseEvent base; // Common event header + uint64_t unwind_data_size; // Size of the unwinding data + uint64_t eh_frame_hdr_size; // Size of the EH frame header + uint64_t mapped_size; // Total mapped size (with padding) + /* Followed by: + * - EH frame header + * - DWARF unwinding information + * - Padding to alignment boundary + */ +} CodeUnwindingInfoEvent; + +// ============================================================================= +// GLOBAL STATE MANAGEMENT +// ============================================================================= + +/* + * Global state for the perf jitdump implementation + * + * This structure maintains all the state needed for generating jitdump files. + * It's designed as a singleton since there's typically only one jitdump file + * per Python process. + */ +typedef struct { + FILE* perf_map; // File handle for the jitdump file + PyThread_type_lock map_lock; // Thread synchronization lock + void* mapped_buffer; // Memory-mapped region (signals perf we're active) + size_t mapped_size; // Size of the mapped region + int code_id; // Counter for unique code region identifiers +} PerfMapJitState; + +/* Global singleton instance */ +static PerfMapJitState perf_jit_map_state; + +// ============================================================================= +// TIME UTILITIES +// ============================================================================= + +/* Time conversion constant */ +static const intptr_t nanoseconds_per_second = 1000000000; + +/* + * Get current monotonic time in nanoseconds + * + * Monotonic time is preferred for event timestamps because it's not affected + * by system clock adjustments. This ensures consistent timing relationships + * between events even if the system clock is changed. + * + * Returns: Current monotonic time in nanoseconds since an arbitrary epoch + */ +static int64_t get_current_monotonic_ticks(void) { + struct timespec ts; + if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) { + Py_UNREACHABLE(); // Should never fail on supported systems + return 0; + } + + /* Convert to nanoseconds for maximum precision */ + int64_t result = ts.tv_sec; + result *= nanoseconds_per_second; + result += ts.tv_nsec; + return result; +} + +/* + * Get current wall clock time in microseconds + * + * Used for the jitdump file header timestamp. Unlike monotonic time, + * this represents actual wall clock time that can be correlated with + * other system events. + * + * Returns: Current time in microseconds since Unix epoch + */ +static int64_t get_current_time_microseconds(void) { + struct timeval tv; + if (gettimeofday(&tv, NULL) < 0) { + Py_UNREACHABLE(); // Should never fail on supported systems + return 0; + } + return ((int64_t)(tv.tv_sec) * 1000000) + tv.tv_usec; +} + +// ============================================================================= +// UTILITY FUNCTIONS +// ============================================================================= + +/* + * Round up a value to the next multiple of a given number + * + * This is essential for maintaining proper alignment requirements in the + * jitdump format. Many structures need to be aligned to specific boundaries + * (typically 8 or 16 bytes) for efficient processing by perf. + * + * Args: + * value: The value to round up + * multiple: The multiple to round up to + * + * Returns: The smallest value >= input that is a multiple of 'multiple' + */ +static size_t round_up(int64_t value, int64_t multiple) { + if (multiple == 0) { + return value; // Avoid division by zero + } + + int64_t remainder = value % multiple; + if (remainder == 0) { + return value; // Already aligned + } + + /* Calculate how much to add to reach the next multiple */ + int64_t difference = multiple - remainder; + int64_t rounded_up_value = value + difference; + + return rounded_up_value; +} + +// ============================================================================= +// FILE I/O UTILITIES +// ============================================================================= + +/* + * Write data to the jitdump file with error handling + * + * This function ensures that all data is written to the file, handling + * partial writes that can occur with large buffers or when the system + * is under load. + * + * Args: + * buffer: Pointer to data to write + * size: Number of bytes to write + */ +static void perf_map_jit_write_fully(const void* buffer, size_t size) { + FILE* out_file = perf_jit_map_state.perf_map; + const char* ptr = (const char*)(buffer); + + while (size > 0) { + const size_t written = fwrite(ptr, 1, size, out_file); + if (written == 0) { + Py_UNREACHABLE(); // Write failure - should be very rare + break; + } + size -= written; + ptr += written; + } +} + +/* + * Write the jitdump file header + * + * The header must be written exactly once at the beginning of each jitdump + * file. It provides metadata that perf uses to parse the rest of the file. + * + * Args: + * pid: Process ID to include in the header + * out_file: File handle to write to (currently unused, uses global state) + */ +static void perf_map_jit_write_header(int pid, FILE* out_file) { + Header header; + + /* Initialize header with required values */ + header.magic = 0x4A695444; // "JiTD" magic number + header.version = 1; // Current jitdump version + header.size = sizeof(Header); // Header size for validation + header.elf_mach_target = GetElfMachineArchitecture(); // Target architecture + header.process_id = pid; // Process identifier + header.time_stamp = get_current_time_microseconds(); // Creation time + header.flags = 0; // No special flags currently used + + perf_map_jit_write_fully(&header, sizeof(header)); +} + +// ============================================================================= +// DWARF CONSTANTS AND UTILITIES +// ============================================================================= + +/* + * DWARF (Debug With Arbitrary Record Formats) constants + * + * DWARF is a debugging data format used to provide stack unwinding information. + * These constants define the various encoding types and opcodes used in + * DWARF Call Frame Information (CFI) records. + */ + +/* DWARF Call Frame Information version */ +#define DWRF_CIE_VERSION 1 + +/* DWARF CFA (Call Frame Address) opcodes */ +enum { + DWRF_CFA_nop = 0x0, // No operation + DWRF_CFA_offset_extended = 0x5, // Extended offset instruction + DWRF_CFA_def_cfa = 0xc, // Define CFA rule + DWRF_CFA_def_cfa_register = 0xd, // Define CFA register + DWRF_CFA_def_cfa_offset = 0xe, // Define CFA offset + DWRF_CFA_offset_extended_sf = 0x11, // Extended signed offset + DWRF_CFA_advance_loc = 0x40, // Advance location counter + DWRF_CFA_offset = 0x80, // Simple offset instruction + DWRF_CFA_restore = 0xc0 // Restore register +}; + +/* DWARF Exception Handling pointer encodings */ +enum { + DWRF_EH_PE_absptr = 0x00, // Absolute pointer + DWRF_EH_PE_omit = 0xff, // Omitted value + + /* Data type encodings */ + DWRF_EH_PE_uleb128 = 0x01, // Unsigned LEB128 + DWRF_EH_PE_udata2 = 0x02, // Unsigned 2-byte + DWRF_EH_PE_udata4 = 0x03, // Unsigned 4-byte + DWRF_EH_PE_udata8 = 0x04, // Unsigned 8-byte + DWRF_EH_PE_sleb128 = 0x09, // Signed LEB128 + DWRF_EH_PE_sdata2 = 0x0a, // Signed 2-byte + DWRF_EH_PE_sdata4 = 0x0b, // Signed 4-byte + DWRF_EH_PE_sdata8 = 0x0c, // Signed 8-byte + DWRF_EH_PE_signed = 0x08, // Signed flag + + /* Reference type encodings */ + DWRF_EH_PE_pcrel = 0x10, // PC-relative + DWRF_EH_PE_textrel = 0x20, // Text-relative + DWRF_EH_PE_datarel = 0x30, // Data-relative + DWRF_EH_PE_funcrel = 0x40, // Function-relative + DWRF_EH_PE_aligned = 0x50, // Aligned + DWRF_EH_PE_indirect = 0x80 // Indirect +}; + +/* Additional DWARF constants for debug information */ +enum { DWRF_TAG_compile_unit = 0x11 }; +enum { DWRF_children_no = 0, DWRF_children_yes = 1 }; +enum { + DWRF_AT_name = 0x03, // Name attribute + DWRF_AT_stmt_list = 0x10, // Statement list + DWRF_AT_low_pc = 0x11, // Low PC address + DWRF_AT_high_pc = 0x12 // High PC address +}; +enum { + DWRF_FORM_addr = 0x01, // Address form + DWRF_FORM_data4 = 0x06, // 4-byte data + DWRF_FORM_string = 0x08 // String form +}; + +/* Line number program opcodes */ +enum { + DWRF_LNS_extended_op = 0, // Extended opcode + DWRF_LNS_copy = 1, // Copy operation + DWRF_LNS_advance_pc = 2, // Advance program counter + DWRF_LNS_advance_line = 3 // Advance line number +}; + +/* Line number extended opcodes */ +enum { + DWRF_LNE_end_sequence = 1, // End of sequence + DWRF_LNE_set_address = 2 // Set address +}; + +/* + * Architecture-specific DWARF register numbers + * + * These constants define the register numbering scheme used by DWARF + * for each supported architecture. The numbers must match the ABI + * specification for proper stack unwinding. + */ +enum { +#ifdef __x86_64__ + /* x86_64 register numbering (note: order is defined by x86_64 ABI) */ + DWRF_REG_AX, // RAX + DWRF_REG_DX, // RDX + DWRF_REG_CX, // RCX + DWRF_REG_BX, // RBX + DWRF_REG_SI, // RSI + DWRF_REG_DI, // RDI + DWRF_REG_BP, // RBP + DWRF_REG_SP, // RSP + DWRF_REG_8, // R8 + DWRF_REG_9, // R9 + DWRF_REG_10, // R10 + DWRF_REG_11, // R11 + DWRF_REG_12, // R12 + DWRF_REG_13, // R13 + DWRF_REG_14, // R14 + DWRF_REG_15, // R15 + DWRF_REG_RA, // Return address (RIP) +#elif defined(__aarch64__) && defined(__AARCH64EL__) && !defined(__ILP32__) + /* AArch64 register numbering */ + DWRF_REG_FP = 29, // Frame Pointer + DWRF_REG_RA = 30, // Link register (return address) + DWRF_REG_SP = 31, // Stack pointer +#else +# error "Unsupported target architecture" +#endif +}; + +/* DWARF encoding constants used in EH frame headers */ +static const uint8_t DwarfUData4 = 0x03; // Unsigned 4-byte data +static const uint8_t DwarfSData4 = 0x0b; // Signed 4-byte data +static const uint8_t DwarfPcRel = 0x10; // PC-relative encoding +static const uint8_t DwarfDataRel = 0x30; // Data-relative encoding + +// ============================================================================= +// ELF OBJECT CONTEXT +// ============================================================================= + +/* + * Context for building ELF/DWARF structures + * + * This structure maintains state while constructing DWARF unwind information. + * It acts as a simple buffer manager with pointers to track current position + * and important landmarks within the buffer. + */ +typedef struct ELFObjectContext { + uint8_t* p; // Current write position in buffer + uint8_t* startp; // Start of buffer (for offset calculations) + uint8_t* eh_frame_p; // Start of EH frame data (for relative offsets) + uint8_t* fde_p; // Start of FDE data (for PC-relative calculations) + uint32_t code_size; // Size of the code being described +} ELFObjectContext; + +/* + * EH Frame Header structure for DWARF unwinding + * + * This structure provides metadata about the DWARF unwinding information + * that follows. It's required by the perf jitdump format to enable proper + * stack unwinding during profiling. + */ +typedef struct { + unsigned char version; // EH frame version (always 1) + unsigned char eh_frame_ptr_enc; // Encoding of EH frame pointer + unsigned char fde_count_enc; // Encoding of FDE count + unsigned char table_enc; // Encoding of table entries + int32_t eh_frame_ptr; // Pointer to EH frame data + int32_t eh_fde_count; // Number of FDEs (Frame Description Entries) + int32_t from; // Start address of code range + int32_t to; // End address of code range +} EhFrameHeader; + +// ============================================================================= +// DWARF GENERATION UTILITIES +// ============================================================================= + +/* + * Append a null-terminated string to the ELF context buffer + * + * Args: + * ctx: ELF object context + * str: String to append (must be null-terminated) + * + * Returns: Offset from start of buffer where string was written + */ +static uint32_t elfctx_append_string(ELFObjectContext* ctx, const char* str) { + uint8_t* p = ctx->p; + uint32_t ofs = (uint32_t)(p - ctx->startp); + + /* Copy string including null terminator */ + do { + *p++ = (uint8_t)*str; + } while (*str++); + + ctx->p = p; + return ofs; +} + +/* + * Append a SLEB128 (Signed Little Endian Base 128) value + * + * SLEB128 is a variable-length encoding used extensively in DWARF. + * It efficiently encodes small numbers in fewer bytes. + * + * Args: + * ctx: ELF object context + * v: Signed value to encode + */ +static void elfctx_append_sleb128(ELFObjectContext* ctx, int32_t v) { + uint8_t* p = ctx->p; + + /* Encode 7 bits at a time, with continuation bit in MSB */ + for (; (uint32_t)(v + 0x40) >= 0x80; v >>= 7) { + *p++ = (uint8_t)((v & 0x7f) | 0x80); // Set continuation bit + } + *p++ = (uint8_t)(v & 0x7f); // Final byte without continuation bit + + ctx->p = p; +} + +/* + * Append a ULEB128 (Unsigned Little Endian Base 128) value + * + * Similar to SLEB128 but for unsigned values. + * + * Args: + * ctx: ELF object context + * v: Unsigned value to encode + */ +static void elfctx_append_uleb128(ELFObjectContext* ctx, uint32_t v) { + uint8_t* p = ctx->p; + + /* Encode 7 bits at a time, with continuation bit in MSB */ + for (; v >= 0x80; v >>= 7) { + *p++ = (char)((v & 0x7f) | 0x80); // Set continuation bit + } + *p++ = (char)v; // Final byte without continuation bit + + ctx->p = p; +} + +/* + * Macros for generating DWARF structures + * + * These macros provide a convenient way to write various data types + * to the DWARF buffer while automatically advancing the pointer. + */ +#define DWRF_U8(x) (*p++ = (x)) // Write unsigned 8-bit +#define DWRF_I8(x) (*(int8_t*)p = (x), p++) // Write signed 8-bit +#define DWRF_U16(x) (*(uint16_t*)p = (x), p += 2) // Write unsigned 16-bit +#define DWRF_U32(x) (*(uint32_t*)p = (x), p += 4) // Write unsigned 32-bit +#define DWRF_ADDR(x) (*(uintptr_t*)p = (x), p += sizeof(uintptr_t)) // Write address +#define DWRF_UV(x) (ctx->p = p, elfctx_append_uleb128(ctx, (x)), p = ctx->p) // Write ULEB128 +#define DWRF_SV(x) (ctx->p = p, elfctx_append_sleb128(ctx, (x)), p = ctx->p) // Write SLEB128 +#define DWRF_STR(str) (ctx->p = p, elfctx_append_string(ctx, (str)), p = ctx->p) // Write string + +/* Align to specified boundary with NOP instructions */ +#define DWRF_ALIGNNOP(s) \ + while ((uintptr_t)p & ((s)-1)) { \ + *p++ = DWRF_CFA_nop; \ + } + +/* Write a DWARF section with automatic size calculation */ +#define DWRF_SECTION(name, stmt) \ + { \ + uint32_t* szp_##name = (uint32_t*)p; \ + p += 4; \ + stmt; \ + *szp_##name = (uint32_t)((p - (uint8_t*)szp_##name) - 4); \ + } + +// ============================================================================= +// DWARF EH FRAME GENERATION +// ============================================================================= + +static void elf_init_ehframe(ELFObjectContext* ctx); + +/* + * Initialize DWARF .eh_frame section for a code region + * + * The .eh_frame section contains Call Frame Information (CFI) that describes + * how to unwind the stack at any point in the code. This is essential for + * proper profiling as it allows perf to generate accurate call graphs. + * + * The function generates two main components: + * 1. CIE (Common Information Entry) - describes calling conventions + * 2. FDE (Frame Description Entry) - describes specific function unwinding + * + * Args: + * ctx: ELF object context containing code size and buffer pointers + */ +static size_t calculate_eh_frame_size(void) { + /* Calculate the EH frame size for the trampoline function */ + extern void *_Py_trampoline_func_start; + extern void *_Py_trampoline_func_end; + + size_t code_size = (char*)&_Py_trampoline_func_end - (char*)&_Py_trampoline_func_start; + + ELFObjectContext ctx; + char buffer[1024]; // Buffer for DWARF data (1KB should be sufficient) + ctx.code_size = code_size; + ctx.startp = ctx.p = (uint8_t*)buffer; + ctx.fde_p = NULL; + + elf_init_ehframe(&ctx); + return ctx.p - ctx.startp; +} + +static void elf_init_ehframe(ELFObjectContext* ctx) { + uint8_t* p = ctx->p; + uint8_t* framep = p; // Remember start of frame data + + /* + * DWARF Unwind Table for Trampoline Function + * + * This section defines DWARF Call Frame Information (CFI) using encoded macros + * like `DWRF_U8`, `DWRF_UV`, and `DWRF_SECTION` to describe how the trampoline function + * preserves and restores registers. This is used by profiling tools (e.g., `perf`) + * and debuggers for stack unwinding in JIT-compiled code. + * + * ------------------------------------------------- + * TO REGENERATE THIS TABLE FROM GCC OBJECTS: + * ------------------------------------------------- + * + * 1. Create a trampoline source file (e.g., `trampoline.c`): + * + * #include + * typedef PyObject* (*py_evaluator)(void*, void*, int); + * PyObject* trampoline(void *ts, void *f, int throwflag, py_evaluator evaluator) { + * return evaluator(ts, f, throwflag); + * } + * + * 2. Compile to an object file with frame pointer preservation: + * + * gcc trampoline.c -I. -I./Include -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -c + * + * 3. Extract DWARF unwind info from the object file: + * + * readelf -w trampoline.o + * + * Example output from `.eh_frame`: + * + * 00000000 CIE + * Version: 1 + * Augmentation: "zR" + * Code alignment factor: 4 + * Data alignment factor: -8 + * Return address column: 30 + * DW_CFA_def_cfa: r31 (sp) ofs 0 + * + * 00000014 FDE cie=00000000 pc=0..14 + * DW_CFA_advance_loc: 4 + * DW_CFA_def_cfa_offset: 16 + * DW_CFA_offset: r29 at cfa-16 + * DW_CFA_offset: r30 at cfa-8 + * DW_CFA_advance_loc: 12 + * DW_CFA_restore: r30 + * DW_CFA_restore: r29 + * DW_CFA_def_cfa_offset: 0 + * + * -- These values can be verified by comparing with `readelf -w` or `llvm-dwarfdump --eh-frame`. + * + * ---------------------------------- + * HOW TO TRANSLATE TO DWRF_* MACROS: + * ---------------------------------- + * + * After compiling your trampoline with: + * + * gcc trampoline.c -I. -I./Include -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -c + * + * run: + * + * readelf -w trampoline.o + * + * to inspect the generated `.eh_frame` data. You will see two main components: + * + * 1. A CIE (Common Information Entry): shared configuration used by all FDEs. + * 2. An FDE (Frame Description Entry): function-specific unwind instructions. + * + * --------------------- + * Translating the CIE: + * --------------------- + * From `readelf -w`, you might see: + * + * 00000000 0000000000000010 00000000 CIE + * Version: 1 + * Augmentation: "zR" + * Code alignment factor: 4 + * Data alignment factor: -8 + * Return address column: 30 + * Augmentation data: 1b + * DW_CFA_def_cfa: r31 (sp) ofs 0 + * + * Map this to: + * + * DWRF_SECTION(CIE, + * DWRF_U32(0); // CIE ID (always 0 for CIEs) + * DWRF_U8(DWRF_CIE_VERSION); // Version: 1 + * DWRF_STR("zR"); // Augmentation string "zR" + * DWRF_UV(4); // Code alignment factor = 4 + * DWRF_SV(-8); // Data alignment factor = -8 + * DWRF_U8(DWRF_REG_RA); // Return address register (e.g., x30 = 30) + * DWRF_UV(1); // Augmentation data length = 1 + * DWRF_U8(DWRF_EH_PE_pcrel | DWRF_EH_PE_sdata4); // Encoding for FDE pointers + * + * DWRF_U8(DWRF_CFA_def_cfa); // DW_CFA_def_cfa + * DWRF_UV(DWRF_REG_SP); // Register: SP (r31) + * DWRF_UV(0); // Offset = 0 + * + * DWRF_ALIGNNOP(sizeof(uintptr_t)); // Align to pointer size boundary + * ) + * + * Notes: + * - Use `DWRF_UV` for unsigned LEB128, `DWRF_SV` for signed LEB128. + * - `DWRF_REG_RA` and `DWRF_REG_SP` are architecture-defined constants. + * + * --------------------- + * Translating the FDE: + * --------------------- + * From `readelf -w`: + * + * 00000014 0000000000000020 00000018 FDE cie=00000000 pc=0000000000000000..0000000000000014 + * DW_CFA_advance_loc: 4 + * DW_CFA_def_cfa_offset: 16 + * DW_CFA_offset: r29 at cfa-16 + * DW_CFA_offset: r30 at cfa-8 + * DW_CFA_advance_loc: 12 + * DW_CFA_restore: r30 + * DW_CFA_restore: r29 + * DW_CFA_def_cfa_offset: 0 + * + * Map the FDE header and instructions to: + * + * DWRF_SECTION(FDE, + * DWRF_U32((uint32_t)(p - framep)); // Offset to CIE (relative from here) + * DWRF_U32(pc_relative_offset); // PC-relative location of the code (calculated dynamically) + * DWRF_U32(ctx->code_size); // Code range covered by this FDE + * DWRF_U8(0); // Augmentation data length (none) + * + * DWRF_U8(DWRF_CFA_advance_loc | 1); // Advance location by 1 unit (1 * 4 = 4 bytes) + * DWRF_U8(DWRF_CFA_def_cfa_offset); // CFA = SP + 16 + * DWRF_UV(16); + * + * DWRF_U8(DWRF_CFA_offset | DWRF_REG_FP); // Save x29 (frame pointer) + * DWRF_UV(2); // At offset 2 * 8 = 16 bytes + * + * DWRF_U8(DWRF_CFA_offset | DWRF_REG_RA); // Save x30 (return address) + * DWRF_UV(1); // At offset 1 * 8 = 8 bytes + * + * DWRF_U8(DWRF_CFA_advance_loc | 3); // Advance location by 3 units (3 * 4 = 12 bytes) + * + * DWRF_U8(DWRF_CFA_offset | DWRF_REG_RA); // Restore x30 + * DWRF_U8(DWRF_CFA_offset | DWRF_REG_FP); // Restore x29 + * + * DWRF_U8(DWRF_CFA_def_cfa_offset); // CFA = SP + * DWRF_UV(0); + * ) + * + * To regenerate: + * 1. Get the `code alignment factor`, `data alignment factor`, and `RA column` from the CIE. + * 2. Note the range of the function from the FDE's `pc=...` line and map it to the JIT code as + * the code is in a different address space every time. + * 3. For each `DW_CFA_*` entry, use the corresponding `DWRF_*` macro: + * - `DW_CFA_def_cfa_offset` → DWRF_U8(DWRF_CFA_def_cfa_offset), DWRF_UV(value) + * - `DW_CFA_offset: rX` → DWRF_U8(DWRF_CFA_offset | reg), DWRF_UV(offset) + * - `DW_CFA_restore: rX` → DWRF_U8(DWRF_CFA_offset | reg) // restore is same as reusing offset + * - `DW_CFA_advance_loc: N` → DWRF_U8(DWRF_CFA_advance_loc | (N / code_alignment_factor)) + * 4. Use `DWRF_REG_FP`, `DWRF_REG_RA`, etc., for register numbers. + * 5. Use `sizeof(uintptr_t)` (typically 8) for pointer size calculations and alignment. + */ + + /* + * Emit DWARF EH CIE (Common Information Entry) + * + * The CIE describes the calling conventions and basic unwinding rules + * that apply to all functions in this compilation unit. + */ + DWRF_SECTION(CIE, + DWRF_U32(0); // CIE ID (0 indicates this is a CIE) + DWRF_U8(DWRF_CIE_VERSION); // CIE version (1) + DWRF_STR("zR"); // Augmentation string ("zR" = has LSDA) +#ifdef __x86_64__ + DWRF_UV(1); // Code alignment factor (x86_64: 1 byte) +#elif defined(__aarch64__) && defined(__AARCH64EL__) && !defined(__ILP32__) + DWRF_UV(4); // Code alignment factor (AArch64: 4 bytes per instruction) +#endif + DWRF_SV(-(int64_t)sizeof(uintptr_t)); // Data alignment factor (negative) + DWRF_U8(DWRF_REG_RA); // Return address register number + DWRF_UV(1); // Augmentation data length + DWRF_U8(DWRF_EH_PE_pcrel | DWRF_EH_PE_sdata4); // FDE pointer encoding + + /* Initial CFI instructions - describe default calling convention */ +#ifdef __x86_64__ + /* x86_64 initial CFI state */ + DWRF_U8(DWRF_CFA_def_cfa); // Define CFA (Call Frame Address) + DWRF_UV(DWRF_REG_SP); // CFA = SP register + DWRF_UV(sizeof(uintptr_t)); // CFA = SP + pointer_size + DWRF_U8(DWRF_CFA_offset|DWRF_REG_RA); // Return address is saved + DWRF_UV(1); // At offset 1 from CFA +#elif defined(__aarch64__) && defined(__AARCH64EL__) && !defined(__ILP32__) + /* AArch64 initial CFI state */ + DWRF_U8(DWRF_CFA_def_cfa); // Define CFA (Call Frame Address) + DWRF_UV(DWRF_REG_SP); // CFA = SP register + DWRF_UV(0); // CFA = SP + 0 (AArch64 starts with offset 0) + // No initial register saves in AArch64 CIE +#endif + DWRF_ALIGNNOP(sizeof(uintptr_t)); // Align to pointer boundary + ) + + ctx->eh_frame_p = p; // Remember start of FDE data + + /* + * Emit DWARF EH FDE (Frame Description Entry) + * + * The FDE describes unwinding information specific to this function. + * It references the CIE and provides function-specific CFI instructions. + * + * The PC-relative offset is calculated after the entire EH frame is built + * to ensure accurate positioning relative to the synthesized DSO layout. + */ + DWRF_SECTION(FDE, + DWRF_U32((uint32_t)(p - framep)); // Offset to CIE (backwards reference) + ctx->fde_p = p; // Remember where PC offset field is located for later calculation + DWRF_U32(0); // Placeholder for PC-relative offset (calculated at end of elf_init_ehframe) + DWRF_U32(ctx->code_size); // Address range covered by this FDE (code length) + DWRF_U8(0); // Augmentation data length (none) + + /* + * Architecture-specific CFI instructions + * + * These instructions describe how registers are saved and restored + * during function calls. Each architecture has different calling + * conventions and register usage patterns. + */ +#ifdef __x86_64__ + /* x86_64 calling convention unwinding rules with frame pointer */ +# if defined(__CET__) && (__CET__ & 1) + DWRF_U8(DWRF_CFA_advance_loc | 4); // Advance past endbr64 (4 bytes) +# endif + DWRF_U8(DWRF_CFA_advance_loc | 1); // Advance past push %rbp (1 byte) + DWRF_U8(DWRF_CFA_def_cfa_offset); // def_cfa_offset 16 + DWRF_UV(16); // New offset: SP + 16 + DWRF_U8(DWRF_CFA_offset | DWRF_REG_BP); // offset r6 at cfa-16 + DWRF_UV(2); // Offset factor: 2 * 8 = 16 bytes + DWRF_U8(DWRF_CFA_advance_loc | 3); // Advance past mov %rsp,%rbp (3 bytes) + DWRF_U8(DWRF_CFA_def_cfa_register); // def_cfa_register r6 + DWRF_UV(DWRF_REG_BP); // Use base pointer register + DWRF_U8(DWRF_CFA_advance_loc | 3); // Advance past call *%rcx (2 bytes) + pop %rbp (1 byte) = 3 + DWRF_U8(DWRF_CFA_def_cfa); // def_cfa r7 ofs 8 + DWRF_UV(DWRF_REG_SP); // Use stack pointer register + DWRF_UV(8); // New offset: SP + 8 +#elif defined(__aarch64__) && defined(__AARCH64EL__) && !defined(__ILP32__) + /* AArch64 calling convention unwinding rules */ + DWRF_U8(DWRF_CFA_advance_loc | 1); // Advance by 1 instruction (4 bytes) + DWRF_U8(DWRF_CFA_def_cfa_offset); // CFA = SP + 16 + DWRF_UV(16); // Stack pointer moved by 16 bytes + DWRF_U8(DWRF_CFA_offset | DWRF_REG_FP); // x29 (frame pointer) saved + DWRF_UV(2); // At CFA-16 (2 * 8 = 16 bytes from CFA) + DWRF_U8(DWRF_CFA_offset | DWRF_REG_RA); // x30 (link register) saved + DWRF_UV(1); // At CFA-8 (1 * 8 = 8 bytes from CFA) + DWRF_U8(DWRF_CFA_advance_loc | 3); // Advance by 3 instructions (12 bytes) + DWRF_U8(DWRF_CFA_restore | DWRF_REG_RA); // Restore x30 - NO DWRF_UV() after this! + DWRF_U8(DWRF_CFA_restore | DWRF_REG_FP); // Restore x29 - NO DWRF_UV() after this! + DWRF_U8(DWRF_CFA_def_cfa_offset); // CFA = SP + 0 (stack restored) + DWRF_UV(0); // Back to original stack position +#else +# error "Unsupported target architecture" +#endif + + DWRF_ALIGNNOP(sizeof(uintptr_t)); // Align to pointer boundary + ) + + ctx->p = p; // Update context pointer to end of generated data + + /* Calculate and update the PC-relative offset in the FDE + * + * When perf processes the jitdump, it creates a synthesized DSO with this layout: + * + * Synthesized DSO Memory Layout: + * ┌─────────────────────────────────────────────────────────────┐ < code_start + * │ Code Section │ + * │ (round_up(code_size, 8) bytes) │ + * ├─────────────────────────────────────────────────────────────┤ < start of EH frame data + * │ EH Frame Data │ + * │ ┌─────────────────────────────────────────────────────┐ │ + * │ │ CIE data │ │ + * │ └─────────────────────────────────────────────────────┘ │ + * │ ┌─────────────────────────────────────────────────────┐ │ + * │ │ FDE Header: │ │ + * │ │ - CIE offset (4 bytes) │ │ + * │ │ - PC offset (4 bytes) <─ fde_offset_in_frame ─────┼────┼─> points to code_start + * │ │ - address range (4 bytes) │ │ (this specific field) + * │ │ CFI Instructions... │ │ + * │ └─────────────────────────────────────────────────────┘ │ + * ├─────────────────────────────────────────────────────────────┤ < reference_point + * │ EhFrameHeader │ + * │ (navigation metadata) │ + * └─────────────────────────────────────────────────────────────┘ + * + * The PC offset field in the FDE must contain the distance from itself to code_start: + * + * distance = code_start - fde_pc_field + * + * Where: + * fde_pc_field_location = reference_point - eh_frame_size + fde_offset_in_frame + * code_start_location = reference_point - eh_frame_size - round_up(code_size, 8) + * + * Therefore: + * distance = code_start_location - fde_pc_field_location + * = (ref - eh_frame_size - rounded_code_size) - (ref - eh_frame_size + fde_offset_in_frame) + * = -rounded_code_size - fde_offset_in_frame + * = -(round_up(code_size, 8) + fde_offset_in_frame) + * + * Note: fde_offset_in_frame is the offset from EH frame start to the PC offset field, + * + */ + if (ctx->fde_p != NULL) { + int32_t fde_offset_in_frame = (ctx->fde_p - ctx->startp); + int32_t rounded_code_size = round_up(ctx->code_size, 8); + int32_t pc_relative_offset = -(rounded_code_size + fde_offset_in_frame); + + + // Update the PC-relative offset in the FDE + *(int32_t*)ctx->fde_p = pc_relative_offset; + } +} + +// ============================================================================= +// JITDUMP INITIALIZATION +// ============================================================================= + +/* + * Initialize the perf jitdump interface + * + * This function sets up everything needed to generate jitdump files: + * 1. Creates the jitdump file with a unique name + * 2. Maps the first page to signal perf that we're using the interface + * 3. Writes the jitdump header + * 4. Initializes synchronization primitives + * + * The memory mapping is crucial - perf detects jitdump files by scanning + * for processes that have mapped files matching the pattern /tmp/jit-*.dump + * + * Returns: Pointer to initialized state, or NULL on failure + */ +static void* perf_map_jit_init(void) { + char filename[100]; + int pid = getpid(); + + /* Create unique filename based on process ID */ + snprintf(filename, sizeof(filename) - 1, "/tmp/jit-%d.dump", pid); + + /* Create/open the jitdump file with appropriate permissions */ + const int fd = open(filename, O_CREAT | O_TRUNC | O_RDWR, 0666); + if (fd == -1) { + return NULL; // Failed to create file + } + + /* Get system page size for memory mapping */ + const long page_size = sysconf(_SC_PAGESIZE); + if (page_size == -1) { + close(fd); + return NULL; // Failed to get page size + } + + /* + * Map the first page of the jitdump file + * + * This memory mapping serves as a signal to perf that this process + * is generating JIT code. Perf scans /proc/.../maps looking for mapped + * files that match the jitdump naming pattern. + * + * The mapping must be PROT_READ | PROT_EXEC to be detected by perf. + */ + perf_jit_map_state.mapped_buffer = mmap( + NULL, // Let kernel choose address + page_size, // Map one page + PROT_READ | PROT_EXEC, // Read and execute permissions (required by perf) + MAP_PRIVATE, // Private mapping + fd, // File descriptor + 0 // Offset 0 (first page) + ); + + if (perf_jit_map_state.mapped_buffer == NULL) { + close(fd); + return NULL; // Memory mapping failed + } + + perf_jit_map_state.mapped_size = page_size; + + /* Convert file descriptor to FILE* for easier I/O operations */ + perf_jit_map_state.perf_map = fdopen(fd, "w+"); + if (perf_jit_map_state.perf_map == NULL) { + close(fd); + return NULL; // Failed to create FILE* + } + + /* + * Set up file buffering for better performance + * + * We use a large buffer (2MB) because jitdump files can be written + * frequently during program execution. Buffering reduces system call + * overhead and improves overall performance. + */ + setvbuf(perf_jit_map_state.perf_map, NULL, _IOFBF, 2 * MB); + + /* Write the jitdump file header */ + perf_map_jit_write_header(pid, perf_jit_map_state.perf_map); + + /* + * Initialize thread synchronization lock + * + * Multiple threads may attempt to write to the jitdump file + * simultaneously. This lock ensures thread-safe access to the + * global jitdump state. + */ + perf_jit_map_state.map_lock = PyThread_allocate_lock(); + if (perf_jit_map_state.map_lock == NULL) { + fclose(perf_jit_map_state.perf_map); + return NULL; // Failed to create lock + } + + /* Initialize code ID counter */ + perf_jit_map_state.code_id = 0; + + /* Calculate padding size based on actual unwind info requirements */ + size_t eh_frame_size = calculate_eh_frame_size(); + size_t unwind_data_size = sizeof(EhFrameHeader) + eh_frame_size; + trampoline_api.code_padding = round_up(unwind_data_size, 16); + + return &perf_jit_map_state; +} + +// ============================================================================= +// MAIN JITDUMP ENTRY WRITING +// ============================================================================= + +/* + * Write a complete jitdump entry for a Python function + * + * This is the main function called by Python's trampoline system whenever + * a new piece of JIT-compiled code needs to be recorded. It writes both + * the unwinding information and the code load event to the jitdump file. + * + * The function performs these steps: + * 1. Initialize jitdump system if not already done + * 2. Extract function name and filename from Python code object + * 3. Generate DWARF unwinding information + * 4. Write unwinding info event to jitdump file + * 5. Write code load event to jitdump file + * + * Args: + * state: Jitdump state (currently unused, uses global state) + * code_addr: Address where the compiled code resides + * code_size: Size of the compiled code in bytes + * co: Python code object containing metadata + * + * IMPORTANT: This function signature is part of Python's internal API + * and must not be changed without coordinating with core Python development. + */ +static void perf_map_jit_write_entry(void *state, const void *code_addr, + unsigned int code_size, PyCodeObject *co) +{ + /* Initialize jitdump system on first use */ + if (perf_jit_map_state.perf_map == NULL) { + void* ret = perf_map_jit_init(); + if(ret == NULL){ + return; // Initialization failed, silently abort + } + } + + /* + * Extract function information from Python code object + * + * We create a human-readable function name by combining the qualified + * name (includes class/module context) with the filename. This helps + * developers identify functions in perf reports. + */ + const char *entry = ""; + if (co->co_qualname != NULL) { + entry = PyUnicode_AsUTF8(co->co_qualname); + } + + const char *filename = ""; + if (co->co_filename != NULL) { + filename = PyUnicode_AsUTF8(co->co_filename); + } + + /* + * Create formatted function name for perf display + * + * Format: "py:::" + * The "py::" prefix helps identify Python functions in mixed-language + * profiles (e.g., when profiling C extensions alongside Python code). + */ + size_t perf_map_entry_size = snprintf(NULL, 0, "py::%s:%s", entry, filename) + 1; + char* perf_map_entry = (char*) PyMem_RawMalloc(perf_map_entry_size); + if (perf_map_entry == NULL) { + return; // Memory allocation failed + } + snprintf(perf_map_entry, perf_map_entry_size, "py::%s:%s", entry, filename); + + const size_t name_length = strlen(perf_map_entry); + uword base = (uword)code_addr; + uword size = code_size; + + /* + * Generate DWARF unwinding information + * + * DWARF data is essential for proper stack unwinding during profiling. + * Without it, perf cannot generate accurate call graphs, especially + * in optimized code where frame pointers may be omitted. + */ + ELFObjectContext ctx; + char buffer[1024]; // Buffer for DWARF data (1KB should be sufficient) + ctx.code_size = code_size; + ctx.startp = ctx.p = (uint8_t*)buffer; + ctx.fde_p = NULL; // Initialize to NULL, will be set when FDE is written + + /* Generate EH frame (Exception Handling frame) data */ + elf_init_ehframe(&ctx); + int eh_frame_size = ctx.p - ctx.startp; + + /* + * Write Code Unwinding Information Event + * + * This event must be written before the code load event to ensure + * perf has the unwinding information available when it processes + * the code region. + */ + CodeUnwindingInfoEvent ev2; + ev2.base.event = PerfUnwindingInfo; + ev2.base.time_stamp = get_current_monotonic_ticks(); + ev2.unwind_data_size = sizeof(EhFrameHeader) + eh_frame_size; + + /* Verify we don't exceed our padding budget */ + assert(ev2.unwind_data_size <= (uint64_t)trampoline_api.code_padding); + + ev2.eh_frame_hdr_size = sizeof(EhFrameHeader); + ev2.mapped_size = round_up(ev2.unwind_data_size, 16); // 16-byte alignment + + /* Calculate total event size with padding */ + int content_size = sizeof(ev2) + sizeof(EhFrameHeader) + eh_frame_size; + int padding_size = round_up(content_size, 8) - content_size; // 8-byte align + ev2.base.size = content_size + padding_size; + + /* Write the unwinding info event header */ + perf_map_jit_write_fully(&ev2, sizeof(ev2)); + + /* + * Write EH Frame Header + * + * The EH frame header provides metadata about the DWARF unwinding + * information that follows. It includes pointers and counts that + * help perf navigate the unwinding data efficiently. + */ + EhFrameHeader f; + f.version = 1; + f.eh_frame_ptr_enc = DwarfSData4 | DwarfPcRel; // PC-relative signed 4-byte + f.fde_count_enc = DwarfUData4; // Unsigned 4-byte count + f.table_enc = DwarfSData4 | DwarfDataRel; // Data-relative signed 4-byte + + /* Calculate relative offsets for EH frame navigation */ + f.eh_frame_ptr = -(eh_frame_size + 4 * sizeof(unsigned char)); + f.eh_fde_count = 1; // We generate exactly one FDE per function + f.from = -(round_up(code_size, 8) + eh_frame_size); + + int cie_size = ctx.eh_frame_p - ctx.startp; + f.to = -(eh_frame_size - cie_size); + + /* Write EH frame data and header */ + perf_map_jit_write_fully(ctx.startp, eh_frame_size); + perf_map_jit_write_fully(&f, sizeof(f)); + + /* Write padding to maintain alignment */ + char padding_bytes[] = "\0\0\0\0\0\0\0\0"; + perf_map_jit_write_fully(&padding_bytes, padding_size); + + /* + * Write Code Load Event + * + * This event tells perf about the new code region. It includes: + * - Memory addresses and sizes + * - Process and thread identification + * - Function name for symbol resolution + * - The actual machine code bytes + */ + CodeLoadEvent ev; + ev.base.event = PerfLoad; + ev.base.size = sizeof(ev) + (name_length+1) + size; + ev.base.time_stamp = get_current_monotonic_ticks(); + ev.process_id = getpid(); + ev.thread_id = syscall(SYS_gettid); // Get thread ID via system call + ev.vma = base; // Virtual memory address + ev.code_address = base; // Same as VMA for our use case + ev.code_size = size; + + /* Assign unique code ID and increment counter */ + perf_jit_map_state.code_id += 1; + ev.code_id = perf_jit_map_state.code_id; + + /* Write code load event and associated data */ + perf_map_jit_write_fully(&ev, sizeof(ev)); + perf_map_jit_write_fully(perf_map_entry, name_length+1); // Include null terminator + perf_map_jit_write_fully((void*)(base), size); // Copy actual machine code + + /* Clean up allocated memory */ + PyMem_RawFree(perf_map_entry); +} + +// ============================================================================= +// CLEANUP AND FINALIZATION +// ============================================================================= + +/* + * Finalize and cleanup the perf jitdump system + * + * This function is called when Python is shutting down or when the + * perf trampoline system is being disabled. It ensures all resources + * are properly released and all buffered data is flushed to disk. + * + * Args: + * state: Jitdump state (currently unused, uses global state) + * + * Returns: 0 on success + * + * IMPORTANT: This function signature is part of Python's internal API + * and must not be changed without coordinating with core Python development. + */ +static int perf_map_jit_fini(void* state) { + /* + * Close jitdump file with proper synchronization + * + * We need to acquire the lock to ensure no other threads are + * writing to the file when we close it. This prevents corruption + * and ensures all data is properly flushed. + */ + if (perf_jit_map_state.perf_map != NULL) { + PyThread_acquire_lock(perf_jit_map_state.map_lock, 1); + fclose(perf_jit_map_state.perf_map); // This also flushes buffers + PyThread_release_lock(perf_jit_map_state.map_lock); + + /* Clean up synchronization primitive */ + PyThread_free_lock(perf_jit_map_state.map_lock); + perf_jit_map_state.perf_map = NULL; + } + + /* + * Unmap the memory region + * + * This removes the signal to perf that we were generating JIT code. + * After this point, perf will no longer detect this process as + * having JIT capabilities. + */ + if (perf_jit_map_state.mapped_buffer != NULL) { + munmap(perf_jit_map_state.mapped_buffer, perf_jit_map_state.mapped_size); + perf_jit_map_state.mapped_buffer = NULL; + } + + /* Clear global state reference */ + trampoline_api.state = NULL; + + return 0; // Success +} + +// ============================================================================= +// PUBLIC API EXPORT +// ============================================================================= + +/* + * Python Perf Callbacks Structure + * + * This structure defines the callback interface that Python's trampoline + * system uses to integrate with perf profiling. It contains function + * pointers for initialization, event writing, and cleanup. + * + * CRITICAL: This structure and its contents are part of Python's internal + * API. The function signatures and behavior must remain stable to maintain + * compatibility with the Python interpreter's perf integration system. + * + * Used by: Python's _PyPerf_Callbacks system in pycore_ceval.h + */ +_PyPerf_Callbacks _Py_perfmap_jit_callbacks = { + &perf_map_jit_init, // Initialization function + &perf_map_jit_write_entry, // Event writing function + &perf_map_jit_fini, // Cleanup function +}; + +#endif /* PY_HAVE_PERF_TRAMPOLINE */ diff --git a/contrib/tools/python3/Python/perf_trampoline.c b/contrib/tools/python3/Python/perf_trampoline.c index ea9dc83dd0f..b1b787fc278 100644 --- a/contrib/tools/python3/Python/perf_trampoline.c +++ b/contrib/tools/python3/Python/perf_trampoline.c @@ -130,7 +130,7 @@ any DWARF information available for them). */ #include "Python.h" -#include "pycore_ceval.h" +#include "pycore_ceval.h" // _PyPerf_Callbacks #include "pycore_frame.h" #include "pycore_interp.h" @@ -140,9 +140,11 @@ any DWARF information available for them). #include #include #include -#include +#include // mmap() #include -#include +#include // sysconf() +#include // gettimeofday() + #if defined(__arm__) || defined(__arm64__) || defined(__aarch64__) #define PY_HAVE_INVALIDATE_ICACHE @@ -184,15 +186,24 @@ struct code_arena_st { *prev; // Pointer to the arena or NULL if this is the first arena. }; +#define CODE_ALIGNMENT 32 + typedef struct code_arena_st code_arena_t; typedef struct trampoline_api_st trampoline_api_t; +enum perf_trampoline_type { + PERF_TRAMPOLINE_UNSET = 0, + PERF_TRAMPOLINE_TYPE_MAP = 1, + PERF_TRAMPOLINE_TYPE_JITDUMP = 2, +}; + #define perf_status _PyRuntime.ceval.perf.status #define extra_code_index _PyRuntime.ceval.perf.extra_code_index #define perf_code_arena _PyRuntime.ceval.perf.code_arena #define trampoline_api _PyRuntime.ceval.perf.trampoline_api #define perf_map_file _PyRuntime.ceval.perf.map_file - +#define persist_after_fork _PyRuntime.ceval.perf.persist_after_fork +#define perf_trampoline_type _PyRuntime.ceval.perf.perf_trampoline_type static void perf_map_write_entry(void *state, const void *code_addr, @@ -220,6 +231,8 @@ static void* perf_map_init_state(void) { PyUnstable_PerfMapState_Init(); + trampoline_api.code_padding = 0; + perf_trampoline_type = PERF_TRAMPOLINE_TYPE_MAP; return NULL; } @@ -236,6 +249,30 @@ _PyPerf_Callbacks _Py_perfmap_callbacks = { &perf_map_free_state, }; + +static size_t round_up(int64_t value, int64_t multiple) { + if (multiple == 0) { + // Avoid division by zero + return value; + } + + int64_t remainder = value % multiple; + if (remainder == 0) { + // Value is already a multiple of 'multiple' + return value; + } + + // Calculate the difference to the next multiple + int64_t difference = multiple - remainder; + + // Add the difference to the value + int64_t rounded_up_value = value + difference; + + return rounded_up_value; +} + +// TRAMPOLINE MANAGEMENT API + static int new_code_arena(void) { @@ -249,14 +286,16 @@ new_code_arena(void) 0); // offset (not used here) if (memory == MAP_FAILED) { PyErr_SetFromErrno(PyExc_OSError); - _PyErr_WriteUnraisableMsg( - "Failed to create new mmap for perf trampoline", NULL); + PyErr_FormatUnraisable("Failed to create new mmap for perf trampoline"); perf_status = PERF_STATUS_FAILED; return -1; } void *start = &_Py_trampoline_func_start; void *end = &_Py_trampoline_func_end; size_t code_size = end - start; + size_t unaligned_size = code_size + trampoline_api.code_padding; + size_t chunk_size = round_up(unaligned_size, CODE_ALIGNMENT); + assert(chunk_size % CODE_ALIGNMENT == 0); // TODO: Check the effect of alignment of the code chunks. Initial investigation // showed that this has no effect on performance in x86-64 or aarch64 and the current // version has the advantage that the unwinder in GDB can unwind across JIT-ed code. @@ -265,18 +304,17 @@ new_code_arena(void) // measurable performance improvement by rounding trampolines up to 32-bit // or 64-bit alignment. - size_t n_copies = mem_size / code_size; + size_t n_copies = mem_size / chunk_size; for (size_t i = 0; i < n_copies; i++) { - memcpy(memory + i * code_size, start, code_size * sizeof(char)); + memcpy(memory + i * chunk_size, start, code_size * sizeof(char)); } // Some systems may prevent us from creating executable code on the fly. int res = mprotect(memory, mem_size, PROT_READ | PROT_EXEC); if (res == -1) { PyErr_SetFromErrno(PyExc_OSError); munmap(memory, mem_size); - _PyErr_WriteUnraisableMsg( - "Failed to set mmap for perf trampoline to PROT_READ | PROT_EXEC", - NULL); + PyErr_FormatUnraisable("Failed to set mmap for perf trampoline to " + "PROT_READ | PROT_EXEC"); return -1; } @@ -290,8 +328,7 @@ new_code_arena(void) if (new_arena == NULL) { PyErr_NoMemory(); munmap(memory, mem_size); - _PyErr_WriteUnraisableMsg("Failed to allocate new code arena struct", - NULL); + PyErr_FormatUnraisable("Failed to allocate new code arena struct for perf trampoline"); return -1; } @@ -323,16 +360,20 @@ static inline py_trampoline code_arena_new_code(code_arena_t *code_arena) { py_trampoline trampoline = (py_trampoline)code_arena->current_addr; - code_arena->size_left -= code_arena->code_size; - code_arena->current_addr += code_arena->code_size; + size_t total_code_size = round_up(code_arena->code_size + trampoline_api.code_padding, + CODE_ALIGNMENT); + assert(total_code_size % CODE_ALIGNMENT == 0); + code_arena->size_left -= total_code_size; + code_arena->current_addr += total_code_size; return trampoline; } static inline py_trampoline compile_trampoline(void) { + size_t total_code_size = round_up(perf_code_arena->code_size + trampoline_api.code_padding, 16); if ((perf_code_arena == NULL) || - (perf_code_arena->size_left <= perf_code_arena->code_size)) { + (perf_code_arena->size_left <= total_code_size)) { if (new_code_arena() < 0) { return NULL; } @@ -349,7 +390,7 @@ py_trampoline_evaluator(PyThreadState *ts, _PyInterpreterFrame *frame, perf_status == PERF_STATUS_NO_INIT) { goto default_eval; } - PyCodeObject *co = frame->f_code; + PyCodeObject *co = _PyFrame_GetCode(frame); py_trampoline f = NULL; assert(extra_code_index != -1); int ret = _PyCode_GetExtra((PyObject *)co, extra_code_index, (void **)&f); @@ -374,6 +415,26 @@ default_eval: } #endif // PY_HAVE_PERF_TRAMPOLINE +int PyUnstable_PerfTrampoline_CompileCode(PyCodeObject *co) +{ +#ifdef PY_HAVE_PERF_TRAMPOLINE + py_trampoline f = NULL; + assert(extra_code_index != -1); + int ret = _PyCode_GetExtra((PyObject *)co, extra_code_index, (void **)&f); + if (ret != 0 || f == NULL) { + py_trampoline new_trampoline = compile_trampoline(); + if (new_trampoline == NULL) { + return 0; + } + trampoline_api.write_state(trampoline_api.state, new_trampoline, + perf_code_arena->code_size, co); + return _PyCode_SetExtra((PyObject *)co, extra_code_index, + (void *)new_trampoline); + } +#endif // PY_HAVE_PERF_TRAMPOLINE + return 0; +} + int _PyIsPerfTrampolineActive(void) { @@ -416,13 +477,6 @@ _PyPerfTrampoline_SetCallbacks(_PyPerf_Callbacks *callbacks) return 0; } -void _PyPerfTrampoline_FreeArenas(void) { -#ifdef PY_HAVE_PERF_TRAMPOLINE - free_code_arenas(); -#endif - return; -} - int _PyPerfTrampoline_Init(int activate) { @@ -441,9 +495,6 @@ _PyPerfTrampoline_Init(int activate) } else { tstate->interp->eval_frame = py_trampoline_evaluator; - if (new_code_arena() < 0) { - return -1; - } extra_code_index = _PyEval_RequestCodeExtraIndex(NULL); if (extra_code_index == -1) { return -1; @@ -451,6 +502,9 @@ _PyPerfTrampoline_Init(int activate) if (trampoline_api.state == NULL && trampoline_api.init_state != NULL) { trampoline_api.state = trampoline_api.init_state(); } + if (new_code_arena() < 0) { + return -1; + } perf_status = PERF_STATUS_OK; } #endif @@ -470,6 +524,7 @@ _PyPerfTrampoline_Fini(void) } if (perf_status == PERF_STATUS_OK) { trampoline_api.free_state(trampoline_api.state); + perf_trampoline_type = PERF_TRAMPOLINE_UNSET; } extra_code_index = -1; perf_status = PERF_STATUS_NO_INIT; @@ -477,16 +532,44 @@ _PyPerfTrampoline_Fini(void) return 0; } +void _PyPerfTrampoline_FreeArenas(void) { +#ifdef PY_HAVE_PERF_TRAMPOLINE + free_code_arenas(); +#endif + return; +} + +int +PyUnstable_PerfTrampoline_SetPersistAfterFork(int enable){ +#ifdef PY_HAVE_PERF_TRAMPOLINE + persist_after_fork = enable; + return persist_after_fork; +#endif + return 0; +} + PyStatus _PyPerfTrampoline_AfterFork_Child(void) { #ifdef PY_HAVE_PERF_TRAMPOLINE - // Restart trampoline in file in child. - int was_active = _PyIsPerfTrampolineActive(); - _PyPerfTrampoline_Fini(); - PyUnstable_PerfMapState_Fini(); - if (was_active) { - _PyPerfTrampoline_Init(1); + if (persist_after_fork) { + if (perf_trampoline_type != PERF_TRAMPOLINE_TYPE_MAP) { + return PyStatus_Error("Failed to copy perf map file as perf trampoline type is not type map."); + } + _PyPerfTrampoline_Fini(); + char filename[256]; + pid_t parent_pid = getppid(); + snprintf(filename, sizeof(filename), "/tmp/perf-%d.map", parent_pid); + if (PyUnstable_CopyPerfMapFile(filename) != 0) { + return PyStatus_Error("Failed to copy perf map file."); + } + } else { + // Restart trampoline in file in child. + int was_active = _PyIsPerfTrampolineActive(); + _PyPerfTrampoline_Fini(); + if (was_active) { + _PyPerfTrampoline_Init(1); + } } #endif return PyStatus_Ok(); diff --git a/contrib/tools/python3/Python/preconfig.c b/contrib/tools/python3/Python/preconfig.c index 77a86d651eb..5b26c75de8b 100644 --- a/contrib/tools/python3/Python/preconfig.c +++ b/contrib/tools/python3/Python/preconfig.c @@ -2,6 +2,7 @@ #include "pycore_fileutils.h" // DECODE_LOCALE_ERR #include "pycore_getopt.h" // _PyOS_GetOpt() #include "pycore_initconfig.h" // _PyArgv +#include "pycore_pylifecycle.h" // _Py_LegacyLocaleDetected() #include "pycore_pymem.h" // _PyMem_GetAllocatorName() #include "pycore_runtime.h" // _PyRuntime_Initialize() diff --git a/contrib/tools/python3/Python/pyhash.c b/contrib/tools/python3/Python/pyhash.c index d5ac9f83be6..5263622ff31 100644 --- a/contrib/tools/python3/Python/pyhash.c +++ b/contrib/tools/python3/Python/pyhash.c @@ -4,6 +4,7 @@ All the utility functions (_Py_Hash*()) return "-1" to signify an error. */ #include "Python.h" +#include "pycore_pyhash.h" // _Py_HashSecret_t #ifdef __APPLE__ # include @@ -13,10 +14,6 @@ # include #endif -#ifdef __cplusplus -extern "C" { -#endif - _Py_HashSecret_t _Py_HashSecret = {{0}}; #if Py_HASH_ALGORITHM == Py_HASH_EXTERNAL @@ -86,8 +83,6 @@ static Py_ssize_t hashstats[Py_HASH_STATS_MAX + 1] = {0}; */ -Py_hash_t _Py_HashPointer(const void *); - Py_hash_t _Py_HashDouble(PyObject *inst, double v) { @@ -99,7 +94,7 @@ _Py_HashDouble(PyObject *inst, double v) if (Py_IS_INFINITY(v)) return v > 0 ? _PyHASH_INF : -_PyHASH_INF; else - return _Py_HashPointer(inst); + return PyObject_GenericHash(inst); } m = frexp(v, &e); @@ -135,23 +130,19 @@ _Py_HashDouble(PyObject *inst, double v) } Py_hash_t -_Py_HashPointerRaw(const void *p) +Py_HashPointer(const void *ptr) { - size_t y = (size_t)p; - /* bottom 3 or 4 bits are likely to be 0; rotate y by 4 to avoid - excessive hash collisions for dicts and sets */ - y = (y >> 4) | (y << (8 * SIZEOF_VOID_P - 4)); - return (Py_hash_t)y; + Py_hash_t hash = _Py_HashPointerRaw(ptr); + if (hash == -1) { + hash = -2; + } + return hash; } Py_hash_t -_Py_HashPointer(const void *p) +PyObject_GenericHash(PyObject *obj) { - Py_hash_t x = _Py_HashPointerRaw(p); - if (x == -1) { - x = -2; - } - return x; + return Py_HashPointer(obj); } Py_hash_t @@ -272,12 +263,12 @@ fnv(const void *src, Py_ssize_t len) x ^= (Py_uhash_t) *p << 7; while (blocks--) { PY_UHASH_CPY(block.bytes, p); - x = (_PyHASH_MULTIPLIER * x) ^ block.value; + x = (PyHASH_MULTIPLIER * x) ^ block.value; p += SIZEOF_PY_UHASH_T; } /* add remainder */ for (; remainder > 0; remainder--) - x = (_PyHASH_MULTIPLIER * x) ^ (Py_uhash_t) *p++; + x = (PyHASH_MULTIPLIER * x) ^ (Py_uhash_t) *p++; x ^= (Py_uhash_t) len; x ^= (Py_uhash_t) _Py_HashSecret.fnv.suffix; if (x == (Py_uhash_t) -1) { @@ -502,7 +493,3 @@ pysiphash(const void *src, Py_ssize_t src_sz) { static PyHash_FuncDef PyHash_Func = {pysiphash, "siphash24", 64, 128}; #endif - -#ifdef __cplusplus -} -#endif diff --git a/contrib/tools/python3/Python/pylifecycle.c b/contrib/tools/python3/Python/pylifecycle.c index f5bea14b16b..8cc6bd0fa78 100644 --- a/contrib/tools/python3/Python/pylifecycle.c +++ b/contrib/tools/python3/Python/pylifecycle.c @@ -2,10 +2,12 @@ #include "Python.h" +#include "pycore_call.h" // _PyObject_CallMethod() #include "pycore_ceval.h" // _PyEval_FiniGIL() +#include "pycore_codecs.h" // _PyCodec_Lookup() #include "pycore_context.h" // _PyContext_Init() -#include "pycore_exceptions.h" // _PyExc_InitTypes() #include "pycore_dict.h" // _PyDict_Fini() +#include "pycore_exceptions.h" // _PyExc_InitTypes() #include "pycore_fileutils.h" // _Py_ResetForceASCII() #include "pycore_floatobject.h" // _PyFloat_InitTypes() #include "pycore_genobject.h" // _PyAsyncGen_Fini() @@ -15,26 +17,47 @@ #include "pycore_list.h" // _PyList_Fini() #include "pycore_long.h" // _PyLong_InitTypes() #include "pycore_object.h" // _PyDebug_PrintTotalRefs() -#include "pycore_pathconfig.h" // _PyConfig_WritePathConfig() +#include "pycore_pathconfig.h" // _PyPathConfig_UpdateGlobal() #include "pycore_pyerrors.h" // _PyErr_Occurred() #include "pycore_pylifecycle.h" // _PyErr_Print() #include "pycore_pymem.h" // _PyObject_DebugMallocStats() #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_runtime.h" // _Py_ID() #include "pycore_runtime_init.h" // _PyRuntimeState_INIT +#include "pycore_setobject.h" // _PySet_NextEntry() #include "pycore_sliceobject.h" // _PySlice_Fini() #include "pycore_sysmodule.h" // _PySys_ClearAuditHooks() #include "pycore_traceback.h" // _Py_DumpTracebackThreads() #include "pycore_typeobject.h" // _PyTypes_InitTypes() #include "pycore_typevarobject.h" // _Py_clear_generic_types() #include "pycore_unicodeobject.h" // _PyUnicode_InitTypes() +#include "pycore_weakref.h" // _PyWeakref_GET_REF() +#include "pycore_obmalloc.h" // _PyMem_init_obmalloc() + #include "opcode.h" #include // setlocale() #include // getenv() +#ifdef HAVE_UNISTD_H +# include // isatty() +#endif #if defined(__APPLE__) -#include +# include +# include +# include +// The os_log unified logging APIs were introduced in macOS 10.12, iOS 10.0, +// tvOS 10.0, and watchOS 3.0; we enable the use of the system logger +// automatically on non-macOS platforms. +# if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE +# define USE_APPLE_SYSTEM_LOG 1 +# else +# define USE_APPLE_SYSTEM_LOG 0 +# endif + +# if USE_APPLE_SYSTEM_LOG +# include +# endif #endif #ifdef HAVE_SIGNAL_H @@ -53,12 +76,7 @@ # undef BYTE #endif -#define PUTS(fd, str) _Py_write_noraise(fd, str, (int)strlen(str)) - - -#ifdef __cplusplus -extern "C" { -#endif +#define PUTS(fd, str) (void)_Py_write_noraise(fd, str, (int)strlen(str)) /* Forward declarations */ @@ -66,7 +84,14 @@ static PyStatus add_main_module(PyInterpreterState *interp); static PyStatus init_import_site(void); static PyStatus init_set_builtins_open(void); static PyStatus init_sys_streams(PyThreadState *tstate); +#ifdef __ANDROID__ +static PyStatus init_android_streams(PyThreadState *tstate); +#endif +#if defined(__APPLE__) && USE_APPLE_SYSTEM_LOG +static PyStatus init_apple_streams(PyThreadState *tstate); +#endif static void wait_for_thread_shutdown(PyThreadState *tstate); +static void finalize_subinterpreters(void); static void call_ll_exitfuncs(_PyRuntimeState *runtime); /* The following places the `_PyRuntime` structure in a location that can be @@ -95,7 +120,7 @@ _PyRuntimeState _PyRuntime #if defined(__linux__) && (defined(__GNUC__) || defined(__clang__)) __attribute__ ((section (".PyRuntime"))) #endif -= _PyRuntimeState_INIT(_PyRuntime); += _PyRuntimeState_INIT(_PyRuntime, _Py_Debug_Cookie); _Py_COMP_DIAG_POP static int runtime_initialized = 0; @@ -125,7 +150,7 @@ _PyRuntime_Finalize(void) } int -_Py_IsFinalizing(void) +Py_IsFinalizing(void) { return _PyRuntimeState_GetFinalizing(&_PyRuntime) != NULL; } @@ -472,6 +497,7 @@ pyinit_core_reconfigure(_PyRuntimeState *runtime, if (interp == NULL) { return _PyStatus_ERR("can't make main interpreter"); } + assert(interp->_ready); status = _PyConfig_Write(config, runtime); if (_PyStatus_EXCEPTION(status)) { @@ -525,11 +551,6 @@ pycore_init_runtime(_PyRuntimeState *runtime, return status; } - status = _PyTime_Init(); - if (_PyStatus_EXCEPTION(status)) { - return status; - } - status = _PyImport_Init(); if (_PyStatus_EXCEPTION(status)) { return status; @@ -558,6 +579,15 @@ init_interp_settings(PyInterpreterState *interp, return _PyStatus_ERR("per-interpreter obmalloc does not support " "single-phase init extension modules"); } +#ifdef Py_GIL_DISABLED + if (!_Py_IsMainInterpreter(interp) && + !config->check_multi_interp_extensions) + { + return _PyStatus_ERR("The free-threaded build does not support " + "single-phase init extension modules in " + "subinterpreters"); + } +#endif if (config->allow_fork) { interp->feature_flags |= Py_RTFLAGS_FORK; @@ -578,46 +608,47 @@ init_interp_settings(PyInterpreterState *interp, interp->feature_flags |= Py_RTFLAGS_MULTI_INTERP_EXTENSIONS; } - /* We check "gil" in init_interp_create_gil(). */ + switch (config->gil) { + case PyInterpreterConfig_DEFAULT_GIL: break; + case PyInterpreterConfig_SHARED_GIL: break; + case PyInterpreterConfig_OWN_GIL: break; + default: + return _PyStatus_ERR("invalid interpreter config 'gil' value"); + } return _PyStatus_OK(); } -static PyStatus +static void init_interp_create_gil(PyThreadState *tstate, int gil) { - PyStatus status; - /* finalize_interp_delete() comment explains why _PyEval_FiniGIL() is only called here. */ // XXX This is broken with a per-interpreter GIL. _PyEval_FiniGIL(tstate->interp); /* Auto-thread-state API */ - status = _PyGILState_SetTstate(tstate); - if (_PyStatus_EXCEPTION(status)) { - return status; - } + _PyGILState_SetTstate(tstate); - int own_gil; - switch (gil) { - case PyInterpreterConfig_DEFAULT_GIL: own_gil = 0; break; - case PyInterpreterConfig_SHARED_GIL: own_gil = 0; break; - case PyInterpreterConfig_OWN_GIL: own_gil = 1; break; - default: - return _PyStatus_ERR("invalid interpreter config 'gil' value"); - } + int own_gil = (gil == PyInterpreterConfig_OWN_GIL); /* Create the GIL and take it */ - status = _PyEval_InitGIL(tstate, own_gil); - if (_PyStatus_EXCEPTION(status)) { - return status; - } - - return _PyStatus_OK(); + _PyEval_InitGIL(tstate, own_gil); } +static int +builtins_dict_watcher(PyDict_WatchEvent event, PyObject *dict, PyObject *key, PyObject *new_value) +{ + PyInterpreterState *interp = _PyInterpreterState_GET(); +#ifdef _Py_TIER2 + if (interp->rare_events.builtin_dict < _Py_MAX_ALLOWED_BUILTINS_MODIFICATIONS) { + _Py_Executors_InvalidateAll(interp, 1); + } +#endif + RARE_EVENT_INTERP_INC(interp, builtin_dict); + return 0; +} static PyStatus pycore_create_interpreter(_PyRuntimeState *runtime, @@ -625,11 +656,15 @@ pycore_create_interpreter(_PyRuntimeState *runtime, PyThreadState **tstate_p) { PyStatus status; - PyInterpreterState *interp = PyInterpreterState_New(); - if (interp == NULL) { - return _PyStatus_ERR("can't make main interpreter"); + PyInterpreterState *interp; + status = _PyInterpreterState_New(NULL, &interp); + if (_PyStatus_EXCEPTION(status)) { + return status; } + assert(interp != NULL); assert(_Py_IsMainInterpreter(interp)); + _PyInterpreterState_SetWhence(interp, _PyInterpreterState_WHENCE_RUNTIME); + interp->_ready = 1; status = _PyConfig_Copy(&interp->config, src_config); if (_PyStatus_EXCEPTION(status)) { @@ -643,8 +678,10 @@ pycore_create_interpreter(_PyRuntimeState *runtime, } PyInterpreterConfig config = _PyInterpreterConfig_LEGACY_INIT; - // The main interpreter always has its own GIL. + // The main interpreter always has its own GIL and supports single-phase + // init extensions. config.gil = PyInterpreterConfig_OWN_GIL; + config.check_multi_interp_extensions = 0; status = init_interp_settings(interp, &config); if (_PyStatus_EXCEPTION(status)) { return status; @@ -652,25 +689,32 @@ pycore_create_interpreter(_PyRuntimeState *runtime, // This could be done in init_interpreter() (in pystate.c) if it // didn't depend on interp->feature_flags being set already. - _PyObject_InitState(interp); + status = _PyObject_InitState(interp); + if (_PyStatus_EXCEPTION(status)) { + return status; + } + + // initialize the interp->obmalloc state. This must be done after + // the settings are loaded (so that feature_flags are set) but before + // any calls are made to obmalloc functions. + if (_PyMem_init_obmalloc(interp) < 0) { + return _PyStatus_NO_MEMORY(); + } status = _PyTraceMalloc_Init(); if (_PyStatus_EXCEPTION(status)) { return status; } - PyThreadState *tstate = _PyThreadState_New(interp); + PyThreadState *tstate = _PyThreadState_New(interp, + _PyThreadState_WHENCE_INIT); if (tstate == NULL) { return _PyStatus_ERR("can't make first thread"); } + runtime->main_tstate = tstate; _PyThreadState_Bind(tstate); - // XXX For now we do this before the GIL is created. - (void) _PyThreadState_SwapNoGIL(tstate); - status = init_interp_create_gil(tstate, config.gil); - if (_PyStatus_EXCEPTION(status)) { - return status; - } + init_interp_create_gil(tstate, config.gil); *tstate_p = tstate; return _PyStatus_OK(); @@ -691,6 +735,10 @@ pycore_init_global_objects(PyInterpreterState *interp) _PyUnicode_InitState(interp); + if (_Py_IsMainInterpreter(interp)) { + _Py_GetConstant_Init(); + } + return _PyStatus_OK(); } @@ -743,24 +791,14 @@ pycore_init_types(PyInterpreterState *interp) if (_PyStatus_EXCEPTION(status)) { return status; } - return _PyStatus_OK(); -} -static const uint8_t INTERPRETER_TRAMPOLINE_INSTRUCTIONS[] = { - /* Put a NOP at the start, so that the IP points into - * the code, rather than before it */ - NOP, 0, - INTERPRETER_EXIT, 0, - /* RESUME at end makes sure that the frame appears incomplete */ - RESUME, 0 -}; + status = _PyXI_InitTypes(interp); + if (_PyStatus_EXCEPTION(status)) { + return status; + } -static const _PyShimCodeDef INTERPRETER_TRAMPOLINE_CODEDEF = { - INTERPRETER_TRAMPOLINE_INSTRUCTIONS, - sizeof(INTERPRETER_TRAMPOLINE_INSTRUCTIONS), - 1, - "" -}; + return _PyStatus_OK(); +} static PyStatus pycore_init_builtins(PyThreadState *tstate) @@ -773,7 +811,7 @@ pycore_init_builtins(PyThreadState *tstate) } PyObject *modules = _PyImport_GetModules(interp); - if (_PyImport_FixupBuiltin(bimod, "builtins", modules) < 0) { + if (_PyImport_FixupBuiltin(tstate, bimod, "builtins", modules) < 0) { goto error; } @@ -783,22 +821,30 @@ pycore_init_builtins(PyThreadState *tstate) } interp->builtins = Py_NewRef(builtins_dict); - PyObject *isinstance = PyDict_GetItem(builtins_dict, &_Py_ID(isinstance)); - assert(isinstance); + PyObject *isinstance = PyDict_GetItemWithError(builtins_dict, &_Py_ID(isinstance)); + if (!isinstance) { + goto error; + } interp->callable_cache.isinstance = isinstance; - PyObject *len = PyDict_GetItem(builtins_dict, &_Py_ID(len)); - assert(len); + + PyObject *len = PyDict_GetItemWithError(builtins_dict, &_Py_ID(len)); + if (!len) { + goto error; + } interp->callable_cache.len = len; + PyObject *list_append = _PyType_Lookup(&PyList_Type, &_Py_ID(append)); - assert(list_append); + if (list_append == NULL) { + goto error; + } interp->callable_cache.list_append = list_append; + PyObject *object__getattribute__ = _PyType_Lookup(&PyBaseObject_Type, &_Py_ID(__getattribute__)); - assert(object__getattribute__); - interp->callable_cache.object__getattribute__ = object__getattribute__; - interp->interpreter_trampoline = _Py_MakeShimCode(&INTERPRETER_TRAMPOLINE_CODEDEF); - if (interp->interpreter_trampoline == NULL) { - return _PyStatus_ERR("failed to create interpreter trampoline."); + if (object__getattribute__ == NULL) { + goto error; } + interp->callable_cache.object__getattribute__ = object__getattribute__; + if (_PyBuiltins_AddExceptions(bimod) < 0) { return _PyStatus_ERR("failed to add exceptions to builtins"); } @@ -837,20 +883,18 @@ pycore_interp_init(PyThreadState *tstate) return status; } - // The GC must be initialized before the first GC collection. - status = _PyGC_Init(interp); + status = _PyCode_Init(interp); if (_PyStatus_EXCEPTION(status)) { return status; } - // Intern strings in deep-frozen modules first so that others - // can use it instead of creating a heap allocated string. - if (_Py_Deepfreeze_Init() < 0) { - return _PyStatus_ERR("failed to initialize deep-frozen modules"); + + status = _PyDtoa_Init(interp); + if (_PyStatus_EXCEPTION(status)) { + return status; } - // Per-interpreter interned string dict is created after deep-frozen - // modules have interned the global strings. - status = _PyUnicode_InitInternDict(interp); + // The GC must be initialized before the first GC collection. + status = _PyGC_Init(interp); if (_PyStatus_EXCEPTION(status)) { return status; } @@ -879,6 +923,11 @@ pycore_interp_init(PyThreadState *tstate) goto done; } + status = _PyXI_Init(interp); + if (_PyStatus_EXCEPTION(status)) { + goto done; + } + const PyConfig *config = _PyInterpreterState_GetConfig(interp); status = _PyImport_InitCore(tstate, sysmod, config->_install_importlib); @@ -1101,6 +1150,37 @@ pyinit_main_reconfigure(PyThreadState *tstate) } +#ifdef Py_DEBUG +static void +run_presite(PyThreadState *tstate) +{ + PyInterpreterState *interp = tstate->interp; + const PyConfig *config = _PyInterpreterState_GetConfig(interp); + + if (!config->run_presite) { + return; + } + + PyObject *presite_modname = PyUnicode_FromWideChar( + config->run_presite, + wcslen(config->run_presite) + ); + if (presite_modname == NULL) { + fprintf(stderr, "Could not convert pre-site module name to unicode\n"); + } + else { + PyObject *presite = PyImport_Import(presite_modname); + if (presite == NULL) { + fprintf(stderr, "pre-site import failed:\n"); + _PyErr_Print(tstate); + } + Py_XDECREF(presite); + Py_DECREF(presite_modname); + } +} +#endif + + static PyStatus init_interp_main(PyThreadState *tstate) { @@ -1164,7 +1244,14 @@ init_interp_main(PyThreadState *tstate) #ifdef PY_HAVE_PERF_TRAMPOLINE if (config->perf_profiling) { - if (_PyPerfTrampoline_SetCallbacks(&_Py_perfmap_callbacks) < 0 || + _PyPerf_Callbacks *cur_cb; + if (config->perf_profiling == 1) { + cur_cb = &_Py_perfmap_callbacks; + } + else { + cur_cb = &_Py_perfmap_jit_callbacks; + } + if (_PyPerfTrampoline_SetCallbacks(cur_cb) < 0 || _PyPerfTrampoline_Init(config->perf_profiling) < 0) { return _PyStatus_ERR("can't initialize the perf trampoline"); } @@ -1182,6 +1269,23 @@ init_interp_main(PyThreadState *tstate) return status; } +#ifdef __ANDROID__ + status = init_android_streams(tstate); + if (_PyStatus_EXCEPTION(status)) { + return status; + } +#endif +#if defined(__APPLE__) && USE_APPLE_SYSTEM_LOG + status = init_apple_streams(tstate); + if (_PyStatus_EXCEPTION(status)) { + return status; + } +#endif + +#ifdef Py_DEBUG + run_presite(tstate); +#endif + status = add_main_module(interp); if (_PyStatus_EXCEPTION(status)) { return status; @@ -1221,11 +1325,36 @@ init_interp_main(PyThreadState *tstate) #endif } + // Turn on experimental tier 2 (uops-based) optimizer + // This is also needed when the JIT is enabled +#ifdef _Py_TIER2 + if (is_main_interp) { + int enabled = 1; +#if _Py_TIER2 & 2 + enabled = 0; +#endif + char *env = Py_GETENV("PYTHON_JIT"); + if (env && *env != '\0') { + // PYTHON_JIT=0|1 overrides the default + enabled = *env != '0'; + } + if (enabled) { + PyObject *opt = _PyOptimizer_NewUOpOptimizer(); + if (opt == NULL) { + return _PyStatus_ERR("can't initialize optimizer"); + } + if (_Py_SetTier2Optimizer((_PyOptimizerObject *)opt)) { + return _PyStatus_ERR("can't install optimizer"); + } + Py_DECREF(opt); + } + } +#endif + if (!is_main_interp) { // The main interpreter is handled in Py_Main(), for now. - wchar_t *sys_path_0 = interp->runtime->sys_path_0; - if (sys_path_0 != NULL) { - PyObject *path0 = PyUnicode_FromWideChar(sys_path_0, -1); + if (config->sys_path_0 != NULL) { + PyObject *path0 = PyUnicode_FromWideChar(config->sys_path_0, -1); if (path0 == NULL) { return _PyStatus_ERR("can't initialize sys.path[0]"); } @@ -1247,6 +1376,12 @@ init_interp_main(PyThreadState *tstate) } } + + interp->dict_state.watchers[0] = &builtins_dict_watcher; + if (PyDict_Watch(0, interp->builtins) != 0) { + return _PyStatus_ERR("failed to set builtin dict watcher"); + } + assert(!_PyErr_Occurred(tstate)); return _PyStatus_OK(); @@ -1391,13 +1526,13 @@ finalize_modules_delete_special(PyThreadState *tstate, int verbose) PySys_WriteStderr("# clear builtins._\n"); } if (PyDict_SetItemString(interp->builtins, "_", Py_None) < 0) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on setting builtin variable _"); } const char * const *p; for (p = sys_deletes; *p != NULL; p++) { if (_PySys_ClearAttrString(interp, *p, verbose) < 0) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on clearing sys.%s", *p); } } for (p = sys_files; *p != NULL; p+=2) { @@ -1406,17 +1541,17 @@ finalize_modules_delete_special(PyThreadState *tstate, int verbose) if (verbose) { PySys_WriteStderr("# restore sys.%s\n", name); } - PyObject *value = _PyDict_GetItemStringWithError(interp->sysdict, - orig_name); + PyObject *value; + if (PyDict_GetItemStringRef(interp->sysdict, orig_name, &value) < 0) { + PyErr_FormatUnraisable("Exception ignored on restoring sys.%s", name); + } if (value == NULL) { - if (_PyErr_Occurred(tstate)) { - PyErr_WriteUnraisable(NULL); - } - value = Py_None; + value = Py_NewRef(Py_None); } if (PyDict_SetItemString(interp->sysdict, name, value) < 0) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on restoring sys.%s", name); } + Py_DECREF(value); } } @@ -1426,7 +1561,7 @@ finalize_remove_modules(PyObject *modules, int verbose) { PyObject *weaklist = PyList_New(0); if (weaklist == NULL) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on removing modules"); } #define STORE_MODULE_WEAKREF(name, mod) \ @@ -1435,13 +1570,13 @@ finalize_remove_modules(PyObject *modules, int verbose) if (wr) { \ PyObject *tup = PyTuple_Pack(2, name, wr); \ if (!tup || PyList_Append(weaklist, tup) < 0) { \ - PyErr_WriteUnraisable(NULL); \ + PyErr_FormatUnraisable("Exception ignored on removing modules"); \ } \ Py_XDECREF(tup); \ Py_DECREF(wr); \ } \ else { \ - PyErr_WriteUnraisable(NULL); \ + PyErr_FormatUnraisable("Exception ignored on removing modules"); \ } \ } @@ -1452,7 +1587,7 @@ finalize_remove_modules(PyObject *modules, int verbose) } \ STORE_MODULE_WEAKREF(name, mod); \ if (PyObject_SetItem(modules, name, Py_None) < 0) { \ - PyErr_WriteUnraisable(NULL); \ + PyErr_FormatUnraisable("Exception ignored on removing modules"); \ } \ } @@ -1466,14 +1601,14 @@ finalize_remove_modules(PyObject *modules, int verbose) else { PyObject *iterator = PyObject_GetIter(modules); if (iterator == NULL) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on removing modules"); } else { PyObject *key; while ((key = PyIter_Next(iterator))) { PyObject *value = PyObject_GetItem(modules, key); if (value == NULL) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on removing modules"); continue; } CLEAR_MODULE(key, value); @@ -1481,7 +1616,7 @@ finalize_remove_modules(PyObject *modules, int verbose) Py_DECREF(key); } if (PyErr_Occurred()) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on removing modules"); } Py_DECREF(iterator); } @@ -1501,7 +1636,7 @@ finalize_clear_modules_dict(PyObject *modules) } else { if (PyObject_CallMethodNoArgs(modules, &_Py_ID(clear)) == NULL) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on clearing sys.modules"); } } } @@ -1513,11 +1648,11 @@ finalize_restore_builtins(PyThreadState *tstate) PyInterpreterState *interp = tstate->interp; PyObject *dict = PyDict_Copy(interp->builtins); if (dict == NULL) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on restoring builtins"); } PyDict_Clear(interp->builtins); if (PyDict_Update(interp->builtins, interp->builtins_copy)) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on restoring builtins"); } Py_XDECREF(dict); } @@ -1531,16 +1666,16 @@ finalize_modules_clear_weaklist(PyInterpreterState *interp, for (Py_ssize_t i = PyList_GET_SIZE(weaklist) - 1; i >= 0; i--) { PyObject *tup = PyList_GET_ITEM(weaklist, i); PyObject *name = PyTuple_GET_ITEM(tup, 0); - PyObject *mod = PyWeakref_GET_OBJECT(PyTuple_GET_ITEM(tup, 1)); - if (mod == Py_None) { + PyObject *mod = _PyWeakref_GET_REF(PyTuple_GET_ITEM(tup, 1)); + if (mod == NULL) { continue; } assert(PyModule_Check(mod)); - PyObject *dict = PyModule_GetDict(mod); + PyObject *dict = _PyModule_GetDict(mod); // borrowed reference if (dict == interp->builtins || dict == interp->sysdict) { + Py_DECREF(mod); continue; } - Py_INCREF(mod); if (verbose && PyUnicode_Check(name)) { PySys_FormatStderr("# cleanup[3] wiping %U\n", name); } @@ -1573,6 +1708,19 @@ static void finalize_modules(PyThreadState *tstate) { PyInterpreterState *interp = tstate->interp; + +#ifdef _Py_TIER2 + // Invalidate all executors and turn off tier 2 optimizer + _Py_Executors_InvalidateAll(interp, 0); + _PyOptimizerObject *old = _Py_SetOptimizer(interp, NULL); + Py_XDECREF(old); +#endif + + // Stop watching __builtin__ modifications + if (PyDict_Unwatch(0, interp->builtins) < 0) { + // might happen if interp is cleared before watching the __builtin__ + PyErr_Clear(); + } PyObject *modules = _PyImport_GetModules(interp); if (modules == NULL) { // Already done @@ -1673,22 +1821,18 @@ static int flush_std_files(void) { PyObject *file; - PyObject *tmp; int status = 0; if (_PySys_GetOptionalAttr(&_Py_ID(stdout), &file) < 0) { status = -1; } else if (file != NULL && file != Py_None && !file_is_closed(file)) { - tmp = PyObject_CallMethodNoArgs(file, &_Py_ID(flush)); - if (tmp == NULL) { + if (_PyFile_Flush(file) < 0) { status = -1; } - else - Py_DECREF(tmp); } if (status < 0) { - PyErr_WriteUnraisable(file); + PyErr_FormatUnraisable("Exception ignored on flushing sys.stdout"); } Py_XDECREF(file); @@ -1697,13 +1841,10 @@ flush_std_files(void) status = -1; } else if (file != NULL && file != Py_None && !file_is_closed(file)) { - tmp = PyObject_CallMethodNoArgs(file, &_Py_ID(flush)); - if (tmp == NULL) { + if (_PyFile_Flush(file) < 0) { PyErr_Clear(); status = -1; } - else - Py_DECREF(tmp); } Py_XDECREF(file); @@ -1728,11 +1869,11 @@ flush_std_files(void) static void finalize_interp_types(PyInterpreterState *interp) { + _PyTypes_FiniExtTypes(interp); _PyUnicode_FiniTypes(interp); _PySys_FiniTypes(interp); + _PyXI_FiniTypes(interp); _PyExc_Fini(interp); - _PyAsyncGen_Fini(interp); - _PyContext_Fini(interp); _PyFloat_FiniType(interp); _PyLong_FiniTypes(interp); _PyThread_FiniType(interp); @@ -1743,18 +1884,21 @@ finalize_interp_types(PyInterpreterState *interp) _PyTypes_Fini(interp); + _PyCode_Fini(interp); + // Call _PyUnicode_ClearInterned() before _PyDict_Fini() since it uses // a dict internally. _PyUnicode_ClearInterned(interp); - _PyDict_Fini(interp); - _PyList_Fini(interp); - _PyTuple_Fini(interp); + _PyUnicode_Fini(interp); - _PySlice_Fini(interp); +#ifndef Py_GIL_DISABLED + // With Py_GIL_DISABLED: + // the freelists for the current thread state have already been cleared. + struct _Py_object_freelists *freelists = _Py_object_freelists_GET(); + _PyObject_ClearFreeLists(freelists, 1); +#endif - _PyUnicode_Fini(interp); - _PyFloat_Fini(interp); #ifdef Py_DEBUG _PyStaticObjects_CheckRefcnt(interp); #endif @@ -1766,6 +1910,7 @@ finalize_interp_clear(PyThreadState *tstate) { int is_main_interp = _Py_IsMainInterpreter(tstate->interp); + _PyXI_Fini(tstate->interp); _PyExc_ClearExceptionGroupType(tstate->interp); _Py_clear_generic_types(tstate->interp); @@ -1783,12 +1928,21 @@ finalize_interp_clear(PyThreadState *tstate) _Py_HashRandomization_Fini(); _PyArg_Fini(); _Py_ClearFileSystemEncoding(); - _Py_Deepfreeze_Fini(); _PyPerfTrampoline_Fini(); _PyPerfTrampoline_FreeArenas(); } finalize_interp_types(tstate->interp); + + /* Finalize dtoa at last so that finalizers calling repr of float doesn't crash */ + _PyDtoa_Fini(tstate->interp); + + /* Free any delayed free requests immediately */ + _PyMem_FiniDelayed(tstate->interp); + + /* finalize_interp_types may allocate Python objects so we may need to + abandon mimalloc segments again */ + _PyThreadState_ClearMimallocHeaps(tstate); } @@ -1808,20 +1962,73 @@ finalize_interp_delete(PyInterpreterState *interp) } -int -Py_FinalizeEx(void) +/* Conceptually, there isn't a good reason for Py_Finalize() + to be called in any other thread than the one where Py_Initialize() + was called. Consequently, it would make sense to fail if the thread + or thread state (or interpreter) don't match. However, such + constraints have never been enforced, and, as unlikely as it may be, + there may be users relying on the unconstrained behavior. Thus, + we do our best here to accommodate that possibility. */ + +static PyThreadState * +resolve_final_tstate(_PyRuntimeState *runtime) +{ + PyThreadState *main_tstate = runtime->main_tstate; + assert(main_tstate != NULL); + assert(main_tstate->thread_id == runtime->main_thread); + PyInterpreterState *main_interp = _PyInterpreterState_Main(); + assert(main_tstate->interp == main_interp); + + PyThreadState *tstate = _PyThreadState_GET(); + if (_Py_IsMainThread()) { + if (tstate != main_tstate) { + /* This implies that Py_Finalize() was called while + a non-main interpreter was active or while the main + tstate was temporarily swapped out with another. + Neither case should be allowed, but, until we get around + to fixing that (and Py_Exit()), we're letting it go. */ + (void)PyThreadState_Swap(main_tstate); + } + } + else { + /* This is another unfortunate case where Py_Finalize() was + called when it shouldn't have been. We can't simply switch + over to the main thread. At the least, however, we can make + sure the main interpreter is active. */ + if (!_Py_IsMainInterpreter(tstate->interp)) { + /* We don't go to the trouble of updating runtime->main_tstate + since it will be dead soon anyway. */ + main_tstate = + _PyThreadState_New(main_interp, _PyThreadState_WHENCE_FINI); + if (main_tstate != NULL) { + _PyThreadState_Bind(main_tstate); + (void)PyThreadState_Swap(main_tstate); + } + else { + /* Fall back to the current tstate. It's better than nothing. */ + main_tstate = tstate; + } + } + } + assert(main_tstate != NULL); + + /* We might want to warn if main_tstate->current_frame != NULL. */ + + return main_tstate; +} + +static int +_Py_Finalize(_PyRuntimeState *runtime) { int status = 0; - _PyRuntimeState *runtime = &_PyRuntime; + /* Bail out early if already finalized (or never initialized). */ if (!runtime->initialized) { return status; } - /* Get current thread state and interpreter pointer */ - PyThreadState *tstate = _PyThreadState_GET(); - // XXX assert(_Py_IsMainInterpreter(tstate->interp)); - // XXX assert(_Py_IsMainThread()); + /* Get final thread state pointer. */ + PyThreadState *tstate = resolve_final_tstate(runtime); // Block some operations. tstate->interp->finalizing = 1; @@ -1844,6 +2051,8 @@ Py_FinalizeEx(void) _PyAtExit_Call(tstate->interp); + assert(_PyThreadState_GET() == tstate); + /* Copy the core config, PyInterpreterState_Delete() free the core config memory */ #ifdef Py_REF_DEBUG @@ -1857,7 +2066,10 @@ Py_FinalizeEx(void) int malloc_stats = tstate->interp->config.malloc_stats; #endif - /* Remaining daemon threads will automatically exit + /* Ensure that remaining threads are detached */ + _PyEval_StopTheWorldAll(runtime); + + /* Remaining daemon threads will be trapped in PyThread_hang_thread when they attempt to take the GIL (ex: PyEval_RestoreThread()). */ _PyInterpreterState_SetFinalizing(tstate->interp, tstate); _PyRuntimeState_SetFinalizing(runtime, tstate); @@ -1873,8 +2085,11 @@ Py_FinalizeEx(void) will be called in the current Python thread. Since _PyRuntimeState_SetFinalizing() has been called, no other Python thread can take the GIL at this point: if they try, they will exit - immediately. */ - _PyThreadState_DeleteExcept(tstate); + immediately. We start the world once we are the only thread state left, + before we call destructors. */ + PyThreadState *list = _PyThreadState_RemoveExcept(tstate); + _PyEval_StartTheWorldAll(runtime); + _PyThreadState_DeleteList(list); /* At this point no Python code should be running at all. The only thread state left should be the main thread of the main @@ -1918,6 +2133,9 @@ Py_FinalizeEx(void) _PyImport_FiniExternal(tstate->interp); finalize_modules(tstate); + /* Clean up any lingering subinterpreters. */ + finalize_subinterpreters(); + /* Print debug stats if any */ _PyEval_Fini(); @@ -2002,6 +2220,19 @@ Py_FinalizeEx(void) _PyTraceMalloc_Fini(); +#ifdef Py_TRACE_REFS + /* Display addresses (& refcnts) of all objects still alive. + * An address can be used to find the repr of the object, printed + * above by _Py_PrintReferences. */ + if (dump_refs) { + _Py_PrintReferenceAddresses(tstate->interp, stderr); + } + if (dump_refs_fp != NULL) { + _Py_PrintReferenceAddresses(tstate->interp, dump_refs_fp); + fclose(dump_refs_fp); + } +#endif /* Py_TRACE_REFS */ + #ifdef WITH_PYMALLOC if (malloc_stats) { _PyObject_DebugMallocStats(stderr); @@ -2018,32 +2249,22 @@ Py_FinalizeEx(void) #endif _Py_FinalizeAllocatedBlocks(runtime); -#ifdef Py_TRACE_REFS - /* Display addresses (& refcnts) of all objects still alive. - * An address can be used to find the repr of the object, printed - * above by _Py_PrintReferences. - */ - - if (dump_refs) { - _Py_PrintReferenceAddresses(tstate->interp, stderr); - } - - if (dump_refs_fp != NULL) { - _Py_PrintReferenceAddresses(tstate->interp, dump_refs_fp); - fclose(dump_refs_fp); - } -#endif /* Py_TRACE_REFS */ - call_ll_exitfuncs(runtime); _PyRuntime_Finalize(); return status; } +int +Py_FinalizeEx(void) +{ + return _Py_Finalize(&_PyRuntime); +} + void Py_Finalize(void) { - Py_FinalizeEx(); + (void)_Py_Finalize(&_PyRuntime); } @@ -2061,7 +2282,8 @@ Py_Finalize(void) */ static PyStatus -new_interpreter(PyThreadState **tstate_p, const PyInterpreterConfig *config) +new_interpreter(PyThreadState **tstate_p, + const PyInterpreterConfig *config, long whence) { PyStatus status; @@ -2079,34 +2301,28 @@ new_interpreter(PyThreadState **tstate_p, const PyInterpreterConfig *config) interpreters: disable PyGILState_Check(). */ runtime->gilstate.check_enabled = 0; - PyInterpreterState *interp = PyInterpreterState_New(); + // XXX Might new_interpreter() have been called without the GIL held? + PyThreadState *save_tstate = _PyThreadState_GET(); + PyThreadState *tstate = NULL; + PyInterpreterState *interp; + status = _PyInterpreterState_New(save_tstate, &interp); if (interp == NULL) { - *tstate_p = NULL; - return _PyStatus_OK(); - } - - PyThreadState *tstate = _PyThreadState_New(interp); - if (tstate == NULL) { - PyInterpreterState_Delete(interp); - *tstate_p = NULL; - return _PyStatus_OK(); + goto error; } - _PyThreadState_Bind(tstate); - - // XXX For now we do this before the GIL is created. - PyThreadState *save_tstate = _PyThreadState_SwapNoGIL(tstate); - int has_gil = 0; + _PyInterpreterState_SetWhence(interp, whence); + interp->_ready = 1; /* From this point until the init_interp_create_gil() call, we must not do anything that requires that the GIL be held (or otherwise exist). That applies whether or not the new interpreter has its own GIL (e.g. the main interpreter). */ + if (save_tstate != NULL) { + _PyThreadState_Detach(save_tstate); + } /* Copy the current interpreter config into the new interpreter */ const PyConfig *src_config; if (save_tstate != NULL) { - // XXX Might new_interpreter() have been called without the GIL held? - _PyEval_ReleaseLock(save_tstate->interp, save_tstate); src_config = _PyInterpreterState_GetConfig(save_tstate->interp); } else @@ -2130,13 +2346,27 @@ new_interpreter(PyThreadState **tstate_p, const PyInterpreterConfig *config) // This could be done in init_interpreter() (in pystate.c) if it // didn't depend on interp->feature_flags being set already. - _PyObject_InitState(interp); - - status = init_interp_create_gil(tstate, config->gil); + status = _PyObject_InitState(interp); if (_PyStatus_EXCEPTION(status)) { + return status; + } + + // initialize the interp->obmalloc state. This must be done after + // the settings are loaded (so that feature_flags are set) but before + // any calls are made to obmalloc functions. + if (_PyMem_init_obmalloc(interp) < 0) { + status = _PyStatus_NO_MEMORY(); + goto error; + } + + tstate = _PyThreadState_New(interp, _PyThreadState_WHENCE_INIT); + if (tstate == NULL) { + status = _PyStatus_NO_MEMORY(); goto error; } - has_gil = 1; + + _PyThreadState_Bind(tstate); + init_interp_create_gil(tstate, config->gil); /* No objects have been created yet. */ @@ -2155,19 +2385,14 @@ new_interpreter(PyThreadState **tstate_p, const PyInterpreterConfig *config) error: *tstate_p = NULL; - - /* Oops, it didn't work. Undo it all. */ - PyErr_PrintEx(0); - if (has_gil) { - PyThreadState_Swap(save_tstate); + if (tstate != NULL) { + Py_EndInterpreter(tstate); + } else if (interp != NULL) { + PyInterpreterState_Delete(interp); } - else { - _PyThreadState_SwapNoGIL(save_tstate); + if (save_tstate != NULL) { + _PyThreadState_Attach(save_tstate); } - PyThreadState_Clear(tstate); - PyThreadState_Delete(tstate); - PyInterpreterState_Delete(interp); - return status; } @@ -2175,15 +2400,17 @@ PyStatus Py_NewInterpreterFromConfig(PyThreadState **tstate_p, const PyInterpreterConfig *config) { - return new_interpreter(tstate_p, config); + long whence = _PyInterpreterState_WHENCE_CAPI; + return new_interpreter(tstate_p, config, whence); } PyThreadState * Py_NewInterpreter(void) { PyThreadState *tstate = NULL; + long whence = _PyInterpreterState_WHENCE_LEGACY_CAPI; const PyInterpreterConfig config = _PyInterpreterConfig_LEGACY_INIT; - PyStatus status = new_interpreter(&tstate, &config); + PyStatus status = new_interpreter(&tstate, &config, whence); if (_PyStatus_EXCEPTION(status)) { Py_ExitStatusException(status); } @@ -2210,7 +2437,7 @@ Py_EndInterpreter(PyThreadState *tstate) if (tstate != _PyThreadState_GET()) { Py_FatalError("thread is not current"); } - if (tstate->cframe->current_frame != NULL) { + if (tstate->current_frame != NULL) { Py_FatalError("thread still has a frame"); } interp->finalizing = 1; @@ -2253,13 +2480,86 @@ _Py_IsInterpreterFinalizing(PyInterpreterState *interp) return finalizing != NULL; } +static void +finalize_subinterpreters(void) +{ + PyThreadState *final_tstate = _PyThreadState_GET(); + PyInterpreterState *main_interp = _PyInterpreterState_Main(); + assert(final_tstate->interp == main_interp); + _PyRuntimeState *runtime = main_interp->runtime; + struct pyinterpreters *interpreters = &runtime->interpreters; + + /* Get the first interpreter in the list. */ + HEAD_LOCK(runtime); + PyInterpreterState *interp = interpreters->head; + if (interp == main_interp) { + interp = interp->next; + } + HEAD_UNLOCK(runtime); + + /* Bail out if there are no subinterpreters left. */ + if (interp == NULL) { + return; + } + + /* Warn the user if they forgot to clean up subinterpreters. */ + (void)PyErr_WarnEx( + PyExc_RuntimeWarning, + "remaining subinterpreters; " + "destroy them with _interpreters.destroy()", + 0); + + /* Swap out the current tstate, which we know must belong + to the main interpreter. */ + _PyThreadState_Detach(final_tstate); + + /* Clean up all remaining subinterpreters. */ + while (interp != NULL) { + assert(!_PyInterpreterState_IsRunningMain(interp)); + + /* Find the tstate to use for fini. We assume the interpreter + will have at most one tstate at this point. */ + PyThreadState *tstate = interp->threads.head; + if (tstate != NULL) { + /* Ideally we would be able to use tstate as-is, and rely + on it being in a ready state: no exception set, not + running anything (tstate->current_frame), matching the + current thread ID (tstate->thread_id). To play it safe, + we always delete it and use a fresh tstate instead. */ + assert(tstate != final_tstate); + _PyThreadState_Attach(tstate); + PyThreadState_Clear(tstate); + _PyThreadState_Detach(tstate); + PyThreadState_Delete(tstate); + } + tstate = _PyThreadState_NewBound(interp, _PyThreadState_WHENCE_FINI); + + /* Destroy the subinterpreter. */ + _PyThreadState_Attach(tstate); + Py_EndInterpreter(tstate); + assert(_PyThreadState_GET() == NULL); + + /* Advance to the next interpreter. */ + HEAD_LOCK(runtime); + interp = interpreters->head; + if (interp == main_interp) { + interp = interp->next; + } + HEAD_UNLOCK(runtime); + } + + /* Switch back to the main interpreter. */ + _PyThreadState_Attach(final_tstate); +} + + /* Add the __main__ module */ static PyStatus add_main_module(PyInterpreterState *interp) { - PyObject *m, *d, *loader, *ann_dict; - m = PyImport_AddModule("__main__"); + PyObject *m, *d, *ann_dict; + m = PyImport_AddModuleObject(&_Py_ID(__main__)); if (m == NULL) return _PyStatus_ERR("can't create __main__ module"); @@ -2271,10 +2571,11 @@ add_main_module(PyInterpreterState *interp) } Py_DECREF(ann_dict); - if (_PyDict_GetItemStringWithError(d, "__builtins__") == NULL) { - if (PyErr_Occurred()) { - return _PyStatus_ERR("Failed to test __main__.__builtins__"); - } + int has_builtins = PyDict_ContainsString(d, "__builtins__"); + if (has_builtins < 0) { + return _PyStatus_ERR("Failed to test __main__.__builtins__"); + } + if (!has_builtins) { PyObject *bimod = PyImport_ImportModule("builtins"); if (bimod == NULL) { return _PyStatus_ERR("Failed to retrieve builtins module"); @@ -2290,11 +2591,13 @@ add_main_module(PyInterpreterState *interp) * will be set if __main__ gets further initialized later in the startup * process. */ - loader = _PyDict_GetItemStringWithError(d, "__loader__"); - if (loader == NULL || loader == Py_None) { - if (PyErr_Occurred()) { - return _PyStatus_ERR("Failed to test __main__.__loader__"); - } + PyObject *loader; + if (PyDict_GetItemStringRef(d, "__loader__", &loader) < 0) { + return _PyStatus_ERR("Failed to test __main__.__loader__"); + } + int has_loader = !(loader == NULL || loader == Py_None); + Py_XDECREF(loader); + if (!has_loader) { PyObject *loader = _PyImport_GetImportlibLoader(interp, "BuiltinImporter"); if (loader == NULL) { @@ -2322,54 +2625,6 @@ init_import_site(void) return _PyStatus_OK(); } -/* Check if a file descriptor is valid or not. - Return 0 if the file descriptor is invalid, return non-zero otherwise. */ -static int -is_valid_fd(int fd) -{ -/* dup() is faster than fstat(): fstat() can require input/output operations, - whereas dup() doesn't. There is a low risk of EMFILE/ENFILE at Python - startup. Problem: dup() doesn't check if the file descriptor is valid on - some platforms. - - fcntl(fd, F_GETFD) is even faster, because it only checks the process table. - It is preferred over dup() when available, since it cannot fail with the - "too many open files" error (EMFILE). - - bpo-30225: On macOS Tiger, when stdout is redirected to a pipe and the other - side of the pipe is closed, dup(1) succeed, whereas fstat(1, &st) fails with - EBADF. FreeBSD has similar issue (bpo-32849). - - Only use dup() on Linux where dup() is enough to detect invalid FD - (bpo-32849). -*/ - if (fd < 0) { - return 0; - } -#if defined(F_GETFD) && ( \ - defined(__linux__) || \ - defined(__APPLE__) || \ - defined(__wasm__)) - return fcntl(fd, F_GETFD) >= 0; -#elif defined(__linux__) - int fd2 = dup(fd); - if (fd2 >= 0) { - close(fd2); - } - return (fd2 >= 0); -#elif defined(MS_WINDOWS) - HANDLE hfile; - _Py_BEGIN_SUPPRESS_IPH - hfile = (HANDLE)_get_osfhandle(fd); - _Py_END_SUPPRESS_IPH - return (hfile != INVALID_HANDLE_VALUE - && GetFileType(hfile) != FILE_TYPE_UNKNOWN); -#else - struct stat st; - return (fstat(fd, &st) == 0); -#endif -} - /* returns Py_None if the fd is not valid */ static PyObject* create_stdio(const PyConfig *config, PyObject* io, @@ -2383,8 +2638,9 @@ create_stdio(const PyConfig *config, PyObject* io, int buffering, isatty; const int buffered_stdio = config->buffered_stdio; - if (!is_valid_fd(fd)) + if (!_Py_IsValidFD(fd)) { Py_RETURN_NONE; + } /* stdin is always opened in buffered mode, first because it shouldn't make a difference in common use cases, second because TextIOWrapper @@ -2500,9 +2756,9 @@ error: Py_XDECREF(text); Py_XDECREF(raw); - if (PyErr_ExceptionMatches(PyExc_OSError) && !is_valid_fd(fd)) { + if (PyErr_ExceptionMatches(PyExc_OSError) && !_Py_IsValidFD(fd)) { /* Issue #24891: the file descriptor was closed after the first - is_valid_fd() check was called. Ignore the OSError and set the + _Py_IsValidFD() check was called. Ignore the OSError and set the stream to None. */ PyErr_Clear(); Py_RETURN_NONE; @@ -2636,12 +2892,141 @@ error: res = _PyStatus_ERR("can't initialize sys standard streams"); done: - _Py_ClearStandardStreamEncoding(); Py_XDECREF(iomod); return res; } +#ifdef __ANDROID__ +#include + +static PyObject * +android_log_write_impl(PyObject *self, PyObject *args) +{ + int prio = 0; + const char *tag = NULL; + const char *text = NULL; + if (!PyArg_ParseTuple(args, "isy", &prio, &tag, &text)) { + return NULL; + } + + // Despite its name, this function is part of the public API + // (https://developer.android.com/ndk/reference/group/logging). + __android_log_write(prio, tag, text); + Py_RETURN_NONE; +} + + +static PyMethodDef android_log_write_method = { + "android_log_write", android_log_write_impl, METH_VARARGS +}; + + +static PyStatus +init_android_streams(PyThreadState *tstate) +{ + PyStatus status = _PyStatus_OK(); + PyObject *_android_support = NULL; + PyObject *android_log_write = NULL; + PyObject *result = NULL; + + _android_support = PyImport_ImportModule("_android_support"); + if (_android_support == NULL) { + goto error; + } + + android_log_write = PyCFunction_New(&android_log_write_method, NULL); + if (android_log_write == NULL) { + goto error; + } + + // These log priorities match those used by Java's System.out and System.err. + result = PyObject_CallMethod( + _android_support, "init_streams", "Oii", + android_log_write, ANDROID_LOG_INFO, ANDROID_LOG_WARN); + if (result == NULL) { + goto error; + } + + goto done; + +error: + _PyErr_Print(tstate); + status = _PyStatus_ERR("failed to initialize Android streams"); + +done: + Py_XDECREF(result); + Py_XDECREF(android_log_write); + Py_XDECREF(_android_support); + return status; +} + +#endif // __ANDROID__ + +#if defined(__APPLE__) && USE_APPLE_SYSTEM_LOG + +static PyObject * +apple_log_write_impl(PyObject *self, PyObject *args) +{ + int logtype = 0; + const char *text = NULL; + if (!PyArg_ParseTuple(args, "iy", &logtype, &text)) { + return NULL; + } + + // Pass the user-provided text through explicit %s formatting + // to avoid % literals being interpreted as a formatting directive. + os_log_with_type(OS_LOG_DEFAULT, logtype, "%s", text); + Py_RETURN_NONE; +} + + +static PyMethodDef apple_log_write_method = { + "apple_log_write", apple_log_write_impl, METH_VARARGS +}; + + +static PyStatus +init_apple_streams(PyThreadState *tstate) +{ + PyStatus status = _PyStatus_OK(); + PyObject *_apple_support = NULL; + PyObject *apple_log_write = NULL; + PyObject *result = NULL; + + _apple_support = PyImport_ImportModule("_apple_support"); + if (_apple_support == NULL) { + goto error; + } + + apple_log_write = PyCFunction_New(&apple_log_write_method, NULL); + if (apple_log_write == NULL) { + goto error; + } + + // Initialize the logging streams, sending stdout -> Default; stderr -> Error + result = PyObject_CallMethod( + _apple_support, "init_streams", "Oii", + apple_log_write, OS_LOG_TYPE_DEFAULT, OS_LOG_TYPE_ERROR); + if (result == NULL) { + goto error; + } + goto done; + +error: + _PyErr_Print(tstate); + status = _PyStatus_ERR("failed to initialize Apple log streams"); + +done: + Py_XDECREF(result); + Py_XDECREF(apple_log_write); + Py_XDECREF(_apple_support); + return status; +} + +#endif // __APPLE__ && USE_APPLE_SYSTEM_LOG + + static void _Py_FatalError_DumpTracebacks(int fd, PyInterpreterState *interp, PyThreadState *tstate) @@ -2689,13 +3074,9 @@ _Py_FatalError_PrintExc(PyThreadState *tstate) Py_DECREF(exc); /* sys.stderr may be buffered: call sys.stderr.flush() */ - PyObject *res = PyObject_CallMethodNoArgs(ferr, &_Py_ID(flush)); - if (res == NULL) { + if (_PyFile_Flush(ferr) < 0) { _PyErr_Clear(tstate); } - else { - Py_DECREF(res); - } Py_DECREF(ferr); return has_tb; @@ -2782,6 +3163,30 @@ fatal_error_exit(int status) } } +static inline int +acquire_dict_lock_for_dump(PyObject *obj) +{ +#ifdef Py_GIL_DISABLED + PyMutex *mutex = &obj->ob_mutex; + if (_PyMutex_LockTimed(mutex, 0, 0) == PY_LOCK_ACQUIRED) { + return 1; + } + return 0; +#else + return 1; +#endif +} + +static inline void +release_dict_lock_for_dump(PyObject *obj) +{ +#ifdef Py_GIL_DISABLED + PyMutex *mutex = &obj->ob_mutex; + // We can not call PyMutex_Unlock because it's not async-signal-safe. + // So not to wake up other threads, we just use a simple atomic store in here. + _Py_atomic_store_uint8(&mutex->_bits, _Py_UNLOCKED); +#endif +} // Dump the list of extension modules of sys.modules, excluding stdlib modules // (sys.stdlib_module_names), into fd file descriptor. @@ -2809,13 +3214,18 @@ _Py_DumpExtensionModules(int fd, PyInterpreterState *interp) PyObject *stdlib_module_names = NULL; if (interp->sysdict != NULL) { pos = 0; - while (PyDict_Next(interp->sysdict, &pos, &key, &value)) { + if (!acquire_dict_lock_for_dump(interp->sysdict)) { + // If we cannot acquire the lock, just don't dump the list of extension modules. + return; + } + while (_PyDict_Next(interp->sysdict, &pos, &key, &value, NULL)) { if (PyUnicode_Check(key) && PyUnicode_CompareWithASCIIString(key, "stdlib_module_names") == 0) { stdlib_module_names = value; break; } } + release_dict_lock_for_dump(interp->sysdict); } // If we failed to get sys.stdlib_module_names or it's not a frozenset, // don't exclude stdlib modules. @@ -2827,7 +3237,11 @@ _Py_DumpExtensionModules(int fd, PyInterpreterState *interp) int header = 1; Py_ssize_t count = 0; pos = 0; - while (PyDict_Next(modules, &pos, &key, &value)) { + if (!acquire_dict_lock_for_dump(modules)) { + // If we cannot acquire the lock, just don't dump the list of extension modules. + return; + } + while (_PyDict_Next(modules, &pos, &key, &value, NULL)) { if (!PyUnicode_Check(key)) { continue; } @@ -2842,6 +3256,7 @@ _Py_DumpExtensionModules(int fd, PyInterpreterState *interp) Py_ssize_t i = 0; PyObject *item; Py_hash_t hash; + // if stdlib_module_names is not NULL, it is always a frozenset. while (_PySet_NextEntry(stdlib_module_names, &i, &item, &hash)) { if (PyUnicode_Check(item) && PyUnicode_Compare(key, item) == 0) @@ -2867,6 +3282,7 @@ _Py_DumpExtensionModules(int fd, PyInterpreterState *interp) _Py_DumpASCII(fd, key); count++; } + release_dict_lock_for_dump(modules); if (count) { PUTS(fd, " (total: "); @@ -3042,14 +3458,14 @@ wait_for_thread_shutdown(PyThreadState *tstate) PyObject *threading = PyImport_GetModule(&_Py_ID(threading)); if (threading == NULL) { if (_PyErr_Occurred(tstate)) { - PyErr_WriteUnraisable(NULL); + PyErr_FormatUnraisable("Exception ignored on threading shutdown"); } /* else: threading not imported */ return; } result = PyObject_CallMethodNoArgs(threading, &_Py_ID(_shutdown)); if (result == NULL) { - PyErr_WriteUnraisable(threading); + PyErr_FormatUnraisable("Exception ignored on threading shutdown"); } else { Py_DECREF(result); @@ -3060,13 +3476,13 @@ wait_for_thread_shutdown(PyThreadState *tstate) int Py_AtExit(void (*func)(void)) { struct _atexit_runtime_state *state = &_PyRuntime.atexit; - PyThread_acquire_lock(state->mutex, WAIT_LOCK); + PyMutex_Lock(&state->mutex); if (state->ncallbacks >= NEXITFUNCS) { - PyThread_release_lock(state->mutex); + PyMutex_Unlock(&state->mutex); return -1; } state->callbacks[state->ncallbacks++] = func; - PyThread_release_lock(state->mutex); + PyMutex_Unlock(&state->mutex); return 0; } @@ -3076,18 +3492,18 @@ call_ll_exitfuncs(_PyRuntimeState *runtime) atexit_callbackfunc exitfunc; struct _atexit_runtime_state *state = &runtime->atexit; - PyThread_acquire_lock(state->mutex, WAIT_LOCK); + PyMutex_Lock(&state->mutex); while (state->ncallbacks > 0) { /* pop last function from the list */ state->ncallbacks--; exitfunc = state->callbacks[state->ncallbacks]; state->callbacks[state->ncallbacks] = NULL; - PyThread_release_lock(state->mutex); + PyMutex_Unlock(&state->mutex); exitfunc(); - PyThread_acquire_lock(state->mutex, WAIT_LOCK); + PyMutex_Lock(&state->mutex); } - PyThread_release_lock(state->mutex); + PyMutex_Unlock(&state->mutex); fflush(stdout); fflush(stderr); @@ -3096,7 +3512,11 @@ call_ll_exitfuncs(_PyRuntimeState *runtime) void _Py_NO_RETURN Py_Exit(int sts) { - if (Py_FinalizeEx() < 0) { + PyThreadState *tstate = _PyThreadState_GET(); + if (tstate != NULL && _PyThreadState_IsRunningMain(tstate)) { + _PyInterpreterState_SetNotRunningMain(tstate->interp); + } + if (_Py_Finalize(&_PyRuntime) < 0) { sts = 120; } @@ -3178,7 +3598,7 @@ PyOS_getsig(int sig) /* * All of the code in this function must only use async-signal-safe functions, - * listed at `man 7 signal` or + * listed at `man 7 signal-safety` or * http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html. */ PyOS_sighandler_t @@ -3208,7 +3628,3 @@ PyOS_setsig(int sig, PyOS_sighandler_t handler) return oldhandler; #endif } - -#ifdef __cplusplus -} -#endif diff --git a/contrib/tools/python3/Python/pystate.c b/contrib/tools/python3/Python/pystate.c index c829f644318..2b1bff7f108 100644 --- a/contrib/tools/python3/Python/pystate.c +++ b/contrib/tools/python3/Python/pystate.c @@ -2,18 +2,24 @@ /* Thread and interpreter state structures and their interfaces */ #include "Python.h" +#include "pycore_abstract.h" // _PyIndex_Check() #include "pycore_ceval.h" #include "pycore_code.h" // stats +#include "pycore_critical_section.h" // _PyCriticalSection_Resume() #include "pycore_dtoa.h" // _dtoa_state_INIT() +#include "pycore_emscripten_trampoline.h" // _Py_EmscriptenTrampoline_Init() #include "pycore_frame.h" -#include "pycore_initconfig.h" +#include "pycore_initconfig.h" // _PyStatus_OK() #include "pycore_object.h" // _PyType_InitCache() -#include "pycore_pyerrors.h" -#include "pycore_pylifecycle.h" +#include "pycore_object_stack.h" // _PyObjectStackChunk_ClearFreeList() +#include "pycore_parking_lot.h" // _PyParkingLot_AfterFork() +#include "pycore_pyerrors.h" // _PyErr_Clear() +#include "pycore_pylifecycle.h" // _PyAST_Fini() #include "pycore_pymem.h" // _PyMem_SetDefaultAllocator() #include "pycore_pystate.h" #include "pycore_runtime_init.h" // _PyRuntimeState_INIT -#include "pycore_sysmodule.h" +#include "pycore_sysmodule.h" // _PySys_Audit() +#include "pycore_obmalloc.h" // _PyMem_obmalloc_state_on_heap() /* -------------------------------------------------------------------------- CAUTION @@ -26,16 +32,12 @@ to avoid the expense of doing their own locking). -------------------------------------------------------------------------- */ #ifdef HAVE_DLOPEN -#ifdef HAVE_DLFCN_H -#include -#endif -#if !HAVE_DECL_RTLD_LAZY -#define RTLD_LAZY 1 -#endif -#endif - -#ifdef __cplusplus -extern "C" { +# ifdef HAVE_DLFCN_H +# include +# endif +# if !HAVE_DECL_RTLD_LAZY +# define RTLD_LAZY 1 +# endif #endif @@ -66,7 +68,7 @@ _Py_thread_local PyThreadState *_Py_tss_tstate = NULL; #endif static inline PyThreadState * -current_fast_get(_PyRuntimeState *Py_UNUSED(runtime)) +current_fast_get(void) { #ifdef HAVE_THREAD_LOCAL return _Py_tss_tstate; @@ -100,14 +102,14 @@ current_fast_clear(_PyRuntimeState *Py_UNUSED(runtime)) } #define tstate_verify_not_active(tstate) \ - if (tstate == current_fast_get((tstate)->interp->runtime)) { \ + if (tstate == current_fast_get()) { \ _Py_FatalErrorFormat(__func__, "tstate %p is still current", tstate); \ } PyThreadState * _PyThreadState_GetCurrent(void) { - return current_fast_get(&_PyRuntime); + return current_fast_get(); } @@ -237,6 +239,8 @@ tstate_is_bound(PyThreadState *tstate) static void bind_gilstate_tstate(PyThreadState *); static void unbind_gilstate_tstate(PyThreadState *); +static void tstate_mimalloc_bind(PyThreadState *); + static void bind_tstate(PyThreadState *tstate) { @@ -257,6 +261,15 @@ bind_tstate(PyThreadState *tstate) tstate->native_thread_id = PyThread_get_thread_native_id(); #endif +#ifdef Py_GIL_DISABLED + // Initialize biased reference counting inter-thread queue. Note that this + // needs to be initialized from the active thread. + _Py_brc_init_thread(tstate); +#endif + + // mimalloc state needs to be initialized from the active thread. + tstate_mimalloc_bind(tstate); + tstate->_status.bound = 1; } @@ -359,10 +372,9 @@ holds_gil(PyThreadState *tstate) return PyGILState_Check(); } #endif - _PyRuntimeState *runtime = tstate->interp->runtime; /* Must be the tstate for this thread */ - assert(tstate == gilstate_tss_get(runtime)); - return tstate == current_fast_get(runtime); + assert(tstate == gilstate_tss_get(tstate->interp->runtime)); + return tstate == current_fast_get(); } @@ -382,61 +394,34 @@ _Py_COMP_DIAG_IGNORE_DEPR_DECLS Note that we initialize "initial" relative to _PyRuntime, to ensure pre-initialized pointers point to the active runtime state (and not "initial"). */ -static const _PyRuntimeState initial = _PyRuntimeState_INIT(_PyRuntime); +static const _PyRuntimeState initial = _PyRuntimeState_INIT(_PyRuntime, ""); _Py_COMP_DIAG_POP -#define NUMLOCKS 9 #define LOCKS_INIT(runtime) \ { \ &(runtime)->interpreters.mutex, \ - &(runtime)->xidregistry.mutex, \ - &(runtime)->getargs.mutex, \ - &(runtime)->unicode_state.ids.lock, \ + &(runtime)->xi.registry.mutex, \ + &(runtime)->unicode_state.ids.mutex, \ &(runtime)->imports.extensions.mutex, \ - &(runtime)->ceval.pending_mainthread.lock, \ + &(runtime)->ceval.pending_mainthread.mutex, \ &(runtime)->atexit.mutex, \ &(runtime)->audit_hooks.mutex, \ &(runtime)->allocators.mutex, \ + &(runtime)->_main_interpreter.types.mutex, \ + &(runtime)->_main_interpreter.code_state.mutex, \ } -static int -alloc_for_runtime(PyThread_type_lock locks[NUMLOCKS]) -{ - /* Force default allocator, since _PyRuntimeState_Fini() must - use the same allocator than this function. */ - PyMemAllocatorEx old_alloc; - _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc); - - for (int i = 0; i < NUMLOCKS; i++) { - PyThread_type_lock lock = PyThread_allocate_lock(); - if (lock == NULL) { - for (int j = 0; j < i; j++) { - PyThread_free_lock(locks[j]); - locks[j] = NULL; - } - break; - } - locks[i] = lock; - } - - PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); - return 0; -} - static void init_runtime(_PyRuntimeState *runtime, void *open_code_hook, void *open_code_userdata, _Py_AuditHookEntry *audit_hook_head, - Py_ssize_t unicode_next_index, - PyThread_type_lock locks[NUMLOCKS]) + Py_ssize_t unicode_next_index) { - if (runtime->_initialized) { - Py_FatalError("runtime already initialized"); - } - assert(!runtime->preinitializing && - !runtime->preinitialized && - !runtime->core_initialized && - !runtime->initialized); + assert(!runtime->preinitializing); + assert(!runtime->preinitialized); + assert(!runtime->core_initialized); + assert(!runtime->initialized); + assert(!runtime->_initialized); runtime->open_code_hook = open_code_hook; runtime->open_code_userdata = open_code_userdata; @@ -444,17 +429,15 @@ init_runtime(_PyRuntimeState *runtime, PyPreConfig_InitPythonConfig(&runtime->preconfig); - PyThread_type_lock *lockptrs[NUMLOCKS] = LOCKS_INIT(runtime); - for (int i = 0; i < NUMLOCKS; i++) { - assert(locks[i] != NULL); - *lockptrs[i] = locks[i]; - } - // Set it to the ID of the main thread of the main interpreter. runtime->main_thread = PyThread_get_thread_ident(); runtime->unicode_state.ids.next_index = unicode_next_index; +#if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) + _Py_EmscriptenTrampoline_Init(runtime); +#endif + runtime->_initialized = 1; } @@ -471,15 +454,13 @@ _PyRuntimeState_Init(_PyRuntimeState *runtime) // is called multiple times. Py_ssize_t unicode_next_index = runtime->unicode_state.ids.next_index; - PyThread_type_lock locks[NUMLOCKS]; - if (alloc_for_runtime(locks) != 0) { - return _PyStatus_NO_MEMORY(); - } - if (runtime->_initialized) { // Py_Initialize() must be running again. // Reset to _PyRuntimeState_INIT. memcpy(runtime, &initial, sizeof(*runtime)); + // Preserve the cookie from the original runtime. + memcpy(runtime->debug_offsets.cookie, _Py_Debug_Cookie, 8); + assert(!runtime->_initialized); } if (gilstate_tss_init(runtime) != 0) { @@ -493,13 +474,11 @@ _PyRuntimeState_Init(_PyRuntimeState *runtime) } init_runtime(runtime, open_code_hook, open_code_userdata, audit_hook_head, - unicode_next_index, locks); + unicode_next_index); return _PyStatus_OK(); } -static void _xidregistry_clear(struct _xidregistry *); - void _PyRuntimeState_Fini(_PyRuntimeState *runtime) { @@ -508,8 +487,6 @@ _PyRuntimeState_Fini(_PyRuntimeState *runtime) assert(runtime->object_state.interpreter_leaks == 0); #endif - _xidregistry_clear(&runtime->xidregistry); - if (gilstate_tss_initialized(runtime)) { gilstate_tss_fini(runtime); } @@ -517,27 +494,6 @@ _PyRuntimeState_Fini(_PyRuntimeState *runtime) if (PyThread_tss_is_created(&runtime->trashTSSkey)) { PyThread_tss_delete(&runtime->trashTSSkey); } - - /* Force the allocator used by _PyRuntimeState_Init(). */ - PyMemAllocatorEx old_alloc; - _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc); -#define FREE_LOCK(LOCK) \ - if (LOCK != NULL) { \ - PyThread_free_lock(LOCK); \ - LOCK = NULL; \ - } - - PyThread_type_lock *lockptrs[NUMLOCKS] = LOCKS_INIT(runtime); - for (int i = 0; i < NUMLOCKS; i++) { - FREE_LOCK(*lockptrs[i]); - } - -#undef FREE_LOCK - if (runtime->sys_path_0 != NULL) { - PyMem_RawFree(runtime->sys_path_0); - runtime->sys_path_0 = NULL; - } - PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); } #ifdef HAVE_FORK @@ -549,29 +505,30 @@ _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime) // This was initially set in _PyRuntimeState_Init(). runtime->main_thread = PyThread_get_thread_ident(); - /* Force default allocator, since _PyRuntimeState_Fini() must - use the same allocator than this function. */ - PyMemAllocatorEx old_alloc; - _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc); + // Clears the parking lot. Any waiting threads are dead. This must be + // called before releasing any locks that use the parking lot. + _PyParkingLot_AfterFork(); - PyThread_type_lock *lockptrs[NUMLOCKS] = LOCKS_INIT(runtime); - int reinit_err = 0; - for (int i = 0; i < NUMLOCKS; i++) { - reinit_err += _PyThread_at_fork_reinit(lockptrs[i]); + // Re-initialize global locks + PyMutex *locks[] = LOCKS_INIT(runtime); + for (size_t i = 0; i < Py_ARRAY_LENGTH(locks); i++) { + _PyMutex_at_fork_reinit(locks[i]); } - /* PyOS_AfterFork_Child(), which calls this function, later calls - _PyInterpreterState_DeleteExceptMain(), so we only need to update - the main interpreter here. */ - assert(runtime->interpreters.main != NULL); - runtime->interpreters.main->xidregistry.mutex = runtime->xidregistry.mutex; +#ifdef Py_GIL_DISABLED + for (PyInterpreterState *interp = runtime->interpreters.head; + interp != NULL; interp = interp->next) + { + for (int i = 0; i < NUM_WEAKREF_LIST_LOCKS; i++) { + _PyMutex_at_fork_reinit(&interp->weakref_locks[i]); + } + } +#endif - PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); + _PyTypes_AfterFork(); /* bpo-42540: id_mutex is freed by _PyInterpreterState_Delete, which does * not force the default allocator. */ - reinit_err += _PyThread_at_fork_reinit(&runtime->interpreters.main->id_mutex); - - if (reinit_err < 0) { + if (_PyThread_at_fork_reinit(&runtime->interpreters.main->id_mutex) < 0) { return _PyStatus_ERR("Failed to reinitialize runtime locks"); } @@ -587,6 +544,8 @@ _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime) return _PyStatus_NO_MEMORY(); } + _PyThread_AfterFork(&runtime->threads); + return _PyStatus_OK(); } #endif @@ -607,24 +566,6 @@ _PyInterpreterState_Enable(_PyRuntimeState *runtime) { struct pyinterpreters *interpreters = &runtime->interpreters; interpreters->next_id = 0; - - /* Py_Finalize() calls _PyRuntimeState_Fini() which clears the mutex. - Create a new mutex if needed. */ - if (interpreters->mutex == NULL) { - /* Force default allocator, since _PyRuntimeState_Fini() must - use the same allocator than this function. */ - PyMemAllocatorEx old_alloc; - _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc); - - interpreters->mutex = PyThread_allocate_lock(); - - PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); - - if (interpreters->mutex == NULL) { - return _PyStatus_ERR("Can't initialize threads for interpreter"); - } - } - return _PyStatus_OK(); } @@ -641,10 +582,17 @@ free_interpreter(PyInterpreterState *interp) // The main interpreter is statically allocated so // should not be freed. if (interp != &_PyRuntime._main_interpreter) { + if (_PyMem_obmalloc_state_on_heap(interp)) { + // interpreter has its own obmalloc state, free it + PyMem_RawFree(interp->obmalloc); + interp->obmalloc = NULL; + } PyMem_RawFree(interp); } } - +#ifndef NDEBUG +static inline int check_interpreter_whence(long); +#endif /* Get the interpreter state to a minimal consistent state. Further init happens in pylifecycle.c before it can be used. All fields not initialized here are expected to be zeroed out, @@ -664,16 +612,20 @@ free_interpreter(PyInterpreterState *interp) main interpreter. We fix those fields here, in addition to the other dynamically initialized fields. */ -static void +static PyStatus init_interpreter(PyInterpreterState *interp, _PyRuntimeState *runtime, int64_t id, PyInterpreterState *next, - PyThread_type_lock pending_lock) + long whence) { if (interp->_initialized) { - Py_FatalError("interpreter already initialized"); + return _PyStatus_ERR("interpreter already initialized"); } + assert(interp->_whence == _PyInterpreterState_WHENCE_NOTSET); + assert(check_interpreter_whence(whence) == 0); + interp->_whence = whence; + assert(runtime != NULL); interp->runtime = runtime; @@ -684,21 +636,19 @@ init_interpreter(PyInterpreterState *interp, assert(next != NULL || (interp == runtime->interpreters.main)); interp->next = next; - /* Initialize obmalloc, but only for subinterpreters, - since the main interpreter is initialized statically. */ - if (interp != &runtime->_main_interpreter) { - poolp temp[OBMALLOC_USED_POOLS_SIZE] = \ - _obmalloc_pools_INIT(interp->obmalloc.pools); - memcpy(&interp->obmalloc.pools.used, temp, sizeof(temp)); - } + interp->threads_preallocated = &interp->_initial_thread; // We would call _PyObject_InitState() at this point // if interp->feature_flags were alredy set. - _PyEval_InitState(interp, pending_lock); + _PyEval_InitState(interp); _PyGC_InitState(&interp->gc); PyConfig_InitPythonConfig(&interp->config); _PyType_InitCache(interp); +#ifdef Py_GIL_DISABLED + _Py_brc_init_state(interp); +#endif + llist_init(&interp->mem_free_queue.head); for (int i = 0; i < _PY_MONITORING_UNGROUPED_EVENTS; i++) { interp->monitors.tools[i] = 0; } @@ -708,54 +658,49 @@ init_interpreter(PyInterpreterState *interp, } } - interp->sys_profile_initialized = false; - interp->sys_trace_initialized = false; +#ifdef _Py_TIER2 + (void)_Py_SetOptimizer(interp, NULL); + interp->executor_list_head = NULL; +#endif if (interp != &runtime->_main_interpreter) { /* Fix the self-referential, statically initialized fields. */ interp->dtoa = (struct _dtoa_state)_dtoa_state_INIT(interp); } - interp->f_opcode_trace_set = false; - - assert(runtime->xidregistry.mutex != NULL); - interp->xidregistry.mutex = runtime->xidregistry.mutex; interp->_initialized = 1; + return _PyStatus_OK(); } -PyInterpreterState * -PyInterpreterState_New(void) + +PyStatus +_PyInterpreterState_New(PyThreadState *tstate, PyInterpreterState **pinterp) { - PyInterpreterState *interp; - _PyRuntimeState *runtime = &_PyRuntime; - PyThreadState *tstate = current_fast_get(runtime); + *pinterp = NULL; - /* tstate is NULL when Py_InitializeFromConfig() calls - PyInterpreterState_New() to create the main interpreter. */ - if (_PySys_Audit(tstate, "cpython.PyInterpreterState_New", NULL) < 0) { - return NULL; - } + // Don't get runtime from tstate since tstate can be NULL + _PyRuntimeState *runtime = &_PyRuntime; - PyThread_type_lock pending_lock = PyThread_allocate_lock(); - if (pending_lock == NULL) { - if (tstate != NULL) { - _PyErr_NoMemory(tstate); + // tstate is NULL when pycore_create_interpreter() calls + // _PyInterpreterState_New() to create the main interpreter. + if (tstate != NULL) { + if (_PySys_Audit(tstate, "cpython.PyInterpreterState_New", NULL) < 0) { + return _PyStatus_ERR("sys.audit failed"); } - return NULL; } - /* Don't get runtime from tstate since tstate can be NULL. */ - struct pyinterpreters *interpreters = &runtime->interpreters; - /* We completely serialize creation of multiple interpreters, since it simplifies things here and blocking concurrent calls isn't a problem. Regardless, we must fully block subinterpreter creation until after the main interpreter is created. */ HEAD_LOCK(runtime); + struct pyinterpreters *interpreters = &runtime->interpreters; int64_t id = interpreters->next_id; interpreters->next_id += 1; // Allocate the interpreter and add it to the runtime state. + PyInterpreterState *interp; + PyStatus status; PyInterpreterState *old_head = interpreters->head; if (old_head == NULL) { // We are creating the main interpreter. @@ -774,39 +719,58 @@ PyInterpreterState_New(void) interp = alloc_interpreter(); if (interp == NULL) { + status = _PyStatus_NO_MEMORY(); goto error; } // Set to _PyInterpreterState_INIT. - memcpy(interp, &initial._main_interpreter, - sizeof(*interp)); + memcpy(interp, &initial._main_interpreter, sizeof(*interp)); if (id < 0) { /* overflow or Py_Initialize() not called yet! */ - if (tstate != NULL) { - _PyErr_SetString(tstate, PyExc_RuntimeError, - "failed to get an interpreter ID"); - } + status = _PyStatus_ERR("failed to get an interpreter ID"); goto error; } } interpreters->head = interp; - init_interpreter(interp, runtime, id, old_head, pending_lock); + long whence = _PyInterpreterState_WHENCE_UNKNOWN; + status = init_interpreter(interp, runtime, + id, old_head, whence); + if (_PyStatus_EXCEPTION(status)) { + goto error; + } HEAD_UNLOCK(runtime); - return interp; + + assert(interp != NULL); + *pinterp = interp; + return _PyStatus_OK(); error: HEAD_UNLOCK(runtime); - PyThread_free_lock(pending_lock); if (interp != NULL) { free_interpreter(interp); } - return NULL; + return status; } +PyInterpreterState * +PyInterpreterState_New(void) +{ + // tstate can be NULL + PyThreadState *tstate = current_fast_get(); + + PyInterpreterState *interp; + PyStatus status = _PyInterpreterState_New(tstate, &interp); + if (_PyStatus_EXCEPTION(status)) { + Py_ExitStatusException(status); + } + assert(interp != NULL); + return interp; +} + static void interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate) { @@ -848,6 +812,12 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate) tstate->_status.cleared = 0; } +#ifdef _Py_TIER2 + _PyOptimizerObject *old = _Py_SetOptimizer(interp, NULL); + assert(old != NULL); + Py_DECREF(old); +#endif + /* It is possible that any of the objects below have a finalizer that runs Python code or otherwise relies on a thread state or even the interpreter state. For now we trust that isn't @@ -857,6 +827,11 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate) Py_CLEAR(interp->audit_hooks); + // At this time, all the threads should be cleared so we don't need atomic + // operations for instrumentation_version or eval_breaker. + interp->ceval.instrumentation_version = 0; + tstate->eval_breaker = 0; + for (int i = 0; i < _PY_MONITORING_UNGROUPED_EVENTS; i++) { interp->monitors.tools[i] = 0; } @@ -865,16 +840,12 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate) Py_CLEAR(interp->monitoring_callables[t][e]); } } - interp->sys_profile_initialized = false; - interp->sys_trace_initialized = false; for (int t = 0; t < PY_MONITORING_TOOL_IDS; t++) { Py_CLEAR(interp->monitoring_tool_names[t]); } PyConfig_Clear(&interp->config); - Py_CLEAR(interp->codec_search_path); - Py_CLEAR(interp->codec_search_cache); - Py_CLEAR(interp->codec_error_registry); + _PyCodec_Fini(interp); assert(interp->imports.modules == NULL); assert(interp->imports.modules_by_index == NULL); @@ -909,11 +880,6 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate) PyDict_Clear(interp->builtins); Py_CLEAR(interp->sysdict); Py_CLEAR(interp->builtins); - Py_CLEAR(interp->interpreter_trampoline); - - _xidregistry_clear(&interp->xidregistry); - /* The lock is owned by the runtime, so we don't free it here. */ - interp->xidregistry.mutex = NULL; if (tstate->interp == interp) { /* We are now safe to fix tstate->_status.cleared. */ @@ -938,10 +904,11 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate) interp->code_watchers[i] = NULL; } interp->active_code_watchers = 0; - interp->f_opcode_trace_set = false; // XXX Once we have one allocator per interpreter (i.e. // per-interpreter GC) we must ensure that all of the interpreter's // objects have been cleaned up at the point. + + // If we had a freelist of thread states, we would clear it here. } @@ -951,7 +918,7 @@ PyInterpreterState_Clear(PyInterpreterState *interp) // Use the current Python thread state to call audit hooks and to collect // garbage. It can be different than the current Python thread state // of 'interp'. - PyThreadState *current_tstate = current_fast_get(interp->runtime); + PyThreadState *current_tstate = current_fast_get(); _PyImport_ClearCore(interp); interpreter_clear(interp, current_tstate); } @@ -966,6 +933,7 @@ _PyInterpreterState_Clear(PyThreadState *tstate) static inline void tstate_deactivate(PyThreadState *tstate); +static void tstate_set_detached(PyThreadState *tstate, int detached_state); static void zapthreads(PyInterpreterState *interp); void @@ -976,18 +944,14 @@ PyInterpreterState_Delete(PyInterpreterState *interp) // XXX Clearing the "current" thread state should happen before // we start finalizing the interpreter (or the current thread state). - PyThreadState *tcur = current_fast_get(runtime); + PyThreadState *tcur = current_fast_get(); if (tcur != NULL && interp == tcur->interp) { /* Unset current thread. After this, many C API calls become crashy. */ - current_fast_clear(runtime); - tstate_deactivate(tcur); - _PyEval_ReleaseLock(interp, NULL); + _PyThreadState_Detach(tcur); } zapthreads(interp); - _PyEval_FiniState(&interp->ceval); - // XXX These two calls should be done at the end of clear_interpreter(), // but currently some objects get decref'ed after that. #ifdef Py_REF_DEBUG @@ -1021,6 +985,13 @@ PyInterpreterState_Delete(PyInterpreterState *interp) if (interp->id_mutex != NULL) { PyThread_free_lock(interp->id_mutex); } + + _Py_qsbr_fini(interp); + + _PyObject_FiniState(interp); + + PyConfig_Clear(&interp->config); + free_interpreter(interp); } @@ -1072,37 +1043,88 @@ _PyInterpreterState_DeleteExceptMain(_PyRuntimeState *runtime) } #endif +static inline void +set_main_thread(PyInterpreterState *interp, PyThreadState *tstate) +{ + _Py_atomic_store_ptr_relaxed(&interp->threads.main, tstate); +} + +static inline PyThreadState * +get_main_thread(PyInterpreterState *interp) +{ + return _Py_atomic_load_ptr_relaxed(&interp->threads.main); +} int _PyInterpreterState_SetRunningMain(PyInterpreterState *interp) { - if (interp->threads_main != NULL) { - PyErr_SetString(PyExc_RuntimeError, - "interpreter already running"); + if (get_main_thread(interp) != NULL) { + // In 3.14+ we use _PyErr_SetInterpreterAlreadyRunning(). + PyErr_SetString(PyExc_InterpreterError, "interpreter already running"); return -1; } - PyThreadState *tstate = current_fast_get(&_PyRuntime); + PyThreadState *tstate = current_fast_get(); _Py_EnsureTstateNotNULL(tstate); if (tstate->interp != interp) { PyErr_SetString(PyExc_RuntimeError, "current tstate has wrong interpreter"); return -1; } - interp->threads_main = tstate; + set_main_thread(interp, tstate); + return 0; } void _PyInterpreterState_SetNotRunningMain(PyInterpreterState *interp) { - assert(interp->threads_main == current_fast_get(&_PyRuntime)); - interp->threads_main = NULL; + assert(get_main_thread(interp) == current_fast_get()); + set_main_thread(interp, NULL); } int _PyInterpreterState_IsRunningMain(PyInterpreterState *interp) { - return (interp->threads_main != NULL); + if (get_main_thread(interp) != NULL) { + return 1; + } + // Embedders might not know to call _PyInterpreterState_SetRunningMain(), + // so their main thread wouldn't show it is running the main interpreter's + // program. (Py_Main() doesn't have this problem.) For now this isn't + // critical. If it were, we would need to infer "running main" from other + // information, like if it's the main interpreter. We used to do that + // but the naive approach led to some inconsistencies that caused problems. + return 0; +} + +int +_PyThreadState_IsRunningMain(PyThreadState *tstate) +{ + PyInterpreterState *interp = tstate->interp; + // See the note in _PyInterpreterState_IsRunningMain() about + // possible false negatives here for embedders. + return get_main_thread(interp) == tstate; +} + +// This has been removed in 3.14. +int +_PyInterpreterState_FailIfRunningMain(PyInterpreterState *interp) +{ + if (get_main_thread(interp) != NULL) { + PyErr_SetString(PyExc_InterpreterError, + "interpreter already running"); + return -1; + } + return 0; +} + +void +_PyInterpreterState_ReinitRunningMain(PyThreadState *tstate) +{ + PyInterpreterState *interp = tstate->interp; + if (get_main_thread(interp) != tstate) { + set_main_thread(interp, NULL); + } } @@ -1110,6 +1132,106 @@ _PyInterpreterState_IsRunningMain(PyInterpreterState *interp) // accessors //---------- +int +_PyInterpreterState_IsReady(PyInterpreterState *interp) +{ + return interp->_ready; +} + +#ifndef NDEBUG +static inline int +check_interpreter_whence(long whence) +{ + if(whence < 0) { + return -1; + } + if (whence > _PyInterpreterState_WHENCE_MAX) { + return -1; + } + return 0; +} +#endif + +long +_PyInterpreterState_GetWhence(PyInterpreterState *interp) +{ + assert(check_interpreter_whence(interp->_whence) == 0); + return interp->_whence; +} + +void +_PyInterpreterState_SetWhence(PyInterpreterState *interp, long whence) +{ + assert(interp->_whence != _PyInterpreterState_WHENCE_NOTSET); + assert(check_interpreter_whence(whence) == 0); + interp->_whence = whence; +} + + +PyObject * +PyUnstable_InterpreterState_GetMainModule(PyInterpreterState *interp) +{ + PyObject *modules = _PyImport_GetModules(interp); + if (modules == NULL) { + PyErr_SetString(PyExc_RuntimeError, "interpreter not initialized"); + return NULL; + } + return PyMapping_GetItemString(modules, "__main__"); +} + + +PyObject * +PyInterpreterState_GetDict(PyInterpreterState *interp) +{ + if (interp->dict == NULL) { + interp->dict = PyDict_New(); + if (interp->dict == NULL) { + PyErr_Clear(); + } + } + /* Returning NULL means no per-interpreter dict is available. */ + return interp->dict; +} + + +//---------- +// interp ID +//---------- + +int64_t +_PyInterpreterState_ObjectToID(PyObject *idobj) +{ + if (!_PyIndex_Check(idobj)) { + PyErr_Format(PyExc_TypeError, + "interpreter ID must be an int, got %.100s", + Py_TYPE(idobj)->tp_name); + return -1; + } + + // This may raise OverflowError. + // For now, we don't worry about if LLONG_MAX < INT64_MAX. + long long id = PyLong_AsLongLong(idobj); + if (id == -1 && PyErr_Occurred()) { + return -1; + } + + if (id < 0) { + PyErr_Format(PyExc_ValueError, + "interpreter ID must be a non-negative int, got %R", + idobj); + return -1; + } +#if LLONG_MAX > INT64_MAX + else if (id > INT64_MAX) { + PyErr_SetString(PyExc_OverflowError, "int too big to convert"); + return -1; + } +#endif + else { + return (int64_t)id; + } +} + int64_t PyInterpreterState_GetID(PyInterpreterState *interp) { @@ -1120,6 +1242,20 @@ PyInterpreterState_GetID(PyInterpreterState *interp) return interp->id; } +PyObject * +_PyInterpreterState_GetIDObject(PyInterpreterState *interp) +{ + if (_PyInterpreterState_IDInitref(interp) != 0) { + return NULL; + }; + int64_t interpid = interp->id; + if (interpid < 0) { + return NULL; + } + assert(interpid < LLONG_MAX); + return PyLong_FromLongLong(interpid); +} + int _PyInterpreterState_IDInitref(PyInterpreterState *interp) @@ -1165,8 +1301,9 @@ _PyInterpreterState_IDDecref(PyInterpreterState *interp) PyThread_release_lock(interp->id_mutex); if (refcount == 0 && interp->requires_idref) { - // XXX Using the "head" thread isn't strictly correct. - PyThreadState *tstate = PyInterpreterState_ThreadHead(interp); + PyThreadState *tstate = + _PyThreadState_NewBound(interp, _PyThreadState_WHENCE_FINI); + // XXX Possible GILState issues? PyThreadState *save_tstate = _PyThreadState_Swap(runtime, tstate); Py_EndInterpreter(tstate); @@ -1186,30 +1323,6 @@ _PyInterpreterState_RequireIDRef(PyInterpreterState *interp, int required) interp->requires_idref = required ? 1 : 0; } -PyObject * -_PyInterpreterState_GetMainModule(PyInterpreterState *interp) -{ - PyObject *modules = _PyImport_GetModules(interp); - if (modules == NULL) { - PyErr_SetString(PyExc_RuntimeError, "interpreter not initialized"); - return NULL; - } - return PyMapping_GetItemString(modules, "__main__"); -} - -PyObject * -PyInterpreterState_GetDict(PyInterpreterState *interp) -{ - if (interp->dict == NULL) { - interp->dict = PyDict_New(); - if (interp->dict == NULL) { - PyErr_Clear(); - } - } - /* Returning NULL means no per-interpreter dict is available. */ - return interp->dict; -} - //----------------------------- // look up an interpreter state @@ -1220,10 +1333,10 @@ PyInterpreterState_GetDict(PyInterpreterState *interp) The GIL must be held. */ -PyInterpreterState * +PyInterpreterState* PyInterpreterState_Get(void) { - PyThreadState *tstate = current_fast_get(&_PyRuntime); + PyThreadState *tstate = current_fast_get(); _Py_EnsureTstateNotNULL(tstate); PyInterpreterState *interp = tstate->interp; if (interp == NULL) { @@ -1265,12 +1378,22 @@ _PyInterpreterState_LookUpID(int64_t requested_id) HEAD_UNLOCK(runtime); } if (interp == NULL && !PyErr_Occurred()) { - PyErr_Format(PyExc_RuntimeError, + PyErr_Format(PyExc_InterpreterNotFoundError, "unrecognized interpreter ID %lld", requested_id); } return interp; } +PyInterpreterState * +_PyInterpreterState_LookUpIDObject(PyObject *requested_id) +{ + int64_t id = _PyInterpreterState_ObjectToID(requested_id); + if (id < 0) { + return NULL; + } + return _PyInterpreterState_LookUpID(id); +} + /********************************/ /* the per-thread runtime state */ @@ -1309,24 +1432,53 @@ allocate_chunk(int size_in_bytes, _PyStackChunk* previous) return res; } -static PyThreadState * -alloc_threadstate(void) +static void +reset_threadstate(_PyThreadStateImpl *tstate) { - return PyMem_RawCalloc(1, sizeof(PyThreadState)); + // Set to _PyThreadState_INIT directly? + memcpy(tstate, + &initial._main_interpreter._initial_thread, + sizeof(*tstate)); } -static void -free_threadstate(PyThreadState *tstate) +static _PyThreadStateImpl * +alloc_threadstate(PyInterpreterState *interp) { - // The initial thread state of the interpreter is allocated - // as part of the interpreter state so should not be freed. - if (tstate != &tstate->interp->_initial_thread) { - PyMem_RawFree(tstate); - } -} + _PyThreadStateImpl *tstate; -/* Get the thread state to a minimal consistent state. - Further init happens in pylifecycle.c before it can be used. + // Try the preallocated tstate first. + tstate = _Py_atomic_exchange_ptr(&interp->threads_preallocated, NULL); + + // Fall back to the allocator. + if (tstate == NULL) { + tstate = PyMem_RawCalloc(1, sizeof(_PyThreadStateImpl)); + if (tstate == NULL) { + return NULL; + } + reset_threadstate(tstate); + } + return tstate; +} + +static void +free_threadstate(_PyThreadStateImpl *tstate) +{ + PyInterpreterState *interp = tstate->base.interp; + // The initial thread state of the interpreter is allocated + // as part of the interpreter state so should not be freed. + if (tstate == &interp->_initial_thread) { + // Make it available again. + reset_threadstate(tstate); + assert(interp->threads_preallocated == NULL); + _Py_atomic_store_ptr(&interp->threads_preallocated, tstate); + } + else { + PyMem_RawFree(tstate); + } +} + +/* Get the thread state to a minimal consistent state. + Further init happens in pylifecycle.c before it can be used. All fields not initialized here are expected to be zeroed out, e.g. by PyMem_RawCalloc() or memset(), or otherwise pre-initialized. The interpreter state is not manipulated. Instead it is assumed that @@ -1334,20 +1486,27 @@ free_threadstate(PyThreadState *tstate) */ static void -init_threadstate(PyThreadState *tstate, - PyInterpreterState *interp, uint64_t id) +init_threadstate(_PyThreadStateImpl *_tstate, + PyInterpreterState *interp, uint64_t id, int whence) { + PyThreadState *tstate = (PyThreadState *)_tstate; if (tstate->_status.initialized) { Py_FatalError("thread state already initialized"); } assert(interp != NULL); tstate->interp = interp; + tstate->eval_breaker = + _Py_atomic_load_uintptr_relaxed(&interp->ceval.instrumentation_version); // next/prev are set in add_threadstate(). assert(tstate->next == NULL); assert(tstate->prev == NULL); + assert(tstate->_whence == _PyThreadState_WHENCE_NOTSET); + assert(whence >= 0 && whence <= _PyThreadState_WHENCE_EXEC); + tstate->_whence = whence; + assert(id > 0); tstate->id = id; @@ -1355,7 +1514,7 @@ init_threadstate(PyThreadState *tstate, tstate->py_recursion_limit = interp->ceval.recursion_limit, tstate->py_recursion_remaining = interp->ceval.recursion_limit, - tstate->c_recursion_remaining = C_RECURSION_LIMIT; + tstate->c_recursion_remaining = Py_C_RECURSION_LIMIT; tstate->exc_info = &tstate->exc_state; @@ -1363,11 +1522,24 @@ init_threadstate(PyThreadState *tstate, // This is cleared when PyGILState_Ensure() creates the thread state. tstate->gilstate_counter = 1; - tstate->cframe = &tstate->root_cframe; + tstate->current_frame = NULL; tstate->datastack_chunk = NULL; tstate->datastack_top = NULL; tstate->datastack_limit = NULL; tstate->what_event = -1; + tstate->previous_executor = NULL; + tstate->dict_global_version = 0; + + _tstate->asyncio_running_loop = NULL; + + tstate->delete_later = NULL; + + llist_init(&_tstate->mem_free_queue); + + if (interp->stoptheworld.requested || _PyRuntime.stoptheworld.requested) { + // Start in the suspended state if there is an ongoing stop-the-world. + tstate->state = _Py_THREAD_SUSPENDED; + } tstate->_status.initialized = 1; } @@ -1377,8 +1549,6 @@ add_threadstate(PyInterpreterState *interp, PyThreadState *tstate, PyThreadState *next) { assert(interp->threads.head != tstate); - assert((next != NULL && tstate->id != 1) || - (next == NULL && tstate->id == 1)); if (next != NULL) { assert(next->prev == NULL || next->prev == tstate); next->prev = tstate; @@ -1389,60 +1559,63 @@ add_threadstate(PyInterpreterState *interp, PyThreadState *tstate, } static PyThreadState * -new_threadstate(PyInterpreterState *interp) +new_threadstate(PyInterpreterState *interp, int whence) { - PyThreadState *tstate; - _PyRuntimeState *runtime = interp->runtime; - // We don't need to allocate a thread state for the main interpreter - // (the common case), but doing it later for the other case revealed a - // reentrancy problem (deadlock). So for now we always allocate before - // taking the interpreters lock. See GH-96071. - PyThreadState *new_tstate = alloc_threadstate(); - int used_newtstate; - if (new_tstate == NULL) { + // Allocate the thread state. + _PyThreadStateImpl *tstate = alloc_threadstate(interp); + if (tstate == NULL) { + return NULL; + } + +#ifdef Py_GIL_DISABLED + Py_ssize_t qsbr_idx = _Py_qsbr_reserve(interp); + if (qsbr_idx < 0) { + free_threadstate(tstate); return NULL; } +#endif + /* We serialize concurrent creation to protect global state. */ - HEAD_LOCK(runtime); + HEAD_LOCK(interp->runtime); + // Initialize the new thread state. interp->threads.next_unique_id += 1; uint64_t id = interp->threads.next_unique_id; + init_threadstate(tstate, interp, id, whence); - // Allocate the thread state and add it to the interpreter. + // Add the new thread state to the interpreter. PyThreadState *old_head = interp->threads.head; - if (old_head == NULL) { - // It's the interpreter's initial thread state. - assert(id == 1); - used_newtstate = 0; - tstate = &interp->_initial_thread; - } - else { - // Every valid interpreter must have at least one thread. - assert(id > 1); - assert(old_head->prev == NULL); - used_newtstate = 1; - tstate = new_tstate; - // Set to _PyThreadState_INIT. - memcpy(tstate, - &initial._main_interpreter._initial_thread, - sizeof(*tstate)); + add_threadstate(interp, (PyThreadState *)tstate, old_head); + + HEAD_UNLOCK(interp->runtime); +#ifdef Py_GIL_DISABLED + if (id > 1) { + if (_Py_atomic_load_int(&interp->gc.immortalize) == 0) { + // Immortalize objects marked as using deferred reference counting + // once a non-main thread is created, if we haven't already done so. + _PyGC_ImmortalizeDeferredObjects(interp); + } } +#endif - init_threadstate(tstate, interp, id); - add_threadstate(interp, tstate, old_head); +#ifdef Py_GIL_DISABLED + // Must be called with lock unlocked to avoid lock ordering deadlocks. + _Py_qsbr_register(tstate, interp, qsbr_idx); +#endif - HEAD_UNLOCK(runtime); - if (!used_newtstate) { - // Must be called with lock unlocked to avoid re-entrancy deadlock. - PyMem_RawFree(new_tstate); - } - return tstate; + return (PyThreadState *)tstate; } PyThreadState * PyThreadState_New(PyInterpreterState *interp) { - PyThreadState *tstate = new_threadstate(interp); + return _PyThreadState_NewBound(interp, _PyThreadState_WHENCE_UNKNOWN); +} + +PyThreadState * +_PyThreadState_NewBound(PyInterpreterState *interp, int whence) +{ + PyThreadState *tstate = new_threadstate(interp, whence); if (tstate) { bind_tstate(tstate); // This makes sure there's a gilstate tstate bound @@ -1456,21 +1629,21 @@ PyThreadState_New(PyInterpreterState *interp) // This must be followed by a call to _PyThreadState_Bind(); PyThreadState * -_PyThreadState_New(PyInterpreterState *interp) +_PyThreadState_New(PyInterpreterState *interp, int whence) { - return new_threadstate(interp); + return new_threadstate(interp, whence); } // We keep this for stable ABI compabibility. -PyThreadState * +PyAPI_FUNC(PyThreadState*) _PyThreadState_Prealloc(PyInterpreterState *interp) { - return _PyThreadState_New(interp); + return _PyThreadState_New(interp, _PyThreadState_WHENCE_UNKNOWN); } // We keep this around for (accidental) stable ABI compatibility. // Realistically, no extensions are using it. -void +PyAPI_FUNC(void) _PyThreadState_Init(PyThreadState *tstate) { Py_FatalError("_PyThreadState_Init() is for internal use only"); @@ -1493,6 +1666,8 @@ void PyThreadState_Clear(PyThreadState *tstate) { assert(tstate->_status.initialized && !tstate->_status.cleared); + assert(current_fast_get()->interp == tstate->interp); + assert(!_PyThreadState_IsRunningMain(tstate)); // XXX assert(!tstate->_status.bound || tstate->_status.unbound); tstate->_status.finalizing = 1; // just in case @@ -1505,7 +1680,7 @@ PyThreadState_Clear(PyThreadState *tstate) int verbose = _PyInterpreterState_GetConfig(tstate->interp)->verbose; - if (verbose && tstate->cframe->current_frame != NULL) { + if (verbose && tstate->current_frame != NULL) { /* bpo-20526: After the main thread calls _PyInterpreterState_SetFinalizing() in Py_FinalizeEx() (or in Py_EndInterpreter() for subinterpreters), @@ -1532,6 +1707,11 @@ PyThreadState_Clear(PyThreadState *tstate) /* Don't clear tstate->pyframe: it is a borrowed reference */ + Py_CLEAR(tstate->threading_local_key); + Py_CLEAR(tstate->threading_local_sentinel); + + Py_CLEAR(((_PyThreadStateImpl *)tstate)->asyncio_running_loop); + Py_CLEAR(tstate->dict); Py_CLEAR(tstate->async_exc); @@ -1546,11 +1726,11 @@ PyThreadState_Clear(PyThreadState *tstate) } if (tstate->c_profilefunc != NULL) { - tstate->interp->sys_profiling_threads--; + _Py_atomic_add_ssize(&tstate->interp->sys_profiling_threads, -1); tstate->c_profilefunc = NULL; } if (tstate->c_tracefunc != NULL) { - tstate->interp->sys_tracing_threads--; + _Py_atomic_add_ssize(&tstate->interp->sys_tracing_threads, -1); tstate->c_tracefunc = NULL; } Py_CLEAR(tstate->c_profileobj); @@ -1561,9 +1741,19 @@ PyThreadState_Clear(PyThreadState *tstate) Py_CLEAR(tstate->context); - if (tstate->on_delete != NULL) { - tstate->on_delete(tstate->on_delete_data); - } +#ifdef Py_GIL_DISABLED + // Each thread should clear own freelists in free-threading builds. + struct _Py_object_freelists *freelists = _Py_object_freelists_GET(); + _PyObject_ClearFreeLists(freelists, 1); + + // Remove ourself from the biased reference counting table of threads. + _Py_brc_remove_thread(tstate); +#endif + + // Merge our queue of pointers to be freed into the interpreter queue. + _PyMem_AbandonDelayed(tstate); + + _PyThreadState_ClearMimallocHeaps(tstate); tstate->_status.cleared = 1; @@ -1571,11 +1761,16 @@ PyThreadState_Clear(PyThreadState *tstate) // XXX Do it as early in the function as possible. } +static void +decrement_stoptheworld_countdown(struct _stoptheworld_state *stw); + /* Common code for PyThreadState_Delete() and PyThreadState_DeleteCurrent() */ static void -tstate_delete_common(PyThreadState *tstate) +tstate_delete_common(PyThreadState *tstate, int release_gil) { assert(tstate->_status.cleared && !tstate->_status.finalized); + tstate_verify_not_active(tstate); + assert(!_PyThreadState_IsRunningMain(tstate)); PyInterpreterState *interp = tstate->interp; if (interp == NULL) { @@ -1593,6 +1788,24 @@ tstate_delete_common(PyThreadState *tstate) if (tstate->next) { tstate->next->prev = tstate->prev; } + if (tstate->state != _Py_THREAD_SUSPENDED) { + // Any ongoing stop-the-world request should not wait for us because + // our thread is getting deleted. + if (interp->stoptheworld.requested) { + decrement_stoptheworld_countdown(&interp->stoptheworld); + } + if (runtime->stoptheworld.requested) { + decrement_stoptheworld_countdown(&runtime->stoptheworld); + } + } + +#if defined(Py_REF_DEBUG) && defined(Py_GIL_DISABLED) + // Add our portion of the total refcount to the interpreter's total. + _PyThreadStateImpl *tstate_impl = (_PyThreadStateImpl *)tstate; + tstate->interp->object_state.reftotal += tstate_impl->reftotal; + tstate_impl->reftotal = 0; +#endif + HEAD_UNLOCK(runtime); // XXX Unbind in PyThreadState_Clear(), or earlier @@ -1607,6 +1820,14 @@ tstate_delete_common(PyThreadState *tstate) // XXX Move to PyThreadState_Clear()? clear_datastack(tstate); + if (release_gil) { + _PyEval_ReleaseLock(tstate->interp, tstate, 1); + } + +#ifdef Py_GIL_DISABLED + _Py_qsbr_unregister(tstate); +#endif + tstate->_status.finalized = 1; } @@ -1618,8 +1839,8 @@ zapthreads(PyInterpreterState *interp) when the threads are all really dead (XXX famous last words). */ while ((tstate = interp->threads.head) != NULL) { tstate_verify_not_active(tstate); - tstate_delete_common(tstate); - free_threadstate(tstate); + tstate_delete_common(tstate, 0); + free_threadstate((_PyThreadStateImpl *)tstate); } } @@ -1629,8 +1850,8 @@ PyThreadState_Delete(PyThreadState *tstate) { _Py_EnsureTstateNotNULL(tstate); tstate_verify_not_active(tstate); - tstate_delete_common(tstate); - free_threadstate(tstate); + tstate_delete_common(tstate, 0); + free_threadstate((_PyThreadStateImpl *)tstate); } @@ -1638,38 +1859,45 @@ void _PyThreadState_DeleteCurrent(PyThreadState *tstate) { _Py_EnsureTstateNotNULL(tstate); - tstate_delete_common(tstate); +#ifdef Py_GIL_DISABLED + _Py_qsbr_detach(((_PyThreadStateImpl *)tstate)->qsbr); +#endif current_fast_clear(tstate->interp->runtime); - _PyEval_ReleaseLock(tstate->interp, NULL); - free_threadstate(tstate); + tstate_delete_common(tstate, 1); // release GIL as part of call + free_threadstate((_PyThreadStateImpl *)tstate); } void PyThreadState_DeleteCurrent(void) { - PyThreadState *tstate = current_fast_get(&_PyRuntime); + PyThreadState *tstate = current_fast_get(); _PyThreadState_DeleteCurrent(tstate); } -/* - * Delete all thread states except the one passed as argument. - * Note that, if there is a current thread state, it *must* be the one - * passed as argument. Also, this won't touch any other interpreters - * than the current one, since we don't know which thread state should - * be kept in those other interpreters. - */ -void -_PyThreadState_DeleteExcept(PyThreadState *tstate) +// Unlinks and removes all thread states from `tstate->interp`, with the +// exception of the one passed as an argument. However, it does not delete +// these thread states. Instead, it returns the removed thread states as a +// linked list. +// +// Note that if there is a current thread state, it *must* be the one +// passed as argument. Also, this won't touch any interpreters other +// than the current one, since we don't know which thread state should +// be kept in those other interpreters. +PyThreadState * +_PyThreadState_RemoveExcept(PyThreadState *tstate) { assert(tstate != NULL); PyInterpreterState *interp = tstate->interp; _PyRuntimeState *runtime = interp->runtime; +#ifdef Py_GIL_DISABLED + assert(runtime->stoptheworld.world_stopped); +#endif + HEAD_LOCK(runtime); /* Remove all thread states, except tstate, from the linked list of - thread states. This will allow calling PyThreadState_Clear() - without holding the lock. */ + thread states. */ PyThreadState *list = interp->threads.head; if (list == tstate) { list = tstate->next; @@ -1684,14 +1912,24 @@ _PyThreadState_DeleteExcept(PyThreadState *tstate) interp->threads.head = tstate; HEAD_UNLOCK(runtime); - /* Clear and deallocate all stale thread states. Even if this - executes Python code, we should be safe since it executes - in the current thread, not one of the stale threads. */ + return list; +} + +// Deletes the thread states in the linked list `list`. +// +// This is intended to be used in conjunction with _PyThreadState_RemoveExcept. +void +_PyThreadState_DeleteList(PyThreadState *list) +{ + // The world can't be stopped because we PyThreadState_Clear() can + // call destructors. + assert(!_PyRuntime.stoptheworld.world_stopped); + PyThreadState *p, *next; for (p = list; p; p = next) { next = p->next; PyThreadState_Clear(p); - free_threadstate(p); + free_threadstate((_PyThreadStateImpl *)p); } } @@ -1723,7 +1961,7 @@ _PyThreadState_GetDict(PyThreadState *tstate) PyObject * PyThreadState_GetDict(void) { - PyThreadState *tstate = current_fast_get(&_PyRuntime); + PyThreadState *tstate = current_fast_get(); if (tstate == NULL) { return NULL; } @@ -1794,6 +2032,333 @@ tstate_deactivate(PyThreadState *tstate) // It will still be used in PyGILState_Ensure(). } +static int +tstate_try_attach(PyThreadState *tstate) +{ +#ifdef Py_GIL_DISABLED + int expected = _Py_THREAD_DETACHED; + return _Py_atomic_compare_exchange_int(&tstate->state, + &expected, + _Py_THREAD_ATTACHED); +#else + assert(tstate->state == _Py_THREAD_DETACHED); + tstate->state = _Py_THREAD_ATTACHED; + return 1; +#endif +} + +static void +tstate_set_detached(PyThreadState *tstate, int detached_state) +{ + assert(_Py_atomic_load_int_relaxed(&tstate->state) == _Py_THREAD_ATTACHED); +#ifdef Py_GIL_DISABLED + _Py_atomic_store_int(&tstate->state, detached_state); +#else + tstate->state = detached_state; +#endif +} + +static void +tstate_wait_attach(PyThreadState *tstate) +{ + do { + int expected = _Py_THREAD_SUSPENDED; + + // Wait until we're switched out of SUSPENDED to DETACHED. + _PyParkingLot_Park(&tstate->state, &expected, sizeof(tstate->state), + /*timeout=*/-1, NULL, /*detach=*/0); + + // Once we're back in DETACHED we can re-attach + } while (!tstate_try_attach(tstate)); +} + +void +_PyThreadState_Attach(PyThreadState *tstate) +{ +#if defined(Py_DEBUG) + // This is called from PyEval_RestoreThread(). Similar + // to it, we need to ensure errno doesn't change. + int err = errno; +#endif + + _Py_EnsureTstateNotNULL(tstate); + if (current_fast_get() != NULL) { + Py_FatalError("non-NULL old thread state"); + } + + + while (1) { + _PyEval_AcquireLock(tstate); + + // XXX assert(tstate_is_alive(tstate)); + current_fast_set(&_PyRuntime, tstate); + tstate_activate(tstate); + + if (!tstate_try_attach(tstate)) { + tstate_wait_attach(tstate); + } + +#ifdef Py_GIL_DISABLED + if (_PyEval_IsGILEnabled(tstate) && !tstate->_status.holds_gil) { + // The GIL was enabled between our call to _PyEval_AcquireLock() + // and when we attached (the GIL can't go from enabled to disabled + // here because only a thread holding the GIL can disable + // it). Detach and try again. + tstate_set_detached(tstate, _Py_THREAD_DETACHED); + tstate_deactivate(tstate); + current_fast_clear(&_PyRuntime); + continue; + } + _Py_qsbr_attach(((_PyThreadStateImpl *)tstate)->qsbr); +#endif + break; + } + + // Resume previous critical section. This acquires the lock(s) from the + // top-most critical section. + if (tstate->critical_section != 0) { + _PyCriticalSection_Resume(tstate); + } + +#if defined(Py_DEBUG) + errno = err; +#endif +} + +static void +detach_thread(PyThreadState *tstate, int detached_state) +{ + // XXX assert(tstate_is_alive(tstate) && tstate_is_bound(tstate)); + assert(_Py_atomic_load_int_relaxed(&tstate->state) == _Py_THREAD_ATTACHED); + assert(tstate == current_fast_get()); + if (tstate->critical_section != 0) { + _PyCriticalSection_SuspendAll(tstate); + } +#ifdef Py_GIL_DISABLED + _Py_qsbr_detach(((_PyThreadStateImpl *)tstate)->qsbr); +#endif + tstate_deactivate(tstate); + tstate_set_detached(tstate, detached_state); + current_fast_clear(&_PyRuntime); + _PyEval_ReleaseLock(tstate->interp, tstate, 0); +} + +void +_PyThreadState_Detach(PyThreadState *tstate) +{ + detach_thread(tstate, _Py_THREAD_DETACHED); +} + +void +_PyThreadState_Suspend(PyThreadState *tstate) +{ + _PyRuntimeState *runtime = &_PyRuntime; + + assert(_Py_atomic_load_int_relaxed(&tstate->state) == _Py_THREAD_ATTACHED); + + struct _stoptheworld_state *stw = NULL; + HEAD_LOCK(runtime); + if (runtime->stoptheworld.requested) { + stw = &runtime->stoptheworld; + } + else if (tstate->interp->stoptheworld.requested) { + stw = &tstate->interp->stoptheworld; + } + HEAD_UNLOCK(runtime); + + if (stw == NULL) { + // Switch directly to "detached" if there is no active stop-the-world + // request. + detach_thread(tstate, _Py_THREAD_DETACHED); + return; + } + + // Switch to "suspended" state. + detach_thread(tstate, _Py_THREAD_SUSPENDED); + + // Decrease the count of remaining threads needing to park. + HEAD_LOCK(runtime); + decrement_stoptheworld_countdown(stw); + HEAD_UNLOCK(runtime); +} + +// Decrease stop-the-world counter of remaining number of threads that need to +// pause. If we are the final thread to pause, notify the requesting thread. +static void +decrement_stoptheworld_countdown(struct _stoptheworld_state *stw) +{ + assert(stw->thread_countdown > 0); + if (--stw->thread_countdown == 0) { + _PyEvent_Notify(&stw->stop_event); + } +} + +#ifdef Py_GIL_DISABLED +// Interpreter for _Py_FOR_EACH_THREAD(). For global stop-the-world events, +// we start with the first interpreter and then iterate over all interpreters. +// For per-interpreter stop-the-world events, we only operate on the one +// interpreter. +static PyInterpreterState * +interp_for_stop_the_world(struct _stoptheworld_state *stw) +{ + return (stw->is_global + ? PyInterpreterState_Head() + : _Py_CONTAINER_OF(stw, PyInterpreterState, stoptheworld)); +} + +// Loops over threads for a stop-the-world event. +// For global: all threads in all interpreters +// For per-interpreter: all threads in the interpreter +#define _Py_FOR_EACH_THREAD(stw, i, t) \ + for (i = interp_for_stop_the_world((stw)); \ + i != NULL; i = ((stw->is_global) ? i->next : NULL)) \ + for (t = i->threads.head; t; t = t->next) + + +// Try to transition threads atomically from the "detached" state to the +// "gc stopped" state. Returns true if all threads are in the "gc stopped" +static bool +park_detached_threads(struct _stoptheworld_state *stw) +{ + int num_parked = 0; + PyInterpreterState *i; + PyThreadState *t; + _Py_FOR_EACH_THREAD(stw, i, t) { + int state = _Py_atomic_load_int_relaxed(&t->state); + if (state == _Py_THREAD_DETACHED) { + // Atomically transition to "suspended" if in "detached" state. + if (_Py_atomic_compare_exchange_int(&t->state, + &state, _Py_THREAD_SUSPENDED)) { + num_parked++; + } + } + else if (state == _Py_THREAD_ATTACHED && t != stw->requester) { + _Py_set_eval_breaker_bit(t, _PY_EVAL_PLEASE_STOP_BIT); + } + } + stw->thread_countdown -= num_parked; + assert(stw->thread_countdown >= 0); + return num_parked > 0 && stw->thread_countdown == 0; +} + +static void +stop_the_world(struct _stoptheworld_state *stw) +{ + _PyRuntimeState *runtime = &_PyRuntime; + + PyMutex_Lock(&stw->mutex); + if (stw->is_global) { + _PyRWMutex_Lock(&runtime->stoptheworld_mutex); + } + else { + _PyRWMutex_RLock(&runtime->stoptheworld_mutex); + } + + HEAD_LOCK(runtime); + stw->requested = 1; + stw->thread_countdown = 0; + stw->stop_event = (PyEvent){0}; // zero-initialize (unset) + stw->requester = _PyThreadState_GET(); // may be NULL + + PyInterpreterState *i; + PyThreadState *t; + _Py_FOR_EACH_THREAD(stw, i, t) { + if (t != stw->requester) { + // Count all the other threads (we don't wait on ourself). + stw->thread_countdown++; + } + } + + if (stw->thread_countdown == 0) { + HEAD_UNLOCK(runtime); + stw->world_stopped = 1; + return; + } + + for (;;) { + // Switch threads that are detached to the GC stopped state + bool stopped_all_threads = park_detached_threads(stw); + HEAD_UNLOCK(runtime); + + if (stopped_all_threads) { + break; + } + + PyTime_t wait_ns = 1000*1000; // 1ms (arbitrary, may need tuning) + int detach = 0; + if (PyEvent_WaitTimed(&stw->stop_event, wait_ns, detach)) { + assert(stw->thread_countdown == 0); + break; + } + + HEAD_LOCK(runtime); + } + stw->world_stopped = 1; +} + +static void +start_the_world(struct _stoptheworld_state *stw) +{ + _PyRuntimeState *runtime = &_PyRuntime; + assert(PyMutex_IsLocked(&stw->mutex)); + + HEAD_LOCK(runtime); + stw->requested = 0; + stw->world_stopped = 0; + // Switch threads back to the detached state. + PyInterpreterState *i; + PyThreadState *t; + _Py_FOR_EACH_THREAD(stw, i, t) { + if (t != stw->requester) { + assert(_Py_atomic_load_int_relaxed(&t->state) == + _Py_THREAD_SUSPENDED); + _Py_atomic_store_int(&t->state, _Py_THREAD_DETACHED); + _PyParkingLot_UnparkAll(&t->state); + } + } + stw->requester = NULL; + HEAD_UNLOCK(runtime); + if (stw->is_global) { + _PyRWMutex_Unlock(&runtime->stoptheworld_mutex); + } + else { + _PyRWMutex_RUnlock(&runtime->stoptheworld_mutex); + } + PyMutex_Unlock(&stw->mutex); +} +#endif // Py_GIL_DISABLED + +void +_PyEval_StopTheWorldAll(_PyRuntimeState *runtime) +{ +#ifdef Py_GIL_DISABLED + stop_the_world(&runtime->stoptheworld); +#endif +} + +void +_PyEval_StartTheWorldAll(_PyRuntimeState *runtime) +{ +#ifdef Py_GIL_DISABLED + start_the_world(&runtime->stoptheworld); +#endif +} + +void +_PyEval_StopTheWorld(PyInterpreterState *interp) +{ +#ifdef Py_GIL_DISABLED + stop_the_world(&interp->stoptheworld); +#endif +} + +void +_PyEval_StartTheWorld(PyInterpreterState *interp) +{ +#ifdef Py_GIL_DISABLED + start_the_world(&interp->stoptheworld); +#endif +} //---------- // other API @@ -1834,97 +2399,55 @@ PyThreadState_SetAsyncExc(unsigned long id, PyObject *exc) * deadlock, we need to release head_mutex before * the decref. */ - PyObject *old_exc = tstate->async_exc; - tstate->async_exc = Py_XNewRef(exc); + Py_XINCREF(exc); + PyObject *old_exc = _Py_atomic_exchange_ptr(&tstate->async_exc, exc); HEAD_UNLOCK(runtime); Py_XDECREF(old_exc); - _PyEval_SignalAsyncExc(tstate->interp); + _Py_set_eval_breaker_bit(tstate, _PY_ASYNC_EXCEPTION_BIT); return 1; } HEAD_UNLOCK(runtime); return 0; } - //--------------------------------- // API for the current thread state //--------------------------------- PyThreadState * -_PyThreadState_UncheckedGet(void) +PyThreadState_GetUnchecked(void) { - return current_fast_get(&_PyRuntime); + return current_fast_get(); } PyThreadState * PyThreadState_Get(void) { - PyThreadState *tstate = current_fast_get(&_PyRuntime); + PyThreadState *tstate = current_fast_get(); _Py_EnsureTstateNotNULL(tstate); return tstate; } - -static void -_swap_thread_states(_PyRuntimeState *runtime, - PyThreadState *oldts, PyThreadState *newts) +PyThreadState * +_PyThreadState_Swap(_PyRuntimeState *runtime, PyThreadState *newts) { - // XXX Do this only if oldts != NULL? - current_fast_clear(runtime); - + PyThreadState *oldts = current_fast_get(); if (oldts != NULL) { - // XXX assert(tstate_is_alive(oldts) && tstate_is_bound(oldts)); - tstate_deactivate(oldts); + _PyThreadState_Detach(oldts); } - if (newts != NULL) { - // XXX assert(tstate_is_alive(newts)); - assert(tstate_is_bound(newts)); - current_fast_set(runtime, newts); - tstate_activate(newts); + _PyThreadState_Attach(newts); } + return oldts; } PyThreadState * -_PyThreadState_SwapNoGIL(PyThreadState *newts) +PyThreadState_Swap(PyThreadState *newts) { -#if defined(Py_DEBUG) - /* This can be called from PyEval_RestoreThread(). Similar - to it, we need to ensure errno doesn't change. - */ - int err = errno; -#endif - - PyThreadState *oldts = current_fast_get(&_PyRuntime); - _swap_thread_states(&_PyRuntime, oldts, newts); - -#if defined(Py_DEBUG) - errno = err; -#endif - return oldts; -} - -PyThreadState * -_PyThreadState_Swap(_PyRuntimeState *runtime, PyThreadState *newts) -{ - PyThreadState *oldts = current_fast_get(runtime); - if (oldts != NULL) { - _PyEval_ReleaseLock(oldts->interp, oldts); - } - _swap_thread_states(runtime, oldts, newts); - if (newts != NULL) { - _PyEval_AcquireLock(newts); - } - return oldts; -} - -PyThreadState * -PyThreadState_Swap(PyThreadState *newts) -{ - return _PyThreadState_Swap(&_PyRuntime, newts); -} + return _PyThreadState_Swap(&_PyRuntime, newts); +} void @@ -1942,6 +2465,20 @@ _PyThreadState_Bind(PyThreadState *tstate) } } +#if defined(Py_GIL_DISABLED) && !defined(Py_LIMITED_API) +uintptr_t +_Py_GetThreadLocal_Addr(void) +{ +#ifdef HAVE_THREAD_LOCAL + // gh-112535: Use the address of the thread-local PyThreadState variable as + // a unique identifier for the current thread. Each thread has a unique + // _Py_tss_tstate variable with a unique address. + return (uintptr_t)&_Py_tss_tstate; +#else +# error "no supported thread-local variable storage classifier" +#endif +} +#endif /***********************************/ /* routines for advanced debuggers */ @@ -1991,7 +2528,7 @@ PyObject * _PyThread_CurrentFrames(void) { _PyRuntimeState *runtime = &_PyRuntime; - PyThreadState *tstate = current_fast_get(runtime); + PyThreadState *tstate = current_fast_get(); if (_PySys_Audit(tstate, "sys._current_frames", NULL) < 0) { return NULL; } @@ -2007,12 +2544,13 @@ _PyThread_CurrentFrames(void) * Because these lists can mutate even when the GIL is held, we * need to grab head_mutex for the duration. */ + _PyEval_StopTheWorldAll(runtime); HEAD_LOCK(runtime); PyInterpreterState *i; for (i = runtime->interpreters.head; i != NULL; i = i->next) { PyThreadState *t; for (t = i->threads.head; t != NULL; t = t->next) { - _PyInterpreterFrame *frame = t->cframe->current_frame; + _PyInterpreterFrame *frame = t->current_frame; frame = _PyFrame_GetFirstComplete(frame); if (frame == NULL) { continue; @@ -2040,6 +2578,7 @@ fail: done: HEAD_UNLOCK(runtime); + _PyEval_StartTheWorldAll(runtime); return result; } @@ -2052,7 +2591,7 @@ PyObject * _PyThread_CurrentExceptions(void) { _PyRuntimeState *runtime = &_PyRuntime; - PyThreadState *tstate = current_fast_get(runtime); + PyThreadState *tstate = current_fast_get(); _Py_EnsureTstateNotNULL(tstate); @@ -2071,6 +2610,7 @@ _PyThread_CurrentExceptions(void) * Because these lists can mutate even when the GIL is held, we * need to grab head_mutex for the duration. */ + _PyEval_StopTheWorldAll(runtime); HEAD_LOCK(runtime); PyInterpreterState *i; for (i = runtime->interpreters.head; i != NULL; i = i->next) { @@ -2103,6 +2643,7 @@ fail: done: HEAD_UNLOCK(runtime); + _PyEval_StartTheWorldAll(runtime); return result; } @@ -2142,7 +2683,7 @@ _PyGILState_Fini(PyInterpreterState *interp) // XXX Drop this. -PyStatus +void _PyGILState_SetTstate(PyThreadState *tstate) { /* must init with valid states */ @@ -2152,7 +2693,7 @@ _PyGILState_SetTstate(PyThreadState *tstate) if (!_Py_IsMainInterpreter(tstate->interp)) { /* Currently, PyGILState is shared by all interpreters. The main * interpreter is responsible to initialize it. */ - return _PyStatus_OK(); + return; } #ifndef NDEBUG @@ -2162,8 +2703,6 @@ _PyGILState_SetTstate(PyThreadState *tstate) assert(gilstate_tss_get(runtime) == tstate); assert(tstate->gilstate_counter == 1); #endif - - return _PyStatus_OK(); } PyInterpreterState * @@ -2196,12 +2735,13 @@ PyGILState_Check(void) return 1; } - PyThreadState *tstate = current_fast_get(runtime); + PyThreadState *tstate = current_fast_get(); if (tstate == NULL) { return 0; } - return (tstate == gilstate_tss_get(runtime)); + PyThreadState *tcur = gilstate_tss_get(runtime); + return (tstate == tcur); } PyGILState_STATE @@ -2224,7 +2764,9 @@ PyGILState_Ensure(void) int has_gil; if (tcur == NULL) { /* Create a new Python thread state for this thread */ - tcur = new_threadstate(runtime->gilstate.autoInterpreterState); + // XXX Use PyInterpreterState_EnsureThreadState()? + tcur = new_threadstate(runtime->gilstate.autoInterpreterState, + _PyThreadState_WHENCE_GILSTATE); if (tcur == NULL) { Py_FatalError("Couldn't create thread-state for new thread"); } @@ -2298,7 +2840,7 @@ PyGILState_Release(PyGILState_STATE oldstate) * habit of coming back). */ assert(tstate->gilstate_counter == 0); - assert(current_fast_get(runtime) == tstate); + assert(current_fast_get() == tstate); _PyThreadState_DeleteCurrent(tstate); } /* Release the lock if necessary */ @@ -2308,585 +2850,6 @@ PyGILState_Release(PyGILState_STATE oldstate) } -/**************************/ -/* cross-interpreter data */ -/**************************/ - -/* cross-interpreter data */ - -static inline void -_xidata_init(_PyCrossInterpreterData *data) -{ - // If the value is being reused - // then _xidata_clear() should have been called already. - assert(data->data == NULL); - assert(data->obj == NULL); - *data = (_PyCrossInterpreterData){0}; - data->interp = -1; -} - -static inline void -_xidata_clear(_PyCrossInterpreterData *data) -{ - // _PyCrossInterpreterData only has two members that need to be - // cleaned up, if set: "data" must be freed and "obj" must be decref'ed. - // In both cases the original (owning) interpreter must be used, - // which is the caller's responsibility to ensure. - if (data->data != NULL) { - if (data->free != NULL) { - data->free(data->data); - } - data->data = NULL; - } - Py_CLEAR(data->obj); -} - -void -_PyCrossInterpreterData_Init(_PyCrossInterpreterData *data, - PyInterpreterState *interp, - void *shared, PyObject *obj, - xid_newobjectfunc new_object) -{ - assert(data != NULL); - assert(new_object != NULL); - _xidata_init(data); - data->data = shared; - if (obj != NULL) { - assert(interp != NULL); - // released in _PyCrossInterpreterData_Clear() - data->obj = Py_NewRef(obj); - } - // Ideally every object would know its owning interpreter. - // Until then, we have to rely on the caller to identify it - // (but we don't need it in all cases). - data->interp = (interp != NULL) ? interp->id : -1; - data->new_object = new_object; -} - -int -_PyCrossInterpreterData_InitWithSize(_PyCrossInterpreterData *data, - PyInterpreterState *interp, - const size_t size, PyObject *obj, - xid_newobjectfunc new_object) -{ - assert(size > 0); - // For now we always free the shared data in the same interpreter - // where it was allocated, so the interpreter is required. - assert(interp != NULL); - _PyCrossInterpreterData_Init(data, interp, NULL, obj, new_object); - data->data = PyMem_RawMalloc(size); - if (data->data == NULL) { - return -1; - } - data->free = PyMem_RawFree; - return 0; -} - -void -_PyCrossInterpreterData_Clear(PyInterpreterState *interp, - _PyCrossInterpreterData *data) -{ - assert(data != NULL); - // This must be called in the owning interpreter. - assert(interp == NULL || data->interp == interp->id); - _xidata_clear(data); -} - -static int -_check_xidata(PyThreadState *tstate, _PyCrossInterpreterData *data) -{ - // data->data can be anything, including NULL, so we don't check it. - - // data->obj may be NULL, so we don't check it. - - if (data->interp < 0) { - _PyErr_SetString(tstate, PyExc_SystemError, "missing interp"); - return -1; - } - - if (data->new_object == NULL) { - _PyErr_SetString(tstate, PyExc_SystemError, "missing new_object func"); - return -1; - } - - // data->free may be NULL, so we don't check it. - - return 0; -} - -crossinterpdatafunc _PyCrossInterpreterData_Lookup(PyObject *); - -/* This is a separate func from _PyCrossInterpreterData_Lookup in order - to keep the registry code separate. */ -static crossinterpdatafunc -_lookup_getdata(PyObject *obj) -{ - crossinterpdatafunc getdata = _PyCrossInterpreterData_Lookup(obj); - if (getdata == NULL && PyErr_Occurred() == 0) - PyErr_Format(PyExc_ValueError, - "%S does not support cross-interpreter data", obj); - return getdata; -} - -int -_PyObject_CheckCrossInterpreterData(PyObject *obj) -{ - crossinterpdatafunc getdata = _lookup_getdata(obj); - if (getdata == NULL) { - return -1; - } - return 0; -} - -int -_PyObject_GetCrossInterpreterData(PyObject *obj, _PyCrossInterpreterData *data) -{ - _PyRuntimeState *runtime = &_PyRuntime; - PyThreadState *tstate = current_fast_get(runtime); -#ifdef Py_DEBUG - // The caller must hold the GIL - _Py_EnsureTstateNotNULL(tstate); -#endif - PyInterpreterState *interp = tstate->interp; - - // Reset data before re-populating. - *data = (_PyCrossInterpreterData){0}; - data->interp = -1; - - // Call the "getdata" func for the object. - Py_INCREF(obj); - crossinterpdatafunc getdata = _lookup_getdata(obj); - if (getdata == NULL) { - Py_DECREF(obj); - return -1; - } - int res = getdata(tstate, obj, data); - Py_DECREF(obj); - if (res != 0) { - return -1; - } - - // Fill in the blanks and validate the result. - data->interp = interp->id; - if (_check_xidata(tstate, data) != 0) { - (void)_PyCrossInterpreterData_Release(data); - return -1; - } - - return 0; -} - -PyObject * -_PyCrossInterpreterData_NewObject(_PyCrossInterpreterData *data) -{ - return data->new_object(data); -} - -static int -_release_xidata_pending(void *data) -{ - _xidata_clear((_PyCrossInterpreterData *)data); - return 0; -} - -static int -_xidata_release_and_rawfree_pending(void *data) -{ - _xidata_clear((_PyCrossInterpreterData *)data); - PyMem_RawFree(data); - return 0; -} - -static int -_xidata_release(_PyCrossInterpreterData *data, int rawfree) -{ - if ((data->data == NULL || data->free == NULL) && data->obj == NULL) { - // Nothing to release! - if (rawfree) { - PyMem_RawFree(data); - } - else { - data->data = NULL; - } - return 0; - } - - // Switch to the original interpreter. - PyInterpreterState *interp = _PyInterpreterState_LookUpID(data->interp); - if (interp == NULL) { - // The interpreter was already destroyed. - // This function shouldn't have been called. - // XXX Someone leaked some memory... - assert(PyErr_Occurred()); - if (rawfree) { - PyMem_RawFree(data); - } - return -1; - } - - // "Release" the data and/or the object. - if (interp == current_fast_get(interp->runtime)->interp) { - _xidata_clear(data); - if (rawfree) { - PyMem_RawFree(data); - } - } - else { - int (*func)(void *) = _release_xidata_pending; - if (rawfree) { - func = _xidata_release_and_rawfree_pending; - } - // XXX Emit a warning if this fails? - _PyEval_AddPendingCall(interp, func, data, 0); - } - return 0; -} - -int -_PyCrossInterpreterData_Release(_PyCrossInterpreterData *data) -{ - return _xidata_release(data, 0); -} - -int -_PyCrossInterpreterData_ReleaseAndRawFree(_PyCrossInterpreterData *data) -{ - return _xidata_release(data, 1); -} - -/* registry of {type -> crossinterpdatafunc} */ - -/* For now we use a global registry of shareable classes. An - alternative would be to add a tp_* slot for a class's - crossinterpdatafunc. It would be simpler and more efficient. */ - -static int -_xidregistry_add_type(struct _xidregistry *xidregistry, - PyTypeObject *cls, crossinterpdatafunc getdata) -{ - struct _xidregitem *newhead = PyMem_RawMalloc(sizeof(struct _xidregitem)); - if (newhead == NULL) { - return -1; - } - *newhead = (struct _xidregitem){ - // We do not keep a reference, to avoid keeping the class alive. - .cls = cls, - .refcount = 1, - .getdata = getdata, - }; - if (cls->tp_flags & Py_TPFLAGS_HEAPTYPE) { - // XXX Assign a callback to clear the entry from the registry? - newhead->weakref = PyWeakref_NewRef((PyObject *)cls, NULL); - if (newhead->weakref == NULL) { - PyMem_RawFree(newhead); - return -1; - } - } - newhead->next = xidregistry->head; - if (newhead->next != NULL) { - newhead->next->prev = newhead; - } - xidregistry->head = newhead; - return 0; -} - -static struct _xidregitem * -_xidregistry_remove_entry(struct _xidregistry *xidregistry, - struct _xidregitem *entry) -{ - struct _xidregitem *next = entry->next; - if (entry->prev != NULL) { - assert(entry->prev->next == entry); - entry->prev->next = next; - } - else { - assert(xidregistry->head == entry); - xidregistry->head = next; - } - if (next != NULL) { - next->prev = entry->prev; - } - Py_XDECREF(entry->weakref); - PyMem_RawFree(entry); - return next; -} - -static void -_xidregistry_clear(struct _xidregistry *xidregistry) -{ - struct _xidregitem *cur = xidregistry->head; - xidregistry->head = NULL; - while (cur != NULL) { - struct _xidregitem *next = cur->next; - Py_XDECREF(cur->weakref); - PyMem_RawFree(cur); - cur = next; - } -} - -static struct _xidregitem * -_xidregistry_find_type(struct _xidregistry *xidregistry, PyTypeObject *cls) -{ - struct _xidregitem *cur = xidregistry->head; - while (cur != NULL) { - if (cur->weakref != NULL) { - // cur is/was a heap type. - PyObject *registered = PyWeakref_GetObject(cur->weakref); - assert(registered != NULL); - if (registered == Py_None) { - // The weakly ref'ed object was freed. - cur = _xidregistry_remove_entry(xidregistry, cur); - continue; - } - assert(PyType_Check(registered)); - assert(cur->cls == (PyTypeObject *)registered); - assert(cur->cls->tp_flags & Py_TPFLAGS_HEAPTYPE); - //Py_DECREF(registered); - } - if (cur->cls == cls) { - return cur; - } - cur = cur->next; - } - return NULL; -} - -static inline struct _xidregistry * -_get_xidregistry(PyInterpreterState *interp, PyTypeObject *cls) -{ - struct _xidregistry *xidregistry = &interp->runtime->xidregistry; - if (cls->tp_flags & Py_TPFLAGS_HEAPTYPE) { - assert(interp->xidregistry.mutex == xidregistry->mutex); - xidregistry = &interp->xidregistry; - } - return xidregistry; -} - -static void _register_builtins_for_crossinterpreter_data(struct _xidregistry *xidregistry); - -static inline void -_ensure_builtins_xid(PyInterpreterState *interp, struct _xidregistry *xidregistry) -{ - if (xidregistry != &interp->xidregistry) { - assert(xidregistry == &interp->runtime->xidregistry); - if (xidregistry->head == NULL) { - _register_builtins_for_crossinterpreter_data(xidregistry); - } - } -} - -int -_PyCrossInterpreterData_RegisterClass(PyTypeObject *cls, - crossinterpdatafunc getdata) -{ - if (!PyType_Check(cls)) { - PyErr_Format(PyExc_ValueError, "only classes may be registered"); - return -1; - } - if (getdata == NULL) { - PyErr_Format(PyExc_ValueError, "missing 'getdata' func"); - return -1; - } - - int res = 0; - PyInterpreterState *interp = _PyInterpreterState_GET(); - struct _xidregistry *xidregistry = _get_xidregistry(interp, cls); - PyThread_acquire_lock(xidregistry->mutex, WAIT_LOCK); - - _ensure_builtins_xid(interp, xidregistry); - - struct _xidregitem *matched = _xidregistry_find_type(xidregistry, cls); - if (matched != NULL) { - assert(matched->getdata == getdata); - matched->refcount += 1; - goto finally; - } - - res = _xidregistry_add_type(xidregistry, cls, getdata); - -finally: - PyThread_release_lock(xidregistry->mutex); - return res; -} - -int -_PyCrossInterpreterData_UnregisterClass(PyTypeObject *cls) -{ - int res = 0; - PyInterpreterState *interp = _PyInterpreterState_GET(); - struct _xidregistry *xidregistry = _get_xidregistry(interp, cls); - PyThread_acquire_lock(xidregistry->mutex, WAIT_LOCK); - - struct _xidregitem *matched = _xidregistry_find_type(xidregistry, cls); - if (matched != NULL) { - assert(matched->refcount > 0); - matched->refcount -= 1; - if (matched->refcount == 0) { - (void)_xidregistry_remove_entry(xidregistry, matched); - } - res = 1; - } - - PyThread_release_lock(xidregistry->mutex); - return res; -} - - -/* Cross-interpreter objects are looked up by exact match on the class. - We can reassess this policy when we move from a global registry to a - tp_* slot. */ - -crossinterpdatafunc -_PyCrossInterpreterData_Lookup(PyObject *obj) -{ - PyTypeObject *cls = Py_TYPE(obj); - - PyInterpreterState *interp = _PyInterpreterState_GET(); - struct _xidregistry *xidregistry = _get_xidregistry(interp, cls); - PyThread_acquire_lock(xidregistry->mutex, WAIT_LOCK); - - _ensure_builtins_xid(interp, xidregistry); - - struct _xidregitem *matched = _xidregistry_find_type(xidregistry, cls); - crossinterpdatafunc func = matched != NULL ? matched->getdata : NULL; - - PyThread_release_lock(xidregistry->mutex); - return func; -} - -/* cross-interpreter data for builtin types */ - -struct _shared_bytes_data { - char *bytes; - Py_ssize_t len; -}; - -static PyObject * -_new_bytes_object(_PyCrossInterpreterData *data) -{ - struct _shared_bytes_data *shared = (struct _shared_bytes_data *)(data->data); - return PyBytes_FromStringAndSize(shared->bytes, shared->len); -} - -static int -_bytes_shared(PyThreadState *tstate, PyObject *obj, - _PyCrossInterpreterData *data) -{ - if (_PyCrossInterpreterData_InitWithSize( - data, tstate->interp, sizeof(struct _shared_bytes_data), obj, - _new_bytes_object - ) < 0) - { - return -1; - } - struct _shared_bytes_data *shared = (struct _shared_bytes_data *)data->data; - if (PyBytes_AsStringAndSize(obj, &shared->bytes, &shared->len) < 0) { - _PyCrossInterpreterData_Clear(tstate->interp, data); - return -1; - } - return 0; -} - -struct _shared_str_data { - int kind; - const void *buffer; - Py_ssize_t len; -}; - -static PyObject * -_new_str_object(_PyCrossInterpreterData *data) -{ - struct _shared_str_data *shared = (struct _shared_str_data *)(data->data); - return PyUnicode_FromKindAndData(shared->kind, shared->buffer, shared->len); -} - -static int -_str_shared(PyThreadState *tstate, PyObject *obj, - _PyCrossInterpreterData *data) -{ - if (_PyCrossInterpreterData_InitWithSize( - data, tstate->interp, sizeof(struct _shared_str_data), obj, - _new_str_object - ) < 0) - { - return -1; - } - struct _shared_str_data *shared = (struct _shared_str_data *)data->data; - shared->kind = PyUnicode_KIND(obj); - shared->buffer = PyUnicode_DATA(obj); - shared->len = PyUnicode_GET_LENGTH(obj); - return 0; -} - -static PyObject * -_new_long_object(_PyCrossInterpreterData *data) -{ - return PyLong_FromSsize_t((Py_ssize_t)(data->data)); -} - -static int -_long_shared(PyThreadState *tstate, PyObject *obj, - _PyCrossInterpreterData *data) -{ - /* Note that this means the size of shareable ints is bounded by - * sys.maxsize. Hence on 32-bit architectures that is half the - * size of maximum shareable ints on 64-bit. - */ - Py_ssize_t value = PyLong_AsSsize_t(obj); - if (value == -1 && PyErr_Occurred()) { - if (PyErr_ExceptionMatches(PyExc_OverflowError)) { - PyErr_SetString(PyExc_OverflowError, "try sending as bytes"); - } - return -1; - } - _PyCrossInterpreterData_Init(data, tstate->interp, (void *)value, NULL, - _new_long_object); - // data->obj and data->free remain NULL - return 0; -} - -static PyObject * -_new_none_object(_PyCrossInterpreterData *data) -{ - // XXX Singleton refcounts are problematic across interpreters... - return Py_NewRef(Py_None); -} - -static int -_none_shared(PyThreadState *tstate, PyObject *obj, - _PyCrossInterpreterData *data) -{ - _PyCrossInterpreterData_Init(data, tstate->interp, NULL, NULL, - _new_none_object); - // data->data, data->obj and data->free remain NULL - return 0; -} - -static void -_register_builtins_for_crossinterpreter_data(struct _xidregistry *xidregistry) -{ - // None - if (_xidregistry_add_type(xidregistry, (PyTypeObject *)PyObject_Type(Py_None), _none_shared) != 0) { - Py_FatalError("could not register None for cross-interpreter sharing"); - } - - // int - if (_xidregistry_add_type(xidregistry, &PyLong_Type, _long_shared) != 0) { - Py_FatalError("could not register int for cross-interpreter sharing"); - } - - // bytes - if (_xidregistry_add_type(xidregistry, &PyBytes_Type, _bytes_shared) != 0) { - Py_FatalError("could not register bytes for cross-interpreter sharing"); - } - - // str - if (_xidregistry_add_type(xidregistry, &PyUnicode_Type, _str_shared) != 0) { - Py_FatalError("could not register str for cross-interpreter sharing"); - } -} - - /*************/ /* Other API */ /*************/ @@ -2906,11 +2869,18 @@ _PyInterpreterState_SetEvalFrameFunc(PyInterpreterState *interp, _PyFrameEvalFunction eval_frame) { if (eval_frame == _PyEval_EvalFrameDefault) { - interp->eval_frame = NULL; + eval_frame = NULL; } - else { - interp->eval_frame = eval_frame; + if (eval_frame == interp->eval_frame) { + return; + } +#ifdef _Py_TIER2 + if (eval_frame != NULL) { + _Py_Executors_InvalidateAll(interp, 1); } +#endif + RARE_EVENT_INC(set_eval_frame_func); + interp->eval_frame = eval_frame; } @@ -2924,7 +2894,7 @@ _PyInterpreterState_GetConfig(PyInterpreterState *interp) int _PyInterpreterState_GetConfigCopy(PyConfig *config) { - PyInterpreterState *interp = PyInterpreterState_Get(); + PyInterpreterState *interp = _PyInterpreterState_GET(); PyStatus status = _PyConfig_Copy(config, &interp->config); if (PyStatus_Exception(status)) { @@ -2938,9 +2908,8 @@ _PyInterpreterState_GetConfigCopy(PyConfig *config) const PyConfig* _Py_GetConfig(void) { - _PyRuntimeState *runtime = &_PyRuntime; assert(PyGILState_Check()); - PyThreadState *tstate = current_fast_get(runtime); + PyThreadState *tstate = current_fast_get(); _Py_EnsureTstateNotNULL(tstate); return _PyInterpreterState_GetConfig(tstate->interp); } @@ -3072,7 +3041,79 @@ _PyThreadState_MustExit(PyThreadState *tstate) return 1; } +/********************/ +/* mimalloc support */ +/********************/ + +static void +tstate_mimalloc_bind(PyThreadState *tstate) +{ +#ifdef Py_GIL_DISABLED + struct _mimalloc_thread_state *mts = &((_PyThreadStateImpl*)tstate)->mimalloc; + + // Initialize the mimalloc thread state. This must be called from the + // same thread that will use the thread state. The "mem" heap doubles as + // the "backing" heap. + mi_tld_t *tld = &mts->tld; + _mi_tld_init(tld, &mts->heaps[_Py_MIMALLOC_HEAP_MEM]); + llist_init(&mts->page_list); + + // Exiting threads push any remaining in-use segments to the abandoned + // pool to be re-claimed later by other threads. We use per-interpreter + // pools to keep Python objects from different interpreters separate. + tld->segments.abandoned = &tstate->interp->mimalloc.abandoned_pool; + + // Don't fill in the first N bytes up to ob_type in debug builds. We may + // access ob_tid and the refcount fields in the dict and list lock-less + // accesses, so they must remain valid for a while after deallocation. + size_t base_offset = offsetof(PyObject, ob_type); + if (_PyMem_DebugEnabled()) { + // The debug allocator adds two words at the beginning of each block. + base_offset += 2 * sizeof(size_t); + } + size_t debug_offsets[_Py_MIMALLOC_HEAP_COUNT] = { + [_Py_MIMALLOC_HEAP_OBJECT] = base_offset, + [_Py_MIMALLOC_HEAP_GC] = base_offset, + [_Py_MIMALLOC_HEAP_GC_PRE] = base_offset + 2 * sizeof(PyObject *), + }; + + // Initialize each heap + for (uint8_t i = 0; i < _Py_MIMALLOC_HEAP_COUNT; i++) { + _mi_heap_init_ex(&mts->heaps[i], tld, _mi_arena_id_none(), false, i); + mts->heaps[i].debug_offset = (uint8_t)debug_offsets[i]; + } + + // Heaps that store Python objects should use QSBR to delay freeing + // mimalloc pages while there may be concurrent lock-free readers. + mts->heaps[_Py_MIMALLOC_HEAP_OBJECT].page_use_qsbr = true; + mts->heaps[_Py_MIMALLOC_HEAP_GC].page_use_qsbr = true; + mts->heaps[_Py_MIMALLOC_HEAP_GC_PRE].page_use_qsbr = true; + + // By default, object allocations use _Py_MIMALLOC_HEAP_OBJECT. + // _PyObject_GC_New() and similar functions temporarily override this to + // use one of the GC heaps. + mts->current_object_heap = &mts->heaps[_Py_MIMALLOC_HEAP_OBJECT]; -#ifdef __cplusplus + _Py_atomic_store_int(&mts->initialized, 1); +#endif } + +void +_PyThreadState_ClearMimallocHeaps(PyThreadState *tstate) +{ +#ifdef Py_GIL_DISABLED + if (!tstate->_status.bound) { + // The mimalloc heaps are only initialized when the thread is bound. + return; + } + + _PyThreadStateImpl *tstate_impl = (_PyThreadStateImpl *)tstate; + for (Py_ssize_t i = 0; i < _Py_MIMALLOC_HEAP_COUNT; i++) { + // Abandon all segments in use by this thread. This pushes them to + // a shared pool to later be reclaimed by other threads. It's important + // to do this before the thread state is destroyed so that objects + // remain visible to the GC. + _mi_heap_collect_abandon(&tstate_impl->mimalloc.heaps[i]); + } #endif +} diff --git a/contrib/tools/python3/Python/pystrcmp.c b/contrib/tools/python3/Python/pystrcmp.c index 9224ce4c706..9796cb013ad 100644 --- a/contrib/tools/python3/Python/pystrcmp.c +++ b/contrib/tools/python3/Python/pystrcmp.c @@ -11,11 +11,11 @@ PyOS_mystrnicmp(const char *s1, const char *s2, Py_ssize_t size) return 0; p1 = (const unsigned char *)s1; p2 = (const unsigned char *)s2; - for (; (--size > 0) && *p1 && *p2 && (tolower(*p1) == tolower(*p2)); + for (; (--size > 0) && *p1 && *p2 && (Py_TOLOWER(*p1) == Py_TOLOWER(*p2)); p1++, p2++) { ; } - return tolower(*p1) - tolower(*p2); + return Py_TOLOWER(*p1) - Py_TOLOWER(*p2); } int @@ -23,8 +23,8 @@ PyOS_mystricmp(const char *s1, const char *s2) { const unsigned char *p1 = (const unsigned char *)s1; const unsigned char *p2 = (const unsigned char *)s2; - for (; *p1 && *p2 && (tolower(*p1) == tolower(*p2)); p1++, p2++) { + for (; *p1 && *p2 && (Py_TOLOWER(*p1) == Py_TOLOWER(*p2)); p1++, p2++) { ; } - return (tolower(*p1) - tolower(*p2)); + return (Py_TOLOWER(*p1) - Py_TOLOWER(*p2)); } diff --git a/contrib/tools/python3/Python/pystrhex.c b/contrib/tools/python3/Python/pystrhex.c index e4f06d76639..af2f5c5dce5 100644 --- a/contrib/tools/python3/Python/pystrhex.c +++ b/contrib/tools/python3/Python/pystrhex.c @@ -2,7 +2,7 @@ #include "Python.h" #include "pycore_strhex.h" // _Py_strhex_with_sep() -#include // abs() +#include "pycore_unicodeobject.h" // _PyUnicode_CheckConsistency() static PyObject *_Py_strhex_impl(const char* argbuf, const Py_ssize_t arglen, PyObject* sep, int bytes_per_sep_group, @@ -21,8 +21,6 @@ static PyObject *_Py_strhex_impl(const char* argbuf, const Py_ssize_t arglen, return NULL; } if (PyUnicode_Check(sep)) { - if (PyUnicode_READY(sep)) - return NULL; if (PyUnicode_KIND(sep) != PyUnicode_1BYTE_KIND) { PyErr_SetString(PyExc_ValueError, "sep must be ASCII."); return NULL; @@ -44,8 +42,7 @@ static PyObject *_Py_strhex_impl(const char* argbuf, const Py_ssize_t arglen, else { bytes_per_sep_group = 0; } - - unsigned int abs_bytes_per_sep = abs(bytes_per_sep_group); + unsigned int abs_bytes_per_sep = _Py_ABS_CAST(unsigned int, bytes_per_sep_group); Py_ssize_t resultlen = 0; if (bytes_per_sep_group && arglen > 0) { /* How many sep characters we'll be inserting. */ diff --git a/contrib/tools/python3/Python/pystrtod.c b/contrib/tools/python3/Python/pystrtod.c index 9bb060e3d11..16bf06f0e6c 100644 --- a/contrib/tools/python3/Python/pystrtod.c +++ b/contrib/tools/python3/Python/pystrtod.c @@ -3,7 +3,8 @@ #include #include "pycore_dtoa.h" // _Py_dg_strtod() #include "pycore_pymath.h" // _PY_SHORT_FLOAT_REPR -#include + +#include // localeconv() /* Case-insensitive string match used for nan and inf detection; t should be lower-case. Returns 1 for a successful match, 0 otherwise. */ diff --git a/contrib/tools/python3/Python/pythonrun.c b/contrib/tools/python3/Python/pythonrun.c index 89287bace08..c4a1275eb52 100644 --- a/contrib/tools/python3/Python/pythonrun.c +++ b/contrib/tools/python3/Python/pythonrun.c @@ -10,17 +10,18 @@ #include "Python.h" -#include "pycore_ast.h" // PyAST_mod2obj -#include "pycore_ceval.h" // _Py_EnterRecursiveCall +#include "pycore_ast.h" // PyAST_mod2obj() +#include "pycore_ceval.h" // _Py_EnterRecursiveCall() #include "pycore_compile.h" // _PyAST_Compile() #include "pycore_interp.h" // PyInterpreterState.importlib #include "pycore_object.h" // _PyDebug_PrintTotalRefs() #include "pycore_parser.h" // _PyParser_ASTFromString() -#include "pycore_pyerrors.h" // _PyErr_GetRaisedException, _Py_Offer_Suggestions -#include "pycore_pylifecycle.h" // _Py_UnhandledKeyboardInterrupt +#include "pycore_pyerrors.h" // _PyErr_GetRaisedException() +#include "pycore_pylifecycle.h" // _Py_FdIsInteractive() #include "pycore_pystate.h" // _PyInterpreterState_GET() +#include "pycore_pythonrun.h" // export _PyRun_InteractiveLoopObject() #include "pycore_sysmodule.h" // _PySys_Audit() -#include "pycore_traceback.h" // _PyTraceBack_Print_Indented() +#include "pycore_traceback.h" // _PyTraceBack_Print() #include "errcode.h" // E_EOF #include "marshal.h" // PyMarshal_ReadLongFromFile() @@ -36,22 +37,20 @@ # include "windows.h" #endif - -#ifdef __cplusplus -extern "C" { -#endif - /* Forward */ static void flush_io(void); static PyObject *run_mod(mod_ty, PyObject *, PyObject *, PyObject *, - PyCompilerFlags *, PyArena *); + PyCompilerFlags *, PyArena *, PyObject*, int); static PyObject *run_pyc_file(FILE *, PyObject *, PyObject *, PyCompilerFlags *); static int PyRun_InteractiveOneObjectEx(FILE *, PyObject *, PyCompilerFlags *); static PyObject* pyrun_file(FILE *fp, PyObject *filename, int start, PyObject *globals, PyObject *locals, int closeit, PyCompilerFlags *flags); - +static PyObject * +_PyRun_StringFlagsWithName(const char *str, PyObject* name, int start, + PyObject *globals, PyObject *locals, PyCompilerFlags *flags, + int generate_new_source); int _PyRun_AnyFileObject(FILE *fp, PyObject *filename, int closeit, @@ -84,13 +83,11 @@ _PyRun_AnyFileObject(FILE *fp, PyObject *filename, int closeit, return res; } - -/* Parse input from a file and execute it */ int PyRun_AnyFileExFlags(FILE *fp, const char *filename, int closeit, PyCompilerFlags *flags) { - PyObject *filename_obj; + PyObject *filename_obj = NULL; if (filename != NULL) { filename_obj = PyUnicode_DecodeFSDefault(filename); if (filename_obj == NULL) { @@ -98,9 +95,6 @@ PyRun_AnyFileExFlags(FILE *fp, const char *filename, int closeit, return -1; } } - else { - filename_obj = NULL; - } int res = _PyRun_AnyFileObject(fp, filename_obj, closeit, flags); Py_XDECREF(filename_obj); return res; @@ -197,98 +191,160 @@ PyRun_InteractiveLoopFlags(FILE *fp, const char *filename, PyCompilerFlags *flag } -/* A PyRun_InteractiveOneObject() auxiliary function that does not print the - * error on failure. */ +// Call _PyParser_ASTFromFile() with sys.stdin.encoding, sys.ps1 and sys.ps2 static int -PyRun_InteractiveOneObjectEx(FILE *fp, PyObject *filename, - PyCompilerFlags *flags) -{ - PyObject *m, *d, *v, *w, *oenc = NULL; - mod_ty mod; - PyArena *arena; - const char *ps1 = "", *ps2 = "", *enc = NULL; - int errcode = 0; - +pyrun_one_parse_ast(FILE *fp, PyObject *filename, + PyCompilerFlags *flags, PyArena *arena, + mod_ty *pmod, PyObject** interactive_src) +{ + // Get sys.stdin.encoding (as UTF-8) + PyObject *attr; + PyObject *encoding_obj = NULL; + const char *encoding = NULL; if (fp == stdin) { - /* Fetch encoding from sys.stdin if possible. */ - if (_PySys_GetOptionalAttr(&_Py_ID(stdin), &v) < 0) { - return -1; + if (_PySys_GetOptionalAttr(&_Py_ID(stdin), &attr) < 0) { + PyErr_Clear(); } - if (v && v != Py_None) { - oenc = PyObject_GetAttr(v, &_Py_ID(encoding)); - if (oenc) - enc = PyUnicode_AsUTF8(oenc); - if (!enc) + else if (attr != NULL && attr != Py_None) { + if (PyObject_GetOptionalAttr(attr, &_Py_ID(encoding), &encoding_obj) < 0) { PyErr_Clear(); + } + else if (encoding_obj && PyUnicode_Check(encoding_obj)) { + encoding = PyUnicode_AsUTF8(encoding_obj); + if (!encoding) { + PyErr_Clear(); + } + } } - Py_XDECREF(v); + Py_XDECREF(attr); } - if (_PySys_GetOptionalAttr(&_Py_ID(ps1), &v) < 0) { - Py_XDECREF(oenc); - return -1; + + // Get sys.ps1 (as UTF-8) + PyObject *ps1_obj = NULL; + const char *ps1 = ""; + if (_PySys_GetOptionalAttr(&_Py_ID(ps1), &attr) < 0) { + PyErr_Clear(); } - if (v != NULL) { - Py_SETREF(v, PyObject_Str(v)); - if (v == NULL) + else if (attr != NULL) { + ps1_obj = PyObject_Str(attr); + Py_DECREF(attr); + if (ps1_obj == NULL) { PyErr_Clear(); - else if (PyUnicode_Check(v)) { - ps1 = PyUnicode_AsUTF8(v); + } + else if (PyUnicode_Check(ps1_obj)) { + ps1 = PyUnicode_AsUTF8(ps1_obj); if (ps1 == NULL) { PyErr_Clear(); ps1 = ""; } } } - if (_PySys_GetOptionalAttr(&_Py_ID(ps2), &w) < 0) { - Py_XDECREF(oenc); - return -1; + + // Get sys.ps2 (as UTF-8) + PyObject *ps2_obj = NULL; + const char *ps2 = ""; + if (_PySys_GetOptionalAttr(&_Py_ID(ps2), &attr) < 0) { + PyErr_Clear(); } - if (w != NULL) { - Py_SETREF(w, PyObject_Str(w)); - if (w == NULL) + else if (attr != NULL) { + ps2_obj = PyObject_Str(attr); + Py_DECREF(attr); + if (ps2_obj == NULL) { PyErr_Clear(); - else if (PyUnicode_Check(w)) { - ps2 = PyUnicode_AsUTF8(w); + } + else if (PyUnicode_Check(ps2_obj)) { + ps2 = PyUnicode_AsUTF8(ps2_obj); if (ps2 == NULL) { PyErr_Clear(); ps2 = ""; } } } - arena = _PyArena_New(); - if (arena == NULL) { - Py_XDECREF(v); - Py_XDECREF(w); - Py_XDECREF(oenc); - return -1; - } - mod = _PyParser_ASTFromFile(fp, filename, enc, Py_single_input, - ps1, ps2, flags, &errcode, arena); - - Py_XDECREF(v); - Py_XDECREF(w); - Py_XDECREF(oenc); - if (mod == NULL) { - _PyArena_Free(arena); + int errcode = 0; + *pmod = _PyParser_InteractiveASTFromFile(fp, filename, encoding, + Py_single_input, ps1, ps2, + flags, &errcode, interactive_src, arena); + Py_XDECREF(ps1_obj); + Py_XDECREF(ps2_obj); + Py_XDECREF(encoding_obj); + + if (*pmod == NULL) { if (errcode == E_EOF) { PyErr_Clear(); return E_EOF; } return -1; } - m = PyImport_AddModuleObject(&_Py_ID(__main__)); - if (m == NULL) { + return 0; +} + + +/* A PyRun_InteractiveOneObject() auxiliary function that does not print the + * error on failure. */ +static int +PyRun_InteractiveOneObjectEx(FILE *fp, PyObject *filename, + PyCompilerFlags *flags) +{ + PyArena *arena = _PyArena_New(); + if (arena == NULL) { + return -1; + } + + mod_ty mod; + PyObject *interactive_src; + int parse_res = pyrun_one_parse_ast(fp, filename, flags, arena, &mod, &interactive_src); + if (parse_res != 0) { + _PyArena_Free(arena); + return parse_res; + } + + PyObject *main_module = PyImport_AddModuleRef("__main__"); + if (main_module == NULL) { _PyArena_Free(arena); return -1; } - d = PyModule_GetDict(m); - v = run_mod(mod, filename, d, d, flags, arena); + PyObject *main_dict = PyModule_GetDict(main_module); // borrowed ref + + PyObject *res = run_mod(mod, filename, main_dict, main_dict, flags, arena, interactive_src, 1); + Py_INCREF(interactive_src); _PyArena_Free(arena); - if (v == NULL) { + Py_DECREF(main_module); + if (res == NULL) { + PyThreadState *tstate = _PyThreadState_GET(); + PyObject *exc = _PyErr_GetRaisedException(tstate); + if (PyType_IsSubtype(Py_TYPE(exc), + (PyTypeObject *) PyExc_SyntaxError)) + { + /* fix "text" attribute */ + assert(interactive_src != NULL); + PyObject *xs = PyUnicode_Splitlines(interactive_src, 1); + if (xs == NULL) { + goto error; + } + PyObject *exc_lineno = PyObject_GetAttr(exc, &_Py_ID(lineno)); + if (exc_lineno == NULL) { + Py_DECREF(xs); + goto error; + } + int n = PyLong_AsInt(exc_lineno); + Py_DECREF(exc_lineno); + if (n <= 0 || n > PyList_GET_SIZE(xs)) { + Py_DECREF(xs); + goto error; + } + PyObject *line = PyList_GET_ITEM(xs, n - 1); + PyObject_SetAttr(exc, &_Py_ID(text), line); + Py_DECREF(xs); + } +error: + Py_DECREF(interactive_src); + _PyErr_SetRaisedException(tstate, exc); return -1; } - Py_DECREF(v); + Py_DECREF(interactive_src); + Py_DECREF(res); + flush_io(); return 0; } @@ -402,22 +458,23 @@ int _PyRun_SimpleFileObject(FILE *fp, PyObject *filename, int closeit, PyCompilerFlags *flags) { - PyObject *m, *d, *v; - int set_file_name = 0, ret = -1; + int ret = -1; - m = PyImport_AddModule("__main__"); - if (m == NULL) + PyObject *main_module = PyImport_AddModuleRef("__main__"); + if (main_module == NULL) return -1; - Py_INCREF(m); - d = PyModule_GetDict(m); - if (_PyDict_GetItemStringWithError(d, "__file__") == NULL) { - if (PyErr_Occurred()) { - goto done; - } - if (PyDict_SetItemString(d, "__file__", filename) < 0) { + PyObject *dict = PyModule_GetDict(main_module); // borrowed ref + + int set_file_name = 0; + int has_file = PyDict_ContainsString(dict, "__file__"); + if (has_file < 0) { + goto done; + } + if (!has_file) { + if (PyDict_SetItemString(dict, "__file__", filename) < 0) { goto done; } - if (PyDict_SetItemString(d, "__cached__", Py_None) < 0) { + if (PyDict_SetItemString(dict, "__cached__", Py_None) < 0) { goto done; } set_file_name = 1; @@ -428,6 +485,7 @@ _PyRun_SimpleFileObject(FILE *fp, PyObject *filename, int closeit, goto done; } + PyObject *v; if (pyc) { FILE *pyc_fp; /* Try to run a pyc file. First, re-open in binary */ @@ -441,42 +499,43 @@ _PyRun_SimpleFileObject(FILE *fp, PyObject *filename, int closeit, goto done; } - if (set_main_loader(d, filename, "SourcelessFileLoader") < 0) { + if (set_main_loader(dict, filename, "SourcelessFileLoader") < 0) { fprintf(stderr, "python: failed to set __main__.__loader__\n"); ret = -1; fclose(pyc_fp); goto done; } - v = run_pyc_file(pyc_fp, d, d, flags); + v = run_pyc_file(pyc_fp, dict, dict, flags); } else { /* When running from stdin, leave __main__.__loader__ alone */ - if (PyUnicode_CompareWithASCIIString(filename, "") != 0 && - set_main_loader(d, filename, "SourceFileLoader") < 0) { + if ((!PyUnicode_Check(filename) || !PyUnicode_EqualToUTF8(filename, "")) && + set_main_loader(dict, filename, "SourceFileLoader") < 0) { fprintf(stderr, "python: failed to set __main__.__loader__\n"); ret = -1; goto done; } - v = pyrun_file(fp, filename, Py_file_input, d, d, + v = pyrun_file(fp, filename, Py_file_input, dict, dict, closeit, flags); } flush_io(); if (v == NULL) { - Py_CLEAR(m); + Py_CLEAR(main_module); PyErr_Print(); goto done; } Py_DECREF(v); ret = 0; + done: if (set_file_name) { - if (PyDict_DelItemString(d, "__file__")) { - PyErr_Clear(); + if (PyDict_PopString(dict, "__file__", NULL) < 0) { + PyErr_Print(); } - if (PyDict_DelItemString(d, "__cached__")) { - PyErr_Clear(); + if (PyDict_PopString(dict, "__cached__", NULL) < 0) { + PyErr_Print(); } } - Py_XDECREF(m); + Py_XDECREF(main_module); return ret; } @@ -496,214 +555,65 @@ PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit, int -PyRun_SimpleStringFlags(const char *command, PyCompilerFlags *flags) -{ - PyObject *m, *d, *v; - m = PyImport_AddModule("__main__"); - if (m == NULL) +_PyRun_SimpleStringFlagsWithName(const char *command, const char* name, PyCompilerFlags *flags) { + PyObject *main_module = PyImport_AddModuleRef("__main__"); + if (main_module == NULL) { return -1; - d = PyModule_GetDict(m); - v = PyRun_StringFlags(command, Py_file_input, d, d, flags); - if (v == NULL) { - PyErr_Print(); - return -1; - } - Py_DECREF(v); - return 0; -} - -static int -parse_syntax_error(PyObject *err, PyObject **message, PyObject **filename, - Py_ssize_t *lineno, Py_ssize_t *offset, - Py_ssize_t* end_lineno, Py_ssize_t* end_offset, - PyObject **text) -{ - Py_ssize_t hold; - PyObject *v; - - *message = NULL; - *filename = NULL; - - /* new style errors. `err' is an instance */ - *message = PyObject_GetAttr(err, &_Py_ID(msg)); - if (!*message) - goto finally; - - v = PyObject_GetAttr(err, &_Py_ID(filename)); - if (!v) - goto finally; - if (v == Py_None) { - Py_DECREF(v); - _Py_DECLARE_STR(anon_string, ""); - *filename = Py_NewRef(&_Py_STR(anon_string)); - } - else { - *filename = v; - } - - v = PyObject_GetAttr(err, &_Py_ID(lineno)); - if (!v) - goto finally; - hold = PyLong_AsSsize_t(v); - Py_DECREF(v); - if (hold < 0 && PyErr_Occurred()) - goto finally; - *lineno = hold; - - v = PyObject_GetAttr(err, &_Py_ID(offset)); - if (!v) - goto finally; - if (v == Py_None) { - *offset = -1; - Py_DECREF(v); - } else { - hold = PyLong_AsSsize_t(v); - Py_DECREF(v); - if (hold < 0 && PyErr_Occurred()) - goto finally; - *offset = hold; } + PyObject *dict = PyModule_GetDict(main_module); // borrowed ref - v = PyObject_GetAttr(err, &_Py_ID(end_lineno)); - if (!v) { - PyErr_Clear(); - *end_lineno = *lineno; - } - else if (v == Py_None) { - *end_lineno = *lineno; - Py_DECREF(v); + PyObject *res = NULL; + if (name == NULL) { + res = PyRun_StringFlags(command, Py_file_input, dict, dict, flags); } else { - hold = PyLong_AsSsize_t(v); - Py_DECREF(v); - if (hold < 0 && PyErr_Occurred()) - goto finally; - *end_lineno = hold; - } - - v = PyObject_GetAttr(err, &_Py_ID(end_offset)); - if (!v) { - PyErr_Clear(); - *end_offset = -1; - } - else if (v == Py_None) { - *end_offset = -1; - Py_DECREF(v); - } else { - hold = PyLong_AsSsize_t(v); - Py_DECREF(v); - if (hold < 0 && PyErr_Occurred()) - goto finally; - *end_offset = hold; - } - - v = PyObject_GetAttr(err, &_Py_ID(text)); - if (!v) - goto finally; - if (v == Py_None) { - Py_DECREF(v); - *text = NULL; + PyObject* the_name = PyUnicode_FromString(name); + if (!the_name) { + PyErr_Print(); + return -1; + } + res = _PyRun_StringFlagsWithName(command, the_name, Py_file_input, dict, dict, flags, 0); + Py_DECREF(the_name); } - else { - *text = v; + Py_DECREF(main_module); + if (res == NULL) { + PyErr_Print(); + return -1; } - return 1; -finally: - Py_XDECREF(*message); - Py_XDECREF(*filename); + Py_DECREF(res); return 0; } -static int -print_error_text(PyObject *f, Py_ssize_t offset, Py_ssize_t end_offset, - PyObject *text_obj) +int +PyRun_SimpleStringFlags(const char *command, PyCompilerFlags *flags) { - size_t caret_repetitions = (end_offset > 0 && end_offset > offset) ? - end_offset - offset : 1; - - /* Convert text to a char pointer; return if error */ - const char *text = PyUnicode_AsUTF8(text_obj); - if (text == NULL) { - return -1; - } - - /* Convert offset from 1-based to 0-based */ - offset--; - - /* Strip leading whitespace from text, adjusting offset as we go */ - while (*text == ' ' || *text == '\t' || *text == '\f') { - text++; - offset--; - } - - /* Calculate text length excluding trailing newline */ - Py_ssize_t len = strlen(text); - if (len > 0 && text[len-1] == '\n') { - len--; - } - - /* Clip offset to at most len */ - if (offset > len) { - offset = len; - } - - /* Skip past newlines embedded in text */ - for (;;) { - const char *nl = strchr(text, '\n'); - if (nl == NULL) { - break; - } - Py_ssize_t inl = nl - text; - if (inl >= offset) { - break; - } - inl += 1; - text += inl; - len -= inl; - offset -= (int)inl; - } - - /* Print text */ - if (PyFile_WriteString(" ", f) < 0) { - return -1; - } - if (PyFile_WriteString(text, f) < 0) { - return -1; - } - - /* Make sure there's a newline at the end */ - if (text[len] != '\n') { - if (PyFile_WriteString("\n", f) < 0) { - return -1; - } - } - - /* Don't print caret if it points to the left of the text */ - if (offset < 0) { - return 0; - } + return _PyRun_SimpleStringFlagsWithName(command, NULL, flags); +} - /* Write caret line */ - if (PyFile_WriteString(" ", f) < 0) { - return -1; - } - while (--offset >= 0) { - if (PyFile_WriteString(" ", f) < 0) { - return -1; - } - } - for (size_t caret_iter=0; caret_iter < caret_repetitions ; caret_iter++) { - if (PyFile_WriteString("^", f) < 0) { - return -1; +static int +parse_exit_code(PyObject *code, int *exitcode_p) +{ + if (PyLong_Check(code)) { + // gh-125842: Use a long long to avoid an overflow error when `long` + // is 32-bit. We still truncate the result to an int. + int exitcode = (int)PyLong_AsLongLong(code); + if (exitcode == -1 && PyErr_Occurred()) { + // On overflow or other error, clear the exception and use -1 + // as the exit code to match historical Python behavior. + PyErr_Clear(); + *exitcode_p = -1; + return 1; } + *exitcode_p = exitcode; + return 1; } - if (PyFile_WriteString("\n", f) < 0) { - return -1; + else if (code == Py_None) { + *exitcode_p = 0; + return 1; } return 0; } - int _Py_HandleSystemExit(int *exitcode_p) { @@ -720,51 +630,43 @@ _Py_HandleSystemExit(int *exitcode_p) fflush(stdout); - int exitcode = 0; - PyObject *exc = PyErr_GetRaisedException(); - if (exc == NULL) { - goto done; - } - assert(PyExceptionInstance_Check(exc)); + assert(exc != NULL && PyExceptionInstance_Check(exc)); - /* The error code should be in the `code' attribute. */ PyObject *code = PyObject_GetAttr(exc, &_Py_ID(code)); - if (code) { + if (code == NULL) { + // If the exception has no 'code' attribute, print the exception below + PyErr_Clear(); + } + else if (parse_exit_code(code, exitcode_p)) { + Py_DECREF(code); + Py_CLEAR(exc); + return 1; + } + else { + // If code is not an int or None, print it below Py_SETREF(exc, code); - if (exc == Py_None) { - goto done; - } } - /* If we failed to dig out the 'code' attribute, - * just let the else clause below print the error. - */ - if (PyLong_Check(exc)) { - exitcode = (int)PyLong_AsLong(exc); + PyObject *sys_stderr; + if (_PySys_GetOptionalAttr(&_Py_ID(stderr), &sys_stderr) < 0) { + PyErr_Clear(); + } + else if (sys_stderr != NULL && sys_stderr != Py_None) { + if (PyFile_WriteObject(exc, sys_stderr, Py_PRINT_RAW) < 0) { + PyErr_Clear(); + } } else { - PyObject *sys_stderr; - (void) _PySys_GetOptionalAttr(&_Py_ID(stderr), &sys_stderr); - /* We clear the exception here to avoid triggering the assertion - * in PyObject_Str that ensures it won't silently lose exception - * details. - */ - PyErr_Clear(); - if (sys_stderr != NULL && sys_stderr != Py_None) { - PyFile_WriteObject(exc, sys_stderr, Py_PRINT_RAW); - } else { - PyObject_Print(exc, stderr, Py_PRINT_RAW); - fflush(stderr); + if (PyObject_Print(exc, stderr, Py_PRINT_RAW) < 0) { + PyErr_Clear(); } - Py_XDECREF(sys_stderr); - PySys_WriteStderr("\n"); - exitcode = 1; + fflush(stderr); } - -done: + PySys_WriteStderr("\n"); + Py_XDECREF(sys_stderr); Py_CLEAR(exc); - *exitcode_p = exitcode; + *exitcode_p = 1; return 1; } @@ -820,14 +722,11 @@ _PyErr_PrintEx(PyThreadState *tstate, int set_sys_last_vars) PyErr_Clear(); goto done; } - _PyErr_WriteUnraisableMsg("in audit hook", NULL); + PyErr_FormatUnraisable("Exception ignored in audit hook"); } if (hook) { - PyObject* stack[3]; - stack[0] = typ; - stack[1] = exc; - stack[2] = tb; - PyObject *result = _PyObject_FastCall(hook, stack, 3); + PyObject* args[3] = {typ, exc, tb}; + PyObject *result = PyObject_Vectorcall(hook, args, 3, NULL); if (result == NULL) { handle_system_exit(); @@ -879,29 +778,13 @@ struct exception_print_context { PyObject *file; PyObject *seen; // Prevent cycles in recursion - int exception_group_depth; // nesting level of current exception group - bool need_close; // Need a closing bottom frame - int max_group_width; // Maximum number of children of each EG - int max_group_depth; // Maximum nesting level of EGs }; -#define EXC_MARGIN(ctx) ((ctx)->exception_group_depth ? "| " : "") -#define EXC_INDENT(ctx) (2 * (ctx)->exception_group_depth) - -static int -write_indented_margin(struct exception_print_context *ctx, PyObject *f) -{ - return _Py_WriteIndentedMargin(EXC_INDENT(ctx), EXC_MARGIN(ctx), f); -} - static int print_exception_invalid_type(struct exception_print_context *ctx, PyObject *value) { PyObject *f = ctx->file; - if (_Py_WriteIndent(EXC_INDENT(ctx), f) < 0) { - return -1; - } const char *const msg = "TypeError: print_exception(): Exception expected " "for value, "; if (PyFile_WriteString(msg, f) < 0) { @@ -925,15 +808,7 @@ print_exception_traceback(struct exception_print_context *ctx, PyObject *value) PyObject *tb = PyException_GetTraceback(value); if (tb && tb != Py_None) { const char *header = EXCEPTION_TB_HEADER; - const char *header_margin = EXC_MARGIN(ctx); - if (_PyBaseExceptionGroup_Check(value)) { - header = EXCEPTION_GROUP_TB_HEADER; - if (ctx->exception_group_depth == 1) { - header_margin = "+ "; - } - } - err = _PyTraceBack_Print_Indented( - tb, EXC_INDENT(ctx), EXC_MARGIN(ctx), header_margin, header, f); + err = _PyTraceBack_Print(tb, header, f); } Py_XDECREF(tb); return err; @@ -946,7 +821,7 @@ print_exception_file_and_line(struct exception_print_context *ctx, PyObject *f = ctx->file; PyObject *tmp; - int res = _PyObject_LookupAttr(*value_p, &_Py_ID(print_file_and_line), &tmp); + int res = PyObject_GetOptionalAttr(*value_p, &_Py_ID(print_file_and_line), &tmp); if (res <= 0) { if (res < 0) { PyErr_Clear(); @@ -955,16 +830,20 @@ print_exception_file_and_line(struct exception_print_context *ctx, } Py_DECREF(tmp); - PyObject *message, *filename, *text; - Py_ssize_t lineno, offset, end_lineno, end_offset; - if (!parse_syntax_error(*value_p, &message, &filename, - &lineno, &offset, - &end_lineno, &end_offset, &text)) { - PyErr_Clear(); - return 0; + PyObject *filename = NULL; + Py_ssize_t lineno = 0; + PyObject* v = PyObject_GetAttr(*value_p, &_Py_ID(filename)); + if (!v) { + return -1; + } + if (v == Py_None) { + Py_DECREF(v); + _Py_DECLARE_STR(anon_string, ""); + filename = Py_NewRef(&_Py_STR(anon_string)); + } + else { + filename = v; } - - Py_SETREF(*value_p, message); PyObject *line = PyUnicode_FromFormat(" File \"%S\", line %zd\n", filename, lineno); @@ -972,40 +851,16 @@ print_exception_file_and_line(struct exception_print_context *ctx, if (line == NULL) { goto error; } - if (write_indented_margin(ctx, f) < 0) { - goto error; - } if (PyFile_WriteObject(line, f, Py_PRINT_RAW) < 0) { goto error; } Py_CLEAR(line); - if (text != NULL) { - Py_ssize_t line_size; - const char *error_line = PyUnicode_AsUTF8AndSize(text, &line_size); - // If the location of the error spawn multiple lines, we want - // to just print the first one and highlight everything until - // the end of that one since we don't support multi-line error - // messages. - if (end_lineno > lineno) { - end_offset = (error_line != NULL) ? line_size : -1; - } - // Limit the amount of '^' that we can display to - // the size of the text in the source line. - if (error_line != NULL && end_offset > line_size + 1) { - end_offset = line_size + 1; - } - if (print_error_text(f, offset, end_offset, text) < 0) { - goto error; - } - Py_DECREF(text); - } assert(!PyErr_Occurred()); return 0; error: Py_XDECREF(line); - Py_XDECREF(text); return -1; } @@ -1016,11 +871,14 @@ print_exception_message(struct exception_print_context *ctx, PyObject *type, { PyObject *f = ctx->file; - assert(PyExceptionClass_Check(type)); - - if (write_indented_margin(ctx, f) < 0) { + if (PyErr_GivenExceptionMatches(value, PyExc_MemoryError)) { + // The Python APIs in this function require allocating memory + // for various objects. If we're out of memory, we can't do that, return -1; } + + assert(PyExceptionClass_Check(type)); + PyObject *modulename = PyObject_GetAttr(type, &_Py_ID(__module__)); if (modulename == NULL || !PyUnicode_Check(modulename)) { Py_XDECREF(modulename); @@ -1094,135 +952,9 @@ print_exception_message(struct exception_print_context *ctx, PyObject *type, return 0; } -static int -print_exception_suggestions(struct exception_print_context *ctx, - PyObject *value) -{ - PyObject *f = ctx->file; - PyObject *suggestions = _Py_Offer_Suggestions(value); - if (suggestions) { - if (PyFile_WriteObject(suggestions, f, Py_PRINT_RAW) < 0) { - goto error; - } - Py_DECREF(suggestions); - } - else if (PyErr_Occurred()) { - PyErr_Clear(); - } - return 0; -error: - Py_XDECREF(suggestions); - return -1; -} - -static int -print_exception_notes(struct exception_print_context *ctx, PyObject *notes) -{ - PyObject *f = ctx->file; - - if (notes == NULL) { - return 0; - } - - if (!PySequence_Check(notes) || PyUnicode_Check(notes) || PyBytes_Check(notes)) { - int res = 0; - if (write_indented_margin(ctx, f) < 0) { - res = -1; - } - PyObject *s = PyObject_Repr(notes); - if (s == NULL) { - PyErr_Clear(); - res = PyFile_WriteString("<__notes__ repr() failed>", f); - } - else { - res = PyFile_WriteObject(s, f, Py_PRINT_RAW); - Py_DECREF(s); - } - if (PyFile_WriteString("\n", f) < 0) { - res = -1; - } - return res; - } - Py_ssize_t num_notes = PySequence_Length(notes); - PyObject *lines = NULL; - for (Py_ssize_t ni = 0; ni < num_notes; ni++) { - PyObject *note = PySequence_GetItem(notes, ni); - PyObject *note_str = PyObject_Str(note); - Py_DECREF(note); - - if (note_str == NULL) { - PyErr_Clear(); - if (PyFile_WriteString("", f) < 0) { - goto error; - } - } - else { - lines = PyUnicode_Splitlines(note_str, 1); - Py_DECREF(note_str); - - if (lines == NULL) { - goto error; - } - - Py_ssize_t n = PyList_GET_SIZE(lines); - for (Py_ssize_t i = 0; i < n; i++) { - PyObject *line = PyList_GET_ITEM(lines, i); - assert(PyUnicode_Check(line)); - if (write_indented_margin(ctx, f) < 0) { - goto error; - } - if (PyFile_WriteObject(line, f, Py_PRINT_RAW) < 0) { - goto error; - } - } - Py_CLEAR(lines); - } - if (PyFile_WriteString("\n", f) < 0) { - goto error; - } - } - - return 0; -error: - Py_XDECREF(lines); - return -1; -} - -static int -get_exception_notes(struct exception_print_context *ctx, PyObject *value, PyObject **notes) { - PyObject *note = NULL; - - if (_PyObject_LookupAttr(value, &_Py_ID(__notes__), notes) < 0) { - PyObject *type, *errvalue, *tback; - PyErr_Fetch(&type, &errvalue, &tback); - PyErr_NormalizeException(&type, &errvalue, &tback); - note = PyUnicode_FromFormat("Ignored error getting __notes__: %R", errvalue); - Py_XDECREF(type); - Py_XDECREF(errvalue); - Py_XDECREF(tback); - if (!note) { - goto error; - } - *notes = PyList_New(1); - if (!*notes) { - goto error; - } - if (PyList_SetItem(*notes, 0, note) < 0) { - Py_DECREF(*notes); - goto error; - } - } - - return 0; -error: - Py_XDECREF(note); - return -1; -} - static int print_exception(struct exception_print_context *ctx, PyObject *value) { - PyObject *notes = NULL; PyObject *f = ctx->file; if (!PyExceptionInstance_Check(value)) { @@ -1238,9 +970,6 @@ print_exception(struct exception_print_context *ctx, PyObject *value) /* grab the type and notes now because value can change below */ PyObject *type = (PyObject *) Py_TYPE(value); - if (get_exception_notes(ctx, value, ¬es) < 0) { - goto error; - } if (print_exception_file_and_line(ctx, &value) < 0) { goto error; @@ -1248,22 +977,13 @@ print_exception(struct exception_print_context *ctx, PyObject *value) if (print_exception_message(ctx, type, value) < 0) { goto error; } - if (print_exception_suggestions(ctx, value) < 0) { - goto error; - } if (PyFile_WriteString("\n", f) < 0) { goto error; } - if (print_exception_notes(ctx, notes) < 0) { - goto error; - } - - Py_XDECREF(notes); Py_DECREF(value); assert(!PyErr_Occurred()); return 0; error: - Py_XDECREF(notes); Py_DECREF(value); return -1; } @@ -1287,29 +1007,18 @@ print_chained(struct exception_print_context* ctx, PyObject *value, if (_Py_EnterRecursiveCall(" in print_chained")) { return -1; } - bool need_close = ctx->need_close; int res = print_exception_recursive(ctx, value); - ctx->need_close = need_close; _Py_LeaveRecursiveCall(); if (res < 0) { return -1; } - if (write_indented_margin(ctx, f) < 0) { - return -1; - } if (PyFile_WriteString("\n", f) < 0) { return -1; } - if (write_indented_margin(ctx, f) < 0) { - return -1; - } if (PyFile_WriteString(message, f) < 0) { return -1; } - if (write_indented_margin(ctx, f) < 0) { - return -1; - } if (PyFile_WriteString("\n", f) < 0) { return -1; } @@ -1386,133 +1095,6 @@ print_exception_cause_and_context(struct exception_print_context *ctx, return 0; } -static int -print_exception_group(struct exception_print_context *ctx, PyObject *value) -{ - PyObject *f = ctx->file; - - if (ctx->exception_group_depth > ctx->max_group_depth) { - /* depth exceeds limit */ - - if (write_indented_margin(ctx, f) < 0) { - return -1; - } - - PyObject *line = PyUnicode_FromFormat("... (max_group_depth is %d)\n", - ctx->max_group_depth); - if (line == NULL) { - return -1; - } - int err = PyFile_WriteObject(line, f, Py_PRINT_RAW); - Py_DECREF(line); - return err; - } - - if (ctx->exception_group_depth == 0) { - ctx->exception_group_depth += 1; - } - if (print_exception(ctx, value) < 0) { - return -1; - } - - PyObject *excs = ((PyBaseExceptionGroupObject *)value)->excs; - assert(excs && PyTuple_Check(excs)); - Py_ssize_t num_excs = PyTuple_GET_SIZE(excs); - assert(num_excs > 0); - Py_ssize_t n; - if (num_excs <= ctx->max_group_width) { - n = num_excs; - } - else { - n = ctx->max_group_width + 1; - } - - ctx->need_close = false; - for (Py_ssize_t i = 0; i < n; i++) { - bool last_exc = (i == n - 1); - if (last_exc) { - // The closing frame may be added in a recursive call - ctx->need_close = true; - } - - if (_Py_WriteIndent(EXC_INDENT(ctx), f) < 0) { - return -1; - } - bool truncated = (i >= ctx->max_group_width); - PyObject *line; - if (!truncated) { - line = PyUnicode_FromFormat( - "%s+---------------- %zd ----------------\n", - (i == 0) ? "+-" : " ", i + 1); - } - else { - line = PyUnicode_FromFormat( - "%s+---------------- ... ----------------\n", - (i == 0) ? "+-" : " "); - } - if (line == NULL) { - return -1; - } - int err = PyFile_WriteObject(line, f, Py_PRINT_RAW); - Py_DECREF(line); - if (err < 0) { - return -1; - } - - ctx->exception_group_depth += 1; - PyObject *exc = PyTuple_GET_ITEM(excs, i); - - if (!truncated) { - if (_Py_EnterRecursiveCall(" in print_exception_group")) { - return -1; - } - int res = print_exception_recursive(ctx, exc); - _Py_LeaveRecursiveCall(); - if (res < 0) { - return -1; - } - } - else { - Py_ssize_t excs_remaining = num_excs - ctx->max_group_width; - - if (write_indented_margin(ctx, f) < 0) { - return -1; - } - - PyObject *line = PyUnicode_FromFormat( - "and %zd more exception%s\n", - excs_remaining, excs_remaining > 1 ? "s" : ""); - - if (line == NULL) { - return -1; - } - - int err = PyFile_WriteObject(line, f, Py_PRINT_RAW); - Py_DECREF(line); - if (err < 0) { - return -1; - } - } - - if (last_exc && ctx->need_close) { - if (_Py_WriteIndent(EXC_INDENT(ctx), f) < 0) { - return -1; - } - if (PyFile_WriteString( - "+------------------------------------\n", f) < 0) { - return -1; - } - ctx->need_close = false; - } - ctx->exception_group_depth -= 1; - } - - if (ctx->exception_group_depth == 1) { - ctx->exception_group_depth -= 1; - } - return 0; -} - static int print_exception_recursive(struct exception_print_context *ctx, PyObject *value) { @@ -1525,12 +1107,7 @@ print_exception_recursive(struct exception_print_context *ctx, PyObject *value) goto error; } } - if (!_PyBaseExceptionGroup_Check(value)) { - if (print_exception(ctx, value) < 0) { - goto error; - } - } - else if (print_exception_group(ctx, value) < 0) { + if (print_exception(ctx, value) < 0) { goto error; } assert(!PyErr_Occurred()); @@ -1542,12 +1119,10 @@ error: return -1; } -#define PyErr_MAX_GROUP_WIDTH 15 -#define PyErr_MAX_GROUP_DEPTH 10 - void _PyErr_Display(PyObject *file, PyObject *unused, PyObject *value, PyObject *tb) { + assert(value != NULL); assert(file != NULL && file != Py_None); if (PyExceptionInstance_Check(value) && tb != NULL && PyTraceBack_Check(tb)) { @@ -1562,12 +1137,42 @@ _PyErr_Display(PyObject *file, PyObject *unused, PyObject *value, PyObject *tb) } } + int unhandled_keyboard_interrupt = _PyRuntime.signals.unhandled_keyboard_interrupt; + + // Try first with the stdlib traceback module + PyObject *traceback_module = PyImport_ImportModule("traceback"); + + if (traceback_module == NULL) { + goto fallback; + } + + PyObject *print_exception_fn = PyObject_GetAttrString(traceback_module, "_print_exception_bltin"); + + if (print_exception_fn == NULL || !PyCallable_Check(print_exception_fn)) { + Py_DECREF(traceback_module); + goto fallback; + } + + PyObject* result = PyObject_CallOneArg(print_exception_fn, value); + + Py_DECREF(traceback_module); + Py_XDECREF(print_exception_fn); + if (result) { + Py_DECREF(result); + _PyRuntime.signals.unhandled_keyboard_interrupt = unhandled_keyboard_interrupt; + return; + } +fallback: + _PyRuntime.signals.unhandled_keyboard_interrupt = unhandled_keyboard_interrupt; +#ifdef Py_DEBUG + if (PyErr_Occurred()) { + PyErr_FormatUnraisable( + "Exception ignored in the internal traceback machinery"); + } +#endif + PyErr_Clear(); struct exception_print_context ctx; ctx.file = file; - ctx.exception_group_depth = 0; - ctx.need_close = false; - ctx.max_group_width = PyErr_MAX_GROUP_WIDTH; - ctx.max_group_depth = PyErr_MAX_GROUP_DEPTH; /* We choose to ignore seen being possibly NULL, and report at least the main exception (it could be a MemoryError). @@ -1584,14 +1189,10 @@ _PyErr_Display(PyObject *file, PyObject *unused, PyObject *value, PyObject *tb) Py_XDECREF(ctx.seen); /* Call file.flush() */ - PyObject *res = _PyObject_CallMethodNoArgs(file, &_Py_ID(flush)); - if (!res) { + if (_PyFile_Flush(file) < 0) { /* Silently ignore file.flush() error */ PyErr_Clear(); } - else { - Py_DECREF(res); - } } void @@ -1629,9 +1230,10 @@ void PyErr_DisplayException(PyObject *exc) PyErr_Display(NULL, exc, NULL); } -PyObject * -PyRun_StringFlags(const char *str, int start, PyObject *globals, - PyObject *locals, PyCompilerFlags *flags) +static PyObject * +_PyRun_StringFlagsWithName(const char *str, PyObject* name, int start, + PyObject *globals, PyObject *locals, PyCompilerFlags *flags, + int generate_new_source) { PyObject *ret = NULL; mod_ty mod; @@ -1641,17 +1243,36 @@ PyRun_StringFlags(const char *str, int start, PyObject *globals, if (arena == NULL) return NULL; + PyObject* source = NULL; _Py_DECLARE_STR(anon_string, ""); - mod = _PyParser_ASTFromString( - str, &_Py_STR(anon_string), start, flags, arena); - if (mod != NULL) - ret = run_mod(mod, &_Py_STR(anon_string), globals, locals, flags, arena); + if (name) { + source = PyUnicode_FromString(str); + if (!source) { + PyErr_Clear(); + } + } else { + name = &_Py_STR(anon_string); + } + + mod = _PyParser_ASTFromString(str, name, start, flags, arena); + + if (mod != NULL) { + ret = run_mod(mod, name, globals, locals, flags, arena, source, generate_new_source); + } + Py_XDECREF(source); _PyArena_Free(arena); return ret; } +PyObject * +PyRun_StringFlags(const char *str, int start, PyObject *globals, + PyObject *locals, PyCompilerFlags *flags) { + + return _PyRun_StringFlagsWithName(str, NULL, start, globals, locals, flags, 0); +} + static PyObject * pyrun_file(FILE *fp, PyObject *filename, int start, PyObject *globals, PyObject *locals, int closeit, PyCompilerFlags *flags) @@ -1671,7 +1292,7 @@ pyrun_file(FILE *fp, PyObject *filename, int start, PyObject *globals, PyObject *ret; if (mod != NULL) { - ret = run_mod(mod, filename, globals, locals, flags, arena); + ret = run_mod(mod, filename, globals, locals, flags, arena, NULL, 0); } else { ret = NULL; @@ -1706,11 +1327,7 @@ flush_io_stream(PyThreadState *tstate, PyObject *name) PyErr_Clear(); } if (f != NULL) { - PyObject *r = _PyObject_CallMethodNoArgs(f, &_Py_ID(flush)); - if (r) { - Py_DECREF(r); - } - else { + if (_PyFile_Flush(f) < 0) { PyErr_Clear(); } Py_DECREF(f); @@ -1745,9 +1362,16 @@ run_eval_code_obj(PyThreadState *tstate, PyCodeObject *co, PyObject *globals, Py _PyRuntime.signals.unhandled_keyboard_interrupt = 0; /* Set globals['__builtins__'] if it doesn't exist */ - if (globals != NULL && _PyDict_GetItemStringWithError(globals, "__builtins__") == NULL) { - if (PyErr_Occurred() || - PyDict_SetItemString(globals, "__builtins__", + if (!globals || !PyDict_Check(globals)) { + PyErr_SetString(PyExc_SystemError, "globals must be a real dict"); + return NULL; + } + int has_builtins = PyDict_ContainsString(globals, "__builtins__"); + if (has_builtins < 0) { + return NULL; + } + if (!has_builtins) { + if (PyDict_SetItemString(globals, "__builtins__", tstate->interp->builtins) < 0) { return NULL; @@ -1761,14 +1385,101 @@ run_eval_code_obj(PyThreadState *tstate, PyCodeObject *co, PyObject *globals, Py return v; } +static PyObject * +get_interactive_filename(PyObject *filename, Py_ssize_t count) +{ + PyObject *result; + Py_ssize_t len = PyUnicode_GET_LENGTH(filename); + + if (len >= 2 + && PyUnicode_ReadChar(filename, 0) == '<' + && PyUnicode_ReadChar(filename, len - 1) == '>') { + PyObject *middle = PyUnicode_Substring(filename, 1, len-1); + if (middle == NULL) { + return NULL; + } + result = PyUnicode_FromFormat("<%U-%d>", middle, count); + Py_DECREF(middle); + } else { + result = PyUnicode_FromFormat( + "%U-%d", filename, count); + } + return result; + +} + static PyObject * run_mod(mod_ty mod, PyObject *filename, PyObject *globals, PyObject *locals, - PyCompilerFlags *flags, PyArena *arena) + PyCompilerFlags *flags, PyArena *arena, PyObject* interactive_src, + int generate_new_source) { PyThreadState *tstate = _PyThreadState_GET(); - PyCodeObject *co = _PyAST_Compile(mod, filename, flags, -1, arena); - if (co == NULL) + PyObject* interactive_filename = filename; + if (interactive_src) { + PyInterpreterState *interp = tstate->interp; + if (generate_new_source) { + interactive_filename = get_interactive_filename( + filename, interp->_interactive_src_count++); + } else { + Py_INCREF(interactive_filename); + } + if (interactive_filename == NULL) { + return NULL; + } + } + + PyCodeObject *co = _PyAST_Compile(mod, interactive_filename, flags, -1, arena); + if (co == NULL) { + if (interactive_src) { + Py_DECREF(interactive_filename); + } return NULL; + } + + if (interactive_src) { + PyObject *linecache_module = PyImport_ImportModule("linecache"); + + if (linecache_module == NULL) { + Py_DECREF(co); + Py_DECREF(interactive_filename); + return NULL; + } + + PyObject *print_tb_func = PyObject_GetAttrString(linecache_module, "_register_code"); + + if (print_tb_func == NULL) { + Py_DECREF(co); + Py_DECREF(interactive_filename); + Py_DECREF(linecache_module); + return NULL; + } + + if (!PyCallable_Check(print_tb_func)) { + Py_DECREF(co); + Py_DECREF(interactive_filename); + Py_DECREF(linecache_module); + Py_DECREF(print_tb_func); + PyErr_SetString(PyExc_ValueError, "linecache._register_code is not callable"); + return NULL; + } + + PyObject* result = PyObject_CallFunction( + print_tb_func, "OOO", + co, + interactive_src, + filename + ); + + Py_DECREF(interactive_filename); + + Py_DECREF(linecache_module); + Py_XDECREF(print_tb_func); + Py_XDECREF(result); + if (!result) { + Py_DECREF(co); + return NULL; + } + } if (_PySys_Audit(tstate, "exec", "O", co) < 0) { Py_DECREF(co); @@ -1839,6 +1550,12 @@ Py_CompileStringObject(const char *str, PyObject *filename, int start, return NULL; } if (flags && (flags->cf_flags & PyCF_ONLY_AST)) { + if ((flags->cf_flags & PyCF_OPTIMIZED_AST) == PyCF_OPTIMIZED_AST) { + if (_PyCompile_AstOptimize(mod, filename, flags, optimize, arena) < 0) { + _PyArena_Free(arena); + return NULL; + } + } PyObject *result = PyAST_mod2obj(mod); _PyArena_Free(arena); return result; @@ -2049,7 +1766,3 @@ PyRun_InteractiveLoop(FILE *f, const char *p) { return PyRun_InteractiveLoopFlags(f, p, NULL); } - -#ifdef __cplusplus -} -#endif diff --git a/contrib/tools/python3/Python/pytime.c b/contrib/tools/python3/Python/pytime.c index acd1842056a..560aea33f20 100644 --- a/contrib/tools/python3/Python/pytime.c +++ b/contrib/tools/python3/Python/pytime.c @@ -1,4 +1,10 @@ #include "Python.h" +#include "pycore_time.h" // PyTime_t + +#include // gmtime_r() +#ifdef HAVE_SYS_TIME_H +# include // gettimeofday() +#endif #ifdef MS_WINDOWS # include // struct timeval #endif @@ -44,53 +50,82 @@ # error "time_t is not a two's complement integer type" #endif -#if _PyTime_MIN + _PyTime_MAX != -1 -# error "_PyTime_t is not a two's complement integer type" +#if PyTime_MIN + PyTime_MAX != -1 +# error "PyTime_t is not a two's complement integer type" #endif -static void -pytime_time_t_overflow(void) +#ifdef MS_WINDOWS +static _PyTimeFraction py_qpc_base = {0, 0}; + +// Forward declaration +static int py_win_perf_counter_frequency(_PyTimeFraction *base, int raise_exc); +#endif + + +static PyTime_t +_PyTime_GCD(PyTime_t x, PyTime_t y) { - PyErr_SetString(PyExc_OverflowError, - "timestamp out of range for platform time_t"); + // Euclidean algorithm + assert(x >= 1); + assert(y >= 1); + while (y != 0) { + PyTime_t tmp = y; + y = x % y; + x = tmp; + } + assert(x >= 1); + return x; } -static void -pytime_overflow(void) +int +_PyTimeFraction_Set(_PyTimeFraction *frac, PyTime_t numer, PyTime_t denom) { - PyErr_SetString(PyExc_OverflowError, - "timestamp too large to convert to C _PyTime_t"); + if (numer < 1 || denom < 1) { + return -1; + } + + PyTime_t gcd = _PyTime_GCD(numer, denom); + frac->numer = numer / gcd; + frac->denom = denom / gcd; + return 0; } -static inline _PyTime_t -pytime_from_nanoseconds(_PyTime_t t) +double +_PyTimeFraction_Resolution(const _PyTimeFraction *frac) { - // _PyTime_t is a number of nanoseconds - return t; + return (double)frac->numer / (double)frac->denom / 1e9; +} + + +static void +pytime_time_t_overflow(void) +{ + PyErr_SetString(PyExc_OverflowError, + "timestamp out of range for platform time_t"); } -static inline _PyTime_t -pytime_as_nanoseconds(_PyTime_t t) +static void +pytime_overflow(void) { - // _PyTime_t is a number of nanoseconds: see pytime_from_nanoseconds() - return t; + PyErr_SetString(PyExc_OverflowError, + "timestamp too large to convert to C PyTime_t"); } -// Compute t1 + t2. Clamp to [_PyTime_MIN; _PyTime_MAX] on overflow. +// Compute t1 + t2. Clamp to [PyTime_MIN; PyTime_MAX] on overflow. static inline int -pytime_add(_PyTime_t *t1, _PyTime_t t2) +pytime_add(PyTime_t *t1, PyTime_t t2) { - if (t2 > 0 && *t1 > _PyTime_MAX - t2) { - *t1 = _PyTime_MAX; + if (t2 > 0 && *t1 > PyTime_MAX - t2) { + *t1 = PyTime_MAX; return -1; } - else if (t2 < 0 && *t1 < _PyTime_MIN - t2) { - *t1 = _PyTime_MIN; + else if (t2 < 0 && *t1 < PyTime_MIN - t2) { + *t1 = PyTime_MIN; return -1; } else { @@ -100,8 +135,8 @@ pytime_add(_PyTime_t *t1, _PyTime_t t2) } -_PyTime_t -_PyTime_Add(_PyTime_t t1, _PyTime_t t2) +PyTime_t +_PyTime_Add(PyTime_t t1, PyTime_t t2) { (void)pytime_add(&t1, t2); return t1; @@ -109,11 +144,11 @@ _PyTime_Add(_PyTime_t t1, _PyTime_t t2) static inline int -pytime_mul_check_overflow(_PyTime_t a, _PyTime_t b) +pytime_mul_check_overflow(PyTime_t a, PyTime_t b) { if (b != 0) { assert(b > 0); - return ((a < _PyTime_MIN / b) || (_PyTime_MAX / b < a)); + return ((a < PyTime_MIN / b) || (PyTime_MAX / b < a)); } else { return 0; @@ -121,13 +156,13 @@ pytime_mul_check_overflow(_PyTime_t a, _PyTime_t b) } -// Compute t * k. Clamp to [_PyTime_MIN; _PyTime_MAX] on overflow. +// Compute t * k. Clamp to [PyTime_MIN; PyTime_MAX] on overflow. static inline int -pytime_mul(_PyTime_t *t, _PyTime_t k) +pytime_mul(PyTime_t *t, PyTime_t k) { assert(k >= 0); if (pytime_mul_check_overflow(*t, k)) { - *t = (*t >= 0) ? _PyTime_MAX : _PyTime_MIN; + *t = (*t >= 0) ? PyTime_MAX : PyTime_MIN; return -1; } else { @@ -137,26 +172,32 @@ pytime_mul(_PyTime_t *t, _PyTime_t k) } -// Compute t * k. Clamp to [_PyTime_MIN; _PyTime_MAX] on overflow. -static inline _PyTime_t -_PyTime_Mul(_PyTime_t t, _PyTime_t k) +// Compute t * k. Clamp to [PyTime_MIN; PyTime_MAX] on overflow. +static inline PyTime_t +_PyTime_Mul(PyTime_t t, PyTime_t k) { (void)pytime_mul(&t, k); return t; } +PyTime_t +_PyTimeFraction_Mul(PyTime_t ticks, const _PyTimeFraction *frac) +{ + const PyTime_t mul = frac->numer; + const PyTime_t div = frac->denom; + if (div == 1) { + // Fast-path taken by mach_absolute_time() with 1/1 time base. + return _PyTime_Mul(ticks, mul); + } -_PyTime_t -_PyTime_MulDiv(_PyTime_t ticks, _PyTime_t mul, _PyTime_t div) -{ /* Compute (ticks * mul / div) in two parts to reduce the risk of integer overflow: compute the integer part, and then the remaining part. (ticks * mul) / div == (ticks / div) * mul + (ticks % div) * mul / div */ - _PyTime_t intpart, remaining; + PyTime_t intpart, remaining; intpart = ticks / div; ticks %= div; remaining = _PyTime_Mul(ticks, mul) / div; @@ -198,17 +239,17 @@ _PyLong_FromTime_t(time_t t) } -// Convert _PyTime_t to time_t. +// Convert PyTime_t to time_t. // Return 0 on success. Return -1 and clamp the value on overflow. static int -_PyTime_AsTime_t(_PyTime_t t, time_t *t2) +_PyTime_AsTime_t(PyTime_t t, time_t *t2) { #if SIZEOF_TIME_T < _SIZEOF_PYTIME_T - if ((_PyTime_t)PY_TIME_T_MAX < t) { + if ((PyTime_t)PY_TIME_T_MAX < t) { *t2 = PY_TIME_T_MAX; return -1; } - if (t < (_PyTime_t)PY_TIME_T_MIN) { + if (t < (PyTime_t)PY_TIME_T_MIN) { *t2 = PY_TIME_T_MIN; return -1; } @@ -219,17 +260,17 @@ _PyTime_AsTime_t(_PyTime_t t, time_t *t2) #ifdef MS_WINDOWS -// Convert _PyTime_t to long. +// Convert PyTime_t to long. // Return 0 on success. Return -1 and clamp the value on overflow. static int -_PyTime_AsLong(_PyTime_t t, long *t2) +_PyTime_AsCLong(PyTime_t t, long *t2) { #if SIZEOF_LONG < _SIZEOF_PYTIME_T - if ((_PyTime_t)LONG_MAX < t) { + if ((PyTime_t)LONG_MAX < t) { *t2 = LONG_MAX; return -1; } - if (t < (_PyTime_t)LONG_MIN) { + if (t < (PyTime_t)LONG_MIN) { *t2 = LONG_MIN; return -1; } @@ -404,50 +445,42 @@ _PyTime_ObjectToTimeval(PyObject *obj, time_t *sec, long *usec, } -_PyTime_t +PyTime_t _PyTime_FromSeconds(int seconds) { /* ensure that integer overflow cannot happen, int type should have 32 - bits, whereas _PyTime_t type has at least 64 bits (SEC_TO_NS takes 30 + bits, whereas PyTime_t type has at least 64 bits (SEC_TO_NS takes 30 bits). */ - static_assert(INT_MAX <= _PyTime_MAX / SEC_TO_NS, "_PyTime_t overflow"); - static_assert(INT_MIN >= _PyTime_MIN / SEC_TO_NS, "_PyTime_t underflow"); + static_assert(INT_MAX <= PyTime_MAX / SEC_TO_NS, "PyTime_t overflow"); + static_assert(INT_MIN >= PyTime_MIN / SEC_TO_NS, "PyTime_t underflow"); - _PyTime_t t = (_PyTime_t)seconds; - assert((t >= 0 && t <= _PyTime_MAX / SEC_TO_NS) - || (t < 0 && t >= _PyTime_MIN / SEC_TO_NS)); + PyTime_t t = (PyTime_t)seconds; + assert((t >= 0 && t <= PyTime_MAX / SEC_TO_NS) + || (t < 0 && t >= PyTime_MIN / SEC_TO_NS)); t *= SEC_TO_NS; - return pytime_from_nanoseconds(t); -} - - -_PyTime_t -_PyTime_FromNanoseconds(_PyTime_t ns) -{ - return pytime_from_nanoseconds(ns); + return t; } -_PyTime_t -_PyTime_FromMicrosecondsClamp(_PyTime_t us) +PyTime_t +_PyTime_FromMicrosecondsClamp(PyTime_t us) { - _PyTime_t ns = _PyTime_Mul(us, US_TO_NS); - return pytime_from_nanoseconds(ns); + PyTime_t ns = _PyTime_Mul(us, US_TO_NS); + return ns; } int -_PyTime_FromNanosecondsObject(_PyTime_t *tp, PyObject *obj) +_PyTime_FromLong(PyTime_t *tp, PyObject *obj) { - if (!PyLong_Check(obj)) { PyErr_Format(PyExc_TypeError, "expect int, got %s", Py_TYPE(obj)->tp_name); return -1; } - static_assert(sizeof(long long) == sizeof(_PyTime_t), - "_PyTime_t is not long long"); + static_assert(sizeof(long long) == sizeof(PyTime_t), + "PyTime_t is not long long"); long long nsec = PyLong_AsLongLong(obj); if (nsec == -1 && PyErr_Occurred()) { if (PyErr_ExceptionMatches(PyExc_OverflowError)) { @@ -456,28 +489,28 @@ _PyTime_FromNanosecondsObject(_PyTime_t *tp, PyObject *obj) return -1; } - _PyTime_t t = (_PyTime_t)nsec; - *tp = pytime_from_nanoseconds(t); + PyTime_t t = (PyTime_t)nsec; + *tp = t; return 0; } #ifdef HAVE_CLOCK_GETTIME static int -pytime_fromtimespec(_PyTime_t *tp, struct timespec *ts, int raise_exc) +pytime_fromtimespec(PyTime_t *tp, const struct timespec *ts, int raise_exc) { - _PyTime_t t, tv_nsec; + PyTime_t t, tv_nsec; - static_assert(sizeof(ts->tv_sec) <= sizeof(_PyTime_t), - "timespec.tv_sec is larger than _PyTime_t"); - t = (_PyTime_t)ts->tv_sec; + static_assert(sizeof(ts->tv_sec) <= sizeof(PyTime_t), + "timespec.tv_sec is larger than PyTime_t"); + t = (PyTime_t)ts->tv_sec; int res1 = pytime_mul(&t, SEC_TO_NS); tv_nsec = ts->tv_nsec; int res2 = pytime_add(&t, tv_nsec); - *tp = pytime_from_nanoseconds(t); + *tp = t; if (raise_exc && (res1 < 0 || res2 < 0)) { pytime_overflow(); @@ -487,7 +520,7 @@ pytime_fromtimespec(_PyTime_t *tp, struct timespec *ts, int raise_exc) } int -_PyTime_FromTimespec(_PyTime_t *tp, struct timespec *ts) +_PyTime_FromTimespec(PyTime_t *tp, const struct timespec *ts) { return pytime_fromtimespec(tp, ts, 1); } @@ -496,18 +529,18 @@ _PyTime_FromTimespec(_PyTime_t *tp, struct timespec *ts) #ifndef MS_WINDOWS static int -pytime_fromtimeval(_PyTime_t *tp, struct timeval *tv, int raise_exc) +pytime_fromtimeval(PyTime_t *tp, struct timeval *tv, int raise_exc) { - static_assert(sizeof(tv->tv_sec) <= sizeof(_PyTime_t), - "timeval.tv_sec is larger than _PyTime_t"); - _PyTime_t t = (_PyTime_t)tv->tv_sec; + static_assert(sizeof(tv->tv_sec) <= sizeof(PyTime_t), + "timeval.tv_sec is larger than PyTime_t"); + PyTime_t t = (PyTime_t)tv->tv_sec; int res1 = pytime_mul(&t, SEC_TO_NS); - _PyTime_t usec = (_PyTime_t)tv->tv_usec * US_TO_NS; + PyTime_t usec = (PyTime_t)tv->tv_usec * US_TO_NS; int res2 = pytime_add(&t, usec); - *tp = pytime_from_nanoseconds(t); + *tp = t; if (raise_exc && (res1 < 0 || res2 < 0)) { pytime_overflow(); @@ -518,7 +551,7 @@ pytime_fromtimeval(_PyTime_t *tp, struct timeval *tv, int raise_exc) int -_PyTime_FromTimeval(_PyTime_t *tp, struct timeval *tv) +_PyTime_FromTimeval(PyTime_t *tp, struct timeval *tv) { return pytime_fromtimeval(tp, tv, 1); } @@ -526,7 +559,7 @@ _PyTime_FromTimeval(_PyTime_t *tp, struct timeval *tv) static int -pytime_from_double(_PyTime_t *tp, double value, _PyTime_round_t round, +pytime_from_double(PyTime_t *tp, double value, _PyTime_round_t round, long unit_to_ns) { /* volatile avoids optimization changing how numbers are rounded */ @@ -538,19 +571,20 @@ pytime_from_double(_PyTime_t *tp, double value, _PyTime_round_t round, d = pytime_round(d, round); /* See comments in pytime_double_to_denominator */ - if (!((double)_PyTime_MIN <= d && d < -(double)_PyTime_MIN)) { + if (!((double)PyTime_MIN <= d && d < -(double)PyTime_MIN)) { pytime_time_t_overflow(); + *tp = 0; return -1; } - _PyTime_t ns = (_PyTime_t)d; + PyTime_t ns = (PyTime_t)d; - *tp = pytime_from_nanoseconds(ns); + *tp = ns; return 0; } static int -pytime_from_object(_PyTime_t *tp, PyObject *obj, _PyTime_round_t round, +pytime_from_object(PyTime_t *tp, PyObject *obj, _PyTime_round_t round, long unit_to_ns) { if (PyFloat_Check(obj)) { @@ -571,45 +605,44 @@ pytime_from_object(_PyTime_t *tp, PyObject *obj, _PyTime_round_t round, return -1; } - static_assert(sizeof(long long) <= sizeof(_PyTime_t), - "_PyTime_t is smaller than long long"); - _PyTime_t ns = (_PyTime_t)sec; + static_assert(sizeof(long long) <= sizeof(PyTime_t), + "PyTime_t is smaller than long long"); + PyTime_t ns = (PyTime_t)sec; if (pytime_mul(&ns, unit_to_ns) < 0) { pytime_overflow(); return -1; } - *tp = pytime_from_nanoseconds(ns); + *tp = ns; return 0; } } int -_PyTime_FromSecondsObject(_PyTime_t *tp, PyObject *obj, _PyTime_round_t round) +_PyTime_FromSecondsObject(PyTime_t *tp, PyObject *obj, _PyTime_round_t round) { return pytime_from_object(tp, obj, round, SEC_TO_NS); } int -_PyTime_FromMillisecondsObject(_PyTime_t *tp, PyObject *obj, _PyTime_round_t round) +_PyTime_FromMillisecondsObject(PyTime_t *tp, PyObject *obj, _PyTime_round_t round) { return pytime_from_object(tp, obj, round, MS_TO_NS); } double -_PyTime_AsSecondsDouble(_PyTime_t t) +PyTime_AsSecondsDouble(PyTime_t ns) { /* volatile avoids optimization changing how numbers are rounded */ volatile double d; - _PyTime_t ns = pytime_as_nanoseconds(t); if (ns % SEC_TO_NS == 0) { /* Divide using integers to avoid rounding issues on the integer part. 1e-9 cannot be stored exactly in IEEE 64-bit. */ - _PyTime_t secs = ns / SEC_TO_NS; + PyTime_t secs = ns / SEC_TO_NS; d = (double)secs; } else { @@ -621,23 +654,28 @@ _PyTime_AsSecondsDouble(_PyTime_t t) PyObject * -_PyTime_AsNanosecondsObject(_PyTime_t t) +_PyTime_AsLong(PyTime_t ns) { - _PyTime_t ns = pytime_as_nanoseconds(t); - static_assert(sizeof(long long) >= sizeof(_PyTime_t), - "_PyTime_t is larger than long long"); + static_assert(sizeof(long long) >= sizeof(PyTime_t), + "PyTime_t is larger than long long"); return PyLong_FromLongLong((long long)ns); } +int +_PyTime_FromSecondsDouble(double seconds, _PyTime_round_t round, PyTime_t *result) +{ + return pytime_from_double(result, seconds, round, SEC_TO_NS); +} + -static _PyTime_t -pytime_divide_round_up(const _PyTime_t t, const _PyTime_t k) +static PyTime_t +pytime_divide_round_up(const PyTime_t t, const PyTime_t k) { assert(k > 1); if (t >= 0) { // Don't use (t + k - 1) / k to avoid integer overflow - // if t is equal to _PyTime_MAX - _PyTime_t q = t / k; + // if t is equal to PyTime_MAX + PyTime_t q = t / k; if (t % k) { q += 1; } @@ -645,8 +683,8 @@ pytime_divide_round_up(const _PyTime_t t, const _PyTime_t k) } else { // Don't use (t - (k - 1)) / k to avoid integer overflow - // if t is equals to _PyTime_MIN. - _PyTime_t q = t / k; + // if t is equals to PyTime_MIN. + PyTime_t q = t / k; if (t % k) { q -= 1; } @@ -655,15 +693,15 @@ pytime_divide_round_up(const _PyTime_t t, const _PyTime_t k) } -static _PyTime_t -pytime_divide(const _PyTime_t t, const _PyTime_t k, +static PyTime_t +pytime_divide(const PyTime_t t, const PyTime_t k, const _PyTime_round_t round) { assert(k > 1); if (round == _PyTime_ROUND_HALF_EVEN) { - _PyTime_t x = t / k; - _PyTime_t r = t % k; - _PyTime_t abs_r = Py_ABS(r); + PyTime_t x = t / k; + PyTime_t r = t % k; + PyTime_t abs_r = Py_ABS(r); if (abs_r > k / 2 || (abs_r == k / 2 && (Py_ABS(x) & 1))) { if (t >= 0) { x++; @@ -700,17 +738,17 @@ pytime_divide(const _PyTime_t t, const _PyTime_t k, // Compute (t / k, t % k) in (pq, pr). // Make sure that 0 <= pr < k. // Return 0 on success. -// Return -1 on underflow and store (_PyTime_MIN, 0) in (pq, pr). +// Return -1 on underflow and store (PyTime_MIN, 0) in (pq, pr). static int -pytime_divmod(const _PyTime_t t, const _PyTime_t k, - _PyTime_t *pq, _PyTime_t *pr) +pytime_divmod(const PyTime_t t, const PyTime_t k, + PyTime_t *pq, PyTime_t *pr) { assert(k > 1); - _PyTime_t q = t / k; - _PyTime_t r = t % k; + PyTime_t q = t / k; + PyTime_t r = t % k; if (r < 0) { - if (q == _PyTime_MIN) { - *pq = _PyTime_MIN; + if (q == PyTime_MIN) { + *pq = PyTime_MIN; *pr = 0; return -1; } @@ -725,47 +763,36 @@ pytime_divmod(const _PyTime_t t, const _PyTime_t k, } -_PyTime_t -_PyTime_AsNanoseconds(_PyTime_t t) -{ - return pytime_as_nanoseconds(t); -} - - #ifdef MS_WINDOWS -_PyTime_t -_PyTime_As100Nanoseconds(_PyTime_t t, _PyTime_round_t round) +PyTime_t +_PyTime_As100Nanoseconds(PyTime_t ns, _PyTime_round_t round) { - _PyTime_t ns = pytime_as_nanoseconds(t); return pytime_divide(ns, NS_TO_100NS, round); } #endif -_PyTime_t -_PyTime_AsMicroseconds(_PyTime_t t, _PyTime_round_t round) +PyTime_t +_PyTime_AsMicroseconds(PyTime_t ns, _PyTime_round_t round) { - _PyTime_t ns = pytime_as_nanoseconds(t); return pytime_divide(ns, NS_TO_US, round); } -_PyTime_t -_PyTime_AsMilliseconds(_PyTime_t t, _PyTime_round_t round) +PyTime_t +_PyTime_AsMilliseconds(PyTime_t ns, _PyTime_round_t round) { - _PyTime_t ns = pytime_as_nanoseconds(t); return pytime_divide(ns, NS_TO_MS, round); } static int -pytime_as_timeval(_PyTime_t t, _PyTime_t *ptv_sec, int *ptv_usec, +pytime_as_timeval(PyTime_t ns, PyTime_t *ptv_sec, int *ptv_usec, _PyTime_round_t round) { - _PyTime_t ns = pytime_as_nanoseconds(t); - _PyTime_t us = pytime_divide(ns, US_TO_NS, round); + PyTime_t us = pytime_divide(ns, US_TO_NS, round); - _PyTime_t tv_sec, tv_usec; + PyTime_t tv_sec, tv_usec; int res = pytime_divmod(us, SEC_TO_US, &tv_sec, &tv_usec); *ptv_sec = tv_sec; *ptv_usec = (int)tv_usec; @@ -774,16 +801,16 @@ pytime_as_timeval(_PyTime_t t, _PyTime_t *ptv_sec, int *ptv_usec, static int -pytime_as_timeval_struct(_PyTime_t t, struct timeval *tv, +pytime_as_timeval_struct(PyTime_t t, struct timeval *tv, _PyTime_round_t round, int raise_exc) { - _PyTime_t tv_sec; + PyTime_t tv_sec; int tv_usec; int res = pytime_as_timeval(t, &tv_sec, &tv_usec, round); int res2; #ifdef MS_WINDOWS // On Windows, timeval.tv_sec type is long - res2 = _PyTime_AsLong(tv_sec, &tv->tv_sec); + res2 = _PyTime_AsCLong(tv_sec, &tv->tv_sec); #else res2 = _PyTime_AsTime_t(tv_sec, &tv->tv_sec); #endif @@ -801,24 +828,24 @@ pytime_as_timeval_struct(_PyTime_t t, struct timeval *tv, int -_PyTime_AsTimeval(_PyTime_t t, struct timeval *tv, _PyTime_round_t round) +_PyTime_AsTimeval(PyTime_t t, struct timeval *tv, _PyTime_round_t round) { return pytime_as_timeval_struct(t, tv, round, 1); } void -_PyTime_AsTimeval_clamp(_PyTime_t t, struct timeval *tv, _PyTime_round_t round) +_PyTime_AsTimeval_clamp(PyTime_t t, struct timeval *tv, _PyTime_round_t round) { (void)pytime_as_timeval_struct(t, tv, round, 0); } int -_PyTime_AsTimevalTime_t(_PyTime_t t, time_t *p_secs, int *us, +_PyTime_AsTimevalTime_t(PyTime_t t, time_t *p_secs, int *us, _PyTime_round_t round) { - _PyTime_t secs; + PyTime_t secs; if (pytime_as_timeval(t, &secs, us, round) < 0) { pytime_time_t_overflow(); return -1; @@ -834,10 +861,9 @@ _PyTime_AsTimevalTime_t(_PyTime_t t, time_t *p_secs, int *us, #if defined(HAVE_CLOCK_GETTIME) || defined(HAVE_KQUEUE) static int -pytime_as_timespec(_PyTime_t t, struct timespec *ts, int raise_exc) +pytime_as_timespec(PyTime_t ns, struct timespec *ts, int raise_exc) { - _PyTime_t ns = pytime_as_nanoseconds(t); - _PyTime_t tv_sec, tv_nsec; + PyTime_t tv_sec, tv_nsec; int res = pytime_divmod(ns, SEC_TO_NS, &tv_sec, &tv_nsec); int res2 = _PyTime_AsTime_t(tv_sec, &ts->tv_sec); @@ -854,49 +880,53 @@ pytime_as_timespec(_PyTime_t t, struct timespec *ts, int raise_exc) } void -_PyTime_AsTimespec_clamp(_PyTime_t t, struct timespec *ts) +_PyTime_AsTimespec_clamp(PyTime_t t, struct timespec *ts) { (void)pytime_as_timespec(t, ts, 0); } int -_PyTime_AsTimespec(_PyTime_t t, struct timespec *ts) +_PyTime_AsTimespec(PyTime_t t, struct timespec *ts) { return pytime_as_timespec(t, ts, 1); } #endif +// N.B. If raise_exc=0, this may be called without the GIL. static int -py_get_system_clock(_PyTime_t *tp, _Py_clock_info_t *info, int raise_exc) +py_get_system_clock(PyTime_t *tp, _Py_clock_info_t *info, int raise_exc) { assert(info == NULL || raise_exc); + if (raise_exc) { + // raise_exc requires to hold the GIL + assert(PyGILState_Check()); + } #ifdef MS_WINDOWS FILETIME system_time; ULARGE_INTEGER large; - GetSystemTimeAsFileTime(&system_time); + GetSystemTimePreciseAsFileTime(&system_time); large.u.LowPart = system_time.dwLowDateTime; large.u.HighPart = system_time.dwHighDateTime; /* 11,644,473,600,000,000,000: number of nanoseconds between the 1st january 1601 and the 1st january 1970 (369 years + 89 leap days). */ - _PyTime_t ns = large.QuadPart * 100 - 11644473600000000000; - *tp = pytime_from_nanoseconds(ns); + PyTime_t ns = large.QuadPart * 100 - 11644473600000000000; + *tp = ns; if (info) { - DWORD timeAdjustment, timeIncrement; - BOOL isTimeAdjustmentDisabled, ok; + // GetSystemTimePreciseAsFileTime() is implemented using + // QueryPerformanceCounter() internally. + if (py_qpc_base.denom == 0) { + if (py_win_perf_counter_frequency(&py_qpc_base, raise_exc) < 0) { + return -1; + } + } - info->implementation = "GetSystemTimeAsFileTime()"; + info->implementation = "GetSystemTimePreciseAsFileTime()"; info->monotonic = 0; - ok = GetSystemTimeAdjustment(&timeAdjustment, &timeIncrement, - &isTimeAdjustmentDisabled); - if (!ok) { - PyErr_SetFromWindowsErr(0); - return -1; - } - info->resolution = timeIncrement * 1e-7; + info->resolution = _PyTimeFraction_Resolution(&py_qpc_base); info->adjustable = 1; } @@ -969,7 +999,7 @@ py_get_system_clock(_PyTime_t *tp, _Py_clock_info_t *info, int raise_exc) } #if defined(HAVE_CLOCK_GETTIME_RUNTIME) && defined(HAVE_CLOCK_GETTIME) - } /* end of availibity block */ + } /* end of availability block */ #endif #endif /* !HAVE_CLOCK_GETTIME */ @@ -978,148 +1008,175 @@ py_get_system_clock(_PyTime_t *tp, _Py_clock_info_t *info, int raise_exc) } -_PyTime_t -_PyTime_GetSystemClock(void) +int +PyTime_Time(PyTime_t *result) +{ + if (py_get_system_clock(result, NULL, 1) < 0) { + *result = 0; + return -1; + } + return 0; +} + + +int +PyTime_TimeRaw(PyTime_t *result) { - _PyTime_t t; - if (py_get_system_clock(&t, NULL, 0) < 0) { - // If clock_gettime(CLOCK_REALTIME) or gettimeofday() fails: - // silently ignore the failure and return 0. - t = 0; + if (py_get_system_clock(result, NULL, 0) < 0) { + *result = 0; + return -1; } - return t; + return 0; } int -_PyTime_GetSystemClockWithInfo(_PyTime_t *t, _Py_clock_info_t *info) +_PyTime_TimeWithInfo(PyTime_t *t, _Py_clock_info_t *info) { return py_get_system_clock(t, info, 1); } -#ifdef __APPLE__ +#ifdef MS_WINDOWS static int -py_mach_timebase_info(_PyTime_t *pnumer, _PyTime_t *pdenom, int raise) +py_win_perf_counter_frequency(_PyTimeFraction *base, int raise_exc) { - static mach_timebase_info_data_t timebase; - /* According to the Technical Q&A QA1398, mach_timebase_info() cannot - fail: https://developer.apple.com/library/mac/#qa/qa1398/ */ - (void)mach_timebase_info(&timebase); + LARGE_INTEGER freq; + // Since Windows XP, the function cannot fail. + (void)QueryPerformanceFrequency(&freq); + LONGLONG frequency = freq.QuadPart; + + // Since Windows XP, frequency cannot be zero. + assert(frequency >= 1); + + Py_BUILD_ASSERT(sizeof(PyTime_t) == sizeof(frequency)); + PyTime_t denom = (PyTime_t)frequency; - /* Sanity check: should never occur in practice */ - if (timebase.numer < 1 || timebase.denom < 1) { - if (raise) { + // Known QueryPerformanceFrequency() values: + // + // * 10,000,000 (10 MHz): 100 ns resolution + // * 3,579,545 Hz (3.6 MHz): 279 ns resolution + if (_PyTimeFraction_Set(base, SEC_TO_NS, denom) < 0) { + if (raise_exc) { PyErr_SetString(PyExc_RuntimeError, - "invalid mach_timebase_info"); + "invalid QueryPerformanceFrequency"); } return -1; } + return 0; +} + + +// N.B. If raise_exc=0, this may be called without the GIL. +static int +py_get_win_perf_counter(PyTime_t *tp, _Py_clock_info_t *info, int raise_exc) +{ + assert(info == NULL || raise_exc); + + if (py_qpc_base.denom == 0) { + if (py_win_perf_counter_frequency(&py_qpc_base, raise_exc) < 0) { + return -1; + } + } + + if (info) { + info->implementation = "QueryPerformanceCounter()"; + info->resolution = _PyTimeFraction_Resolution(&py_qpc_base); + info->monotonic = 1; + info->adjustable = 0; + } + + LARGE_INTEGER now; + QueryPerformanceCounter(&now); + LONGLONG ticksll = now.QuadPart; - /* Check that timebase.numer and timebase.denom can be casted to - _PyTime_t. In practice, timebase uses uint32_t, so casting cannot - overflow. At the end, only make sure that the type is uint32_t - (_PyTime_t is 64-bit long). */ - static_assert(sizeof(timebase.numer) <= sizeof(_PyTime_t), - "timebase.numer is larger than _PyTime_t"); - static_assert(sizeof(timebase.denom) <= sizeof(_PyTime_t), - "timebase.denom is larger than _PyTime_t"); + /* Make sure that casting LONGLONG to PyTime_t cannot overflow, + both types are signed */ + PyTime_t ticks; + static_assert(sizeof(ticksll) <= sizeof(ticks), + "LONGLONG is larger than PyTime_t"); + ticks = (PyTime_t)ticksll; - /* Make sure that _PyTime_MulDiv(ticks, timebase_numer, timebase_denom) - cannot overflow. + *tp = _PyTimeFraction_Mul(ticks, &py_qpc_base); + return 0; +} +#endif // MS_WINDOWS - Known time bases: - * (1, 1) on Intel - * (1000000000, 33333335) or (1000000000, 25000000) on PowerPC +#ifdef __APPLE__ +static int +py_mach_timebase_info(_PyTimeFraction *base, int raise_exc) +{ + mach_timebase_info_data_t timebase; + // According to the Technical Q&A QA1398, mach_timebase_info() cannot + // fail: https://developer.apple.com/library/mac/#qa/qa1398/ + (void)mach_timebase_info(&timebase); - None of these time bases can overflow with 64-bit _PyTime_t, but - check for overflow, just in case. */ - if ((_PyTime_t)timebase.numer > _PyTime_MAX / (_PyTime_t)timebase.denom) { - if (raise) { - PyErr_SetString(PyExc_OverflowError, - "mach_timebase_info is too large"); + // Check that timebase.numer and timebase.denom can be casted to + // PyTime_t. In practice, timebase uses uint32_t, so casting cannot + // overflow. At the end, only make sure that the type is uint32_t + // (PyTime_t is 64-bit long). + Py_BUILD_ASSERT(sizeof(timebase.numer) <= sizeof(PyTime_t)); + Py_BUILD_ASSERT(sizeof(timebase.denom) <= sizeof(PyTime_t)); + PyTime_t numer = (PyTime_t)timebase.numer; + PyTime_t denom = (PyTime_t)timebase.denom; + + // Known time bases: + // + // * (1, 1) on Intel: 1 ns + // * (1000000000, 33333335) on PowerPC: ~30 ns + // * (1000000000, 25000000) on PowerPC: 40 ns + if (_PyTimeFraction_Set(base, numer, denom) < 0) { + if (raise_exc) { + PyErr_SetString(PyExc_RuntimeError, + "invalid mach_timebase_info"); } return -1; } - - *pnumer = (_PyTime_t)timebase.numer; - *pdenom = (_PyTime_t)timebase.denom; return 0; } #endif +// N.B. If raise_exc=0, this may be called without the GIL. static int -py_get_monotonic_clock(_PyTime_t *tp, _Py_clock_info_t *info, int raise_exc) +py_get_monotonic_clock(PyTime_t *tp, _Py_clock_info_t *info, int raise_exc) { assert(info == NULL || raise_exc); - -#if defined(MS_WINDOWS) - ULONGLONG ticks = GetTickCount64(); - static_assert(sizeof(ticks) <= sizeof(_PyTime_t), - "ULONGLONG is larger than _PyTime_t"); - _PyTime_t t; - if (ticks <= (ULONGLONG)_PyTime_MAX) { - t = (_PyTime_t)ticks; - } - else { - // GetTickCount64() maximum is larger than _PyTime_t maximum: - // ULONGLONG is unsigned, whereas _PyTime_t is signed. - t = _PyTime_MAX; + if (raise_exc) { + // raise_exc requires to hold the GIL + assert(PyGILState_Check()); } - int res = pytime_mul(&t, MS_TO_NS); - *tp = t; - - if (raise_exc && res < 0) { - pytime_overflow(); +#if defined(MS_WINDOWS) + if (py_get_win_perf_counter(tp, info, raise_exc) < 0) { return -1; } - - if (info) { - DWORD timeAdjustment, timeIncrement; - BOOL isTimeAdjustmentDisabled, ok; - info->implementation = "GetTickCount64()"; - info->monotonic = 1; - ok = GetSystemTimeAdjustment(&timeAdjustment, &timeIncrement, - &isTimeAdjustmentDisabled); - if (!ok) { - PyErr_SetFromWindowsErr(0); - return -1; - } - info->resolution = timeIncrement * 1e-7; - info->adjustable = 0; - } - #elif defined(__APPLE__) - static _PyTime_t timebase_numer = 0; - static _PyTime_t timebase_denom = 0; - if (timebase_denom == 0) { - if (py_mach_timebase_info(&timebase_numer, &timebase_denom, raise_exc) < 0) { + static _PyTimeFraction base = {0, 0}; + if (base.denom == 0) { + if (py_mach_timebase_info(&base, raise_exc) < 0) { return -1; } } if (info) { info->implementation = "mach_absolute_time()"; - info->resolution = (double)timebase_numer / (double)timebase_denom * 1e-9; + info->resolution = _PyTimeFraction_Resolution(&base); info->monotonic = 1; info->adjustable = 0; } uint64_t uticks = mach_absolute_time(); // unsigned => signed - assert(uticks <= (uint64_t)_PyTime_MAX); - _PyTime_t ticks = (_PyTime_t)uticks; + assert(uticks <= (uint64_t)PyTime_MAX); + PyTime_t ticks = (PyTime_t)uticks; - _PyTime_t ns = _PyTime_MulDiv(ticks, timebase_numer, timebase_denom); - *tp = pytime_from_nanoseconds(ns); + PyTime_t ns = _PyTimeFraction_Mul(ticks, &base); + *tp = ns; #elif defined(__hpux) - hrtime_t time; - - time = gethrtime(); + hrtime_t time = gethrtime(); if (time == -1) { if (raise_exc) { PyErr_SetFromErrno(PyExc_OSError); @@ -1127,7 +1184,7 @@ py_get_monotonic_clock(_PyTime_t *tp, _Py_clock_info_t *info, int raise_exc) return -1; } - *tp = pytime_from_nanoseconds(time); + *tp = time; if (info) { info->implementation = "gethrtime()"; @@ -1175,127 +1232,53 @@ py_get_monotonic_clock(_PyTime_t *tp, _Py_clock_info_t *info, int raise_exc) } -_PyTime_t -_PyTime_GetMonotonicClock(void) +int +PyTime_Monotonic(PyTime_t *result) { - _PyTime_t t; - if (py_get_monotonic_clock(&t, NULL, 0) < 0) { - // If mach_timebase_info(), clock_gettime() or gethrtime() fails: - // silently ignore the failure and return 0. - t = 0; + if (py_get_monotonic_clock(result, NULL, 1) < 0) { + *result = 0; + return -1; } - return t; + return 0; } int -_PyTime_GetMonotonicClockWithInfo(_PyTime_t *tp, _Py_clock_info_t *info) -{ - return py_get_monotonic_clock(tp, info, 1); -} - - -#ifdef MS_WINDOWS -static int -py_win_perf_counter_frequency(LONGLONG *pfrequency, int raise) +PyTime_MonotonicRaw(PyTime_t *result) { - LONGLONG frequency; - - LARGE_INTEGER freq; - // Since Windows XP, the function cannot fail. - (void)QueryPerformanceFrequency(&freq); - frequency = freq.QuadPart; - - // Since Windows XP, frequency cannot be zero. - assert(frequency >= 1); - - /* Make also sure that (ticks * SEC_TO_NS) cannot overflow in - _PyTime_MulDiv(), with ticks < frequency. - - Known QueryPerformanceFrequency() values: - - * 10,000,000 (10 MHz): 100 ns resolution - * 3,579,545 Hz (3.6 MHz): 279 ns resolution - - None of these frequencies can overflow with 64-bit _PyTime_t, but - check for integer overflow just in case. */ - if (frequency > _PyTime_MAX / SEC_TO_NS) { - if (raise) { - PyErr_SetString(PyExc_OverflowError, - "QueryPerformanceFrequency is too large"); - } + if (py_get_monotonic_clock(result, NULL, 0) < 0) { + *result = 0; return -1; } - - *pfrequency = frequency; return 0; } -static int -py_get_win_perf_counter(_PyTime_t *tp, _Py_clock_info_t *info, int raise_exc) +int +_PyTime_MonotonicWithInfo(PyTime_t *tp, _Py_clock_info_t *info) { - assert(info == NULL || raise_exc); - - static LONGLONG frequency = 0; - if (frequency == 0) { - if (py_win_perf_counter_frequency(&frequency, raise_exc) < 0) { - return -1; - } - } - - if (info) { - info->implementation = "QueryPerformanceCounter()"; - info->resolution = 1.0 / (double)frequency; - info->monotonic = 1; - info->adjustable = 0; - } - - LARGE_INTEGER now; - QueryPerformanceCounter(&now); - LONGLONG ticksll = now.QuadPart; + return py_get_monotonic_clock(tp, info, 1); +} - /* Make sure that casting LONGLONG to _PyTime_t cannot overflow, - both types are signed */ - _PyTime_t ticks; - static_assert(sizeof(ticksll) <= sizeof(ticks), - "LONGLONG is larger than _PyTime_t"); - ticks = (_PyTime_t)ticksll; - _PyTime_t ns = _PyTime_MulDiv(ticks, SEC_TO_NS, (_PyTime_t)frequency); - *tp = pytime_from_nanoseconds(ns); - return 0; +int +_PyTime_PerfCounterWithInfo(PyTime_t *t, _Py_clock_info_t *info) +{ + return _PyTime_MonotonicWithInfo(t, info); } -#endif // MS_WINDOWS int -_PyTime_GetPerfCounterWithInfo(_PyTime_t *t, _Py_clock_info_t *info) +PyTime_PerfCounter(PyTime_t *result) { -#ifdef MS_WINDOWS - return py_get_win_perf_counter(t, info, 1); -#else - return _PyTime_GetMonotonicClockWithInfo(t, info); -#endif + return PyTime_Monotonic(result); } -_PyTime_t -_PyTime_GetPerfCounter(void) +int +PyTime_PerfCounterRaw(PyTime_t *result) { - _PyTime_t t; - int res; -#ifdef MS_WINDOWS - res = py_get_win_perf_counter(&t, NULL, 0); -#else - res = py_get_monotonic_clock(&t, NULL, 0); -#endif - if (res < 0) { - // If py_win_perf_counter_frequency() or py_get_monotonic_clock() - // fails: silently ignore the failure and return 0. - t = 0; - } - return t; + return PyTime_MonotonicRaw(result); } @@ -1366,17 +1349,21 @@ _PyTime_gmtime(time_t t, struct tm *tm) } -_PyTime_t -_PyDeadline_Init(_PyTime_t timeout) +PyTime_t +_PyDeadline_Init(PyTime_t timeout) { - _PyTime_t now = _PyTime_GetMonotonicClock(); + PyTime_t now; + // silently ignore error: cannot report error to the caller + (void)PyTime_MonotonicRaw(&now); return _PyTime_Add(now, timeout); } -_PyTime_t -_PyDeadline_Get(_PyTime_t deadline) +PyTime_t +_PyDeadline_Get(PyTime_t deadline) { - _PyTime_t now = _PyTime_GetMonotonicClock(); + PyTime_t now; + // silently ignore error: cannot report error to the caller + (void)PyTime_MonotonicRaw(&now); return deadline - now; } diff --git a/contrib/tools/python3/Python/qsbr.c b/contrib/tools/python3/Python/qsbr.c new file mode 100644 index 00000000000..935226e36e8 --- /dev/null +++ b/contrib/tools/python3/Python/qsbr.c @@ -0,0 +1,282 @@ +/* + * Implementation of safe memory reclamation scheme using + * quiescent states. + * + * This is derived from the "GUS" safe memory reclamation technique + * in FreeBSD written by Jeffrey Roberson. It is heavily modified. Any bugs + * in this code are likely due to the modifications. + * + * The original copyright is preserved below. + * + * Copyright (c) 2019,2020 Jeffrey Roberson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice unmodified, this list of conditions, and the following + * disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "Python.h" +#include "pycore_initconfig.h" // _PyStatus_NO_MEMORY() +#include "pycore_lock.h" // PyMutex_Lock() +#include "pycore_qsbr.h" +#include "pycore_pystate.h" // _PyThreadState_GET() + + +// Starting size of the array of qsbr thread states +#define MIN_ARRAY_SIZE 8 + +// Allocate a QSBR thread state from the freelist +static struct _qsbr_thread_state * +qsbr_allocate(struct _qsbr_shared *shared) +{ + struct _qsbr_thread_state *qsbr = shared->freelist; + if (qsbr == NULL) { + return NULL; + } + shared->freelist = qsbr->freelist_next; + qsbr->freelist_next = NULL; + qsbr->shared = shared; + qsbr->allocated = true; + return qsbr; +} + +// Initialize (or reintialize) the freelist of QSBR thread states +static void +initialize_new_array(struct _qsbr_shared *shared) +{ + for (Py_ssize_t i = 0; i != shared->size; i++) { + struct _qsbr_thread_state *qsbr = &shared->array[i].qsbr; + if (qsbr->tstate != NULL) { + // Update the thread state pointer to its QSBR state + _PyThreadStateImpl *tstate = (_PyThreadStateImpl *)qsbr->tstate; + tstate->qsbr = qsbr; + } + if (!qsbr->allocated) { + // Push to freelist + qsbr->freelist_next = shared->freelist; + shared->freelist = qsbr; + } + } +} + +// Grow the array of QSBR thread states. Returns 0 on success, -1 on failure. +static int +grow_thread_array(struct _qsbr_shared *shared) +{ + Py_ssize_t new_size = shared->size * 2; + if (new_size < MIN_ARRAY_SIZE) { + new_size = MIN_ARRAY_SIZE; + } + + struct _qsbr_pad *array = PyMem_RawCalloc(new_size, sizeof(*array)); + if (array == NULL) { + return -1; + } + + struct _qsbr_pad *old = shared->array; + if (old != NULL) { + memcpy(array, shared->array, shared->size * sizeof(*array)); + } + + shared->array = array; + shared->size = new_size; + shared->freelist = NULL; + initialize_new_array(shared); + + PyMem_RawFree(old); + return 0; +} + +uint64_t +_Py_qsbr_advance(struct _qsbr_shared *shared) +{ + // NOTE: with 64-bit sequence numbers, we don't have to worry too much + // about the wr_seq getting too far ahead of rd_seq, but if we ever use + // 32-bit sequence numbers, we'll need to be more careful. + return _Py_atomic_add_uint64(&shared->wr_seq, QSBR_INCR) + QSBR_INCR; +} + +uint64_t +_Py_qsbr_shared_next(struct _qsbr_shared *shared) +{ + return _Py_qsbr_shared_current(shared) + QSBR_INCR; +} + +static uint64_t +qsbr_poll_scan(struct _qsbr_shared *shared) +{ + // Synchronize with store in _Py_qsbr_attach(). We need to ensure that + // the reads from each thread's sequence number are not reordered to see + // earlier "offline" states. + _Py_atomic_fence_seq_cst(); + + // Compute the minimum sequence number of all attached threads + uint64_t min_seq = _Py_atomic_load_uint64(&shared->wr_seq); + struct _qsbr_pad *array = shared->array; + for (Py_ssize_t i = 0, size = shared->size; i != size; i++) { + struct _qsbr_thread_state *qsbr = &array[i].qsbr; + + uint64_t seq = _Py_atomic_load_uint64(&qsbr->seq); + if (seq != QSBR_OFFLINE && QSBR_LT(seq, min_seq)) { + min_seq = seq; + } + } + + // Update the shared read sequence + uint64_t rd_seq = _Py_atomic_load_uint64(&shared->rd_seq); + if (QSBR_LT(rd_seq, min_seq)) { + // It's okay if the compare-exchange failed: another thread updated it + (void)_Py_atomic_compare_exchange_uint64(&shared->rd_seq, &rd_seq, min_seq); + rd_seq = min_seq; + } + + return rd_seq; +} + +bool +_Py_qsbr_poll(struct _qsbr_thread_state *qsbr, uint64_t goal) +{ + assert(_Py_atomic_load_int_relaxed(&_PyThreadState_GET()->state) == _Py_THREAD_ATTACHED); + assert(((_PyThreadStateImpl *)_PyThreadState_GET())->qsbr == qsbr); + + if (_Py_qbsr_goal_reached(qsbr, goal)) { + return true; + } + + uint64_t rd_seq = qsbr_poll_scan(qsbr->shared); + return QSBR_LEQ(goal, rd_seq); +} + +void +_Py_qsbr_attach(struct _qsbr_thread_state *qsbr) +{ + assert(qsbr->seq == 0 && "already attached"); + + uint64_t seq = _Py_qsbr_shared_current(qsbr->shared); + _Py_atomic_store_uint64(&qsbr->seq, seq); // needs seq_cst +} + +void +_Py_qsbr_detach(struct _qsbr_thread_state *qsbr) +{ + assert(qsbr->seq != 0 && "already detached"); + + _Py_atomic_store_uint64_release(&qsbr->seq, QSBR_OFFLINE); +} + +Py_ssize_t +_Py_qsbr_reserve(PyInterpreterState *interp) +{ + struct _qsbr_shared *shared = &interp->qsbr; + + PyMutex_Lock(&shared->mutex); + // Try allocating from our internal freelist + struct _qsbr_thread_state *qsbr = qsbr_allocate(shared); + + // If there are no free entries, we pause all threads, grow the array, + // and update the pointers in PyThreadState to entries in the new array. + if (qsbr == NULL) { + _PyEval_StopTheWorld(interp); + if (grow_thread_array(shared) == 0) { + qsbr = qsbr_allocate(shared); + } + _PyEval_StartTheWorld(interp); + } + + // Return an index rather than the pointer because the array may be + // resized and the pointer invalidated. + Py_ssize_t index = -1; + if (qsbr != NULL) { + index = (struct _qsbr_pad *)qsbr - shared->array; + } + PyMutex_Unlock(&shared->mutex); + return index; +} + +void +_Py_qsbr_register(_PyThreadStateImpl *tstate, PyInterpreterState *interp, + Py_ssize_t index) +{ + // Associate the QSBR state with the thread state + struct _qsbr_shared *shared = &interp->qsbr; + + PyMutex_Lock(&shared->mutex); + struct _qsbr_thread_state *qsbr = &interp->qsbr.array[index].qsbr; + assert(qsbr->allocated && qsbr->tstate == NULL); + qsbr->tstate = (PyThreadState *)tstate; + tstate->qsbr = qsbr; + PyMutex_Unlock(&shared->mutex); +} + +void +_Py_qsbr_unregister(PyThreadState *tstate) +{ + struct _qsbr_shared *shared = &tstate->interp->qsbr; + struct _PyThreadStateImpl *tstate_imp = (_PyThreadStateImpl*) tstate; + + // gh-119369: GIL must be released (if held) to prevent deadlocks, because + // we might not have an active tstate, which means that blocking on PyMutex + // locks will not implicitly release the GIL. + assert(!tstate->_status.holds_gil); + + PyMutex_Lock(&shared->mutex); + // NOTE: we must load (or reload) the thread state's qbsr inside the mutex + // because the array may have been resized (changing tstate->qsbr) while + // we waited to acquire the mutex. + struct _qsbr_thread_state *qsbr = tstate_imp->qsbr; + + assert(qsbr->seq == 0 && "thread state must be detached"); + assert(qsbr->allocated && qsbr->tstate == tstate); + + tstate_imp->qsbr = NULL; + qsbr->tstate = NULL; + qsbr->allocated = false; + qsbr->freelist_next = shared->freelist; + shared->freelist = qsbr; + PyMutex_Unlock(&shared->mutex); +} + +void +_Py_qsbr_fini(PyInterpreterState *interp) +{ + struct _qsbr_shared *shared = &interp->qsbr; + PyMem_RawFree(shared->array); + shared->array = NULL; + shared->size = 0; + shared->freelist = NULL; +} + +void +_Py_qsbr_after_fork(_PyThreadStateImpl *tstate) +{ + struct _qsbr_thread_state *this_qsbr = tstate->qsbr; + struct _qsbr_shared *shared = this_qsbr->shared; + + _PyMutex_at_fork_reinit(&shared->mutex); + + for (Py_ssize_t i = 0; i != shared->size; i++) { + struct _qsbr_thread_state *qsbr = &shared->array[i].qsbr; + if (qsbr != this_qsbr && qsbr->allocated) { + qsbr->tstate = NULL; + qsbr->allocated = false; + qsbr->freelist_next = shared->freelist; + shared->freelist = qsbr; + } + } +} diff --git a/contrib/tools/python3/Python/specialize.c b/contrib/tools/python3/Python/specialize.c index 2c0d99b04ed..ad166ea091b 100644 --- a/contrib/tools/python3/Python/specialize.c +++ b/contrib/tools/python3/Python/specialize.c @@ -1,24 +1,37 @@ #include "Python.h" + +#include "opcode.h" + #include "pycore_code.h" -#include "pycore_dict.h" +#include "pycore_descrobject.h" // _PyMethodWrapper_Type +#include "pycore_dict.h" // DICT_KEYS_UNICODE #include "pycore_function.h" // _PyFunction_GetVersionForCurrentState() -#include "pycore_global_strings.h" // _Py_ID() -#include "pycore_long.h" +#include "pycore_long.h" // _PyLong_IsNonNegativeCompact() #include "pycore_moduleobject.h" #include "pycore_object.h" -#include "pycore_opcode.h" // _PyOpcode_Caches -#include "structmember.h" // struct PyMemberDef, T_OFFSET_EX -#include "pycore_descrobject.h" +#include "pycore_opcode_metadata.h" // _PyOpcode_Caches +#include "pycore_uop_metadata.h" // _PyOpcode_uop_name +#include "pycore_uop_ids.h" // MAX_UOP_ID +#include "pycore_opcode_utils.h" // RESUME_AT_FUNC_START +#include "pycore_pylifecycle.h" // _PyOS_URandomNonblock() +#include "pycore_runtime.h" // _Py_ID() #include // rand() +extern const char *_PyUOpName(int index); + /* For guidance on adding or extending families of instructions see * ./adaptive.md */ #ifdef Py_STATS -PyStats _py_stats_struct = { 0 }; -PyStats *_py_stats = NULL; +GCStats _py_gc_stats[NUM_GENERATIONS] = { 0 }; +static PyStats _Py_stats_struct = { .gc_stats = _py_gc_stats }; +PyStats *_Py_stats = NULL; + +#if PYSTATS_MAX_UOP_ID < MAX_UOP_ID +#error "Not enough space allocated for pystats. Increase PYSTATS_MAX_UOP_ID to at least MAX_UOP_ID" +#endif #define ADD_STAT_TO_DICT(res, field) \ do { \ @@ -78,7 +91,7 @@ add_stat_dict( int opcode, const char *name) { - SpecializationStats *stats = &_py_stats_struct.opcode_stats[opcode].specialization; + SpecializationStats *stats = &_Py_stats_struct.opcode_stats[opcode].specialization; PyObject *d = stats_to_dict(stats); if (d == NULL) { return -1; @@ -88,7 +101,6 @@ add_stat_dict( return err; } -#ifdef Py_STATS PyObject* _Py_GetSpecializationStats(void) { PyObject *stats = PyDict_New(); @@ -96,6 +108,7 @@ _Py_GetSpecializationStats(void) { return NULL; } int err = 0; + err += add_stat_dict(stats, CONTAINS_OP, "contains_op"); err += add_stat_dict(stats, LOAD_SUPER_ATTR, "load_super_attr"); err += add_stat_dict(stats, LOAD_ATTR, "load_attr"); err += add_stat_dict(stats, LOAD_GLOBAL, "load_global"); @@ -107,18 +120,19 @@ _Py_GetSpecializationStats(void) { err += add_stat_dict(stats, COMPARE_OP, "compare_op"); err += add_stat_dict(stats, UNPACK_SEQUENCE, "unpack_sequence"); err += add_stat_dict(stats, FOR_ITER, "for_iter"); + err += add_stat_dict(stats, TO_BOOL, "to_bool"); + err += add_stat_dict(stats, SEND, "send"); if (err < 0) { Py_DECREF(stats); return NULL; } return stats; } -#endif #define PRINT_STAT(i, field) \ if (stats[i].field) { \ - fprintf(out, " opcode[%d]." #field " : %" PRIu64 "\n", i, stats[i].field); \ + fprintf(out, " opcode[%s]." #field " : %" PRIu64 "\n", _PyOpcode_OpName[i], stats[i].field); \ } static void @@ -126,13 +140,11 @@ print_spec_stats(FILE *out, OpcodeStats *stats) { /* Mark some opcodes as specializable for stats, * even though we don't specialize them yet. */ - fprintf(out, "opcode[%d].specializable : 1\n", BINARY_SLICE); - fprintf(out, "opcode[%d].specializable : 1\n", COMPARE_OP); - fprintf(out, "opcode[%d].specializable : 1\n", STORE_SLICE); - fprintf(out, "opcode[%d].specializable : 1\n", SEND); + fprintf(out, "opcode[BINARY_SLICE].specializable : 1\n"); + fprintf(out, "opcode[STORE_SLICE].specializable : 1\n"); for (int i = 0; i < 256; i++) { - if (_PyOpcode_Caches[i]) { - fprintf(out, "opcode[%d].specializable : 1\n", i); + if (_PyOpcode_Caches[i] && i != JUMP_BACKWARD) { + fprintf(out, "opcode[%s].specializable : 1\n", _PyOpcode_OpName[i]); } PRINT_STAT(i, specialization.success); PRINT_STAT(i, specialization.failure); @@ -144,14 +156,14 @@ print_spec_stats(FILE *out, OpcodeStats *stats) for (int j = 0; j < SPECIALIZATION_FAILURE_KINDS; j++) { uint64_t val = stats[i].specialization.failure_kinds[j]; if (val) { - fprintf(out, " opcode[%d].specialization.failure_kinds[%d] : %" - PRIu64 "\n", i, j, val); + fprintf(out, " opcode[%s].specialization.failure_kinds[%d] : %" + PRIu64 "\n", _PyOpcode_OpName[i], j, val); } } for (int j = 0; j < 256; j++) { if (stats[i].pair_count[j]) { - fprintf(out, "opcode[%d].pair_count[%d] : %" PRIu64 "\n", - i, j, stats[i].pair_count[j]); + fprintf(out, "opcode[%s].pair_count[%s] : %" PRIu64 "\n", + _PyOpcode_OpName[i], _PyOpcode_OpName[j], stats[i].pair_count[j]); } } } @@ -181,7 +193,7 @@ print_object_stats(FILE *out, ObjectStats *stats) fprintf(out, "Object allocations to 4 kbytes: %" PRIu64 "\n", stats->allocations4k); fprintf(out, "Object allocations over 4 kbytes: %" PRIu64 "\n", stats->allocations_big); fprintf(out, "Object frees: %" PRIu64 "\n", stats->frees); - fprintf(out, "Object new values: %" PRIu64 "\n", stats->new_values); + fprintf(out, "Object inline values: %" PRIu64 "\n", stats->inline_values); fprintf(out, "Object interpreter increfs: %" PRIu64 "\n", stats->interpreter_increfs); fprintf(out, "Object interpreter decrefs: %" PRIu64 "\n", stats->interpreter_decrefs); fprintf(out, "Object increfs: %" PRIu64 "\n", stats->increfs); @@ -198,21 +210,166 @@ print_object_stats(FILE *out, ObjectStats *stats) } static void -print_stats(FILE *out, PyStats *stats) { +print_gc_stats(FILE *out, GCStats *stats) +{ + for (int i = 0; i < NUM_GENERATIONS; i++) { + fprintf(out, "GC[%d] collections: %" PRIu64 "\n", i, stats[i].collections); + fprintf(out, "GC[%d] object visits: %" PRIu64 "\n", i, stats[i].object_visits); + fprintf(out, "GC[%d] objects collected: %" PRIu64 "\n", i, stats[i].objects_collected); + } +} + +#ifdef _Py_TIER2 +static void +print_histogram(FILE *out, const char *name, uint64_t hist[_Py_UOP_HIST_SIZE]) +{ + for (int i = 0; i < _Py_UOP_HIST_SIZE; i++) { + fprintf(out, "%s[%" PRIu64"]: %" PRIu64 "\n", name, (uint64_t)1 << i, hist[i]); + } +} + +static void +print_optimization_stats(FILE *out, OptimizationStats *stats) +{ + fprintf(out, "Optimization attempts: %" PRIu64 "\n", stats->attempts); + fprintf(out, "Optimization traces created: %" PRIu64 "\n", stats->traces_created); + fprintf(out, "Optimization traces executed: %" PRIu64 "\n", stats->traces_executed); + fprintf(out, "Optimization uops executed: %" PRIu64 "\n", stats->uops_executed); + fprintf(out, "Optimization trace stack overflow: %" PRIu64 "\n", stats->trace_stack_overflow); + fprintf(out, "Optimization trace stack underflow: %" PRIu64 "\n", stats->trace_stack_underflow); + fprintf(out, "Optimization trace too long: %" PRIu64 "\n", stats->trace_too_long); + fprintf(out, "Optimization trace too short: %" PRIu64 "\n", stats->trace_too_short); + fprintf(out, "Optimization inner loop: %" PRIu64 "\n", stats->inner_loop); + fprintf(out, "Optimization recursive call: %" PRIu64 "\n", stats->recursive_call); + fprintf(out, "Optimization low confidence: %" PRIu64 "\n", stats->low_confidence); + fprintf(out, "Executors invalidated: %" PRIu64 "\n", stats->executors_invalidated); + + print_histogram(out, "Trace length", stats->trace_length_hist); + print_histogram(out, "Trace run length", stats->trace_run_length_hist); + print_histogram(out, "Optimized trace length", stats->optimized_trace_length_hist); + + fprintf(out, "Optimization optimizer attempts: %" PRIu64 "\n", stats->optimizer_attempts); + fprintf(out, "Optimization optimizer successes: %" PRIu64 "\n", stats->optimizer_successes); + fprintf(out, "Optimization optimizer failure no memory: %" PRIu64 "\n", + stats->optimizer_failure_reason_no_memory); + fprintf(out, "Optimizer remove globals builtins changed: %" PRIu64 "\n", stats->remove_globals_builtins_changed); + fprintf(out, "Optimizer remove globals incorrect keys: %" PRIu64 "\n", stats->remove_globals_incorrect_keys); + for (int i = 0; i <= MAX_UOP_ID; i++) { + if (stats->opcode[i].execution_count) { + fprintf(out, "uops[%s].execution_count : %" PRIu64 "\n", _PyUOpName(i), stats->opcode[i].execution_count); + } + if (stats->opcode[i].miss) { + fprintf(out, "uops[%s].specialization.miss : %" PRIu64 "\n", _PyUOpName(i), stats->opcode[i].miss); + } + } + for (int i = 0; i < 256; i++) { + if (stats->unsupported_opcode[i]) { + fprintf( + out, + "unsupported_opcode[%s].count : %" PRIu64 "\n", + _PyOpcode_OpName[i], + stats->unsupported_opcode[i] + ); + } + } + + for (int i = 1; i <= MAX_UOP_ID; i++){ + for (int j = 1; j <= MAX_UOP_ID; j++) { + if (stats->opcode[i].pair_count[j]) { + fprintf(out, "uop[%s].pair_count[%s] : %" PRIu64 "\n", + _PyOpcode_uop_name[i], _PyOpcode_uop_name[j], stats->opcode[i].pair_count[j]); + } + } + } + for (int i = 0; i < MAX_UOP_ID; i++) { + if (stats->error_in_opcode[i]) { + fprintf( + out, + "error_in_opcode[%s].count : %" PRIu64 "\n", + _PyUOpName(i), + stats->error_in_opcode[i] + ); + } + } +} +#endif + +static void +print_rare_event_stats(FILE *out, RareEventStats *stats) +{ + fprintf(out, "Rare event (set_class): %" PRIu64 "\n", stats->set_class); + fprintf(out, "Rare event (set_bases): %" PRIu64 "\n", stats->set_bases); + fprintf(out, "Rare event (set_eval_frame_func): %" PRIu64 "\n", stats->set_eval_frame_func); + fprintf(out, "Rare event (builtin_dict): %" PRIu64 "\n", stats->builtin_dict); + fprintf(out, "Rare event (func_modification): %" PRIu64 "\n", stats->func_modification); + fprintf(out, "Rare event (watched_dict_modification): %" PRIu64 "\n", stats->watched_dict_modification); + fprintf(out, "Rare event (watched_globals_modification): %" PRIu64 "\n", stats->watched_globals_modification); +} + +static void +print_stats(FILE *out, PyStats *stats) +{ print_spec_stats(out, stats->opcode_stats); print_call_stats(out, &stats->call_stats); print_object_stats(out, &stats->object_stats); + print_gc_stats(out, stats->gc_stats); +#ifdef _Py_TIER2 + print_optimization_stats(out, &stats->optimization_stats); +#endif + print_rare_event_stats(out, &stats->rare_event_stats); } void -_Py_StatsClear(void) +_Py_StatsOn(void) +{ + _Py_stats = &_Py_stats_struct; +} + +void +_Py_StatsOff(void) { - _py_stats_struct = (PyStats) { 0 }; + _Py_stats = NULL; } void +_Py_StatsClear(void) +{ + memset(&_py_gc_stats, 0, sizeof(_py_gc_stats)); + memset(&_Py_stats_struct, 0, sizeof(_Py_stats_struct)); + _Py_stats_struct.gc_stats = _py_gc_stats; +} + +static int +mem_is_zero(unsigned char *ptr, size_t size) +{ + for (size_t i=0; i < size; i++) { + if (*ptr != 0) { + return 0; + } + ptr++; + } + return 1; +} + +int _Py_PrintSpecializationStats(int to_file) { + PyStats *stats = &_Py_stats_struct; +#define MEM_IS_ZERO(DATA) mem_is_zero((unsigned char*)DATA, sizeof(*(DATA))) + int is_zero = ( + MEM_IS_ZERO(stats->gc_stats) // is a pointer + && MEM_IS_ZERO(&stats->opcode_stats) + && MEM_IS_ZERO(&stats->call_stats) + && MEM_IS_ZERO(&stats->object_stats) + ); +#undef MEM_IS_ZERO + if (is_zero) { + // gh-108753: -X pystats command line was used, but then _stats_off() + // and _stats_clear() have been called: in this case, avoid printing + // useless "all zeros" statistics. + return 0; + } + FILE *out = stderr; if (to_file) { /* Write to a file instead of stderr. */ @@ -228,8 +385,8 @@ _Py_PrintSpecializationStats(int to_file) char hex_name[41]; _PyOS_URandomNonblock(rand, 20); for (int i = 0; i < 20; i++) { - hex_name[2*i] = "0123456789abcdef"[rand[i]&15]; - hex_name[2*i+1] = "0123456789abcdef"[(rand[i]>>4)&15]; + hex_name[2*i] = Py_hexdigits[rand[i]&15]; + hex_name[2*i+1] = Py_hexdigits[(rand[i]>>4)&15]; } hex_name[40] = '\0'; char buf[64]; @@ -243,26 +400,25 @@ _Py_PrintSpecializationStats(int to_file) else { fprintf(out, "Specialization stats:\n"); } - print_stats(out, &_py_stats_struct); + print_stats(out, stats); if (out != stderr) { fclose(out); } + return 1; } -#ifdef Py_STATS - #define SPECIALIZATION_FAIL(opcode, kind) \ do { \ - if (_py_stats) { \ - _py_stats->opcode_stats[opcode].specialization.failure_kinds[kind]++; \ + if (_Py_stats) { \ + _Py_stats->opcode_stats[opcode].specialization.failure_kinds[kind]++; \ } \ } while (0) -#endif -#endif +#endif // Py_STATS + #ifndef SPECIALIZATION_FAIL -#define SPECIALIZATION_FAIL(opcode, kind) ((void)0) +# define SPECIALIZATION_FAIL(opcode, kind) ((void)0) #endif // Initialize warmup counters and insert superinstructions. This cannot fail. @@ -273,31 +429,26 @@ _PyCode_Quicken(PyCodeObject *code) int opcode = 0; _Py_CODEUNIT *instructions = _PyCode_CODE(code); for (int i = 0; i < Py_SIZE(code); i++) { - int previous_opcode = opcode; opcode = _Py_GetBaseOpcode(code, i); assert(opcode < MIN_INSTRUMENTED_OPCODE); int caches = _PyOpcode_Caches[opcode]; if (caches) { - instructions[i + 1].cache = adaptive_counter_warmup(); + // The initial value depends on the opcode + switch (opcode) { + case JUMP_BACKWARD: + instructions[i + 1].counter = initial_jump_backoff_counter(); + break; + case POP_JUMP_IF_FALSE: + case POP_JUMP_IF_TRUE: + case POP_JUMP_IF_NONE: + case POP_JUMP_IF_NOT_NONE: + instructions[i + 1].cache = 0x5555; // Alternating 0, 1 bits + break; + default: + instructions[i + 1].counter = adaptive_counter_warmup(); + break; + } i += caches; - continue; - } - switch (previous_opcode << 8 | opcode) { - case LOAD_CONST << 8 | LOAD_FAST: - instructions[i - 1].op.code = LOAD_CONST__LOAD_FAST; - break; - case LOAD_FAST << 8 | LOAD_CONST: - instructions[i - 1].op.code = LOAD_FAST__LOAD_CONST; - break; - case LOAD_FAST << 8 | LOAD_FAST: - instructions[i - 1].op.code = LOAD_FAST__LOAD_FAST; - break; - case STORE_FAST << 8 | LOAD_FAST: - instructions[i - 1].op.code = STORE_FAST__LOAD_FAST; - break; - case STORE_FAST << 8 | STORE_FAST: - instructions[i - 1].op.code = STORE_FAST__STORE_FAST; - break; } } #endif /* ENABLE_SPECIALIZATION */ @@ -340,12 +491,11 @@ _PyCode_Quicken(PyCodeObject *code) #define SPEC_FAIL_ATTR_NOT_MANAGED_DICT 18 #define SPEC_FAIL_ATTR_NON_STRING_OR_SPLIT 19 #define SPEC_FAIL_ATTR_MODULE_ATTR_NOT_FOUND 20 - #define SPEC_FAIL_ATTR_SHADOWED 21 #define SPEC_FAIL_ATTR_BUILTIN_CLASS_METHOD 22 #define SPEC_FAIL_ATTR_CLASS_METHOD_OBJ 23 #define SPEC_FAIL_ATTR_OBJECT_SLOT 24 -#define SPEC_FAIL_ATTR_HAS_MANAGED_DICT 25 + #define SPEC_FAIL_ATTR_INSTANCE_ATTRIBUTE 26 #define SPEC_FAIL_ATTR_METACLASS_ATTRIBUTE 27 #define SPEC_FAIL_ATTR_PROPERTY_NOT_PY_FUNCTION 28 @@ -361,7 +511,6 @@ _PyCode_Quicken(PyCodeObject *code) #define SPEC_FAIL_SUBSCR_ARRAY_SLICE 10 #define SPEC_FAIL_SUBSCR_LIST_SLICE 11 #define SPEC_FAIL_SUBSCR_TUPLE_SLICE 12 -#define SPEC_FAIL_SUBSCR_STRING_INT 13 #define SPEC_FAIL_SUBSCR_STRING_SLICE 14 #define SPEC_FAIL_SUBSCR_BUFFER_INT 15 #define SPEC_FAIL_SUBSCR_BUFFER_SLICE 16 @@ -410,15 +559,17 @@ _PyCode_Quicken(PyCodeObject *code) #define SPEC_FAIL_CALL_METH_DESCR_VARARGS_KEYWORDS 18 #define SPEC_FAIL_CALL_METH_DESCR_METHOD_FASTCALL_KEYWORDS 19 #define SPEC_FAIL_CALL_BAD_CALL_FLAGS 20 -#define SPEC_FAIL_CALL_PYTHON_CLASS 21 +#define SPEC_FAIL_CALL_INIT_NOT_PYTHON 21 #define SPEC_FAIL_CALL_PEP_523 22 #define SPEC_FAIL_CALL_BOUND_METHOD 23 #define SPEC_FAIL_CALL_STR 24 #define SPEC_FAIL_CALL_CLASS_NO_VECTORCALL 25 #define SPEC_FAIL_CALL_CLASS_MUTABLE 26 -#define SPEC_FAIL_CALL_KWNAMES 27 #define SPEC_FAIL_CALL_METHOD_WRAPPER 28 #define SPEC_FAIL_CALL_OPERATOR_WRAPPER 29 +#define SPEC_FAIL_CALL_INIT_NOT_SIMPLE 30 +#define SPEC_FAIL_CALL_METACLASS 31 +#define SPEC_FAIL_CALL_INIT_NOT_INLINE_VALUES 32 /* COMPARE_OP */ #define SPEC_FAIL_COMPARE_OP_DIFFERENT_TYPES 12 @@ -461,6 +612,24 @@ _PyCode_Quicken(PyCodeObject *code) #define SPEC_FAIL_UNPACK_SEQUENCE_ITERATOR 9 #define SPEC_FAIL_UNPACK_SEQUENCE_SEQUENCE 10 +// TO_BOOL +#define SPEC_FAIL_TO_BOOL_BYTEARRAY 9 +#define SPEC_FAIL_TO_BOOL_BYTES 10 +#define SPEC_FAIL_TO_BOOL_DICT 11 +#define SPEC_FAIL_TO_BOOL_FLOAT 12 +#define SPEC_FAIL_TO_BOOL_MAPPING 13 +#define SPEC_FAIL_TO_BOOL_MEMORY_VIEW 14 +#define SPEC_FAIL_TO_BOOL_NUMBER 15 +#define SPEC_FAIL_TO_BOOL_SEQUENCE 16 +#define SPEC_FAIL_TO_BOOL_SET 17 +#define SPEC_FAIL_TO_BOOL_TUPLE 18 + +// CONTAINS_OP +#define SPEC_FAIL_CONTAINS_OP_STR 9 +#define SPEC_FAIL_CONTAINS_OP_TUPLE 10 +#define SPEC_FAIL_CONTAINS_OP_LIST 11 +#define SPEC_FAIL_CONTAINS_OP_USER_CLASS 12 + static int function_kind(PyCodeObject *code); static bool function_check_args(PyObject *o, int expected_argcount, int opcode); static uint32_t function_get_version(PyObject *o, int opcode); @@ -623,7 +792,7 @@ analyze_descriptor(PyTypeObject *type, PyObject *name, PyObject **descr, int sto if (desc_cls == &PyMemberDescr_Type) { PyMemberDescrObject *member = (PyMemberDescrObject *)descriptor; struct PyMemberDef *dmem = member->d_member; - if (dmem->type == T_OBJECT_EX) { + if (dmem->type == Py_T_OBJECT_EX || dmem->type == _Py_T_OBJECT) { return OBJECT_SLOT; } return OTHER_SLOT; @@ -672,9 +841,10 @@ specialize_dict_access( return 0; } _PyAttrCache *cache = (_PyAttrCache *)(instr + 1); - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); - if (_PyDictOrValues_IsValues(dorv)) { - // Virtual dictionary + if (type->tp_flags & Py_TPFLAGS_INLINE_VALUES && + _PyObject_InlineValues(owner)->valid && + !(base_op == STORE_ATTR && _PyObject_GetManagedDict(owner) != NULL)) + { PyDictKeysObject *keys = ((PyHeapTypeObject *)type)->ht_cached_keys; assert(PyUnicode_CheckExact(name)); Py_ssize_t index = _PyDictKeys_StringLookup(keys, name); @@ -691,12 +861,16 @@ specialize_dict_access( instr->op.code = values_op; } else { - PyDictObject *dict = (PyDictObject *)_PyDictOrValues_GetDict(dorv); + PyDictObject *dict = _PyObject_GetManagedDict(owner); if (dict == NULL || !PyDict_CheckExact(dict)) { SPECIALIZATION_FAIL(base_op, SPEC_FAIL_NO_DICT); return 0; } // We found an instance with a __dict__. + if (dict->ma_values) { + SPECIALIZATION_FAIL(base_op, SPEC_FAIL_ATTR_NON_STRING_OR_SPLIT); + return 0; + } Py_ssize_t index = _PyDict_LookupIndex(dict, name); if (index != (uint16_t)index) { @@ -713,8 +887,8 @@ specialize_dict_access( return 1; } -static int specialize_attr_loadmethod(PyObject* owner, _Py_CODEUNIT* instr, PyObject* name, - PyObject* descr, DescriptorClassification kind); +static int specialize_attr_loadclassattr(PyObject* owner, _Py_CODEUNIT* instr, PyObject* name, + PyObject* descr, DescriptorClassification kind, bool is_method); static int specialize_class_load_attr(PyObject* owner, _Py_CODEUNIT* instr, PyObject* name); void @@ -758,7 +932,7 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) { int oparg = instr->op.arg; if (oparg & 1) { - if (specialize_attr_loadmethod(owner, instr, name, descr, kind)) { + if (specialize_attr_loadclassattr(owner, instr, name, descr, kind, true)) { goto success; } } @@ -783,6 +957,10 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) if (!function_check_args(fget, 1, LOAD_ATTR)) { goto fail; } + if (instr->op.arg & 1) { + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_METHOD); + goto fail; + } uint32_t version = function_get_version(fget, LOAD_ATTR); if (version == 0) { goto fail; @@ -808,7 +986,7 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_EXPECTED_ERROR); goto fail; } - if (dmem->flags & PY_AUDIT_READ) { + if (dmem->flags & Py_AUDIT_READ) { SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_AUDITED_SLOT); goto fail; } @@ -816,7 +994,7 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_OUT_OF_RANGE); goto fail; } - assert(dmem->type == T_OBJECT_EX); + assert(dmem->type == Py_T_OBJECT_EX || dmem->type == _Py_T_OBJECT); assert(offset > 0); cache->index = (uint16_t)offset; write_u32(cache->version, type->tp_version_tag); @@ -849,6 +1027,10 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) if (!function_check_args(descr, 2, LOAD_ATTR)) { goto fail; } + if (instr->op.arg & 1) { + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_METHOD); + goto fail; + } uint32_t version = function_get_version(descr, LOAD_ATTR); if (version == 0) { goto fail; @@ -877,10 +1059,14 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) SPEC_FAIL_ATTR_NOT_MANAGED_DICT); goto fail; case NON_DESCRIPTOR: - SPECIALIZATION_FAIL(LOAD_ATTR, - (type->tp_flags & Py_TPFLAGS_MANAGED_DICT) ? - SPEC_FAIL_ATTR_CLASS_ATTR_SIMPLE : - SPEC_FAIL_ATTR_NOT_MANAGED_DICT); + if ((instr->op.arg & 1) == 0) { + if (specialize_attr_loadclassattr(owner, instr, name, descr, kind, false)) { + goto success; + } + } + else { + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_CLASS_ATTR_SIMPLE); + } goto fail; case ABSENT: if (specialize_dict_access(owner, instr, type, kind, name, LOAD_ATTR, @@ -943,7 +1129,7 @@ _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) SPECIALIZATION_FAIL(STORE_ATTR, SPEC_FAIL_EXPECTED_ERROR); goto fail; } - if (dmem->flags & READONLY) { + if (dmem->flags & Py_READONLY) { SPECIALIZATION_FAIL(STORE_ATTR, SPEC_FAIL_ATTR_READ_ONLY); goto fail; } @@ -951,7 +1137,7 @@ _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name) SPECIALIZATION_FAIL(STORE_ATTR, SPEC_FAIL_OUT_OF_RANGE); goto fail; } - assert(dmem->type == T_OBJECT_EX); + assert(dmem->type == Py_T_OBJECT_EX || dmem->type == _Py_T_OBJECT); assert(offset > 0); cache->index = (uint16_t)offset; write_u32(cache->version, type->tp_version_tag); @@ -1036,7 +1222,7 @@ load_attr_fail_kind(DescriptorClassification kind) } Py_UNREACHABLE(); } -#endif +#endif // Py_STATS static int specialize_class_load_attr(PyObject *owner, _Py_CODEUNIT *instr, @@ -1075,20 +1261,16 @@ specialize_class_load_attr(PyObject *owner, _Py_CODEUNIT *instr, // can cause a significant drop in cache hits. A possible test is // python.exe -m test_typing test_re test_dis test_zlib. static int -specialize_attr_loadmethod(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, -PyObject *descr, DescriptorClassification kind) +specialize_attr_loadclassattr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, +PyObject *descr, DescriptorClassification kind, bool is_method) { _PyLoadMethodCache *cache = (_PyLoadMethodCache *)(instr + 1); PyTypeObject *owner_cls = Py_TYPE(owner); - assert(kind == METHOD && descr != NULL); - if (owner_cls->tp_flags & Py_TPFLAGS_MANAGED_DICT) { - PyDictOrValues dorv = *_PyObject_DictOrValuesPointer(owner); + assert(descr != NULL); + assert((is_method && kind == METHOD) || (!is_method && kind == NON_DESCRIPTOR)); + if (owner_cls->tp_flags & Py_TPFLAGS_INLINE_VALUES) { PyDictKeysObject *keys = ((PyHeapTypeObject *)owner_cls)->ht_cached_keys; - if (!_PyDictOrValues_IsValues(dorv)) { - SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_HAS_MANAGED_DICT); - return 0; - } Py_ssize_t index = _PyDictKeys_StringLookup(keys, name); if (index != DKIX_EMPTY) { SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_SHADOWED); @@ -1101,27 +1283,41 @@ PyObject *descr, DescriptorClassification kind) return 0; } write_u32(cache->keys_version, keys_version); - instr->op.code = LOAD_ATTR_METHOD_WITH_VALUES; + instr->op.code = is_method ? LOAD_ATTR_METHOD_WITH_VALUES : LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES; } else { - Py_ssize_t dictoffset = owner_cls->tp_dictoffset; - if (dictoffset < 0 || dictoffset > INT16_MAX) { - SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_OUT_OF_RANGE); - return 0; + Py_ssize_t dictoffset; + if (owner_cls->tp_flags & Py_TPFLAGS_MANAGED_DICT) { + dictoffset = MANAGED_DICT_OFFSET; + } + else { + dictoffset = owner_cls->tp_dictoffset; + if (dictoffset < 0 || dictoffset > INT16_MAX + MANAGED_DICT_OFFSET) { + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_OUT_OF_RANGE); + return 0; + } } if (dictoffset == 0) { - instr->op.code = LOAD_ATTR_METHOD_NO_DICT; + instr->op.code = is_method ? LOAD_ATTR_METHOD_NO_DICT : LOAD_ATTR_NONDESCRIPTOR_NO_DICT; } - else { + else if (is_method) { PyObject *dict = *(PyObject **) ((char *)owner + dictoffset); if (dict) { SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_NOT_MANAGED_DICT); return 0; } - assert(owner_cls->tp_dictoffset > 0); - assert(owner_cls->tp_dictoffset <= INT16_MAX); + /* Cache entries must be unsigned values, so we offset the + * dictoffset by MANAGED_DICT_OFFSET. + * We do the reverse offset in LOAD_ATTR_METHOD_LAZY_DICT */ + dictoffset -= MANAGED_DICT_OFFSET; + assert(((uint16_t)dictoffset) == dictoffset); + cache->dict_offset = (uint16_t)dictoffset; instr->op.code = LOAD_ATTR_METHOD_LAZY_DICT; } + else { + SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_CLASS_ATTR_SIMPLE); + return 0; + } } /* `descr` is borrowed. This is safe for methods (even inherited ones from * super classes!) as long as tp_version_tag is validated for two main reasons: @@ -1246,16 +1442,7 @@ success: static int binary_subscr_fail_kind(PyTypeObject *container_type, PyObject *sub) { - if (container_type == &PyUnicode_Type) { - if (PyLong_CheckExact(sub)) { - return SPEC_FAIL_SUBSCR_STRING_INT; - } - if (PySlice_Check(sub)) { - return SPEC_FAIL_SUBSCR_STRING_SLICE; - } - return SPEC_FAIL_OTHER; - } - else if (strcmp(container_type->tp_name, "array.array") == 0) { + if (strcmp(container_type->tp_name, "array.array") == 0) { if (PyLong_CheckExact(sub)) { return SPEC_FAIL_SUBSCR_ARRAY_INT; } @@ -1280,7 +1467,7 @@ binary_subscr_fail_kind(PyTypeObject *container_type, PyObject *sub) } return SPEC_FAIL_OTHER; } -#endif +#endif // Py_STATS static int function_kind(PyCodeObject *code) { @@ -1374,6 +1561,19 @@ _Py_Specialize_BinarySubscr( PySlice_Check(sub) ? SPEC_FAIL_SUBSCR_TUPLE_SLICE : SPEC_FAIL_OTHER); goto fail; } + if (container_type == &PyUnicode_Type) { + if (PyLong_CheckExact(sub)) { + if (_PyLong_IsNonNegativeCompact((PyLongObject *)sub)) { + instr->op.code = BINARY_SUBSCR_STR_INT; + goto success; + } + SPECIALIZATION_FAIL(BINARY_SUBSCR, SPEC_FAIL_OUT_OF_RANGE); + goto fail; + } + SPECIALIZATION_FAIL(BINARY_SUBSCR, + PySlice_Check(sub) ? SPEC_FAIL_SUBSCR_STRING_SLICE : SPEC_FAIL_OTHER); + goto fail; + } if (container_type == &PyDict_Type) { instr->op.code = BINARY_SUBSCR_DICT; goto success; @@ -1518,7 +1718,7 @@ _Py_Specialize_StoreSubscr(PyObject *container, PyObject *sub, _Py_CODEUNIT *ins } goto fail; } -#endif +#endif // Py_STATS SPECIALIZATION_FAIL(STORE_SUBSCR, SPEC_FAIL_OTHER); fail: STAT_INC(STORE_SUBSCR, failure); @@ -1532,28 +1732,58 @@ success: cache->counter = adaptive_counter_cooldown(); } +/* Returns a borrowed reference. + * The reference is only valid if guarded by a type version check. + */ +static PyFunctionObject * +get_init_for_simple_managed_python_class(PyTypeObject *tp) +{ + assert(tp->tp_new == PyBaseObject_Type.tp_new); + if (tp->tp_alloc != PyType_GenericAlloc) { + SPECIALIZATION_FAIL(CALL, SPEC_FAIL_OVERRIDDEN); + return NULL; + } + if ((tp->tp_flags & Py_TPFLAGS_INLINE_VALUES) == 0) { + SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CALL_INIT_NOT_INLINE_VALUES); + return NULL; + } + if (!(tp->tp_flags & Py_TPFLAGS_HEAPTYPE)) { + /* Is this possible? */ + SPECIALIZATION_FAIL(CALL, SPEC_FAIL_EXPECTED_ERROR); + return NULL; + } + PyObject *init = _PyType_Lookup(tp, &_Py_ID(__init__)); + if (init == NULL || !PyFunction_Check(init)) { + SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CALL_INIT_NOT_PYTHON); + return NULL; + } + int kind = function_kind((PyCodeObject *)PyFunction_GET_CODE(init)); + if (kind != SIMPLE_FUNCTION) { + SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CALL_INIT_NOT_SIMPLE); + return NULL; + } + ((PyHeapTypeObject *)tp)->_spec_cache.init = init; + return (PyFunctionObject *)init; +} + static int -specialize_class_call(PyObject *callable, _Py_CODEUNIT *instr, int nargs, - PyObject *kwnames) +specialize_class_call(PyObject *callable, _Py_CODEUNIT *instr, int nargs) { + assert(PyType_Check(callable)); PyTypeObject *tp = _PyType_CAST(callable); - if (tp->tp_new == PyBaseObject_Type.tp_new) { - SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CALL_PYTHON_CLASS); - return -1; - } if (tp->tp_flags & Py_TPFLAGS_IMMUTABLETYPE) { int oparg = instr->op.arg; - if (nargs == 1 && kwnames == NULL && oparg == 1) { + if (nargs == 1 && oparg == 1) { if (tp == &PyUnicode_Type) { - instr->op.code = CALL_NO_KW_STR_1; + instr->op.code = CALL_STR_1; return 0; } else if (tp == &PyType_Type) { - instr->op.code = CALL_NO_KW_TYPE_1; + instr->op.code = CALL_TYPE_1; return 0; } else if (tp == &PyTuple_Type) { - instr->op.code = CALL_NO_KW_TUPLE_1; + instr->op.code = CALL_TUPLE_1; return 0; } } @@ -1565,66 +1795,34 @@ specialize_class_call(PyObject *callable, _Py_CODEUNIT *instr, int nargs, SPEC_FAIL_CALL_STR : SPEC_FAIL_CALL_CLASS_NO_VECTORCALL); return -1; } - SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CALL_CLASS_MUTABLE); - return -1; -} - -#ifdef Py_STATS -static int -builtin_call_fail_kind(int ml_flags) -{ - switch (ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | - METH_KEYWORDS | METH_METHOD)) { - case METH_VARARGS: - return SPEC_FAIL_CALL_CFUNC_VARARGS; - case METH_VARARGS | METH_KEYWORDS: - return SPEC_FAIL_CALL_CFUNC_VARARGS_KEYWORDS; - case METH_NOARGS: - return SPEC_FAIL_CALL_CFUNC_NOARGS; - case METH_METHOD | METH_FASTCALL | METH_KEYWORDS: - return SPEC_FAIL_CALL_CFUNC_METHOD_FASTCALL_KEYWORDS; - /* These cases should be optimized, but return "other" just in case */ - case METH_O: - case METH_FASTCALL: - case METH_FASTCALL | METH_KEYWORDS: - return SPEC_FAIL_OTHER; - default: - return SPEC_FAIL_CALL_BAD_CALL_FLAGS; + if (Py_TYPE(tp) != &PyType_Type) { + goto generic; } -} - -static int -meth_descr_call_fail_kind(int ml_flags) -{ - switch (ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | - METH_KEYWORDS | METH_METHOD)) { - case METH_VARARGS: - return SPEC_FAIL_CALL_METH_DESCR_VARARGS; - case METH_VARARGS | METH_KEYWORDS: - return SPEC_FAIL_CALL_METH_DESCR_VARARGS_KEYWORDS; - case METH_METHOD | METH_FASTCALL | METH_KEYWORDS: - return SPEC_FAIL_CALL_METH_DESCR_METHOD_FASTCALL_KEYWORDS; - /* These cases should be optimized, but return "other" just in case */ - case METH_NOARGS: - case METH_O: - case METH_FASTCALL: - case METH_FASTCALL | METH_KEYWORDS: - return SPEC_FAIL_OTHER; - default: - return SPEC_FAIL_CALL_BAD_CALL_FLAGS; + if (tp->tp_new == PyBaseObject_Type.tp_new) { + PyFunctionObject *init = get_init_for_simple_managed_python_class(tp); + if (type_get_version(tp, CALL) == 0) { + return -1; + } + if (init != NULL) { + if (((PyCodeObject *)init->func_code)->co_argcount != nargs+1) { + SPECIALIZATION_FAIL(CALL, SPEC_FAIL_WRONG_NUMBER_ARGUMENTS); + return -1; + } + _PyCallCache *cache = (_PyCallCache *)(instr + 1); + write_u32(cache->func_version, tp->tp_version_tag); + _Py_SET_OPCODE(*instr, CALL_ALLOC_AND_ENTER_INIT); + return 0; + } } +generic: + instr->op.code = CALL_NON_PY_GENERAL; + return 0; } -#endif static int specialize_method_descriptor(PyMethodDescrObject *descr, _Py_CODEUNIT *instr, - int nargs, PyObject *kwnames) + int nargs) { - if (kwnames) { - SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CALL_KWNAMES); - return -1; - } - switch (descr->d_method->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) { @@ -1633,7 +1831,7 @@ specialize_method_descriptor(PyMethodDescrObject *descr, _Py_CODEUNIT *instr, SPECIALIZATION_FAIL(CALL, SPEC_FAIL_WRONG_NUMBER_ARGUMENTS); return -1; } - instr->op.code = CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS; + instr->op.code = CALL_METHOD_DESCRIPTOR_NOARGS; return 0; } case METH_O: { @@ -1647,14 +1845,14 @@ specialize_method_descriptor(PyMethodDescrObject *descr, _Py_CODEUNIT *instr, bool pop = (next.op.code == POP_TOP); int oparg = instr->op.arg; if ((PyObject *)descr == list_append && oparg == 1 && pop) { - instr->op.code = CALL_NO_KW_LIST_APPEND; + instr->op.code = CALL_LIST_APPEND; return 0; } - instr->op.code = CALL_NO_KW_METHOD_DESCRIPTOR_O; + instr->op.code = CALL_METHOD_DESCRIPTOR_O; return 0; } case METH_FASTCALL: { - instr->op.code = CALL_NO_KW_METHOD_DESCRIPTOR_FAST; + instr->op.code = CALL_METHOD_DESCRIPTOR_FAST; return 0; } case METH_FASTCALL | METH_KEYWORDS: { @@ -1662,13 +1860,13 @@ specialize_method_descriptor(PyMethodDescrObject *descr, _Py_CODEUNIT *instr, return 0; } } - SPECIALIZATION_FAIL(CALL, meth_descr_call_fail_kind(descr->d_method->ml_flags)); - return -1; + instr->op.code = CALL_NON_PY_GENERAL; + return 0; } static int specialize_py_call(PyFunctionObject *func, _Py_CODEUNIT *instr, int nargs, - PyObject *kwnames, bool bound_method) + bool bound_method) { _PyCallCache *cache = (_PyCallCache *)(instr + 1); PyCodeObject *code = (PyCodeObject *)func->func_code; @@ -1678,59 +1876,40 @@ specialize_py_call(PyFunctionObject *func, _Py_CODEUNIT *instr, int nargs, SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CALL_PEP_523); return -1; } - if (kwnames) { - SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CALL_KWNAMES); + int argcount = -1; + if (kind == SPEC_FAIL_CODE_NOT_OPTIMIZED) { + SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CODE_NOT_OPTIMIZED); return -1; } - if (kind != SIMPLE_FUNCTION) { - SPECIALIZATION_FAIL(CALL, kind); - return -1; + if (kind == SIMPLE_FUNCTION) { + argcount = code->co_argcount; } - int argcount = code->co_argcount; - int defcount = func->func_defaults == NULL ? 0 : (int)PyTuple_GET_SIZE(func->func_defaults); - int min_args = argcount-defcount; - // GH-105840: min_args is negative when somebody sets too many __defaults__! - if (min_args < 0 || nargs > argcount || nargs < min_args) { - SPECIALIZATION_FAIL(CALL, SPEC_FAIL_WRONG_NUMBER_ARGUMENTS); - return -1; - } - assert(nargs <= argcount && nargs >= min_args); - assert(min_args >= 0 && defcount >= 0); - assert(defcount == 0 || func->func_defaults != NULL); int version = _PyFunction_GetVersionForCurrentState(func); if (version == 0) { SPECIALIZATION_FAIL(CALL, SPEC_FAIL_OUT_OF_VERSIONS); return -1; } write_u32(cache->func_version, version); - if (argcount == nargs) { + if (argcount == nargs + bound_method) { instr->op.code = bound_method ? CALL_BOUND_METHOD_EXACT_ARGS : CALL_PY_EXACT_ARGS; } - else if (bound_method) { - SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CALL_BOUND_METHOD); - return -1; - } else { - instr->op.code = CALL_PY_WITH_DEFAULTS; + instr->op.code = bound_method ? CALL_BOUND_METHOD_GENERAL : CALL_PY_GENERAL; } return 0; } static int -specialize_c_call(PyObject *callable, _Py_CODEUNIT *instr, int nargs, - PyObject *kwnames) +specialize_c_call(PyObject *callable, _Py_CODEUNIT *instr, int nargs) { if (PyCFunction_GET_FUNCTION(callable) == NULL) { + SPECIALIZATION_FAIL(CALL, SPEC_FAIL_OTHER); return 1; } switch (PyCFunction_GET_FLAGS(callable) & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) { case METH_O: { - if (kwnames) { - SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CALL_KWNAMES); - return -1; - } if (nargs != 1) { SPECIALIZATION_FAIL(CALL, SPEC_FAIL_WRONG_NUMBER_ARGUMENTS); return 1; @@ -1738,26 +1917,22 @@ specialize_c_call(PyObject *callable, _Py_CODEUNIT *instr, int nargs, /* len(o) */ PyInterpreterState *interp = _PyInterpreterState_GET(); if (callable == interp->callable_cache.len) { - instr->op.code = CALL_NO_KW_LEN; + instr->op.code = CALL_LEN; return 0; } - instr->op.code = CALL_NO_KW_BUILTIN_O; + instr->op.code = CALL_BUILTIN_O; return 0; } case METH_FASTCALL: { - if (kwnames) { - SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CALL_KWNAMES); - return -1; - } if (nargs == 2) { /* isinstance(o1, o2) */ PyInterpreterState *interp = _PyInterpreterState_GET(); if (callable == interp->callable_cache.isinstance) { - instr->op.code = CALL_NO_KW_ISINSTANCE; + instr->op.code = CALL_ISINSTANCE; return 0; } } - instr->op.code = CALL_NO_KW_BUILTIN_FAST; + instr->op.code = CALL_BUILTIN_FAST; return 0; } case METH_FASTCALL | METH_KEYWORDS: { @@ -1765,45 +1940,13 @@ specialize_c_call(PyObject *callable, _Py_CODEUNIT *instr, int nargs, return 0; } default: - SPECIALIZATION_FAIL(CALL, - builtin_call_fail_kind(PyCFunction_GET_FLAGS(callable))); - return 1; - } -} - -#ifdef Py_STATS -static int -call_fail_kind(PyObject *callable) -{ - assert(!PyCFunction_CheckExact(callable)); - assert(!PyFunction_Check(callable)); - assert(!PyType_Check(callable)); - assert(!Py_IS_TYPE(callable, &PyMethodDescr_Type)); - assert(!PyMethod_Check(callable)); - if (PyInstanceMethod_Check(callable)) { - return SPEC_FAIL_CALL_INSTANCE_METHOD; - } - // builtin method - else if (PyCMethod_Check(callable)) { - return SPEC_FAIL_CALL_CMETHOD; - } - else if (Py_TYPE(callable) == &PyWrapperDescr_Type) { - return SPEC_FAIL_CALL_OPERATOR_WRAPPER; - } - else if (Py_TYPE(callable) == &_PyMethodWrapper_Type) { - return SPEC_FAIL_CALL_METHOD_WRAPPER; + instr->op.code = CALL_NON_PY_GENERAL; + return 0; } - return SPEC_FAIL_OTHER; } -#endif - -/* TODO: - - Specialize calling classes. -*/ void -_Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, int nargs, - PyObject *kwnames) +_Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, int nargs) { assert(ENABLE_SPECIALIZATION); assert(_PyOpcode_Caches[CALL] == INLINE_CACHE_ENTRIES_CALL); @@ -1811,32 +1954,30 @@ _Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, int nargs, _PyCallCache *cache = (_PyCallCache *)(instr + 1); int fail; if (PyCFunction_CheckExact(callable)) { - fail = specialize_c_call(callable, instr, nargs, kwnames); + fail = specialize_c_call(callable, instr, nargs); } else if (PyFunction_Check(callable)) { - fail = specialize_py_call((PyFunctionObject *)callable, instr, nargs, - kwnames, false); + fail = specialize_py_call((PyFunctionObject *)callable, instr, nargs, false); } else if (PyType_Check(callable)) { - fail = specialize_class_call(callable, instr, nargs, kwnames); + fail = specialize_class_call(callable, instr, nargs); } else if (Py_IS_TYPE(callable, &PyMethodDescr_Type)) { - fail = specialize_method_descriptor((PyMethodDescrObject *)callable, - instr, nargs, kwnames); + fail = specialize_method_descriptor((PyMethodDescrObject *)callable, instr, nargs); } else if (PyMethod_Check(callable)) { PyObject *func = ((PyMethodObject *)callable)->im_func; if (PyFunction_Check(func)) { - fail = specialize_py_call((PyFunctionObject *)func, - instr, nargs+1, kwnames, true); - } else { + fail = specialize_py_call((PyFunctionObject *)func, instr, nargs, true); + } + else { SPECIALIZATION_FAIL(CALL, SPEC_FAIL_CALL_BOUND_METHOD); fail = -1; } } else { - SPECIALIZATION_FAIL(CALL, call_fail_kind(callable)); - fail = -1; + instr->op.code = CALL_NON_PY_GENERAL; + fail = 0; } if (fail) { STAT_INC(CALL, failure); @@ -1919,7 +2060,7 @@ binary_op_fail_kind(int oparg, PyObject *lhs, PyObject *rhs) } Py_UNREACHABLE(); } -#endif +#endif // Py_STATS void _Py_Specialize_BinaryOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, @@ -1936,8 +2077,7 @@ _Py_Specialize_BinaryOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, } if (PyUnicode_CheckExact(lhs)) { _Py_CODEUNIT next = instr[INLINE_CACHE_ENTRIES_BINARY_OP + 1]; - bool to_store = (next.op.code == STORE_FAST || - next.op.code == STORE_FAST__LOAD_FAST); + bool to_store = (next.op.code == STORE_FAST); if (to_store && locals[next.op.arg] == lhs) { instr->op.code = BINARY_OP_INPLACE_ADD_UNICODE; goto success; @@ -2027,7 +2167,7 @@ compare_op_fail_kind(PyObject *lhs, PyObject *rhs) } return SPEC_FAIL_OTHER; } -#endif +#endif // Py_STATS void _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, @@ -2035,6 +2175,8 @@ _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, { assert(ENABLE_SPECIALIZATION); assert(_PyOpcode_Caches[COMPARE_OP] == INLINE_CACHE_ENTRIES_COMPARE_OP); + // All of these specializations compute boolean values, so they're all valid + // regardless of the fifth-lowest oparg bit. _PyCompareOpCache *cache = (_PyCompareOpCache *)(instr + 1); if (Py_TYPE(lhs) != Py_TYPE(rhs)) { SPECIALIZATION_FAIL(COMPARE_OP, compare_op_fail_kind(lhs, rhs)); @@ -2055,7 +2197,7 @@ _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, } } if (PyUnicode_CheckExact(lhs)) { - int cmp = oparg >> 4; + int cmp = oparg >> 5; if (cmp != Py_EQ && cmp != Py_NE) { SPECIALIZATION_FAIL(COMPARE_OP, SPEC_FAIL_COMPARE_OP_STRING); goto failure; @@ -2088,7 +2230,7 @@ unpack_sequence_fail_kind(PyObject *seq) } return SPEC_FAIL_OTHER; } -#endif +#endif // Py_STATS void _Py_Specialize_UnpackSequence(PyObject *seq, _Py_CODEUNIT *instr, int oparg) @@ -2129,7 +2271,6 @@ success: } #ifdef Py_STATS - int _PySpecialization_ClassifyIterator(PyObject *iter) { @@ -2200,8 +2341,7 @@ int } return SPEC_FAIL_OTHER; } - -#endif +#endif // Py_STATS void _Py_Specialize_ForIter(PyObject *iter, _Py_CODEUNIT *instr, int oparg) @@ -2271,3 +2411,180 @@ success: STAT_INC(SEND, success); cache->counter = adaptive_counter_cooldown(); } + +void +_Py_Specialize_ToBool(PyObject *value, _Py_CODEUNIT *instr) +{ + assert(ENABLE_SPECIALIZATION); + assert(_PyOpcode_Caches[TO_BOOL] == INLINE_CACHE_ENTRIES_TO_BOOL); + _PyToBoolCache *cache = (_PyToBoolCache *)(instr + 1); + if (PyBool_Check(value)) { + instr->op.code = TO_BOOL_BOOL; + goto success; + } + if (PyLong_CheckExact(value)) { + instr->op.code = TO_BOOL_INT; + goto success; + } + if (PyList_CheckExact(value)) { + instr->op.code = TO_BOOL_LIST; + goto success; + } + if (Py_IsNone(value)) { + instr->op.code = TO_BOOL_NONE; + goto success; + } + if (PyUnicode_CheckExact(value)) { + instr->op.code = TO_BOOL_STR; + goto success; + } + if (PyType_HasFeature(Py_TYPE(value), Py_TPFLAGS_HEAPTYPE)) { + PyNumberMethods *nb = Py_TYPE(value)->tp_as_number; + if (nb && nb->nb_bool) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_TO_BOOL_NUMBER); + goto failure; + } + PyMappingMethods *mp = Py_TYPE(value)->tp_as_mapping; + if (mp && mp->mp_length) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_TO_BOOL_MAPPING); + goto failure; + } + PySequenceMethods *sq = Py_TYPE(value)->tp_as_sequence; + if (sq && sq->sq_length) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_TO_BOOL_SEQUENCE); + goto failure; + } + if (!PyUnstable_Type_AssignVersionTag(Py_TYPE(value))) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_OUT_OF_VERSIONS); + goto failure; + } + uint32_t version = type_get_version(Py_TYPE(value), TO_BOOL); + if (version == 0) { + goto failure; + } + instr->op.code = TO_BOOL_ALWAYS_TRUE; + write_u32(cache->version, version); + assert(version); + goto success; + } +#ifdef Py_STATS + if (PyByteArray_CheckExact(value)) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_TO_BOOL_BYTEARRAY); + goto failure; + } + if (PyBytes_CheckExact(value)) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_TO_BOOL_BYTES); + goto failure; + } + if (PyDict_CheckExact(value)) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_TO_BOOL_DICT); + goto failure; + } + if (PyFloat_CheckExact(value)) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_TO_BOOL_FLOAT); + goto failure; + } + if (PyMemoryView_Check(value)) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_TO_BOOL_MEMORY_VIEW); + goto failure; + } + if (PyAnySet_CheckExact(value)) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_TO_BOOL_SET); + goto failure; + } + if (PyTuple_CheckExact(value)) { + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_TO_BOOL_TUPLE); + goto failure; + } + SPECIALIZATION_FAIL(TO_BOOL, SPEC_FAIL_OTHER); +#endif // Py_STATS +failure: + STAT_INC(TO_BOOL, failure); + instr->op.code = TO_BOOL; + cache->counter = adaptive_counter_backoff(cache->counter); + return; +success: + STAT_INC(TO_BOOL, success); + cache->counter = adaptive_counter_cooldown(); +} + +#ifdef Py_STATS +static int containsop_fail_kind(PyObject *value) { + if (PyUnicode_CheckExact(value)) { + return SPEC_FAIL_CONTAINS_OP_STR; + } + if (PyList_CheckExact(value)) { + return SPEC_FAIL_CONTAINS_OP_LIST; + } + if (PyTuple_CheckExact(value)) { + return SPEC_FAIL_CONTAINS_OP_TUPLE; + } + if (PyType_Check(value)) { + return SPEC_FAIL_CONTAINS_OP_USER_CLASS; + } + return SPEC_FAIL_OTHER; +} +#endif // Py_STATS + +void +_Py_Specialize_ContainsOp(PyObject *value, _Py_CODEUNIT *instr) +{ + assert(ENABLE_SPECIALIZATION); + assert(_PyOpcode_Caches[CONTAINS_OP] == INLINE_CACHE_ENTRIES_COMPARE_OP); + _PyContainsOpCache *cache = (_PyContainsOpCache *)(instr + 1); + if (PyDict_CheckExact(value)) { + instr->op.code = CONTAINS_OP_DICT; + goto success; + } + if (PySet_CheckExact(value) || PyFrozenSet_CheckExact(value)) { + instr->op.code = CONTAINS_OP_SET; + goto success; + } + + SPECIALIZATION_FAIL(CONTAINS_OP, containsop_fail_kind(value)); + STAT_INC(CONTAINS_OP, failure); + instr->op.code = CONTAINS_OP; + cache->counter = adaptive_counter_backoff(cache->counter); + return; +success: + STAT_INC(CONTAINS_OP, success); + cache->counter = adaptive_counter_cooldown(); +} + +/* Code init cleanup. + * CALL_ALLOC_AND_ENTER_INIT will set up + * the frame to execute the EXIT_INIT_CHECK + * instruction. + * Ends with a RESUME so that it is not traced. + * This is used as a plain code object, not a function, + * so must not access globals or builtins. + */ + +#define NO_LOC_4 (128 | (PY_CODE_LOCATION_INFO_NONE << 3) | 3) + +static const PyBytesObject no_location = { + PyVarObject_HEAD_INIT(&PyBytes_Type, 1) + .ob_sval = { NO_LOC_4 } +}; + +const struct _PyCode_DEF(8) _Py_InitCleanup = { + _PyVarObject_HEAD_INIT(&PyCode_Type, 3), + .co_consts = (PyObject *)&_Py_SINGLETON(tuple_empty), + .co_names = (PyObject *)&_Py_SINGLETON(tuple_empty), + .co_exceptiontable = (PyObject *)&_Py_SINGLETON(bytes_empty), + .co_flags = CO_OPTIMIZED | CO_NO_MONITORING_EVENTS, + .co_localsplusnames = (PyObject *)&_Py_SINGLETON(tuple_empty), + .co_localspluskinds = (PyObject *)&_Py_SINGLETON(bytes_empty), + .co_filename = &_Py_ID(__init__), + .co_name = &_Py_ID(__init__), + .co_qualname = &_Py_ID(__init__), + .co_linetable = (PyObject *)&no_location, + ._co_firsttraceable = 4, + .co_stacksize = 2, + .co_framesize = 2 + FRAME_SPECIALS_SIZE, + .co_code_adaptive = { + EXIT_INIT_CHECK, 0, + RETURN_VALUE, 0, + RESUME, RESUME_AT_FUNC_START, + } +}; diff --git a/contrib/tools/python3/Python/stdlib_module_names.h b/contrib/tools/python3/Python/stdlib_module_names.h index 1b1a1bdee78..dfe0fa2acd8 100644 --- a/contrib/tools/python3/Python/stdlib_module_names.h +++ b/contrib/tools/python3/Python/stdlib_module_names.h @@ -5,6 +5,8 @@ static const char* _Py_stdlib_module_names[] = { "__future__", "_abc", "_aix_support", +"_android_support", +"_apple_support", "_ast", "_asyncio", "_bisect", @@ -19,10 +21,10 @@ static const char* _Py_stdlib_module_names[] = { "_codecs_tw", "_collections", "_collections_abc", +"_colorize", "_compat_pickle", "_compression", "_contextvars", -"_crypt", "_csv", "_ctypes", "_curses", @@ -38,17 +40,21 @@ static const char* _Py_stdlib_module_names[] = { "_hashlib", "_heapq", "_imp", +"_interpchannels", +"_interpqueues", +"_interpreters", "_io", +"_ios_support", "_json", "_locale", "_lsprof", "_lzma", "_markupbase", "_md5", -"_msi", "_multibytecodec", "_multiprocessing", "_opcode", +"_opcode_metadata", "_operator", "_osx_support", "_overlapped", @@ -60,6 +66,7 @@ static const char* _Py_stdlib_module_names[] = { "_pydecimal", "_pyio", "_pylong", +"_pyrepl", "_queue", "_random", "_scproxy", @@ -77,7 +84,9 @@ static const char* _Py_stdlib_module_names[] = { "_string", "_strptime", "_struct", +"_suggestions", "_symtable", +"_sysconfig", "_thread", "_threading_local", "_tkinter", @@ -92,14 +101,12 @@ static const char* _Py_stdlib_module_names[] = { "_wmi", "_zoneinfo", "abc", -"aifc", "antigravity", "argparse", "array", "ast", "asyncio", "atexit", -"audioop", "base64", "bdb", "binascii", @@ -108,9 +115,6 @@ static const char* _Py_stdlib_module_names[] = { "bz2", "cProfile", "calendar", -"cgi", -"cgitb", -"chunk", "cmath", "cmd", "code", @@ -125,7 +129,6 @@ static const char* _Py_stdlib_module_names[] = { "contextvars", "copy", "copyreg", -"crypt", "csv", "ctypes", "curses", @@ -165,7 +168,6 @@ static const char* _Py_stdlib_module_names[] = { "http", "idlelib", "imaplib", -"imghdr", "importlib", "inspect", "io", @@ -173,24 +175,19 @@ static const char* _Py_stdlib_module_names[] = { "itertools", "json", "keyword", -"lib2to3", "linecache", "locale", "logging", "lzma", "mailbox", -"mailcap", "marshal", "math", "mimetypes", "mmap", "modulefinder", -"msilib", "msvcrt", "multiprocessing", "netrc", -"nis", -"nntplib", "nt", "ntpath", "nturl2path", @@ -199,12 +196,10 @@ static const char* _Py_stdlib_module_names[] = { "operator", "optparse", "os", -"ossaudiodev", "pathlib", "pdb", "pickle", "pickletools", -"pipes", "pkgutil", "platform", "plistlib", @@ -240,10 +235,8 @@ static const char* _Py_stdlib_module_names[] = { "signal", "site", "smtplib", -"sndhdr", "socket", "socketserver", -"spwd", "sqlite3", "sre_compile", "sre_constants", @@ -255,14 +248,12 @@ static const char* _Py_stdlib_module_names[] = { "stringprep", "struct", "subprocess", -"sunau", "symtable", "sys", "sysconfig", "syslog", "tabnanny", "tarfile", -"telnetlib", "tempfile", "termios", "textwrap", @@ -285,7 +276,6 @@ static const char* _Py_stdlib_module_names[] = { "unicodedata", "unittest", "urllib", -"uu", "uuid", "venv", "warnings", @@ -295,7 +285,6 @@ static const char* _Py_stdlib_module_names[] = { "winreg", "winsound", "wsgiref", -"xdrlib", "xml", "xmlrpc", "zipapp", diff --git a/contrib/tools/python3/Python/structmember.c b/contrib/tools/python3/Python/structmember.c index f4de0cb9ead..d5e7ab83093 100644 --- a/contrib/tools/python3/Python/structmember.c +++ b/contrib/tools/python3/Python/structmember.c @@ -2,11 +2,24 @@ /* Map C struct members to Python object attributes */ #include "Python.h" -#include "structmember.h" // PyMemberDef #include "pycore_abstract.h" // _PyNumber_Index() #include "pycore_long.h" // _PyLong_IsNegative() +#include "pycore_object.h" // _Py_TryIncrefCompare(), FT_ATOMIC_*() +#include "pycore_critical_section.h" +static inline PyObject * +member_get_object(const char *addr, const char *obj_addr, PyMemberDef *l) +{ + PyObject *v = FT_ATOMIC_LOAD_PTR(*(PyObject **) addr); + if (v == NULL) { + PyErr_Format(PyExc_AttributeError, + "'%T' object has no attribute '%s'", + (PyObject *)obj_addr, l->name); + } + return v; +} + PyObject * PyMember_GetOne(const char *obj_addr, PyMemberDef *l) { @@ -20,79 +33,84 @@ PyMember_GetOne(const char *obj_addr, PyMemberDef *l) const char* addr = obj_addr + l->offset; switch (l->type) { - case T_BOOL: + case Py_T_BOOL: v = PyBool_FromLong(*(char*)addr); break; - case T_BYTE: + case Py_T_BYTE: v = PyLong_FromLong(*(char*)addr); break; - case T_UBYTE: + case Py_T_UBYTE: v = PyLong_FromUnsignedLong(*(unsigned char*)addr); break; - case T_SHORT: + case Py_T_SHORT: v = PyLong_FromLong(*(short*)addr); break; - case T_USHORT: + case Py_T_USHORT: v = PyLong_FromUnsignedLong(*(unsigned short*)addr); break; - case T_INT: + case Py_T_INT: v = PyLong_FromLong(*(int*)addr); break; - case T_UINT: + case Py_T_UINT: v = PyLong_FromUnsignedLong(*(unsigned int*)addr); break; - case T_LONG: + case Py_T_LONG: v = PyLong_FromLong(*(long*)addr); break; - case T_ULONG: + case Py_T_ULONG: v = PyLong_FromUnsignedLong(*(unsigned long*)addr); break; - case T_PYSSIZET: + case Py_T_PYSSIZET: v = PyLong_FromSsize_t(*(Py_ssize_t*)addr); break; - case T_FLOAT: + case Py_T_FLOAT: v = PyFloat_FromDouble((double)*(float*)addr); break; - case T_DOUBLE: + case Py_T_DOUBLE: v = PyFloat_FromDouble(*(double*)addr); break; - case T_STRING: + case Py_T_STRING: if (*(char**)addr == NULL) { v = Py_NewRef(Py_None); } else v = PyUnicode_FromString(*(char**)addr); break; - case T_STRING_INPLACE: + case Py_T_STRING_INPLACE: v = PyUnicode_FromString((char*)addr); break; - case T_CHAR: + case Py_T_CHAR: v = PyUnicode_FromStringAndSize((char*)addr, 1); break; - case T_OBJECT: + case _Py_T_OBJECT: v = *(PyObject **)addr; if (v == NULL) v = Py_None; Py_INCREF(v); break; - case T_OBJECT_EX: - v = *(PyObject **)addr; - if (v == NULL) { - PyObject *obj = (PyObject *)obj_addr; - PyTypeObject *tp = Py_TYPE(obj); - PyErr_Format(PyExc_AttributeError, - "'%.200s' object has no attribute '%s'", - tp->tp_name, l->name); - } + case Py_T_OBJECT_EX: + v = member_get_object(addr, obj_addr, l); +#ifndef Py_GIL_DISABLED Py_XINCREF(v); +#else + if (v != NULL) { + if (!_Py_TryIncrefCompare((PyObject **) addr, v)) { + Py_BEGIN_CRITICAL_SECTION((PyObject *) obj_addr); + v = member_get_object(addr, obj_addr, l); + Py_XINCREF(v); + Py_END_CRITICAL_SECTION(); + } + } +#endif break; - case T_LONGLONG: + case Py_T_LONGLONG: v = PyLong_FromLongLong(*(long long *)addr); break; - case T_ULONGLONG: + case Py_T_ULONGLONG: v = PyLong_FromUnsignedLongLong(*(unsigned long long *)addr); break; - case T_NONE: + case _Py_T_NONE: + // doesn't require free-threading code path v = Py_NewRef(Py_None); break; default: @@ -119,29 +137,32 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) return -1; } +#ifdef Py_GIL_DISABLED + PyObject *obj = (PyObject *) addr; +#endif addr += l->offset; - if ((l->flags & READONLY)) + if ((l->flags & Py_READONLY)) { PyErr_SetString(PyExc_AttributeError, "readonly attribute"); return -1; } if (v == NULL) { - if (l->type == T_OBJECT_EX) { + if (l->type == Py_T_OBJECT_EX) { /* Check if the attribute is set. */ if (*(PyObject **)addr == NULL) { PyErr_SetString(PyExc_AttributeError, l->name); return -1; } } - else if (l->type != T_OBJECT) { + else if (l->type != _Py_T_OBJECT) { PyErr_SetString(PyExc_TypeError, "can't delete numeric/char attribute"); return -1; } } switch (l->type) { - case T_BOOL:{ + case Py_T_BOOL:{ if (!PyBool_Check(v)) { PyErr_SetString(PyExc_TypeError, "attribute value type must be bool"); @@ -153,7 +174,7 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) *(char*)addr = (char) 0; break; } - case T_BYTE:{ + case Py_T_BYTE:{ long long_val = PyLong_AsLong(v); if ((long_val == -1) && PyErr_Occurred()) return -1; @@ -164,7 +185,7 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) WARN("Truncation of value to char"); break; } - case T_UBYTE:{ + case Py_T_UBYTE:{ long long_val = PyLong_AsLong(v); if ((long_val == -1) && PyErr_Occurred()) return -1; @@ -173,7 +194,7 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) WARN("Truncation of value to unsigned char"); break; } - case T_SHORT:{ + case Py_T_SHORT:{ long long_val = PyLong_AsLong(v); if ((long_val == -1) && PyErr_Occurred()) return -1; @@ -182,7 +203,7 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) WARN("Truncation of value to short"); break; } - case T_USHORT:{ + case Py_T_USHORT:{ long long_val = PyLong_AsLong(v); if ((long_val == -1) && PyErr_Occurred()) return -1; @@ -191,7 +212,7 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) WARN("Truncation of value to unsigned short"); break; } - case T_INT:{ + case Py_T_INT:{ long long_val = PyLong_AsLong(v); if ((long_val == -1) && PyErr_Occurred()) return -1; @@ -200,7 +221,7 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) WARN("Truncation of value to int"); break; } - case T_UINT: { + case Py_T_UINT: { /* XXX: For compatibility, accept negative int values as well. */ v = _PyNumber_Index(v); @@ -229,13 +250,13 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) } break; } - case T_LONG:{ + case Py_T_LONG:{ *(long*)addr = PyLong_AsLong(v); if ((*(long*)addr == -1) && PyErr_Occurred()) return -1; break; } - case T_ULONG: { + case Py_T_ULONG: { /* XXX: For compatibility, accept negative int values as well. */ v = _PyNumber_Index(v); @@ -261,32 +282,34 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) } break; } - case T_PYSSIZET:{ + case Py_T_PYSSIZET:{ *(Py_ssize_t*)addr = PyLong_AsSsize_t(v); if ((*(Py_ssize_t*)addr == (Py_ssize_t)-1) && PyErr_Occurred()) return -1; break; } - case T_FLOAT:{ + case Py_T_FLOAT:{ double double_val = PyFloat_AsDouble(v); if ((double_val == -1) && PyErr_Occurred()) return -1; *(float*)addr = (float)double_val; break; } - case T_DOUBLE: + case Py_T_DOUBLE: *(double*)addr = PyFloat_AsDouble(v); if ((*(double*)addr == -1) && PyErr_Occurred()) return -1; break; - case T_OBJECT: - case T_OBJECT_EX: + case _Py_T_OBJECT: + case Py_T_OBJECT_EX: + Py_BEGIN_CRITICAL_SECTION(obj); oldv = *(PyObject **)addr; - *(PyObject **)addr = Py_XNewRef(v); + FT_ATOMIC_STORE_PTR_RELEASE(*(PyObject **)addr, Py_XNewRef(v)); + Py_END_CRITICAL_SECTION(); Py_XDECREF(oldv); break; - case T_CHAR: { + case Py_T_CHAR: { const char *string; Py_ssize_t len; @@ -298,11 +321,11 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v) *(char*)addr = string[0]; break; } - case T_STRING: - case T_STRING_INPLACE: + case Py_T_STRING: + case Py_T_STRING_INPLACE: PyErr_SetString(PyExc_TypeError, "readonly attribute"); return -1; - case T_LONGLONG:{ + case Py_T_LONGLONG:{ long long value; *(long long*)addr = value = PyLong_AsLongLong(v); if ((value == -1) && PyErr_Occurred()) diff --git a/contrib/tools/python3/Python/suggestions.c b/contrib/tools/python3/Python/suggestions.c index ad58393490e..a09b3ce6d9d 100644 --- a/contrib/tools/python3/Python/suggestions.c +++ b/contrib/tools/python3/Python/suggestions.c @@ -1,11 +1,8 @@ #include "Python.h" +#include "pycore_code.h" // _PyCode_GetVarnames() #include "pycore_frame.h" -#include "pycore_runtime.h" // _PyRuntime -#include "pycore_global_objects.h" // _Py_ID() - -#include "pycore_pyerrors.h" -#include "pycore_code.h" // _PyCode_GetVarnames() -#include "stdlib_module_names.h" // _Py_stdlib_module_names +#include "pycore_pyerrors.h" // export _Py_UTF8_Edit_Cost() +#include "pycore_runtime.h" // _Py_ID() #define MAX_CANDIDATE_ITEMS 750 #define MAX_STRING_SIZE 40 @@ -126,8 +123,8 @@ levenshtein_distance(const char *a, size_t a_size, return result; } -static inline PyObject * -calculate_suggestions(PyObject *dir, +PyObject * +_Py_CalculateSuggestions(PyObject *dir, PyObject *name) { assert(!PyErr_Occurred()); @@ -179,227 +176,6 @@ calculate_suggestions(PyObject *dir, return Py_XNewRef(suggestion); } -static PyObject * -get_suggestions_for_attribute_error(PyAttributeErrorObject *exc) -{ - PyObject *name = exc->name; // borrowed reference - PyObject *obj = exc->obj; // borrowed reference - - // Abort if we don't have an attribute name or we have an invalid one - if (name == NULL || obj == NULL || !PyUnicode_CheckExact(name)) { - return NULL; - } - - PyObject *dir = PyObject_Dir(obj); - if (dir == NULL) { - return NULL; - } - - PyObject *suggestions = calculate_suggestions(dir, name); - Py_DECREF(dir); - return suggestions; -} - -static PyObject * -offer_suggestions_for_attribute_error(PyAttributeErrorObject *exc) -{ - PyObject* suggestion = get_suggestions_for_attribute_error(exc); - if (suggestion == NULL) { - return NULL; - } - // Add a trailer ". Did you mean: (...)?" - PyObject* result = PyUnicode_FromFormat(". Did you mean: %R?", suggestion); - Py_DECREF(suggestion); - return result; -} - -static PyObject * -get_suggestions_for_name_error(PyObject* name, PyFrameObject* frame) -{ - PyCodeObject *code = PyFrame_GetCode(frame); - assert(code != NULL && code->co_localsplusnames != NULL); - - PyObject *varnames = _PyCode_GetVarnames(code); - Py_DECREF(code); - if (varnames == NULL) { - return NULL; - } - PyObject *dir = PySequence_List(varnames); - Py_DECREF(varnames); - if (dir == NULL) { - return NULL; - } - - // Are we inside a method and the instance has an attribute called 'name'? - int res = PySequence_Contains(dir, &_Py_ID(self)); - if (res < 0) { - goto error; - } - if (res > 0) { - PyObject* locals = PyFrame_GetLocals(frame); - if (!locals) { - goto error; - } - PyObject* self = PyDict_GetItemWithError(locals, &_Py_ID(self)); /* borrowed */ - if (!self) { - Py_DECREF(locals); - goto error; - } - - PyObject *value; - res = _PyObject_LookupAttr(self, name, &value); - Py_DECREF(locals); - if (res < 0) { - goto error; - } - if (value) { - Py_DECREF(value); - Py_DECREF(dir); - return PyUnicode_FromFormat("self.%U", name); - } - } - - PyObject *suggestions = calculate_suggestions(dir, name); - Py_DECREF(dir); - if (suggestions != NULL || PyErr_Occurred()) { - return suggestions; - } - - dir = PySequence_List(frame->f_frame->f_globals); - if (dir == NULL) { - return NULL; - } - suggestions = calculate_suggestions(dir, name); - Py_DECREF(dir); - if (suggestions != NULL || PyErr_Occurred()) { - return suggestions; - } - - dir = PySequence_List(frame->f_frame->f_builtins); - if (dir == NULL) { - return NULL; - } - suggestions = calculate_suggestions(dir, name); - Py_DECREF(dir); - - return suggestions; - -error: - Py_DECREF(dir); - return NULL; -} - -static bool -is_name_stdlib_module(PyObject* name) -{ - const char* the_name = PyUnicode_AsUTF8(name); - Py_ssize_t len = Py_ARRAY_LENGTH(_Py_stdlib_module_names); - for (Py_ssize_t i = 0; i < len; i++) { - if (strcmp(the_name, _Py_stdlib_module_names[i]) == 0) { - return 1; - } - } - return 0; -} - -static PyObject * -offer_suggestions_for_name_error(PyNameErrorObject *exc) -{ - PyObject *name = exc->name; // borrowed reference - PyTracebackObject *traceback = (PyTracebackObject *) exc->traceback; // borrowed reference - // Abort if we don't have a variable name or we have an invalid one - // or if we don't have a traceback to work with - if (name == NULL || !PyUnicode_CheckExact(name) || - traceback == NULL || !Py_IS_TYPE(traceback, &PyTraceBack_Type) - ) { - return NULL; - } - - // Move to the traceback of the exception - while (1) { - PyTracebackObject *next = traceback->tb_next; - if (next == NULL || !Py_IS_TYPE(next, &PyTraceBack_Type)) { - break; - } - else { - traceback = next; - } - } - - PyFrameObject *frame = traceback->tb_frame; - assert(frame != NULL); - - PyObject* suggestion = get_suggestions_for_name_error(name, frame); - if (suggestion == NULL && PyErr_Occurred()) { - return NULL; - } - - // Add a trailer ". Did you mean: (...)?" - PyObject* result = NULL; - if (!is_name_stdlib_module(name)) { - if (suggestion == NULL) { - return NULL; - } - result = PyUnicode_FromFormat(". Did you mean: %R?", suggestion); - } else if (suggestion == NULL) { - result = PyUnicode_FromFormat(". Did you forget to import %R?", name); - } else { - result = PyUnicode_FromFormat(". Did you mean: %R? Or did you forget to import %R?", suggestion, name); - } - Py_XDECREF(suggestion); - return result; -} - -static PyObject * -offer_suggestions_for_import_error(PyImportErrorObject *exc) -{ - PyObject *mod_name = exc->name; // borrowed reference - PyObject *name = exc->name_from; // borrowed reference - if (name == NULL || mod_name == NULL || name == Py_None || - !PyUnicode_CheckExact(name) || !PyUnicode_CheckExact(mod_name)) { - return NULL; - } - - PyObject* mod = PyImport_GetModule(mod_name); - if (mod == NULL) { - return NULL; - } - - PyObject *dir = PyObject_Dir(mod); - Py_DECREF(mod); - if (dir == NULL) { - return NULL; - } - - PyObject *suggestion = calculate_suggestions(dir, name); - Py_DECREF(dir); - if (!suggestion) { - return NULL; - } - - PyObject* result = PyUnicode_FromFormat(". Did you mean: %R?", suggestion); - Py_DECREF(suggestion); - return result; -} - -// Offer suggestions for a given exception. Returns a python string object containing the -// suggestions. This function returns NULL if no suggestion was found or if an exception happened, -// users must call PyErr_Occurred() to disambiguate. -PyObject * -_Py_Offer_Suggestions(PyObject *exception) -{ - PyObject *result = NULL; - assert(!PyErr_Occurred()); - if (Py_IS_TYPE(exception, (PyTypeObject*)PyExc_AttributeError)) { - result = offer_suggestions_for_attribute_error((PyAttributeErrorObject *) exception); - } else if (Py_IS_TYPE(exception, (PyTypeObject*)PyExc_NameError)) { - result = offer_suggestions_for_name_error((PyNameErrorObject *) exception); - } else if (Py_IS_TYPE(exception, (PyTypeObject*)PyExc_ImportError)) { - result = offer_suggestions_for_import_error((PyImportErrorObject *) exception); - } - return result; -} - Py_ssize_t _Py_UTF8_Edit_Cost(PyObject *a, PyObject *b, Py_ssize_t max_cost) { diff --git a/contrib/tools/python3/Python/symtable.c b/contrib/tools/python3/Python/symtable.c index da17485acdd..5322c5e9597 100644 --- a/contrib/tools/python3/Python/symtable.c +++ b/contrib/tools/python3/Python/symtable.c @@ -1,9 +1,11 @@ #include "Python.h" -#include "pycore_ast.h" // identifier, stmt_ty +#include "pycore_ast.h" // stmt_ty #include "pycore_parser.h" // _PyParser_ASTFromString() #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_symtable.h" // PySTEntryObject -#include "structmember.h" // PyMemberDef + +// Set this to 1 to dump all symtables to stdout for debugging +#define _PY_DUMP_SYMTABLE 0 /* error strings used for warnings */ #define GLOBAL_PARAM \ @@ -56,13 +58,13 @@ #define ANNOTATION_NOT_ALLOWED \ "%s cannot be used within an annotation" -#define TYPEVAR_BOUND_NOT_ALLOWED \ -"%s cannot be used within a TypeVar bound" +#define EXPR_NOT_ALLOWED_IN_TYPE_VARIABLE \ +"%s cannot be used within %s" -#define TYPEALIAS_NOT_ALLOWED \ +#define EXPR_NOT_ALLOWED_IN_TYPE_ALIAS \ "%s cannot be used within a type alias" -#define TYPEPARAM_NOT_ALLOWED \ +#define EXPR_NOT_ALLOWED_IN_TYPE_PARAMETERS \ "%s cannot be used within the definition of a generic" #define DUPLICATE_TYPE_PARAM \ @@ -104,6 +106,8 @@ ste_new(struct symtable *st, identifier name, _Py_block_ty block, ste->ste_mangled_names = NULL; ste->ste_type = block; + ste->ste_scope_info = NULL; + ste->ste_nested = 0; ste->ste_free = 0; ste->ste_varargs = 0; @@ -172,14 +176,14 @@ ste_dealloc(PySTEntryObject *ste) #define OFF(x) offsetof(PySTEntryObject, x) static PyMemberDef ste_memberlist[] = { - {"id", T_OBJECT, OFF(ste_id), READONLY}, - {"name", T_OBJECT, OFF(ste_name), READONLY}, - {"symbols", T_OBJECT, OFF(ste_symbols), READONLY}, - {"varnames", T_OBJECT, OFF(ste_varnames), READONLY}, - {"children", T_OBJECT, OFF(ste_children), READONLY}, - {"nested", T_INT, OFF(ste_nested), READONLY}, - {"type", T_INT, OFF(ste_type), READONLY}, - {"lineno", T_INT, OFF(ste_lineno), READONLY}, + {"id", _Py_T_OBJECT, OFF(ste_id), Py_READONLY}, + {"name", _Py_T_OBJECT, OFF(ste_name), Py_READONLY}, + {"symbols", _Py_T_OBJECT, OFF(ste_symbols), Py_READONLY}, + {"varnames", _Py_T_OBJECT, OFF(ste_varnames), Py_READONLY}, + {"children", _Py_T_OBJECT, OFF(ste_children), Py_READONLY}, + {"nested", Py_T_INT, OFF(ste_nested), Py_READONLY}, + {"type", Py_T_INT, OFF(ste_type), Py_READONLY}, + {"lineno", Py_T_INT, OFF(ste_lineno), Py_READONLY}, {NULL} }; @@ -253,6 +257,109 @@ static int symtable_visit_pattern(struct symtable *st, pattern_ty s); static int symtable_raise_if_annotation_block(struct symtable *st, const char *, expr_ty); static int symtable_raise_if_comprehension_block(struct symtable *st, expr_ty); +/* For debugging purposes only */ +#if _PY_DUMP_SYMTABLE +static void _dump_symtable(PySTEntryObject* ste, PyObject* prefix) +{ + const char *blocktype = ""; + switch (ste->ste_type) { + case FunctionBlock: blocktype = "FunctionBlock"; break; + case ClassBlock: blocktype = "ClassBlock"; break; + case ModuleBlock: blocktype = "ModuleBlock"; break; + case AnnotationBlock: blocktype = "AnnotationBlock"; break; + case TypeVariableBlock: blocktype = "TypeVariableBlock"; break; + case TypeAliasBlock: blocktype = "TypeAliasBlock"; break; + case TypeParametersBlock: blocktype = "TypeParametersBlock"; break; + } + const char *comptype = ""; + switch (ste->ste_comprehension) { + case ListComprehension: comptype = " ListComprehension"; break; + case DictComprehension: comptype = " DictComprehension"; break; + case SetComprehension: comptype = " SetComprehension"; break; + case GeneratorExpression: comptype = " GeneratorExpression"; break; + case NoComprehension: break; + } + PyObject* msg = PyUnicode_FromFormat( + ( + "%U=== Symtable for %U ===\n" + "%U%s%s\n" + "%U%s%s%s%s%s%s%s%s%s%s%s%s%s\n" + "%Ulineno: %d col_offset: %d\n" + "%U--- Symbols ---\n" + ), + prefix, + ste->ste_name, + prefix, + blocktype, + comptype, + prefix, + ste->ste_nested ? " nested" : "", + ste->ste_free ? " free" : "", + ste->ste_child_free ? " child_free" : "", + ste->ste_generator ? " generator" : "", + ste->ste_coroutine ? " coroutine" : "", + ste->ste_varargs ? " varargs" : "", + ste->ste_varkeywords ? " varkeywords" : "", + ste->ste_returns_value ? " returns_value" : "", + ste->ste_needs_class_closure ? " needs_class_closure" : "", + ste->ste_needs_classdict ? " needs_classdict" : "", + ste->ste_comp_inlined ? " comp_inlined" : "", + ste->ste_comp_iter_target ? " comp_iter_target" : "", + ste->ste_can_see_class_scope ? " can_see_class_scope" : "", + prefix, + ste->ste_lineno, + ste->ste_col_offset, + prefix + ); + assert(msg != NULL); + printf("%s", PyUnicode_AsUTF8(msg)); + Py_DECREF(msg); + PyObject *name, *value; + Py_ssize_t pos = 0; + while (PyDict_Next(ste->ste_symbols, &pos, &name, &value)) { + int scope = _PyST_GetScope(ste, name); + long flags = _PyST_GetSymbol(ste, name); + printf("%s %s: ", PyUnicode_AsUTF8(prefix), PyUnicode_AsUTF8(name)); + if (flags & DEF_GLOBAL) printf(" DEF_GLOBAL"); + if (flags & DEF_LOCAL) printf(" DEF_LOCAL"); + if (flags & DEF_PARAM) printf(" DEF_PARAM"); + if (flags & DEF_NONLOCAL) printf(" DEF_NONLOCAL"); + if (flags & USE) printf(" USE"); + if (flags & DEF_FREE) printf(" DEF_FREE"); + if (flags & DEF_FREE_CLASS) printf(" DEF_FREE_CLASS"); + if (flags & DEF_IMPORT) printf(" DEF_IMPORT"); + if (flags & DEF_ANNOT) printf(" DEF_ANNOT"); + if (flags & DEF_COMP_ITER) printf(" DEF_COMP_ITER"); + if (flags & DEF_TYPE_PARAM) printf(" DEF_TYPE_PARAM"); + if (flags & DEF_COMP_CELL) printf(" DEF_COMP_CELL"); + switch (scope) { + case LOCAL: printf(" LOCAL"); break; + case GLOBAL_EXPLICIT: printf(" GLOBAL_EXPLICIT"); break; + case GLOBAL_IMPLICIT: printf(" GLOBAL_IMPLICIT"); break; + case FREE: printf(" FREE"); break; + case CELL: printf(" CELL"); break; + } + printf("\n"); + } + printf("%s--- Children ---\n", PyUnicode_AsUTF8(prefix)); + PyObject *new_prefix = PyUnicode_FromFormat(" %U", prefix); + assert(new_prefix != NULL); + for (Py_ssize_t i = 0; i < PyList_GET_SIZE(ste->ste_children); i++) { + PyObject *child = PyList_GetItem(ste->ste_children, i); + assert(child != NULL && PySTEntry_Check(child)); + _dump_symtable((PySTEntryObject *)child, new_prefix); + } + Py_DECREF(new_prefix); +} + +static void dump_symtable(PySTEntryObject* ste) +{ + PyObject *empty = PyUnicode_FromString(""); + assert(empty != NULL); + _dump_symtable(ste, empty); + Py_DECREF(empty); +} +#endif #define DUPLICATE_ARGUMENT \ "duplicate argument '%U' in function definition" @@ -284,7 +391,7 @@ symtable_new(void) } struct symtable * -_PySymtable_Build(mod_ty mod, PyObject *filename, PyFutureFeatures *future) +_PySymtable_Build(mod_ty mod, PyObject *filename, _PyFutureFeatures *future) { struct symtable *st = symtable_new(); asdl_stmt_seq *seq; @@ -308,10 +415,10 @@ _PySymtable_Build(mod_ty mod, PyObject *filename, PyFutureFeatures *future) return NULL; } /* Be careful here to prevent overflow. */ - int recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining; + int recursion_depth = Py_C_RECURSION_LIMIT - tstate->c_recursion_remaining; starting_recursion_depth = recursion_depth; st->recursion_depth = starting_recursion_depth; - st->recursion_limit = C_RECURSION_LIMIT; + st->recursion_limit = Py_C_RECURSION_LIMIT; /* Make the initial symbol information gathering pass */ if (!symtable_enter_block(st, &_Py_ID(top), ModuleBlock, (void *)mod, 0, 0, 0, 0)) { @@ -357,8 +464,12 @@ _PySymtable_Build(mod_ty mod, PyObject *filename, PyFutureFeatures *future) return NULL; } /* Make the second symbol analysis pass */ - if (symtable_analyze(st)) + if (symtable_analyze(st)) { +#if _PY_DUMP_SYMTABLE + dump_symtable(st->st_top); +#endif return st; + } _PySymtable_Free(st); return NULL; error: @@ -378,25 +489,21 @@ _PySymtable_Free(struct symtable *st) } PySTEntryObject * -PySymtable_Lookup(struct symtable *st, void *key) +_PySymtable_Lookup(struct symtable *st, void *key) { PyObject *k, *v; k = PyLong_FromVoidPtr(key); if (k == NULL) return NULL; - v = PyDict_GetItemWithError(st->st_blocks, k); - Py_DECREF(k); - - if (v) { - assert(PySTEntry_Check(v)); - } - else if (!PyErr_Occurred()) { + if (PyDict_GetItemRef(st->st_blocks, k, &v) == 0) { PyErr_SetString(PyExc_KeyError, "unknown symbol table entry"); } + Py_DECREF(k); - return (PySTEntryObject *)Py_XNewRef(v); + assert(v == NULL || PySTEntry_Check(v)); + return (PySTEntryObject *)v; } long @@ -420,9 +527,9 @@ int _PyST_IsFunctionLike(PySTEntryObject *ste) { return ste->ste_type == FunctionBlock - || ste->ste_type == TypeVarBoundBlock + || ste->ste_type == TypeVariableBlock || ste->ste_type == TypeAliasBlock - || ste->ste_type == TypeParamBlock; + || ste->ste_type == TypeParametersBlock; } static int @@ -1048,10 +1155,12 @@ analyze_block(PySTEntryObject *ste, PyObject *bound, PyObject *free, } } - // we inline all non-generator-expression comprehensions + // we inline all non-generator-expression comprehensions, + // except those in annotation scopes that are nested in classes int inline_comp = entry->ste_comprehension && - !entry->ste_generator; + !entry->ste_generator && + !ste->ste_can_see_class_scope; if (!analyze_child_block(entry, newbound, newfree, newglobal, type_params, new_class_entry, &child_free)) @@ -1387,7 +1496,7 @@ symtable_enter_type_param_block(struct symtable *st, identifier name, int end_lineno, int end_col_offset) { _Py_block_ty current_type = st->st_cur->ste_type; - if(!symtable_enter_block(st, name, TypeParamBlock, ast, lineno, + if(!symtable_enter_block(st, name, TypeParametersBlock, ast, lineno, col_offset, end_lineno, end_col_offset)) { return 0; } @@ -1742,14 +1851,14 @@ symtable_visit_stmt(struct symtable *st, stmt_ty s) break; case Try_kind: VISIT_SEQ(st, stmt, s->v.Try.body); - VISIT_SEQ(st, stmt, s->v.Try.orelse); VISIT_SEQ(st, excepthandler, s->v.Try.handlers); + VISIT_SEQ(st, stmt, s->v.Try.orelse); VISIT_SEQ(st, stmt, s->v.Try.finalbody); break; case TryStar_kind: VISIT_SEQ(st, stmt, s->v.TryStar.body); - VISIT_SEQ(st, stmt, s->v.TryStar.orelse); VISIT_SEQ(st, excepthandler, s->v.TryStar.handlers); + VISIT_SEQ(st, stmt, s->v.TryStar.orelse); VISIT_SEQ(st, stmt, s->v.TryStar.finalbody); break; case Assert_kind: @@ -1962,20 +2071,20 @@ symtable_extend_namedexpr_scope(struct symtable *st, expr_ty e) } /* Disallow usage in ClassBlock and type scopes */ if (ste->ste_type == ClassBlock || - ste->ste_type == TypeParamBlock || + ste->ste_type == TypeParametersBlock || ste->ste_type == TypeAliasBlock || - ste->ste_type == TypeVarBoundBlock) { + ste->ste_type == TypeVariableBlock) { switch (ste->ste_type) { case ClassBlock: PyErr_Format(PyExc_SyntaxError, NAMED_EXPR_COMP_IN_CLASS); break; - case TypeParamBlock: + case TypeParametersBlock: PyErr_Format(PyExc_SyntaxError, NAMED_EXPR_COMP_IN_TYPEPARAM); break; case TypeAliasBlock: PyErr_Format(PyExc_SyntaxError, NAMED_EXPR_COMP_IN_TYPEALIAS); break; - case TypeVarBoundBlock: + case TypeVariableBlock: PyErr_Format(PyExc_SyntaxError, NAMED_EXPR_COMP_IN_TYPEVAR_BOUND); break; default: @@ -2047,17 +2156,6 @@ symtable_visit_expr(struct symtable *st, expr_ty e) VISIT(st, expr, e->v.UnaryOp.operand); break; case Lambda_kind: { - if (st->st_cur->ste_can_see_class_scope) { - // gh-109118 - PyErr_Format(PyExc_SyntaxError, - "Cannot use lambda in annotation scope within class scope"); - PyErr_RangedSyntaxLocationObject(st->st_filename, - e->lineno, - e->col_offset + 1, - e->end_lineno, - e->end_col_offset + 1); - VISIT_QUIT(st, 0); - } if (e->v.Lambda.args->defaults) VISIT_SEQ(st, expr, e->v.Lambda.args->defaults); if (e->v.Lambda.args->kw_defaults) @@ -2192,9 +2290,12 @@ symtable_visit_expr(struct symtable *st, expr_ty e) } static int -symtable_visit_type_param_check_reserved_name(struct symtable *st, type_param_ty tp, identifier name) +symtable_visit_type_param_bound_or_default( + struct symtable *st, expr_ty e, identifier name, + type_param_ty tp, const char *ste_scope_info) { if (_PyUnicode_Equal(name, &_Py_ID(__classdict__))) { + PyObject *error_msg = PyUnicode_FromFormat("reserved name '%U' cannot be " "used for type parameter", name); PyErr_SetObject(PyExc_SyntaxError, error_msg); @@ -2206,6 +2307,26 @@ symtable_visit_type_param_check_reserved_name(struct symtable *st, type_param_ty tp->end_col_offset + 1); return 0; } + + if (e) { + int is_in_class = st->st_cur->ste_can_see_class_scope; + if (!symtable_enter_block(st, name, TypeVariableBlock, (void *)tp, LOCATION(e))) { + return 0; + } + + st->st_cur->ste_can_see_class_scope = is_in_class; + if (is_in_class && !symtable_add_def(st, &_Py_ID(__classdict__), USE, LOCATION(e))) { + VISIT_QUIT(st, 0); + } + + assert(ste_scope_info != NULL); + st->st_cur->ste_scope_info = ste_scope_info; + VISIT(st, expr, e); + + if (!symtable_exit_block(st)) { + return 0; + } + } return 1; } @@ -2219,36 +2340,50 @@ symtable_visit_type_param(struct symtable *st, type_param_ty tp) } switch(tp->kind) { case TypeVar_kind: - if (!symtable_visit_type_param_check_reserved_name(st, tp, tp->v.TypeVar.name)) - VISIT_QUIT(st, 0); if (!symtable_add_def(st, tp->v.TypeVar.name, DEF_TYPE_PARAM | DEF_LOCAL, LOCATION(tp))) VISIT_QUIT(st, 0); - if (tp->v.TypeVar.bound) { - int is_in_class = st->st_cur->ste_can_see_class_scope; - if (!symtable_enter_block(st, tp->v.TypeVar.name, - TypeVarBoundBlock, (void *)tp, - LOCATION(tp))) - VISIT_QUIT(st, 0); - st->st_cur->ste_can_see_class_scope = is_in_class; - if (is_in_class && !symtable_add_def(st, &_Py_ID(__classdict__), USE, LOCATION(tp->v.TypeVar.bound))) { - VISIT_QUIT(st, 0); - } - VISIT(st, expr, tp->v.TypeVar.bound); - if (!symtable_exit_block(st)) - VISIT_QUIT(st, 0); + + const char *ste_scope_info = NULL; + const expr_ty bound = tp->v.TypeVar.bound; + if (bound != NULL) { + ste_scope_info = bound->kind == Tuple_kind ? "a TypeVar constraint" : "a TypeVar bound"; + } + + // We must use a different key for the bound and default. The obvious choice would be to + // use the .bound and .default_value pointers, but that fails when the expression immediately + // inside the bound or default is a comprehension: we would reuse the same key for + // the comprehension scope. Therefore, use the address + 1 as the second key. + // The only requirement for the key is that it is unique and it matches the logic in + // compile.c where the scope is retrieved. + if (!symtable_visit_type_param_bound_or_default(st, tp->v.TypeVar.bound, tp->v.TypeVar.name, + tp, ste_scope_info)) { + VISIT_QUIT(st, 0); + } + + if (!symtable_visit_type_param_bound_or_default(st, tp->v.TypeVar.default_value, tp->v.TypeVar.name, + (type_param_ty)((uintptr_t)tp + 1), "a TypeVar default")) { + VISIT_QUIT(st, 0); } break; case TypeVarTuple_kind: - if (!symtable_visit_type_param_check_reserved_name(st, tp, tp->v.TypeVarTuple.name)) + if (!symtable_add_def(st, tp->v.TypeVarTuple.name, DEF_TYPE_PARAM | DEF_LOCAL, LOCATION(tp))) { VISIT_QUIT(st, 0); - if (!symtable_add_def(st, tp->v.TypeVarTuple.name, DEF_TYPE_PARAM | DEF_LOCAL, LOCATION(tp))) + } + + if (!symtable_visit_type_param_bound_or_default(st, tp->v.TypeVarTuple.default_value, tp->v.TypeVarTuple.name, + tp, "a TypeVarTuple default")) { VISIT_QUIT(st, 0); + } break; case ParamSpec_kind: - if (!symtable_visit_type_param_check_reserved_name(st, tp, tp->v.ParamSpec.name)) + if (!symtable_add_def(st, tp->v.ParamSpec.name, DEF_TYPE_PARAM | DEF_LOCAL, LOCATION(tp))) { VISIT_QUIT(st, 0); - if (!symtable_add_def(st, tp->v.ParamSpec.name, DEF_TYPE_PARAM | DEF_LOCAL, LOCATION(tp))) + } + + if (!symtable_visit_type_param_bound_or_default(st, tp->v.ParamSpec.default_value, tp->v.ParamSpec.name, + tp, "a ParamSpec default")) { VISIT_QUIT(st, 0); + } break; } VISIT_QUIT(st, 1); @@ -2531,18 +2666,6 @@ symtable_handle_comprehension(struct symtable *st, expr_ty e, identifier scope_name, asdl_comprehension_seq *generators, expr_ty elt, expr_ty value) { - if (st->st_cur->ste_can_see_class_scope) { - // gh-109118 - PyErr_Format(PyExc_SyntaxError, - "Cannot use comprehension in annotation scope within class scope"); - PyErr_RangedSyntaxLocationObject(st->st_filename, - e->lineno, - e->col_offset + 1, - e->end_lineno, - e->end_col_offset + 1); - VISIT_QUIT(st, 0); - } - int is_generator = (e->kind == GeneratorExp_kind); comprehension_ty outermost = ((comprehension_ty) asdl_seq_GET(generators, 0)); @@ -2640,12 +2763,21 @@ symtable_raise_if_annotation_block(struct symtable *st, const char *name, expr_t enum _block_type type = st->st_cur->ste_type; if (type == AnnotationBlock) PyErr_Format(PyExc_SyntaxError, ANNOTATION_NOT_ALLOWED, name); - else if (type == TypeVarBoundBlock) - PyErr_Format(PyExc_SyntaxError, TYPEVAR_BOUND_NOT_ALLOWED, name); - else if (type == TypeAliasBlock) - PyErr_Format(PyExc_SyntaxError, TYPEALIAS_NOT_ALLOWED, name); - else if (type == TypeParamBlock) - PyErr_Format(PyExc_SyntaxError, TYPEPARAM_NOT_ALLOWED, name); + else if (type == TypeVariableBlock) { + const char *info = st->st_cur->ste_scope_info; + assert(info != NULL); // e.g., info == "a ParamSpec default" + PyErr_Format(PyExc_SyntaxError, EXPR_NOT_ALLOWED_IN_TYPE_VARIABLE, name, info); + } + else if (type == TypeAliasBlock) { + // for now, we do not have any extra information + assert(st->st_cur->ste_scope_info == NULL); + PyErr_Format(PyExc_SyntaxError, EXPR_NOT_ALLOWED_IN_TYPE_ALIAS, name); + } + else if (type == TypeParametersBlock) { + // for now, we do not have any extra information + assert(st->st_cur->ste_scope_info == NULL); + PyErr_Format(PyExc_SyntaxError, EXPR_NOT_ALLOWED_IN_TYPE_PARAMETERS, name); + } else return 1; @@ -2688,7 +2820,7 @@ _Py_SymtableStringObjectFlags(const char *str, PyObject *filename, _PyArena_Free(arena); return NULL; } - PyFutureFeatures future; + _PyFutureFeatures future; if (!_PyFuture_FromAST(mod, filename, &future)) { _PyArena_Free(arena); return NULL; diff --git a/contrib/tools/python3/Python/sysmodule.c b/contrib/tools/python3/Python/sysmodule.c index 62d53a6820f..cf06943c7c8 100644 --- a/contrib/tools/python3/Python/sysmodule.c +++ b/contrib/tools/python3/Python/sysmodule.c @@ -17,26 +17,31 @@ Data members: #include "Python.h" #include "pycore_call.h" // _PyObject_CallNoArgs() #include "pycore_ceval.h" // _PyEval_SetAsyncGenFinalizer() +#include "pycore_dict.h" // _PyDict_GetItemWithError() #include "pycore_frame.h" // _PyInterpreterFrame #include "pycore_initconfig.h" // _PyStatus_EXCEPTION() #include "pycore_long.h" // _PY_LONG_MAX_STR_DIGITS_THRESHOLD +#include "pycore_modsupport.h" // _PyModule_CreateInitialized() #include "pycore_namespace.h" // _PyNamespace_New() -#include "pycore_object.h" // _PyObject_IS_GC() +#include "pycore_object.h" // _PyObject_DebugTypeStats() #include "pycore_pathconfig.h" // _PyPathConfig_ComputeSysPath0() #include "pycore_pyerrors.h" // _PyErr_GetRaisedException() #include "pycore_pylifecycle.h" // _PyErr_WriteUnraisableDefaultHook() #include "pycore_pymath.h" // _PY_SHORT_FLOAT_REPR #include "pycore_pymem.h" // _PyMem_SetDefaultAllocator() #include "pycore_pystate.h" // _PyThreadState_GET() +#include "pycore_pystats.h" // _Py_PrintSpecializationStats() #include "pycore_structseq.h" // _PyStructSequence_InitBuiltinWithFlags() -#include "pycore_sysmodule.h" +#include "pycore_sysmodule.h" // export _PySys_GetSizeOf() #include "pycore_tuple.h" // _PyTuple_FromArray() -#include "frameobject.h" // PyFrame_FastToLocalsWithError() -#include "pydtrace.h" +#include "pydtrace.h" // PyDTrace_AUDIT() #include "osdefs.h" // DELIM #include "stdlib_module_names.h" // _Py_stdlib_module_names -#include + +#ifdef HAVE_UNISTD_H +# include // getpid() +#endif #ifdef MS_WINDOWS # ifndef WIN32_LEAN_AND_MEAN @@ -52,11 +57,11 @@ extern const char *PyWin_DLLVersionString; #endif #ifdef __EMSCRIPTEN__ -#error #include +# error #include #endif #ifdef HAVE_FCNTL_H -#include +# include #endif /*[clinic input] @@ -66,6 +71,7 @@ module sys #include "clinic/sysmodule.c.h" + PyObject * _PySys_GetAttr(PyThreadState *tstate, PyObject *name) { @@ -96,9 +102,8 @@ _PySys_GetRequiredAttr(PyObject *name) PyErr_SetString(PyExc_RuntimeError, "no sys module"); return NULL; } - PyObject *value = _PyDict_GetItemWithError(sysdict, name); - Py_XINCREF(value); - if (value == NULL && !_PyErr_Occurred(tstate)) { + PyObject *value; + if (PyDict_GetItemRef(sysdict, name, &value) == 0) { PyErr_Format(PyExc_RuntimeError, "lost sys.%U", name); } return value; @@ -113,9 +118,8 @@ _PySys_GetRequiredAttrString(const char *name) PyErr_SetString(PyExc_RuntimeError, "no sys module"); return NULL; } - PyObject *value = _PyDict_GetItemStringWithError(sysdict, name); - Py_XINCREF(value); - if (value == NULL && !_PyErr_Occurred(tstate)) { + PyObject *value; + if (PyDict_GetItemStringRef(sysdict, name, &value) == 0) { PyErr_Format(PyExc_RuntimeError, "lost sys.%s", name); } return value; @@ -137,12 +141,7 @@ _PySys_GetOptionalAttr(PyObject *name, PyObject **value) *value = NULL; return 0; } - *value = _PyDict_GetItemWithError(sysdict, name); - if (*value) { - Py_INCREF(*value); - return 1; - } - return _PyErr_Occurred(tstate) ? -1 : 0; + return PyDict_GetItemRef(sysdict, name, value); } int @@ -154,12 +153,7 @@ _PySys_GetOptionalAttrString(const char *name, PyObject **value) *value = NULL; return 0; } - *value = _PyDict_GetItemStringWithError(sysdict, name); - if (*value) { - Py_INCREF(*value); - return 1; - } - return _PyErr_Occurred(tstate) ? -1 : 0; + return PyDict_GetItemStringRef(sysdict, name, value); } PyObject * @@ -171,10 +165,15 @@ PySys_GetObject(const char *name) return NULL; } PyObject *exc = _PyErr_GetRaisedException(tstate); - PyObject *value = _PyDict_GetItemStringWithError(sysdict, name); + PyObject *value; + (void) PyDict_GetItemStringRef(sysdict, name, &value); /* XXX Suppress a new exception if it was raised and restore * the old one. */ + if (_PyErr_Occurred(tstate)) { + PyErr_FormatUnraisable("Exception ignored in PySys_GetObject()"); + } _PyErr_SetRaisedException(tstate, exc); + Py_XDECREF(value); // return a borrowed reference return value; } @@ -190,11 +189,9 @@ sys_set_object(PyInterpreterState *interp, PyObject *key, PyObject *v) return -1; } if (v == NULL) { - v = _PyDict_Pop(sd, key, Py_None); - if (v == NULL) { + if (PyDict_Pop(sd, key, NULL) < 0) { return -1; } - Py_DECREF(v); return 0; } else { @@ -259,9 +256,7 @@ static int sys_audit_tstate(PyThreadState *ts, const char *event, const char *argFormat, va_list vargs) { - /* N format is inappropriate, because you do not know - whether the reference is consumed by the call. - Assert rather than exception for perf reasons */ + assert(event != NULL); assert(!argFormat || !strchr(argFormat, 'N')); if (!ts) { @@ -292,7 +287,7 @@ sys_audit_tstate(PyThreadState *ts, const char *event, /* Initialize event args now */ if (argFormat && argFormat[0]) { - eventArgs = _Py_VaBuildValue_SizeT(argFormat, vargs); + eventArgs = Py_VaBuildValue(argFormat, vargs); if (eventArgs && !PyTuple_Check(eventArgs)) { PyObject *argTuple = PyTuple_Pack(1, eventArgs); Py_SETREF(eventArgs, argTuple); @@ -337,7 +332,7 @@ sys_audit_tstate(PyThreadState *ts, const char *event, PyThreadState_EnterTracing(ts); while ((hook = PyIter_Next(hooks)) != NULL) { PyObject *o; - int canTrace = _PyObject_LookupAttr(hook, &_Py_ID(__cantrace__), &o); + int canTrace = PyObject_GetOptionalAttr(hook, &_Py_ID(__cantrace__), &o); if (o) { canTrace = PyObject_IsTrue(o); Py_DECREF(o); @@ -349,7 +344,7 @@ sys_audit_tstate(PyThreadState *ts, const char *event, PyThreadState_LeaveTracing(ts); } PyObject* args[2] = {eventName, eventArgs}; - o = _PyObject_FastCallTstate(ts, hook, args, 2); + o = _PyObject_VectorcallTstate(ts, hook, args, 2, NULL); if (canTrace) { PyThreadState_EnterTracing(ts); } @@ -406,6 +401,21 @@ PySys_Audit(const char *event, const char *argFormat, ...) return res; } +int +PySys_AuditTuple(const char *event, PyObject *args) +{ + if (args == NULL) { + return PySys_Audit(event, NULL); + } + + if (!PyTuple_Check(args)) { + PyErr_Format(PyExc_TypeError, "args must be tuple, got %s", + Py_TYPE(args)->tp_name); + return -1; + } + return PySys_Audit(event, "O", args); +} + /* We expose this function primarily for our own cleanup during * finalization. In general, it should not need to be called, * and as such the function is not exported. @@ -505,15 +515,9 @@ PySys_AddAuditHook(Py_AuditHookFunction hook, void *userData) e->hookCFunction = (Py_AuditHookFunction)hook; e->userData = userData; - if (runtime->audit_hooks.mutex == NULL) { - /* The runtime must not be initailized yet. */ - add_audit_hook_entry_unlocked(runtime, e); - } - else { - PyThread_acquire_lock(runtime->audit_hooks.mutex, WAIT_LOCK); - add_audit_hook_entry_unlocked(runtime, e); - PyThread_release_lock(runtime->audit_hooks.mutex); - } + PyMutex_Lock(&runtime->audit_hooks.mutex); + add_audit_hook_entry_unlocked(runtime, e); + PyMutex_Unlock(&runtime->audit_hooks.mutex); return 0; } @@ -560,7 +564,8 @@ sys_addaudithook_impl(PyObject *module, PyObject *hook) } PyDoc_STRVAR(audit_doc, -"audit(event, *args)\n\ +"audit($module, event, /, *args)\n\ +--\n\ \n\ Passes the event to any audit hooks that are attached."); @@ -577,6 +582,8 @@ sys_audit(PyObject *self, PyObject *const *args, Py_ssize_t argc) return NULL; } + assert(args[0] != NULL); + if (!should_audit(tstate->interp)) { Py_RETURN_NONE; } @@ -701,7 +708,8 @@ sys_breakpointhook(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb } PyDoc_STRVAR(breakpointhook_doc, -"breakpointhook(*args, **kws)\n" +"breakpointhook($module, /, *args, **kwargs)\n" +"--\n" "\n" "This hook function is called by built-in breakpoint().\n" ); @@ -737,7 +745,7 @@ sys_displayhook_unencodable(PyObject *outf, PyObject *o) if (encoded == NULL) goto error; - if (_PyObject_LookupAttr(outf, &_Py_ID(buffer), &buffer) < 0) { + if (PyObject_GetOptionalAttr(outf, &_Py_ID(buffer), &buffer) < 0) { Py_DECREF(encoded); goto error; } @@ -953,6 +961,13 @@ sys_exit_impl(PyObject *module, PyObject *status) } +static PyObject * +get_utf8_unicode(void) +{ + _Py_DECLARE_STR(utf_8, "utf-8"); + PyObject *ret = &_Py_STR(utf_8); + return Py_NewRef(ret); +} /*[clinic input] sys.getdefaultencoding @@ -964,9 +979,7 @@ static PyObject * sys_getdefaultencoding_impl(PyObject *module) /*[clinic end generated code: output=256d19dfcc0711e6 input=d416856ddbef6909]*/ { - _Py_DECLARE_STR(utf_8, "utf-8"); - PyObject *ret = &_Py_STR(utf_8); - return Py_NewRef(ret); + return get_utf8_unicode(); } /*[clinic input] @@ -981,7 +994,17 @@ sys_getfilesystemencoding_impl(PyObject *module) { PyInterpreterState *interp = _PyInterpreterState_GET(); const PyConfig *config = _PyInterpreterState_GetConfig(interp); - return PyUnicode_FromWideChar(config->filesystem_encoding, -1); + + if (wcscmp(config->filesystem_encoding, L"utf-8") == 0) { + return get_utf8_unicode(); + } + + PyObject *u = PyUnicode_FromWideChar(config->filesystem_encoding, -1); + if (u == NULL) { + return NULL; + } + _PyUnicode_InternImmortal(interp, &u); + return u; } /*[clinic input] @@ -996,7 +1019,12 @@ sys_getfilesystemencodeerrors_impl(PyObject *module) { PyInterpreterState *interp = _PyInterpreterState_GET(); const PyConfig *config = _PyInterpreterState_GetConfig(interp); - return PyUnicode_FromWideChar(config->filesystem_errors, -1); + PyObject *u = PyUnicode_FromWideChar(config->filesystem_errors, -1); + if (u == NULL) { + return NULL; + } + _PyUnicode_InternImmortal(interp, &u); + return u; } /*[clinic input] @@ -1030,6 +1058,23 @@ sys_intern_impl(PyObject *module, PyObject *s) } +/*[clinic input] +sys._is_interned -> bool + + string: unicode + / + +Return True if the given string is "interned". +[clinic start generated code]*/ + +static int +sys__is_interned_impl(PyObject *module, PyObject *string) +/*[clinic end generated code: output=c3678267b4e9d7ed input=039843e17883b606]*/ +{ + return PyUnicode_CHECK_INTERNED(string); +} + + /* * Cached interned string objects used for calling the profile and * trace functions. @@ -1050,23 +1095,13 @@ static PyObject * call_trampoline(PyThreadState *tstate, PyObject* callback, PyFrameObject *frame, int what, PyObject *arg) { - - PyObject *stack[3]; - stack[0] = (PyObject *)frame; - stack[1] = whatstrings[what]; - stack[2] = (arg != NULL) ? arg : Py_None; - - /* Discard any previous modifications the frame's fast locals */ - if (frame->f_fast_as_locals) { - if (PyFrame_FastToLocalsWithError(frame) < 0) { - return NULL; - } - } - /* call the Python-level function */ - PyObject *result = _PyObject_FastCallTstate(tstate, callback, stack, 3); + if (arg == NULL) { + arg = Py_None; + } + PyObject *args[3] = {(PyObject *)frame, whatstrings[what], arg}; + PyObject *result = _PyObject_VectorcallTstate(tstate, callback, args, 3, NULL); - PyFrame_LocalsToFast(frame, 1); return result; } @@ -1117,34 +1152,40 @@ trace_trampoline(PyObject *self, PyFrameObject *frame, return 0; } +/*[clinic input] +sys.settrace + + function: object + / + +Set the global debug tracing function. + +It will be called on each function call. See the debugger chapter +in the library manual. +[clinic start generated code]*/ + static PyObject * -sys_settrace(PyObject *self, PyObject *args) +sys_settrace(PyObject *module, PyObject *function) +/*[clinic end generated code: output=999d12e9d6ec4678 input=8107feb01c5f1c4e]*/ { PyThreadState *tstate = _PyThreadState_GET(); - if (args == Py_None) { + if (function == Py_None) { if (_PyEval_SetTrace(tstate, NULL, NULL) < 0) { return NULL; } } else { - if (_PyEval_SetTrace(tstate, trace_trampoline, args) < 0) { + if (_PyEval_SetTrace(tstate, trace_trampoline, function) < 0) { return NULL; } } Py_RETURN_NONE; } -PyDoc_STRVAR(settrace_doc, -"settrace(function)\n\ -\n\ -Set the global debug tracing function. It will be called on each\n\ -function call. See the debugger chapter in the library manual." -); - /*[clinic input] sys._settraceallthreads - arg: object + function as arg: object / Set the global debug tracing function in all running threads belonging to the current interpreter. @@ -1155,7 +1196,7 @@ in the library manual. static PyObject * sys__settraceallthreads(PyObject *module, PyObject *arg) -/*[clinic end generated code: output=161cca30207bf3ca input=5906aa1485a50289]*/ +/*[clinic end generated code: output=161cca30207bf3ca input=d4bde1f810d73675]*/ { PyObject* argument = NULL; Py_tracefunc func = NULL; @@ -1165,9 +1206,10 @@ sys__settraceallthreads(PyObject *module, PyObject *arg) argument = arg; } - - PyEval_SetTraceAllThreads(func, argument); - + PyInterpreterState *interp = _PyInterpreterState_GET(); + if (_PyEval_SetTraceAllThreads(interp, func, argument) < 0) { + return NULL; + } Py_RETURN_NONE; } @@ -1191,45 +1233,51 @@ sys_gettrace_impl(PyObject *module) return Py_NewRef(temp); } +/*[clinic input] +sys.setprofile + + function: object + / + +Set the profiling function. + +It will be called on each function call and return. See the profiler +chapter in the library manual. +[clinic start generated code]*/ + static PyObject * -sys_setprofile(PyObject *self, PyObject *args) +sys_setprofile(PyObject *module, PyObject *function) +/*[clinic end generated code: output=1c3503105939db9c input=055d0d7961413a62]*/ { PyThreadState *tstate = _PyThreadState_GET(); - if (args == Py_None) { + if (function == Py_None) { if (_PyEval_SetProfile(tstate, NULL, NULL) < 0) { return NULL; } } else { - if (_PyEval_SetProfile(tstate, profile_trampoline, args) < 0) { + if (_PyEval_SetProfile(tstate, profile_trampoline, function) < 0) { return NULL; } } Py_RETURN_NONE; } -PyDoc_STRVAR(setprofile_doc, -"setprofile(function)\n\ -\n\ -Set the profiling function. It will be called on each function call\n\ -and return. See the profiler chapter in the library manual." -); - /*[clinic input] sys._setprofileallthreads - arg: object + function as arg: object / Set the profiling function in all running threads belonging to the current interpreter. -It will be called on each function call and return. See the profiler chapter -in the library manual. +It will be called on each function call and return. See the profiler +chapter in the library manual. [clinic start generated code]*/ static PyObject * sys__setprofileallthreads(PyObject *module, PyObject *arg) -/*[clinic end generated code: output=2d61319e27b309fe input=d1a356d3f4f9060a]*/ +/*[clinic end generated code: output=2d61319e27b309fe input=a10589439ba20cee]*/ { PyObject* argument = NULL; Py_tracefunc func = NULL; @@ -1239,8 +1287,10 @@ sys__setprofileallthreads(PyObject *module, PyObject *arg) argument = arg; } - PyEval_SetProfileAllThreads(func, argument); - + PyInterpreterState *interp = _PyInterpreterState_GET(); + if (_PyEval_SetProfileAllThreads(interp, func, argument) < 0) { + return NULL; + } Py_RETURN_NONE; } @@ -1425,12 +1475,6 @@ sys_set_asyncgen_hooks(PyObject *self, PyObject *args, PyObject *kw) Py_TYPE(finalizer)->tp_name); return NULL; } - if (_PyEval_SetAsyncGenFinalizer(finalizer) < 0) { - return NULL; - } - } - else if (finalizer == Py_None && _PyEval_SetAsyncGenFinalizer(NULL) < 0) { - return NULL; } if (firstiter && firstiter != Py_None) { @@ -1440,15 +1484,33 @@ sys_set_asyncgen_hooks(PyObject *self, PyObject *args, PyObject *kw) Py_TYPE(firstiter)->tp_name); return NULL; } - if (_PyEval_SetAsyncGenFirstiter(firstiter) < 0) { + } + + PyObject *cur_finalizer = _PyEval_GetAsyncGenFinalizer(); + + if (finalizer && finalizer != Py_None) { + if (_PyEval_SetAsyncGenFinalizer(finalizer) < 0) { return NULL; } } - else if (firstiter == Py_None && _PyEval_SetAsyncGenFirstiter(NULL) < 0) { + else if (finalizer == Py_None && _PyEval_SetAsyncGenFinalizer(NULL) < 0) { return NULL; } + if (firstiter && firstiter != Py_None) { + if (_PyEval_SetAsyncGenFirstiter(firstiter) < 0) { + goto error; + } + } + else if (firstiter == Py_None && _PyEval_SetAsyncGenFirstiter(NULL) < 0) { + goto error; + } + Py_RETURN_NONE; + +error: + _PyEval_SetAsyncGenFinalizer(cur_finalizer); + return NULL; } PyDoc_STRVAR(set_asyncgen_hooks_doc, @@ -1634,6 +1696,9 @@ _sys_getwindowsversion_from_kernel32(void) !GetFileVersionInfoW(kernel32_path, 0, verblock_size, verblock) || !VerQueryValueW(verblock, L"", (LPVOID)&ffi, &ffi_len)) { PyErr_SetFromWindowsErr(0); + if (verblock) { + PyMem_RawFree(verblock); + } return NULL; } @@ -1675,15 +1740,13 @@ sys_getwindowsversion_impl(PyObject *module) int pos = 0; OSVERSIONINFOEXW ver; - version = PyObject_GetAttrString(module, "_cached_windows_version"); + if (PyObject_GetOptionalAttrString(module, "_cached_windows_version", &version) < 0) { + return NULL; + }; if (version && PyObject_TypeCheck(version, &WindowsVersionType)) { return version; } - if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { - return NULL; - } Py_XDECREF(version); - PyErr_Clear(); ver.dwOSVersionInfoSize = sizeof(ver); if (!GetVersionExW((OSVERSIONINFOW*) &ver)) @@ -1763,6 +1826,13 @@ static PyObject * sys__enablelegacywindowsfsencoding_impl(PyObject *module) /*[clinic end generated code: output=f5c3855b45e24fe9 input=2bfa931a20704492]*/ { + if (PyErr_WarnEx(PyExc_DeprecationWarning, + "sys._enablelegacywindowsfsencoding() is deprecated and will be " + "removed in Python 3.16. Use PYTHONLEGACYWINDOWSFSENCODING " + "instead.", 1)) + { + return NULL; + } if (_PyUnicode_EnableLegacyWindowsFSEncoding() < 0) { return NULL; } @@ -1919,7 +1989,15 @@ _PySys_GetSizeOf(PyObject *o) return (size_t)-1; } - return (size_t)size + _PyType_PreHeaderSize(Py_TYPE(o)); + size_t presize = 0; + if (!Py_IS_TYPE(o, &PyType_Type) || + PyType_HasFeature((PyTypeObject *)o, Py_TPFLAGS_HEAPTYPE)) + { + /* Add the size of the pre-header if "o" is not a static type */ + presize = _PyType_PreHeaderSize(Py_TYPE(o)); + } + + return (size_t)size + presize; } static PyObject * @@ -2049,7 +2127,7 @@ sys__getframe_impl(PyObject *module, int depth) /*[clinic end generated code: output=d438776c04d59804 input=c1be8a6464b11ee5]*/ { PyThreadState *tstate = _PyThreadState_GET(); - _PyInterpreterFrame *frame = tstate->cframe->current_frame; + _PyInterpreterFrame *frame = tstate->current_frame; if (frame != NULL) { while (depth > 0) { @@ -2125,11 +2203,6 @@ sys_call_tracing_impl(PyObject *module, PyObject *func, PyObject *funcargs) return _PyEval_CallTracing(func, funcargs); } - -#ifdef __cplusplus -extern "C" { -#endif - /*[clinic input] sys._debugmallocstats @@ -2158,10 +2231,6 @@ sys__debugmallocstats_impl(PyObject *module) extern PyObject *_Py_GetObjects(PyObject *, PyObject *); #endif -#ifdef __cplusplus -} -#endif - /*[clinic input] sys._clear_type_cache @@ -2177,6 +2246,24 @@ sys__clear_type_cache_impl(PyObject *module) Py_RETURN_NONE; } +/*[clinic input] +sys._clear_internal_caches + +Clear all internal performance-related caches. +[clinic start generated code]*/ + +static PyObject * +sys__clear_internal_caches_impl(PyObject *module) +/*[clinic end generated code: output=0ee128670a4966d6 input=253e741ca744f6e8]*/ +{ +#ifdef _Py_TIER2 + PyInterpreterState *interp = _PyInterpreterState_GET(); + _Py_Executors_InvalidateAll(interp, 0); +#endif + PyType_ClearCache(); + Py_RETURN_NONE; +} + /* Note that, for now, we do not have a per-interpreter equivalent for sys.is_finalizing(). */ @@ -2190,35 +2277,36 @@ static PyObject * sys_is_finalizing_impl(PyObject *module) /*[clinic end generated code: output=735b5ff7962ab281 input=f0df747a039948a5]*/ { - return PyBool_FromLong(_Py_IsFinalizing()); + return PyBool_FromLong(Py_IsFinalizing()); } + #ifdef Py_STATS /*[clinic input] sys._stats_on -Turns on stats gathering (stats gathering is on by default). +Turns on stats gathering (stats gathering is off by default). [clinic start generated code]*/ static PyObject * sys__stats_on_impl(PyObject *module) -/*[clinic end generated code: output=aca53eafcbb4d9fe input=8ddc6df94e484f3a]*/ +/*[clinic end generated code: output=aca53eafcbb4d9fe input=43b5bfe145299e55]*/ { - _py_stats = &_py_stats_struct; + _Py_StatsOn(); Py_RETURN_NONE; } /*[clinic input] sys._stats_off -Turns off stats gathering (stats gathering is on by default). +Turns off stats gathering (stats gathering is off by default). [clinic start generated code]*/ static PyObject * sys__stats_off_impl(PyObject *module) -/*[clinic end generated code: output=1534c1ee63812214 input=b3e50e71ecf29f66]*/ +/*[clinic end generated code: output=1534c1ee63812214 input=d1a84c60c56cbce2]*/ { - _py_stats = NULL; + _Py_StatsOff(); Py_RETURN_NONE; } @@ -2237,21 +2325,23 @@ sys__stats_clear_impl(PyObject *module) } /*[clinic input] -sys._stats_dump +sys._stats_dump -> bool Dump stats to file, and clears the stats. + +Return False if no statistics were not dumped because stats gathering was off. [clinic start generated code]*/ -static PyObject * +static int sys__stats_dump_impl(PyObject *module) -/*[clinic end generated code: output=79f796fb2b4ddf05 input=92346f16d64f6f95]*/ +/*[clinic end generated code: output=6e346b4ba0de4489 input=31a489e39418b2a5]*/ { - _Py_PrintSpecializationStats(1); + int res = _Py_PrintSpecializationStats(1); _Py_StatsClear(); - Py_RETURN_NONE; + return res; } +#endif // Py_STATS -#endif #ifdef ANDROID_API_LEVEL /*[clinic input] @@ -2292,6 +2382,16 @@ sys_activate_stack_trampoline_impl(PyObject *module, const char *backend) } } } + else if (strcmp(backend, "perf_jit") == 0) { + _PyPerf_Callbacks cur_cb; + _PyPerfTrampoline_GetCallbacks(&cur_cb); + if (cur_cb.write_state != _Py_perfmap_jit_callbacks.write_state) { + if (_PyPerfTrampoline_SetCallbacks(&_Py_perfmap_jit_callbacks) < 0 ) { + PyErr_SetString(PyExc_ValueError, "can't activate perf jit trampoline"); + return NULL; + } + } + } else { PyErr_Format(PyExc_ValueError, "invalid backend: %s", backend); return NULL; @@ -2365,7 +2465,7 @@ sys__getframemodulename_impl(PyObject *module, int depth) if (PySys_Audit("sys._getframemodulename", "i", depth) < 0) { return NULL; } - _PyInterpreterFrame *f = _PyThreadState_GET()->cframe->current_frame; + _PyInterpreterFrame *f = _PyThreadState_GET()->current_frame; while (f && (_PyFrame_IsIncomplete(f) || depth-- > 0)) { f = f->previous; } @@ -2380,10 +2480,52 @@ sys__getframemodulename_impl(PyObject *module, int depth) return Py_NewRef(r); } +/*[clinic input] +sys._get_cpu_count_config -> int + +Private function for getting PyConfig.cpu_count +[clinic start generated code]*/ + +static int +sys__get_cpu_count_config_impl(PyObject *module) +/*[clinic end generated code: output=36611bb5efad16dc input=523e1ade2204084e]*/ +{ + const PyConfig *config = _Py_GetConfig(); + return config->cpu_count; +} + +/*[clinic input] +sys._baserepl + +Private function for getting the base REPL +[clinic start generated code]*/ + +static PyObject * +sys__baserepl_impl(PyObject *module) +/*[clinic end generated code: output=f19a36375ebe0a45 input=ade0ebb9fab56f3c]*/ +{ + PyCompilerFlags cf = _PyCompilerFlags_INIT; + PyRun_AnyFileExFlags(stdin, "", 0, &cf); + Py_RETURN_NONE; +} + +/*[clinic input] +sys._is_gil_enabled -> bool -#ifdef __cplusplus -extern "C" { +Return True if the GIL is currently enabled and False otherwise. +[clinic start generated code]*/ + +static int +sys__is_gil_enabled_impl(PyObject *module) +/*[clinic end generated code: output=57732cf53f5b9120 input=7e9c47f15a00e809]*/ +{ +#ifdef Py_GIL_DISABLED + return _PyEval_IsGILEnabled(_PyThreadState_GET()); +#else + return 1; #endif +} + static PerfMapState perf_map_state; @@ -2426,7 +2568,7 @@ PyAPI_FUNC(int) PyUnstable_WritePerfMapEntry( #ifndef MS_WINDOWS if (perf_map_state.perf_map == NULL) { int ret = PyUnstable_PerfMapState_Init(); - if(ret != 0){ + if (ret != 0){ return ret; } } @@ -2453,9 +2595,40 @@ PyAPI_FUNC(void) PyUnstable_PerfMapState_Fini(void) { #endif } -#ifdef __cplusplus -} +PyAPI_FUNC(int) PyUnstable_CopyPerfMapFile(const char* parent_filename) { +#ifndef MS_WINDOWS + FILE* from = fopen(parent_filename, "r"); + if (!from) { + return -1; + } + if (perf_map_state.perf_map == NULL) { + int ret = PyUnstable_PerfMapState_Init(); + if (ret != 0) { + return ret; + } + } + char buf[4096]; + PyThread_acquire_lock(perf_map_state.map_lock, 1); + int fflush_result = 0, result = 0; + while (1) { + size_t bytes_read = fread(buf, 1, sizeof(buf), from); + size_t bytes_written = fwrite(buf, 1, bytes_read, perf_map_state.perf_map); + fflush_result = fflush(perf_map_state.perf_map); + if (fflush_result != 0 || bytes_read == 0 || bytes_written < bytes_read) { + result = -1; + goto close_and_release; + } + if (bytes_read < sizeof(buf) && feof(from)) { + goto close_and_release; + } + } +close_and_release: + fclose(from); + PyThread_release_lock(perf_map_state.map_lock); + return result; #endif + return 0; +} static PyMethodDef sys_methods[] = { @@ -2464,6 +2637,7 @@ static PyMethodDef sys_methods[] = { {"audit", _PyCFunction_CAST(sys_audit), METH_FASTCALL, audit_doc }, {"breakpointhook", _PyCFunction_CAST(sys_breakpointhook), METH_FASTCALL | METH_KEYWORDS, breakpointhook_doc}, + SYS__CLEAR_INTERNAL_CACHES_METHODDEF SYS__CLEAR_TYPE_CACHE_METHODDEF SYS__CURRENT_FRAMES_METHODDEF SYS__CURRENT_EXCEPTIONS_METHODDEF @@ -2491,16 +2665,17 @@ static PyMethodDef sys_methods[] = { SYS_GETWINDOWSVERSION_METHODDEF SYS__ENABLELEGACYWINDOWSFSENCODING_METHODDEF SYS_INTERN_METHODDEF + SYS__IS_INTERNED_METHODDEF SYS_IS_FINALIZING_METHODDEF SYS_MDEBUG_METHODDEF SYS_SETSWITCHINTERVAL_METHODDEF SYS_GETSWITCHINTERVAL_METHODDEF SYS_SETDLOPENFLAGS_METHODDEF - {"setprofile", sys_setprofile, METH_O, setprofile_doc}, + SYS_SETPROFILE_METHODDEF SYS__SETPROFILEALLTHREADS_METHODDEF SYS_GETPROFILE_METHODDEF SYS_SETRECURSIONLIMIT_METHODDEF - {"settrace", sys_settrace, METH_O, settrace_doc}, + SYS_SETTRACE_METHODDEF SYS__SETTRACEALLTHREADS_METHODDEF SYS_GETTRACE_METHODDEF SYS_CALL_TRACING_METHODDEF @@ -2517,12 +2692,15 @@ static PyMethodDef sys_methods[] = { SYS_UNRAISABLEHOOK_METHODDEF SYS_GET_INT_MAX_STR_DIGITS_METHODDEF SYS_SET_INT_MAX_STR_DIGITS_METHODDEF + SYS__BASEREPL_METHODDEF #ifdef Py_STATS SYS__STATS_ON_METHODDEF SYS__STATS_OFF_METHODDEF SYS__STATS_CLEAR_METHODDEF SYS__STATS_DUMP_METHODDEF #endif + SYS__GET_CPU_COUNT_CONFIG_METHODDEF + SYS__IS_GIL_ENABLED_METHODDEF {NULL, NULL} // sentinel }; @@ -2765,7 +2943,8 @@ _PySys_AddWarnOptionWithError(PyThreadState *tstate, PyObject *option) return 0; } -void +// Removed in Python 3.13 API, but kept for the stable ABI +PyAPI_FUNC(void) PySys_AddWarnOptionUnicode(PyObject *option) { PyThreadState *tstate = _PyThreadState_GET(); @@ -2777,7 +2956,8 @@ PySys_AddWarnOptionUnicode(PyObject *option) } } -void +// Removed in Python 3.13 API, but kept for the stable ABI +PyAPI_FUNC(void) PySys_AddWarnOption(const wchar_t *s) { PyThreadState *tstate = _PyThreadState_GET(); @@ -2796,7 +2976,8 @@ _Py_COMP_DIAG_POP Py_DECREF(unicode); } -int +// Removed in Python 3.13 API, but kept for the stable ABI +PyAPI_FUNC(int) PySys_HasWarnOptions(void) { PyObject *warnoptions; @@ -2885,7 +3066,8 @@ error: return -1; } -void +// Removed in Python 3.13 API, but kept for the stable ABI +PyAPI_FUNC(void) PySys_AddXOption(const wchar_t *s) { PyThreadState *tstate = _PyThreadState_GET(); @@ -3037,6 +3219,7 @@ static PyStructSequence_Field flags_fields[] = { {"warn_default_encoding", "-X warn_default_encoding"}, {"safe_path", "-P"}, {"int_max_str_digits", "-X int_max_str_digits"}, + {"gil", "-X gil"}, {0} }; @@ -3086,6 +3269,16 @@ set_flags_from_config(PyInterpreterState *interp, PyObject *flags) SetFlag(config->warn_default_encoding); SetFlagObj(PyBool_FromLong(config->safe_path)); SetFlag(config->int_max_str_digits); +#ifdef Py_GIL_DISABLED + if (config->enable_gil == _PyConfig_GIL_DEFAULT) { + SetFlagObj(Py_NewRef(Py_None)); + } + else { + SetFlag(config->enable_gil); + } +#else + SetFlagObj(PyLong_FromLong(1)); +#endif #undef SetFlagObj #undef SetFlag return 0; @@ -3701,6 +3894,9 @@ _PySys_Create(PyThreadState *tstate, PyObject **sysmod_p) if (sysmod == NULL) { return _PyStatus_ERR("failed to create a module object"); } +#ifdef Py_GIL_DISABLED + PyUnstable_Module_SetGIL(sysmod, Py_MOD_GIL_NOT_USED); +#endif PyObject *sysdict = PyModule_GetDict(sysmod); if (sysdict == NULL) { @@ -3727,7 +3923,7 @@ _PySys_Create(PyThreadState *tstate, PyObject **sysmod_p) return status; } - if (_PyImport_FixupBuiltin(sysmod, "sys", modules) < 0) { + if (_PyImport_FixupBuiltin(tstate, sysmod, "sys", modules) < 0) { goto error; } @@ -3802,7 +3998,8 @@ makepathobject(const wchar_t *path, wchar_t delim) return v; } -void +// Removed in Python 3.13 API, but kept for the stable ABI +PyAPI_FUNC(void) PySys_SetPath(const wchar_t *path) { PyObject *v; @@ -3899,7 +4096,7 @@ sys_pyfile_write_unicode(PyObject *unicode, PyObject *file) if (file == NULL) return -1; assert(unicode != NULL); - PyObject *result = _PyObject_CallMethodOneArg(file, &_Py_ID(write), unicode); + PyObject *result = PyObject_CallMethodOneArg(file, &_Py_ID(write), unicode); if (result == NULL) { return -1; } diff --git a/contrib/tools/python3/Python/thread.c b/contrib/tools/python3/Python/thread.c index 7fc53f9b613..b31d1dc5e77 100644 --- a/contrib/tools/python3/Python/thread.c +++ b/contrib/tools/python3/Python/thread.c @@ -6,17 +6,38 @@ Stuff shared by all thread_*.h files is collected here. */ #include "Python.h" +#include "pycore_ceval.h" // _PyEval_MakePendingCalls() #include "pycore_pystate.h" // _PyInterpreterState_GET() #include "pycore_structseq.h" // _PyStructSequence_FiniBuiltin() -#include "pycore_pythread.h" +#include "pycore_pythread.h" // _POSIX_THREADS #ifndef DONT_HAVE_STDIO_H -#include +# include #endif #include +// Define PY_TIMEOUT_MAX constant. +#ifdef _POSIX_THREADS + // PyThread_acquire_lock_timed() uses (us * 1000) to convert microseconds + // to nanoseconds. +# define PY_TIMEOUT_MAX_VALUE (LLONG_MAX / 1000) +#elif defined (NT_THREADS) + // WaitForSingleObject() accepts timeout in milliseconds in the range + // [0; 0xFFFFFFFE] (DWORD type). INFINITE value (0xFFFFFFFF) means no + // timeout. 0xFFFFFFFE milliseconds is around 49.7 days. +# if 0xFFFFFFFELL < LLONG_MAX / 1000 +# define PY_TIMEOUT_MAX_VALUE (0xFFFFFFFELL * 1000) +# else +# define PY_TIMEOUT_MAX_VALUE LLONG_MAX +# endif +#else +# define PY_TIMEOUT_MAX_VALUE LLONG_MAX +#endif +const long long PY_TIMEOUT_MAX = PY_TIMEOUT_MAX_VALUE; + + static void PyThread__init_thread(void); /* Forward */ #define initialized _PyRuntime.threads.initialized @@ -72,6 +93,89 @@ PyThread_set_stacksize(size_t size) } +int +PyThread_ParseTimeoutArg(PyObject *arg, int blocking, PY_TIMEOUT_T *timeout_p) +{ + assert(_PyTime_FromSeconds(-1) == PyThread_UNSET_TIMEOUT); + if (arg == NULL || arg == Py_None) { + *timeout_p = blocking ? PyThread_UNSET_TIMEOUT : 0; + return 0; + } + if (!blocking) { + PyErr_SetString(PyExc_ValueError, + "can't specify a timeout for a non-blocking call"); + return -1; + } + + PyTime_t timeout; + if (_PyTime_FromSecondsObject(&timeout, arg, _PyTime_ROUND_TIMEOUT) < 0) { + return -1; + } + if (timeout < 0) { + PyErr_SetString(PyExc_ValueError, + "timeout value must be a non-negative number"); + return -1; + } + + if (_PyTime_AsMicroseconds(timeout, + _PyTime_ROUND_TIMEOUT) > PY_TIMEOUT_MAX) { + PyErr_SetString(PyExc_OverflowError, + "timeout value is too large"); + return -1; + } + *timeout_p = timeout; + return 0; +} + +PyLockStatus +PyThread_acquire_lock_timed_with_retries(PyThread_type_lock lock, + PY_TIMEOUT_T timeout) +{ + PyThreadState *tstate = _PyThreadState_GET(); + PyTime_t endtime = 0; + if (timeout > 0) { + endtime = _PyDeadline_Init(timeout); + } + + PyLockStatus r; + do { + PyTime_t microseconds; + microseconds = _PyTime_AsMicroseconds(timeout, _PyTime_ROUND_CEILING); + + /* first a simple non-blocking try without releasing the GIL */ + r = PyThread_acquire_lock_timed(lock, 0, 0); + if (r == PY_LOCK_FAILURE && microseconds != 0) { + Py_BEGIN_ALLOW_THREADS + r = PyThread_acquire_lock_timed(lock, microseconds, 1); + Py_END_ALLOW_THREADS + } + + if (r == PY_LOCK_INTR) { + /* Run signal handlers if we were interrupted. Propagate + * exceptions from signal handlers, such as KeyboardInterrupt, by + * passing up PY_LOCK_INTR. */ + if (_PyEval_MakePendingCalls(tstate) < 0) { + return PY_LOCK_INTR; + } + + /* If we're using a timeout, recompute the timeout after processing + * signals, since those can take time. */ + if (timeout > 0) { + timeout = _PyDeadline_Get(endtime); + + /* Check for negative values, since those mean block forever. + */ + if (timeout < 0) { + r = PY_LOCK_FAILURE; + } + } + } + } while (r == PY_LOCK_INTR); /* Retry if we were interrupted. */ + + return r; +} + + /* Thread Specific Storage (TSS) API Cross-platform components of TSS API implementation. diff --git a/contrib/tools/python3/Python/thread_nt.h b/contrib/tools/python3/Python/thread_nt.h index 26f441bd6d3..3a01a7fe327 100644 --- a/contrib/tools/python3/Python/thread_nt.h +++ b/contrib/tools/python3/Python/thread_nt.h @@ -1,4 +1,5 @@ -#include "pycore_interp.h" // _PyInterpreterState.threads.stacksize +#include "pycore_interp.h" // _PyInterpreterState.threads.stacksize +#include "pycore_time.h" // _PyTime_AsMicroseconds() /* This code implemented by Dag.Gruneau@elsa.preseco.comm.se */ /* Fast NonRecursiveMutex support by Yakov Markovitch, markovitch@iso.ru */ @@ -76,17 +77,18 @@ EnterNonRecursiveMutex(PNRMUTEX mutex, DWORD milliseconds) } } else if (milliseconds != 0) { /* wait at least until the deadline */ - _PyTime_t nanoseconds = _PyTime_FromNanoseconds((_PyTime_t)milliseconds * 1000000); - _PyTime_t deadline = _PyTime_Add(_PyTime_GetPerfCounter(), nanoseconds); + PyTime_t timeout = (PyTime_t)milliseconds * (1000 * 1000); + PyTime_t deadline = _PyDeadline_Init(timeout); while (mutex->locked) { - _PyTime_t microseconds = _PyTime_AsMicroseconds(nanoseconds, - _PyTime_ROUND_TIMEOUT); + PyTime_t microseconds = _PyTime_AsMicroseconds(timeout, + _PyTime_ROUND_TIMEOUT); if (PyCOND_TIMEDWAIT(&mutex->cv, &mutex->cs, microseconds) < 0) { result = WAIT_FAILED; break; } - nanoseconds = deadline - _PyTime_GetPerfCounter(); - if (nanoseconds <= 0) { + + timeout = _PyDeadline_Get(deadline); + if (timeout <= 0) { break; } } @@ -182,9 +184,9 @@ bootstrap(void *call) return 0; } -unsigned long -PyThread_start_new_thread(void (*func)(void *), void *arg) -{ +int +PyThread_start_joinable_thread(void (*func)(void *), void *arg, + PyThread_ident_t* ident, PyThread_handle_t* handle) { HANDLE hThread; unsigned threadID; callobj *obj; @@ -194,7 +196,7 @@ PyThread_start_new_thread(void (*func)(void *), void *arg) obj = (callobj*)HeapAlloc(GetProcessHeap(), 0, sizeof(*obj)); if (!obj) - return PYTHREAD_INVALID_THREAD_ID; + return -1; obj->func = func; obj->arg = arg; PyThreadState *tstate = _PyThreadState_GET(); @@ -207,22 +209,47 @@ PyThread_start_new_thread(void (*func)(void *), void *arg) /* I've seen errno == EAGAIN here, which means "there are * too many threads". */ - int e = errno; - threadID = (unsigned)-1; HeapFree(GetProcessHeap(), 0, obj); + return -1; } - else { - CloseHandle(hThread); + *ident = threadID; + // The cast is safe since HANDLE is pointer-sized + *handle = (PyThread_handle_t) hThread; + return 0; +} + +unsigned long +PyThread_start_new_thread(void (*func)(void *), void *arg) { + PyThread_handle_t handle; + PyThread_ident_t ident; + if (PyThread_start_joinable_thread(func, arg, &ident, &handle)) { + return PYTHREAD_INVALID_THREAD_ID; } - return threadID; + CloseHandle((HANDLE) handle); + // The cast is safe since the ident is really an unsigned int + return (unsigned long) ident; +} + +int +PyThread_join_thread(PyThread_handle_t handle) { + HANDLE hThread = (HANDLE) handle; + int errored = (WaitForSingleObject(hThread, INFINITE) != WAIT_OBJECT_0); + CloseHandle(hThread); + return errored; +} + +int +PyThread_detach_thread(PyThread_handle_t handle) { + HANDLE hThread = (HANDLE) handle; + return (CloseHandle(hThread) == 0); } /* * Return the thread Id instead of a handle. The Id is said to uniquely identify the * thread in the system */ -unsigned long -PyThread_get_thread_ident(void) +PyThread_ident_t +PyThread_get_thread_ident_ex(void) { if (!initialized) PyThread_init_thread(); @@ -230,6 +257,13 @@ PyThread_get_thread_ident(void) return GetCurrentThreadId(); } +unsigned long +PyThread_get_thread_ident(void) +{ + return (unsigned long) PyThread_get_thread_ident_ex(); +} + + #ifdef PY_HAVE_THREAD_NATIVE_ID /* * Return the native Thread ID (TID) of the calling thread. @@ -257,6 +291,14 @@ PyThread_exit_thread(void) _endthreadex(0); } +void _Py_NO_RETURN +PyThread_hang_thread(void) +{ + while (1) { + SleepEx(INFINITE, TRUE); + } +} + /* * Lock support. It has to be implemented as semaphores. * I [Dag] tried to implement it with mutex but I could find a way to @@ -408,16 +450,7 @@ PyThread_set_key_value(int key, void *value) void * PyThread_get_key_value(int key) { - /* because TLS is used in the Py_END_ALLOW_THREAD macro, - * it is necessary to preserve the windows error state, because - * it is assumed to be preserved across the call to the macro. - * Ideally, the macro should be fixed, but it is simpler to - * do it here. - */ - DWORD error = GetLastError(); - void *result = TlsGetValue(key); - SetLastError(error); - return result; + return TlsGetValue(key); } void @@ -489,14 +522,10 @@ void * PyThread_tss_get(Py_tss_t *key) { assert(key != NULL); - /* because TSS is used in the Py_END_ALLOW_THREAD macro, - * it is necessary to preserve the windows error state, because - * it is assumed to be preserved across the call to the macro. - * Ideally, the macro should be fixed, but it is simpler to - * do it here. - */ - DWORD error = GetLastError(); - void *result = TlsGetValue(key->_key); - SetLastError(error); - return result; + int err = GetLastError(); + void *r = TlsGetValue(key->_key); + if (r || !GetLastError()) { + SetLastError(err); + } + return r; } diff --git a/contrib/tools/python3/Python/thread_pthread.h b/contrib/tools/python3/Python/thread_pthread.h index d843d8d7fe0..6523117e5e5 100644 --- a/contrib/tools/python3/Python/thread_pthread.h +++ b/contrib/tools/python3/Python/thread_pthread.h @@ -1,4 +1,6 @@ -#include "pycore_interp.h" // _PyInterpreterState.threads.stacksize +#include "pycore_interp.h" // _PyInterpreterState.threads.stacksize +#include "pycore_pythread.h" // _POSIX_SEMAPHORES +#include "pycore_time.h" // _PyTime_FromMicrosecondsClamup() /* Posix threads interface */ @@ -14,13 +16,14 @@ #undef destructor #endif #include +#include /* pause(), also getthrid() on OpenBSD */ #if defined(__linux__) # include /* syscall(SYS_gettid) */ #elif defined(__FreeBSD__) # include /* pthread_getthreadid_np() */ -#elif defined(__OpenBSD__) -# include /* getthrid() */ +#elif defined(__FreeBSD_kernel__) +# include /* syscall(SYS_thr_self) */ #elif defined(_AIX) # include /* thread_self() */ #elif defined(__NetBSD__) @@ -84,10 +87,10 @@ /* On FreeBSD 4.x, _POSIX_SEMAPHORES is defined empty, so we need to add 0 to make it work there as well. */ #if (_POSIX_SEMAPHORES+0) == -1 -#define HAVE_BROKEN_POSIX_SEMAPHORES +# define HAVE_BROKEN_POSIX_SEMAPHORES #else -#include -#include +# include +# include #endif #endif @@ -150,16 +153,18 @@ _PyThread_cond_init(PyCOND_T *cond) void _PyThread_cond_after(long long us, struct timespec *abs) { - _PyTime_t timeout = _PyTime_FromMicrosecondsClamp(us); - _PyTime_t t; + PyTime_t timeout = _PyTime_FromMicrosecondsClamp(us); + PyTime_t t; #ifdef CONDATTR_MONOTONIC if (condattr_monotonic) { - t = _PyTime_GetMonotonicClock(); + // silently ignore error: cannot report error to the caller + (void)PyTime_MonotonicRaw(&t); } else #endif { - t = _PyTime_GetSystemClock(); + // silently ignore error: cannot report error to the caller + (void)PyTime_TimeRaw(&t); } t = _PyTime_Add(t, timeout); _PyTime_AsTimespec_clamp(t, abs); @@ -238,8 +243,8 @@ pythread_wrapper(void *arg) return NULL; } -unsigned long -PyThread_start_new_thread(void (*func)(void *), void *arg) +static int +do_start_joinable_thread(void (*func)(void *), void *arg, pthread_t* out_id) { pthread_t th; int status; @@ -255,7 +260,7 @@ PyThread_start_new_thread(void (*func)(void *), void *arg) #if defined(THREAD_STACK_SIZE) || defined(PTHREAD_SYSTEM_SCHED_SUPPORTED) if (pthread_attr_init(&attrs) != 0) - return PYTHREAD_INVALID_THREAD_ID; + return -1; #endif #if defined(THREAD_STACK_SIZE) PyThreadState *tstate = _PyThreadState_GET(); @@ -264,7 +269,7 @@ PyThread_start_new_thread(void (*func)(void *), void *arg) if (tss != 0) { if (pthread_attr_setstacksize(&attrs, tss) != 0) { pthread_attr_destroy(&attrs); - return PYTHREAD_INVALID_THREAD_ID; + return -1; } } #endif @@ -275,7 +280,7 @@ PyThread_start_new_thread(void (*func)(void *), void *arg) pythread_callback *callback = PyMem_RawMalloc(sizeof(pythread_callback)); if (callback == NULL) { - return PYTHREAD_INVALID_THREAD_ID; + return -1; } callback->func = func; @@ -295,32 +300,83 @@ PyThread_start_new_thread(void (*func)(void *), void *arg) if (status != 0) { PyMem_RawFree(callback); - return PYTHREAD_INVALID_THREAD_ID; + return -1; } + *out_id = th; + return 0; +} - pthread_detach(th); - -#if SIZEOF_PTHREAD_T <= SIZEOF_LONG - return (unsigned long) th; +/* Helper to convert pthread_t to PyThread_ident_t. POSIX allows pthread_t to be + non-arithmetic, e.g., musl typedefs it as a pointer. */ +static PyThread_ident_t +_pthread_t_to_ident(pthread_t value) { +// Cast through an integer type of the same size to avoid sign-extension. +#if SIZEOF_PTHREAD_T == SIZEOF_VOID_P + return (uintptr_t) value; +#elif SIZEOF_PTHREAD_T == SIZEOF_LONG + return (unsigned long) value; +#elif SIZEOF_PTHREAD_T == SIZEOF_INT + return (unsigned int) value; +#elif SIZEOF_PTHREAD_T == SIZEOF_LONG_LONG + return (unsigned long long) value; #else - return (unsigned long) *(unsigned long *) &th; +#error "Unsupported SIZEOF_PTHREAD_T value" #endif } +int +PyThread_start_joinable_thread(void (*func)(void *), void *arg, + PyThread_ident_t* ident, PyThread_handle_t* handle) { + pthread_t th = (pthread_t) 0; + if (do_start_joinable_thread(func, arg, &th)) { + return -1; + } + *ident = _pthread_t_to_ident(th); + *handle = (PyThread_handle_t) th; + assert(th == (pthread_t) *handle); + return 0; +} + +unsigned long +PyThread_start_new_thread(void (*func)(void *), void *arg) +{ + pthread_t th = (pthread_t) 0; + if (do_start_joinable_thread(func, arg, &th)) { + return PYTHREAD_INVALID_THREAD_ID; + } + pthread_detach(th); + return (unsigned long) _pthread_t_to_ident(th);; +} + +int +PyThread_join_thread(PyThread_handle_t th) { + return pthread_join((pthread_t) th, NULL); +} + +int +PyThread_detach_thread(PyThread_handle_t th) { + return pthread_detach((pthread_t) th); +} + /* XXX This implementation is considered (to quote Tim Peters) "inherently hosed" because: - It does not guarantee the promise that a non-zero integer is returned. - The cast to unsigned long is inherently unsafe. - It is not clear that the 'volatile' (for AIX?) are any longer necessary. */ -unsigned long -PyThread_get_thread_ident(void) -{ +PyThread_ident_t +PyThread_get_thread_ident_ex(void) { volatile pthread_t threadid; if (!initialized) PyThread_init_thread(); threadid = pthread_self(); - return (unsigned long) threadid; + return _pthread_t_to_ident(threadid); +} + +unsigned long +PyThread_get_thread_ident(void) +{ + return (unsigned long) PyThread_get_thread_ident_ex(); } #ifdef PY_HAVE_THREAD_NATIVE_ID @@ -338,6 +394,9 @@ PyThread_get_thread_native_id(void) #elif defined(__FreeBSD__) int native_id; native_id = pthread_getthreadid_np(); +#elif defined(__FreeBSD_kernel__) + long native_id; + syscall(SYS_thr_self, &native_id); #elif defined(__OpenBSD__) pid_t native_id; native_id = getthrid(); @@ -371,6 +430,18 @@ PyThread_exit_thread(void) #endif } +void _Py_NO_RETURN +PyThread_hang_thread(void) +{ + while (1) { +#if defined(__wasi__) + sleep(9999999); // WASI doesn't have pause() ?! +#else + pause(); +#endif + } +} + #ifdef USE_SEMAPHORES /* @@ -440,31 +511,34 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds, (void) error; /* silence unused-but-set-variable warning */ - _PyTime_t timeout; // relative timeout + PyTime_t timeout; // relative timeout if (microseconds >= 0) { // bpo-41710: PyThread_acquire_lock_timed() cannot report timeout // overflow to the caller, so clamp the timeout to - // [_PyTime_MIN, _PyTime_MAX]. + // [PyTime_MIN, PyTime_MAX]. // - // _PyTime_MAX nanoseconds is around 292.3 years. + // PyTime_MAX nanoseconds is around 292.3 years. // // _thread.Lock.acquire() and _thread.RLock.acquire() raise an // OverflowError if microseconds is greater than PY_TIMEOUT_MAX. timeout = _PyTime_FromMicrosecondsClamp(microseconds); } else { - timeout = _PyTime_FromNanoseconds(-1); + timeout = -1; } #ifdef HAVE_SEM_CLOCKWAIT struct timespec abs_timeout; // Local scope for deadline { - _PyTime_t deadline = _PyTime_Add(_PyTime_GetMonotonicClock(), timeout); + PyTime_t now; + // silently ignore error: cannot report error to the caller + (void)PyTime_MonotonicRaw(&now); + PyTime_t deadline = _PyTime_Add(now, timeout); _PyTime_AsTimespec_clamp(deadline, &abs_timeout); } #else - _PyTime_t deadline = 0; + PyTime_t deadline = 0; if (timeout > 0 && !intr_flag) { deadline = _PyDeadline_Init(timeout); } @@ -476,8 +550,11 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds, status = fix_status(sem_clockwait(thelock, CLOCK_MONOTONIC, &abs_timeout)); #else - _PyTime_t abs_time = _PyTime_Add(_PyTime_GetSystemClock(), - timeout); + PyTime_t now; + // silently ignore error: cannot report error to the caller + (void)PyTime_TimeRaw(&now); + PyTime_t abs_time = _PyTime_Add(now, timeout); + struct timespec ts; _PyTime_AsTimespec_clamp(abs_time, &ts); status = fix_status(sem_timedwait(thelock, &ts)); diff --git a/contrib/tools/python3/Python/thread_pthread_stubs.h b/contrib/tools/python3/Python/thread_pthread_stubs.h index 56e5b614192..4741e594e52 100644 --- a/contrib/tools/python3/Python/thread_pthread_stubs.h +++ b/contrib/tools/python3/Python/thread_pthread_stubs.h @@ -40,7 +40,7 @@ pthread_cond_init(pthread_cond_t *restrict cond, return 0; } -PyAPI_FUNC(int)pthread_cond_destroy(pthread_cond_t *cond) +PyAPI_FUNC(int) pthread_cond_destroy(pthread_cond_t *cond) { return 0; } @@ -94,6 +94,15 @@ pthread_detach(pthread_t thread) return 0; } +int +pthread_join(pthread_t thread, void** value_ptr) +{ + if (value_ptr) { + *value_ptr = NULL; + } + return 0; +} + PyAPI_FUNC(pthread_t) pthread_self(void) { return 0; diff --git a/contrib/tools/python3/Python/traceback.c b/contrib/tools/python3/Python/traceback.c index 1cb82c57203..f9840833716 100644 --- a/contrib/tools/python3/Python/traceback.c +++ b/contrib/tools/python3/Python/traceback.c @@ -3,9 +3,8 @@ #include "Python.h" -#include "pycore_ast.h" // asdl_seq_* +#include "pycore_ast.h" // asdl_seq_GET() #include "pycore_call.h" // _PyObject_CallMethodFormat() -#include "pycore_compile.h" // _PyAST_Optimize #include "pycore_fileutils.h" // _Py_BEGIN_SUPPRESS_IPH #include "pycore_frame.h" // _PyFrame_GetCode() #include "pycore_interp.h" // PyInterpreterState.gc @@ -16,28 +15,28 @@ #include "pycore_sysmodule.h" // _PySys_GetOptionalAttr() #include "pycore_traceback.h" // EXCEPTION_TB_HEADER -#include "../Parser/pegen.h" // _PyPegen_byte_offset_to_character_offset() #include "frameobject.h" // PyFrame_New() -#include "structmember.h" // PyMemberDef + #include "osdefs.h" // SEP -#ifdef HAVE_FCNTL_H -# include +#ifdef HAVE_UNISTD_H +# include // lseek() #endif + #define OFF(x) offsetof(PyTracebackObject, x) +#define PUTS(fd, str) (void)_Py_write_noraise(fd, str, (int)strlen(str)) -#define PUTS(fd, str) _Py_write_noraise(fd, str, (int)strlen(str)) #define MAX_STRING_LENGTH 500 #define MAX_FRAME_DEPTH 100 #define MAX_NTHREADS 100 -/* Function from Parser/tokenizer.c */ +/* Function from Parser/tokenizer/file_tokenizer.c */ extern char* _PyTokenizer_FindEncodingFilename(int, PyObject *); /*[clinic input] -class TracebackType "PyTracebackObject *" "&PyTraceback_Type" +class traceback "PyTracebackObject *" "&PyTraceback_Type" [clinic start generated code]*/ -/*[clinic end generated code: output=da39a3ee5e6b4b0d input=928fa06c10151120]*/ +/*[clinic end generated code: output=da39a3ee5e6b4b0d input=cf96294b2bebc811]*/ #include "clinic/traceback.c.h" @@ -64,7 +63,7 @@ tb_create_raw(PyTracebackObject *next, PyFrameObject *frame, int lasti, /*[clinic input] @classmethod -TracebackType.__new__ as tb_new +traceback.__new__ as tb_new tb_next: object tb_frame: object(type='PyFrameObject *', subclass_of='&PyFrame_Type') @@ -77,7 +76,7 @@ Create a new traceback object. static PyObject * tb_new_impl(PyTypeObject *type, PyObject *tb_next, PyFrameObject *tb_frame, int tb_lasti, int tb_lineno) -/*[clinic end generated code: output=fa077debd72d861a input=01cbe8ec8783fca7]*/ +/*[clinic end generated code: output=fa077debd72d861a input=b88143145454cb59]*/ { if (tb_next == Py_None) { tb_next = NULL; @@ -110,12 +109,9 @@ tb_next_get(PyTracebackObject *self, void *Py_UNUSED(_)) static int tb_get_lineno(PyTracebackObject* tb) { - PyFrameObject* frame = tb->tb_frame; + _PyInterpreterFrame* frame = tb->tb_frame->f_frame; assert(frame != NULL); - PyCodeObject *code = PyFrame_GetCode(frame); - int lineno = PyCode_Addr2Line(code, tb->tb_lasti); - Py_DECREF(code); - return lineno; + return PyCode_Addr2Line(_PyFrame_GetCode(frame), tb->tb_lasti); } static PyObject * @@ -172,8 +168,8 @@ static PyMethodDef tb_methods[] = { }; static PyMemberDef tb_memberlist[] = { - {"tb_frame", T_OBJECT, OFF(tb_frame), READONLY|PY_AUDIT_READ}, - {"tb_lasti", T_INT, OFF(tb_lasti), READONLY}, + {"tb_frame", _Py_T_OBJECT, OFF(tb_frame), Py_READONLY|Py_AUDIT_READ}, + {"tb_lasti", Py_T_INT, OFF(tb_lasti), Py_READONLY}, {NULL} /* Sentinel */ }; @@ -423,27 +419,9 @@ _Py_WriteIndent(int indent, PyObject *f) return 0; } -/* Writes indent spaces, followed by the margin if it is not `\0`. - Returns 0 on success and non-zero on failure. - */ -int -_Py_WriteIndentedMargin(int indent, const char *margin, PyObject *f) -{ - if (_Py_WriteIndent(indent, f) < 0) { - return -1; - } - if (margin) { - if (PyFile_WriteString(margin, f) < 0) { - return -1; - } - } - return 0; -} - static int -display_source_line_with_margin(PyObject *f, PyObject *filename, int lineno, int indent, - int margin_indent, const char *margin, - int *truncation, PyObject **line) +display_source_line(PyObject *f, PyObject *filename, int lineno, int indent, + int *truncation, PyObject **line) { int fd; int i; @@ -571,10 +549,6 @@ display_source_line_with_margin(PyObject *f, PyObject *filename, int lineno, int *truncation = i - indent; } - if (_Py_WriteIndentedMargin(margin_indent, margin, f) < 0) { - goto error; - } - /* Write some spaces before the line */ if (_Py_WriteIndent(indent, f) < 0) { goto error; @@ -600,165 +574,11 @@ int _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent, int *truncation, PyObject **line) { - return display_source_line_with_margin(f, filename, lineno, indent, 0, - NULL, truncation, line); + return display_source_line(f, filename, lineno, indent, truncation, line); } -/* AST based Traceback Specialization - * - * When displaying a new traceback line, for certain syntactical constructs - * (e.g a subscript, an arithmetic operation) we try to create a representation - * that separates the primary source of error from the rest. - * - * Example specialization of BinOp nodes: - * Traceback (most recent call last): - * File "/home/isidentical/cpython/cpython/t.py", line 10, in - * add_values(1, 2, 'x', 3, 4) - * File "/home/isidentical/cpython/cpython/t.py", line 2, in add_values - * return a + b + c + d + e - * ~~~~~~^~~ - * TypeError: 'NoneType' object is not subscriptable - */ #define IS_WHITESPACE(c) (((c) == ' ') || ((c) == '\t') || ((c) == '\f')) - -static int -extract_anchors_from_expr(const char *segment_str, expr_ty expr, Py_ssize_t *left_anchor, Py_ssize_t *right_anchor, - char** primary_error_char, char** secondary_error_char) -{ - switch (expr->kind) { - case BinOp_kind: { - expr_ty left = expr->v.BinOp.left; - expr_ty right = expr->v.BinOp.right; - for (int i = left->end_col_offset; i < right->col_offset; i++) { - if (IS_WHITESPACE(segment_str[i])) { - continue; - } - - *left_anchor = i; - *right_anchor = i + 1; - - // Check whether if this a two-character operator (e.g //) - if (i + 1 < right->col_offset && !IS_WHITESPACE(segment_str[i + 1])) { - ++*right_anchor; - } - - // Keep going if the current char is not ')' - if (i+1 < right->col_offset && (segment_str[i] == ')')) { - continue; - } - - // Set the error characters - *primary_error_char = "~"; - *secondary_error_char = "^"; - break; - } - return 1; - } - case Subscript_kind: { - *left_anchor = expr->v.Subscript.value->end_col_offset; - *right_anchor = expr->v.Subscript.slice->end_col_offset + 1; - Py_ssize_t str_len = strlen(segment_str); - - // Move right_anchor and left_anchor forward to the first non-whitespace character that is not ']' and '[' - while (*left_anchor < str_len && (IS_WHITESPACE(segment_str[*left_anchor]) || segment_str[*left_anchor] != '[')) { - ++*left_anchor; - } - while (*right_anchor < str_len && (IS_WHITESPACE(segment_str[*right_anchor]) || segment_str[*right_anchor] != ']')) { - ++*right_anchor; - } - if (*right_anchor < str_len){ - *right_anchor += 1; - } - - // Set the error characters - *primary_error_char = "~"; - *secondary_error_char = "^"; - return 1; - } - default: - return 0; - } -} - -static int -extract_anchors_from_stmt(const char *segment_str, stmt_ty statement, Py_ssize_t *left_anchor, Py_ssize_t *right_anchor, - char** primary_error_char, char** secondary_error_char) -{ - switch (statement->kind) { - case Expr_kind: { - return extract_anchors_from_expr(segment_str, statement->v.Expr.value, left_anchor, right_anchor, - primary_error_char, secondary_error_char); - } - default: - return 0; - } -} - -static int -extract_anchors_from_line(PyObject *filename, PyObject *line, - Py_ssize_t start_offset, Py_ssize_t end_offset, - Py_ssize_t *left_anchor, Py_ssize_t *right_anchor, - char** primary_error_char, char** secondary_error_char) -{ - int res = -1; - PyArena *arena = NULL; - PyObject *segment = PyUnicode_Substring(line, start_offset, end_offset); - if (!segment) { - goto done; - } - - const char *segment_str = PyUnicode_AsUTF8(segment); - if (!segment_str) { - goto done; - } - - arena = _PyArena_New(); - if (!arena) { - goto done; - } - - PyCompilerFlags flags = _PyCompilerFlags_INIT; - - _PyASTOptimizeState state; - state.optimize = _Py_GetConfig()->optimization_level; - state.ff_features = 0; - - mod_ty module = _PyParser_ASTFromString(segment_str, filename, Py_file_input, - &flags, arena); - if (!module) { - goto done; - } - if (!_PyAST_Optimize(module, arena, &state)) { - goto done; - } - - assert(module->kind == Module_kind); - if (asdl_seq_LEN(module->v.Module.body) == 1) { - stmt_ty statement = asdl_seq_GET(module->v.Module.body, 0); - res = extract_anchors_from_stmt(segment_str, statement, left_anchor, right_anchor, - primary_error_char, secondary_error_char); - } else { - res = 0; - } - -done: - if (res > 0) { - // Normalize the AST offsets to byte offsets and adjust them with the - // start of the actual line (instead of the source code segment). - assert(segment != NULL); - assert(*left_anchor >= 0); - assert(*right_anchor >= 0); - *left_anchor = _PyPegen_byte_offset_to_character_offset(segment, *left_anchor) + start_offset; - *right_anchor = _PyPegen_byte_offset_to_character_offset(segment, *right_anchor) + start_offset; - } - Py_XDECREF(segment); - if (arena) { - _PyArena_Free(arena); - } - return res; -} - #define _TRACEBACK_SOURCE_LINE_INDENT 4 static inline int @@ -772,42 +592,14 @@ ignore_source_errors(void) { return 0; } -static inline int -print_error_location_carets(PyObject *f, int offset, Py_ssize_t start_offset, Py_ssize_t end_offset, - Py_ssize_t right_start_offset, Py_ssize_t left_end_offset, - const char *primary, const char *secondary) { - int special_chars = (left_end_offset != -1 || right_start_offset != -1); - const char *str; - while (++offset <= end_offset) { - if (offset <= start_offset) { - str = " "; - } else if (special_chars && left_end_offset < offset && offset <= right_start_offset) { - str = secondary; - } else { - str = primary; - } - if (PyFile_WriteString(str, f) < 0) { - return -1; - } - } - if (PyFile_WriteString("\n", f) < 0) { - return -1; - } - return 0; -} - static int tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename, int lineno, - PyFrameObject *frame, PyObject *name, int margin_indent, const char *margin) + PyFrameObject *frame, PyObject *name) { if (filename == NULL || name == NULL) { return -1; } - if (_Py_WriteIndentedMargin(margin_indent, margin, f) < 0) { - return -1; - } - PyObject *line = PyUnicode_FromFormat(" File \"%U\", line %d, in %U\n", filename, lineno, name); if (line == NULL) { @@ -824,149 +616,13 @@ tb_displayline(PyTracebackObject* tb, PyObject *f, PyObject *filename, int linen int truncation = _TRACEBACK_SOURCE_LINE_INDENT; PyObject* source_line = NULL; - int rc = display_source_line_with_margin( + int rc = display_source_line( f, filename, lineno, _TRACEBACK_SOURCE_LINE_INDENT, - margin_indent, margin, &truncation, &source_line); + &truncation, &source_line); if (rc != 0 || !source_line) { /* ignore errors since we can't report them, can we? */ err = ignore_source_errors(); - goto done; - } - - int code_offset = tb->tb_lasti; - PyCodeObject* code = frame->f_frame->f_code; - const Py_ssize_t source_line_len = PyUnicode_GET_LENGTH(source_line); - - int start_line; - int end_line; - int start_col_byte_offset; - int end_col_byte_offset; - if (!PyCode_Addr2Location(code, code_offset, &start_line, &start_col_byte_offset, - &end_line, &end_col_byte_offset)) { - goto done; - } - - if (start_line < 0 || end_line < 0 - || start_col_byte_offset < 0 - || end_col_byte_offset < 0) - { - goto done; - } - - // When displaying errors, we will use the following generic structure: - // - // ERROR LINE ERROR LINE ERROR LINE ERROR LINE ERROR LINE ERROR LINE ERROR LINE - // ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~~~ - // | |-> left_end_offset | |-> end_offset - // |-> start_offset |-> right_start_offset - // - // In general we will only have (start_offset, end_offset) but we can gather more information - // by analyzing the AST of the text between *start_offset* and *end_offset*. If this succeeds - // we could get *left_end_offset* and *right_start_offset* and some selection of characters for - // the different ranges (primary_error_char and secondary_error_char). If we cannot obtain the - // AST information or we cannot identify special ranges within it, then left_end_offset and - // right_end_offset will be set to -1. - // - // To keep the column indicators pertinent, they are not shown when the primary character - // spans the whole line. - - // Convert the utf-8 byte offset to the actual character offset so we print the right number of carets. - assert(source_line); - Py_ssize_t start_offset = _PyPegen_byte_offset_to_character_offset(source_line, start_col_byte_offset); - if (start_offset < 0) { - err = ignore_source_errors() < 0; - goto done; - } - - Py_ssize_t end_offset = _PyPegen_byte_offset_to_character_offset(source_line, end_col_byte_offset); - if (end_offset < 0) { - err = ignore_source_errors() < 0; - goto done; - } - - Py_ssize_t left_end_offset = -1; - Py_ssize_t right_start_offset = -1; - - char *primary_error_char = "^"; - char *secondary_error_char = primary_error_char; - - if (start_line == end_line) { - int res = extract_anchors_from_line(filename, source_line, start_offset, end_offset, - &left_end_offset, &right_start_offset, - &primary_error_char, &secondary_error_char); - if (res < 0 && ignore_source_errors() < 0) { - goto done; - } - } - else { - // If this is a multi-line expression, then we will highlight until - // the last non-whitespace character. - const char *source_line_str = PyUnicode_AsUTF8(source_line); - if (!source_line_str) { - goto done; - } - - Py_ssize_t i = source_line_len; - while (--i >= 0) { - if (!IS_WHITESPACE(source_line_str[i])) { - break; - } - } - - end_offset = i + 1; - } - - // Elide indicators if primary char spans the frame line - Py_ssize_t stripped_line_len = source_line_len - truncation - _TRACEBACK_SOURCE_LINE_INDENT; - bool has_secondary_ranges = (left_end_offset != -1 || right_start_offset != -1); - if (end_offset - start_offset == stripped_line_len && !has_secondary_ranges) { - goto done; - } - - if (_Py_WriteIndentedMargin(margin_indent, margin, f) < 0) { - err = -1; - goto done; - } - - // Convert all offsets to display offsets (e.g. the space they would take up if printed - // on the screen). - Py_ssize_t dp_start = _PyPegen_calculate_display_width(source_line, start_offset); - if (dp_start < 0) { - err = ignore_source_errors() < 0; - goto done; - } - - Py_ssize_t dp_end = _PyPegen_calculate_display_width(source_line, end_offset); - if (dp_end < 0) { - err = ignore_source_errors() < 0; - goto done; - } - - Py_ssize_t dp_left_end = -1; - Py_ssize_t dp_right_start = -1; - if (has_secondary_ranges) { - dp_left_end = _PyPegen_calculate_display_width(source_line, left_end_offset); - if (dp_left_end < 0) { - err = ignore_source_errors() < 0; - goto done; - } - - dp_right_start = _PyPegen_calculate_display_width(source_line, right_start_offset); - if (dp_right_start < 0) { - err = ignore_source_errors() < 0; - goto done; - } } - - - if (print_error_location_carets(f, truncation, dp_start, dp_end, - dp_right_start, dp_left_end, - primary_error_char, secondary_error_char) < 0) { - err = -1; - goto done; - } - -done: Py_XDECREF(source_line); return err; } @@ -991,8 +647,7 @@ tb_print_line_repeated(PyObject *f, long cnt) } static int -tb_printinternal(PyTracebackObject *tb, PyObject *f, long limit, - int indent, const char *margin) +tb_printinternal(PyTracebackObject *tb, PyObject *f, long limit) { PyCodeObject *code = NULL; Py_ssize_t depth = 0; @@ -1032,7 +687,7 @@ tb_printinternal(PyTracebackObject *tb, PyObject *f, long limit, cnt++; if (cnt <= TB_RECURSIVE_CUTOFF) { if (tb_displayline(tb, f, code->co_filename, tb_lineno, - tb->tb_frame, code->co_name, indent, margin) < 0) { + tb->tb_frame, code->co_name) < 0) { goto error; } @@ -1057,8 +712,7 @@ error: #define PyTraceBack_LIMIT 1000 int -_PyTraceBack_Print_Indented(PyObject *v, int indent, const char *margin, - const char *header_margin, const char *header, PyObject *f) +_PyTraceBack_Print(PyObject *v, const char *header, PyObject *f) { PyObject *limitv; long limit = PyTraceBack_LIMIT; @@ -1085,15 +739,12 @@ _PyTraceBack_Print_Indented(PyObject *v, int indent, const char *margin, } } Py_XDECREF(limitv); - if (_Py_WriteIndentedMargin(indent, header_margin, f) < 0) { - return -1; - } if (PyFile_WriteString(header, f) < 0) { return -1; } - if (tb_printinternal((PyTracebackObject *)v, f, limit, indent, margin) < 0) { + if (tb_printinternal((PyTracebackObject *)v, f, limit) < 0) { return -1; } @@ -1103,12 +754,8 @@ _PyTraceBack_Print_Indented(PyObject *v, int indent, const char *margin, int PyTraceBack_Print(PyObject *v, PyObject *f) { - int indent = 0; - const char *margin = NULL; - const char *header_margin = NULL; const char *header = EXCEPTION_TB_HEADER; - - return _PyTraceBack_Print_Indented(v, indent, margin, header_margin, header, f); + return _PyTraceBack_Print(v, header, f); } /* Format an integer in range [0; 0xffffffff] to decimal and write it @@ -1135,7 +782,7 @@ _Py_DumpDecimal(int fd, size_t value) value /= 10; } while (value); - _Py_write_noraise(fd, ptr, end - ptr); + (void)_Py_write_noraise(fd, ptr, end - ptr); } /* Format an integer as hexadecimal with width digits into fd file descriptor. @@ -1160,7 +807,7 @@ _Py_DumpHexadecimal(int fd, uintptr_t value, Py_ssize_t width) value >>= 4; } while ((end - ptr) < width || value); - _Py_write_noraise(fd, ptr, end - ptr); + (void)_Py_write_noraise(fd, ptr, end - ptr); } void @@ -1213,7 +860,7 @@ _Py_DumpASCII(int fd, PyObject *text) } if (!need_escape) { // The string can be written with a single write() syscall - _Py_write_noraise(fd, str, size); + (void)_Py_write_noraise(fd, str, size); goto done; } } @@ -1223,7 +870,7 @@ _Py_DumpASCII(int fd, PyObject *text) if (' ' <= ch && ch <= 126) { /* printable ASCII character */ char c = (char)ch; - _Py_write_noraise(fd, &c, 1); + (void)_Py_write_noraise(fd, &c, 1); } else if (ch <= 0xff) { PUTS(fd, "\\x"); @@ -1247,14 +894,24 @@ done: /* Write a frame into the file fd: "File "xxx", line xxx in xxx". - This function is signal safe. */ + This function is signal safe. -static void + Return 0 on success. Return -1 if the frame is invalid. */ + +static int dump_frame(int fd, _PyInterpreterFrame *frame) { - assert(frame->owner != FRAME_OWNED_BY_CSTACK); + if (frame->owner == FRAME_OWNED_BY_CSTACK) { + /* Ignore trampoline frame */ + return 0; + } - PyCodeObject *code = frame->f_code; + PyCodeObject *code = _PyFrame_SafeGetCode(frame); + if (code == NULL) { + return -1; + } + + int res = 0; PUTS(fd, " File "); if (code->co_filename != NULL && PyUnicode_Check(code->co_filename)) @@ -1262,29 +919,36 @@ dump_frame(int fd, _PyInterpreterFrame *frame) PUTS(fd, "\""); _Py_DumpASCII(fd, code->co_filename); PUTS(fd, "\""); - } else { + } + else { PUTS(fd, "???"); + res = -1; } - int lineno = PyUnstable_InterpreterFrame_GetLine(frame); PUTS(fd, ", line "); + int lasti = _PyFrame_SafeGetLasti(frame); + int lineno = -1; + if (lasti >= 0) { + lineno = _PyCode_SafeAddr2Line(code, lasti); + } if (lineno >= 0) { _Py_DumpDecimal(fd, (size_t)lineno); } else { PUTS(fd, "???"); + res = -1; } - PUTS(fd, " in "); - if (code->co_name != NULL - && PyUnicode_Check(code->co_name)) { + PUTS(fd, " in "); + if (code->co_name != NULL && PyUnicode_Check(code->co_name)) { _Py_DumpASCII(fd, code->co_name); } else { PUTS(fd, "???"); + res = -1; } - PUTS(fd, "\n"); + return res; } static int @@ -1296,6 +960,9 @@ tstate_is_freed(PyThreadState *tstate) if (_PyMem_IsPtrFreed(tstate->interp)) { return 1; } + if (_PyMem_IsULongFreed(tstate->thread_id)) { + return 1; + } return 0; } @@ -1315,11 +982,11 @@ dump_traceback(int fd, PyThreadState *tstate, int write_header) } if (tstate_is_freed(tstate)) { - PUTS(fd, " \n"); + PUTS(fd, " \n"); return; } - _PyInterpreterFrame *frame = tstate->cframe->current_frame; + _PyInterpreterFrame *frame = tstate->current_frame; if (frame == NULL) { PUTS(fd, " \n"); return; @@ -1327,24 +994,29 @@ dump_traceback(int fd, PyThreadState *tstate, int write_header) unsigned int depth = 0; while (1) { - if (frame->owner == FRAME_OWNED_BY_CSTACK) { - /* Trampoline frame */ - frame = frame->previous; - if (frame == NULL) { - break; + if (MAX_FRAME_DEPTH <= depth) { + if (MAX_FRAME_DEPTH < depth) { + PUTS(fd, "plus "); + _Py_DumpDecimal(fd, depth); + PUTS(fd, " frames\n"); } + break; + } - /* Can't have more than one shim frame in a row */ - assert(frame->owner != FRAME_OWNED_BY_CSTACK); + if (_PyMem_IsPtrFreed(frame)) { + PUTS(fd, " \n"); + break; } + // Read frame->previous early since memory can be freed during + // dump_frame() + _PyInterpreterFrame *previous = frame->previous; - if (MAX_FRAME_DEPTH <= depth) { - PUTS(fd, " ...\n"); + if (dump_frame(fd, frame) < 0) { + PUTS(fd, " \n"); break; } - dump_frame(fd, frame); - frame = frame->previous; + frame = previous; if (frame == NULL) { break; } @@ -1435,7 +1107,6 @@ _Py_DumpTracebackThreads(int fd, PyInterpreterState *interp, return "unable to get the thread head state"; /* Dump the traceback of each thread */ - tstate = PyInterpreterState_ThreadHead(interp); unsigned int nthreads = 0; _Py_BEGIN_SUPPRESS_IPH do @@ -1446,11 +1117,18 @@ _Py_DumpTracebackThreads(int fd, PyInterpreterState *interp, PUTS(fd, "...\n"); break; } + + if (tstate_is_freed(tstate)) { + PUTS(fd, "\n"); + break; + } + write_thread_id(fd, tstate, tstate == current_tstate); if (tstate == current_tstate && tstate->interp->gc.collecting) { PUTS(fd, " Garbage-collecting\n"); } dump_traceback(fd, tstate, 0); + tstate = PyThreadState_Next(tstate); nthreads++; } while (tstate != NULL); diff --git a/contrib/tools/python3/Python/tracemalloc.c b/contrib/tools/python3/Python/tracemalloc.c index 852e5b03917..99ba7876acc 100644 --- a/contrib/tools/python3/Python/tracemalloc.c +++ b/contrib/tools/python3/Python/tracemalloc.c @@ -3,11 +3,12 @@ #include "pycore_gc.h" // PyGC_Head #include "pycore_hashtable.h" // _Py_hashtable_t #include "pycore_initconfig.h" // _PyStatus_NO_MEMORY() -#include "pycore_object.h" // _PyType_PreHeaderSize +#include "pycore_object.h" // _PyType_PreHeaderSize() #include "pycore_pymem.h" // _Py_tracemalloc_config #include "pycore_runtime.h" // _Py_ID() -#include "pycore_traceback.h" +#include "pycore_traceback.h" // _Py_DumpASCII() #include + #include "frameobject.h" // _PyInterpreterFrame_GetLine #include // malloc() @@ -250,6 +251,7 @@ hashtable_compare_traceback(const void *key1, const void *key2) static void tracemalloc_get_frame(_PyInterpreterFrame *pyframe, frame_t *frame) { + assert(PyCode_Check(pyframe->f_executable)); frame->filename = &_Py_STR(anon_unknown); int lineno = PyUnstable_InterpreterFrame_GetLine(pyframe); if (lineno < 0) { @@ -257,7 +259,7 @@ tracemalloc_get_frame(_PyInterpreterFrame *pyframe, frame_t *frame) } frame->lineno = (unsigned int)lineno; - PyObject *filename = pyframe->f_code->co_filename; + PyObject *filename = filename = ((PyCodeObject *)pyframe->f_executable)->co_filename; if (filename == NULL) { #ifdef TRACE_DEBUG @@ -311,7 +313,7 @@ traceback_hash(traceback_t *traceback) /* code based on tuplehash() of Objects/tupleobject.c */ Py_uhash_t x, y; /* Unsigned for defined overflow behavior. */ int len = traceback->nframe; - Py_uhash_t mult = _PyHASH_MULTIPLIER; + Py_uhash_t mult = PyHASH_MULTIPLIER; frame_t *frame; x = 0x345678UL; @@ -906,6 +908,10 @@ _PyTraceMalloc_Start(int max_nframe) return -1; } + if (PyRefTracer_SetTracer(_PyTraceMalloc_TraceRef, NULL) < 0) { + return -1; + } + if (tracemalloc_config.tracing) { /* hook already installed: do nothing */ return 0; @@ -980,6 +986,8 @@ _PyTraceMalloc_Stop(void) raw_free(tracemalloc_traceback); tracemalloc_traceback = NULL; + (void)PyRefTracer_SetTracer(NULL, NULL); + done: TABLES_UNLOCK(); } @@ -1250,7 +1258,7 @@ tracemalloc_get_traceback_unlocked(unsigned int domain, uintptr_t ptr) } -#define PUTS(fd, str) _Py_write_noraise(fd, str, (int)strlen(str)) +#define PUTS(fd, str) (void)_Py_write_noraise(fd, str, (int)strlen(str)) static void _PyMem_DumpFrame(int fd, frame_t * frame) @@ -1385,8 +1393,12 @@ _PyTraceMalloc_Fini(void) Do nothing if tracemalloc is not tracing memory allocations or if the object memory block is not already traced. */ int -_PyTraceMalloc_NewReference(PyObject *op) +_PyTraceMalloc_TraceRef(PyObject *op, PyRefTracerEvent event, void* Py_UNUSED(ignore)) { + if (event != PyRefTracer_CREATE) { + return 0; + } + assert(PyGILState_Check()); if (!tracemalloc_config.tracing) { -- cgit v1.3